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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
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.8k
一度始めたらやめられない開発効率向上術 / Findy あなたのdotfilesを教えて!
k0kubun
4
3.2k
ZJIT: The Ruby 4 JIT Compiler / Ruby Release 30th Anniversary Party
k0kubun
1
560
ZJIT: The Future of Ruby Performance / San Francisco Ruby Conference 2025
k0kubun
1
150
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.8k
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
AWS Step Functions 大規模並列の壁を越える / jaws-sonic-2026-niigata-step-functions
kasacchiful
PRO
0
390
自分的「カンファレンスの楽しみ方」
syumai
0
190
【デモ】Kiroで体験する仕様駆動開発|設計からコーディングまでAIと進める開発フロー
cmkudo
0
600
[DroidKaigi 2026] Bring your own phones to Gradle Managed Devices
f2lk
0
110
20260828_品質と開発生産性を両立させる、AI時代のE2Eテストの考え方
magicpod
0
170
Oxlintはいいぞ(続)
yug1224
1
560
レビュー履歴をAIに食わせて、 Compose移行を加速するs
shihochan
0
270
RSSとCodexを使ってX投稿自動化してみた
ochtum
0
110
[GoCon2026] When Goroutines Are Not Enough: Runtime Locality in High-Throughput Go
takehaya
3
540
LoopHub - ローカルで動く GitHub で、AI と共同開発
jugyo
0
460
Webプラットフォームで議論されているセキュリティ課題 / Security issues being discussed on Web Platforms
petamoriken
0
200
スマート反転とウェブアクセシビリティ
camiha
0
140
Featured
See All Featured
The SEO Collaboration Effect
kristinabergwall1
1
550
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
Utilizing Notion as your number one productivity tool
mfonobong
4
570
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.9k
Exploring anti-patterns in Rails
aemeredith
3
500
Building Adaptive Systems
keathley
44
3.2k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Everyday Curiosity
cassininazir
0
310
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
600
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.9k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
190
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
͓ΘΓ • ڥߏஙࣗಈԽͯ͜͠㽉㽉㽉