Skip to content

Instantly share code, notes, and snippets.

@euske
euske / server.js
Last active June 2, 2025 01:13
Simple HTTP Server in NodeJS
#!/usr/bin/env node
const http = require('http');
const port = parseInt(process.env.PORT || '8080');
const contentType = process.env.CONTENT_TYPE || 'text/html';
const body = process.env.BODY ?? '<h1>Hello world!</h1>';
const server = http.createServer((request, response) => {
console.info(request.socket?.remoteAddress, request.method, request.url, request.httpVersion);
console.info(request.headers);
request.on('data', (data) => { console.info('data', data) });
response.writeHead(200, {'Content-Type': contentType, 'Access-Control-Allow-Origin': '*'});
@euske
euske / debugging.md
Last active June 2, 2025 00:26
"Debugging"概要

Debugging まとめ

https://debuggingrules.com/

どんなやっかいなバグでも見つける9つの原則

  • バグを発見するのに時間がかかる人は、デバッグの基本的な原則を無視しているためだ。 ひとたび体系的に原則を適用できるようになれば、バグを見つけるのは早くなる。

  • 効率的なデバッグのためには、これらの原則はすべて必要だ。

ソフトウェア開発における4S

おもに製造業で使われている「4S」の概念は、ソフトウェア開発においてもほぼ適用できる: https://ja.wikipedia.org/wiki/4S%E9%81%8B%E5%8B%95

ソフトウェア開発においても、作業環境の質は作業の質に影響する。 よく整理整頓された環境は日々のストレスを減らし、ミスを減らし、思考を明晰にする助けとなる。

なお、調理の世界にも同様の規範がある: https://en.wikipedia.org/wiki/Mise_en_place

@euske
euske / tweets.html
Created August 10, 2023 05:57
Tweets by mootastic (2021-03-19 ~ 2023-08-06)
This file has been truncated, but you can view the full file.
<!DOCTYPE html>
<head><meta charset="UTF-8">
<title>Tweets by mootastic</title>
</head><body>
<h1>Tweets by mootastic</h1>
<ol>
<li id="1372720610531450884"><strong>2021-03-19 01:32 (Fri) +0900</strong>
<p>「なぜ宇宙飛行士はLinuxを使うのかって? そりゃ宇宙じゃウインドウを開けないからさ!」 <a href="http://pbs.twimg.com/media/EwziGW0VcAIyN2K.png">http://pbs.twimg.com/media/EwziGW0VcAIyN2K.png</a>
@euske
euske / beware.md
Last active June 4, 2023 05:24
悪意あるパッケージの注意喚起

そのプラグイン、大丈夫ですか?

開発者は格好のカモ

開発者用のマシンには以下のような情報が存在します:

  • 各種APIのトークン
  • クラウド用アカウントのパスワード
  • SSH用の鍵
  • 証明書の秘密鍵
@euske
euske / parable.md
Last active May 13, 2023 14:47
あるたとえ話 (A parable) - ダイクストラによる、プログラマの魂をもった技師の話。

あるたとえ話 (A parable)

https://www.cs.utexas.edu/~EWD/transcriptions/EWD05xx/EWD594.html

-- エドガー W. ダイクストラ (Edsger W. Dijkstra)

その昔、鉄道会社がありました。その (おそらくはやり手の) 経営者は、 トイレをすべての客車につけず、50% の客車にだけつけるようにすれば、会社の 初期投資をずっと少なくできることに気づき、そのように指示しました。

@euske
euske / dip.md
Last active March 13, 2023 08:26
依存性逆転の原則 (Dependency Inversion Principle) と interface

依存性逆転の原則 (Dependency Inversion Principle) と interface

依存性逆転の原則とは

身近な例で考えてみよう。 あなたの会社は家庭用コンセントにつなぐ電気製品を開発している。 たまたま開発現場に Panasonic製のコンセントがあったので、 その差し込み口の寸法に合わせてプラグを設計した。 しかしこの方法には問題がある。Panasonic製のコンセントには ぴったり合っていたとしても、他社製のコンセントに対してはどうだろうか?

@euske
euske / depinj.md
Last active July 31, 2024 08:16
依存注入 (Dependency Injection) と test doubles

依存注入 (Dependency Injection) と test doubles

依存の注入とは何か?

たとえば、新しく作ったウェブブラウザを自動テストすることを考えてみよう。 このブラウザはキーボードとマウスからの入力に従って動作し、画面を出力するものとする。

          +-------------+
          |             |

keyboard ---> |

@euske
euske / retrospective.md
Last active March 6, 2023 09:36
How to do Retrospective

レトロ (Retrospective) のやりかた

cf. https://tanzu.vmware.com/developer/practices/3-column-retro/

意義:

  • メンバーに一息ついてもらい、今週起こったことと今後の見通しを考えてもらう。
  • 毎週1回やる(週の途中にやるという手もある)。
  • メンバー全員の意見を聞く機会を設ける (心理的安全性の確認)。

準備:

@euske
euske / devthoughts.md
Last active July 3, 2023 02:09
Thoughts on Software Development

ソフトウェア開発について思うこと

理想

  • 役に立つソフトウェアを作る。
  • 長く使えるソフトウェアを作る。
  • しかもなるべく早く作る。

牛丼もソフトウェアも究極的な目標は同じである: はやい、うまい、やすい。