1
0

Compare commits

..

3 Commits

15 changed files with 3496 additions and 395 deletions

View File

@ -1,3 +1,6 @@
events/*
japan/*
plamo/*
posts/*
radio/*
software/*

File diff suppressed because it is too large Load Diff

View File

@ -32,6 +32,29 @@ This was the first separate project I created for the company, so I set up a <a
* If the file is cached on the web server, then this file is opened.
* If the file is not cached, the web server downloads the file from the database server and then opens it.
<figure class="text-center">
<picture class="d-flex justify-content-center">
<source
media="(max-width: 510px)"
srcset="/images/software/projects/attachment-module/file-uploader-w240.webp"
/>
<source
media="(max-width: 850px)"
srcset="/images/software/projects/attachment-module/file-uploader-w480.webp"
/>
<img
src="/images/software/projects/attachment-module/file-uploader-w800.webp"
alt="Flow diagram"
class="img-fluid"
/>
</picture>
<figcaption class="figure-caption mt-2">
<a href="/images/software/projects/attachment-module/file-uploader-w800.webp">
Flow diagram
</a>
</figcaption>
</figure>
## Lessons learnt
The project owner did not want the users to separately log in to the web server of the attachment module. So a big security issue is that anyone with the link, can access uploaded files. At the time this was agreed to be a "temporary" solution. The project was deployed in 2017 and in 2021 this project was still running though. After all, the business must go on and if the problem's symptoms seems fixed, why bother with it further...
@ -41,3 +64,4 @@ Because other users could access other uploaded files using the right link, it w
A big learning point for me was that not to compromise security, even for projects that are considered temporary. A problem never occurred. This compromise caused silly decisions to not allow users to delete their own files. I will defend my standpoint much more and use this project as an example.
The actual problem here though, is why the other developers were not able to create a simple file upload feature.

File diff suppressed because it is too large Load Diff

View File

@ -38,6 +38,29 @@ This was the first separate project I created for the company, so I set up a <a
* If the file is cached on the web server, then this file is opened.
* If the file is not cached, the web server downloads the file from the database server and then opens it.
<figure class="text-center">
<picture class="d-flex justify-content-center">
<source
media="(max-width: 510px)"
srcset="/images/software/projects/attachment-module/file-uploader-w240.webp"
/>
<source
media="(max-width: 850px)"
srcset="/images/software/projects/attachment-module/file-uploader-w480.webp"
/>
<img
src="/images/software/projects/attachment-module/file-uploader-w800.webp"
alt="Flow diagram"
class="img-fluid"
/>
</picture>
<figcaption class="figure-caption mt-2">
<a href="/images/software/projects/attachment-module/file-uploader-w800.webp">
Flow diagram
</a>
</figcaption>
</figure>
## Lessons learnt
The project owner did not want the users to separately log in to the web server of the attachment module. So a big security issue is that anyone with the link, can access uploaded files. At the time this was agreed to be a "temporary" solution. The project was deployed in 2017 and in 2021 this project was still running though. After all, the business must go on and if the problem's symptoms seems fixed, why bother with it further...

File diff suppressed because it is too large Load Diff

View File

@ -32,6 +32,29 @@ This was the first separate project I created for the company, so I set up a <a
* If the file is cached on the web server, then this file is opened.
* If the file is not cached, the web server downloads the file from the database server and then opens it.
<figure class="text-center">
<picture class="d-flex justify-content-center">
<source
media="(max-width: 510px)"
srcset="/images/software/projects/attachment-module/file-uploader-w240.webp"
/>
<source
media="(max-width: 850px)"
srcset="/images/software/projects/attachment-module/file-uploader-w480.webp"
/>
<img
src="/images/software/projects/attachment-module/file-uploader-w800.webp"
alt="Flow diagram"
class="img-fluid"
/>
</picture>
<figcaption class="figure-caption mt-2">
<a href="/images/software/projects/attachment-module/file-uploader-w800.webp">
Flow diagram
</a>
</figcaption>
</figure>
## Lessons learnt
The project owner did not want the users to separately log in to the web server of the attachment module. So a big security issue is that anyone with the link, can access uploaded files. At the time this was agreed to be a "temporary" solution. The project was deployed in 2017 and in 2021 this project was still running though. After all, the business must go on and if the problem's symptoms seems fixed, why bother with it further...

View File

@ -1,17 +0,0 @@
---
language: "en"
title: New site
author: Kevin Matsubara
date: 2025-12-14
logosub: News posts
---
Today I released another iteration of my personal website.
My website has evolved often, it started with literally text files opened in Microsoft Notepad and then saved as HTML and CSS files into a folder. My "website" was nothing more than a collection of files on my laptop back in 2005 or so.
Then it was expanded upon with PHP in 2007 and later rebuilt with Python in 2011.
Then everything was rebuilt using React in 2019. And while it worked fine for many years, I just don't see it being a good tool for a simple website such as mine. I do not have many interactive JavaScript elements anyway. My site just consists of simple articles and text.
So now I switched to Hakyll, a website framework made in Haskell. Mostly because I wanted to learn more about functional programming in my free time and move away from Meta's React. And while I rebuilt the site again, now that my content existed already as Markdown files, I had a much easier time moving. No need for a database migration, just simple files.

View File

@ -0,0 +1,68 @@
---
language: "en"
title: New computer
author: Kevin Matsubara
date: 2017-08-03
logosub: Back when parts were affordable
---
I built my computer today.
* Casing: Fracture Design Define R5
* Motherboard: Asus Prime X370-Pro
* Processor: AMD Ryzen 5 1600X
* Water Cooler: NZXT Kraken X52
* Graphics Card: ASUS ROG STRIX RX560 4G
* Memory: 2x Corsair Vengeance 8 gb
* Primary Drive: Kingston 2.5” 512 gb SSDnow KC400
* Secondary Drives: 2x Seagate Barracuda 3.5” 4 tb ST4000DM005
* Power Supply: Seasonic Prime 750W Platinum
* And some simple USB powered speakers from Creative, model A50.
<figure class="text-center">
<picture class="d-flex justify-content-center">
<source
media="(max-width: 510px)"
srcset="/images/posts/2018/20170802_230030-w240.webp"
/>
<source
media="(max-width: 850px)"
srcset="/images/posts/2018/20170802_230030-w480.webp"
/>
<img
src="/images/posts/2018/20170802_230030-w800.webp"
alt="New computer parts"
class="img-fluid"
/>
</picture>
<figcaption class="figure-caption mt-2">
<a href="/images/posts/2018/20170802_230030-w800.webp">
New computer parts
</a>
</figcaption>
</figure>
So far it has been a real breeze to build, the only setback I had with the new hardware was that the board would not POST BOOT for some reason. I pulled the second memory module from the socket and tried again and that worked. Installed Ubuntu 17.04 as my current OS, making it also my first Linux system to use as my main machine. After installing Ubuntu and shutting down I placed the memory module back and the system booted fine since then.
<figure class="text-center">
<picture class="d-flex justify-content-center">
<source
media="(max-width: 510px)"
srcset="/images/posts/2017/20170803_234456-w240.webp"
/>
<source
media="(max-width: 850px)"
srcset="/images/posts/2017/20170803_234456-w480.webp"
/>
<img
src="/images/posts/2017/20170803_234456-w800.webp"
alt="Fracture Design Define R5 casing"
class="img-fluid"
/>
</picture>
<figcaption class="figure-caption mt-2">
<a href="/images/posts/2017/20170803_234456-w800.webp">
Fracture Design Define R5 casing
</a>
</figcaption>
</figure>

View File

@ -0,0 +1,17 @@
---
language: "en"
title: New site
author: Kevin Matsubara
date: 2025-12-14
logosub: Blogger
---
Today I released another iteration of my personal website.
My website has evolved often, it started with literally text files opened in Microsoft Notepad and then saved as HTML and CSS files into a folder. My "website" was nothing more than a collection of files on my laptop back in 2005 or so.
Then it was expanded upon with PHP in 2012. The "include" function was so amazing, no longer duplicated HTML! And later I rebuilt it again with Python and Django in 2011.
Then everything was rebuilt using React in 2022. And while it worked fine for many years, I just don't see it being a good tool for a simple website such as mine. I do not have many interactive JavaScript elements anyway. My site just consists of simple articles.
So in 2026 I will have switched to Hakyll, a website framework made in Haskell. Mostly because I wanted to learn more about functional programming in my free time and move away from Meta's React. And while I rebuilt the site again, now that my content existed already as Markdown files, I had a much easier time moving. No need for a database migration, just simple files.

View File

@ -0,0 +1,51 @@
---
language: "en"
title: Hobby books
author: Kevin Matsubara
date: 2026-01-09
logosub: Likes reading books
---
I bought some new hobby books from <a href="https://ak-interactive.com/">AK Interactive</a> and <a href="https://modiphius.net/">Mōdiphiüs</a>.
**Figure Painting Techniques F.A.Q. 2** by <a href="https://www.arnauminiatures.com/">Arnau Lázaro</a><br/>is a 320 page book packed with tutorials, colour theory and painting techniques. It has useful guides on how to create effects like non-metallic metal (NMM), object source lighting (OSL), other useful things like shadow, smoke, leather. Also weathering your figures and adding those effects to make them stand out is included. It is a very detailed book and a great reference for painting miniatures.
---
**Learning From Expert - Mastering Metal Paining - Character Model Edition** by <a href="https://www.modelart.jp">modelart</a><br/>
is a 153 page book with lots of technique exlanations using kits from Bandai, Kotobukiya and Wave. There is a section that shows several pages where lots of metallic paints are show side-by-side, so you can determine which paint to buy in order to achieve a certain metal effect.
---
**Sci-Fi F.A.Q.** by <a href="https://www.paintonplastic.com/">Lincoln Wright</a><br/>
is a 427 page book that would be the only book you need if you want to make science-fiction model kits. A very detailed guide on making Star Wars, Gundam, Maschinen Krieger. Mazinger and Batman vehicles are also featured in there. Lots of crafting and painting techniques are shown in this book.
---
**Rangers of Shadow Deep** by <a href="https://www.josephamccullough.com">Joseph A. McCullough</a><br/>
And its expansion, **A Gathering of Heroes**, are tabletop wargaming books. I bought these to see if solo-wargaming is something I can use to give my miniatures a "purpose". It should also motivate me to finish my stack of unpainted miniatures, if I can play a game with them. I have not yet delved into these books, but if I enjoy playing the game, I will write a report on them.
---
<figure class="text-center">
<picture class="d-flex justify-content-center">
<source
media="(max-width: 510px)"
srcset="/images/posts/2026/20260109_162726-w240.webp"
/>
<source
media="(max-width: 850px)"
srcset="/images/posts/2026/20260109_162726-w480.webp"
/>
<img
src="/images/posts/2026/20260109_162726-w800.webp"
alt="New hobby books"
class="img-fluid"
/>
</picture>
<figcaption class="figure-caption mt-2">
<a href="/images/posts/2026/20260109_162726-w800.webp">
New hobby books
</a>
</figcaption>
</figure>

View File

@ -0,0 +1,68 @@
---
language: "nl"
title: Nieuwe computer
author: Kevin Matsubara
date: 2017-08-03
logosub: Toen computeronderdelen nog betaalbaar waren
---
Ik heb mijn computer vandaag gebouwd.
* Behuizing: Fracture Design Define R5
* Moederbord: Asus Prime X370-Pro
* Processor: AMD Ryzen 5 1600X
* Water koeler: NZXT Kraken X52
* Grafische kaart: ASUS ROG STRIX RX560 4G
* Memory: 2x Corsair Vengeance 8 gb
* Primaire Drive: Kingston 2.5” 512 gb SSDnow KC400
* Secundaire Drives: 2x Seagate Barracuda 3.5” 4 tb ST4000DM005
* Voeding: Seasonic Prime 750W Platinum
* En enkele simpele USB speakers van Creative, model A50.
<figure class="text-center">
<picture class="d-flex justify-content-center">
<source
media="(max-width: 510px)"
srcset="/images/posts/2018/20170802_230030-w240.webp"
/>
<source
media="(max-width: 850px)"
srcset="/images/posts/2018/20170802_230030-w480.webp"
/>
<img
src="/images/posts/2018/20170802_230030-w800.webp"
alt="Nieuwe computeronderdelen"
class="img-fluid"
/>
</picture>
<figcaption class="figure-caption mt-2">
<a href="/images/posts/2018/20170802_230030-w800.webp">
Nieuwe computeronderdelen
</a>
</figcaption>
</figure>
Het was zeer eenvoudig om dit te bouwen. Het enige probleem dat ik had met de nieuwe hardware was dat het moederbord geen POST BOOT wou doen. Ik trok de tweede memory-module uit het slot en probeerde toen nog een keer. Dat werkte. Ik installeerde Ubuntu 17.04 als mijn huidige besturingsssysteem en daarmee mijn eerste Linux systeem. Nadat ik Ubuntu had geinstalleerd en de computer had uitgeschakelt, kon ik de memory-module terug plaatsen. Sindsdien had het systeem geen problemen meer met opstarten.
<figure class="text-center">
<picture class="d-flex justify-content-center">
<source
media="(max-width: 510px)"
srcset="/images/posts/2017/20170803_234456-w240.webp"
/>
<source
media="(max-width: 850px)"
srcset="/images/posts/2017/20170803_234456-w480.webp"
/>
<img
src="/images/posts/2017/20170803_234456-w800.webp"
alt="Fracture Design Define R5 behuizing"
class="img-fluid"
/>
</picture>
<figcaption class="figure-caption mt-2">
<a href="/images/posts/2017/20170803_234456-w800.webp">
Fracture Design Define R5 behuizing
</a>
</figcaption>
</figure>

View File

@ -0,0 +1,40 @@
---
language: "nl"
title: Nieuwe website
author: Kevin Matsubara
date: 2025-12-14
logosub: Blogger
---
Vandaag release ik de volgende iteratie van mijn persoonlijke website.
Mijn website is a vaak veranderd, het begon me simpele text bestandje gemaakt in Microsoft Notepad en toen opgeslagen als HTML en CSS bestanden in een mapje. Mijn "website" van toen was niets meer dan een collectie bestanden op mijn laptop uit 2005.
Dit was verder uitgebreid met PHP in 2011. De "include" functie was toen fantastisch, geen depliceerde HTML meer! En later is de website nog een keer veranderd met Python en Django in 2016 met domein: "kevinmatsubara.com".
Daarna werd alles nog een keer compleet opnieuw gebouwd in 2019. En dat heeft vele jaren goed gewerkt, maar het is niet echt een goede tool voor een simpele website als de mijne. Ik heb helemaal niet zoveel interactieve JavaScript elementen nodig. Mijn site is gewoon een verzameling artikelen.
En nu in 2026 ben ik overgegaan naar Hakyll, een website framework gemaakt in Haskell. Vooral omdat ik meer wil leren functioneel te programmeren in mijn vrije tijd en om weg te stappen van Meta's React. En hoewel ik de site nu weer opnieuw heb gebouwd, nu dat mijn content al bestond als Markdown bestanden, was het veel gemakkelijker om alles over te zetten. Geen database migraties, gewoon simpele bestanden.
<figure class="text-center">
<picture class="d-flex justify-content-center">
<source
media="(max-width: 510px)"
srcset="/images/posts/2025/2008-03-30-w240.webp"
/>
<source
media="(max-width: 850px)"
srcset="/images/posts/2025/2008-03-30-w480.webp"
/>
<img
src="/images/posts/2025/2008-03-30-w800.webp"
alt="Website bouwen in 2008"
class="img-fluid"
/>
</picture>
<figcaption class="figure-caption mt-2">
<a href="/images/posts/2025/2008-03-30-w800.webp">
Website bouwen in 2008
</a>
</figcaption>
</figure>

View File

@ -0,0 +1,51 @@
---
language: "nl"
title: Hobby books
author: Kevin Matsubara
date: 2026-01-09
logosub: Leest graag boeken
---
I bought some new hobby books from <a href="https://ak-interactive.com/">AK Interactive</a> and <a href="https://modiphius.net/">Mōdiphiüs</a>.
**Figure Painting Techniques F.A.Q. 2** by <a href="https://www.arnauminiatures.com/">Arnau Lázaro</a><br/>is a 320 page book packed with tutorials, colour theory and painting techniques. It has useful guides on how to create effects like non-metallic metal (NMM), object source lighting (OSL), other useful things like shadow, smoke, leather. Also weathering your figures and adding those effects to make them stand out is included. It is a very detailed book and a great reference for painting miniatures.
---
**Learning From Expert - Mastering Metal Paining - Character Model Edition** by <a href="https://www.modelart.jp">modelart</a><br/>
is a 153 page book with lots of technique exlanations using kits from Bandai, Kotobukiya and Wave. There is a section that shows several pages where lots of metallic paints are show side-by-side, so you can determine which paint to buy in order to achieve a certain metal effect.
---
**Sci-Fi F.A.Q.** by <a href="https://www.paintonplastic.com/">Lincoln Wright</a><br/>
is a 427 page book that would be the only book you need if you want to make science-fiction model kits. A very detailed guide on making Star Wars, Gundam, Maschinen Krieger. Mazinger and Batman vehicles are also featured in there. Lots of crafting and painting techniques are shown in this book.
---
**Rangers of Shadow Deep** by <a href="https://www.josephamccullough.com">Joseph A. McCullough</a><br/>
And its expansion, **A Gathering of Heroes**, are tabletop wargaming books. I bought these to see if solo-wargaming is something I can use to give my miniatures a "purpose". It should also motivate me to finish my stack of unpainted miniatures, if I can play a game with them. I have not yet delved into these books, but if I enjoy playing the game, I will write a report on them.
---
<figure class="text-center">
<picture class="d-flex justify-content-center">
<source
media="(max-width: 510px)"
srcset="/images/posts/2026/20260109_162726-w240.webp"
/>
<source
media="(max-width: 850px)"
srcset="/images/posts/2026/20260109_162726-w480.webp"
/>
<img
src="/images/posts/2026/20260109_162726-w800.webp"
alt="New hobby books"
class="img-fluid"
/>
</picture>
<figcaption class="figure-caption mt-2">
<a href="/images/posts/2026/20260109_162726-w800.webp">
New hobby books
</a>
</figcaption>
</figure>

View File

@ -29,7 +29,7 @@ main = hakyll $ do
>>= loadAndApplyTemplate "templates/default.html" staticPageContext
>>= relativizeUrls
match "posts/*" $ do
match "posts/**/*" $ do
route $ setExtension "html"
compile $ do
identifier <- getUnderlying
@ -377,16 +377,16 @@ main = hakyll $ do
]) $ do
route idRoute
compile $ do
posts <- recentFirst =<< loadAll "posts/*"
now <- unsafeCompiler getCurrentTime
ident <- getUnderlying
--language <- getMetadataField' ident "language"
identifier <- getUnderlying
metadata <- getMetadata identifier
let language = lookupString "language" metadata
let lang = fromMaybe "en" language
posts <- recentFirst =<< loadAll (fromGlob ("posts/" ++ lang ++ "/*"))
now <- unsafeCompiler getCurrentTime
ident <- getUnderlying
--language <- getMetadataField' ident "language"
-- Seven days from today.
let cutoff = addUTCTime (7 * 24 * 60 * 60) now