Upgrade to Pro — share decks privately, control downloads, hide ads and more …

TokyoRubyKaigi10

hassaku
January 13, 2013

 TokyoRubyKaigi10

hassaku

January 13, 2013
Tweet

More Decks by hassaku

Other Decks in Programming

Transcript

  1. पғͷॿ͚Λಘͳ͕Β ָ͘͠։ൃ͢ΔͨΊͷ ΞϨίϨ $ CBSUP  5IF(BSBHF IUUQXXXqJDLSDPNQIPUPT!/ IUUQDSFBUJWFDPNNPOTPSHMJDFOTFTCZ Activities

    on a little ingenuity to enjoy working with co-workers’ help T a k a s h i H a s u o ࿇ ඌ ߴ ࢤ TokyoRubyKaigi10 2013.1.13 11:15-11:30 speakerdeck.com/hassaku
  2. 自己紹介 / Who am I • Takashi Hasuo@Everyleaf Corporationʢສ༿ʣ •

    Ruby Programmer • Developing Rails applications and in-house system management • Joined the company in July last year • Robot! → Me! → • In previous job, I worked as a research and development engineer at a manufacturer. (not a web developer) speakerdeck.com/hassaku
  3. $ EJFSLFO  &OUFSJOHTUBSUVQ IUUQXXXqJDLSDPNQIPUPTEJFSLFO IUUQDSFBUJWFDPNNPOTPSHMJDFOTFTCZ Git handling Server operation

    Pair programming ࡞ۀ؀ڥΛखܰʹγΣΞ ։ൃ؀ڥΛखܰʹೖख "QQFBM ࣗ෼ͷঢ়گΛݟ͑ΔԽ ϝϯόʔͷಘҙ෼໺Λݟ͑ΔԽ アレコレと工夫した4つの例 Shared workspace Easily available development environment Visualized specialties of members Own status indicator Four examples of a little ingenuity
  4. ࡞ۀͷݟֶ࣌΍ ϖΞϓϩάϥϛϯάʹ͓͍ͯ จࣈখͯ͘͞ݟ͑ͳ͍ ͜ͷΩʔόΠϯυ࢖͍ͮΒ͍ Viewing the other’s work or doing

    pair programming, Text size is too small too read. This key binding is very hard to use for me.
  5. ηογϣϯڞ༗πʔϧΛԠ༻͢Ε͹ खܰʹϖΞ࡞ۀͰ͖Δ͔΋͠Εͳ͍ zolrath / wemux ෳ਺ਓͰಉ࣌ʹૢ࡞ՄೳͳUNVYηο γϣϯΛఏڙ͢Δπʔϧ It allows users

    to host a wemux server and have clients join in the same tmux session. A tool for shared session makes low burden pair work possible!!
  6. $ wemux users Users connected 1. wemux-guest 2. hasuo[m] ήετϢʔβͰTTIϦϞʔτϩάΠϯ

    ڞ༗ηογϣϯʹBUUBDI SSH remote login with the guest account and attaching to shared session.
  7. खܰʹ7.Λίϐʔग़དྷΔπʔϧΛ ࡞Ε͹खؒΛݮΒͤΔ͔΋͠Εͳ͍ Sinatra application 7BHSBOU 7.TJO7JSUVBMCPY ৗʹ࠷৽ͷ։ൃ؀ڥΛखܰʹೖखͰ͖Δ The tool I

    made makes development environment possible to copy easily!! Latest environments are available in anytime. Wiki without requests unnecessary from scratch
  8. % bash < <(curl -s http://192.168.11.7:8080/scripts/rails4-install) - Import VM [vagrant]

    Downloading with Vagrant::Downloaders::HTTP... [vagrant] Downloading box: http://192.168.11.7:8080/packages/rails4_.box [vagrant] Extracting box... [vagrant] Verifying box... [vagrant] Cleaning up downloaded box... - Download vagrant project files % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 400 100 400 0 0 16162 0 --:--:-- --:--:-- --:--:-- 17391 x rails4_/ x rails4_/.vagrant x rails4_/Vagrantfile - Start VM [rails4_] Importing base box 'rails4_'... [rails4_] Progress: 100% [rails4_] Forwarding ports... [rails4_] -- 22 => 2222 (adapter 1) [rails4_] Creating shared folders metadata... [rails4_] Clearing any previously set network interfaces... [rails4_] Booting VM... [rails4_] Waiting for VM to boot. This can take a few minutes. [rails4_] VM booted and ready for use! [rails4_] Mounting shared folders... [rails4_] -- v-root: /vagrant - Login VM Welcome to Ubuntu 12.10 (GNU/Linux 3.5.0-17-generic x86_64) Last login: Sun Dec 2 05:10:04 2012 from 10.0.2.2 vagrant@quantal64:~$ εΫϦϓτ࣮ߦ 7.ͷμ΢ϯϩʔυ 7.ͷىಈ ϩάΠϯ ଈ࠲ʹ࡞ۀ։࢝Մೳʂ Execute the script Download files Creating VM Login and start to work
  9. ೔ʑͷίϛϡχέʔγϣϯϩάΛղੳ͢Δ͜ͱͰɺ֤ϝϯ όʔͷ٬؍తͳಛੑΛ஌Δ͜ͱ͕Ͱ͖Δ͔΋͠Εͳ͍ IUUQTMFBGZJO ࣾ಺Ͱ೔ৗతʹར༻͍ͯ͠Δ ίϛχϡέʔγϣϯπʔϧ ղੳ ʢࣗવݴޠॲཧʣ "͞ΜͷϓϩϑΝΠϧྫ DTTܥ HJUܥ

    ࣄ຿ܥ ಘҙ෼໺ A log analysis of our communication tool shows specialties of members extracted from what they said automatically. Natural language processing Speciality Example of A’s profile Leafy used at the office daily is a communication tool like Twitter.
  10. Process flowchart 8FC%SJWFSʹΑΔͭͿ΍͖औಘ ܗଶૉղੳثʹΑΔ໊ࢺநग़ -%"ʹΑΔτϐοΫղੳ ֤ϢʔβϓϩϑΝΠϧ࡞੒ octave "͞Μʮޗഐ͸ೣͰ͋Δɻ໊લ ͸·ͩແ͍ɻʯ ޗഐʢ໊ࢺʣ͸ʢॿࢺʣೣ

    ʢ໊ࢺʣ ʮಈ෺ʯʹؔ͢Δ࿩୊ ʮࣗ෼ʯʹؔ͢Δ࿩୊ 4UBUJTUJDT BOJNBM TFMG FUD "`TQSPpMF ruby Scraping with WebDriver Noun phrase extraction with morphological analysis Topic analysis with LDA User profiling
  11. lςετzʹؔ͢ΔτϐοΫ ʹ͓͚Δ୯ޠग़ݱ֬཰ IBTVP εϖοΫΛશ෦άϦʔϯͨ͠Β͝൧৯΂ʹߦ͜͏ͱࢥ͍· ͢ɾɾɾɻ͋ͱͰTIBSFE@DPOUFYUʹॻ͖׵͑ͨ෦෼ͷϨϏϡʔ Λ୭͔ʹ͓ئ͍͍ͨ͠ͱࢥ͍·͢ʂ Latent Dirichlet Allocation ͭͿ΍͖ͷྫ

    STQFD εϖοΫ άϦʔϯ  ෳ਺ͷ࿩୊͔Βੜ੒͞ΕΔ୯ޠͰߏ੒͞ΕΔจষू߹ͷ֬཰Ϟσϧ େྔͳσʔλͷػցֶशʹΑΓ ֤छύϥϝʔλΛਪఆ จষʹ͓͚ΔτϐοΫ֬཰ ɾɾɾ A generative model that explain why some words of the document are similar. / An example of a message τϐοΫ֬཰ʹج͖ͮ ੜ੒͞Ε֤ͨτϐοΫ ୯ޠग़ݱ֬཰ʹج͖ͮ ੜ੒͞Ε֤ͨ୯ޠ Generated words by probabilities Generated topics by probabilities Graphical model of LDA Probabilities of generating each topic in document Probabilities of generating each word in topic Each parameters are inferred from a massive collection of document.
  12. ॎ࣠ɿϢʔβϓϩϑΝΠϧͱΩʔϫʔυΑΓࢉग़ͨؔ͠࿈౓ ղੳ݁Ռ Keyword : “TDD” Keyword : “cucumber” ςετܥͷτϐοΫͰ ಥग़͢Δٕज़ܥͷϝϯόʔ

    ٕज़ܥͰ͸໨ཱͨͳͯ͘΋ ࣄ຿ܥͰ͸ಥग़͢Δϝϯόʔ Result Users ԣ࣠ɿ֤Ϣʔβ Correlation score between user profiles and coefficient of keyword x-axis y-axis Engineers with high scores on keywords about testing Keyword : “精算” A business unit member keeps higher score on nontechnical topic compared with technical topics.
  13. ݱঢ় wਫ਼౓ʹ໰୊͕͋Γɺ࣮༻ʹ౸Βͣʜ w8FCΞϓϦԽͯ͠ɺؔ܎ऀ͕͍ͭͰ ΋࢖͑ΔΑ͏ʹ͍ͨ͠ In an ongoing way It’s far

    from practical use because there are accuracy issues. I’d like to provide this analysis through an internal web service.
  14. SVCZϓϩάϥϜͰܭଌ஋ Λड৴ɻ৺ഥ਺Λࢉग़ ͠ɺ$BQT-&%Λ఺໓ γεςϜͷ֓ཁ ੺֎ઢηϯαͰ݂ӷதͷ ϔϞάϩϏϯมԽΛܭଌ ϐʔΫִؒ஋Λૹ৴ System summary Transmit

    peak-to-peak value Ruby application blinks LED on Caps lock key depending on heart rate. Infrared sensor measures varying hemoglobin level of blood.
  15. アレコレ1の場合どうするの? How about in first example case? Git handling Server

    operation Pair programming etc... Sharing workspace on wemux ʘݟΕͳ͘Ͷ ʗ "QQFBM
  16. Git handling Server operation Pair programming etc... Sharing workspace on

    wemux ʘ)BQQZʗ ཭Ε͍ͯͯ΋େৎ෉ It’s not a problem if they’re far away from each other. "QQFBM
  17. 言い出しづらい状況下で も、ペースを合わせても らえるようになった! Now I can have proper pace if

    I’m hesitant to propose slowing down! (though this example is very limited.) (あまり実用的な例ではありませんでしたが…)
  18. Gitͷૢ࡞ αʔόʔૢ࡞ ϖΞίʔσΟϯά "QQFBM 日々のちょっとした工夫の例 ࡞ۀ؀ڥΛखܰʹγΣΞ ։ൃ؀ڥΛखܰʹೖख ࣗ෼ͷঢ়گΛݟ͑ΔԽ ϝϯόʔͷಘҙ෼໺Λݟ͑ΔԽ Shared

    workspace Easily available development environment Visualized specialties of members Own status indicator Four examples of a little ingenuity
  19. 特に色々な案件を抱える会社では、 助け合いが活発になることで、 本来備えた柔軟な組織力を 100%発揮できるかもしれない $ +PBDIJN4.ÛMMFS  4POOFOBOCFUFS IUUQXXXqJDLSDPNQIPUPTKPBDIJN@T@NVFMMFS IUUQDSFBUJWFDPNNPOTPSHMJDFOTFTCZ

    QSPKFDU" QSPKFDU# QSPKFDU$ Especially, in case of company which has many projects lined up, such activity to help each other without barrier might lead to the 100% strength of an organization. organization
  20. $ CBSUP  5IF(BSBHF IUUQXXXqJDLSDPNQIPUPT!/ IUUQDSFBUJWFDPNNPOTPSHMJDFOTFTCZ We can cast our

    thoughts into shape to make our development more enjoyable with DIY mind in the weekend. 余暇を利用したDIY的な取り組みで 日々の開発をより楽しく出来そうな ちょっとした思いつきを形にしていく