Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Rubyを使った開発環境構築の自動化
Search
Takashi Kokubun
August 29, 2015
Programming
9.7k
4
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Rubyを使った開発環境構築の自動化
TokyuRuby会議09 LT #tqrk09
Takashi Kokubun
August 29, 2015
More Decks by Takashi Kokubun
See All by Takashi Kokubun
Lightning-Fast Method Calls with Ruby 4.1 ZJIT / RubyKaigi 2026
k0kubun
3
3.7k
一度始めたらやめられない開発効率向上術 / Findy あなたのdotfilesを教えて!
k0kubun
4
3.2k
ZJIT: The Ruby 4 JIT Compiler / Ruby Release 30th Anniversary Party
k0kubun
1
550
ZJIT: The Future of Ruby Performance / San Francisco Ruby Conference 2025
k0kubun
1
140
ZJIT: Building a New JIT Compiler for Ruby / REBASE 2025
k0kubun
0
160
Deoptimization: How YJIT Speeds Up Ruby by Slowing Down / RubyKaigi 2025
k0kubun
2
4.7k
YJIT Makes Rails 1.7x faster / RubyKaigi 2024
k0kubun
7
16k
Ruby JIT Hacking Guide / RubyKaigi 2023
k0kubun
2
11k
YJIT: Dive into Ruby's JIT compiler written in Rust / Rust.Tokyo 2022
k0kubun
2
2.3k
Other Decks in Programming
See All in Programming
30年振りにコンパイラの定数整数除算を改善した
herumi
7
3k
FDEが実現するAI駆動経営の現在地
gonta
2
290
Dockerfile CMD for Node.js
grazie1999
0
110
jsmini JavaScript Engine を作ってみた話
yosuke_furukawa
PRO
0
350
「人を評価する AI」の設計と実装
ryoyanara
0
220
typoなんかねぇよ
raspython3
0
200
「寝てても仕事が進む」Claude Codeで組む第二の脳
tomoyafujita2016
0
350
自動化したのに回らない テスト運用の壁―AI時代の品質責任と生産性
mfunaki
0
360
Go言語とトイモデルで学ぶTransformerの気持ち / fukuokago23-transformer
monochromegane
0
190
全PRの83%がAIレビューだけでマージできるようになった開発組織はその後どうなったか
athug
1
1.9k
MySQLとPostgreSQLって何が違うの?
akagami
0
120
レビュー履歴をAIに食わせて、 Compose移行を加速するs
shihochan
0
160
Featured
See All Featured
So, you think you're a good person
axbom
PRO
2
2.1k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
4.2k
Speed Design
sergeychernyshev
33
2k
Fireside Chat
paigeccino
42
4k
Marketing to machines
jonoalderson
1
5.7k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
440
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.9k
Being A Developer After 40
akosma
91
590k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
210
Transcript
։ൃڥߏஙͷࣗಈԽ @k0kubun
ࣗݾհ
։ൃڥߏஙͷࣗಈԽ
ڈͷࢲͷ։ൃڥ • ࣗͷMacbook Air
ڈͷࢲͷ։ൃڥ • ࣗͷMacbook Air • ࣗͷiMac
ڈͷࢲͷ։ൃڥ • ࣗͷMacbook Air • ࣗͷiMac • ݚڀࣨͷMacbook Pro
ڈͷࢲͷ։ൃڥ • ࣗͷMacbook Air • ࣗͷiMac • ݚڀࣨͷMacbook Pro •
όΠτઌͷMacbook Pro
YosemiteϦϦʔε • ແݶ Yak shavingͷ͡·Γ
YosemiteϦϦʔε • 4YosemiteΞοϓάϨʔυ໘ • શ෦ΫϦʔϯΠϯετʔϧ͢ΕΑ͘Ͷʁ • ίϚϯυҰൃͰsetup͍ͨ͠
ଞͷਓͷίϚϯυҰൃsetup • holman/dotfiles ˒3212 • ͦͦσϑΥϧτͩͱgitͳ͍ $ git clone https://github.com/holman/
dotfiles.git ~/.dotfiles && cd ~/.dotfiles && script/bootstrap
ଞͷਓͷίϚϯυҰൃsetup • mathyasbynens/dotfiles ˒12335 • ֮͑ΒΕΔΘ͚ͳ͍ • ίϐϖͷͨΊʹϒϥβ։͘ͷ͕໘ $ cd;
curl -#L https://github.com/mathiasbynens/ dotfiles/tarball/master | tar -xzv --strip- components 1 -- exclude={README.md,bootstrap.sh,LICENSE-MIT.txt}
k0kubun/rebuild Development environment bootstrap automation toolkit for OSX https://github.com/k0kubun/rebuild
k0kubun/rebuild
k0kubun/rebuild • rebuild k0kubun/dotfiles ͢Δ͚ͩ • gitͷશࣗಈΠϯετʔϧ • GUIૢ࡞ͷͨΊͷΞΫηγϏϦςΟऔಘ •
AppleScriptͰGUIૢ࡞ • dotfilesͷinstall.shΛΒͤΔ
install.shͲ͏͢Δ͔ • ࣮ࡍʹࢼͨ͠Ҋͨͪ • ryotarai/itamae • r7kamura/serverkit • γΣϧεΫϦϓτखॻ͖
itamae • Macͩͱ͏·͘ಈ͔ͳ͔ͬͨͷͰͨ͠ • itamae-plugin-resource-cask ͱ͔࡞ͬͨ • ͜ΕΛ͍͍ͪͪ࡞Δͷ͕໘
serverkit • MacڥߏஙͷϓϥάΠϯ͕ॆ࣮ͯ͠Δ • ͦΕҎ֎ͷ͜ͱΔͱ͖ • ͕ΜͬͯࣗͰϓϥάΠϯ࡞Δ • YAMLʹγΣϧεΫϦϓτॻ͘
ҙͷεΫϦϓτΛ࣮ߦ͢Δྫ execute "gem install rebuild" do not_if "gem list |
grep -q rebuild" end - type: command script: gem install rebuild check_script: "gem list | grep -q rebulid" • itamae • serverkit if gem list | grep -q rebuild; then gem install rebuild fi • γΣϧεΫϦϓτ
݁: Ruby͏ݹ͍ɺ ɹɹ ࣌γΣϧεΫϦϓτ • αʔόʔͱҧͬͯϩʔΧϧͩͱ͍Ζ͍ΖΓ͍ͨ • Ruby DSL͔YAML͔shͦͷ··͔ͷΈͷ •
ʹͱͬͯshͦͷ··͕ಡΈ͔ͬͨ͢
ϩʔΧϧͰ͍Ζ͍ΖΔྫ
k0kubun/karabiner-dsl Lightweight keyremap configuration DSL for Karabiner https://github.com/k0kubun/karabiner-dsl
k0kubun/karabiner-dsl • MacͷΩʔόΠϯυΛRubyͷDSLͰهड़Ͱ͖Δ • DSLΛղੳͯ͠XMLΛు͖KarabinerʹಡΈࠐ·ͤΔ • ૉͷKarabinerͷઃఆϑΝΠϧॻ͘ͷਏ͍
͜͏͍͏XMLΛ <?xml version="1.0"?> <root> <item> <name>Application shortcuts</name> <identifier>remap.application_shortcuts</identifier> <autogen>__KeyToKey__ KeyCode::O,
VK_CONTROL, KeyCode::VK_OPEN_URL_APP_YoruFukurou</autogen> <autogen>__KeyToKey__ KeyCode::U, VK_CONTROL, KeyCode::VK_OPEN_URL_APP_Google_Chrome</autogen> <autogen>__KeyToKey__ KeyCode::H, VK_CONTROL, KeyCode::VK_OPEN_URL_APP_iTerm</autogen> </item> <vkopenurldef> <name>KeyCode::VK_OPEN_URL_APP_YoruFukurou</name> <url type="file">/Applications/YoruFukurou.app</url> </vkopenurldef> <vkopenurldef> <name>KeyCode::VK_OPEN_URL_APP_Google_Chrome</name> <url type="file">/Applications/Google Chrome.app</url> </vkopenurldef> <vkopenurldef> <name>KeyCode::VK_OPEN_URL_APP_iTerm</name> <url type="file">/Applications/iTerm.app</url> </vkopenurldef> </root>
͜ͷDSL͔ΒੜՄೳ item "Application shortcuts" do remap "C-o", to: invoke("YoruFukurou") remap
"C-u", to: invoke("Google Chrome") remap "C-h", to: invoke("iTerm") end
ϖΞϓϩ࣌ʹൃ͢Δઃఆτοϓ5 • ࢲͷઃఆΛྫʹDSLͷॻ͖ํΛհ͠·͢
5Ґ: ࠨCommand͕Control Ωʔʹͳ͍ͬͯΔ • MySQLͷग़ྗΛίϐʔ͠Α͏ͱͯ͠ ʮmysql> Ctrl-C -- exit!ʯ item
"Command_L to Control_R" do remap "Cmd_L", to: "Ctrl_R" end
4Ґ: Control+HΛԡ͢ͱiTerm ্ཱ͕͕ͪΔ • ϒϥβͰจࣈΛফͦ͏ͱC-h͢ΔͱγΣϧ͕ ༙͍ͯ͘Δ item "Application shortcuts" do
remap "C-h", to: invoke("iTerm") end
3Ґ: Command+LΛԡ͢ͱCapsLock͞ΕΔ • ϒϥβͰΞυϨεόʔʹϑΥʔΧε͠Α͏ͱ ͢Δͱͳ͔ͥCapsLock͞ΕΔ item "CapsLock ON", config_not: "notsave.private_capslock_on"
do remap "Cmd-L", to: ɹɹ ["capslock","VK_CONFIG_FORCE_ON_notsave_private_capslock_on"] end item "CapsLock OFF", config_only: "notsave.private_capslock_on" do remap "Cmd-L", to: ["capslock", "VK_CONFIG_FORCE_OFF_notsave_private_capslock_on"] end
2Ґ: Control+OͰHipChatཱ͕ ্͕ͪΔ • vimͰҎલͷΧʔιϧҐஔʹΖ͏ͱ͢Δͱͳ ͔ͥHipChat͕ݱΕΔ item "Application shortcuts" do
if ENV['WORK_PC'] == 'true' remap "C-o", to: invoke("HipChat") else yorufukurou = system('ls /Applications | grep -q YoruFukurou') ? 'YoruFukurou' : 'Night Owl' remap "C-o", to: invoke(yorufukurou) end end
1Ґ: Control+UͰGoogle Chrome ্ཱ͕͕ͪΔ • γΣϧʹೖྗͨ͠ͷΛফͦ͏ͱ͢Δͱͳ͔ͥ ϒϥβ͕ग़ͯ͘Δ item "Application shortcuts"
do remap "C-u", to: invoke("Google Chrome") end
͓ΘΓ • ڥߏஙࣗಈԽͯ͜͠㽉㽉㽉