Skip to content

Instantly share code, notes, and snippets.

@Hogeyama
Hogeyama / PostgreSQL.hs
Last active November 4, 2024 17:10
Reusable PostgreSQL TestContainer
module TestUtil.PostgreSQL
( PostgreSQL (..)
, withPostgreSQL
, withSharedPostgreSQL
, runQueryBeforeAll
, runQueryBefore
, stopAllContainers
) where
import Control.Monad.Logger (MonadLoggerIO, runNoLoggingT, runStderrLoggingT)
@Hogeyama
Hogeyama / justfile
Last active December 17, 2025 05:43
md2textile by pandoc, textile2md by orchitech/redmine_reformat microservice
init:
#!/usr/bin/env -S bash -euo pipefail -o noclobber
echo "[Generating Dockerfile...]"
cat - > Dockerfile <<'EOF'
FROM redmine:6.0.3
RUN apt-get update && apt-get install -y --no-install-recommends \
build-essential \
pkg-config \
libxml2-dev \
libxslt1-dev \
/**
* Example:
*
* ```java
* withEarlyReturn(Result.class, (c) -> {
* var value = switch (someAction()) {
* case Success(var value) -> {
* return value;
* }
* case Failure(var error) -> {
@Hogeyama
Hogeyama / add_backlinks.ts
Created September 24, 2025 16:01
Add backlinks to markdown

これは何?

Docker公式ではaptのキャッシュの方法として以下の例を紹介している。 しかし、例の中で言及されていない id をうまく設定しないとキャッシュがうまく動かない(あるいは最悪依存関係が壊れる?)のではないかと気づいたのでデモンストレーションする

# syntax=docker/dockerfile:1
FROM ubuntu
RUN rm -f /etc/apt/apt.conf.d/docker-clean; echo 'Binary::apt::APT::Keep-Downloaded-Packages "true";' > /etc/apt/apt.conf.d/keep-cache
RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
@Hogeyama
Hogeyama / .envrc
Created April 2, 2026 13:31
NixOS + Playwright CLI demo
use flake
PATH_add node_modules/.bin

ドメインモデル貧血症はなぜ生まれるのか — Decision パターンで DDD トリレンマを解くについて、Vladimir Khorikov さんなら「いや、それは impure だよ」と言う気がしてきた。説明してみる。


まず Khorikov さんは、プロセス外への依存をインターフェースやデリゲートで包んでも、純粋性は回復しないと明言している。これは次のようなものを指す。

interface IViewService {
  boolean isFollowing(UserId viewer, UserId author);
  boolean isVip(UserId viewer);