SlideShare a Scribd company logo
1 of 45
Download to read offline
Hatena::Letの式年遷宮
2021-11-25 Hatena Engineer Seminar #17
大仲 能史 a.k.a. id:onk
自己紹介
• 大仲 能史 a.k.a. id:onk
• 株式会社はてな チーフエンジニア
• ノベルチーム所属
• チームではWebアプリケーションエンジニア、


技術グループ全体ではマネージャ業をやっています
今日の話
式年遷宮
式年遷宮とは
• 伊勢神宮では、20年に一度、社殿と神宝を新調して大御神にお遷り
願う
• 土地が2倍用意されていて、20年おきに隣に建てて移す
• 社殿や御神宝を、変わることなく継承し続ける祭祀
• 建物そのものがレガシー (オリンピックで聞いた方) なのではなく、
維持する体制を維持する
ソフトウェアにおける


式年遷宮
ソフトウェア式年遷宮とは
• 2013年にid:kenjiskywalkerによって提唱された概念
• 2013年
• 伊勢神宮&出雲大社の式年遷宮の年
• インフラのB/Gデプロイメントを


式年遷宮に見立てた
https://blog.kenjiskywalker.org/2013/08/11/shikinen-sengoo-infrastracture/
ソフトウェア式年遷宮とは
• 2014-2016年に一般に広まる
• id:antipop
• JAWS DAYS 2014 Immutable Infrastructureトラックのパネルディスカッション
• id:ryotarai
• クックパッドのサーバプロビジョニング事情 - クックパッド開発者ブログ
• id:mirakui
• クックパッドの継続的な成長のために開発と運用が何をしてきたのか、その失敗と
成功について - Speaker Deck
ソフトウェア式年遷宮とは
• 2018年 id:edvakfによる拡大解釈
• 放置しがちな社内システムこそ式年遷宮していこう - pixiv inside
• インフラだけじゃなくソフトウェアも式年遷宮する
• 定期的に作り直すことで、メンテナビリティが向上し、新規開発
からの学びも得られる
ソフトウェア式年遷宮とは
• 2020年 id:daiksyにより更に意味が加えられる
• プロダクトを10年運用する チームをつくる / DevSumi2020 -
Speaker Deck
• 全てをフルスクラッチで作り直す前に、周期的に手を入れ続ける
• プロダクトを構成する要素単位で作り直すことでブラックボックスや
負債になりかけた要素をモダンにし、エンジニアの技術継承を行う
• 作り直した後、遷宮参加者はその要素に一番詳しい状態になる
今日の話
• ソフトウェア式年遷宮とは
• Hatena::Letの歴史
• 遷宮のリアル
• まとめ
Hatena::Letとは
• ブックマークレットをかんたんに作成・公開できるラボサービス
Hatena::Letの歴史
• 2009-11-07
• サービス開発合宿でid:secondlifeとid:cho45が開発
• 余談:同じ開発合宿で作られたのがHatena::Haiku
• 2010-05-15
• ラボサービスとして公開
Hatena::Letの歴史
• 2010-07
• id:secondlife退職
• 2011-12
• id:cho45退職
• id:sampleが引き継ぐ
• 2017-10
• id:sample退職
• 有志のオーナー不在に
• SPFチームがオーナーとしてメ
ンテナンス
※公開情報が見つからないので仮名。
Hatena::Letの歴史
• 2018-04
• id:onk入社
• 2018-08
• オーナー引き継ぎ
• 引き続きメンテナンスモード
• 2020-05
• さようならPerl、こんにちはRuby
遷宮した
遷宮という選択に至るまで
• リリース当時 (2009) の技術
• はてラボサーバ
• はてながAWSを使い出したのは2011年
• はてラボDB
• 共通DBモデル
• Hatenaフレームワーク (Perl)
• Ridge + MoCo
• ざっくり言うとRails 1.5ぐらいに相当
遷宮という選択に至るまで
• 2009年に作られたまま、細々とメンテナンスされている
• EC2移転や共通DB脱出は行われた
• DBのスキーマはベストではない
• Ridge+MoCoのままメンテナンスするのはコストが高い
• Ridge: last commit 2013-01-10
• MoCo: last commit 2012-04-10
• 失われた技術スタック
サービスを作るときの軸
• サービスを作るときは以下の 2 軸で考えることが多い。


届ける速度と、ユーザに価値があるかどうか
https://www.slideshare.net/takafumionaka/25-137790052
サービスを作るときの軸
• 第 1 象限は「やる」
• 第 3 象限は「やらない」
• 第 4 象限は「誘惑」
• すぐできるけど、そんなに価値はない
• 他の優先課題があるかもしれない
• 壺に石→砂→水を詰めるってコピペがあるよね?
https://www.slideshare.net/takafumionaka/25-137790052
サービスを作るときの軸
• 第 2 象限を一番考えなきゃいけなくて、


価値があるからぜひ作りたい。けど作るの
が難しい機能
• これを実現するのがプログラマとしての腕の
見せ所になる
https://www.slideshare.net/takafumionaka/25-137790052
サービスを作るときの軸
• フレームワークは「価値があることをすぐ作
れるようにする」のが役目
• 第 2 象限を第 1 象限に変える
• もしくは第 4 象限を魅力的品質まで高める
ことで第 1 象限に変える
• そこに寄与しないなら不要
https://www.slideshare.net/takafumionaka/25-137790052
遷宮という選択に至るまで
• 全てを掌握して、メンテしていきたい
• 特にDBリファクタリングをしたい
• 今のフレームワークは価値に寄与していない
• 簡単にDBを変更できるか? => 現在においてはNo
• 魅力的品質を生んでいるか? => 現在においてはNo
遷宮用の技術選定
• インフラはノータッチ
• Sinatra + ActiveRecord
• ERB
• static
fi
lesはノータッチ
やったこと
• MoCo => ActiveRecordに変換
• 10テーブル程度だったので、気合い
• そこそこARの中を知ってないと難しかったと思う
• PKが無いテーブルを、PK必須なORMで扱う
• ナチュラルキーPKな関連テーブルを、サロゲートキーを期待す
るORMで扱う
やったこと
• ActiveRecord投入は僕の常套手段
• 他のリポジトリでもやっている
• メンテ用のREPLやORMが欲しい
• データを理解するための最短手段


=> 空でER図が書けるようになるまで写経する
• 学問に王道なし
https://developer.hatenasta
ff
.com/entry/2018/11/21/120000
やったこと
• Ridge => Sinatraに変換
• RESTfulではないURLが使われているが全て維持した
• 掌握が先、変更は後
• 久々に sinatra app を作った - id:onk のはてなブログ
やったこと
• Xslate => ERBに変換
• 20ファイル程度だったので、そこまで手間じゃない
• XslateからERBならそのまま翻訳できる
• ここが簡単であって欲しいのでサーバ側でHTMLをレンダリング
する手段を選んだ
はじめからやり直したい症候群
https://www.hyuki.com/kokoro/#hajime
全部読むと分かった面白ポイント
• 「;」区切りのクエリパラメータが存在している
• https://onk.hatenablog.jp/entry/2020/12/18/202554
• Validではあるが、実際URL Escapeしてしまうクローラが存在し
ていた
• I18n対応していた
• メニューやボタンの文言が英語に
全部読むと分かった面白ポイント
• IE6SP2対応
• URL長の制限がキツい(488文字)ため、minifyしても
`javascript:(function(){...})()` 形式だと、よくあふれる
• 一定長以上だとscriptタグを挿入するブックマークレットになる仕
組みになっている
• Mixed contentsやContent Security Policyの影響を受ける
数値で見る遷宮
• $ git show xxx ̶stats
• Hello, Ruby!
• 55
fi
les changed, 2827 insertions(+), 32 deletions(-)
• Bye Perl
• 111
fi
les changed, 10478 deletions(-)
• だいたい 1/3 ぐらいのコード量に
遷宮後にやったこと
• ActiveRecordで良かった!
• ignore_columnsやcallbackを駆使して、本番DBリファクタリングを
実現可能だった
• レールから外れたデータベースを扱う - onk.ninja
• 主キーが無いテーブルや複合主キーはサロゲートキーを追加する
• timestampsを見慣れたxxx_atにリネーム
• ナチュラルキーを倒したり、テーブルごと作り直したりも
遷宮後にやったこと
• URLをリソース志向にシフト
• POST時にクエリパラメータとBodyが両方あったらどう扱われる
のか、みたいな悩みどころがあった。ので減らした
• ForkはGETではなくPOSTを使う
• クローラがGETリンクを見つけて、クリックしていた
• 毎日2000回ぐらい、クローラが(リダイレクトされて)ログイン
画面を表示して、諦めていた
遷宮後にやったこと
• インフラをマネージド化
• Perl時はEC2 + EC2(MySQL)
• 今はALB + ECS + Aurora + ElastiCache(Redis)
遷宮後にやったこと
• JSのminifyにはterserを使うように移行
• もともとの仕組み (JavaScript::Squish) だと、ES2015以降の書
き方をしたときに、例えばテンプレートリテラルが途中で消える
等の問題があった
コミュニケーションの喜び
• ユーザさんは問い合わせせずに、サービス上で不具合の動作確認を
してくれる
• 再現する最小コードを投稿してくれるの凄すぎる
• TOPページを眺めていたら見つけた
コミュニケーションの喜び
• 対応しておくと反応がある
コミュニケーションの喜び
• 更に対応しておくと反応がある
• 文通のような楽しみ
今後の展開
• Greasemonkeyにどこまで近づくか
• 例えばGreasy Forkという競合サービスがある
• インストール数とかを取得できるようになると公開する楽しさが
増える
• 検索したいって声にも上手に対応したい
今後の展開
• graphql-rubyを導入してフロントエンド刷新
• DB改善が終わったので、すごく扱いやすくなった
• Rubyなのはそのままでも良いかなぁ
• Hatena::Letを作ったid:secondlifeも、はてなでRubyを使い続
けていた人なので、意志を継いでいく(?)
• Perl の会社で使われる Ruby の利用法とは!? - 日本Rubyカン
ファレンス2006
今後の展開
• インフラ構成で遊ぶ
• 現在はALB + ECS + Aurora + ElastiCache(Redis)
• こうしてみる?
• CloudFront + API Gateway + Cloud Map + ECS + Aurora + DynamoDB
• CloudFront + API Gateway + Lambda + Aurora + DynamoDB
• 300req/min未満ならAPI GatewayはALBよりお得
• コストが低くなると持続可能性が高まる
• ちょっと面白い構成はどんどん試しておきたい
社の標準スタックの一歩隣を行く
• 正しいラボサービスの姿
• 最近のはてなの標準技術スタックは gqlgen + Next.js
• 似ているが少し違う技術を使うことで、知識の幅を広げる
• これは僕が18年選手&Hatena::Letがアプリケーションとして小さいから
選ぶ方法
• 慣れていないor複雑な要件があるなら、同じ技術を複数アプリケーショ
ンで使う方が予想外の要件で荒波に揉まれることになり、深みが出る
はてラボとは
はてラボは、はてなの実験的サービス置き場です。
2006年2月に「はてな社員の個人的アイデアに形を与え、未完成のサービスに改善
を重ねながら本サービスに育てる」という目的で開始しました。
現在では、本サービス化を目指すだけではなく
•稼働中の本サービスに導入することが難しい新規機能を先行して実装する
•本サービスとは異なるルールやポリシーに基づいてサービスを提供する
•本サービスとして継続提供することが難しくなったサービスを、規模を縮小した
形で提供し、ラボならではの挑戦的な施策を導入し再生を図る
といった、広義の実験的プロジェクトや実証実験の場としても使われています。
https://hatelabo.jp/ より抜粋  
「式年」遷宮の必要はあるか
• ヨシヨシできていれば問題無い、という話はある
• Webサービスはヨシヨシしないとスネる - pblog
• そこそこヨシヨシしていてもスネる(=負債は溜まっていく)
• 業務ですら全ての行に目を入れ続けるのは不可能で、知識が欠けていく
• 運営チームがドメイン知識を再獲得するための遷宮
• やる範囲を見極めつつ、コア機能こそ式年遷宮する必要があるのだろう
• 列車を走らせ続けながらパーツを交換するイメージ

More Related Content

What's hot

Test Yourself - テストを書くと何がどう変わるか
Test Yourself - テストを書くと何がどう変わるかTest Yourself - テストを書くと何がどう変わるか
Test Yourself - テストを書くと何がどう変わるかTakuto Wada
 
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなテスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなKentaro Matsui
 
ドメイン駆動設計 失敗したことと成功したこと
ドメイン駆動設計 失敗したことと成功したことドメイン駆動設計 失敗したことと成功したこと
ドメイン駆動設計 失敗したことと成功したことBIGLOBE Inc.
 
組織にテストを書く文化を根付かせる戦略と戦術
組織にテストを書く文化を根付かせる戦略と戦術組織にテストを書く文化を根付かせる戦略と戦術
組織にテストを書く文化を根付かせる戦略と戦術Takuto Wada
 
PHPからgoへの移行で分かったこと
PHPからgoへの移行で分かったことPHPからgoへの移行で分かったこと
PHPからgoへの移行で分かったことgree_tech
 
開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)mosa siru
 
「速」を落とさないコードレビュー
「速」を落とさないコードレビュー「速」を落とさないコードレビュー
「速」を落とさないコードレビューTakafumi ONAKA
 
MagicOnion入門
MagicOnion入門MagicOnion入門
MagicOnion入門torisoup
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Kohei Tokunaga
 
イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)Yoshitaka Kawashima
 
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture世界一わかりやすいClean Architecture
世界一わかりやすいClean ArchitectureAtsushi Nakamura
 
Airflowを広告データのワークフローエンジンとして運用してみた話
Airflowを広告データのワークフローエンジンとして運用してみた話Airflowを広告データのワークフローエンジンとして運用してみた話
Airflowを広告データのワークフローエンジンとして運用してみた話Katsunori Kanda
 
PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)
PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)
PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)Koichiro Matsuoka
 
マイクロサービスにおける 非同期アーキテクチャ
マイクロサービスにおける非同期アーキテクチャマイクロサービスにおける非同期アーキテクチャ
マイクロサービスにおける 非同期アーキテクチャota42y
 
テストとリファクタリングに関する深い方法論 #wewlc_jp
テストとリファクタリングに関する深い方法論 #wewlc_jpテストとリファクタリングに関する深い方法論 #wewlc_jp
テストとリファクタリングに関する深い方法論 #wewlc_jpkyon mm
 
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!mosa siru
 
世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計増田 亨
 
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」Masahito Zembutsu
 
OpenTelemetryでWebシステムの処理を追跡しよう - DjangoCongress JP 2022
OpenTelemetryでWebシステムの処理を追跡しよう - DjangoCongress JP 2022OpenTelemetryでWebシステムの処理を追跡しよう - DjangoCongress JP 2022
OpenTelemetryでWebシステムの処理を追跡しよう - DjangoCongress JP 2022Takayuki Shimizukawa
 
君はyarn.lockをコミットしているか?
君はyarn.lockをコミットしているか?君はyarn.lockをコミットしているか?
君はyarn.lockをコミットしているか?Teppei Sato
 

What's hot (20)

Test Yourself - テストを書くと何がどう変わるか
Test Yourself - テストを書くと何がどう変わるかTest Yourself - テストを書くと何がどう変わるか
Test Yourself - テストを書くと何がどう変わるか
 
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなテスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
 
ドメイン駆動設計 失敗したことと成功したこと
ドメイン駆動設計 失敗したことと成功したことドメイン駆動設計 失敗したことと成功したこと
ドメイン駆動設計 失敗したことと成功したこと
 
組織にテストを書く文化を根付かせる戦略と戦術
組織にテストを書く文化を根付かせる戦略と戦術組織にテストを書く文化を根付かせる戦略と戦術
組織にテストを書く文化を根付かせる戦略と戦術
 
PHPからgoへの移行で分かったこと
PHPからgoへの移行で分かったことPHPからgoへの移行で分かったこと
PHPからgoへの移行で分かったこと
 
開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)
 
「速」を落とさないコードレビュー
「速」を落とさないコードレビュー「速」を落とさないコードレビュー
「速」を落とさないコードレビュー
 
MagicOnion入門
MagicOnion入門MagicOnion入門
MagicOnion入門
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)
 
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
 
Airflowを広告データのワークフローエンジンとして運用してみた話
Airflowを広告データのワークフローエンジンとして運用してみた話Airflowを広告データのワークフローエンジンとして運用してみた話
Airflowを広告データのワークフローエンジンとして運用してみた話
 
PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)
PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)
PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)
 
マイクロサービスにおける 非同期アーキテクチャ
マイクロサービスにおける非同期アーキテクチャマイクロサービスにおける非同期アーキテクチャ
マイクロサービスにおける 非同期アーキテクチャ
 
テストとリファクタリングに関する深い方法論 #wewlc_jp
テストとリファクタリングに関する深い方法論 #wewlc_jpテストとリファクタリングに関する深い方法論 #wewlc_jp
テストとリファクタリングに関する深い方法論 #wewlc_jp
 
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
 
世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計
 
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」
 
OpenTelemetryでWebシステムの処理を追跡しよう - DjangoCongress JP 2022
OpenTelemetryでWebシステムの処理を追跡しよう - DjangoCongress JP 2022OpenTelemetryでWebシステムの処理を追跡しよう - DjangoCongress JP 2022
OpenTelemetryでWebシステムの処理を追跡しよう - DjangoCongress JP 2022
 
君はyarn.lockをコミットしているか?
君はyarn.lockをコミットしているか?君はyarn.lockをコミットしているか?
君はyarn.lockをコミットしているか?
 

Similar to Hatena::Letの式年遷宮

Railsエンジニアが サーバーレスアーキテクチャに 手を出したよ - 川崎Ruby会議01
Railsエンジニアが サーバーレスアーキテクチャに 手を出したよ - 川崎Ruby会議01Railsエンジニアが サーバーレスアーキテクチャに 手を出したよ - 川崎Ruby会議01
Railsエンジニアが サーバーレスアーキテクチャに 手を出したよ - 川崎Ruby会議01Yuta Shimizu
 
デザインパターンを用いたリファクタリング
デザインパターンを用いたリファクタリングデザインパターンを用いたリファクタリング
デザインパターンを用いたリファクタリングkei takakuda
 
長野にある小水力発電所は Elixir & Nerves え動いているってご存知でしたか?
長野にある小水力発電所は Elixir & Nerves え動いているってご存知でしたか?長野にある小水力発電所は Elixir & Nerves え動いているってご存知でしたか?
長野にある小水力発電所は Elixir & Nerves え動いているってご存知でしたか?Yutaka Kikuchi
 
Rdbms起点で考えると見えない世界 okuyama勉強会
Rdbms起点で考えると見えない世界 okuyama勉強会Rdbms起点で考えると見えない世界 okuyama勉強会
Rdbms起点で考えると見えない世界 okuyama勉強会Masakazu Muraoka
 
Ember コミュニティとわたし
Ember コミュニティとわたしEmber コミュニティとわたし
Ember コミュニティとわたしRyunosuke SATO
 
データベース勉強会 In 広島 mongodb
データベース勉強会 In 広島  mongodbデータベース勉強会 In 広島  mongodb
データベース勉強会 In 広島 mongodbRyuji Tamagawa
 
速度改善のためにフロント:アプリ:インフラ エンジニアが使うツールについて
速度改善のためにフロント:アプリ:インフラ エンジニアが使うツールについて速度改善のためにフロント:アプリ:インフラ エンジニアが使うツールについて
速度改善のためにフロント:アプリ:インフラ エンジニアが使うツールについてDaisuke Tamada
 
チケット管理システム大決戦第二弾
チケット管理システム大決戦第二弾チケット管理システム大決戦第二弾
チケット管理システム大決戦第二弾Ryutaro YOSHIBA
 
東京Node学園 今できる通信高速化にトライしてみた
東京Node学園 今できる通信高速化にトライしてみた東京Node学園 今できる通信高速化にトライしてみた
東京Node学園 今できる通信高速化にトライしてみたYoshiki Shibukawa
 
TREASUREDATAのエコシステムで作るロバストなETLデータ処理基盤の作り方
TREASUREDATAのエコシステムで作るロバストなETLデータ処理基盤の作り方TREASUREDATAのエコシステムで作るロバストなETLデータ処理基盤の作り方
TREASUREDATAのエコシステムで作るロバストなETLデータ処理基盤の作り方Kentaro Yoshida
 
20190410 cnjp rancher-flexvolume
20190410 cnjp rancher-flexvolume20190410 cnjp rancher-flexvolume
20190410 cnjp rancher-flexvolumet8kobayashi
 
Fargate起動歴1日の男が語る運用の勘どころ
Fargate起動歴1日の男が語る運用の勘どころFargate起動歴1日の男が語る運用の勘どころ
Fargate起動歴1日の男が語る運用の勘どころYuto Komai
 
DB思い出話いろいろ(仮)
DB思い出話いろいろ(仮)DB思い出話いろいろ(仮)
DB思い出話いろいろ(仮)Takahiro Kitayama
 
インフラエンジニアがk8sでアプリを作って見えた今後のインフラ
インフラエンジニアがk8sでアプリを作って見えた今後のインフラインフラエンジニアがk8sでアプリを作って見えた今後のインフラ
インフラエンジニアがk8sでアプリを作って見えた今後のインフラsusumu tanaka
 
Dockerizeして
大変だった話、幸せになった話
Dockerizeして
大変だった話、幸せになった話Dockerizeして
大変だった話、幸せになった話
Dockerizeして
大変だった話、幸せになった話Akira Miki
 
そうだApi公開しよう feat. 有志のエンジニア
そうだApi公開しよう feat. 有志のエンジニアそうだApi公開しよう feat. 有志のエンジニア
そうだApi公開しよう feat. 有志のエンジニアrecotech
 

Similar to Hatena::Letの式年遷宮 (20)

Railsエンジニアが サーバーレスアーキテクチャに 手を出したよ - 川崎Ruby会議01
Railsエンジニアが サーバーレスアーキテクチャに 手を出したよ - 川崎Ruby会議01Railsエンジニアが サーバーレスアーキテクチャに 手を出したよ - 川崎Ruby会議01
Railsエンジニアが サーバーレスアーキテクチャに 手を出したよ - 川崎Ruby会議01
 
デザインパターンを用いたリファクタリング
デザインパターンを用いたリファクタリングデザインパターンを用いたリファクタリング
デザインパターンを用いたリファクタリング
 
長野にある小水力発電所は Elixir & Nerves え動いているってご存知でしたか?
長野にある小水力発電所は Elixir & Nerves え動いているってご存知でしたか?長野にある小水力発電所は Elixir & Nerves え動いているってご存知でしたか?
長野にある小水力発電所は Elixir & Nerves え動いているってご存知でしたか?
 
Rdbms起点で考えると見えない世界 okuyama勉強会
Rdbms起点で考えると見えない世界 okuyama勉強会Rdbms起点で考えると見えない世界 okuyama勉強会
Rdbms起点で考えると見えない世界 okuyama勉強会
 
Ember コミュニティとわたし
Ember コミュニティとわたしEmber コミュニティとわたし
Ember コミュニティとわたし
 
データベース勉強会 In 広島 mongodb
データベース勉強会 In 広島  mongodbデータベース勉強会 In 広島  mongodb
データベース勉強会 In 広島 mongodb
 
速度改善のためにフロント:アプリ:インフラ エンジニアが使うツールについて
速度改善のためにフロント:アプリ:インフラ エンジニアが使うツールについて速度改善のためにフロント:アプリ:インフラ エンジニアが使うツールについて
速度改善のためにフロント:アプリ:インフラ エンジニアが使うツールについて
 
チケット管理システム大決戦第二弾
チケット管理システム大決戦第二弾チケット管理システム大決戦第二弾
チケット管理システム大決戦第二弾
 
Kotlin skeleton
Kotlin skeletonKotlin skeleton
Kotlin skeleton
 
東京Node学園 今できる通信高速化にトライしてみた
東京Node学園 今できる通信高速化にトライしてみた東京Node学園 今できる通信高速化にトライしてみた
東京Node学園 今できる通信高速化にトライしてみた
 
Yapc2012ltthon
Yapc2012ltthonYapc2012ltthon
Yapc2012ltthon
 
TREASUREDATAのエコシステムで作るロバストなETLデータ処理基盤の作り方
TREASUREDATAのエコシステムで作るロバストなETLデータ処理基盤の作り方TREASUREDATAのエコシステムで作るロバストなETLデータ処理基盤の作り方
TREASUREDATAのエコシステムで作るロバストなETLデータ処理基盤の作り方
 
20190410 cnjp rancher-flexvolume
20190410 cnjp rancher-flexvolume20190410 cnjp rancher-flexvolume
20190410 cnjp rancher-flexvolume
 
Fargate起動歴1日の男が語る運用の勘どころ
Fargate起動歴1日の男が語る運用の勘どころFargate起動歴1日の男が語る運用の勘どころ
Fargate起動歴1日の男が語る運用の勘どころ
 
DB思い出話いろいろ(仮)
DB思い出話いろいろ(仮)DB思い出話いろいろ(仮)
DB思い出話いろいろ(仮)
 
インフラエンジニアがk8sでアプリを作って見えた今後のインフラ
インフラエンジニアがk8sでアプリを作って見えた今後のインフラインフラエンジニアがk8sでアプリを作って見えた今後のインフラ
インフラエンジニアがk8sでアプリを作って見えた今後のインフラ
 
Dockerizeして
大変だった話、幸せになった話
Dockerizeして
大変だった話、幸せになった話Dockerizeして
大変だった話、幸せになった話
Dockerizeして
大変だった話、幸せになった話
 
Redmine Ansible
Redmine AnsibleRedmine Ansible
Redmine Ansible
 
そうだApi公開しよう feat. 有志のエンジニア
そうだApi公開しよう feat. 有志のエンジニアそうだApi公開しよう feat. 有志のエンジニア
そうだApi公開しよう feat. 有志のエンジニア
 
Play jjug2012spring
Play jjug2012springPlay jjug2012spring
Play jjug2012spring
 

More from Takafumi ONAKA

不正のトライアングルとコードベースの治安維持
不正のトライアングルとコードベースの治安維持不正のトライアングルとコードベースの治安維持
不正のトライアングルとコードベースの治安維持Takafumi ONAKA
 
技術記事を書く&楽しむチームの作り方
技術記事を書く&楽しむチームの作り方技術記事を書く&楽しむチームの作り方
技術記事を書く&楽しむチームの作り方Takafumi ONAKA
 
グルーミングしながら進めるプロダクト開発
グルーミングしながら進めるプロダクト開発グルーミングしながら進めるプロダクト開発
グルーミングしながら進めるプロダクト開発Takafumi ONAKA
 
pt-query-digest は Perl!!
pt-query-digest は Perl!!pt-query-digest は Perl!!
pt-query-digest は Perl!!Takafumi ONAKA
 
アプリケーションを作るときに考える25のこと
アプリケーションを作るときに考える25のことアプリケーションを作るときに考える25のこと
アプリケーションを作るときに考える25のことTakafumi ONAKA
 
cpanfileがRubyでパースできることに気づいた俺たちは
cpanfileがRubyでパースできることに気づいた俺たちはcpanfileがRubyでパースできることに気づいた俺たちは
cpanfileがRubyでパースできることに気づいた俺たちはTakafumi ONAKA
 
Perl使いの国のRubyist
Perl使いの国のRubyistPerl使いの国のRubyist
Perl使いの国のRubyistTakafumi ONAKA
 
ApplicationTemplateのススメ
ApplicationTemplateのススメApplicationTemplateのススメ
ApplicationTemplateのススメTakafumi ONAKA
 
ふつうのRailsアプリケーション開発
ふつうのRailsアプリケーション開発ふつうのRailsアプリケーション開発
ふつうのRailsアプリケーション開発Takafumi ONAKA
 
クローズドソースから始めるオープンソース
クローズドソースから始めるオープンソースクローズドソースから始めるオープンソース
クローズドソースから始めるオープンソースTakafumi ONAKA
 
短期間で新技術を学ぶ技術
短期間で新技術を学ぶ技術短期間で新技術を学ぶ技術
短期間で新技術を学ぶ技術Takafumi ONAKA
 
ドリコム×ピクシブ 社会人交換留学説明資料
ドリコム×ピクシブ 社会人交換留学説明資料ドリコム×ピクシブ 社会人交換留学説明資料
ドリコム×ピクシブ 社会人交換留学説明資料Takafumi ONAKA
 
マジカルsvnとキュアgit
マジカルsvnとキュアgitマジカルsvnとキュアgit
マジカルsvnとキュアgitTakafumi ONAKA
 
Github Enterprise じゃなくてもいいじゃん
Github Enterprise じゃなくてもいいじゃんGithub Enterprise じゃなくてもいいじゃん
Github Enterprise じゃなくてもいいじゃんTakafumi ONAKA
 
ターミナルで画像確認するヤツ作った
ターミナルで画像確認するヤツ作ったターミナルで画像確認するヤツ作った
ターミナルで画像確認するヤツ作ったTakafumi ONAKA
 
Webアプリケーションは難しい
Webアプリケーションは難しいWebアプリケーションは難しい
Webアプリケーションは難しいTakafumi ONAKA
 
Rails3.2ってどう変わるの?
Rails3.2ってどう変わるの?Rails3.2ってどう変わるの?
Rails3.2ってどう変わるの?Takafumi ONAKA
 
ドリコム的Railsアプリ開発流儀
ドリコム的Railsアプリ開発流儀ドリコム的Railsアプリ開発流儀
ドリコム的Railsアプリ開発流儀Takafumi ONAKA
 

More from Takafumi ONAKA (20)

不正のトライアングルとコードベースの治安維持
不正のトライアングルとコードベースの治安維持不正のトライアングルとコードベースの治安維持
不正のトライアングルとコードベースの治安維持
 
技術記事を書く&楽しむチームの作り方
技術記事を書く&楽しむチームの作り方技術記事を書く&楽しむチームの作り方
技術記事を書く&楽しむチームの作り方
 
グルーミングしながら進めるプロダクト開発
グルーミングしながら進めるプロダクト開発グルーミングしながら進めるプロダクト開発
グルーミングしながら進めるプロダクト開発
 
pt-query-digest は Perl!!
pt-query-digest は Perl!!pt-query-digest は Perl!!
pt-query-digest は Perl!!
 
アプリケーションを作るときに考える25のこと
アプリケーションを作るときに考える25のことアプリケーションを作るときに考える25のこと
アプリケーションを作るときに考える25のこと
 
cpanfileがRubyでパースできることに気づいた俺たちは
cpanfileがRubyでパースできることに気づいた俺たちはcpanfileがRubyでパースできることに気づいた俺たちは
cpanfileがRubyでパースできることに気づいた俺たちは
 
Perl使いの国のRubyist
Perl使いの国のRubyistPerl使いの国のRubyist
Perl使いの国のRubyist
 
ApplicationTemplateのススメ
ApplicationTemplateのススメApplicationTemplateのススメ
ApplicationTemplateのススメ
 
ふつうのRailsアプリケーション開発
ふつうのRailsアプリケーション開発ふつうのRailsアプリケーション開発
ふつうのRailsアプリケーション開発
 
クローズドソースから始めるオープンソース
クローズドソースから始めるオープンソースクローズドソースから始めるオープンソース
クローズドソースから始めるオープンソース
 
短期間で新技術を学ぶ技術
短期間で新技術を学ぶ技術短期間で新技術を学ぶ技術
短期間で新技術を学ぶ技術
 
Application Bootstrap
Application BootstrapApplication Bootstrap
Application Bootstrap
 
ドリコム×ピクシブ 社会人交換留学説明資料
ドリコム×ピクシブ 社会人交換留学説明資料ドリコム×ピクシブ 社会人交換留学説明資料
ドリコム×ピクシブ 社会人交換留学説明資料
 
すこやかRails
すこやかRailsすこやかRails
すこやかRails
 
マジカルsvnとキュアgit
マジカルsvnとキュアgitマジカルsvnとキュアgit
マジカルsvnとキュアgit
 
Github Enterprise じゃなくてもいいじゃん
Github Enterprise じゃなくてもいいじゃんGithub Enterprise じゃなくてもいいじゃん
Github Enterprise じゃなくてもいいじゃん
 
ターミナルで画像確認するヤツ作った
ターミナルで画像確認するヤツ作ったターミナルで画像確認するヤツ作った
ターミナルで画像確認するヤツ作った
 
Webアプリケーションは難しい
Webアプリケーションは難しいWebアプリケーションは難しい
Webアプリケーションは難しい
 
Rails3.2ってどう変わるの?
Rails3.2ってどう変わるの?Rails3.2ってどう変わるの?
Rails3.2ってどう変わるの?
 
ドリコム的Railsアプリ開発流儀
ドリコム的Railsアプリ開発流儀ドリコム的Railsアプリ開発流儀
ドリコム的Railsアプリ開発流儀
 

Recently uploaded

モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成Hiroshi Tomioka
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 

Recently uploaded (9)

モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 

Hatena::Letの式年遷宮