SlideShare ist ein Scribd-Unternehmen logo
1 von 26
Downloaden Sie, um offline zu lesen
ruby for better bash 
Qoncept, Inc. 
ᯇ஭ ᕦ 
matsui@qoncept.co.jp
䛣䛾䝇䝷䜲䝗䛻䛴䛔䛶 
Qoncept䛷䛿䚸AR䜢୰ᚰ䛻iOS/Android䜰䝥䝸㛤Ⓨ䜢⾜䛳䛶䛔 
䜎䛩䛜䚸」㞧䛺䜰䝥䝸䜿䞊䝅䝵䞁䛾䝸䝋䞊䝇⟶⌮䜔䚸䝥䝷䝑䝖 
䝣䜷䞊䝮ᆺ䛾䝃䞊䝡䝇䛾㐠⏝䛻䛚䛔䛶䚸⣽䛛䛔సᴗ䛜ᚎ䚻䛻 
⮬ື໬䛥䜜䜛஦䛜䜘䛟䛒䜚䜎䛩䚹 
ᬑẁ䛿䝅䜵䝹䛸䛧䛶bash䜢౑䛳䛶䛔䜛䛯䜑䚸䛭䛾ᘏ㛗䛷⮬ື໬ 
䛧䜔䛩䛔bash䝇䜽䝸䝥䝖䛜䜘䛟᭩䛛䜜䛶䛔䜎䛩䚹 
䛧䛛䛧䚸័䜜䛶䛔䜛bash䝇䜽䝸䝥䝖䛷䛒䛳䛶䜒䚸㧗ᗘ䛺஦䜢䛧䜘䛖 
䛸䛩䜛䛸ཝ䛧䛔㒊ศ䛜䛒䜛䛾䛷䚸better bash䛸䛧䛶䛾ู䛾᪉ἲ 
䜢᳨ウ䛧䛶䛝䜎䛧䛯䚹 
䛔䜝䛔䜝䛸ヨ䛧䛯䛸䛣䜝䚸ruby䛿⤖ᵓᐇ⏝ⓗ䛰䛸䛔䛖ᐇឤ䛜ᚓ䜙 
䜜䛶䛝䛯䛾䛷䚸♫ෆྥ䛡䛻ᒎ㛤䛩䜛䛯䜑䛻స䛳䛯䛾䛜䚸䛣䛾䝇 
䝷䜲䝗䛷䛩䚹
⸀䜑
bash䝇䜽䝸䝥䝖䛸䛿 
䞉༢⣧䛺సᴗ䛾⮬ື໬䛻䜘䛟౑䛖䚹 
䞉䛔䜝䛔䜝䛺⎔ቃ䛷ື䛟䚹䝻䞊䜹䝹䛾Mac䛷䜒䚸䛭䛾 
䜎䜎䝃䞊䝞䛾Linux䛷䜒䚹 
䞉౑䛔័䜜䛯䝁䝬䞁䝗䛜౑䛘䜛䚹mkdir, grep, wc, 
zip, rsync, convert...䚹 
䞉ᬑẁ䛾䝅䜵䝹᧯స䛾ᘏ㛗䛷䝇䜽䝸䝥䝔䜱䞁䜾䛜ጞ 
䜑䜙䜜䜛䚹
㐠ᦙᛶ䛜㧗䛔䛜ಖᏲᛶ䚸ᣑᙇᛶ䛜ప䛔 
䞉㓄ิ䜔㎡᭩䛾䝃䝫䞊䝖䛜㈋ᙅ䚹 
䞉䜔䜔䛣䛧䛔⊂⮬䛾ᵓᩥ䛜ከ䛔䚹 
䞉┦ᑐ䝟䝇䜢ྲྀ䜝䛖䛸䛩䜛䛸ⱞ䛧䛔䚹 
䞉json䛸䛛ྲྀ䜚ᢅ䛚䛖䛸䛩䜛䛸ⱞ䛧䛔䚹 
䞉bash䛷䛜䜣䜀䜛䛠䜙䛔䛺䜙䚸Ⰻ䛔ឤ䛨䛾䝇䜽䝸䝥䝖 
ゝㄒ䛻ษ䜚᭰䛘䜘䛖䚹
Ruby䛾⸀䜑 
䞉ぢ䛛䛡䛜bash䛻ఝ䛶䛔䜛䛯䜑䚸௦᭰䛸䛧䛶౑䛖ୖ䛷䛾䝝䞊䝗 
䝹䛜ప䛔Ẽ䛜䛩䜛䚹 
䞉ゝㄒ䛾䝞䞊䝆䝵䞁㛫஫᥮ᛶ䛜ప䛔䛜䚸rbenv䛻䜘䜚ruby䛾䝞䞊 
䝆䝵䞁䜢ษ䜚᭰䛘䜙䜜䜛䛾䛷䚸ၥ㢟䛺䛧䚹 
䞉䝅䜵䝹䛸ྠᵝ䛻እ㒊䝁䝬䞁䝗䜒࿧䜃ฟ䛫䜛䚹 
䞉ᶆ‽䝷䜲䝤䝷䝸䜔䚸gem䛻䜘䜛እ㒊䝷䜲䝤䝷䝸䛜㇏ᐩ䛺䛯䜑䚸ቨ 
䛻䜆䛴䛛䜙䛺䛔䚹 
䞉⎔ቃᵓ⠏䛜⡆༢䛺䛯䜑䚸㐠ᦙᛶ䜒䛭䛣䛭䛣䛒䜛䚹
ぢ䛛䛡䛜bash䛻ఝ䛶䜛 
bash 
a=1 
if [[ a -gt 0 ]] ; then 
echo "こんにちは" 
fi 
ruby 
a = 1 
if a > 0 then 
puts "こんにちは" 
end 
䞉䝤䝺䞊䝇{}䛷䛿䛺䛟ண⣙ㄒ䛻䜘䜛ไᚚᵓᩥ䚹 
䞉ᩥᮎ䛾䝉䝭䝁䝻䞁䛜↓䛔䚹 
䞉୸ᣓᘼ䛾↓䛔㛵ᩘ࿧䜃ฟ䛧䚹
rbenv䛻䜘䜛rubyษ䜚᭰䛘 
䞉ୗグ䛿䚸䝁䝬䞁䝗䝷䜲䞁䛷ruby䛾䝞䞊䝆䝵䞁䜢ษ䜚᭰䛘䜛ᵝᏊ䚹 
$ rbenv versions 
system 
2.0.0-p195 
2.0.0-p451 
2.1.0 
2.1.1 
* 2.1.2 (set by /usr/local/var/rbenv/version) 
$ rbenv global 2.0.0-p195 
$ ruby --version 
ruby 2.0.0p195 (2013-05-14 revision 40734) [x86_64-darwin12.4.1] 
$ rbenv global 2.1.2 
$ ruby --version 
ruby 2.1.2p95 (2014-05-08 revision 45877) [x86_64-darwin13.0] 
䞉䝕䜱䝺䜽䝖䝸䛻ᑐ䛧䛶䝞䞊䝆䝵䞁䜢タᐃ䛧䛶䚸⮬ື䛷ษ䜚᭰䛘䜛 
஦䜒䛷䛝䜛䚹
እ㒊䝁䝬䞁䝗䛾࿧䜃ฟ䛧 
下記コマンドを実行するrubyプログラムの例です。 
$ ls -1 | grep -E '.rb$' 
呼び出した後、パイプで繋がれた各コマンド(lsとgrep)のステータスコードをチェックしている。実際 
に利用ではこれを関数で包むのが良いでしょう。 
require "open3" 
status_list = Open3.pipeline(["ls", "-1"], ["grep", "-E", ".rb$"]) 
status_list.each.with_index do |status, index| 
if status.exitstatus != 0 
raise Exception.new("pipeline[#{index}] " + 
"exit status is #{status.exitstatus}") 
end 
end 
䞉䝁䝬䞁䝗䛾ᘬᩘ䜢㓄ิ䛾せ⣲䛸䛧䛶ᣦᐃ䛩䜛䛯䜑䚸༙ゅ䝇䝨䞊䝇ᩥᏐ䛻㛵䛩䜛䝞䜾 
䛜㜵䛢䜎䛩䚹䜎䛯䚸䝁䝬䞁䝗䜢⤌䜏❧䛶䜛䝁䞊䝗䛜᭩䛝䜔䛩䛔䛷䛩䚹
gem 
䞉ruby䛾䝷䜲䝤䝷䝸ᑓ⏝䛾䝟䝑䜿䞊䝆䝬䝛䞊䝆䝱䚹ruby䛿ᗈ䛟฼ 
⏝䛥䜜䛶䛔䜛䛯䜑䚸gem䛜඘ᐇ䛧䛶䛔䜎䛩䚹 
ᑡ䛧⤂௓ 
䞉kramdown: markdown䜢䝺䞁䝎䝸䞁䜾䛩䜛䚹 
䞉rugged: git䝸䝫䝆䝖䝸䜢᧯స䛩䜛䚹 
䞉rmagick: imagemagick䛾ᶵ⬟䜢౑䛖䚹 
䞉rails: ᭷ྡ䛺䜴䜵䝤䜰䝥䝸䜿䞊䝅䝵䞁䝣䝺䞊䝮䝽䞊䜽䚹
rbenv䛸gem䛾㛵ಀ 
䞉rbenv䛷」ᩘ䛾ruby䜢ධ䜜䛶䛔䜛ሙྜ䚸䛭䜜䛮䜜 
䛾ruby䛤䛸䛻⊂❧䛺gem⎔ቃ䛜⏝ព䛥䜜䜛䚹 
䞉౛䛘䜀䚸ruby2.0.0䛻䛧䛯≧ែ䛷kramdown䜢䜲䞁 
䝇䝖䞊䝹䛧䛶䜒䚸ruby2.1.2䛻ษ䜚᭰䛘䜛䛸౑䛘䛺䛔 
䛾䛷䚸ู㏵䜲䞁䝇䝖䞊䝹䛜ᚲせ䚹
ཧ⪃: ඛ➃஦᝟䛾⤂௓ 
䞉rbenv䛷䛿䚸ruby䛤䛸䛻gem⎔ቃ䛜䛒䛳䛯䛜䚸bundler䛸䛔䛖䝷䜲䝤䝷䝸䜢౑䛖䛸䚸᭦䛻 
⣽䛛䛟䚸䝕䜱䝺䜽䝖䝸(䍦䜰䝥䝸)䛻ᑐ䛧䛶gem⎔ቃ䜢ᵓ⠏䛷䛝䜛䚹 
䞉rbenv䛿䚸䝕䜱䝺䜽䝖䝸䛤䛸䛻ruby䛾䝞䞊䝆䝵䞁䜢タᐃ䛷䛝䜛䛾䛷䚸䛣䜜䜙䜢⤌䜏ྜ䜟 
䛫䛶䚸ruby(ゝㄒ)䜒gem(䝷䜲䝤䝷䝸⩌)䜒䝕䜱䝺䜽䝖䝸䛷⊂❧䚸᏶⤖䛧䛯≧ែ䛻䛷䛝䜛䚹 
䞉rails䜰䝥䝸䜢㉳ື䛩䜛䝃䞊䝞(unicorn䛺䛹)⮬య䜒䚸gem䛷䜲䞁䝇䝖䞊䝹䛩䜛䚹䛭䛾䛯 
䜑䚸1䛴䛾䝩䝇䝖䝬䝅䞁䛾୰䛷䚸䜰䝥䝸䝃䞊䝞䜢䜰䝥䝸䛤䛸䛻⊂❧䛧䛶ᣢ䛴஦䛜䛷䛝䜛䚹 
䞉1䛴䛾䝩䝇䝖䝬䝅䞁䛻」ᩘ䛾䜴䜵䝤䜰䝥䝸䜢䝕䝥䝻䜲䛩䜛ሙྜ䛺䛹䛻䛚䛔䛶䚸⎔ቃ䛾 
⊂❧ᛶ䚸ศ㞳ᛶ䛜㧗䛟䚸┦஫䛾ᖸ΅䜢㜵䛠䛣䛸䛜䛷䛝䜛䚹 
䞉᫇䛿䚸1䛴䛾䝃䞊䝞䛾୰䛻1䛴䛾䝞䞊䝆䝵䞁䛾apache䚸1䛴䛾䝞䞊䝆䝵䞁䛾php䚸1䛴 
䛾pecl, pear⎔ቃ䛜䛒䛳䛶䚸䜰䝑䝥䜾䝺䞊䝗䛩䜛䛸䚸᪤Ꮡ䛾䜰䝥䝸䛜ቯ䜜䜛ᜍ䜜䛜䛒 
䜚䚸᪂つ㛤Ⓨ䛷᭱᪂䝞䞊䝆䝵䞁䛾ゝㄒ䜔䝷䜲䝤䝷䝸䛜౑䛘䛺䛔஦䛜䜘䛟䛒䛳䛯䚹
ᑟධ 
䈜Mac䛜๓ᥦ䛻䛺䜚䜎䛩䚹
homebrew䛾ᑟධ䚸᭦᪂ಖᏲ 
ᑟධ 
බᘧ䝃䜲䝖(http://brew.sh/index_ja.html)䜢ཧ↷䛧䛶䜲䞁䝇䝖䞊䝹䛧䜎䛩䚹 
᭦᪂ಖᏲ 
$ brew doctor䛷≧ែ䛾デ᩿䛜䛷䛝䜎䛩䚹䜒䛧ఱ䛛䛧䜙ၥ㢟䛜ᣦ᦬䛥䜜䛯䜙䚸䠍䛴 
䛪䛴ゎỴ䛧䛶䚸ୗグ䛾䜘䛖䛻䚸ఱ䜒ၥ㢟䛜䛺䛔≧ែ䛻䛧䜎䛧䜗䛖䚹 
䛣䜜䛿䛛䛺䜚㔜せ䛷䛩䚹 
$ brew doctor 
Your system is ready to brew. 
大体の場合、「24時間以内にupdateしていません」という趣旨のエラーが出るので、そ 
のときは$ brew updateをしましょう。
rbenv䛾ᑟධ 
ୗグ䝁䝬䞁䝗䛻䛶䜲䞁䝇䝖䞊䝹䛧䜎䛩䚹 
$ brew install rbenv 
↓஦䛻䜲䞁䝇䝖䞊䝹䛷䛝䛯䜙䚸.bash_profile䛻ୗグ䜢㏣グ䛧䜎䛩䚹 
export RBENV_ROOT=/usr/local/var/rbenv 
if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi 
ḟ䛻䚸ୗグ䛾rbenv䝥䝷䜾䜲䞁䜢ධ䜜䜎䛩䚹䛣䛾䝥䝷䜾䜲䞁䛻䛴䛔䛶䛾ㄝ᫂䛿┬␎䛧 
䜎䛩䚹 
$ brew install rbenv-gem-rehash 
᭱ᚋ䛻䚸ୗグ䛾rbenv䝥䝷䜾䜲䞁䜢ධ䜜䜎䛩䚹䛣䛾䝥䝷䜾䜲䞁䛜䚸ruby䛾䝞䞊䝆䝵䞁㑅 
ᢥ䛧䛶䝡䝹䝗䛩䜛ᶵ⬟䜢ᥦ౪䛧䜎䛩䚹(⣲䛾rbenv䛿䚸ษ䜚᭰䛘ᶵ⬟䛾䜏䜢ᥦ౪䛧䛶䛔 
䜎䛩) 
$ brew install ruby-build
ruby䛾䜲䞁䝇䝖䞊䝹 
ୗグ䝁䝬䞁䝗䛷䚸䜲䞁䝇䝖䞊䝹ྍ⬟䛺ruby䛾䝞䞊䝆䝵䞁䝸䝇䝖䛜⾲♧䛥䜜䜎䛩䚹 
$ rbenv install --list 
rubyබᘧ䝃䜲䝖(https://www.ruby-lang.org/ja/downloads/)䛸⾲♧䛥䜜䛯䝸䝇䝖䜢ぢ 
ẚ䜉䛶䚸䜲䞁䝇䝖䞊䝹䛩䜛䝞䞊䝆䝵䞁䜢Ỵ䜑䛯䜙䚸ୗグ䛾䜘䛖䛻ᣦᐃ䛧䛶ᐇ⾜䛧䜎䛩䚹 
$ rbenv install -v 2.1.2 
䝸䝇䝖䛾୰䛻䚸┠ⓗ䛾᪂䛧䛔䝞䞊䝆䝵䞁䛜ྵ䜎䜜䛶䛔䛺䛔᫬䛿䚸ୗグ䝁䝬䞁䝗䛻䛶䝥䝷 
䜾䜲䞁䜢䜰䝑䝥䝕䞊䝖䛧䜎䛩䚹 
$ brew upgrade ruby-build 
䈜2.0.0䛷䛿䚸䜸䝥䝅䝵䞁䜢ᣦᐃ䛧䛺䛔䛸 ruby䛾䝡䝹䝗䛻ኻᩋ䛩䜛஦䛜䛒䜚䜎䛧䛯䛜䚸 2.1.2䛿䛭䛾䜎䜎䛷⾜䛡 
䜎䛧䛯䚹䛖䜎䛟䛔䛛䛺䛔ሙྜ䛿䜾䜾䛳䛶䜏䜛䛸Ⰻ䛔䛷䛩䚹
ruby䛾䝞䞊䝆䝵䞁䛾㑅ᢥ 
rbenv䛷䜲䞁䝇䝖䞊䝹䛧䛯䚸㑅ᢥྍ⬟䛺䝞䞊䝆䝵䞁䛾୍ぴ䜢ୗグ䛷☜ㄆ䛧䜎䛩䚹 
$ rbenv versions 
ୗグ䛷㑅ᢥ䛧䜎䛩䚹 
$ rbenv global 2.1.2 
ୗグ䛷ᐇ㝿䛻ษ䜚᭰䜟䛳䛯䛣䛸䜢☜ㄆ䛧䜎䛩䚹 
$ ruby --version
gem䛾䜲䞁䝇䝖䞊䝹 
ඛ㏙䛾㏻䜚䚸ruby䛾䝞䞊䝆䝵䞁䛤䛸䛻gem⎔ቃ䛜Ꮡᅾ䛧䜎䛩䚹 
䛭䛾䛯䜑䚸䜎䛪rbenv䛷ruby䛾䝞䞊䝆䝵䞁䜢ษ䜚᭰䛘䛯ᚋ䛷䚸gem䝁䝬䞁䝗䛷䝷䜲䝤䝷䝸 
䜢䜲䞁䝇䝖䞊䝹䛧䜎䛩䚹 
ୗグ䛻౛䜢♧䛧䜎䛩䚹 
$ rbenv global 2.1.2 
$ gem install kramdown
᭩䛟
irb䛷ヨ䛩 
䛩䛠䛻ヨ䛧䛯䛔᫬䜔䚸ືస䜢䛱䜗䛳䛸☜ㄆ䛧䛯䛔᫬䛺䛹䛿䚸irb䛸 
䛔䛖ᑐヰ⎔ቃ䛜౽฼䛷䛩䚹 
(ỈⰍ䛾⥙᥃䛡䛜ධຊ䛧䛯⾜䛷䛩) 
$ irb 
irb(main):001:0> a = 1 
=> 1 
irb(main):002:0> b = 2 
=> 2 
irb(main):003:0> puts "a=#{a}, b=#{b}, a+b=#{a+b}" 
a=1, b=2, a+b=3 
=> nil 
irb(main):004:0> quit
䜶䝕䜱䝍䛾ᑟධ 
sublime text 2䜢ධ䜜䜛䛸Ⰻ䛔䛷䛧䜗䛖䚹 
http://www.sublimetext.com/
ruby䝇䜽䝸䝥䝖 䝔䞁䝥䝺䞊䝖 
ෑ㢌2⾜䛿Ỵ䜑ᡴ䛱䛧䜎䛧䜗䛖䚹3⾜┠௨㝆䜢᭩䛝᥮䛘䜎䛧䜗䛖䚹 
#!/usr/bin/env ruby 
#coding: utf-8 
puts "こんにちは"
䝅䜵䝹䛷䛾ᐇ⾜ 
䜶䝕䜱䝍䛷䝇䜽䝸䝥䝖䜢᭩䛔䛶ಖᏑ䛧䜎䛩䚹 
䛣䛣䛷䛿䚸hoge.rb䛸䛧䛶ಖᏑ䛧䛯䛸䛧䜎䛩䚹 
䝣䜯䜲䝹䛻ᐇ⾜ᶒ㝈䜢䛴䛡䜎䛩䚹 
$ chmod +x hoge.rb 
ᐇ⾜䛧䜎䛩䚹 
$ ./hoge.rb
䜘䛟䛒䜛ฎ⌮䛾⤂௓ 
䝕䝞䝑䜾┠ⓗ䛷ኚᩘ䛾್䜢☜ㄆ䛩䜛 
p hoge_var 
1⾜ฟຊ䛸䚸ᘧ䛾ᩥᏐิ䜈䛾ᇙ䜑㎸䜏䚹 
puts "こんにちは、#{name}さん。現在時刻は#{Time.now}ですよ。" 
䝇䜽䝸䝥䝖䝣䜯䜲䝹䛾䛒䜛䝕䜱䝺䜽䝖䝸䛾䝣䝹䝟䝇䜢ᚓ䜛 
script_dir = File.expand_path(File.dirname(__FILE__)) 
䜶䝷䞊᫬䛻⤊஢䛩䜛 
raise Exception.new("引数が不足しています。") 
䛭䛾௚䚸䜾䜾䜛䛸䛔䛳䜁䛔ฟ䜎䛩䚹
ᵓᩥ䛾ὀព 
㛵ᩘ࿧䜃ฟ䛧䛿୸ᣓᘼ↓䛧䛷䜒᭷䜚䛷䜒࿧䜉䜎䛩䛜䚸 
୸ᣓᘼ↓䛧䜢ධ䜜Ꮚ䛷౑䛖䛸ᛮ䜟䛼ㄗືస䜢䛩䜛䛾䛷䚸ධ䜜Ꮚ䛻䛩䜛䛺䜙୸ᣓᘼ䜢 
௜䛡䜎䛧䜗䛖䚹 
# 以下4つはOK 
Math.sin(30.0 * Math::PI / 180.0) 
Math.sin 30.0 * Math::PI / 180.0 
printf("sin(30) = %f", Math.sin(30.0 * Math::PI / 180.0) ) 
printf "sin(30) = %f", Math.sin(30.0 * Math::PI / 180.0) 
# 下記はエラーになる 
printf "sin(30) = %f", Math.sin 30.0 * Math::PI / 180.0
⤊䜟䜚

Weitere ähnliche Inhalte

Empfohlen

Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
Kurio // The Social Media Age(ncy)
 

Empfohlen (20)

PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 
More than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike RoutesMore than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike Routes
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
 
Barbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationBarbie - Brand Strategy Presentation
Barbie - Brand Strategy Presentation
 

ruby for better bash