RSSAmplifier

Blog

Keita's Blog

Personal blog by Keita Kobayashi about software, infrastructure, geospatial systems, and life in Yakushima.

keita.blogRSS feed ↗113 posts

Latest posts

Extracting Tiles from PMTiles

There are a couple ways to extract map tiles from the various archives - the most popular being MBTiles and PMTiles these days. The best way, though, is using tile-join from fel...

2025 in Review

It's that time of year again to reflect and think about what's coming up in the future. This year was an interesting year, both personally and professionally. Personal We're app...

Taking a look at MapLibre Tiles (MLT)

日本語版はこちらです With the release of MapLibre GL JS v5.12.0, MapLibre Tiles (MLT) are now generally accessible to the normal user in a web browser! This post gives a quick introductio...

Growing Up

Until a few months ago, I never really was interested in my age, or the age of people around me. When someone asked me my age, I would have to pause and think about what year it...

Binary Blackhole リリースについて

本日、ちょっと謎の名前のプロジェクト「Binary Blackhole」(略称: BBH)の開発環境をリリースしました。 デモを見る Binary Blackhole とは? BBHは生成AIを活用し、任意の位置情報データベースと「自然言語でやり取りができる」ことを目指すプロジェクトです。現在は国土数値情報(一部)を取り込んでいます(jpksj-to-...

Next Steps

日本語版はこちらです Yesterday was my last day at Geolonia. I had been working at Geolonia since the beginning of 2021, making it just over 3 years. During my time there, I worked on many...

次の挑戦

This article is also available in English 先日、Geoloniaでの最終出勤日でした。私は2021年の初めからGeoloniaで働いていたので、3年ちょっとになりました。在籍中、多くの興味深いプロジェクトに携わりましたが、そろそろ新たな一歩を踏み出すべき時だと感じました。 この3年間で、多くの変化がありました。...

Audio Recognition in NodeJS

I live in a small town that occasionally broadcasts announcements over the radio. For the past few years, I've been building a small Raspberry Pi appliance to transcribe these b...

Happy New Year!

Happy New Year! For the past few years, I've been using the year-end break to reflect on the past year and set a theme for the next. Last year, I was mainly focused on doing wor...

A Quick Update

This year, I really wanted to work on my output, and I think I'm doing pretty well. Here are some things that I've been publishing: Regular monthly blog posts on yakushima.blog...

2023 in Review

This year was an eventful year. The biggest event was by far moving from Tokyo to Yakushima, but there were a lot of other events that happened this year. We made the move at th...

防災放送をデジタル化してみた: 続き

最初の記事 は引っ越して1ヶ月で書きましたが、そこからだいぶ経ちました。。その間色々ありましたが、地道に改善を追加しています。最初公開したときに比べると、こういうところを改善しています: - 文字起こしエンジンを Amazon Transcribe から Google Speech-to-Text に切り替え - デプロイ周りは GitHub Acti...

防災放送をデジタル化してみた

約1ヶ月前に、屋久島に移住しました。屋久島の安房地方は、防災放送が結構回数が多くて、存在感があります( 詳しくは、放送についてのブログを書いたので興味あれば読んでください)。たまに、重要な情報も流れます。ただ、聞き逃しや聞き違いとかあるので、移住前からでも、サイト化できないかと思って考え始めた。 実際に移住してからちょっと時間ができましたが、こんなの作...

Why I prefer Terraform over CloudFormation

I often get asked why I prefer Terraform over CloudFormation. I just ran into a nitpick of CloudFormation and decided to write this post before I forget about it. So, I'm curren...

Creating Vector Tiles from Scratch using TypeScript

I currently work at a Japanese mapping startup called Geolonia. We specialize in customizing and displaying geospatial data, and a big part of this is making vector tiles. There...

My Desktop Environment

With the release of the Mac Studio recently -- something that, for quite a long time, I thought I had been waiting for -- I started thinking about what the ideal desktop environ...

Serving real-time, tiled, point data directly from DynamoDB part 2 - the plan

I previously wrote about something I wanted to do with DynamoDB and geospatial data, and got a lot of responses on Twitter. In the end, I think I'm going to go with a hybrid app...

Serving real-time, tiled, point data directly from DynamoDB

Recently, I've been interested in how to serve and work with geographic data with the least amount of "work" possible. Everything here can be done pretty easily with PostGIS and...

Working with DynamoDB Global Tables

Just some stuff I've picked up while working with DynamoDB Global Tables. This was my first time using it; I used it to move a few tables from one region to another without down...

For those times you don't want to eval...

I wanted to make some advanced logic available, easily configurable via a database, in a couple apps that I've been working on recently. Honestly, I could have just stored the c...

My Brief Thoughts on the AWS Kinesis Outage

There have been multiple analyses about the recent (2020/11/25) outage of AWS Kinesis and its cascading failure mode, taking a chunk of AWS services with it -- including seeming...

Venturing in to the realm of Hackintosh-ing

Like you, I've been finding myself working from home more often than not. These days, I probably go to an office once a month. I have a 16 inch MacBook Pro, but using it in clam...

このブログの多言語対応について

このブログは、WordPress のカテゴリーを使って言語を分けています。 私自身は英語ネイティブなのでデフォルトの言語は英語に設定しておりますが、日本語の投稿も書く機会もあります。僕が理想と思ったプラグインがなかなか無くて、簡単なのを作ろうと思いました。 大体の多言語対応プラグインは機能が多くて管理が結構大変なイメージだったけど、私のような「ほとんど...

WordPress を AWS Lambda で運用する

以前 WordPress を AWS Lambda で 運用する 記事を投稿 (英語) しましたが、 EFS対応前 に執筆しました。EFS を使える様になって、WordPress を AWS Lambda 内の実行環境が完全に変わったので新しい記事を書きました。 今回は、SAM より Terraform を選びました。理由はいくつかありますが、主には私...

WordPress on AWS Lambda (EFS Edition)

I previously wrote a post about running WordPress on AWS Lambda, but it was before EFS support was announced (EFS is a managed network file system AWS provides). Being able to u...

Habits I'll be keeping after COVID-19

During the COVID-19 pandemic, schools and daycares have been closed, so my family decided to use this as an opportunity to make some habits to make sure we can get through this...

Rails on AWS: Do you need nginx between Puma and ALB?

When I set up Rails on AWS, I usually use the following pattern: (CloudFront) → ALB → Puma I was wondering: Is it always necessary to put nginx between the ALB and Puma server?...

家庭料理のようなプロダクト開発

私は料理が好きです。特にパンを焼くのが好きで、この間初めて Cookpad に公開したのは フォカッチャのレシピ でした。フリーランスでシステム開発をしているエンジニアで、ゼロスタートから運用まで持っていくことを得意分野としています。この2つの要素を組み合わせて新しい何かを作るのが趣味ですが、そのことを今まであまりブログに書いたことはありませんでした。...

A quick shortcut to open a Ruby gem in VS Code

While working on a Ruby project, I often find myself referring to the code of various libraries when it's easier than looking up the documentation. For this, I used to use code...

How I use Git

I've been using Git at work for around 10 years now. I started using Git with a GUI ( Tower \-\- back when I was eligible for the student discount!), but now I use the CLI for e...

"Logging in" to AWS ECS Fargate

I'm a big fan of AWS ECS Fargate. I've written in the past about managing ECS clusters, and with Fargate -- all of that work disappears and is managed by AWS instead. I like to...

Serverless Meetup Tokyo #13 に参加してみました

Serverless Meetup Tokyo 第13回 に参加してみました。 会場は Speee Lounge ServerlessDays Tokyo 2019 というイベントの啓発(参加者、登壇者)ありました。私も参加しようと思っています。登壇は、、検討します(笑) Azure Serverless 2019 Summer Edition 三宅...

Hosting a Single Page Application with an API with CloudFront and S3

I've written about how to host a single page application (SPA) on AWS using CloudFront and S3 before, using the CloudFront "rewrite not found errors as a 200 response with index...

Serverless WordPress on AWS Lambda

Update 2020/07/29: AWS recently announced EFS support for Lambda, which makes running WordPress in Lambda easier, with fewer limitations. Here's the new article about how to run...

Managing ECS clusters, 4 years in.

Throughout these past 4 years since AWS ECS became generally available, I've had the opportunity to manage 4 major ECS cluster deployments. Across these deployments, I've built...

"Truth in bots"

The bots should announce, “I’m not a person, or if I am, I’m not allowed to act like one.” Or, if there’s no room or time for that sentence, perhaps a simple bot at the top of t...

AWS Application Auto-scaling for ECS with Terraform

Update : Target tracking scaling is now available for ECS services. I've been working on setting up autoscaling settings for ECS services recently, and here are a couple notes f...

CodePipeline と Slack による ECS ChatOps 運用

この記事は ECS ChatOps with CodePipeline and Slack の日本語訳です 現在、Rails アプリケーションを ECS に移行する作業を進めています。現在のシステムでは Capistrano でデプロイを行っていますが、そろそろ限界が見えてきました。 EKS が使えるようになるのを待っている間、自分で Kubernet...

ECS ChatOps with CodePipeline and Slack

I'm currently working on migrating a Rails application to ECS at work. The current system uses a heavily customized Capistrano setup that's showing its signs, especially when de...

2017: A year in review

A few years ago when I was doing client work, we would regularly host clients' sites and apps for them. During this time, I was responsible for both development and keeping them...

Shipping Events from Fluentd to Elasticsearch

We use fluentd to process and route log events from our various applications. It's simple, safe, and flexible. With at-least-once delivery by default, log events are buffered at...

IAM Policy for KMS-Encrypted Remote Terraform State in S3

Don't forget to update the KMS Key Policy, too. I spent a bit of time trying to figure out why it wasn't working, until CloudTrail helpfully told me that the kms:GenerateDataKey...

Authenticating Linux logins via LDAP (Samba / Active Directory)

I've been working on infrastructure of a fleet of a few dozen Amazon EC2 instances for the past week, and with a rapidly-growing team, we decided it was appropriate to make a ce...

Upgrading PostgreSQL on Ubuntu

I recently started using Ubuntu Linux on my main development machine. That means that my PostgreSQL database is running under Ubuntu, as well. I've written guides to upgrading P...

macOS Sierra

Here are the headline features of Sierra, and my thoughts about them. Siri Don't use it on the phone, won't use it on the Mac. It would be nice if I could use it by typing, thou...

Convox

I stumbled upon Convox a couple weeks ago, and found it pretty interesting. It's led by a few people formerly from Heroku, and it certainly feels like it. A simple command-line...

A month with Linux on the Desktop

It's been a bit over a month since I installed Linux as my main desktop OS on a PC I built to replace OS X on a (cylinder) Mac Pro. I installed Ubuntu MATE 16.04. Here are my ge...

Elixir anonymous function shorthand

Elixir's Getting Started guides go over the &Module.function/arity and &(...) anonymous function shorthand, but there are a couple neat tricks that are not immediately apparent...

Elixir: A year (and a few months) in

In the beginning of 2015, I wrote a blog post about how my then-current programming language of choice (Ruby) was showing itself to not be as future-proof as I would have liked...

tokyo.ex #1

I attended my first Elixir-related meetup yesterday, tokyo.ex 1. (If the slides don't work here, I have also uploaded them to YouTube.) In my 5-minute lightning talk, I talked a...