にゃみかんてっくろぐ

猫か百合を見守る壁になりたい

プロダクションレディ開発プロセス ―SIer の開発標準に学ぶ

新しい Web サービスを「本番環境に載せられる品質で作っていく」のは大変です。一体何から考えればいいのでしょう。インフラ? テーブル? API 仕様? 「MVP (Minimum Viable Product) で」とか「アジャイルで」といった話はよく聞きます。一方で「どのよう…

VTuber が歌った曲をまとめたい 後半(実装編)

VTuber が歌った曲をまとめたい 前半(検討編) の続きです。 前半(検討編) のおさらい ざっくりイメージ データ抽出 (Ruby) API クォータ チャンネル URL → アップロード済み動画 プレイリスト アップロード済み動画 プレイリスト → プレイリストアイテム プ…

VTuber が歌った曲をまとめたい 前半(検討編)

VTuber にハマり気味です。 百合と V の沼につかりながらでもコードは書けます!!!(まず 1 週間) pic.twitter.com/2fYhms1cKq— たいぷらいた〜 (@no_clock) 2020年6月23日 その中で、「過去、どんな曲を歌っていたのかな」と知りたくなりました。その欲…

yarn/npm outdated は、古いパッケージがあると終了コード 1 を返すバージョンもある

コードリーディングのメモ。 まとめ outdated コマンドで古いパッケージが見つかった場合の終了コード: パッケージマネージャ バージョン リリース日 終了コード Yarn >=0.26.0 2017/06/06 1 <0.26.0 - 0 npm >=7.0.0 2020/10/13 0 >=4.0.0 <7.0.0 2016/10/2…

2020 年を振り返る

以前、はじめて転職活動をした際に「過去をしっかり振り返っておくことが大事」と言われたことがあり、実感として確かに大事だと感じた。 ということで 2020 年にやったことを整理しておく。 技術的なもの 仕事: SRE 寄り AtCoder 新規 Web サービス 既存サ…

システムコールトレーシング: 吸い込まれる標準入力を観察する

Linuxその2 Advent Calendar 2020 18 日目の記事です。 「スクリプト書いてたんですが、なぜか途中で止まるんです」と言われた。 止まっている様子(シンタックスハイライトが綺麗でないので画像で) 確かに yarn gen で止まっている。 yarn start も date …

同じドメインに A レコードが複数あるときのクライアントの挙動 (Chrome, Safari, curl)

おことわり: TCP/IP スタックの設定値などを深追いしておらず、「こう動いたが、根拠は調べていない」というレベルのものです。 いきなりまとめ Google Chrome (Windows 10, macOS Mojave), curl (WSL2 Ubuntu, macOS Mojave) は、一定間隔 (21~75秒) で順…

「インデックスが作成されていないカラムを WHERE 句に書かない」コーディング規約と、暗黙的なコンテキスト

一部フィクションを含むポエムです。 XX システム SQL コーディング規約 性能劣化の可能性があるため、インデックスが作成されていないカラムを WHERE 句に書かないこと。 (インデックスの作成有無はテーブル定義書を参照) こうしたコーディング規約が あ…

Amazon ECS: curl コンテナを使ってタスク定義だけでモックサーバを設定する

3 行まとめ API のモック化ツール WireMock には、動的にスタブ/モックを定義できる Admin API がある ECS タスク定義に「 Admin API を叩く curl コンテナ」を加えて WireMock のスタブ/モック定義を行う タスク定義だけ完結するので楽 タスク定義だけでモ…

Traefik でお手軽に Docker コンテナの無停止 Blue/Green デプロイを実現した

3 行でまとめると: Traefik を使って Docker Compose だけで無停止デプロイを実現。 docker-compose.yml に定義するだけ、他の設定ファイルは不要のお手軽さ。 コンテナは graceful shutdown するようにしておく。

個人開発サービスのログをぜんぶ CloudWatch Logs にまとめた

3 行でまとめると ログを CloudWatch Logs に集約した Metric filter でエラー数をメトリクス化した CloudWatch Alarms ではなく Lambda でエラーを Slack 通知させるようにした CloudWatch Logs にログを集約した zenrei.nyamikan.net をすべて Docker 化し…

AWS CDK for .NET: C# で CloudWatch Metric Filter を設定する

「 .NET サポートあるじゃん」と思ったのでちょっと触ってみました。 手順とコード Getting Started With the AWS CDK - AWS Cloud Development Kit (AWS CDK) を参照して npm で AWS CDK をインストールする。 Working with the AWS CDK in C# - AWS Cloud …

ぜんぶ Docker コンテナにする (HTTPS+IPv6 対応 )

事例が何かの参考になればと思ったので記事にしました。 3行でまとめると Zenrei (zenrei.nyamikan.net) の Web サーバ・ API サーバ・ DB サーバすべてを Docker 化した SteveLTN/https-portal という Let's Encrypt の証明書取得を自動化した nginx のリバ…

CRCチェックつきでAM2320の温湿度を読み取る (Raspberry Pi + Python 3)

温湿度センサモジュール AM2320の温湿度を取得するサンプルコードは数あれど、CRCチェックまでやっているコードが見当たりません。 ということで、データシートを見つつ書きました。 import smbus import time i2c = smbus.SMBus(1) address = 0x5c # Step o…

Linux コマンドの最長しりとりを求める

「 Linux コマンドでしりとりをすると、最長でいくつ繋がるのか?」 この疑問を解消すべく、最長しりとりを求めるプログラムを実装しました。 結論 論文「最長しりとり問題の解法」に沿って実装 CentOS 8 Docker イメージでは 326 コマンドが最長 ソースコー…

紅葉スポットと紅葉状況をツイートから推定する

ひとり開発 Advent Calendar 2019 10日目の記事です。 成果物: ソーシャル紅葉見頃情報 動機: 紅葉情報サイトの「見頃」表示が信用できない 解説: サービス構成 ツイート収集 紅葉スポットの自動抽出 紅葉状況の推定 Webサービス 検証: 紅葉状況の推定結果 …

私の転職活動は中学生から始まっていた

SIer脱出を語る Advent Calendar 2019 8日目の記事です。 「アウトプット大事」というHow toの話しかしません。 転職の経緯や転職後については SIerから自社サービス系に転職して半年ちょっと経過した (2019/05/15) をご覧ください。 目次 どんなアウトプッ…

Fargate Spotのお値段比べてみた

Fargate Spotが発表された. aws.amazon.com 70%ディスカウントは魅力的であるものの,EC2と比べて高いのか安いのかがわからない.ということで表にした. タイプ vCPU Mem EC2オンデマンド EC2スポット EC2リザーブド(1年前払い) Fargate FargateSpot m5.la…

気象庁の天気予報文をパースする ☀☁☂

天気予報文 気象庁の天気予報には 予報文 があります。 北東の風 日中 東の風 くもり 昼過ぎ まで 時々 晴れ 所により 夜遅く 雨 気象庁 | 天気予報 : 東京都 (10/20 11:00発表 21日の天気予報文) やや難解ですが、 気象庁|予報用語 と照らし合わせること…

同じ構図で何枚も撮って,最も手ブレしていない 1 枚だけを残す

結論 ImageMagick の compare コマンドで, Perceptual Hash (pHash) により同一構図かチェックする. ImageMagick の convert と identify コマンドで, Canny 法によりエッジ検出し同一構図の n 枚から最も鮮明な 1 枚を残す. ソースはここに置いた: GitH…

日用品のストック管理ツール Stokk を作った

日用品のストックを管理出来るツール「Stokk」を公開しました。 以下はポエムです。 技術選定 サーバをわざわざ建立するほどの機能はない mBaaSと親和性が高そう フロントエンドを書きたい ということで、SPA + mBaaSで作ることにしました。 使ったもの ツー…

ページの好き嫌いを学習・分類するChrome拡張を作った

ネタです. ベイジアンフィルタで,ページの好き嫌いを学習・分類するChrome 拡張機能を作りました. 動作サンプル ページが自分好みかどうかベイズ推定するやつ、Chrome拡張に昇華させた pic.twitter.com/RIsdR3ReMg— たいぷらいたー (@no_clock) 2019年6月…

Oracle Code Cardを触ってみる (触っただけ編)

IoT

Oracle Code Cardという謎のカードを譲ってもらった.「イベントでもらったけど使わない」「ボタン電池が高い(500円)」という情報も付属していた. 観察 赤い基板に電子ペーパーが載っている.イベントで配布するにしては贅沢だ.いくら掛かっているんだろ…

死活監視をFirebase Realtime Databaseでお手軽にやってみる

死活監視といえば,たとえば Mackerel や Uptime Robot などが使えます. ただし,こうしたサービスは「エージェントをインストールする」か「外部からサービスにアクセスできる」必要があるほか,無料版に制限があるなど少々ネックがあります. そこで,Fir…

SIerから自社サービス系に転職して半年ちょっと経過した

2018年9月にSIerから自社サービス企業に転職した.会社の宣伝ではないので社名は伏せる(たどれば出るが). 退職エントリは書かなかったが,半年ちょっと経ったので考えを整理してみようとポエムにした. 学生時代 小学生でVisual Basic 6.0に触れ,中学生…

Google Trendsで言語やFWの栄枯盛衰を見てみる

「フロントエンドは変化が早い」というぼんやりした思考の裏付けを取るべく,Google Trendsで遊んでみました. 以下,データ読み込むので表示に時間が掛かります.(念の為 "続きを読む" で区切ります)

変数名などの命名のお供に.Webサービス "Zenrei" を公開しました

Webサービス "Zenrei" を公開しました. GitHubのスター数上位のリポジトリから,クラス名・メソッド名・変数名の使用実績を検索できるサービスです.悩ましい命名のお供にご活用ください. 機能 使用実績 … GitHubスター数上位リポジトリから,入力したクラ…

PKCS #1(RFC8017)のRSA鍵フォーマット 日本語訳

PKCS #1 / PKCS #8に準拠した,.NET向けRSA暗号鍵エンコーダ・デコーダライブラリをNuGetに公開しました.ソースコードや使い方はGitHubにあります. この記事では,PKCS #1での鍵フォーマットについて説明します. PKCS #1 (RFC8017) RFC 8017 - PKCS #1: R…

Raspberry PiでNHKラジオ第一の緊急地震速報を検出する

P2P地震情報では,NHKラジオ第一の放送から緊急地震速報の発表を検出しています. 今回,その検出をPCではなくRaspberry Piで行うように変更しました.そのときの記録です. 前提: 自動音声による放送 NHKラジオ第一では,緊急地震速報(警報)が発表される…

P2P地震情報14周年: 個人サービスを長く続けるための技術

個人開発 #2 Advent Calendar 2018 8日目の記事です. せっかく作った個人サービスを長く続けていくための技術についてお話ししようと思います. 3行でまとめると Dogfooding … 使い続ける Maintenance-free … とにかく省力化する Write Code Every Day … 小…