<feed xmlns="http://www.w3.org/2005/Atom"> <id>/</id><title>Personal blog</title><subtitle>My personal blog, where I share my thoughts and ideas on various topics. I write about programming, security and various other things that interest me. I also share my projects and experiments.</subtitle> <updated>2025-05-27T14:04:56+00:00</updated> <author> <name>Vilppu Tiilikainen</name> <uri>/</uri> </author><link rel="self" type="application/atom+xml" href="/feed.xml"/><link rel="alternate" type="text/html" hreflang="en" href="/"/> <generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator> <rights> © 2025 Vilppu Tiilikainen </rights> <icon>/assets/img/favicons/favicon.ico</icon> <logo>/assets/img/favicons/favicon-96x96.png</logo> <entry><title>Leetcode 2: Add Two Numbers</title><link href="/posts/leetcode-2/" rel="alternate" type="text/html" title="Leetcode 2: Add Two Numbers" /><published>2025-05-26T00:00:00+00:00</published> <updated>2025-05-26T00:00:00+00:00</updated> <id>/posts/leetcode-2/</id> <content type="text/html" src="/posts/leetcode-2/" /> <author> <name>Vilppu Tiilikainen</name> </author> <category term="leetcode" /> <summary>Problem Description You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order, and each of their nodes contains a single digit. Add the two numbers and return the sum as a linked list. You may assume the two numbers do not contain any leading zero, except the number 0 itself. Thought Process First I thought about picking the longer...</summary> </entry> <entry><title>Parsing and Validation: You should always understand what you are parsing and not be hyperfocused on clean code</title><link href="/posts/problems-of-clean-code-and-lack-of-understanding/" rel="alternate" type="text/html" title="Parsing and Validation: You should always understand what you are parsing and not be hyperfocused on clean code" /><published>2025-04-28T00:00:00+00:00</published> <updated>2025-05-26T09:00:59+00:00</updated> <id>/posts/problems-of-clean-code-and-lack-of-understanding/</id> <content type="text/html" src="/posts/problems-of-clean-code-and-lack-of-understanding/" /> <author> <name>Vilppu Tiilikainen</name> </author> <category term="security" /> <summary>Introduction Everyone wants to write clean code, but often the cleanest solution is not the most secure one. I will be discussing a real world example of a company that we will refer to as example.com that had a problem with parsing XMPP tags. I think this is a good example of how focusing too much on clean code can lead to security vulnerabilities. I will also be discussing how the lack of per...</summary> </entry> <entry><title>Parsing and Validation: Dangerous Differences between programming languages and implementations</title><link href="/posts/dangerous-differences-in-parsing/" rel="alternate" type="text/html" title="Parsing and Validation: Dangerous Differences between programming languages and implementations" /><published>2025-04-28T00:00:00+00:00</published> <updated>2025-05-27T14:04:31+00:00</updated> <id>/posts/dangerous-differences-in-parsing/</id> <content type="text/html" src="/posts/dangerous-differences-in-parsing/" /> <author> <name>Vilppu Tiilikainen</name> </author> <category term="security" /> <summary>Introduction RFCs are the backbone of internet standards, and they often define how data should be parsed and validated. However, different programming languages and implementations can interpret these RFCs in various ways, leading to potential security vulnerabilities. This is largely due to RFCs using vague language and words like “should” and “may,” which can be interpreted differently by di...</summary> </entry> <entry><title>Leetcode 14: Longest Common Prefix</title><link href="/posts/leetcode-14/" rel="alternate" type="text/html" title="Leetcode 14: Longest Common Prefix" /><published>2025-04-27T00:00:00+00:00</published> <updated>2025-04-29T20:30:45+00:00</updated> <id>/posts/leetcode-14/</id> <content type="text/html" src="/posts/leetcode-14/" /> <author> <name>Vilppu Tiilikainen</name> </author> <category term="leetcode" /> <summary>Problem Description Write a function to find the longest common prefix string amongst an array of strings. If there is no common prefix, return an empty string “”. Thought Process First I thought about sorting the strs array based on string length so I would not have to worry about indexing out of bounds. However I quickly realised that I could just use the first string in the array as a refer...</summary> </entry> <entry><title>Leetcode 1: Two Sum</title><link href="/posts/leetcode-1/" rel="alternate" type="text/html" title="Leetcode 1: Two Sum" /><published>2025-04-27T00:00:00+00:00</published> <updated>2025-04-29T20:30:45+00:00</updated> <id>/posts/leetcode-1/</id> <content type="text/html" src="/posts/leetcode-1/" /> <author> <name>Vilppu Tiilikainen</name> </author> <category term="leetcode" /> <summary>Problem Description Given an array of integers nums and an integer target, return indices of the two numbers such that they add up to target. You may assume that each input would have exactly one solution, and you may not use the same element twice. You can return the answer in any order. Thought Process First I thought about having 2 nested loops to check each pair of numbers in the array. ...</summary> </entry> </feed>
