Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Rubyを使った開発環境構築の自動化
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
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.9k
一度始めたらやめられない開発効率向上術 / Findy あなたのdotfilesを教えて!
k0kubun
4
3.3k
ZJIT: The Ruby 4 JIT Compiler / Ruby Release 30th Anniversary Party
k0kubun
1
580
ZJIT: The Future of Ruby Performance / San Francisco Ruby Conference 2025
k0kubun
1
160
ZJIT: Building a New JIT Compiler for Ruby / REBASE 2025
k0kubun
0
180
Deoptimization: How YJIT Speeds Up Ruby by Slowing Down / RubyKaigi 2025
k0kubun
2
4.9k
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.4k
Other Decks in Programming
See All in Programming
Compiling a real-world CLI tool to native with Static Hermes
tmikov2023
0
120
コードレビューのボトルネックを"する側"と"される側"の両面から解消する
yub0n
2
1.6k
dotNET_vulnclicker_intro.pdf
deka_morita
0
140
機械に任せるテスト、人が見るテスト ⽣成AIで引き直した、運⽤保守フェーズの線引き
dske104
0
190
ActionController meets Protocol Buffers
sorah
0
520
SalesForceを内製化!? ~ HR事業を支える顧客管理基盤のインフラを大公開 ~
oku053
0
180
パスワード再設定メールのURLについて知っておこう
uyuki234
0
160
Simple Storage Service(S3) is not simple
iwatsukayura
0
290
AI主導のプログラミング学習アプリを作ってみた
econanringo
0
180
3回つくってわかった、 定期実行ジョブ基盤の本質情報
takai
0
460
Findy - エンジニア向け会社紹介/Findy Company Deck
findyinc
6
400k
FactoryBotをやめればRSpecは速くなるのか?
yuta_onishi_97
0
290
Featured
See All Featured
The Cult of Friendly URLs
andyhume
79
7k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
20k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
50
10k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.7k
Thoughts on Productivity
jonyablonski
76
5.4k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
730
How to build a perfect <img>
jonoalderson
1
6.1k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.7k
What the history of the web can teach us about the future of AI
inesmontani
PRO
2
740
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.3k
Discover your Explorer Soul
emna__ayadi
2
1.3k
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
͓ΘΓ • ڥߏஙࣗಈԽͯ͜͠㽉㽉㽉