<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Jakub Wolynko</title><link>https://jakubwolynko.eu/</link><description>Recent content on Jakub Wolynko</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>Jakub Wołynko and the Hugo Authors</copyright><atom:link href="https://jakubwolynko.eu/index.xml" rel="self" type="application/rss+xml"/><item><title>Building a Privacy-First Developer Collaboration Hub</title><link>https://jakubwolynko.eu/blog/202514-nextcloud-snippets/</link><pubDate>Wed, 23 Jul 2025 08:10:10 +0100</pubDate><guid>https://jakubwolynko.eu/blog/202514-nextcloud-snippets/</guid><description>
&lt;p>We're living in an era where our most sensitive thoughts,
code snippets, and project documentation are scattered across
proprietary platforms that treat our data as their product.
Every time you paste a code snippet into Notion, jot down API
keys in Apple Notes, or share documentation through Google Docs,
you're essentially handing over your intellectual property to
corporations that monetize your information. At least that is
what I'm feeling, so there is no evidences. Just feeling.&lt;/p></description></item><item><title>Production-Ready n8n on AWS</title><link>https://jakubwolynko.eu/blog/202513-n8n-installation/</link><pubDate>Thu, 17 Jul 2025 10:10:10 +0100</pubDate><guid>https://jakubwolynko.eu/blog/202513-n8n-installation/</guid><description>
&lt;p>That will be another microblog-style post about self-hosting on AWS. This time, let's talk about &lt;a href="https://n8n.io/">n8n&lt;/a> - the workflow automation tool that's been gaining traction in the no-code/low-code world. After successfully deploying GoToSocial on Lightsail (which you can &lt;a href="https://jakubwolynko.eu/blog/202509-gotosocial-on-lightsail/">read about here&lt;/a>), I decided to tackle something more useful: a production-ready n8n setup that doesn't break the bank.&lt;/p>
&lt;h2 id="why-n8n">Why n8n?&lt;/h2>
&lt;p>n8n is an open-source workflow automation platform that lets you connect different services and APIs. Think Zapier, but self-hosted and with more control. Perfect for automating repetitive tasks, data synchronization, or building complex integrations between your tools.&lt;/p></description></item><item><title>S3 Notifications as Webhooks for Automation</title><link>https://jakubwolynko.eu/blog/202512-s3-notification/</link><pubDate>Tue, 08 Jul 2025 14:10:10 +0100</pubDate><guid>https://jakubwolynko.eu/blog/202512-s3-notification/</guid><description>
&lt;p>Hey there, my friends!&lt;/p>
&lt;p>I've been working on automating various workflows lately, and let me tell you - I stumbled upon something that completely changed how I think about event-driven automation. Do you remember when I wrote about setting up automated deployments? Well, this time I want to share something even more powerful: using S3 notifications as webhooks for automation.&lt;/p>
&lt;p>So here's the story. A few weeks ago, I was dealing with a client who needed to process uploaded files automatically. The traditional approach? Polling S3 buckets every few minutes. Not elegant, not efficient, and definitely not what I'd call a modern solution. That's when I realized - why not use S3 notifications as webhooks? And that is great, to be honest.&lt;/p></description></item><item><title>The standard - S3 IAM Policies</title><link>https://jakubwolynko.eu/blog/202511-s3-iam-policy/</link><pubDate>Tue, 24 Jun 2025 08:10:10 +0100</pubDate><guid>https://jakubwolynko.eu/blog/202511-s3-iam-policy/</guid><description>
&lt;p>In the previous post, we explored
&lt;a href="https://jakubwolynko.eu/blog/202507-configure-your-s3-bucket-access">S3 Access Control Lists (ACLs)&lt;/a>
and learned why AWS recommends disabling them for most modern use cases.
Now it's time to dive into the &lt;strong>proper&lt;/strong> way of securing your S3 buckets:
IAM policies and bucket policies.&lt;/p>
&lt;p>Unlike ACLs, which are considered legacy and can become operationally chaotic,
IAM policies offer centralized, scalable, and auditable access management.
They're the foundation of modern AWS security architecture and the tool
you should reach for when securing your S3 resources.&lt;/p></description></item><item><title>How to serve API for humans?</title><link>https://jakubwolynko.eu/blog/202510-cloudflare-and-automation-challange/</link><pubDate>Mon, 16 Jun 2025 09:10:10 +0100</pubDate><guid>https://jakubwolynko.eu/blog/202510-cloudflare-and-automation-challange/</guid><description>
&lt;p>In today's digital landscape, serving APIs has become increasingly challenging.
The task of exposing data and functionality to legitimate
users has evolved into a complex battle against automated attacks,
aggressive crawlers, and misguided AI training attempts.&lt;/p>
&lt;p>The challenge isn't just technical—it's philosophical.&lt;/p>
&lt;blockquote>
&lt;p>How do you distinguish between legitimate automation
(which powers the modern web)
and malicious bots that drain resources and compromise security?&lt;/p>
&lt;/blockquote>
&lt;p>How do you balance accessibility with protection, especially when
dealing with rate limiting, bot detection, and content
delivery networks like Cloudflare?
This post explores the real-world challenges of maintaining APIs
that serve humans while fighting with
army of automated requests that seem determined to treat
every endpoint as their personal data source.&lt;/p></description></item><item><title>Setup GoToSocial on AWS Lightsail</title><link>https://jakubwolynko.eu/blog/202509-gotosocial-on-lightsail/</link><pubDate>Wed, 04 Jun 2025 13:00:10 +0100</pubDate><guid>https://jakubwolynko.eu/blog/202509-gotosocial-on-lightsail/</guid><description>
&lt;p>That will be a short microblog-style post.
As you may know AWS Community Builders, as
part of the program benefits are receiving 500$ per year
of AWS Cloud credits. Seems a lot,
however, domain name registration is excluded, also
based on on-demand pricing, 500$ is ok for test
ideas, or writing content. Not very good, for long-running services different
from S3. However, some time
ago I thought about running software on VMs. Not
inside containers just as binary. So, why not to use Lightsail?
It's simple, even too simple. Thankfully it has, a stable
low price, especially if we decide to go with IPv6.&lt;/p></description></item><item><title>Understand S3 ACL</title><link>https://jakubwolynko.eu/blog/202507-configure-your-s3-bucket-access/</link><pubDate>Tue, 27 May 2025 09:10:10 +0100</pubDate><guid>https://jakubwolynko.eu/blog/202507-configure-your-s3-bucket-access/</guid><description>
&lt;p>Recently you were able to read.
&lt;a href="https://jakubwolynko.eu/blog/202506-test-your-s3-bucket-access/">about S3 security&lt;/a>,
and methods of avoiding common misconfiguration
with the usage of standard and well-known tools.&lt;/p>
&lt;p>The fact that AWS offers a set of access control mechanisms designed to
protect S3 resources, including:&lt;/p>
&lt;ul>
&lt;li>Access Control Lists (ACLs)&lt;/li>
&lt;li>Identity and Access Management (IAM) policies&lt;/li>
&lt;li>S3 Access Points&lt;/li>
&lt;li>Multi-Region Access Points&lt;/li>
&lt;li>signed URL&lt;/li>
&lt;/ul>
&lt;p>This article provides a comprehensive guide to understanding and
implementing these mechanisms, highlighting potential misconfigurations that
can lead to security vulnerabilities and offer practical guidance on
using Terraform for building our secure infrastructure-as-code deployments.&lt;/p></description></item><item><title>How to secure your S3 bucket by default?</title><link>https://jakubwolynko.eu/blog/202506-test-your-s3-bucket-access/</link><pubDate>Tue, 29 Apr 2025 14:00:10 +0100</pubDate><guid>https://jakubwolynko.eu/blog/202506-test-your-s3-bucket-access/</guid><description>
&lt;p>In September this year, I will officially mark &lt;code>10 years in the IT&lt;/code> box.
For most of my professional life, I was focused on system administration,
automation, &lt;strong>DevOps&lt;/strong>, and a bit of public/hybrid cloud.
There was always security, but rather a nice-to-have topic, not
the main pillar. Some time ago I decided, that I would try to focus
more on privacy and information security, especially now in an era of AI,
Vibe Coding, and new &lt;code>hyper-personalized&lt;/code>
&lt;a href="https://techcrunch.com/2025/04/24/perplexity-ceo-says-its-browser-will-track-everything-users-do-online-to-sell-hyper-personalized-ads/">ads idea&lt;/a>.
What does it mean for you, my friends? You will find more
content about securing your workload, networks, and app here. Also from
time to time, I will post some notes from my self-hosting journey
and attempts to avoid big-tech solutions. After this long intro,
let's focus on today's topic - S3 security.&lt;/p></description></item><item><title>Umami for free?</title><link>https://jakubwolynko.eu/blog/202505-hosting-umami-on-vercel/</link><pubDate>Mon, 14 Apr 2025 10:10:10 +0100</pubDate><guid>https://jakubwolynko.eu/blog/202505-hosting-umami-on-vercel/</guid><description>
&lt;p>As you may already know, or not. I'm self-hosting
a view apps, where it doesn't mean &lt;code>home-labbing&lt;/code> them.
My flat wasn't designed to have network cables in all
rooms, and storing more units than Synology NAS, HomeAssistant,
RasbberyPi and Router on a tiny Ikea shelf could be a dangerous
situation. That is why I'm not using my mini-pc as a homelab anymore.&lt;/p>
&lt;p>In the beginning, I moved a lot of my services to Hetzner
(take a look at previous posts). Now after a while, I started
thinking about making more for less. During the vibe coding wave,
I learned how to use Supabase and Vercel. Then I started thinking
about one crazy thing.&lt;/p></description></item><item><title>Bootstrap cluster with FluxCD</title><link>https://jakubwolynko.eu/blog/202504-k3s-with-flux/</link><pubDate>Tue, 08 Apr 2025 10:10:10 +0100</pubDate><guid>https://jakubwolynko.eu/blog/202504-k3s-with-flux/</guid><description>
&lt;p>That is the next iteration of the &amp;quot;5 AM Club&amp;quot; Kubernetes migration.
As you can remember from other entries published in this
series, I started playing with Kubernetes daily. Not on a daily basis,
but literally every single day. To be honest, I'm pretty happy with the results.
However, my plan has one challenge, that requires to be solved.
Build time was long &lt;strong>~15 minutes&lt;/strong> every day, and sometimes ESO operator
faced an issue regarding using kustomize for Helm-based deployment.
And just due to random constraints, I wanted to use one tool for bootstrapping
a cluster.&lt;/p></description></item><item><title>External Secret Operator with Doppler</title><link>https://jakubwolynko.eu/blog/202503-eso-with-doppler/</link><pubDate>Sat, 22 Feb 2025 10:10:10 +0100</pubDate><guid>https://jakubwolynko.eu/blog/202503-eso-with-doppler/</guid><description>
&lt;p>Last time we configured our cluster step by step
maybe without public code yet, but someday I will
publish it. Probably when it will be smooth enough
to share. Nevertheless, we have a working cluster. Today
I will focus on connecting the External Secret Operator
with Doppler. So let's introduce today's stars.&lt;/p>
&lt;h2 id="external-secret-operator">External Secret Operator&lt;/h2>
&lt;blockquote>
&lt;p>External Secrets Operator is a Kubernetes operator that
Integrates external secret management systems like AWS Secrets Manager,
HashiCorp Vault, Google Secrets Manager, Azure Key Vault,
IBM Cloud Secrets Manager, CyberArk Conjur,
Pulumi ESC and many more. The operator reads information from
external APIs and automatically inject the values into a Kubernetes Secret.&lt;/p></description></item><item><title>Again self-hosting! on k3s</title><link>https://jakubwolynko.eu/blog/202502-k3s-on-hetzner/</link><pubDate>Thu, 06 Feb 2025 10:10:10 +0100</pubDate><guid>https://jakubwolynko.eu/blog/202502-k3s-on-hetzner/</guid><description>
&lt;p>Over some time I was really happy with my podman + ansible setup. It was great,
but do you know what wasn’t such great? Deployment rollbacks. It all started
with linkwarden. On my miniflux, I received a notification - that
a new minor release is ready.&lt;/p>
&lt;blockquote>
&lt;p>You can use GitHub repos as RSS links and received
notification about new releases. If you're using miniflux
just past &lt;code>https://github.com/ansible/ansible/releases.atom&lt;/code>&lt;/p>
&lt;/blockquote>
&lt;p>Let's say version 2.8.0. When the time came, I just changed my variable and executed
&lt;code>ansible-playbook&lt;/code> command. Then after 3 minutes, my uptime-kuma started screaming,
and saying that my app was dead. Initially, I ignored that,
due to my experience with podman. During the service restart it
makes an app unavailable, then downloads the new image and
tries to run it. If the package is big, it could take a while.
It wasn't great, but that is what could be acceptable for
self-hosting service. Unfortunately, the main problem was with something
different. Maintainers of Linkwarden sometimes inform users about
a new release, however, it's only delivered as an rpm/deb package.
The container image could be still in the building, or the building process
could fail. It doesn't matter, sometimes my typo could occur as
well. Then podman can't handle that, nor Ansible as it just
restarts the service. Podman on another hand just stops service
and does not roll back to the old version automatically. So sometimes
it becomes annoying as I need to log into the server with
ssh and manually fix it. That is why I decided to switch to
some Kubernetes distribution.&lt;/p></description></item><item><title>Self-hosting with Podman</title><link>https://jakubwolynko.eu/blog/202501-selfhosting-with-podman/</link><pubDate>Thu, 30 Jan 2025 10:10:10 +0100</pubDate><guid>https://jakubwolynko.eu/blog/202501-selfhosting-with-podman/</guid><description>
&lt;p>I've been a self-hoster for a while. The adventure
started with regular mani-pc manufactured by HP.
32G of RAM, Intel gen 10, and 1T HDD drive.
However, as long as it was a great experience at the beginning,
with time it became a challenge. My stack was built with &lt;a href="https://www.portainer.io/">portainer&lt;/a>
and a bunch of docker-compose files.
It leads to specific issues: with portainer, you don't own the
Compose files, they are living inside your tool,
but nowhere on the filesystem or git repo.&lt;/p></description></item><item><title>OneDev on ECS</title><link>https://jakubwolynko.eu/blog/202410-onedev-on-ecs/</link><pubDate>Sun, 15 Sep 2024 08:00:10 +0100</pubDate><guid>https://jakubwolynko.eu/blog/202410-onedev-on-ecs/</guid><description>
&lt;p>At the beginning of September, I saw a post from Johannes Koch about
&lt;a href="https://lockhead.info/index.php/2024/09/03/a-self-hosted-codecommit-alternative/">self-hosting CodeCommit alternative&lt;/a>.
Then I realized, that I'm using my home, not such a popular, but very nice and solid
git repository system. To be more precise, much more than a git server.
Let's welcome &lt;a href="https://onedev.io/">OneDev&lt;/a>.&lt;/p>
&lt;blockquote>
&lt;p>Git server with CI/CD, kanban, and packages.&lt;/p>
&lt;/blockquote>
&lt;p>They also support repo tags, and groups like GitLab.
The project is also very resource-friendly, and I've been using it for
a while on my home server.&lt;/p></description></item><item><title>Information flow</title><link>https://jakubwolynko.eu/blog/202409-information-flow/</link><pubDate>Mon, 26 Aug 2024 10:10:10 +0100</pubDate><guid>https://jakubwolynko.eu/blog/202409-information-flow/</guid><description>
&lt;p>This post will be different, than usual. It will be
soft, flexible, and with late summer vibes. Please stop coding,
deploying, or whatever is important you're doing. That will be the most helpful
post you will read today! Let's talk about being old, or more correctly
about seniority. What will distinguish you as a person with 10 years of experience
in your job with newcomers with 6 months? Probably first things that will come
to your mind will be:&lt;/p></description></item><item><title>Meetings on demand</title><link>https://jakubwolynko.eu/blog/202408-jitsi-on-demand/</link><pubDate>Wed, 24 Jul 2024 10:10:10 +0100</pubDate><guid>https://jakubwolynko.eu/blog/202408-jitsi-on-demand/</guid><description>
&lt;p>Yesterday I decided to solve another,
probably non-existent problem. So for quite a
long time, I was looking for a solution that would allow me
to schedule meetings with friends, family, and clients
(the custom domain looks very professional). Most of them are paid every month.
Which in my case is not a very cost-effective solution,
if I have one meeting per month, sometimes two. Also let's assume, that
being an AI learning material for Google, or Zoom isn't my dream position.&lt;/p></description></item><item><title>Install Keycloak on ECS</title><link>https://jakubwolynko.eu/blog/202407-keycloak-install/</link><pubDate>Thu, 20 Jun 2024 10:10:10 +0100</pubDate><guid>https://jakubwolynko.eu/blog/202407-keycloak-install/</guid><description>
&lt;p>If you have read my latest post about accessing RHEL in the cloud,
you may notice that we’re accessing the cockpit console,
via SSM Session manager port forwarding.
That’s not an ideal solution. I’m not talking in bed,
it’s just not ideal(but cheap). Today I realised that using
Amazon WorkSpaces Secure Browser could be interesting, and fun as well.&lt;/p>
&lt;p>Unfortunately, this solution required an Identity Provider,
which can serve us with SAML 2.0. The problem is, that most of the
providers like &lt;a href="okra">Okta&lt;/a> or &lt;a href="ping">Ping&lt;/a>,
are enterprise-oriented, and you can’t play with them easily.
Of course, you can request a free trial, but it’s 30 days only,
and there is no single-user account.&lt;/p></description></item><item><title>Manage my cheap TLD with Route53</title><link>https://jakubwolynko.eu/blog/202406-cheap-tld/</link><pubDate>Sun, 16 Jun 2024 10:10:10 +0100</pubDate><guid>https://jakubwolynko.eu/blog/202406-cheap-tld/</guid><description>
&lt;p>While writing a post about setting up Keycloak,
which should be live this month(it's a bit harder, than I thought),
I decided that it would be great to use my custom domain and play
with it as well. As having &lt;code>sso.3sky.in&lt;/code> looks cool, also unexpectedly it’s quite cheap. But why do I need it? It’s like 10$ per domain. Yes and no. One of the Community Builder program benefits is a voucher for 500$ which can be used within a year, on AWS services. On Route53 as well, but not on domains. After a short discussion on Slack with other builders, I realized that the cheapest method is to buy a domain wherever we want to, and then delegate it to Route53, as this cost is covered by the program. Sounds like a plan right? So how to do it? First please read this &lt;a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/migrate-dns-domain-in-use.html">docs&lt;/a>, then let’s try to do it with AWS CDK.&lt;/p></description></item><item><title>rhel on cloud</title><link>https://jakubwolynko.eu/blog/202404-rhel-on-cloud/</link><pubDate>Thu, 23 May 2024 10:10:10 +0100</pubDate><guid>https://jakubwolynko.eu/blog/202404-rhel-on-cloud/</guid><description>
&lt;p>Let’s talk about basic IT operations included in the everyday tasks range. For example, accessing VMs. As you may realize (or not) - not everyone is using immutable infrastructure. Especially when their core business isn’t IT, and they are a bit bigger than 2-pizza team. That is why today we will talk about accessing the console of Red Hat Enterprise Linux 9.3 in AWS Cloud. I will show you the 3 most useful methods - in my opinion; there are no statistics.&lt;/p></description></item><item><title>DNS as code</title><link>https://jakubwolynko.eu/blog/202405-dns-as-code/</link><pubDate>Mon, 20 May 2024 10:10:10 +0100</pubDate><guid>https://jakubwolynko.eu/blog/202405-dns-as-code/</guid><description>
&lt;p>Looks like I have 10 days to create 2 blog posts. To be open, it’s another attempt to become a creator, who makes at least 12 posts per year. Also, I decided, to make my write-ups a bit shorter and focused on one particular topic. That is why, today I will show you how to migrate existing &lt;a href="https://www.cloudflare.com/">Cloudflare&lt;/a> configuration into OpenTofu manifests and make it even more cool with &lt;a href="https://www.scalr.com/">Scalr&lt;/a>.&lt;/p>
&lt;p>For context, I’m the owner of 3 domains, where one is used for my home lab. What does that it mean? I like to access my services without VPN, from anywhere in the world. Hopefully, Cloudflare provides a solution called &lt;a href="https://www.cloudflare.com/products/tunnel/">tunnels&lt;/a>. It could be used for exposing private endpoints/services directly on the internet, without setting up static IP(for example my ISP requires an additional fee for that), also we can easily add multiple “data centers”, for example, NUC under our desk, home NAS, or regular server in your parent's basement.&lt;/p></description></item><item><title>EDA for AWS operations</title><link>https://jakubwolynko.eu/blog/202403-eda-introduction/</link><pubDate>Tue, 19 Mar 2024 10:10:10 +0100</pubDate><guid>https://jakubwolynko.eu/blog/202403-eda-introduction/</guid><description>
&lt;p>Great that you're here. Today, I will write a bit about Event-Driven Ansible and its possibilities for improving the operational efficiency of our AWS environment. But wait, what does it mean by Event-Driven Ansible? My favorite sentence from the documentation is &amp;quot;EDA provides a way of codifying operational logic,&amp;quot; so in short words, we can code logic for responding to different events. For example, we can trigger playbook execution with Lambdas make our self-service process a bit more ops-oriented, or introduce ChatOps.&lt;/p></description></item><item><title>Local automation</title><link>https://jakubwolynko.eu/blog/202402-workflow-automation/</link><pubDate>Thu, 29 Feb 2024 10:10:10 +0100</pubDate><guid>https://jakubwolynko.eu/blog/202402-workflow-automation/</guid><description>
&lt;p>Once again I have a goal, write every month at least one article. Sounds easy, but unfortunately for me, it is not. The idea behind this blog is to write content that will be helpful for me(and hopefully for my readers as well). For example, when I need basic Nginx configuration I used to open &lt;a href="https://blog.3sky.dev/article/nginx-and-how-to-configure-it/">this post from 2021&lt;/a>. Now I’m older a bit, so I decided to switch once again to Doom Emacs(?!!) and start writing my own code/config snippets. As it also can be useful, probably I will write about it someday.&lt;/p></description></item><item><title>2023 as AWS Community Builder</title><link>https://jakubwolynko.eu/blog/202401-cb-sumup/</link><pubDate>Sun, 21 Jan 2024 10:10:10 +0100</pubDate><guid>https://jakubwolynko.eu/blog/202401-cb-sumup/</guid><description>
&lt;p>It's the 3rd week of January 2024. The &lt;a href="https://aws.amazon.com/developer/community/community-builders/">Community Builder form&lt;/a> for the current year is probably already closed, right? Ah, it's not true. It will be closed on the 27th of January, so you still have some time - 5 days. If you need a TLDR, go and &lt;a href="https://pulse.aws/application/ZDVCOXKA">apply&lt;/a> as fast as possible! Do it now! If you've already applied, I have some stories to share or rather an extended 2023 summary. Please treat this as a possible path; I think you can do it better.&lt;/p></description></item><item><title>What is the best `as Code` tool in 2023?</title><link>https://jakubwolynko.eu/blog/202307-best-iac-solution/</link><pubDate>Mon, 24 Jul 2023 10:10:10 +0100</pubDate><guid>https://jakubwolynko.eu/blog/202307-best-iac-solution/</guid><description>
&lt;p>Based on the success of my latest article (CHATGPT!), I've decided to continue in that direction by creating shorter and more user-friendly content. Today, I have some thoughts and feelings to share about a complex topic. Recently, I was asked to prepare a sample infrastructure for an &lt;a href="https://www.okd.io/">OKD&lt;/a> cluster from scratch, without pre-built templates. I first used &lt;a href="https://aws.amazon.com/cdk/">AWS CDK&lt;/a>, then rewrote it to &lt;a href="https://www.pulumi.com/">Pulumi&lt;/a>, and finally to &lt;a href="https://developer.hashicorp.com/terraform/cdktf">cdktf&lt;/a>. You may wonder why I made these changes, and the answer is simple: I really enjoy my job!&lt;/p></description></item><item><title>Top 5 ChatGPT use cases in AWS Solution Architecture role</title><link>https://jakubwolynko.eu/blog/202306-top-5-ai-aws/</link><pubDate>Wed, 28 Jun 2023 10:10:10 +0100</pubDate><guid>https://jakubwolynko.eu/blog/202306-top-5-ai-aws/</guid><description>
&lt;p>Hey there, my friends! Today, I want to share with you the top 5 use cases of ChatGPT in my daily job. But before we dive in, let me tell you a little story. Recently, I made the switch from &lt;a href="https://obsidian.md/">Obsidian&lt;/a> to &lt;a href="https://logseq.com/">Logseq&lt;/a>, for note-taking, and it got me into the habit of preferring shorter form in general. So, let's get straight to the point and explore how ChatGPT can help us save time and make our lives easier!&lt;/p></description></item><item><title>Optimizing Video Localization with ML and AWS Batch</title><link>https://jakubwolynko.eu/blog/202305-video-localisation/</link><pubDate>Thu, 01 Jun 2023 10:10:10 +0100</pubDate><guid>https://jakubwolynko.eu/blog/202305-video-localisation/</guid><description>
&lt;p>As you may know, I had the opportunity to speak publicly during &lt;a href="https://awscommunity.pl/">AWS Community Day Warsaw&lt;/a>. The talk was about a non-trivial challenge related to AWS services. Since there was no recording available and the slides alone are not sufficient, I decided to write a blog post to document this homegrown project. During the showcase, you will see various services and encounter different issues. If you have any questions, feel free to reach out to me on LinkedIn or via email.&lt;/p></description></item><item><title>Simplify the networking with VPC Lattice</title><link>https://jakubwolynko.eu/blog/202304-vpc-lattice/</link><pubDate>Sat, 08 Apr 2023 10:10:10 +0100</pubDate><guid>https://jakubwolynko.eu/blog/202304-vpc-lattice/</guid><description>
&lt;p>I started writing this on April 7th, 2023, a few weeks after the release of VPC Lattice (although it's not yet available everywhere). I was curious about what it is and what it's supposed to do, so I asked ChatGPT.&lt;/p>
&lt;p>As there isn't much information available yet, I'll rely on the &lt;a href="https://docs.aws.amazon.com/vpc-lattice/latest/ug/what-is-vpc-service-network.html">official documentation&lt;/a> for now.&lt;/p>
&lt;p>According to the documentation,
&amp;quot;Amazon VPC Lattice is a fully managed application networking service that you use to connect, secure, and monitor all of your services across multiple accounts and virtual private clouds (VPCs).&amp;quot;&lt;/p></description></item><item><title>Can you use ECS without DevOps</title><link>https://jakubwolynko.eu/blog/202303-ecs-without-devops/</link><pubDate>Thu, 16 Mar 2023 10:10:10 +0100</pubDate><guid>https://jakubwolynko.eu/blog/202303-ecs-without-devops/</guid><description>
&lt;p>Use your imagination and assume that some team was encouraged to migrate from &lt;a href="https://azure.microsoft.com/pl-pl/products/app-service">Azure AppService&lt;/a>. It was a decision at a high level, so the small dev team needs to migrate into AWS. What's the issue you can ask? They have no experience with Amazon Web Services, also they don’t have a &amp;quot;DevOps&amp;quot; person. The app is a JAR file. AppService allowed them to put a file into the service and run it on production, without any issues. When they started looking for an alternative on the AWS side, the only solution they found was Elastic Beanstack, unfortunately, the workload fits better into the &amp;quot;docker platform&amp;quot;. &lt;a href="https://aws.amazon.com/ecs/">ECS&lt;/a> from another hand doesn’t provide &amp;quot;drop-in&amp;quot; functionality. And that's the case. Let's check how easily we can build the bridge!&lt;/p></description></item><item><title>How to use Lambda as a glue?</title><link>https://jakubwolynko.eu/blog/202302-instance-stopper/</link><pubDate>Thu, 09 Feb 2023 23:10:14 +0100</pubDate><guid>https://jakubwolynko.eu/blog/202302-instance-stopper/</guid><description>
&lt;p>Let's keep this article short. The topic is rather popular, but not very well documented. It's based on quite a popular issue, which is about &lt;code>untagged&lt;/code> EC2. Sometimes developers launch virtual machines, without tags. Why it's so important? Because without tags, you have no idea about the machine's purpose. You have no owner, now, project, no cost center, etc. I know that some of these things can be checked with CloudTrail, however, it's still about keeping the environment clean. After kindly asking, reminders, etc, I decided to go with a slightly different kind of solution. The brutal one.&lt;/p></description></item><item><title>Salt on Graviton</title><link>https://jakubwolynko.eu/blog/202301-salt-on-graviton/</link><pubDate>Fri, 27 Jan 2023 18:10:14 +0100</pubDate><guid>https://jakubwolynko.eu/blog/202301-salt-on-graviton/</guid><description>
&lt;p>It will be nice to solve another real-world problem, isn’t it? For example machines in private subnets, behind the NAT, or on rack shelves in an office. All of them need to be managed - at least from time to time.&lt;/p>
&lt;p>Ansible is great, I appreciated the creators of this tool. It helps me a lot! In different cases, environment. I remember when I was a bit younger, a very popular interview question was - &lt;em>what is the difference between Ansible and Chef/Puppet ?&lt;/em>. If we skip the part, that Chef/Puppet isn't very popular in Poland, the main and always correct answer was &lt;em>that Ansible is agentless&lt;/em>. &lt;/p></description></item><item><title>Sailing with AWS Lightsail</title><link>https://jakubwolynko.eu/blog/202202-lightsail-sail/</link><pubDate>Wed, 28 Dec 2022 18:10:14 +0100</pubDate><guid>https://jakubwolynko.eu/blog/202202-lightsail-sail/</guid><description>
&lt;p>I have a daughter! What a piece of news, isn't it? I can also add again the same line:&lt;/p>
&lt;p>&lt;em>&lt;a href="https://newsletter.3sky.dev/">Newsletter&lt;/a> is very time-consuming, and being a consultant is time-consuming. Everything is time-consuming.&lt;/em>&lt;/p>
&lt;p>However, I had some spare time to play a bit with a small client's project. For example, not everyone needs cutting-edge technology, Kubernetes, and functional programming. &lt;br>
Sometimes we just need a small VM with IPv4, for PoC, or small old-style application, or even workshops about Linux administration. Here I want to introduce a bit unpopular AWS solution - &lt;a href="https://aws.amazon.com/lightsail/">Lightsail&lt;/a>. It's a neat service. Fast, very easy to use, and cheap. The smallest bundle is 3.5$/mo. However, it has some limitations. For example, it is unpopular - there is no ansible dynamic inventory plugin for it - what a shame. Let's fix it then!&lt;/p></description></item><item><title>CDK8S workflow example</title><link>https://jakubwolynko.eu/blog/202201-run-cdk8s/</link><pubDate>Sun, 31 Jul 2022 18:10:14 +0100</pubDate><guid>https://jakubwolynko.eu/blog/202201-run-cdk8s/</guid><description>
&lt;p>After a long break(again!) - I'm back. Older, more tired, and handsome as always.
&lt;a href="https://newsletter.3sky.dev/">Newsletter&lt;/a> is very time-consuming, and being a consultant is time-consuming. Everything is time-consuming.
That's why I decided to write this post with a bit different approach. Let's talk about processes.
The tech part is still most important, unfortunately, sometimes it's not the key.
So what is CDK?(generated with &lt;a href="https://rytr.me/">rytr&lt;/a>)
CDKs are a set of tools that enable developers to make use of the cloud environment. They provide a set of tools and resources that allow developers to deploy their applications in the cloud.
CDKs are used for different purposes such as:&lt;/p></description></item><item><title>Cloud-init with DigitalOcean</title><link>https://jakubwolynko.eu/blog/cloud-init-intro/</link><pubDate>Mon, 20 Sep 2021 12:10:02 +0000</pubDate><guid>https://jakubwolynko.eu/blog/cloud-init-intro/</guid><description>
&lt;h2 id="welcome">Welcome&lt;/h2>
&lt;p>Another &lt;code>build something yourself&lt;/code> article. The last one was focused on Kubernetes.
Now I will try to build infrastructure for a bit different side-project.
I always want to learn &lt;a href="https://saltproject.io/">SaltStack&lt;/a>.
To be honest, I'm a huge fan of &lt;a href="https://www.ansible.com/">Ansible&lt;/a> which is boring, but works.
However, sometimes I have a problem with keeping my developers account synced. Also adding
multiple users and track their settings is hard without states. So I decided to get into
the new toolbox. Additionally &lt;a href="https://cloudinit.readthedocs.io/en/latest/">cloud-init&lt;/a> with
&lt;a href="https://www.digitalocean.com/">DigitalOcean&lt;/a> API sounds like fun.&lt;/p></description></item><item><title>EKS on speed</title><link>https://jakubwolynko.eu/blog/eks-with-speed/</link><pubDate>Sun, 01 Aug 2021 12:10:02 +0000</pubDate><guid>https://jakubwolynko.eu/blog/eks-with-speed/</guid><description>
&lt;h2 id="welcome">Welcome&lt;/h2>
&lt;p>Let's build some stuff. Today on AWS(&lt;a href="https://aws.amazon.com/eks/">EKS&lt;/a>). Today with popular solutions
and almost without coding(in YAML). Today focus on speed and simplicity.
Additionally no CI/CD.&lt;/p>
&lt;h2 id="components">Components&lt;/h2>
&lt;p>I will keep it simple.&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://www.terraform.io/">Terraform&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://aws.amazon.com/cli/">aws cli&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://www.docker.com/">docker&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://helm.sh/">helm&lt;/a>&lt;/li>
&lt;li>curl&lt;/li>
&lt;li>dig, kubectl, emacs&lt;/li>
&lt;/ul>
&lt;h2 id="building-infrastructure">Building infrastructure&lt;/h2>
&lt;h3 id="setup">Setup&lt;/h3>
&lt;p>First steps. I need to build some infrastructure. As almost everyone use Terraform
for building and managing resources I decided to use it too. Based on Terrafrom EKS module
I've created a sample manifest. Also, I decided to add ECR and configure output in a specific way.&lt;/p></description></item><item><title>Gitlab - templates</title><link>https://jakubwolynko.eu/blog/gitlab-intro/</link><pubDate>Tue, 15 Jun 2021 12:10:02 +0000</pubDate><guid>https://jakubwolynko.eu/blog/gitlab-intro/</guid><description>
&lt;h2 id="welcome">Welcome&lt;/h2>
&lt;p>Working as a consultant is hard. You have so many tasks to do. The day is a bit too short,
but the opportunities to learn are awesome. Today I have time to compile
my notes about &lt;a href="https://gitlab.com">GitLab&lt;/a>, mostly CI part. However, as a code repository for organizations, GitLab
is my favorite solution. Fast, easy to use, permission matrix, and deployment keys
management. All this stuff is awesome. It's not a marketing post, but could be :)&lt;/p></description></item><item><title>Jenkins and submodules</title><link>https://jakubwolynko.eu/blog/jenkins_and_submodules/</link><pubDate>Fri, 02 Apr 2021 18:10:14 +0100</pubDate><guid>https://jakubwolynko.eu/blog/jenkins_and_submodules/</guid><description>
&lt;h2 id="welcome">Welcome&lt;/h2>
&lt;p>That will be a short post, rather full of my pain and frustration. Fortunately with happy-end and topic for a small article.&lt;/p>
&lt;h2 id="problem">Problem&lt;/h2>
&lt;p>GitHub has some problems with service accounts for CI/CD usage. At least in Free Plan. You can't share deployment keys like for example in GitLab. I can understand that in the context of security, but If you have 4,5, or 15 repositories, you need to manage the same numbers of ssh key pairs. That is annoying, but I used to it. The problem comes when you need use sumbodules in CICD pipelines with Jenkins. Let's say Jenkins also has probem with submodules. In general if you're using &lt;a href="https://www.jenkins.io/doc/book/pipeline/multibranch/">multibranch&lt;/a> situation is documented:&lt;/p></description></item><item><title>Ansible with jump host</title><link>https://jakubwolynko.eu/blog/ansible-with-jumphost/</link><pubDate>Tue, 23 Mar 2021 12:10:14 +0100</pubDate><guid>https://jakubwolynko.eu/blog/ansible-with-jumphost/</guid><description>
&lt;h2 id="welcome">Welcome&lt;/h2>
&lt;p>Long time no sea. It's not a typo last time when I saw the see was in September in Greece. Almost the same thing I can say about Ansible.
The last time when I used this tool for resolving real problems was more-less 2years ago. To be honest, during this period Ansible becomes (in my mind at least) just another boring and old-fashioned tool. Who is using Ansible if we have containers, Kubernetes Engines and Serverless? Only boring people. However, do you know who does not use Ansible? People without personal life or interesting problem to solve. I'm boring...&lt;/p></description></item><item><title>The Nginx and how to configure it</title><link>https://jakubwolynko.eu/blog/nginx-and-how-to-configure-it/</link><pubDate>Wed, 24 Feb 2021 18:10:14 +0100</pubDate><guid>https://jakubwolynko.eu/blog/nginx-and-how-to-configure-it/</guid><description>
&lt;h1 id="welcome">Welcome&lt;/h1>
&lt;p>That will be a short post. I need it, for my usage. All about Nginx and some application architecture. Why? During my 6 years of professional life, I haven't met any Nginxa's master. All my tech friends know some basics(as me) or have one best config which always works. Unfortunately, Nginx is hard. It's just a tool, just a web server, but it's complex, useful, and powerful. Let's start.&lt;/p></description></item><item><title>edb-deployer for normal people</title><link>https://jakubwolynko.eu/blog/edb-deployer/</link><pubDate>Mon, 15 Feb 2021 18:10:14 +0100</pubDate><guid>https://jakubwolynko.eu/blog/edb-deployer/</guid><description>
&lt;h1 id="welcome">Welcome&lt;/h1>
&lt;p>Some time ago I saw an interesting tool called &lt;a href="https://github.com/EnterpriseDB/postgres-deployment">edb-deployer&lt;/a>. If You have no idea what EDB stands for
it's &lt;a href="https://www.enterprisedb.com/">Enterprise&lt;/a> version of Postgresql. I'm not a sell person, so for me, it's just another company
which making money around OSS - and that is good. However, I would like to tal... write about this small
CLI tool. It could be very helpful for the &lt;code>migration to cloud&lt;/code> PoC toolbox. Sounds good? Wait for the rest of the article.&lt;/p></description></item><item><title>2021's Plans, Jenkins plugin and Emacs</title><link>https://jakubwolynko.eu/blog/hello-2021/</link><pubDate>Sat, 09 Jan 2021 18:10:14 +0100</pubDate><guid>https://jakubwolynko.eu/blog/hello-2021/</guid><description>
&lt;h1 id="welcome">Welcome&lt;/h1>
&lt;p>How are you? I hope 2021 starts at least such good as for me. Even without the New Year Party.
Maybe you noticed that I deleted the &lt;code>cookbook&lt;/code> section, and it's all about splitting topics. It's
a tech blog, the rest of my hobbies need separated space. I hope you like this idea. After a few words
let's begin.&lt;/p>
&lt;h2 id="2021-plans">2021 Plans&lt;/h2>
&lt;p>10 months of writing, 12 posts I can say that I really like this. Maybe it's time-consuming
and not such great as OpenSource contributions, but it's on my own rules. I can write when I have
time, I can write about everything still. No cookies, no Google Analyst, no opinion about my work
here - from my perspective it's a very comfortable situation.&lt;/p></description></item><item><title>NodeJS app on LKE with Pulumi</title><link>https://jakubwolynko.eu/blog/node-app-on-lke/</link><pubDate>Sun, 06 Dec 2020 18:10:14 +0100</pubDate><guid>https://jakubwolynko.eu/blog/node-app-on-lke/</guid><description>
&lt;h1 id="welcome">Welcome&lt;/h1>
&lt;p>I had an interesting idea, write a small app with something. Deploy this app
on K8S on Linode (&lt;a href="https://www.linode.com/products/kubernetes/">LKE&lt;/a>), with the usage of &lt;a href="https://www.pulumi.com/">Pulumi&lt;/a>. I started with the Golang
app as well as with pulumi-go, but I realized that I can turn it into a bit more fresh experience. I've never before use Node and TypeScript. Also building
images for another toolset is always a challenge, especially if you in normal life
use &lt;code>npm build&lt;/code>, and push all artifacts on Nginx.
The post is one of the longest on this blog, I hope it will be interesting for you at least
it was for me.&lt;/p></description></item><item><title>Should I use Quarkus</title><link>https://jakubwolynko.eu/blog/quarkus-should-i/</link><pubDate>Mon, 23 Nov 2020 18:10:14 +0100</pubDate><guid>https://jakubwolynko.eu/blog/quarkus-should-i/</guid><description>
&lt;h1 id="welcome">Welcome&lt;/h1>
&lt;p>As mentioned in a previous post, I'm working more with the RedHat stack.
Most of these tools are very interesting. Like &lt;a href="https://quarkus.io/">Quarkus&lt;/a> - another
Java framework. Not boring Java framework, Quarkus is fast, working on &lt;a href="https://www.graalvm.org/">GralVM&lt;/a>
instead of regular JVM. But the biggest advantage is native builds. We can create
an app, pack it into binary, and run it inside a container. That container could be used
with serverless without &lt;code>cold-start&lt;/code> issues. How cool is that? But...Today I will
be focused on regular OpenShift deployment and some coding.&lt;/p></description></item><item><title>Move to my own domain with OVH and Netlify</title><link>https://jakubwolynko.eu/blog/move-to-my-own/</link><pubDate>Sun, 15 Nov 2020 18:10:14 +0100</pubDate><guid>https://jakubwolynko.eu/blog/move-to-my-own/</guid><description>
&lt;h1 id="welcome">Welcome&lt;/h1>
&lt;p>Long time no see. Due to the last 2 months, I had some changes in my personal life.
I've become a Solution Architect in a nice polish company. If you or your friends need some RedHat
implementation here is the &lt;a href="https://linuxpolska.com/">link&lt;/a>. What will change here? I hope nothing. Still a
lot of CI/CD topics, more Kubernetes(with OpenShift), maybe some serverless with Knative and
&lt;a href="https://quarkus.io/">quarkus&lt;/a>. Ahh and some new tools. &lt;a href="https://www.linode.com/">Linode&lt;/a> as a cloud service and &lt;a href="https://www.pulumi.com/">Pulumi&lt;/a>
as Terafrom's replacement. Unfortunately, today I will be focusing on setting up my own
domain on different hosting without Github Action.&lt;/p></description></item><item><title>Go app on Kubernetes from scrach</title><link>https://jakubwolynko.eu/blog/k8s-cicd/</link><pubDate>Thu, 20 Aug 2020 18:10:14 +0100</pubDate><guid>https://jakubwolynko.eu/blog/k8s-cicd/</guid><description>
&lt;h1 id="welcome">Welcome&lt;/h1>
&lt;p>I like GitHub Actions, I like Kubernetes and I want to learn more
about Helm. So maybe I should join these tools and make a smooth pipeline?
Why not? Also, I switched to Fedora, and that's a great moment to checkout
Podman in action. No time to wait, let's go.&lt;/p>
&lt;h2 id="tools-used-in-this-episode">Tools used in this episode&lt;/h2>
&lt;ul>
&lt;li>GitHub Action&lt;/li>
&lt;li>Podman&lt;/li>
&lt;li>Kubernetes&lt;/li>
&lt;li>Terraform&lt;/li>
&lt;li>Helm&lt;/li>
&lt;li>GCP&lt;/li>
&lt;li>A bit of Golang :)&lt;/li>
&lt;/ul>
&lt;h2 id="build-the-app">Build the app&lt;/h2>
&lt;p>The first step is building a small app. I decided to use
Golang because it's an awesome language for microservices
and testing is clear.&lt;/p></description></item><item><title>Why I need VIM?</title><link>https://jakubwolynko.eu/blog/vim-is-fun/</link><pubDate>Fri, 10 Apr 2020 18:10:14 +0100</pubDate><guid>https://jakubwolynko.eu/blog/vim-is-fun/</guid><description>
&lt;p>+++
draft = false
date = 2020-04-10T20:30:02Z
title = &amp;quot;Why I need VIM?&amp;quot;
description = &amp;quot;Short story about legendary tool&amp;quot;
topics = [&amp;quot;Tools&amp;quot;]
+++&lt;/p>
&lt;h1 id="welcome">Welcome&lt;/h1>
&lt;p>During quarantine, I expected to have more time. Unfortunately
I fall in love with making Neapolitan Style pizza, sourdough based
bread, and homemade tortillas. However, also I decided to master VIM.
But why? I would like to explain it in a few words.&lt;/p>
&lt;h2 id="whats-is-vim">What's is VIM&lt;/h2>
&lt;p>&lt;a href="https://www.vim.org/about.php">Vim&lt;/a> is a highly configurable text editor built to enable efficient
text editing. It is an improved version of the vi editor distributed
with most UNIX systems. Vim is often called a &amp;quot;programmer's editor,&amp;quot;
and so useful for programming that many consider it an entire IDE.
It's not just for programmers, though. Vim is perfect for all kinds
of text editing, from composing an email to editing configuration files.
Despite what the above comic suggests, Vim can be configured to
work in a very simple (Notepad-like) way, called evim or Easy Vim.&lt;/p></description></item><item><title>Build your onw GitHub Action</title><link>https://jakubwolynko.eu/blog/my-own-action/</link><pubDate>Thu, 26 Mar 2020 18:10:14 +0100</pubDate><guid>https://jakubwolynko.eu/blog/my-own-action/</guid><description>
&lt;h1 id="welcome">Welcome&lt;/h1>
&lt;p>Sometimes age I started using GitHub Actions. It's fast, simple, easy
to configure. There isn't a lot of fancy configuration options like for
example in Jenkins, but if someone has neat, container-based pipelines,
Actions are worth considering CI/CD system. But what this &lt;code>Actions&lt;/code> really mean?
&lt;code>Actions&lt;/code> are mostly community written code that is responsible for
activities like, pushing image, sending the notification, checking source code.
There are two options for developers: Bash and JavaScript.
Unfortunately, I have two operations which haven't ready Action. So I decided
to write my Action and support the community. At least I hope it will be
helpful for someone.&lt;/p></description></item><item><title>Clojure app on Google Cloud Run</title><link>https://jakubwolynko.eu/blog/google-run-clojure/</link><pubDate>Wed, 18 Mar 2020 18:10:14 +0100</pubDate><guid>https://jakubwolynko.eu/blog/google-run-clojure/</guid><description>
&lt;h1 id="welcome">Welcome&lt;/h1>
&lt;p>I want to create a small pipeline based on GCP Run and GitHub Action.
Also increasing skills while #statathome is the best
possible solution for spending time. Let's make some real stuff.&lt;/p>
&lt;h2 id="tools-used-in-this-episode">Tools used in this episode&lt;/h2>
&lt;ul>
&lt;li>Google Cloud Platform&lt;/li>
&lt;li>Terraform&lt;/li>
&lt;li>Docker&lt;/li>
&lt;li>Clojure&lt;/li>
&lt;li>Github Action&lt;/li>
&lt;/ul>
&lt;h2 id="google-cloud-platform">Google Cloud Platform&lt;/h2>
&lt;h3 id="why-google-cloud-platform">Why Google Cloud Platform&lt;/h3>
&lt;p>I like Web GUI, command-line tools, GKE.
I also have some credits to use.
Cloud Run is very nice and cheap for a one-docker small app.&lt;/p></description></item><item><title>Build grammarbot client in Go</title><link>https://jakubwolynko.eu/blog/grammary-bot/</link><pubDate>Tue, 10 Mar 2020 18:10:14 +0100</pubDate><guid>https://jakubwolynko.eu/blog/grammary-bot/</guid><description>
&lt;h1 id="welcome">Welcome&lt;/h1>
&lt;p>While working with &lt;a href="https://www.grammarbot.io/">grammarbot&lt;/a>, I decided
to create my own command-line tool/client for working with API.
As a language, I have chosen &lt;a href="https://golang.org/">Golang&lt;/a>. After that, I have added
GitHub Action and gsutil. Also, I have configured Telegrams bot
for notification purpose. Sounds like fun? For me definitely.
So stop writing, and &lt;code>show me your code&lt;/code>.&lt;/p>
&lt;h2 id="tools-used-in-this-episode">Tools used in this episode&lt;/h2>
&lt;ul>
&lt;li>Go&lt;/li>
&lt;li>grammarbot.io API&lt;/li>
&lt;li>GitHub Action&lt;/li>
&lt;li>GCP&lt;/li>
&lt;li>Telegram&lt;/li>
&lt;/ul>
&lt;h2 id="go">Go&lt;/h2>
&lt;p>&lt;a href="https://golang.org/">Go&lt;/a> is an open-source programming language that makes
it easy to build simple, reliable, and efficient software.&lt;/p></description></item><item><title>Continuous integration/testing for static blog</title><link>https://jakubwolynko.eu/blog/add-test-to-blog/</link><pubDate>Tue, 10 Mar 2020 18:10:14 +0100</pubDate><guid>https://jakubwolynko.eu/blog/add-test-to-blog/</guid><description>
&lt;h1 id="welcome">Welcome&lt;/h1>
&lt;p>In a previous post, I created a static blog with a basic CD.
Now I need to add some CI. &lt;br>
&lt;a href="https://www.thoughtworks.com/continuous-integration">Continuous Integration&lt;/a> (CI) is a development practice
that requires developers to integrate code into a shared
repository several times a day. Each check-in is then verified
by an automated build, allowing teams to detect problems early. &lt;br>
Why it's mandatory? Because of my grammar errors, formatting errors,
and general errors. Nobody wants to have typos, broken markdown content
on the official blog page. At least I want to avoid it :)
So I decided to use &lt;a href="https://github.com/markdownlint/markdownlint">markdownlint&lt;/a>,
project as my Markdown linter. Also, I need to integrate my content with some grammar
checker.&lt;/p></description></item><item><title>Continuous delivery for static blog</title><link>https://jakubwolynko.eu/blog/blog-cds/</link><pubDate>Sun, 01 Mar 2020 18:10:14 +0100</pubDate><guid>https://jakubwolynko.eu/blog/blog-cds/</guid><description>
&lt;h1 id="welcome">Welcome&lt;/h1>
&lt;p>I'm still writing about my blog, just ordinary auto-promotion.
However, I'll try to make this particular article useful
even in a different context than blogs.
The next few lines will be dedicated to continuous delivery
(without continuous integration/testing). &lt;br>
As I showed in previous issues manual work is
easy and in some case fast. Unfortunately,
it's also boring, prone to errors and time-consuming.
How to achieve good results without self-hosted CI servers,
expensive solution or custom scripts on VPS?
At this moment in time(29022020) I know only
two nice and easy tools that meet my assumptions.
Which one will be better? Let's check it.&lt;/p></description></item><item><title>Build static blog on GitHub Pages #2</title><link>https://jakubwolynko.eu/blog/how-to-gp-2/</link><pubDate>Wed, 26 Feb 2020 18:10:14 +0100</pubDate><guid>https://jakubwolynko.eu/blog/how-to-gp-2/</guid><description>
&lt;h1 id="welcome">Welcome&lt;/h1>
&lt;p>In the previous episode, I have created a short
blog post about &lt;code>short blog post&lt;/code>. That was quite
interesting for me, in meantime, I configure my VSC for English
support, add some small fixes in the Markdown file then I realized
that the manual reload of configuration is a huge mistake in the
context of productive. What is the first tool when we start thinking
about automation? In Linux environment of course. For me, it's &lt;code>Bash&lt;/code>.
Let's begin then.&lt;/p></description></item><item><title>Build static blog on GitHub Pages #1</title><link>https://jakubwolynko.eu/blog/how-to-gp-1/</link><pubDate>Mon, 24 Feb 2020 18:10:14 +0100</pubDate><guid>https://jakubwolynko.eu/blog/how-to-gp-1/</guid><description>
&lt;h1 id="welcome">Welcome&lt;/h1>
&lt;p>Everyone sometimes thinks about personal website.
Nothing fancy, just static content with clever topics...
sounds easy, isn't it? The only problem is how to host
this page and how to do it fast (and as cheap as is possible).
So where comes &lt;a href="https://pages.github.com/">GitHub Page&lt;/a>. The main reason why I choose
this solution is the price and domain. 3sky.github.io
will look cool, almost professional. The question is why I will
do it harder than it's recommended? The answer is simple because I can.
Technology is all about curiosity and people who like to do stuff.
After a short introduction let's start.&lt;/p></description></item></channel></rss>