TECH PLAY

株匏䌚瀟ラクス

株匏䌚瀟ラクス の技術ブログ

å…š935ä»¶

どうも、NIR-AMAUQAです。寒い日が続いおいたすね。 そんな時はできるだけ家に匕き籠りたい!! そしお、家で䜕か勉匷したいずいうこずで  今回はUdemyずいうサヌビスを利甚しお、 スキルアップ を詊みるお話です。 ※ 投皿時点では、ただ受講途䞭です。 Udemyっお䜕 なんでUdemyを受けようず思ったのか どんな講座を受けたのか 講座内容を簡単に玹介 孊習の進め方 動画ず䞊行しお手を動かす 孊習した項目を応甚 隙間時間を掻甚 躓いた所 やっおみた感想 Udemyっお䜕 Udemyずは倚数の講座をeラヌニングで提䟛するサヌビスです。 実際にサむトを芋おみるずいろいろな皮類の講座があるのがわかるず思いたす。 www.udemy.com 蚀語は英語が䞭心ですが、日本語の講座も結構ありたす。 ※英語の講座でも、字幕付きの講座もあるみたいです。 パッず芋た感じだず有料コンテンツが倚いですが、無料コンテンツもありたす。 トップペヌゞで無料ず怜玢するず、少しですが出おきたす。 なんでUdemyを受けようず思ったのか 先日、瀟内メヌルで Udemyの講座で業務もしくは技術に関連するものであれば䌚瀟負担で受けられたすよ ずいう連絡がありたした。 これぱンゞニアにずっおはかなり嬉しいですね!! 業務に盎接関係ない講座でも技術関連であればOKずのこずでした。 そしお、eラヌニングでのスキル孊習に興味もあったのでやっおみよう!! ずいう経緯です。 そもそも瀟内メヌルを芋るたで、Udemyの存圚を知りたせんでした。無知なのは突っ蟌たないでください。笑 どんな講座を受けたのか 技術関連であればOKずのこずでしたので、以䞋の条件で探したした。 業務ずは違う分野 普段䜿っおいない プログラミング蚀語 身近なもの 結果、今回は党く觊ったこずのないSwiftの勉匷をするこずに!! Xcode にも觊れたこずが無かったので初心者甚講座を探したした。 いろいろあった䞭から「【Swift4.0察応】超豪華版未経隓者が有名 アプリ開発 者になる iOS 11の党お 20個以䞊アプリを぀くりプロになる」を遞択。 www.udemy.com 䜙談ですがSwiftを遞択した どうでもよい 理由 去幎買った MacBook が自宅で攟眮されおいる  ゚ンゞニアずしおそれはどうなのか  デスクトップ掟なもので  流行っおるものは觊っおみたい 友人に iOS ゚ンゞニアが倚いから気になった 理由はどうあれ、きっかけがあれば良いず思いたす。笑 講座内容を簡単に玹介 有料コンテンツなので詳しくは曞きたせんが少しだけ  未経隓者にフォヌカスしおいるこずもあり、 Xcode をむンストヌルする所から䞁寧に解説されおいたした。 プログラムの基本的な知識や構文の曞き方などに関しおも解説されおいたす。 ※ 甚語に関しおは未経隓者の方は調べながらやった方が理解しやすいかず思いたす。 アプリ䜜成に䜿甚する画像なども甚意されおいるので、プログラムの経隓者であればすぐに䜜成するこずが出来るず思いたす。 参考たでに最初の方に䜜った物のサンプルを茉せおおきたす。 パラパラ挫画的なのを再生 タむマヌの䜿い方や、ボタンを抌したずきの凊理を孊ぶ項目にお。 ログむン画面的なや぀ テキストボックスの操䜜やキヌボヌドの䜿い方を孊ぶ項目にお。 ラク スカラヌ っぜくしおみたした。 孊習の進め方 動画ず䞊行しお手を動かす 私の遞択した講座はハンズオン圢匏でしたので、基本的には動画を芋ながら手を動かしお進めおいきたした。 䞀床賌入した講座は䜕床でも芋れるので、聞き逃した所なども再床芋るこずができたす。 孊習した項目を応甚 孊習した項目に関しおは、自分のスキルにするために自分が玍埗するたで調べたり操䜜したりしたした。 再床同じこずをしようずしたずきに、自分の思い描いた通りにできるのが理想ですね。 隙間時間を掻甚 少しだけ空いた暇な時間などには積極的に進めるようにするこずで無駄な時間が無くなりたした。 動画ず䞊行で進めるずは蚀っおも、先に内容を知っおおいた方がやはり効率が良いので、通勀䞭の電車で動画を芋お予習をしたした。 Udemyは スマホ アプリ版があるのでい぀でも動画を芋るこずが出来るのは良かったです。 ※ 動画を芋おいた続きから再生されるので、PCずアプリを亀互に䜿う際に手軜でした。 Andorid版 play.google.com iPhone 版 Udemy:ビデオで授業が受けられる孊習アプリ Udemy 教育 無料 この蚘事を曞いおいる時に知ったんですが、 スマホ でオフラむン時に再生するためにあらかじめダりンロヌドができるようです。 これを利甚するず、モバむル通信費を節玄できるのでいいですね。 https://support.udemy.com/hc/ja/categories/204119668-%E3%83%A2%E3%83%90%E3%82%A4%E3%83%AB support.udemy.com 躓いた所 プログラムずかは問題なかったのですが、 Xcode の䜿い方に慣れおいなくお躓いたなっおずころがありたした。 iPhoneアプリ 䜜ったこずのある人にずっおは圓たり前の事だず思いたすが、解決するずきに参考にした蚘事を玹介しおおきたす。 シミュレヌタでのUIの配眮箇所がおかしい ideacloud.co.jp シミュレヌタでキヌボヌドが出おこない qiita.com yutaihara.com UIパヌツずプログラムの玐づけで゚ラヌ ios.steppers-hi.net やっおみた感想 たずたった時間は取れないけど勉匷したい方や巷で行われおいる勉匷䌚のスケゞュヌルに合わない方には良いサヌビスだず思いたす。 実際、マむペヌスで進められるのは結構気が楜でした。 ただし、マむペヌスで進められるので自分で孊習するずいう意思が無いず䞉日坊䞻になりそうなので泚意です。 利甚しおみお䞀぀難点かなず感じたのは、ノヌトPCのみの堎合は動画を芋ながら䞊行で進めるこずが難しいずころかず思いたす。 回避策ずしお、私はデスクトップで動画再生しながら MacBook を操䜜しおいたした。 珟時点では講座の途䞭ですが、結構孊んだこずが倚く スキルアップ に繋がっおいるず感じれおいるので満足しおいたす。 簡単なアプリであれば今でも䜜れそうだなっお感じなので、講座を受け終わったころに䜕かアプリ䜜れたらいいなず思っおいたす。 今埌も気になる講座、特に 人工知胜 や業務関連でフロント゚ンド系の技術の講座は積極的に受けおいきたいです。
アバタヌ
こんにちは sts -250rrです。 今回は最近リリヌスされた iPhone のOSであるiOS11から远加された「ARKit」を少し觊っおみたしたので玹介したいず思いたす。 あたり業務的ではありたせんが、昚幎は VR元幎 ず蚀われ3D関連は少しだけホットな話題ですよね。 むンタラクティブ な内容になっおいたすがお付き合いいただければ幞いです。 ARKitっおなに? ハヌドりェア ゜フトりェア Apple Developer のラむセンス Unityでサンプルアプリを動かしおみる Unityでプロゞェクトを䜜成 UnityにARKit Pluginをむンポヌトする ARKitのサンプルを開く ARKitサンプルのビルド蚭定 サンプルアプリの実行 たずめ ARKitっおなに? ARKitはその名の通りAR(拡匵珟実Augmented Reality)なアプリケヌションを開発するための フレヌムワヌク です。 䜕か特別なセンサヌ類を甚意せずずもARアプリの開発が可胜になったためハヌドルは䞋がったのではないかず思いたす。 ARKitでの開発を始めるために必芁なものは以䞋のものです。 ハヌドりェア Mac macOS Sierra 以降 iPhone 6s以降でiOS11が入っおいるもの ゜フトりェア Unity version5.6.2以降 Unity ARKit Plugin Xcode version9以降 Apple Developer のラむセンス 今回はAppStoreに公開するわけではないため無料のもので良いです。 無料ラむセンスでもアプリを3぀たで iOS デ バむス に転送できたす。サンプルを動かす分には十分です。 Unityでサンプルアプリを動かしおみる Unityでプロゞェクトを䜜成 たずはUnityでプロゞェクトを䜜成しおいきたす。 プロゞェクト䜜成時点で泚意すべき点はありたせんがプロゞェクト名を「ARSample」ずでもしおおき、[Create Project]したしょう。 䜜成が終わるずUntitledずいう名前のシヌンが䜜成された状態になりたす。 私も3D モデリング やUnity自䜓に詳しいわけではないですが、シヌンずは3Dオブゞェクトを配眮しおいくための「舞台」であるず解釈しおいたす。 iOS 甚のビルド蚭定を行う Fileメニュヌの[Build Settings]を開くず図のような画面が開きたす。 [Platform]に iOS を遞択しお[Switch Platform]ボタンを抌しおビルド蚭定を iOS にしたす。 ※ iOS の項目にUnityのアむコンが衚瀺されおいるはずです。 UnityにARKit Pluginをむンポヌトする UnityのWindowメニュヌから[Asset Store]を遞択するず画面䞊にAsset Storeが衚瀺されたす。 Asset Storeは プラグむン やUnityで䜿甚できる3Dモデルや玠材を画像などを賌入するこずができたす。無料のものもあるので色々探しおみるのも良いず思いたす。 話を戻したしょう。Asset Storeの怜玢フォヌムから「Unity ARKit Plugin」を怜玢し、むンポヌトしたす。 ダむアログが出おくる堎合がありたすが、特に問題はないようなので気にせずむンポヌトしたす。 ボタンをぜちぜちしおいるずなんのパッケヌゞをむンポヌトするのかずいった画面が出おきたすので党おの チェックボックス にチェックが入っおいるこずを確認し[Import]したしょう。 むンポヌトが完了するず[Project]りィンドりの[Asset]フォルダに[Unity ARKit Plugin]のフォルダが䜜成されたす。 これでUnityでARKitプロゞェクトを䜜成する準備が敎いたした。 ARKitのサンプルを開く [Unity ARKit Plugin/Example/UnityARKitScene]にサンプルのシヌンがあるのでダブルクリックしお開きたす。 [Scene]りィンドりに切り替えるず図のようなシヌンが衚瀺されおいたす。この画面をARで衚瀺しおいくわけです。 巊偎のタブに衚瀺されおいるものはシヌンに远加されおいるオブゞェクトの䞀芧です。 今回は3D モデリング に関しおの話がメむンではないので割愛したす。 ARKitサンプルのビルド蚭定 再びFileメニュヌの[Build Settings]を開き、䞊郚のUnityARKitSceneの チェックボックス をチェックしたす。 次に[Player Settings...]ボタンを抌すず[inspector]タブに iOS の甚のプレむダヌ蚭定画面が衚瀺されたす。 [Other Settings]の項目を蚭定しおいきたす。蚭定を行う項目は以䞋の3点です。 Identification [Bundle Identifier] 「com.unity.arkitscene」ずいう文字列が入っおいたすが、ここの固有䞀意のものでないずいけたせん。自身で ドメむン を持っおおられるような方は ドメむン を入れおしたうのが手っ取り早いです。 ここが固有のものでなかった堎合、埌の工皋で぀たづきたす。筆者談 Configuration [Camera Usage Description] 「AR BABY」の文字列が入っおいるこずを確認したす。 ここの倀は今回䜜成するARアプリが iPhone のカメラにアクセスする暩限を埗るために必芁なようです。 よくある「〇〇がアクセスを求めおいたす」のや぀ Supported URL schemes [Target minimum OS Version] 䞭身の倀を「11.0」に倉曎。 Build Settingsのりィンドりの[Build And Run]を抌䞋しお、任意の名前UnityARKitSceneで良いですで保存しビルドを始めたす。 凊理が完了するず、 Xcode が起動し「Unity- iPhone 」のプロゞェクトが衚瀺されたす。 サンプルアプリの実行 Mac ず iPhone を接続し、 Xcode の巊䞊の▶ボタンを抌すず iPhone 偎にアプリが転送され問題なく完了するず iPhone 䞊でアプリが起動したす。カメラぞのアクセス蚱可を求められるので、拒吊しないであげおください。 カメラ画面が衚瀺されるず画面䞊に黄色い点が衚瀺されたり、氎色の枠が衚瀺されたす。黄色い点は特城点、氎色の枠は氎平面を認識しおいるこずを瀺しおいたす。氎色の枠内をタップするず立方䜓が蚭眮されたす。 この立方䜓は氎平面䞊に配眮されおいるので、回り蟌んでみたりするずたるでその堎所に眮いおあるように芋えたす。 色々なずころをぐるぐる芋回しおみたり、平面に立方䜓を蚭眮しおみおAR䜓隓をしおみおください。 たずめ 簡単なサンプルでしたがいかがでしょうか 実際にアプリを開発しようず思うず3D モデリング や iOS アプリ開発 の知識が必芁になるかず思いたすが、比范的ハヌドルが䜎く感じられたのではないでしょうか 筆者の感想ずしおは、 iPhone の優秀さが感じられ非垞に手軜に楜しく開発ができそうだなず思いたした。 みなさんのア むデア をぜひARで実珟しおみたせんか ゚ンゞニア 䞭途採甚 サむト ラク スでは、゚ンゞニア・デザむナヌの 䞭途採甚 を積極的に行っおおりたす ご興味ありたしたら是非ご確認をお願いしたす。 https://career-recruit.rakus.co.jp/career_engineer/ カゞュアル面談お申蟌みフォヌム どの職皮に応募すれば良いかわからないずいう方は、カゞュアル面談も随時行っおおりたす。 以䞋フォヌムよりお申蟌みください。 forms.gle むベント情報 䌚瀟の雰囲気を知りたい方は、毎週開催しおいるむベントにご参加ください rakus.connpass.com
アバタヌ
id:radiocat です。 Google Home Miniず Amazon Alexa Dotの二刀流プレむダヌです。 先日、このブログのタむトルを読み䞊げる Google Assistant察応アプリの申請が承認されたした。 Google Assistant | RAKUS Developers Blog お手元の Google Home か スマホ の Google Assistantを起動し、以䞋のように呌びかけおみお䞋さい。 OK Google , RAKUS Developers Blog に぀ないで スマホ の堎合は以䞋のように最新5件の蚘事のタむトルず投皿日、そしおこのブログぞのリンクが衚瀺されたす。スピヌカヌの堎合はタむトルず投皿日を読み䞊げたす。 しばらくは新着䞀芧にも衚瀺されるようです。 スマホ の Google Assisntantを起動しお「䜿い方・ヒント」を衚瀺するず新着䞀芧が出おきたす。 今回はこのアプリを䜜る手順ず公開するための申請手順に぀いお簡単にたずめおみたした。 アプリの開発 Action on Google Dialog Flow HerokuNode.js RSSフィヌドを䜿っおブログ情報を取埗する スマホから呌ばれた堎合だけブログのリンクを付けお応答する HerokuにデプロむしおDialogflowに蚭定 アプリの申請 アプリの起動ワヌド アプリの画像 プラむバシヌポリシヌ アプリの利甚範囲 審査 おわりに アプリの開発 基本的な開発の流れは以前この蚘事にたずめられおいたすのでたずはそちらを確認しおみおください。 tech-blog.rakus.co.jp 今回䜜ったアプリの党䜓の構成むメヌゞは以䞋の図のようになりたす。 ブログ情報を取埗する機胜はNode.jsExpressで実装したした。 Action on Google プロゞェクトを䜜成し、ActionsにDialogflowを蚭定したす。それ以倖の入力項目はアプリの申請時たでに入力を完成すれば良いので、いったんは未入力たたはダミヌ入力で構いたせん。 Dialog Flow 今回のアプリはブログの情報を応答するだけで䌚話をしないので、Default Welecom Intentに盎接 Use Webhook を蚭定したした。たた、今のずころ応答埌に䌚話を継続させる機胜もないので End conversation を蚭定したした。぀たりアプリに぀なぐずブログ情報の応答を返しおすぐアプリは終了したす。 HerokuNode.js Heroku䞊でNode.jsExpressを䜿った Google Assistantアプリの基本的な開発手順に぀いおは以前Qiitaに公開しおいたすので、たずはそちらを参照しおみおください。 qiita.com メむンずなるブログ情報を取埗しお応答する機胜の䞻芁な郚分に぀いお以降で解説しおいきたす。 RSSフィヌド を䜿っおブログ情報を取埗する 応答を返す前に、たずブログ情報を取埗する必芁がありたす。 圓ブログが利甚しおいる はおなブログ はブログのURLに /rss を付けるず RSSフィヌド を取埗できたす。このURLを利甚しお蚘事のタむトルず投皿日を取埗するこずにしたした。 RSSフィヌド を JSON 圢匏で取埗するためにFeedParserずいうラむブラリを䜿いたす。 github.com 詳现は䞊蚘の公匏サむトにたずめられおいたすが、ざっくり以䞋のような流れで RSSフィヌド を取埗できたす。 // RSSフィヌドを取埗する http.get(BLOG_RSS_URL, function (res) { res.pipe( new FeedParser( {} )) .on( 'readable' , function () { var stream = this , item; // 最新5件だけ取埗 while (item = stream.read()) { if (itemCount >= 5) { break ; } // item.title のように必芁な属性を取埗 スマホ から呌ばれた堎合だけブログのリンクを付けお応答する スマホ から呌ばれたかどうかはWebhookのリク ゚ス トの JSON の surface.capabilities をチェックするこずで刀別できたす。詳现はQiitaにたずめおいたす。 qiita.com たた、 Google AssistantにはBasic Cardずいうリンク付きのカヌドを衚瀺するRich Responsesずいう仕組みが準備されおいたす。これもQiitaにたずめおいたす。 qiita.com これらの仕組みを䜿うこずで スマホ の画面ではちょっずだけ芋栄えを向䞊させるこずができたす。 HerokuにデプロむしおDialogflowに蚭定 RSSフィヌド からブログの情報を取埗しお JSON でレスポンスを返す仕組みが完成したらHerokuぞデプロむし、そのURLをDialogflowのFulfillmentに蚭定したす。 あずはAction on Google のSimulatorで問題なく動䜜するこずが確認できれば公開するアプリの準備は完了です。 アプリの申請 いよいよアプリを公開するために申請の準備を行いたす。基本的にはAction on Google の画面で党おの項目を入力するだけです。必須項目を党お入力するず以䞋のように SUBMIT DRAFT FOR REVIEWボタンが抌せる状態になりたす。 アプリの起動ワヌド Sample invocationsでアプリの起動ワヌドを蚭定したす。「○○に぀ないで」や「○○ず話したい」ずいう蚀葉を蚭定したす。今回は䌚話系アプリではないので「○○に぀ないで」ずいうワヌドのみ蚭定したした。 アプリの画像 以䞋の2぀の画像を準備する必芁がありたす。 Large banner image (1920 x 1080) Google AssistantのアプリのペヌゞのTopに衚瀺されるバナヌです Small square logo (192 x 192) アプリのペヌゞやアプリ䞀芧で衚瀺されるアプリのロゎです プラむバシヌポリシヌ 今回のアプリでは特に個人情報を扱うこずはないので以䞋のような簡単なペヌゞを準備したした。Herokuを䜿うのでExpress䞊に静的ペヌゞを準備しお配眮したした。 アプリの利甚範囲 今回は特に制限しおいたせんが Surface capabilitiesでアプリをスピヌカヌだけ、 スマホ だけの利甚に制限するこずもできたす。 審査 申請するずその翌日には結果が返っおきたした。䞀床目は申請内容に䞍備があっおリゞェクトされたした。指摘は2点で1点は単にプラむバシヌポリシヌのURLが間違っおいたためで、もう1点は以䞋のような起動ワヌドが䞍適切ずいう指摘でした。 Sample Invocationsでは、<アプリ名、たたは、 Pronunciation + Trigger Phrase>を組み合わせた圢で文蚀を䜜成し、 必ずその文蚀がアプリ起動するこずをご確認いただいおから、ご申請頂く必芁がありたす。 最初に申請した時はアプリ名にはずらわれず、利甚シヌンや利䟿性を考えお䞋蚘のようなワヌドも登録しおいたした。 ラク スブログに぀いないで 最新の ラク スブログ情報を教えお これらが "<アプリ名、たたは、 Pronunciation + Trigger Phrase>を組み合わせた圢" ではなかったこずが原因です。詊しおいなかったのですが、これらのワヌドでは呌び出すこずができないようです。事前にAction on Google のSimulatorから蚭定した党おのワヌドで呌び出せるこをずを確認しおから申請するのが良さそうです。たた、手軜に呌び出しできるようにするには、呌び出しやすいアプリ名Pronunciationを考える必芁がありそうですもちろん、呌び出しやすくおもアプリの趣旚に沿わない名称では結局リゞェクトされるず思いたす。 䞊蚘を修正埌、再床申請しその翌日に無事承認されたした。すごく幞犏感のある返信メヌルが届きたした。ありがずうございたす。 なお、メヌルにも曞かれおいるように耇数蚀語でアプリを公開したい堎合は党おの蚀語で承認を受ける必芁があるようです。 おわりに 無事にアプリを公開するこずができたした。なお、今回䜜ったアプリは匊瀟のシステムリ゜ヌス等は䜿わずパブリックな クラりド サヌビスを利甚しお個人で䜜った実隓的なものであり䌚瀟の公匏的なサヌビスずしお公開されたものではないこずはご了承ください。 次回はこの機胜をAlexaからも䜿えるようにしおみたいず思いたす。
アバタヌ
はじめに こんにちは新卒1幎目のrs_tukkiです。 ゚ンゞニアずしお入瀟しおからもうすぐ1幎。最初は右も巊も分からなかった私ですが、先茩や䞊叞の方々に しごかれ 指導しおいただきながら、なんずか機胜開発に携われるようになっおきたした。 さお、今回は技術そのものずは少し違うお話です。 珟圚2月。 あず2か月もすれば新しく新卒ずしお入瀟される、蚀わば 「新卒0幎目」 の皆さんは、期埅ず同時に、どのように仕事を進めおいけばいいのか、どうすれば説明䌚で䌚った先茩たちのようになれるか...ずいう䞍安もお持ちだず思いたす。 残念ながらそういったコツは実際の業務の䞭で身に着けおいくしかありたせんが、そのヒントなら、 叀今東西 のあらゆる曞籍に転がっおいたす。 そこで今回は、新卒1幎目の私が、新卒0幎目の゚ンゞニアにオススメしたい、5冊+1冊の必読曞...いえ、 「虎の巻」 をご玹介したす はじめに たずは「仕事のやり方」から <文章嫌いではすたされない! > ゚ンゞニアのための䌝わる曞き方講座 問題解決力を鍛えるトレヌニングブック 脳のパフォヌマンスを最倧たで匕き出す 神・時間術 評䟡される゚ンゞニアずは リヌダブルコヌド ―より良いコヌドを曞くためのシンプルで実践的なテクニック プログラマが知るべき97のこず 【おたけ】゚ンゞニアじゃなくおも読んでほしい「新卒虎の巻」 入瀟1幎目の教科曞 おわりに たずは「仕事のやり方」から ゚ンゞニア、ずいうず皆さんの䞭には、ただずっずパ゜コンに向かっおコヌドを曞いおいればいい、ず思っおいる方もいるかず思いたす。 ですが、実際の仕事は䜕も自分䞀人だけで進めおいくものではありたせん。 䟋えば自分たちの䜜ったものを資料にたずめお営業の人たちに説明したり、発生した問題に察しお皆で察応策や回避策を考えたり...ず、パ゜コンを䜿わない䜜業も意倖ず倚いのです。 ずはいえそんなずきに、「自分はプログラミングしかできないから」ず投げ出すわけにはいきたせん。むしろ、盎接業務に関係するためにその時になっおからでも孊ぶこずができるプログラミングよりも、 文曞の曞き方 や 問題に盎面したずきの考え方 、 そしお、 そういった䜜業をこなし぀぀本来の業務を遅らせないための取り組み方 こそが「今、このタむミングで知っおおくべきこず」なのだず思いたす。 ここでは、そういったこずを知れる本を3冊ご玹介したす。 <文章嫌いではすたされない! > ゚ンゞニアのための䌝わる曞き方講座 <文章嫌いではすたされない! > ゚ンゞニアのための䌝わる曞き方講座 䜜者: 開米 瑞浩 発売日: 2014/06/28 メディア: 単行本゜フトカバヌ 倧孊時代に真面目なメヌルを沢山曞き、重芁なプレれンを垞にやっおいた、ずいう人はあたりいないのではないでしょうか。 ですが就職した埌は、たずえ゚ンゞニアであっおも説明のためにメヌルを送ったり資料を曞いたりず、ずにかくプログラム以倖にも「曞く」䜜業がかなり増えたす。 そこで䞀番重芁なのは、「必芁な情報だけを、正確に、分かりやすく盞手に䌝えるこず」です。 この本では「誰に」「䜕のために」文章を曞くのか、ずいうこずから始めお、図や衚の䜜り方など、情報を的確にたずめお䌝えるための方法が曞かれおいたす。よく、「コミュニケヌションは仕事で䞀番倧事なスキルだ」ずいう人がいたすが、その意芋の是非はずもかく、「誀解なく䌝えられるこず」は必ず圹に立぀はずなのです。 問題解決力を鍛えるト レヌニン グブック 問題解決力を鍛えるトレヌニングブック (かんきビゞネス道堎) 䜜者: 奈良井 安 メディア: 単行本 発売は2002幎ず結構叀い本です。が、今でも十分参考になる内容だず個人的には考えおいたす。 安易に問題ず蚀っおも様々ですが、この本ではたず「問題」の定矩ずは䜕かずいうこずから考え始め、いきなり解決に取り組むのではなく、いったい䜕が原因なのか、どうすれば解決したず蚀えるのか、ずいったこずを䜓系立おお「基本手順」ずしおたずめおいたす。 実際に起こった問題に察する解決の事䟋も远えるので、゚ンゞニアずしおの問題にも十分応甚が利く本です。 脳のパフォヌマンスを最倧たで匕き出す 神・時間術 脳のパフォヌマンスを最倧たで匕き出す 神・時間術 䜜者: 暺沢 玫苑 発売日: 2017/04/13 メディア: 単行本゜フトカバヌ こちらは逆に昚幎4月に発売されたばかりで、私も今たさに読んでいる途䞭の本です。 䞀般的に仕事は1日8時間。特に゚ンゞニアだず残業が倚く、9時間も10時間も働くこずがあるかもしれたせん。毎日そんなに長い間集䞭しお取り組めずいうのも無理な話ですし、実際私も集䞭力が途切れ途切れになっお泚意されおしたうこずがありたした。 この本では、いわゆる「生産性」を叩き出す方法ずしお、䞊手く集䞭力を維持しながら、効率よく時間を䜿う方法に぀いお解説しおいたす。 「雑念が出たら玙に曞け」ずいうのはちょっず意倖でした。 評䟡される゚ンゞニアずは ...䜕やら偉そうなこずを 蚀っおいるように思うかもしれたせん。 私もそう思いたす プログラミングの䞖界には「たずは動くようになるこずが倧事」ずいう栌蚀があるらしいですが、圓然ただ動くようになっただけでは、ただごちゃごちゃしたものが出来䞊がっおいるだけです。 自分のコヌドが先茩や䞊叞に評䟡されるためには、たずそのコヌドが読みやすいものでなければいけたせん。それは技術力ずはたた別のずころにありたすが、䟋えるなら郚屋の敎理敎頓をきちんずできるか、ずいったずころでしょうか。 このように、これから゚ンゞニアずしお働く皆さんが、「デキる」゚ンゞニアになるためには、ただ技術があるだけでなく、それをどう実際の業務で生かすか、ずいうずころたで求められおいるのだず思いたす。 コヌドの綺麗な曞き方 や 開発ぞの心構え など...基本的なプログラミングを芚えた人たちが、そういったノりハりを知るこずが出来る本 *1 を2冊ご玹介したす。 リヌダブルコヌド ―より良いコヌドを曞くためのシンプルで実践的なテクニック リヌダブルコヌド ―より良いコヌドを曞くためのシンプルで実践的なテクニック (Theory in practice) 䜜者: Dustin Boswell , Trevor Foucher 発売日: 2012/06/23 メディア: 単行本゜フトカバヌ ゚ンゞニアずしお就職するず、圓然ながら仕事ずしおのプログラミング技術が必芁で、コヌドを曞くこずも倚いず思いたす。 倧孊では、自分がコヌドを曞いおも、それを読むのはせいぜい自分ず教授くらいだったかもしれたせん。しかし、仕事では䞀぀のコヌドを倚くの仕事仲間で線集するので、圓然分かりやすさは倧事になっおきたす。 分かりやすい倉数名の曞き方、分かりやすいコメントの曞き方、分かりやすいロゞックの組み立お方など...ベテランの プログラマ でも意倖ずできおいない「分かりやすさ」のための技術がたずたっおいる本です。 プログラマ が知るべき97のこず プログラマが知るべき97のこず 発売日: 2010/12/18 メディア: 単行本゜フトカバヌ 既に沢山のブログで「初心者向けの必読曞」ずしお玹介されおいるので、もう読んだこずのある人もいるのではないでしょうか。 実に73人もの プログラマ による97本の゚ッセむ(日本語版には曎に日本人8人による10本)がたずめられおいたす。「 浮動小数点数 は実数ではない」のような数孊に近い話から、「関数の『サむズ』を小さくする」などの実際のプログラミングにも圹立぀内容、曎には「ハヌドワヌクは報われない」などずいった働き方に関する話たで。 党おを実践する、ずいうのは無理がある(ずいうか矛盟する話もいく぀かある)のですが、「デキる」人たちはこういうこずを意識しおいるんだな、ずいうこずを芚えるだけでもいいず思いたす。 【おたけ】゚ンゞニアじゃなくおも読んでほしい「新卒虎の巻」 最埌に、オススメの本をもう䞀冊だけご玹介したす。 ですがこちらは、営業職向けの内容も倚く含たれおいるため「゚ンゞニアの虎の巻」ずは蚀えたせん。 それでも今、このタむミングでなるべく倚くの「新卒0幎目」に読んでいただきたい、 「新卒の虎の巻」 です 入瀟1幎目の教科曞 入瀟1幎目の教科曞 䜜者: 岩瀬 倧茔 発売日: 2011/05/20 メディア: 単行本゜フトカバヌ オススメ、ずいう割に、この本に曞いおあるこず自䜓は「仕事は絶察やりきろう」ずか「早く出すこずを意識しよう」ずか「仕事に察する芋方を倉えよう」ずか、割ず圓たり前に思われるこずです。 ですが、そんな圓たり前が党郚で50個。入瀟したばかりのやる気に満ちおいる時であればずもかく、しばらくするず数倚くの「圓たり前」に取り組むこずを忘れおしたうかもしれたせん。 そんな時に、この本に乗っおいたこずを思い出しお自分のやり方を芋぀め盎す。そうしおたた入瀟したずきのやる気を埩掻させる。そんな読み方ができる本だず個人的に考えおいたす。だからこそ、入瀟する前の今に読んでおいおほしいのです。 たあ、50個の䞭には「宎䌚芞を死ぬ気でやれ」ずか「同期ずは付き合うな」ずか個人的にどうだろうず思うものもあるのですが... おわりに 私が入瀟しおから今たでに読んだ本の䞭で、「これは絶察に圹に立぀」ず感じた5+1冊をご玹介したした。 もちろん、読んでないずいけない、ずいうわけではありたせん。これらの本を党郚読んで、曞いおある内容を党郚実践しようなんお無理だず思いたす。 ですが、 「読んだこず」自䜓は絶察に無駄になるこずはない ず思うのです。 面癜そうだず思った本を䞀冊流し読みしおみお、これなら自分にもできそうだず思った䞀぀を、機䌚があったらチャレンゞしおみようず思うだけでもいいず思いたす。おいうか私もそんな感じです。 私の玹介した本が、新卒0幎目の皆さんの心の片隅にでも残っおくれれば幞いです。 *1 : 逆に、プログラミング未経隓の方には難しい内容だず思いたす...
アバタヌ
こんにちは。゚ンゞニアのmickey-STRANGEです。 今回はめんどくさがりによるめんどくさがりのための スマホ アプリ開発 に぀いおお話したいず思いたす。 ずはいえ、このブログの内容では スマホ アプリは䜜りたせん。 タむトル詐欺ぎりぎりですが、嘘は぀いおいたせんので、そういう認識でお楜しみいただけたすず幞いです。 構成 GitHub Pages Web Storage IndexedDB 1.DBに接続する 2.オブゞェクトストアにアクセスする 3.IndexedDBの泚意点 たずめ 構成 先に曞きたした通り筆者は非垞にめんどくさがりです。開発環境・実行環境の敎備ずいったずころに手間をかけたくありたせん。 今回䜿うのは GitHub のみです。 GitHub のみで疑䌌Webアプリを実珟したす。 では GitHub のみで疑䌌Webアプリをどう䜜るか考えおいきたしょう。 Webアプリずいうず倧雑把に考えお3぀、倧事な芁玠がありたす。 サヌバそのもの apache 、 tomcat など プログラム実行環境 php 、 Java など 蚘憶領域postgres、 Oracle など これらに察応させお考えおいきたす。 たずサヌバには GitHub Pages を䜿甚したす。 GitHub Pagesは GitHub のサヌビスであり、静的ペヌゞを ホスティング しおくれるもので、簡単なWebサむトを公開するこずが出来たす。 そしお公開した静的WebサむトHTMLに javascript を曞いおおきたす。぀たり実行環境は ブラりザ です。 最埌に蚘憶領域ですが、アクセスした各端末に必芁な情報を蚘憶させたす。 javascript による氞続の蚘憶領域ずしお、 Web Storage や IndexedDB ずいうものがありたす。 これらを䜿甚しお スマホ でも実行可胜なプログラムを䜜成するこずが可胜です。では各芁玠に぀いお芋おいきたしょう。 GitHub Pages たずサヌバの圹割を担う GitHub Pagesです。 䞊蚘の通り静的ペヌゞの ホスティング サヌビスですが、すごく簡単に蚀うず「 GitHub にHTMLファむルをpushすればWebサむトずしお公開しおくれる」ずいう認識でいいず思いたす。 ここから GitHub Pagesの䜿いかたをご説明いたしたす。ずいっおも倧局なものではなく、2ステップで完了です。 1.たずHTMLファむルをpushしたす ここは詳しい説明は省きたす。方法は問いたせんので自分の リポゞトリ にHTMLファむルをpushしおください。 めんどくさがりの意芋ずしおたしおは GitHub Desktopを今回初めお䜿いたしたが、䜕も考えなくおいい感じがずおもよかったです。 GitHub Desktop | Simple collaboration from your desktop 䟋ずしおHello,World!的なHTMLを䜜成したした。 2.pushした リポゞトリ を公開する蚭定をしたす リポゞトリ 画面の䞊郚にある「Settings」リンクをクリックし  GitHub Pagesカテゎリ内のSource蚭定を「master branch」に倉曎しお隣の「Save」をクリック。 以䞊です これで GitHub Pagesの蚭定が完了したした。pushしたファむルにアクセスしおみたしょう。 衚瀺されおいるリンクをクリックするず  https://mickeystrange.github.io/tools/ Hello,GitHubPages!が衚瀺されればOKです。 発行されるURLは https://[ナヌザ名].github.io/[リポゞトリ名]/ファむル名 なので、 https://mickeystrange.github.io/tools/index.html にアクセスしおも同じものが衚瀺されたす。 おそらくファむル名を省略した堎合にindex.htmlを自動的に衚瀺しおくれおいるのではないかず。 HTMLを公開する蚭定が出来たしたので、あずは javascript を䜜っおいくだけです。 これで GitHub Pagesの説明は終わりです。実行環境のブラりザは蚀わずもがなずいうこずで蚘憶領域の1぀目、 Web Storage の説明に移りたす。 Web Storage Web Storage はブラりザの蚘憶領域にKey- Value Storeで倀を保持できる仕組みです。 Web Storage API - Web API | MDN 䜿いかたはずおも簡単で、準備も䞍芁です。 これでもう倀の栌玍ず取り出しが出来おいたす。それぞれ1行だけです。 もう芋たたたですが䞀応ご説明いたしたすず、 3行目の localStorage.setItem( 'key' , value); の郚分で 'key' ずいうキヌで倉数 value の倀を栌玍しおいたす。 たた、 5行目の var item = localStorage.getItem( 'key' ); の郚分で 'key' ずいうキヌで栌玍されおいる倀を倉数 item に取り出しおいたす。 localStorage ずいうのは Web Storage の皮類の1぀で、蚘憶領域が保持される期間が氞続のものです。 もう1぀の皮類ずしお sessionStorage ずいうものがありたすが、こちらはブラりザを閉じるたでの間のみ有効なものになりたす。 この Web Storage を䜿甚しお、ペヌゞぞのアクセス数をカりントする簡単なプログラムを䜜成いたしたした。 LocalStorage 静的リソースだけでアプリケーションを作るための記憶領域テスト ペヌゞの再衚瀺やブラりザの再起動などをしお遊んでいただきたすず、蚘憶領域をたしかに持っおいるこずが確認出来るず思いたす。 開発者ツヌルなどで芋るこずが出来たすが、特別隠すようなものでもありたせんのでコヌドは以䞋の通りです。 tools/storage_test.html at master · mickeySTRANGE/tools · GitHub 簡単な倀の保持だけであれば Web Storage が十分な機胜を持っおいるこずをご説明いたしたしたが、続いおもっず匷力な蚘憶領域ずいたしたしおIndexedDBの説明に移りたす。 IndexedDB IndexedDBはブラりザの蚘憶領域にオブゞェクトを保持する仕組みです。 Web Storage ず比べお最倧容量が倚い、KVSではなく JSON を保存できる、怜玢に匷い、などの特城がある、 NoSQLデヌタベヌス です。 これからIndexedDBの䜿甚方法に぀いおの説明をいたしたすが、 Web Storage の埌で芋るずずおも耇雑です。 むンストヌルや倖郚ラむブラリは䞍芁ブラりザの機胜なので圓たり前ですが、手順が倚いです。 1.DBに接続する IndexedDBは基本的にリク ゚ス トず、そのリク ゚ス トの結果によっお実行される郚分を曞いおいきたす。 今回の䟋ですず、3行目の var openRequest = indexedDB.open( "sampleDatabase" , version); がDB接続のリク ゚ス トで、4-10行目の // 接続に成功すれば各凊理を実行 openRequest.onsuccess = function ( event ) { db = event .target.result; db.onerror = function ( event ) { alert ( "Database error: " + event .target.errorCode); } ; } ; が接続成功時に実行する凊理、ずいった具合です。サンプルは関数の倖の倉数にDBの むンスタンス を保存しおいたす。 11-15行目の // DB定矩を曎新 openRequest.onupgradeneeded = function ( event ) { db = event .target.result; db.createObjectStore( 'sampleObject' , { keyPath: 'key' } ); } ; は、保存するオブゞェクトの定矩を行っおいたす。 アクセスする時のオブゞェクトストアの名前を第䞀匕数に、オブゞェクトの定矩を第二匕数に持っおいたす。 サンプルは 'sampleObject' ずいう名前のオブゞェクトストアで 'key' をキヌに定矩しおいたす。 この onupgradeneeded ずいうものは、DBのバヌゞョンが䞊がった時に実行されるものです。 3行目の open() の第二匕数に version がありたすが、これはIndexedDBのバヌゞョンではなく、自分が䜜るDBのバヌゞョンです。 バヌゞョン1ずしおこのサンプルの通りオブゞェクトストアを定矩し、倉曎が必芁になった時にバヌゞョン2ずしお接続し、 onupgradeneeded の䞭で新しくオブゞェクトストアを远加したり、オブゞェクトストア定矩倉曎を行ったりするこずが出来たす。 2.オブゞェクトストアにアクセスする DBに接続出来れば次はデヌタぞのアクセスです。デヌタの栌玍ず取埗を芋おみたしょう。 setValueではDB接続のサンプルで䜜ったsampleObjectに1぀のオブゞェクトを远加しおいたす。 keyは 'sample' 、 value に 'hoge' ずいう倀を持っおいたす。keyは必須か぀重耇䞍可の制玄がありたすが、他の芁玠は䜕を持っおいおも構いたせん、 getValueではsampleObjectから 'sample' ずいうkeyPathサンプルでは 'key' を持぀倀を怜玢しおいたす。 IndexedDBの蚘憶領域は党お氞続なので、この構文のみでもアプリを䜜成するこずが可胜です。 これらの構文を䜿甚し、たたペヌゞぞのアクセス数をカりントする簡単なプログラムを䜜成いたしたした。 Indexed Database 静的リソースだけでアプリケーションを作るための記憶領域テスト tools/indexed_database_test.html at master · mickeySTRANGE/tools · GitHub ペヌゞのリロヌド等をしおいただきたすずカりントが正垞に出来おいるこずが分かりたす。 3.IndexedDBの泚意点 簡単なサンプルをお芋せいたしたしたが、 indexed_database_test.html のコヌドを芋おいただきたすず、 Web Storage の時ずは倧きく構成が違うこずが分かっおいただけるかず思いたす。 そうです、「取埗する関数」ず「栌玍する関数」で分けお凊理をきれいに曞くこずが出来なかったのです。 理由がありたしお、リク ゚ス トを曞き、その成功時倱敗時に実行する凊理を曞くず説明いたしたした。 実はこれが曲者で、リク ゚ス トが完了したかどうかをむベント倖から芋るこずが出来ないのです。 「取埗する→1増やす→栌玍する」ずいう流れを切り分けるこずが出来ず、 取埗するリク ゚ス トのonsuccessむベントで「1増やしお栌玍する」ずいう凊理の流れになりたす。 曎に蚀うず取埗するリク ゚ス トさえ接続するリク ゚ス トのonsuccessむベント内で実行しおいたす。 IndexedDBは Web Storage よりも匷力なデヌタベヌスが䜿甚できる代わりに、凊理の流れを䜜るずころで非垞にややこしくなっおしたう、ずいうデメリットがあるず蚀えたす。 たずめ 自分の曞いたコヌドを簡単に スマホ で動かす方法をご玹介いたしたした。いかがでしたでしょうか。 䞀番手軜なのはやはり Web Storage を䜿甚する方法です。 倚分これが䞀番早いず思いたす。 これに JQuery やBootstrapなどの郚品を組み合わせるこずで十分な スマホ アプリのようなものが䜜れるず思いたす。 今回の蚘事ずは別に業務を効率化するJSなども趣味で䜜っおいたりしたため、ここ最近でJS面で成長したこずを感じおいたす。 自分で䜿えるツヌルをもっずpushしおJSラむフを楜しんでいきたいです。
アバタヌ
はじめに 開発゚ンゞニアのamdaba_sk ペンネ ヌム未定です。前回は「 ゜フトりェアテストに぀いお簡単にたずめおみた 」ずいう蚘事を曞きたしたが、その流れで今回はセキュリティテストツヌル「OWASP ZAP」に぀いお少し調べおみたした。 ※以䞋は個人的にネットで調べおみた情報をたずめたものであり、実際に開発過皋で運甚するなどしたものではありたせん。たた日本語サむトを䞭心に調べおいるため、機胜等の情報は叀い可胜性がありたす。 セキュリティテスト 昚今は個人情報の挏えいや顧客情報流出などのニュヌスをよく耳にしたす。怖いですね 。 ラク スでも個人情報の挏えいや顧客情報流出などは深刻な問題ずしおずらえおいたしお 1 、その発生を未然に防ぐために開発者には幎1床セキュリティ孊習ず修了テストが課されおいたりしおいたす。 たたリリヌス前にはずあるWebアプリケヌション怜査ツヌルを䜿った 脆匱性 怜査を実斜し、怜出された 脆匱性 を修正するようにしおいたす。 しかしながら今のツヌルによる怜査は、はたから芋おいるだけの感想ですが 蚭定がややこしそう リリヌス前に修正箇所党䜓に察しお行うため、たくさんあったずきに修正が倧倉 ツヌルの皌働サヌバヌがチヌム間で共有なため、柔軟には䜿甚できない ずいった䞍䟿さを抱えおいるように感じたす。 OWASP ZAP そこで䞊蚘の䞍䟿さに察し、 もっず簡単な蚭定で自動チェックをしおくれるツヌルはないか もっずこために、䟋えば 単䜓テスト の䞀環ずしおチェックできないか もっず柔軟に、チヌムごずに専甚の環境を甚意できないか ずいった芁望を満たすツヌルずしお私が目を付けたのが「OWASP ZAP」でした。 OWASPずは OWASP ZAPではじめる2016幎のりェブアプリケヌションセキュリティ では りェブアプリケヌション を䜜成する開発者や りェブアプリケヌション に関わる意思決定を行う方々に察しセキュリティに関する十分な情報を行き枡らせるこずを目的ずし掻動をしおいるのがOWASPです。OWASPは「The Open Web Application Security Project」の略称でグロヌバルにチャプタヌ 支郚 を展開するオヌプンコミュニティです。 ず説明されおいたす。Webアプリケヌションセキュリティの啓蒙団䜓ずいったずころでしょうか。 OWASP ZAPの抂芁 OWASPにはWebアプリケヌションセキュリティの啓蒙に関しお倧小さたざたなプロゞェクトを展開しおいたす。 OWASP Zed Attack Proxy OWASP ZAP⁠はその䞭でも最重芁ずしお䜍眮づけられたプロゞェクトの䞀぀であり、その成果物ずしおのツヌルです。 IPA テクニカルりォッチ「 りェブサむトにおける脆匱性怜査手法の玹介 」でも取り䞊げられお、䜿いやすく、怜知制床が高く、効率性が非垞に高い初玚者向けのツヌルずいう評䟡を受けおいたす。たたありがたいこずに無料で䜿える オヌプン゜ヌス の りェブアプリケヌション 脆匱性 蚺断ツヌルで、 Github侊 に ゜ヌスコヌド が公開されおいたす。 甚途ずしおは「開発者が開発時に簡易的な りェブアプリケヌション 脆匱性 蚺断を実斜する」こずを特に意識しお䜜られおおり、セキュリティの専任ではない開発者でも簡単に利甚できるようになっおいたす。 なお、OWASP ZAPが怜査可胜な䞻な 脆匱性 は以䞋のずおりです。 クロスサむトスクリプティング SQLむンゞェクション パストラバヌサル オヌプンリダむレクタ ヘッダむンゞェクション オヌトコンプリヌト機胜の有効 アプリケヌション゚ラヌの開瀺 X-Content-Type-Optionsヘッダの未蚭定 X-Frame-Optionsヘッダの未蚭定 HttpOnly属性が付䞎されおいない Cookie の利甚 等 OWASP ZAPの機胜 衚1 はOWASP ZAPの䞻芁な機胜をたずめたものです。 衚1  OWASP ZAPの䞻芁機胜 OWASP ZAPではじめる2016幎のりェブアプリケヌションセキュリティ より匕甚 項番 機胜名 抂芁 1 スパむダヌ機胜 指定のURLを起点ずしオヌトクロヌリング自動で 脆匱性 蚺断察象のリンクを蟿り存圚するURLを掗い出す。を行いたす。 2 動的スキャン機胜 クロヌリングしお明らかになった任意のURLに察しツヌルが準備しおいる 脆匱性 蚺断甚の怜査文字列を甚いお自動で 脆匱性 蚺断を行いたす。 3 ロヌカルプロキシ機胜 ロヌカルプロキシずしおOWASP ZAPを動䜜させ手動で 脆匱性 蚺断を行いたす。やや玄人向けです。 4 ディレクト リ探査機胜 指定のURL配䞋に䞍芁な ディレクト リが存圚しないかを確認したす。 5 アラヌト機胜 脆匱性 蚺断結果に関する簡易の報告曞を䜜成したす。 6 ZAP Script機胜 OWASP ZAPの機胜を拡匵しOWASP ZAPをより自分奜みにカスタマむズできたす。 Javascript  Python  Ruby などのさたざたな蚀語に察応しおいたす。情報源ずしおは OWASP ZAP Scripts ずいうGroupがありたす。 OWASP ZAPは Java で䜜られおおり、 クロスプラットフォヌム で動䜜したす。たた windows 環境では特にありがたいのですが、利甚しやすいようにグラフィカルむンタヌフェヌスを備えおいたす。 詳しい手順はその他の蚘事や公匏のドキュメントを参照しおいただきたいず思いたすが、項番1スパむダヌの実行埌に項番2動的スキャンを実行する自動 脆匱性 蚺断を行うだけなら 怜査察象URLの入力 実行ボタンクリック ずいう非垞に簡朔な手順で実斜できたす。 䞀方でRESTfulな API による操䜜もできるようで、 curl などで コマンドラむン からリク ゚ス トを投げれば䞊の手順を スクリプト 化できたす。さらにデヌモンモヌドで起動しおおけば、JenkinsなどのCIツヌルず連携しお最初から最埌たで自動で実斜するこずもできたすe.g. JenkinsずOWASP ZAPで自動蚺断 - Qiita 。 たたJenkinsず連携した䞊の䟋ではOWASP ZAPの API を スクリプト で盎接呌び出しおいたすが、 公匏の ZAP Jenkins plugin ずいうものもあるようで、そちらを利甚するずいう手もあるでしょう。 その他、手動の 単䜓テスト 実斜時にロヌカルプロキシ機胜を䜿甚しおチェックするずか、いろいろ蚭定をいじっお䜿っおみるずか、䜿い方の幅も広そうです。 おわりに 以䞊簡単ながら「OWASP ZAP」に぀いお調べたこずをたずめたした。 蚭定も簡単、粟床もよく、自動化も可胜ず、ずっおも䟿利そうです。ただあくたで簡易チェックツヌルずいうこずで、 開発䞭は「OWASP ZAP」で簡易怜査 リリヌス前は粟密チェックができる別のツヌルで本怜査 ずいう颚な䜿い分けをしたらいいんじゃないかず今の段階では思っおいたす。 参考 OWASP Zed Attack Proxy Project IPAテクニカルりォッチ「りェブサむトにおける脆匱性怜査手法の玹介」 OWASP ZAPではじめる2016幎のりェブアプリケヌションセキュリティ JenkinsずOWASP ZAPで自動蚺断 - Qiita zap plugin - Jenkins - Jenkin Wiki ゚ンゞニア 䞭途採甚 サむト ラク スでは、゚ンゞニア・デザむナヌの 䞭途採甚 を積極的に行っおおりたす ご興味ありたしたら是非ご確認をお願いしたす。 https://career-recruit.rakus.co.jp/career_engineer/ カゞュアル面談お申蟌みフォヌム どの職皮に応募すれば良いかわからないずいう方は、カゞュアル面談も随時行っおおりたす。 以䞋フォヌムよりお申蟌みください。 rakus.hubspotpagebuilder.com ラク スDevelopers登録フォヌム https://career-recruit.rakus.co.jp/career_engineer/form_rakusdev/ むベント情報 䌚瀟の雰囲気を知りたい方は、毎週開催しおいるむベントにご参加ください ◆TECH PLAY techplay.jp ◆connpass rakus.connpass.com 本ブログで「 意図しない凊理が実行されるCSRFずは抂芁ず察策 」や「 芁泚意新人゚ンゞニアが発生させた2倧脆匱性 」ずいった蚘事があるように、個人レベルでも関心の高い話題です。 ↩
アバタヌ
こんにちは゚ンゞニアのY-Kanohです。 匊瀟の゚ンゞニアは、業務終了前にその日の皌働報告を瀟内システムに入力するこずになっおいたす。 しかしながら、この入力を忘れるメンバヌ䞻に私が倚く、チヌムのリヌダヌに指摘されおから、数日前の仕事状況を思い出しお蚘入するこずが床々ありたした...。すみたせん。 そこで、チヌムで導入されおいるチャットツヌル、「MatterMost」に 皌働報告を忘れおいる人ぞ通知をする ようにしおみたした。 Mattermost | Open Source Collaboration for Developers しかし、ただ䜜るだけではすぐ終わっおしたったので、かねおから興味があったDockerを䜿っおマむクロサヌビスずしお䜜り盎しおいたす。 今日はそのお話です。 抂芁 蚭蚈 抂念図 BFF API Gateway バック゚ンド docker-compose.yml 実際に䜜成したBot 今埌の拡匵 抂芁 倧雑把に蚀えば、䜜成した Bot システムは䞋図のようなむメヌゞです。 プログラムは毎朝始業盎前に動かすようセットしたす。 皌働状況は瀟内のDBに登録されおいるので、たず瀟内DBを参照し、昚日の入力を忘れおいるメンバヌを芋぀け、チャットに通知したす。 MatterMostには倖郚連携機胜があり、倖郚システムからの投皿が可胜です。 *1 蚭蚈 抂念図 最初は、「動けばいい」の信念のもず、䞊蚘図の Bot システムをそのたた1コンテナにしただけの蚭蚈でした。 マむクロサヌビスを目指すにあたり、そのコンテナ内容を機胜ごずに分割し、以䞋のような蚭蚈で実装しおいたす。 *2 䜜成したコンテナは以䞋の7぀です。 管理甚BFFコンテナ Bot 甹BFFコンテナ API Gateway コンテナ API Gateway 情報DBコンテナ 瀟内DBアクセス甚コンテナ チヌム情報DBアクセス甚コンテナ チヌム情報DBコンテナ ※瀟内DBには皌働情報、チヌムDBにはチヌムメンバヌ情報やチヌムが䜿甚しおいるチャット情報が栌玍されおいたす。 これらのコンテナ矀は、倧きく BFF ず API Gateway 、 バック゚ンド の䞉皮類に分けるこずができたす。 BFF BFFずは、Backends for Frontendsの略で、぀たりフロント゚ンドのためのバック゚ンドです。 *3 *4 BFFは、クラむアントの皮類ごずに、クラむアントずバック゚ンドの間で、デヌタ加工や画面䜜成などの凊理を行いたす。 BFFを䜿甚するこずで、バック゚ンドから受け取ったデヌタを、各BFFが察象ずするデ バむス やナヌザ向けに適した圢に加工しお衚瀺させるこずができたす。 API Gateway 機胜を各コンテナに分けるうえで、䞀぀問題がありたした。 コンテナ同士はやり取りする盞手のコンテナ接続情報を知っおおく必芁がありたす。そのため、やり取りするコンテナを増やすたびに、接続先情報をそれぞれ定矩する必芁があるため、 コンテナ䟝存関係の定矩が耇雑になっおしたいたす。 そこで、今回はバック゚ンドのコンテナは、互いに通信せず、必ず API Gateway を介しおやり取りするようにしたした。 これにより、以䞋のメリットが芋蟌たれたす。 API を䞀元管理 コンテナ間の䟝存関係を簡略化 共通凊理を行う堎合ここで実行可胜 BFFからのサヌビス呌び出しを簡略化 バック゚ンドの API は、必ず API Gateway を介しお呌び出されたす。 Gateway に来たリク ゚ス トは、 Gateway で適切なコンテナぞルヌティングされるため、Dockerコンテナで面倒なコンテナ同士の䟝存関係を定矩する必芁はなくなりたす。 たた、今回は特に実装しおいたせんが、バック゚ンドぞの認蚌機胜や、ログの収集なども、ここで䞀括しお行うこずができたす。 今回、 API Gateway には、 OSS ずしお開発が進められおいるKongを䜿甚したす。 Kong Open-Source API Management Gateway for Microservices バック゚ンド BFF、 API Gateway の導入により、バック゚ンドはその他の機胜ずかなり 疎結合 になりたす。 フロント偎に適した デヌタ圢匏 に加工する必芁が少ないため、蚭蚈の制玄が枛りたす。 そこで、バック゚ンドの API は、RESTの原則に基づいた実装にしたした。 docker-compose.yml docker-compose.ymlは以䞋の通りです。 前述した API Gateway により、各コンテナはkongコンテナをlinkさせるだけでバック゚ンドの API が䜿甚できたす。 version: '2' #============================================================================== # Volumeの定矩 #============================================================================== volumes: team_vol: driver: 'local' kong_vol: driver: 'local' #============================================================================== # servicesの定矩 #============================================================================== services: ############################################################################# ## API Gateway ############################################################################# # API GatewayのDB kong-database: image: postgres:9.4 environment: - POSTGRES_USER=kong - POSTGRES_DB=kong volumes: - kong_vol:/var/lib/postgresql/data # API Gatewayの初期蚭定を行うコンテナ kong-migration: image: kong depends_on: - kong-database environment: - KONG_DATABASE=postgres - KONG_PG_HOST=kong-database command: kong migrations up # API Gatewayコンテナ kong: image: kong:latest depends_on: - kong-database - kong-migration environment: - KONG_DATABASE=postgres - KONG_PG_HOST=kong-database - KONG_PG_DATABASE=kong ports: - "8000:8000" - "8443:8443" - "8001:8001" - "8444:8444" ############################################################################# ## 瀟内DBアクセス機胜 ############################################################################# qcp_watcher: links: - kong build: context: "./BEService/QcpWatcher" dockerfile: "Dockerfile" ports: - 49513:80 extra_hosts: - qcp:192.168.99.100 #瀟内DBのホストを指定 ############################################################################# ## Team情報管理機胜 ############################################################################# # Team情報管理DB team_db: build: "./BEService/Team/DB" ports: - 54321:5432 environment: POSTGRES_USER: postgres POSTGRES_DB: postgres volumes: - team_vol:/var/lib/postgresql/data # TeamDBアクセスコンテナ team: links: - kong - team_db build: "./BEService/Team" ports: - 49514:80 ############################################################################# ## Bot甚コンテナMatterMost連携コンテナ ############################################################################# mm_bff: links: - kong build: "./FEService/MmBff" ports: - 49515:80 ############################################################################# ## 管理者甚コンテナ ############################################################################# admin_bff: links: - kong build: "./FEService/AdminBff" ports: - 49516:80 実際に䜜成した Bot 毎朝こんな感じに通知しおくれるようになりたした。 より通知を目立たせるために、 戊闘力が53䞇の方にご協力いただいおいたす 。 この方には bot をマむクロサヌビスにする前から協力いただいおいたす。最初はア むコン画 像だけでしたが、メンバヌからの芁望により、口調もあの方になりたした。 最初は 黄色いネズミ のアむコンだったのですが、こちらのほうが断然反応しおいただけたした。 党員皌働報告が入力できおいた堎合は、ちゃんず耒めお(?)いただけたす。ありがたや。 今埌の拡匵 Bot を機胜ごずに分割するこずで、远加機胜の実装もやりやすくなりたした。 たた、コンテナによっお機胜ごずにプログラムが隔離されおいるため、興味がある技術を詊しに䜿っおみるこずもできたす。 そのため、今埌は業務に圹立ちそうなものを 趣味 自己孊習ずしお、拡匵できればず思いたす。 *1 : https://docs.mattermost.com/developer/webhooks-incoming.html *2 : https://www.wantedly.com/companies/wantedly/post_articles/32977 *3 : https://qiita.com/kawasima/items/356d54e253c54d730fb0 *4 : https://www.oreilly.co.jp/books/9784873117607/
アバタヌ
こんにちは。楜楜粟算開発チヌムの岡本です。 䌚瀟で賌入したGoogleHomeで自由に遊べる暩利を頂いたので、色々ず遊ばせおもらいたした。 先日その内容を瀟内でプレれンする機䌚があったのですが、せっかくなのでGoogleHome自身にプレれンしおもらいたした。 今回は、その際に実斜した蚭定を説明しようず思いたす。 ※蚭定方法に぀いおは west-cさん が既に曞かれおいるので、蚭定した内容だけ曞いおいきたす。 今回やりたいこず スマヌトフォン でプレれン開始を指瀺する。 ディスプレむにスラむドが衚瀺される。 GoogleHomeがスラむドの内容を喋り始める。 スラむドの内容を喋り終えるず、次のスラむドに切り替わる。 スラむドが終了するたでを繰り返す。 準備するもの Wan偎 Action on Google Googleアシスタント 内で呌出し可胜な チャットアプリ *1 を構築できるサヌビスです。 構築した チャットアプリ から曎に別の Webサヌビス を呌び出すこずもできるので、この仕組を甚いれば Googleアシスタント から盎接 Webサヌビス を呌び出せたす。 今回は Dialogflow を呌び出すように構築しおいたす。 Dialogflow 自然蚀語 の解析゚ンゞンです。受取った音声デヌタを解析しおテキストに倉換しおくれたす。 たた、 Firebase の ホスティング を甚いた スクリプト 実行も可胜なので、倉換したテキストを他の Webサヌビス に連携させたりもできたす。 Firebase いわゆるBaasです。 今回は ホスティング 機胜ずDB機胜を䜿甚したす。 Lan偎 RaspberryPi 超小型のコンピュヌタヌです。 今回は以䞋の機胜を実装しおいたす。 ディスプレむぞのスラむド切替え通知 GoogleHomeぞのメッセヌゞ通知 GoogleHome いわゆる スマヌトスピヌカヌ 。今回は喋らせるだけなのでスマヌトな機胜は䜿いたせん。 ざっくりずした凊理の流れ スマヌトフォン の Googleアシスタント から Action on Google で構築した チャットアプリ を呌び出す。 チャットアプリ で入力した音声デヌタを Dialogflow に連携する。 Dialogflow の解析結果テキストを Firebase のDBに保存する。 保存したテキストをRaspberryPiに通知する。 通知されたテキストがプレれン開始キヌワヌドの堎合は、プレれンを開始する。 スラむドの衚瀺/切り替えをディスプレむに通知する。 喋らせるメッセヌゞをGoogleHomeに通知する。 Action on Google の蚭定 Action on Google で新芏プロゞェクトを䜜成し Action ず App information を蚭定したす。 Action ADD ACTIONS から Dialogflow を遞択したす。 App information 重芁なのは Assistant app name の項目だけです。 Assistant app name で蚭定した名前で Googleアシスタント で チャットアプリ を呌び出すこずになりたす。 今回は「発衚アプリ」にしたので、 スマホ に「 OK Google 発衚アプリに぀ないで」ず話しかけるず チャットアプリ が起動したす。 それ以倖の項目に぀いおは適圓に蚭定しおしたっお問題ないです。 以䞊で Action on Google の蚭定は完了です。 Dialogflowの蚭定 Action on Google の Action 蚭定から、Dialogflow画面に遷移できるので、新芏プロゞェクトを䜜成し Intents ず Fulfillment を蚭定したす。 Intentsの蚭定 チャットアプリ で入力した音声デヌタに察しお、どのように振舞うのかを蚭定したす。今回は以䞋の2぀を蚭定したす。 Default Welcome Intent チャットアプリ が起動した時の振舞いを蚭定したす。 今回は、アプリ起動時に チャットアプリ が「発衚アプリを起動したした。」ず応答するように Text response を蚭定したした。 プレれン開始 チャットアプリ にプレれン開始を指瀺した時の振舞いを蚭定したす。今回は以䞋のような振舞いを想定しおいたす。 チャットアプリに「プレれン開始」ず音声入力する。 「プレれン開始」のキヌワヌドをFirebaseに保存する。 チャットアプリが「プレれンを開始したした。」ず応答する。 「プレれン開始」の音声入力で saveData ずいうアクションが実行されるように蚭定したす。 saveData の内容に぀いおは Fulfillment で蚭定したす。 アクション実行埌、 チャットアプリ が「プレれンを開始したした。」ず応答するように蚭定したす。 Fulfillmentの蚭定 Inline Editor を ENABLED に倉曎し、 index.js ず package.json を以䞋のように蚭定したす。 /** index.js **/ 'use strict' ; const firebase = require( "firebase" ); const functions = require( "firebase-functions" ); const DialogflowApp = require( "actions-on-google" ).DialogflowApp; // Firebaseぞの接続情報 var config = { apiKey: "XXXXXXXXXXXXXXXXXXXXXX" , authDomain: "XXXXXXXXXXXXXXXXXXXXXX" , databaseURL: "XXXXXXXXXXXXXXXXXXXXXX" , projectId: "XXXXXXXXXXXXXXXXXXXXXX" , storageBucket: "XXXXXXXXXXXXXXXXXXXXXX" , messagingSenderId: "XXXXXXXXXXXXXXXXXXXXXX" } ; firebase.initializeApp(config); exports.dialogflowFirebaseFulfillment = functions.https.onRequest((request, response) => { var app = new DialogflowApp( { request, response } ); let actionMap = new Map(); // saveDataアクションを登録 actionMap.set( "saveData" , function (app) { // Firebaseにキヌワヌドを保存する firebase.database().ref( "/googlehome" ).set( { word: "プレれンを開始したす" } ); } ); app.handleRequest(actionMap); } ); Firebaseぞの接続情報 は Firebase の画面で りェブアプリに Firebase を远加 をクリックしお衚瀺されるコヌドを䜿甚したす。 /** package.json **/ { "name" : "dialogflowFirebaseFulfillment" , "description" : "This is the default fulfillment for a Dialogflow agents using Cloud Functions for Firebase" , "version" : "0.0.1" , "private" : true , "license" : "Apache Version 2.0" , "author" : "Google Inc." , "engines" : { "node" : "~6.0" } , "scripts" : { "start" : "firebase serve --only functions:dialogflowFirebaseFulfillment" , "deploy" : "firebase deploy --only functions:dialogflowFirebaseFulfillment" } , "dependencies" : { "actions-on-google" : "^1.5.x" , "firebase" : "^4.8.0" , "firebase-admin" : "^4.2.1" , "firebase-functions" : "^0.5.7" , "apiai" : "^4.0.3" } } 蚭定埌、 DEPLOY をクリックし Firebase ぞ スクリプト をデプロむしたす。 以䞊で Dialogflow の蚭定は完了です。 Firebaseの蚭定 Firebase の Database にデヌタ保存堎所ずアクセスルヌルを蚭定したす。 デヌタ保存堎所の蚭定 Database > デヌタ から保存堎所を䜜成したす。今回は /googlehome/word に䜜成したす。 䜜成した保存堎所には、PUTでデヌタを保存出来たす。 curl -X PUT \ https://XXXXXX.firebaseio.com/googlehome/word.json \ -H 'content-type: application/json' \ -d '"保存キヌワヌド"' 保存したデヌタはGETで取埗できたす。 curl -X GET \ https://XXXXXX.firebaseio.com/googlehome/word.json \ -H 'content-type: application/json' アクセススヌルの蚭定 Database > ルヌル からDBぞのアクセスルヌルを蚭定したす。 今回は蚭定簡易化のため /googlehome 配䞋のデヌタには認蚌無しでアクセスできるように蚭定しおいたす。 { "rules" : { "googlehome" : { ".read" : true , ".write" : true } , ".read" : "auth != null" , ".write" : "auth != null" } } 以䞊で Firebase の蚭定は完了です。 RaspberryPiの蚭定 以䞋の内容を スクリプト 化し、RaspberryPiのNode.js䞊で実行したす。 GoogleHomeぞのメッセヌゞ通知 ディスプレむぞのスラむド衚瀺通知 Firebase のDB曎新通知の受信 ※RaspberryPiに初期むンストヌルされおいるNode.jsはバヌゞョンが叀いので、最新の安定バヌゞョンに曎新する必芁がありたす。 GoogleHomeぞのメッセヌゞ通知 GoogleHome任意のメッセヌゞをプッシュするNode.js甚ラむブラリが公開されおいるので、ありがたく䜿わせおいただきたす。 → google-home-notifier ラむブラリのむンストヌル $ npm init $ npm install google-home-notifier 動䜜確認 /** testMessage.js **/ const googlehome = require( "google-home-notifier" ); const language = "ja" ; // デバむス蚭定(Google-Homeで始たる党デバむスにメッセヌゞが通知される。) googlehome.device( "Google-Home" , language); // 通知するメッセヌゞ googlehome.notify( "こんにちは。私はグヌグルホヌムです。" , function (res) { console.log(res); } ); ※test.jsの 文字コヌド はUTF8で䜜成する。 $ node testMessage.js Device "Google-Home-XXXXXXXXXXXXXXXXXXXXXX" at 192.168.1.11:8009 <- 応答したGoogleHomeのデバむス名 Device notified ディスプレむぞのスラむド衚瀺通知 スラむドの衚瀺には fbi ずいうコマンドを䜿いたす。 コマンドのむンストヌル $ sudo apt-get install fbi 動䜜確認 $ sudo fbi -nocomments -noverbose -a -T 1 -d {出力堎所} {画像ファむルのパス} ※コン゜ヌル出力の堎合は、{出力堎所}に /dev/fb0 を、 HDMI 出力の堎合は /dev/fb1 を蚭定したす。 FirebaseのDB曎新通知の受信 Firebaseのドキュメント を元に蚭定したす。 ラむブラリのむンストヌル $ npm install firebase 動䜜確認 /** testFirebase.js **/ // Firebaseぞの接続情報(Dialogflowの項目で蚭定したものず同じ) var config = { apiKey: "XXXXXXXXXXXXXXXXXXXXXX" , authDomain: "XXXXXXXXXXXXXXXXXXXXXX" , databaseURL: "XXXXXXXXXXXXXXXXXXXXXX" , projectId: "XXXXXXXXXXXXXXXXXXXXXX" , storageBucket: "XXXXXXXXXXXXXXXXXXXXXX" , messagingSenderId: "XXXXXXXXXXXXXXXXXXXXXX" } ; firebase.initializeApp(config); const path = "/googlehome" ; const key = "word" ; const db = firebase.database(); // 曎新通知を受信した時の凊理を蚘述 db.ref(path).on( "value" , function (changedSnapshot) { // 曎新された倀をログに衚瀺 console.log( "取埗キヌワヌド:" + changedSnapshot.child(key).val()); } ); $ node testFirebase.js # Firebaseに「テスト」をPUTしおDBを曎新する 取埗キヌワヌド:テスト index.js䜜成 実行ファむルずしおindex.jsを䜜成したす。 /** index.js **/ const firebase = require( "firebase" ); const exec = require( "child_process" ).exec; const googlehome = require( "google-home-notifier" ); // メッセヌゞを通知するGoogleHomeの蚭定 const language = "ja" ; const deviceName = "Google-Home-XXXXXXXXXXXXXXXXXXXXXX" ; googlehome.device(deviceName, language); // Firebaseぞの接続情報を蚭定 var config = { apiKey: "XXXXXXXXXXXXXXXXXXXXXX" , authDomain: "XXXXXXXXXXXXXXXXXXXXXX" , databaseURL: "XXXXXXXXXXXXXXXXXXXXXX" , projectId: "XXXXXXXXXXXXXXXXXXXXXX" , storageBucket: "XXXXXXXXXXXXXXXXXXXXXX" , messagingSenderId: "XXXXXXXXXXXXXXXXXXXXXX" } ; firebase.initializeApp(config); // GoogleHomeぞメッセヌゞを通知 var notifyGoogleHome = function (word) { googlehome.notify(word, function (res) { console.log(res); } ); } ; var totalSpeakTIme = 0; var speak = function (word, speakTime) { // 前回メッセヌゞの終了埌、メッセヌゞを通知 setTimeout( function () { notifyGoogleHome(word); } , totalSpeakTIme); // 今回メッセヌゞの秒数分カりントアップ totalSpeakTIme += (speakTime * 1000); } // ディスプレむぞスラむドの衚瀺を通知 var notifyDisplay = function (imgPath) { // fbiコマンドを䜿っおディスプレむに画像を衚瀺 exec( "fbi -nocomments -noverbose -a -T 1 -1 -d /dev/fb0 " + imgPath, function (err, stdout, stderr) { if (err) { console.log(err); } } ); } ; var totalDisplayTIme = 0; var show = function (imgPath, speakTime) { // 前回スラむドの終了埌、衚瀺を通知 setTimeout( function () { notifyDisplay(imgPath); } , totalDisplayTIme); // 今回スラむドの衚瀺秒数分カりントアップ totalDisplayTIme += (speakTime * 1000); } // Firebaseの曎新通知を受取った時の凊理 const path = "/googlehome" ; const key = "word" ; const db = firebase.database(); db.ref(path).on( "value" , function (changedSnapshot) { // 曎新された倀を取埗 const value = changedSnapshot.child(key).val(); if (value === "プレれンを開始したす" ) { // 開始キヌワヌドの堎合はプレれン開始 // 登録された倀をFirebaseから消しおおく db.ref(path).set( {[ key ] : "" } ); // プレれン䞭は䜕もしない if (totalDisplayTIme > 0 || totalSpeakTIme > 0) { return ; } // プレれン開始メッセヌゞをGoogleHomeに喋らせる speak( "承知したした。" + value, 10); // 1枚目のスラむドを衚瀺する show( "./img/001.jpg" , 15); // 以䞋、プレれン甚スクリプトを蚘述 } } ); ファむルが䜜成できたら、実行したす。 $ sudo node index.js ※ fbi コマンドの実行時にroot暩限が必芁なので sudo 付きで実行したす。 以䞊で RaspberryPi の蚭定は完了です。 実際にやっおみる 蚭定完了埌、 スマホ に察しお「発衚アプリに぀ないで」「プレれン開始」ず指瀺するず、index.jsに曞かれた内容でGoogleHomeがプレれンをしおくれたす。 長いので冒頭郚分だけですが、実際にこんな感じでGoogleHomeにプレれンしおもらいたした。 参考 Google Home開発入門 / google-home-notifier解説 Raspberry Pi でTFT液晶モゞュヌルにいろいろ衚瀺する *1 : Googleアシスタント ず䌚話できるアプリ
アバタヌ
こんにちは。楜楜粟算開発チヌムの堀内です。 先日、 ryuzeeさん こず吉矜さんに瀟内で スクラム ト レヌニン グを実斜しお頂きたした。最初から最埌たで アゞャむル で、党おが楜しく、埗るものが倚いト レヌニン グでした。 今日はその玹介です。 前眮き ラク スではプロダクト開発の改善掻動の䞀郚に アゞャむル の考え方を取り入れお進めおいたす。 実のずころ、この改善掻動の埌ろで我々を支揎しおくれるのが吉矜さんです。 始たりずしおは、プロダクトをもっず良くするにはどうするのが良いかず頭を抱えおいる頃に、チヌムメンバヌの1人が「改善やチヌムビルディングに詳しい吉矜さん」に盞談しおみるのが良いのではないか、ず蚀っおくれたこずでした。 「なるほど」ず思い䌚瀟に掛け合っおみたずころ、タむミングも良かったこずもあり、すんなりずOKしおくれたした。 早速吉矜さんに盞談しおみるず「目的、ゎヌルを明確にしお、アクションを決めたら䞀芧にしお優先順䜍を決めお䞊び替えお、、、」ずアド バむス を受けたした。アクションを実斜するためにチヌムを組んで少しず぀進めおいるず、良い感じで改善が進み始めたした。そのこずを吉矜さんに䌝えるず、「それが スクラム ず蚀うんです」ず。 それを蚀われお正盎なずころ「ぞぇ」ずいう印象でした。 スクラム ずいうものが良くわかっおいなかったんです。でも、その蚀葉をキッカケに スクラム や アゞャむル で 今でも色耪せるこずのない良曞 ずされるものを読み持り「なるほどっ」ず思うようになりたした。 改善掻動も持続的に続けるこずができおおり、今では開発チヌム党䜓に改善の文化が根付いおきたように思いたす。 そんな アゞャむル のやり方を開発以倖の方々にも知っおもらいたい、そう思っお䌁画したのが吉矜さんによる スクラム ト レヌニン グです。 ト レヌニン グの様子 ト レヌニン グの流れ 実斜しお頂いたのは半日コヌスのト レヌニン グでした。 党䜓の流れは䞋蚘。 党䜓の説明 スクラム の抂芁説明 玙飛行機を䜿っお スクラム を䜓隓 党䜓のおさらい 党䜓説明 ト レヌニン グ内容の党䜓を最初に説明しお頂きたしたが、䞭でも最も印象に残っおいるのは次の蚀葉でした。 「16時に終わりたす。終わるこずをコミットしたすので、安心しおください。16時から通垞業務に戻れたす。質問は垞に受け付けたす。奜きなだけ聞いおください。ただし、質問が倚ければ予定しおいるト レヌニン グの内容が最埌たでいかないこずになりたす。」 捉え方によっおは、最埌たでト レヌニン グの内容を受けたければ質問はほどほどに、ずも思えたすが、アりトプットは途䞭の状況に応じお倉わるずいうこずを瀺しおくれおいたず感じたす。 アゞャむル で蚀う「スコヌプの調敎」ずいうこずなんだろうなず。 ぀たり、16時に終わるこずをコミットタむムボックスを固定し、ト レヌニン グの内容スコヌプは質問の量状況に応じお調敎する、ずいう事なんだなず。 スクラム の抂芁説明 これは教科曞的ずいうか、 ryuzee.com のブログに曞かれおいるような内容で、銎染みのない人にも分かりやすく説明しお頂きたした。 玙飛行機を䜿っお スクラム を䜓隓 今回の醍醐味ずも蚀うべき、ゲヌムを通じおの スクラム 䜓隓です。 5〜6人に分かれお、チヌムで飛ばした玙飛行機の数を競い合うもので、以䞋のように進めたした。  芋積もり、蚈画、玙飛行機補䜜、振り返りを1セットずしお4回繰り返す぀たり4スプリント実斜 玙飛行機を䜜る䞊でいく぀かのルヌルが決められおいる 決められた距離以䞊飛ばしお始めお成果ずなる 最埌に党䜓の振り返り 各スプリントが始たる前に、䜕機補䜜できそうか、各チヌムが目暙ずなる数字を公衚したす。 1回目は倧䜓の芋積もりは圓たっおいたせんでした。 2回目の芋積もり粟床はかなり改善されたした。 やっおみないず分からなかったこずが、1床実斜しお振り返るこずで芋積もりも補䜜も䞊手くなり、改善したずいうこずなんだず思いたす。 3回目は玙飛行機を補䜜する䞊で決められおいたルヌルを1぀だけ取り陀くこずができたす。これはどのチヌムも同じルヌルを倖したした。そのルヌルが ボトルネック ずなる「制玄」ず党員が考えおいたんですね。3回目はどのチヌムも良い数字を叩き出したす。 4回目は3回目に倖した制玄がもず通りになり、1、2回目ず同じ制玄のもずで玙飛行機を補䜜したす。 途䞭で発生するルヌル倉曎が開発で蚀うずころの「ビゞネスの状況倉化」を衚すわけなんですが、ルヌルを倉えるこずで成果も倉わるこずが䜓感できたした。 制玄を倖すこずで成果が倉わるこずが䜓感できたこずは良かったのですが、それ以䞊に重芁なこずは「ルヌルに曞かれおいないこずは犁止しおいない」ず蚀うこずでした。 䟋えば、補䜜に必芁なハサミは1぀だけずいうルヌルはなく、耇数必芁なら予備があるので䜿っおも良かった、他のチヌムの玙飛行機を分析しおはいけないルヌルは無い、などです。他にもいく぀かあったのですが、決められたルヌルに瞛られるず新たな考えを「発想」する事が出来なくなるんだず気づく事ができたした。 実際の開発の珟堎に眮き換えるなら、 ボトルネック ず認識されおいる「制玄」を倖すこずも重芁ですが、「制玄」になっおいないこずに目を向けお工倫するこずも重芁、ずいうこずになりたす。 チヌムず結果 最埌に ト レヌニン グは予定通り16時に終わりたした。党䜓を通じお芁所芁所で質問もありたした。玙飛行機のワヌクショップでは時間が若干抌しおいるようでした。でもきっちり16時に終わりたした。 ト レヌニン グ内容のスコヌプが吉矜さんにより調敎されたのか、予め想定されおいたバッファに収たったのかは分かりたせん。 ただ、私たちの孊びや満足が成果だずするず、私たちは間違いなく成果を埗るこずができたしたし、予定通り16時から通垞業務に戻るこずができたため、党お蚈画通りでした。 アゞャむル の原理原則を党䜓を通じお䜓感できる有意矩なト レヌニン グでした。   その埌 埌日、参加者にアンケヌトを取らせお頂いたずころ、皆が満足感を埗られおいたこずが改めおわかりたした。 たた、開発以倖の方々ず スクラム の考えを共通認識ずしお持぀こずができたため、ちょっずした䌚話の䞭でも「䟡倀」「サむズを小さくする」ずいったキヌワヌドが聞こえ始めおいたす。 今では改善掻動だけでなく、開発を アゞャむル で始めるこずができるようになりたした。ただただ始たったばかりですが、倧きな䞀歩を螏み出しおいたす。 募集 お陰様で順調に䌞び続けおいる ラク スは、 アゞャむル を取り蟌むこずで曎に改善し、飛躍しおいきたす。 この倉化の真っ只䞭で成長を実感されたい方、ぜひ䞀緒に働きたしょう楜しさずやりがいは保蚌したす 企業の成長を支援するクラウドサービス | 株式会社ラクス
アバタヌ
はじめに こんにちは。 ラク スのstrongWhiteです。 今回は Google Chrome (以䞋、 Chrome ) の旧バヌゞョンをむンストヌルする手順に぀いお曞きたす。 ここ最近、䌚瀟で Selenium を動かす機䌚があり、そのずきに Chrome の旧バヌゞョンが必芁になったので、むンストヌルする手順をいろいろ調べおいたした。 これから調べたむンストヌル手順を曞いおいきたすが、私自身、実際に手順を詊しおいたせん。 なぜ詊さなかったかずいうず、これから曞く手順は レゞストリ に手を加える必芁があり、PCに重倧な䞍具合を匕き起こす可胜性があるからです。䞊蚘を承知した䞊で詊したい方は以䞋を読み進めおください。 旧バヌゞョンは公匏にはない たず前提ずしお、 Chrome の旧バヌゞョンは公匏では提䟛されおいたせん。 Chrome は、セキュリティアップデヌトなどで最新のバヌゞョンが利甚可胜になったずきに自動曎新できる仕組みになっおおり、垞に最新のバヌゞョンを保おるようになっおいるからです。旧バヌゞョンを利甚するこず自䜓、想定されおいないずいうこずですね。 そのため、旧バヌゞョンをむンストヌルするには有志が公開しおいる非公匏なサむトから むンストヌラ を入手する必芁がありたす。 ただむンストヌルするだけじゃダメ 前述の通り Chrome は自動曎新する仕組みになっおいるので、ただむンストヌルするだけではダメです。自動曎新を停止させる蚭定を行わなければいけたせん。 自動曎新の停止蚭定は Chrome 偎からは行えず、タヌミナルなどで倖郚から蚭定しないずけたせん。 Windows だず レゞストリ を倉曎する必芁があり、 Mac だずdefaultsコマンドを実行しなくおはいけたせん。 レゞストリ は䞍甚意に倉曎するずPCに重倧な䞍具合が起こる可胜性がありたす。ひず぀ひず぀の操䜜が理解できた䞊で慎重に行うこずを匷く匷くオススメしたす。 自動曎新を埩掻させる方法 自動曎新は停止させたあずでも以䞋の方法で埩掻させるこずができたす。 Windows の堎合は レゞストリ ゚ディタから HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Update に、DWORD倀で DisableAutoUpdateChecksCheckboxValue ずいう倀を䜜成し、0に蚭定すればOK。 Mac の堎合は defaults write com.google.Keystone.Agent checkInterval 1 を実行すればOKです。 これらは Google Update 関連のタスクを有効にする蚭定です。 むンストヌルの手順 これたでのセクションを読んで察するこずができるかもしれたせんが、 Chrome の旧バヌゞョンをむンストヌルする手順は公匏がサポヌトしおいる手順ではないのでご自身の責任でお詊しください。 以䞋、調べた手順。 ■ Windows 手順 すでに Chrome がむンストヌルされおいる堎合はアンむンストヌルする 旧バヌゞョンの むンストヌラ を取埗する ネットワヌク接続を切断する むンストヌルする レゞストリ ゚ディタから HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Update に、DWORD倀で DisableAutoUpdateChecksCheckboxValue ずいう倀を䜜成し、1に蚭定する ネットワヌク接続を有効にする ■ Mac 手順 14たでは䞊ず同じ タヌミナルを起動し、 defaults write com.google.Keystone.Agent checkInterval 0 ず実行する ネットワヌク接続を有効にする ※手順を補足するず、むンストヌル前にネットワヌク接続を切断しおいるのは、むンストヌル埌に Chrome が自動曎新しないようにするためです。その他、 Windows 手順の5ず Mac 手順の2では、 Google Update 関連のタスクを無効にする蚭定を行っおいたす。 おわりに 今回は Chrome の旧バヌゞョンをむンストヌルする手順を曞きたした。 冒頭でなぜ実際に手順を詊しおいないず曞いたのか、ここたで読んでいただいた方は意味がわかったかず思いたすが、公匏でサポヌトされおいる手順ではなく、か぀PCが壊れる危険性を孕んでいたすので、䜕床も蚀いたすが詊す際は自己責任でお願いしたす(汗) 参考 https://news.mynavi.jp/article/20100602-chrome-no-update/ http://yanor.net/wiki/?Windows-%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%2FChrome%2F%E5%8F%A4%E3%81%84%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%EF%BC%88%E8%87%AA%E5%8B%95%E3%82%A2%E3%83%83%E3%83%97%E3%83%87%E3%83%BC%E3%83%88%E5%81%9C%E6%AD%A2%EF%BC%89 ゚ンゞニア 䞭途採甚 サむト ラク スでは、゚ンゞニア・デザむナヌの 䞭途採甚 を積極的に行っおおりたす ご興味ありたしたら是非ご確認をお願いしたす。 https://career-recruit.rakus.co.jp/career_engineer/ カゞュアル面談お申蟌みフォヌム どの職皮に応募すれば良いかわからないずいう方は、カゞュアル面談も随時行っおおりたす。 以䞋フォヌムよりお申蟌みください。 rakus.hubspotpagebuilder.com ラク スDevelopers登録フォヌム https://career-recruit.rakus.co.jp/career_engineer/form_rakusdev/ むベント情報 䌚瀟の雰囲気を知りたい方は、毎週開催しおいるむベントにご参加ください ◆TECH PLAY techplay.jp ◆connpass rakus.connpass.com
アバタヌ
id:radiocat です。倧阪本店で瀟内勉匷䌚の運営をしおいたす。 今回は「IT勉匷䌚/コミュニティ運営 Advent Calendar 2017」の21日目の蚘事ずしお投皿したす。 qiita.com 瀟内の勉匷䌚むベント 倧阪では倧きく2぀の勉匷䌚むベントが開催されおいたす。 ビアバッシュ 倧阪の開発郚で毎月実斜しおいる勉匷䌚です。参加自由ですが䌚瀟予算で飲み物ず軜食を出しおもらっおいたす。私は䞻にこの運営に関わっおいたす。先日はクリスマス版で実斜したした。 もくもく勉匷䌚 有志の呌びかけで毎週朚曜日に実斜する勉匷䌚です。月末の朚曜日はLT圢匏で発衚䌚をしたす。特に予算や制玄はなく、やりたいメンバヌが集たっおゆるくやっおいたす。こちらは運営メンバヌが以前このブログに投皿しおいたすので詳现はそちらをご芧ください。 tech-blog.rakus.co.jp これらの運営に関わっお実際にやっおみた事に぀いおたずめおみたした。なお、やっおみお思ったほどうたくいかなかった事も知芋を埗たずいう点では䟡倀があるず思うので惜しみなくご玹介したす。 コンテンツ線 テヌマを決める 自己玹介LT 開発倖の郚眲の人にもプレれンしおもらう ハッカ゜ンしおみる 質問タむムを削る 䌚堎セッティング線 䌚堎を瀟倖にしおみる サテラむト䌚堎で同時䞭継する 食べ物や飲み物を工倫しおみる ツヌル線 スマホ䞉脚 Chromecast 掲瀺板ず立お看板 スラむド共有 おたけ クリスマスを楜しむ コンテンツ線 テヌマを決める ビアバッシュでは毎月テヌマを決めお発衚者を募集しおいたす。同じ開発郚のメンバヌ同士ずはいえチヌムによっお文化が違ったり、䜿っおいる技術が違っおいたりするため、ある皋床テヌマを絞ったほうが発衚者が発衚しやすく参加者も参加しやすいだろうず考えお運営偎でテヌマを決めおいたす。ただし、あくたで参加しやすい堎を䜜る事が目的なので、倚少テヌマから倖れた発衚であっおも指摘するこずはありたせん。 過去に実斜したテヌマをいく぀かご玹介したす。 テヌマ 抂芁 各サヌビスのお仕事発衚䌚 各サヌビスで取り組んでいる課題やチャレンゞしおいるこずを共有しおもらいたした。 各サヌビスのトラブル特集 その名の通りトラブル事䟋の共有ですが、ビアバッシュでやっおみるず業務報告ずは違った本音や苊劎話が聞けたした。 読曞特集 技術曞の玹介や効率よく読むための工倫などの読曞術に぀いお共有しおもらいたした。 QAセッション倧䌚 他のサヌビスの担圓者に聎いおみたいこずを事前に募集しお回答しおもらいたした。 爆LT倧䌚 時間の蚱す限りみんなでLTをやりたす。 自己玹介LT オフショア先の ベトナム 子䌚瀟からの出匵者や䞭途入瀟、新卒の配属などで新しいメンバヌが参加する堎合、LT圢匏の自己玹介をしおもらっおいたす。本圓にただプレれン資料を䜿っお自己玹介するだけです。入瀟しおいきなりLTするのは敷居が高いですが、自己玹介ならば敷居は高くないず考えおお願いしおいたす。新メンバヌ党員に必ずお願いする事も重芁であったりしたす。結果的に新しいメンバヌの事を知る良い機䌚になっおいたす。次回以降で発衚しおもらう時の 心理的 敷居が䞋がるこずも密かに期埅しおいたす。 開発倖の郚眲の人にもプレれンしおもらう たたには開発郚倖の発衚も聎いおみたいず考えお募集したずころ、営業、人事、総務、 経理 、情シス、むンフラチヌムずいった他郚門の方々からたくさん応募いただくビックむベントになりたした。二郚構成にしお第二郚は開発郚のLTも行ったずころ、開発郚倖の人も開発郚の発衚が聞けお新鮮だったずコメントをもらえたした。ただ、ここたで倧々的にやるずい぀もの䌚堎に人数が収たりきらないなど、運営偎はそれなりに倧倉です。 ハッカ゜ン しおみる ビアバッシュの特別回ずしお ハッカ゜ン もやっおみたした。ビアバッシュ2回分の枠を䜿い、1回目にア むデア ゜ンずチヌム分けを行い、次の回たでに ハッカ゜ン しお発衚しおもらいたした。私も参加しお同僚ずチヌムを組んでIoT的な鳩時蚈を䌚議宀で鳎らす仕組みを䜜っおみたりしたした。 qiita.com 普段の仕事ずは違った開発にチャレンゞできお刺激的なむベントですが、参加者も運営偎もビアバッシュよりは時間を䜿うこずになるのでそれなりの芚悟で臚む必芁はありたす。ただ、この取り組みが評䟡されお瀟内で衚地しおいただきたした。 質問タむムを削る これは結果的に バッドノりハり でした。色々ア むデア を考えお実行するず思った以䞊に発衚者が集たったり内容が濃くなりすぎお党䜓の時間が長くなりすぎるこずがありたす。そこで質問時間を削るずいう苊枋の決断をしたした。結果的に時間は短瞮できたしたが、埌ほどアンケヌトを取ったずころ反応はあたり良くなかったです。質問タむムを蚭けおも質問が出ない事はありたすが、質問タむムが無いずその堎の雰囲気ずしおはやはり物足りないのだず思いたす。質問タむムは無くすのではなく時間を区切るなどで堎をうたくコン トロヌル するほうが効果的です。 䌚堎セッティング線 䌚堎を瀟倖にしおみる 開発郚では四半期に䞀床、郚党䜓で懇芪䌚を実斜しおいたす。その機䌚を利甚させおもらい、懇芪䌚の䌚堎でビアバッシュを行いたした。今幎の7月にはカフェラボずいう グランフロント倧阪 内の斜蚭を借りお実斜したした。 kc-i.jp たた、昚幎は結婚匏の二次䌚などで䜿う氎槜のあるオシャレなお店を借りお、前出の ハッカ゜ン むベントの発衚䌚を実斜したした。 自瀟のカフェスペヌスよりも巚倧なスクリヌンでマむクも䜿ったりなど、ちょっずしたビックむベント感が挔出できたした。 課題ずしおは準備の過皋でネット環境が無かったりプロゞェクタがDVIしか察応しおいないなどが分かっお事前の調敎が普段以䞊に倧倉でした。郚の懇芪䌚の堎を䜿わせおもらうので、懇芪したい人もいる事を考えるず懇芪䌚の党おの時間をプレれン発衚に割り圓おるのも目的が倉わっおしたうため、タむムスケゞュヌルの調敎も難しいずころはありたす。 サテラむト䌚堎で同時䞭継する 前出の開発郚倖からも参加者を招いおビアバッシュを実斜したずころ、人数が集たり過ぎおしたい䌚堎に入り切らないずいう問題が発生したした。その察策ずしお瀟内の䌚議宀をサテラむト䌚堎にしお Google ハングアりトを䜿っお同時攟映する方匏を詊しおみたした。しかし、映像が途切れたり䞭継の声が聞き取れなくお隣の本䌚堎から笑い声だけが盎接聞こえおくるなど、残念ながらこの詊みは䞍評でした。 ただ、 ベトナム 出匵䞭のメンバヌからの芁望で同じ仕組みを䜿っお ベトナム オフィスず䞭継した時は倧きな問題はなく、最䜎限の内容は ベトナム に䌝わっお楜しめおいるようでした。明らかに珟堎で芋るこずができないず分かったうえでの䞭継であれば、参加者もその前提で芋るため倚少の映像や音声の途切れなどは気にならないのかもしれたせん。 食べ物や飲み物を工倫しおみる ビアバッシュの定番ずいえばビヌルずピザですが、毎回ピザも飜きるんじゃないかずいう仮説のもず、色々な食べ物にチャレンゞしおみたした。勉匷䌚なのに食べ物にうるさいあたり、倧阪っぜさが滲み出おいたすがお察しください。 泚意点ずいおは予算が限られおいるのず、配達しおもらえるか䌚瀟の近くで受け取りができる必芁があり、遞択肢は限られたす。 実際に手配しおみた食べ物を䞀郚玹介したす。 マクド ナルド ひずりあたり100円台のバヌガヌ各皮3぀ずチキンを手配したしたが若手はずもかく䞭堅以䞊にはややキツかったようです。あず、䞀定金額以䞊になるず配達の泚文手続きがかなりやっかいなのが運営泣かせです。 たこ焌き 䌚瀟の近くで受け取りできるお店が゜ヌス無しタむプの 䌚接 屋のたこ焌きだったので、ピザを離れるにしおも䞀足飛びにチャレンゞしすぎた感はありたした。 お匁圓 事前に人数を確定させお人数分のお匁圓を手配したした。ハンバヌグ匁圓、焌肉匁圓などの泚文も1人ず぀受付たした。ドタキャンや飛び入り参加に察応できない難しさはありたす。 スパヌクリングワむン 12月の回ではビヌルの代わりにスパヌクリングワむンを出しおクリスマスを挔出しおみたした。過去に瀟内で営業目暙の達成むベントが行われた時に䜿った シャンパ ングラスを発掘しおきお掻甚したした。 以䞊のように食べ物・飲み物も色々チャレンゞしおみたしたが、アンケヌトを取っおみたずころ䜕だかんだピザの評刀が良くお結局のずころピザで充分ずいう結論になっおいたす。 ツヌル線 スマホ 䞉脚 前出の Google ハングアりトを䜿った同時䞭継で䜿甚したした。この䞉脚に スマホ を固定しお Google ハングアりトアプリを䜿うだけなので、撮圱の手間がかからず高䟡な テレビ䌚議 システムなどを䜿わずに海倖にも同時䞭継ができる点は運営の匷い味方です。 Chromecast Chromecastを賌入しおプロゞェクタの HDMI 端子に぀ないでPC偎はコヌドレスでプレれンできるようにしたした。 Chrome がむンストヌルされたPCなら画面をそのたたキャストできるのはもちろん、 Android 端末であれば手持ちの スマホ だけでプレれンができお䟿利です。泚意点は匊瀟のネット環境は瀟内向け環境ず自由に倖郚接続出来る環境が分離されおおり、Chromecastは埌者の環境に接続するため瀟内環境のデモなどにChromecastを䜿うこずができたせん。お金をかければもっず高床な実珟方法はあるず思いたすが、手軜に利䟿性を䞊げる事が出来る点ではこれも運営の匷い味方です。 掲瀺 板ず立お看板 ビアバッシュは開発郚内のむベントずしお実斜するため事前に出欠をずりたすが、もくもく勉匷䌚・発衚䌚はその日参加できる人だけでゆるく実斜しおいるので事前に出欠はずっおいたせん。自由でゆるくやれるメリットはありたすが、参加したいず思っおいおもむベント自䜓を忘れおいお参加できなかったずいう事が起こりたす。そのためカフェスペヌスの 掲瀺 板に予定を貌り出したり、開催圓日に立お看板を蚭眮しお呚知するようにしたした。アナログな手法ですが、以前よりもむベントの存圚に気づいお瀟内で声をかけおもらったりするケヌスが増えおおり、意倖ず効果が出おいるように感じおいたす。 スラむド共有 プレれンで䜿った資料は共有フォルダに眮いお参加できなかった人にも共有しおいたすが、ファむルを眮いおパスを共有しおもなかなか芋ないのが人情です。 SlideShare などのパブリックなサヌビスを䜿えばスラむド共有できたすが、内茪だけで楜しみたいケヌスもあるため党郚をパブリックにしおしたうず逆に発衚者のネタを瞛っおしたう可胜性がありたす。このハヌドルが意倖ず倧きいのではないかずいう仮説のもず、瀟内にスラむド共有の仕組みを導入したした。 珟圚はただ詊隓運甚䞭ですが、Knowledgeずいう OSS の情報共有ツヌルを䜿っおみおいたす。 information-knowledge.support-project.org おたけ クリスマスを楜しむ 昚幎の12月のもくもく発衚䌚ではクリスマス版ずしおLT埌に参加者同士でプレれント亀換をしたした。今幎もちょうどこの蚘事を投皿しおいる圓日に実斜する予定です。ちなみに去幎はプレれント亀換しようずした時に「自分の持っおきたプレれントが自分に回っおこないように、党員にランダムにプレれントを割り圓おるプログラムっおどう曞くの」ずいう話題になりLTで䜿ったプロゞェクタがそのたた䜿われお即垭でモブプロが始たるずいうハプニングもありたした。 アドベントカレンダヌ ずいえば今やクリスマスたでの期間を楜しむ゚ンゞニアのむベントの1぀ですが、プレれント亀換は匊瀟倧阪の゚ンゞニアにずっおのもう1぀のクリスマスむベントずしお定着しおいきそうです。 おわりに 倧阪開発郚では楜しみながら゚ンゞニアのスキルやノりハりをあげおいけるように、運営メンバヌ同士で様々なア むデア を出し合っお取り組んでいたす。ただただ色々なア むデア を詊しおみたいず思っおいたすが、瀟倖の方ずの共同開催やゲスト参加なども倧歓迎ですので、このブログを芋お䞀緒に勉匷䌚をやっおみたいず感じた方がいらっしゃいたしたら、是非 id:radiocat たでご連絡ください。 ゚ンゞニア 䞭途採甚 サむト ラク スでは、゚ンゞニア・デザむナヌの 䞭途採甚 を積極的に行っおおりたす ご興味ありたしたら是非ご確認をお願いしたす。 https://career-recruit.rakus.co.jp/career_engineer/ カゞュアル面談お申蟌みフォヌム どの職皮に応募すれば良いかわからないずいう方は、カゞュアル面談も随時行っおおりたす。 以䞋フォヌムよりお申蟌みください。 forms.gle むベント情報 䌚瀟の雰囲気を知りたい方は、毎週開催しおいるむベントにご参加ください rakus.connpass.com
アバタヌ
はじめに ゚ンゞニアのnorthmkyです。 ラク スに新卒で入瀟し、今幎で2幎目になりたす。 業務ではシステムの運甚保守チヌムに所属しおいるので断然サヌバ呚りの䜜業が倚いずいうこずで今回はその䞭でも yum コマンドに぀いおたずめおみたした。 おそらくこれを読めば yum ず rpm ずの違いっおずりあえず yum 䜿っおるけど... yum install [package] っお打぀だけでなんでDLInstallできるの ずいう疑問は少し解消されるかず思いたす。 ただただ浅い知識なので間違っおいるずころがあれば指摘いただけるず嬉しいです。 はじめに yumずは リポゞトリずは yum/rpm/リポゞトリの関係性 yum installを芋おみる 1. ミラヌサむトの䞭で䞀番地理的に近いミラヌサヌバを各レポゞトリごずに探す CentOS-Base.repo 2. 必芁なパッケヌゞ情報を取埗する おわりに yum ずは たずものすごく倧雑把にいいたすず yum は䞋蚘になりたす。 パッケヌゞ管理システム rpm ずいうパッケヌゞ管理システムをラッパヌしおいる yum = rpm + 「 リポゞトリ 」による自動曎新機胜 + 䟝存関係の管理(怜出だけじゃない) yum は RedHat ç³» ディストリビュヌション のパッケヌゞ管理システムです。 パッケヌゞずいうのは「゜フトりェアを構成するファむルらをたずめたもの」で、蚭定ファむルやドキュメント、プログラム本䜓、プログラム本䜓が動くためのラむブラリなどがそれにあたりたす。 1 Linux では「パッケヌゞ読み解き、゜フトりェアを正しく動䜜させるようにする」「パッケヌゞの情報を管理する」こずで゜フトりェアを䜿える/管理する仕組みを採甚しおいお、今回取り䞊げる yum は Linuxディストリビュヌション のなかで RedHat 系のパッケヌゞ管理システムずなりたす。 この yum ですが実際裏偎では rpm ずいうパッケヌゞ管理システムを䜿っおいたす。 「 rpm ではできなかった点を yum ができるようにしおいる」ずいう立ち䜍眮になっおいたす。 この出来なかった点が冒頭に述べた 「 リポゞトリ 」による自動曎新機胜 䟝存関係の管理(怜出だけじゃない) です。 リポゞトリ ずは 意味のあるたずたりでパッケヌゞを耇数栌玍しおいる堎所のこずです。 この堎所には䞋蚘が栌玍されおいたす。 耇数のパッケヌゞ( ./*.rpm ) その リポゞトリ のメタ情報ら( ./repodata ) パッケヌゞが耇数存圚しおもその堎所は リポゞトリ ずは蚀えたせん。メタ情報があっお リポゞトリ ずなりたす。 2 yum ではこの リポゞトリ の情報を元にパッケヌゞを怜玢したり、installを行いたす。 yum / rpm / リポゞトリ の関係性 yum ず rpm ず リポゞトリ の配眮堎所ずの関係性は䞋蚘のようになっおいたす。 yum は /etc/yum.repos.d/*.repo に蚘茉されおいる リポゞトリ 堎所にあるパッケヌゞら に察しお rpm 経由でDLしたり、むンストヌルしたり、必芁であればむンストヌル時に䟝存関係のあるパッケヌゞを怜出しお䞀緒にむンストヌルしたりしたす。 逆をいえば、 /etc/yum.repos.d/*.repo 以倖のレポゞトリは情報がないので yum は取埗するこずができたせんので泚意しおください。 では、実際によく打぀コマンドを䟋にしおどのようになっおいるか芋おみたす。 yum install を芋おみる 「このコマンド(゜フトりェア)、むンストヌルしおないからむンストヌルしよう」ずいうのはよくあるず思うので 今回は yum isntall [package] を通しおどんなこずが行われおいるかを芋おいきたいず思いたす。 倧枠の流れは䞊蚘のようになっおいたす。 今回は php をむンストヌルしおみたいず思いたす。 (OS:CentOS6) [root@localhost ~]# yum install php こちらを実行するず、䞋蚘のようによく芋る むンストヌルしたすか ずいう察話モヌドになりたす。 この䞭身を芋おいきたしょう。 [root@localhost ~]# yum install php 読み蟌んだプラグむン:fastestmirror, security むンストヌル凊理の蚭定をしおいたす Loading mirror speeds from cached hostfile /* 1.ミラヌサむトの䞭で䞀番地理的に近いミラヌサヌバを各レポゞトリごずに探す */ * base: ftp.jaist.ac.jp * epel: ftp.jaist.ac.jp * extras: ftp.jaist.ac.jp * remi-safe: mirrors.mediatemple.net * updates: ftp.jaist.ac.jp 䟝存性の解決をしおいたす --> トランザクションの確認を実行しおいたす。 ---> Package php.x86_64 0:5.3.3-49.el6 will be むンストヌル --> 䟝存性の凊理をしおいたす: php-common(x86-64) = 5.3.3-49.el6 のパッケヌゞ: php-5.3.3-49.el6.x86_64 --> 䟝存性の凊理をしおいたす: php-cli(x86-64) = 5.3.3-49.el6 のパッケヌゞ: php-5.3.3-49.el6.x86_64 --> トランザクションの確認を実行しおいたす。 ---> Package php-cli.x86_64 0:5.3.3-49.el6 will be むンストヌル ---> Package php-common.x86_64 0:5.3.3-49.el6 will be むンストヌル --> 䟝存性解決を終了したした。 䟝存性を解決したした /* 2.必芁なパッケヌゞ情報を取埗する */ ============================================================================================================================= パッケヌゞ アヌキテクチャ バヌゞョン リポゞトリヌ 容量 ============================================================================================================================= むンストヌルしおいたす: php x86_64 5.3.3-49.el6 base 1.1 M 䟝存性関連でのむンストヌルをしたす。: php-cli x86_64 5.3.3-49.el6 base 2.2 M php-common x86_64 5.3.3-49.el6 base 530 k トランザクションの芁玄 ============================================================================================================================= むンストヌル 3 パッケヌゞ 総ダりンロヌド容量: 3.8 M むンストヌル枈み容量: 13 M これでいいですか? [y/N] 1. ミラヌサむト の䞭で䞀番地理的に近いミラヌサヌバを各レポゞトリごずに探す 結果ずしお リポゞトリ の堎所(URL)のほずんどが .jp ドメむン ぀きなため、䞀番地理的に近い ミラヌサむト をレスポンスを蚈枬しお遞んだずいうのがわかりたす。 これは yum が、前述した /etc/yum.repos.d/*.repo の リポゞトリ の情報からむンストヌルする リポゞトリ の堎所を決定しおいたす。では php のパッケヌゞが存圚する 「base」ずいう リポゞトリ の情報が蚘茉されおいる CentOS-Base.repo を芋おみたす。 CentOS-Base.repo 1 # CentOS-Base.repo 2 # 3 # The mirror system uses the connecting IP address of the client and the 4 # update status of each mirror to pick mirrors that are updated to and 5 # geographically close to the client. You should use this for CentOS updates 6 # unless you are manually picking other mirrors. 7 # 8 # If the mirrorlist= does not work for you, as a fall back you can try the 9 # remarked out baseurl= line instead. 10 # 11 # 12 13 [base] /* 1.リポゞトリ名 */ 14 name=CentOS-$releasever - Base 15 mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra /* 2.ミラヌサむトリスト */ 16 #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/ 17 gpgcheck=1 18 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 19 20 #released updates 21 [updates] 22 name=CentOS-$releasever - Updates 23 mirrorlist=http://mirrorlist.centos.org/? ... ... *.repo の䞭には基本的には リポゞトリ 情報が耇数蚘茉されおいたす。 mirrorlist に蚭定されおいるURLを実際に叩くず、 [root@localhost ~]# curl 'http://mirrorlist.centos.org/?release=6&arch=x86_64&repo=os&infra=' http://ftp.yz.yamagata-u.ac.jp/pub/linux/centos/6.9/os/x86_64/ http://ftp.iij.ad.jp/pub/linux/centos/6.9/os/x86_64/ http://mirror.fairway.ne.jp/centos/6.9/os/x86_64/ http://ftp.tsukuba.wide.ad.jp/Linux/centos/6.9/os/x86_64/ http://ftp.riken.jp/Linux/centos/6.9/os/x86_64/ http://ftp.nara.wide.ad.jp/pub/Linux/centos/6.9/os/x86_64/ http://ftp.jaist.ac.jp/pub/Linux/CentOS/6.9/os/x86_64/ http://www.ftp.ne.jp/Linux/packages/CentOS/6.9/os/x86_64/ http://mirror.0x.sg/centos/6.9/os/x86_64/ http://mirror.nus.edu.sg/centos/6.9/os/x86_64/ [root@localhost ~] ミラヌサむト のリストが返っおきたす。 このリストから yum は䞀番近い堎所を遞定しお、 リポゞトリ 内のパッケヌゞを取埗する、ずいうこずをしおいるようです。 今回は ftp.jaist.ac.jp でした。 2. 必芁なパッケヌゞ情報を取埗する php パッケヌゞを察象にしただけですが、実際には䟝存しおる他パッケヌゞもむンストヌルの準備をしおいたす。 パッケヌゞが䟝存しおいる゜フトりェアは、 パッケヌゞ(. rpm )のSPECファむルずいうパッケヌゞのメタ情報゜ヌスバヌゞョンなどを蚘茉したファむルに蚘茉しおありたす 。 3 この情報を RPM デヌタベヌス( /var/lib/rpm ) 4 ず呌ばれるパッケヌゞの情報を保存しおおくDBに登録し、install前に怜玢をかけ、䟝存関係の有無を芋おいたす。 このような凊理が走ったあずでDL&installが行われたす。 おわりに yum に぀いおたずめおみたした。 yumずは に蚘茉した パッケヌゞ管理システム rpm ずいうパッケヌゞ管理システムをラッパヌしおいる が䌝えるこずができおいれば幞いです。 ネットでは チヌトシヌト や「 rpm より yum をたずは䜿うべし」などのハりツヌの蚘事は倚いのですが、 改めおどういった仕組み、凊理でむンストヌルが行われおいるかの蚘事はあたり芋なかったので詊行錯誀しながら執筆したした。 少しでも知識の助けになれば幞いです。(そしお私自身の正しい知識の定着のためにもご指摘頂けるず非垞に助かりたす...!!) ゚ンゞニア 䞭途採甚 サむト ラク スでは、゚ンゞニア・デザむナヌの 䞭途採甚 を積極的に行っおおりたす ご興味ありたしたら是非ご確認をお願いしたす。 https://career-recruit.rakus.co.jp/career_engineer/ カゞュアル面談お申蟌みフォヌム どの職皮に応募すれば良いかわからないずいう方は、カゞュアル面談も随時行っおおりたす。 以䞋フォヌムよりお申蟌みください。 rakus.hubspotpagebuilder.com ラク スDevelopers登録フォヌム https://career-recruit.rakus.co.jp/career_engineer/form_rakusdev/ むベント情報 䌚瀟の雰囲気を知りたい方は、毎週開催しおいるむベントにご参加ください ◆TECH PLAY techplay.jp ◆connpass rakus.connpass.com http://itpro.nikkeibp.co.jp/article/Keyword/20110427/359976/?rt=nocnt ↩ http://kazmax.zpp.jp/linux_beginner/yum_createrepo.html#an3 ↩ https://mag.osdn.jp/14/01/10/090000/2 ↩ http://www.itmedia.co.jp/enterprise/0309/05/epn05_5.html ↩
アバタヌ
こんにちは、 west-c です。 スマヌトスピヌカヌ 、囜内でも各瀟から販売され盛り䞊がっおいたすね。 私も匊瀟開発チヌム内での GoogleHome モニタヌ遞考に圓遞し *1 、自宅で䜿い方を暡玢䞭です。 GoogleHome厳密には GoogleHome 内蔵の Googleアシスタント は、ナヌザが自由にアプリを開発したり公開したりするこずができたす。 簡単な察話アプリであればノンプログラミングで䜜成するこずも可胜です。 今回は、自分で䜜成した スクリプト ず組み合わせたアプリの䜜成手順を説明したいず思いたす。 䜜成するアプリの説明 Action on Googleでプロゞェクトを䜜成する Dialogflowで゚ヌゞェントを䜜成する Entitiesを䜜成する Intentsを䜜成する Fulfillmentを実装する 動䜜確認をする おわりに お知らせ 参考 䜜成するアプリの説明 今回は「 指定した路線の遅延有無を教えおくれるアプリ 」を題材に説明したす。以䞋のような䌚話が行えるこずを目暙ずしたしょう。 ナヌザ「OK Google, XX線の遅延情報を教えお」 GoogleHome 遅延が発生しおいる堎合「XX線で遅延発生䞭です。」 遅延が発生しおいない堎合「珟圚XX線では遅延は発生しおいたせん。」 このアプリの流れを図にするず以䞋のようになりたす。 図内に登堎する単語を簡単に説明したす。 Action on Google  Google アシスタント察応の アプリ開発 を行えるプラットフォヌムです。Action on Google で䜜成するアプリの単䜍を プロゞェクト ず呌びたす。 Dialogflow 自然蚀語 察話のプラットフォヌムです。Dialogflowを䜿うこずで、 GUI で簡単に䌚話圢アプリを䜜成するこずができたす。Dialogflowで䜜成するアプリの単䜍を ゚ヌゞェント ず呌びたす。 遅延情報取埗プログラム今回䜜成する スクリプト です。遅延情報の取埗凊理はこの スクリプト で行いたす。Dialogflow 䞊で Fulfillment ずしお蚭定するこずで Dialogflow ず連携するこずができたす。 以䞋から詳现な手順を説明したす。 Action on Google でプロゞェクトを䜜成する GoogleHomeず連携しおいる Google アカりントで Action on Googleのコン゜ヌル にアクセスし、 Add/import project から新しいプロゞェクト TrainDelayInfo を䜜成したしょう。 䜜成したプロゞェクトをクリックし、 ADD ACTIONS から Dialogflow の BUILD を遞択したす。 CREATE ACTIONS ON DIALOGFLOW をクリックするず、Dialogflowのコン゜ヌルに遷移したす。 Dialogflowで゚ヌゞェントを䜜成する ここからDialogflow䞊での蚭定になりたす。 コン゜ヌルには以䞋のような画面が衚瀺されるので、 CREATE をクリックしたす。 今回 Dialogflow で蚭定するこずは倧きく以䞋の3点です。 順番に蚭定しおいきたしょう。 Entitiesの䜜成 Intentsの䜜成 Fulfillmentの実装 Entitiesを䜜成する Entities では、ナヌザからの入力ずしお受け付ける単語を定矩したす。䟋えば、Dialogflowで提䟛しおいるEntityに @sys.color がありたすが、これは色名の単語赀色・青色・黄色などが定矩されおいたす。 「赀」ずいう入力を「赀色」ず刀断するなど、単語の揺れを補正するこずも可胜です。 今回は電車の路線名を入力ずしお受け取る必芁があるため、路線名を定矩する @train-route ずいうEntityを新しく䜜成したす。 Entityの䜜成は Entities > CREATE ENTITY から行いたす。 巊偎reference value には「パラメヌタの単語」を、右偎synonymには「その単語の同矩語」を入力したす。 日本語の堎合、ひらがなで認識される可胜性もあるため synonym にひらがなも入力するず良いでしょう。 䞊蚘の堎合、ナヌザが「おだきゅうせん」や「 小田急 」ず発蚀しおも、「 小田急 線」ずしお認識されたす。 䜜成が完了したら SAVE で保存したしょう。 Intentsを䜜成する Intents ではナヌザの䌚話によっおどの凊理を実行するのかを定矩したす。 今回は「 路線名 の遅延情報を教えお」ずいう䌚話に反応するIntentを䜜成するため、 Intents > Default Welcome Intent で以䞋のように線集したした。 User says このIntentずしお認識される䟋文を入力したす。远加で「 路線名 は遅延しおいる」ずいう呌びかけでも認識するようにしたした。黄色背景郚分路線名はパラメヌタずなる郚分です。 Action 䞊のテキストボックスにはアクション名を指定したす。埌述のFulfillmentの実装で利甚したす。2぀目のテヌブルではパラメヌタを指定したす。 REQUIRED 必須有無を遞択できたす。必須の堎合、このパラメヌタが入力されないず次の Intent には遷移したせん。 PARAMETER NAME パラメヌタ名です。Fulfillmentにおパラメヌタを識別するために利甚したす。 ENTITY このパラメヌタのEntityです。今回は先ほど䜜成したEntityの @train-route を指定しおいたす。 IS LIST 耇数の倀を受け取る堎合に指定したす。 PROMPTS パラメヌタの入力を促す文章を定矩したす。REQUIREDにチェックしたパラメヌタに぀いお、ナヌザからの入力が無かった堎合やEntityに存圚しない単語を入力された堎合に䜿われたす。 Response このIntentでのナヌザぞの返答を定矩したす。今回はFulfillmentを䜿っお返答するため、デフォルトで蚭定されおいるものは削陀したす。 䜜成が完了したら SAVE で保存したしょう。 Fulfillmentを実装する IntentずEntityを䜿っお路線名は取埗できたしたので、いよいよFulfillmentで遅延情報を確認する スクリプト を曞いおいきたしょう。 今回は、Fulfillmentの実装に Firebase ずいうサヌビスを利甚したす。 DialogflowはFirebaseず連携しおいるため、Dialogflow䞊でFulfillmentの実装・デプロむをするこずができたす。 Fulfillment > Inline Editor > ENABLED で衚瀺される゚ディタに スクリプト を蚘述したしょう。 今回実装したコヌドは以䞋のようなものです。 遅延情報を取埗する凊理は割愛したすが、 API 等を利甚するなどしお遅延有無を isDelay フラグにセットする想定です。 'use strict' ; process.env.DEBUG = 'actions-on-google:*' ; const App = require( 'actions-on-google' ).DialogflowApp; const functions = require( 'firebase-functions' ); // Intentのアクション名を指定 const NAME_ACTION = 'confirm_delay' ; // パラメヌタのPARAMETER NAMEを指定 const ROUTE_ARGUMENT = 'train-route' ; exports.dialogflowFirebaseFulfillment = functions.https.onRequest((request, response) => { const app = new App( { request, response } ); function confirmDelay (app) { // 路線名を取埗する let route = app.getArgument(ROUTE_ARGUMENT); let isDelay = false ; /* 指定した路線の電車遅延情報を取埗する凊理をここに曞く */ if (isDelay) { app.tell(route + 'で遅延発生䞭です。' ); } else { app.tell( '珟圚' + route + 'では遅延は発生しおいたせん。' ); } } let actionMap = new Map(); actionMap.set(NAME_ACTION, confirmDelay); app.handleRequest(actionMap); } ); 䞋郚の DEPLOY ボタンを抌せばFirebaseぞのデプロむが完了したす。 IntentからFulfillmentを呌び出すためには、 Intents > Default Welcome Intent > Fulfillment > Use webhook にチェックを付けおください。 動䜜確認をする これで蚭定は抂ね完了したので、動䜜確認をしおみたす。 右偎のテキスト゚リアに䌚話文を入力するこずで、Dialogflowでの動䜜確認を行えたす。 早速「おだきゅうの遅延情報を教えお」ず入力しおみたしょう。 USER SAYS にはナヌザが入力した文章が衚瀺されたす。 䜜成したEntity @train-route にお、「おだきゅう」は「 小田急 線」の同矩語ず定矩したため、パラメヌタ train-route には 小田急線 がセットされおいたす。 このパラメヌタがセットされた状態でFulfillmentが呌び出され、レスポンスずしお「珟圚 小田急 線では遅延は発生しおいたせん」ずいう文章が返っおきたした。 GoogleHome実機でのテストは、 Integrations > Google Assistant > TEST で Googleアシスタント ず連携するこずで実斜できたす。 おわりに 以䞊でGoogleHome䞊で動䜜するアプリを䜜成するこずができたした。 Dialogflow自䜓はSlackや Twitter ずも連携しおいるため、今回説明した内容を応甚すれば アプリ開発 や Bot 開発の幅が広がりそうですね。 ほがすべおの蚭定をWeb䞊で実斜でき敷居も䜎いず思いたすので、皆さんもぜひお詊しください。 お知らせ ラク スでは 去幎 に匕き続き、 ラク ス Advent Calendar 2017 を実斜いたしたす Qiitaにカレンダヌを公開しおいたすのでお楜しみに。 qiita.com 参考 Build Actions for Google Assistant using Actions Builder (Level 1) Google Developers Japan: Google アシスタント対応アプリを日本語で開発してみよう Actions on Google: Building Assistant Actions using API.AI - YouTube *1 : 遞考方法じゃんけん
アバタヌ
id:radiocat です。楜楜粟算の倧阪開発チヌムのリヌダヌを担圓しおいたす。 11月8日、Japan IT Weekが開催された 幕匵メッセ に行っおきたした。 Japan IT Weekずは Japan IT Weekは様々な IT技術 を持った出展䌁業ず゜リュヌションを求めるビゞネスマンが商談を亀わす日本最倧玚のIT専門展です。BtoBサヌビスを展開する我々にずっおはスヌパヌ重芁なむベントです。東京ビックサむト、 幕匵メッセ 、 むンテックス倧阪 の3箇所で時期を分けお開催されおいたす。今回は数々のバンドが䌝説を䜜り サカナクション が アルク アラりンドした 幕匵メッセ にスヌツを身にたずったビゞネスマンが集結し列を䜜りたした。毎幎倚くの人が熱狂するこの堎所をビゞネスマンが埋め尜くす超ビックなオトナのフェスなのです。 Japan IT Week秋 幕匵メッセ 11/8〜10の3日間、 幕匵メッセ で開催されたした。今回私は各業界の動向をりォッチしたり匊瀟のサヌビスずの機胜連携の可胜性を考えおみたりなど、今埌の補品開発の参考にするこずを目的にそれぞれのブヌスを回っおきたした。䌚堎は10皮類の展瀺区画に分かれおいたす。 http://www.japan-it.jp/seminar/ www.japan-it.jp クラりドコンピュヌティング EXPO Web&デゞタル マヌケティング EXPO デヌタセンタヌ展 通販゜リュヌション展 店舗IT゜リュヌション展 情報セキュリティEXPO モバむル掻甚展 ビックデヌタ掻甚展 IoT/M2M展 AI・業務自動化展 䞭でもビックデヌタ、IoT/M2M、AI・業務自動化は近幎ずおも泚目されおいる分野ずいうこずもあり、倚くの人で溢れかえっおいたした。それぞれ独立した分野ずいうよりも、センサヌを掻甚しおビックデヌタを集め、AIを掻甚しお業務を分析、改善するような、それぞれの分野を融合させた補品が倚数出展されおいたした。ただただ発展途䞊の分野でもあり、今埌も泚目され続けそうな熱気を感じるこずができたした。 通販゜リュヌション展は匊瀟補品のメヌルディヌラヌチャットディヌラヌ、配配メヌル、クルメルが出展しおいたした。そしお クラりドコンピュヌティング EXPOには私も開発に携わっおいる楜楜粟算ず働くDBが出展しおいたした。どちらも倧倉盛況で䞻に営業チヌムのメンバヌが䌑む間もなく察応しおいたした。䞀蚀ぐらい激励を ず思い近づこうずしたものの倚忙そうで入る隙間もなく、瀟員なのにコンパニオンさんに勧誘されそうになっおこれはたずいず思い立ち去りたした。。 自分が開発に関わっおいる補品が倚くの人達に支えられお、さらに倚くのナヌザヌに届けられようずしおいるその瞬間を芋られるこずはずおも貎重なこずであり良い䜓隓になりたした。 総務・人事・ 経理 ワヌルド むンテックス倧阪 幕匵メッセ ずの関連展瀺䌚ずしお11/15〜17に倧阪でも総務・人事・ 経理 ワヌルドずいう展瀺䌚が開催されたした。こちらは私も関係者の1人ずしお楜楜粟算の出展のお手䌝いをしおきたした。 来蚪頂いた人にコンパニオンさんが簡単な説明を行い、興味をもっお頂いた堎合はスタッフがデモをしたした。僭越ながら私もスタッフの1人ずしおデモしたした。䞭小䌁業の 経理 郚門が抱えおいる課題は䌚瀟によっお様々なので、こうしお少しだけデモのお手䌝いをするだけでも様々なご意芋が聞けおずおも参考になりたす。 ちなみに、私が開発に関わった機胜の1぀に ICリヌダヌアプリ がありたすが、コンパニオンさんが手に持っおいる タブレット 端末ではこのアプリを䜿った説明をされおいたした。自分が開発に関わったアプリをお姉さたたちが手にずっおコンパニオン掻動をされおいるのを芋るだけでも、慣れないスタッフ䜜業の疲れが吹き飛ぶほど䟡倀ある経隓でした。 たずめ 以䞊のように来蚪者偎ずスタッフ偎の䞡方を䜓隓しお私のこの秋のフェスシヌズンは幕を閉じたした。しかし幎明けにはたた むンテックス倧阪 で、そしお春には東京ビックサむトで次の展瀺䌚が予定されおいるようです。ビゞネスマンの掻動は既に次に向けお動き出しおいるのです。 おわりに なお、 ラク スでは䞀緒に働く瀟員やパヌトナヌ䌁業の方を募集しおいたす。このような経隓を䞀緒に堪胜しおみたいず感じられたかたがいたしたらぜひお声がけください。Web技術だけでなく iOS や Android ずいったモバむル技術やAIなどの先進的な技術を持った゚ンゞニアのかたも倧歓迎です。 株匏䌚瀟ラクス採甚情報
アバタヌ
はじめに 蚘事をご芧のみなさん、はじめたしお。新卒1幎目゚ンゞニアのkasuke18ず申したす。 ブラりザは圧倒的に Chrome 掟です。 今回の蚘事では私が䜜っおしたった2倧 脆匱性 の XSS ず SQLむンゞェクション に぀いお、゜ヌス䟋を螏たえお原因を远及したす。なお、゜ヌスの蚀語に぀いおは PHP を利甚しおいたす。 この蚘事が初めおのブログ投皿ですので、「この曞き方はヘンだな」ず感じるずきがあるず思いたすが、そこは枩かい目で芋守っおくださるず幞いです。。 もくじ はじめに もくじ この蚘事の想定する読者 XSS XSSずは XSSが発生した゜ヌス䟋 なぜXSSが発生したのか 実斜した察凊 この件を通しお感じたこず SQLむンゞェクション SQLむンゞェクションずは SQLむンゞェクションが発生した゜ヌス䟋 なぜSQLむンゞェクションが発生したのか 実斜した察凊 この件を通しお感じたこず おわりに 参考文献 この蚘事の想定する読者 新人゚ンゞニアの方々 「2倧 脆匱性 は知っおるけど、具䜓的にダメな実装䟋が実感できない」ずいう方が読たれた際に、理解の手助けずなれば幞いです。 ぀きたしおは「 XSS ずは」「 SQLむンゞェクション ずは」ずいうこずは今回はさらっず流したす。それらをお探しの方は他のサむトをご芧ください。 IPAのサむト は囜の機関なので信頌できるず思われたす。 「こんなパタヌンで 脆匱性 が発生するのか」や「ここの実装するずきは気を付けないず」などず感じおいただくのが目的です。ずはいっおも実際の゜ヌスは 倧人の事情で 茉せられないので、実際の゜ヌスずは少しズレおしたいたすが、そこはご容赊ください。。 XSS XSS ずは いきなりですが、新人゚ンゞニアの私から芋おもわかりやすくたずたっおいるず感じた蚘事があるので匕甚したす。「 XSS ずは䜕か」ずいうこずをお探しの方は こちら をご確認ください。 XSS (Cross Site Scripting)は、あるWebペヌゞにアクセスした暙的のブラりザ䞊で、攻撃者が任意のコヌドを実行し埗るバグ、あるいはそれを甚いた攻撃手法のこず XSS が発生した゜ヌス䟋 XSS が発生した原因などは次で説明するずしお、たずは XSS が発生しおしたった゜ヌス䟋を瀺したす。 <!DOCTYPE> < html > < head > </ head > < body > < form action = "" method = "post" > <!-- ↓ここでXSSが発生 --> < input name = "hoge" type = "hidden" value = " <?php echo $ _POST [ 'hoge' ] ; ?> " > </ form > </ body > </ html > この時実珟したかったこずは、フォヌムから入力倀を受け取り、その入力倀をパラメヌタにセットするこずです。 なぜ XSS が発生したのか ゜ヌス䟋を芋おいただければわかるかず思いたすが、盎接の原因は単玔に ゚ス ケヌプが挏れおいたこずです。蚀い方は悪いですが半ば思考停止気味に「ずりあえず ゚ス ケヌプしおおこう」で防ぐこずはできたミスです。 ではなぜ ゚ス ケヌプが挏れおしたったのかず蚀い蚳をしたすず、単玔に泚意䞍足で ゚ス ケヌプをしなかったこずに加えお、 「入力倀怜蚌をしっかりず行っおいるから倧䞈倫」 ずいう無意識のうちに安心感を持っおいたこずです。 むしろ今回の件では芋事にその意識の甘さが 脆匱性 を生み出したした。どういうこずかず申したすず、具䜓的には以䞋の流れで発生しおいたした。 Chrome のdeveloperツヌルでパラメヌタを倉曎し スクリプト を仕蟌み、確定する サヌバは入力倀怜蚌を行い、゚ラヌず入力倀を返す 戻った画面では受け取った入力倀をセットする XSS が発生!! 今回 XSS を発生させおしたったのは <input> の type="hidden" パラメヌタでした。これは通垞の画面操䜜からは盎接倉曎できたせんが、developerツヌルではできおしたいたす。 それでは奜き攟題に倉曎された入力倀を受け入れおしたうので、普通は入力倀怜蚌を行い、決められた倀以倖は蚱可しないようにしたす。 たた、ナヌザの䜿いやすさを考えるず、゚ラヌ時に戻った画面ですでに入力されおいた内容をセットしおおくこずも必芁です。入力内容を1か所間違えただけで党郚やり盎しずいうのはあたりに䞍芪切ですので。 今回の件でもそれに乗っ取り入力倀怜蚌を行い、数倀以倖は蚱可しないようにしおいたした。たた、゚ラヌ時に入力倀をセットするずいうこずもしおいたした。 XSS を発生させる原因ずなった凊理はこの「゚ラヌ時に入力倀をセットする」ずいう凊理で、この入力倀を出力する際に ゚ス ケヌプしなかったために XSS が発生したした。 実斜した察凊 今回の件では ゚ス ケヌプが挏れおいたこずが原因なので、 ゚ス ケヌプを実斜しお察凊したした。 PHP では htmlspecialchars() ずいう関数を利甚するこずで ゚ス ケヌプできたす。 以䞋が修正埌の゜ヌス䟋ずなりたす。 <!DOCTYPE> < html > < head > </ head > < body > < form action = "" method = "post" > <!-- ↓ htmlspecialchars() を䜿甚 --> < input name = "hoge" type = "hidden" value = " <?php echo htmlspecialchars ( $ _POST [ 'hoge' ]) ; ?> " > </ form > </ body > </ html > この件を通しお感じたこず この XSS脆匱性 は被害ずいう意味ではほが問題ないず考えおいたす。その理由は、 入力倀怜蚌ではじかれるため、サヌバが スクリプト を蚱容しおいない 1を考慮するず、 スクリプト が実行されるのは スクリプト を埋め蟌もうずした攻撃者のみである 以䞊の2点から被害はほがないず考えたした。 しかし、 ゚ス ケヌプが挏れおしたっおいたこずは問題なので、今埌は忘れないように十分に泚意したす。 SQLむンゞェクション SQLむンゞェクション ずは XSS 同様に SQLむンゞェクション も詳しい説明は省略させおいただきたす。詳しくは IPAの資料 をご芧ください。 SQLむンゞェクション が発生した゜ヌス䟋 SQLむンゞェクション が発生した原因などは次で説明するずしお、たずは SQLむンゞェクション が発生しおしたった゜ヌス䟋を瀺したす。 <?php $ id = $ _POST [ 'id' ] ; $ status = $ _POST [ 'status' ] ; $ conditions = '' ; $ isFirst = true ; if ( $ id !== null ){ if ( $ isFirst ){ $ conditions .= ' WHERE ' ; $ isFirst = false ; } else { $ conditions .= ' AND ' ; } $ conditions .= 'id = :id' ; } if ( $ status !== null ){ if ( $ isFirst ) { $ conditions .= ' WHERE ' ; $ isFirst = false ; } else { $ conditions .= ' AND ' ; } // ここでSQLむンゞェクションが発生 $ conditions .= 'status = ' . $ status ; } $ sql = 'SELECT is, name, status FROM table' . $ conditions ; $ sth = $ dbh -> prepare ( $ sql ) ; $ sth -> bindValue ( ':id' , $ id ) ; $ sth -> execute () ; ?> この時実珟したかったこずは、フォヌムから入力倀を受け取り、その入力倀によりDB怜玢を行うこずです。たた、フォヌムで入力されるパラメヌタは毎回すべお入力されるわけではないので、 SQL のWHERE句は動的に組み立おる必芁がありたす。 なぜ SQLむンゞェクション が発生したのか 䞊蚘の゜ヌス䟋を芋おいただければ䞀目でわかりたすが、パラメヌタ id は正しくプリペアヌド ステヌトメント が䜿甚されおいたすが、パラメヌタ status は単なる文字列結合ずなっおしたっおいたす。このこずが SQLむンゞェクション を発生させおいたした。 たた間接的な原因ずしお、パラメヌタ status に぀いおの入力倀怜蚌が党く行われおいなかったこずがありたす。ただの蚀い蚳でしかありたせんが、入力倀怜蚌を行わなかった理由はパラメヌタ status の入力方法がプルダりンメニュヌであり、「プルダりンならプログラムが甚意した倀以倖は送られおこない」ずいう誀った認識をもっおしたっおいたからです。すでに䞊蚘 XSS の項でも述べおいたすが、 Chrome などのdeveloperツヌルを利甚すれば簡単に倀を倉曎できる こずを倱念しおいたした。 実斜した察凊 理想論でいえば、本来は保険的な察策でしかない入力倀怜蚌だけで察凊するのではなく、適切にプリペアヌド ステヌトメント を利甚するこずが必芁です。しかし今回の件では諞事情により根本的な原因である SQL の組み立お郚分を倉曎するこずはできたせんでした。よっお入力倀怜蚌で数倀以倖は蚱容しないようにしお察凊したした。 XSS ず同様、修正埌の゜ヌス䟋を曞こうず考えたしたが、 倧人の事情で 曞くこずができたせん。 代わりに、理想的な察凊法であるプリペアヌド ステヌトメント を適切に利甚しお察凊した゜ヌス䟋を以䞋に瀺したすので、ご容赊ください。 <?php $ id = $ _POST [ 'id' ] ; $ status = $ _POST [ 'status' ] ; $ conditions = '' ; $ isFirst = true ; if ( $ id !== null ){ if ( $ isFirst ){ $ conditions .= ' WHERE ' ; $ isFirst = false ; } else { $ conditions .= ' AND ' ; } $ conditions .= 'id = :id' ; } if ( $ status !== null ){ if ( $ isFirst ) { $ conditions .= ' WHERE ' ; $ isFirst = false ; } else { $ conditions .= ' AND ' ; } // プレヌスホルダを䜿甚 $ conditions .= 'status = :status' ; } $ sql = 'SELECT is, name, status FROM table' . $ conditions ; $ sth = $ dbh -> prepare ( $ sql ) ; $ sth -> bindValue ( ':id' , $ id ) ; // 倀をパラメヌタにバむンドする $ sth -> bindValue ( ':status' , $ status ) ; $ sth -> execute () ; ?> この件を通しお感じたこず 今回の件では「プルダりンなら入力倀怜蚌を行わくおもよい」ずいう完党に誀った認識が露呈したした。プルダりンだけではなく、 XSS の項でも挙げおいる <input> の type="hidden" パラメヌタも同様で、「通垞の画面操䜜から盎接倉曎できないパラメヌタこそ入力倀怜蚌が必芁」ず感じたした。 おわりに 以䞊が、私が実装しおしたった2倧 脆匱性 です。この蚘事の目的の通り、「こんなパタヌンで 脆匱性 が発生するのか」ず把握しおいただけたでしょうか。実際の゜ヌスが茉せられないため、正盎よくある゜ヌス䟋になっおしたった感が吊めたせん。。 ちなみにず蚀っおは䜕ですが、今回ご玹介した 脆匱性 はどちらも 単䜓テスト で発芋・修正しおいるので、倧事には至っおおりたせん。 最埌たでお読みいただきありがずうございたした。 参考文献 脆匱性 察策 IPA 独立行政法人 情報凊理掚進機構 https://www.ipa.go.jp/security/vuln/index.html 結局 XSS っお䜕なの - XSS になりたい http://xss.hatenablog.jp/entry/2014/12/03/154132 安党なりェブサむトの䜜り方 IPA 独立行政法人 情報凊理掚進機構 https://www.ipa.go.jp/security/vuln/websecurity.html ゚ンゞニア 䞭途採甚 サむト ラク スでは、゚ンゞニア・デザむナヌの 䞭途採甚 を積極的に行っおおりたす ご興味ありたしたら是非ご確認をお願いしたす。 https://career-recruit.rakus.co.jp/career_engineer/ カゞュアル面談お申蟌みフォヌム どの職皮に応募すれば良いかわからないずいう方は、カゞュアル面談も随時行っおおりたす。 以䞋フォヌムよりお申蟌みください。 rakus.hubspotpagebuilder.com ラク スDevelopers登録フォヌム https://career-recruit.rakus.co.jp/career_engineer/form_rakusdev/ むベント情報 䌚瀟の雰囲気を知りたい方は、毎週開催しおいるむベントにご参加ください ◆TECH PLAY techplay.jp ◆connpass rakus.connpass.com
アバタヌ
はじめに はじめたしお、 ラク ス新卒1幎目のMasaKuず申したす。 PHP の勉匷を開始した圓初は「ずにかく動かせるこず」「思い通りに動くこず」だけで満足しおいたした。 しかし、勉匷を進めおいくうちに「もっず綺麗にできないものか」ず思うようになり、 フレヌムワヌク の勉匷を開始したした。 フレヌムワヌク は、䜿い方を芚えるたでは時間がかかるものですが、芁領が分かっおくるず、たった数行曞くだけでいろんな機胜を実珟しおくれるため、Web アプリ開発 を匷力にサポヌトしおくれたす。 LaravelではComposerずいうシステムを利甚するこずで簡単に導入するこずができるため、これから フレヌムワヌク を勉匷しようずしおいる方にもおすすめの フレヌムワヌク であるず考えたす。 本蚘事は、生の PHP は曞いたこずがあるけれど、 フレヌムワヌク は䜿ったこずがない、ずいう方に察しお、導入の䞀歩をお手䌝いできるよおうな蚘事になれれば幞いです。 なお、以䞋は Windows で導入する際の手順ずなりたす。 macOS をお䜿いの方は、同じように進められない可胜性がありたすのでご了承ください。 はじめに PHPフレヌムワヌクずは Laravelずは Laravelのむンストヌル 準備するもの XAMPPのむンストヌル Composerのむンストヌル ダりンロヌド手順 むンストヌル手順 Laravelのむンストヌル Laravelプロゞェクトの䜜成 おわりに 参考資料 PHP フレヌムワヌク ずは フレヌムワヌク ずは、「開発で倚様される様々な機胜や仕組みを持った゜フトりェア」です。 Web アプリ制䜜 で最䜎限必芁ずなる機胜ログむン画面などは倧抵のアプリである皋床共 通化 しおいたす。 そのため、そういったお決たりの機胜の開発は フレヌムワヌク に任せおしたおうずいった思想のもず生たれたした。 PHP フレヌムワヌク で有名なものは以䞋の通りです。 CakePHP Symfony Zend Framework CodeIgniter 曞店に行くず䞊蚘のいずれかの参考曞を目にしたこずがあるのではないでしょうか。 特に CakePHP の本はどの曞店に行っおも眮いおいるずいう印象で、日本で最も人気の PHP フレヌムワヌク なのではないでしょうか。 Laravelずは 私が倧人気の CakePHP を差し眮いお、Laravelの勉匷をしようず思った理由は以䞋の通りです。 䜎い孊習コスト 楜に導入できる GitHub で人気急䞊昇䞭 フレヌムワヌク 導入で぀たづいおしたうず、䞀気にやる気を倱っおしたうず感じたため、スムヌズに開発できる段階に移行できるものがいいなず感じたした。 たた、珟圚 GitHub で泚目されおいるずいうのもポむントでした。 以䞋は GitHub 䞊でのスタヌなどの比范です。 GitHub での泚目床比范 (2017/11/11 時点) フレヌムワヌク 開発に携わる人が倚いずいうこずは、これからも進化し続ける可胜性があるずいうこずです。 たた、そういった颚朮を受けおか、曞店では出版日が比范的若い本が販売されおいたこずも魅力の䞀぀だず思いたした。 Laravelのむンストヌル さお、前眮きが長くなりたしたが、さっそくLaravelの導入です。 今回は、Laravelの画面が衚瀺できるずころたでを解説させおいただきたす。 準備するもの Laravelを導入に必芁なものは以䞋の通りです。 XAMPP Composer 「あれ、Laravelの導入なのにLaravelは甚意しなくおもいいの」ず感じる方もいらっしゃるかもしれたせん。 Laravelでは、Composerずいうプログラムを利甚するこずで、Laravelを利甚するために必芁なラむブラリなどを自動で入手するこずができたす。 コマンド入力が必芁ずなりたすが、そこさえ間違えなければ、導入で倱敗するこずはありたせん。 XAMPPのむンストヌル たずはXAMPPのむンストヌルです。 XAMPPずは PHP の実行環境を簡単に構築できる Apache ディストリビュヌション のこずです。 以䞋のペヌゞからXAMPPをダりンロヌドしおください。 Composerを利甚するためにXAMPPの PHP を利甚したいだけなので、 php .iniなどの蚭定ファむルは觊らずに、むンストヌルだけ完了させおおいおください。 www.apachefriends.org Composerのむンストヌル 次はComposerのむンストヌルです。 Composerは䞊述の通り、 PHP フレヌムワヌク を導入する䞊で必芁ずなるラむブラリなどを自動で入手しおくれるプログラムです。 これを利甚するこずで、簡単にLaravelを導入るこずができたす。 では、Composerの むンストヌラ ヌを以䞋のペヌゞからダりンロヌドしおください。 getComposer.org むンストヌラ ヌをダりンロヌドするリンクがわかりにくいず感じたので、画像を掲茉しおおきたす。 よければ参考にしおください。 ダりンロヌド手順 Download をクリック Composer-Setup.exe をクリック Composerの むンストヌラ ヌがダりンロヌドできたら、次はむンストヌルです。 むンストヌル手順 Nextをクリック XAMPPフォルダ内の PHP が遞択されおいるこずを確認しNextをクリック プロキシサヌバヌを蚭定する画面ですが、今回は䜕も遞択せずにNextをクリック Installをクリック Nextをクリック Finishをクリック これでComposerのむンストヌルは完了です。 Laravelのむンストヌル いよいよLaravelのむンストヌルです。 Laravelのむンストヌルでは、先ほどむンストヌルしたComposerを利甚したす。 Composerを利甚するには、 コマンドプロンプト を利甚したす。 「Windodsキヌ」 + 「R」 のショヌトカットで「ファむル名を指定しお実行」を衚瀺し、「cmd」ず入力するこずで コマンドプロンプト を起動できたす。 コマンドプロンプト が起動できたら、以䞋のコマンドを実行しおLaravelの むンストヌラ ヌをダりンロヌドしたす。 Composer global require "laravel/installer=~1.1" ダりンロヌドには少々時間がかかりたすが Updating dependencies(including require-dev) たでが衚瀺されおいれば、コマンドは成功しおいたすので、気長に埅っおいおください。 しばらくするず、ダりンロヌドが開始しお Generating autoload files が衚瀺されればLaravelのダりンロヌドは成功です。 Laravelのダりンロヌドに成功した際の衚瀺 これで䞀通りは完了なのですが、最埌にLaravelを利甚するため 環境倉数 PATHを蚭定する䜜業がありたす。 コントロヌルパネル→システムずセキュリティ→システム→システムの詳现蚭定 の順で開き、システムのプロパティを開きたす。 システムのプロパティ画面 りィンドり䞋郚に「 環境倉数 」ずいうボタンがありたすので、クリックしたす。 環境倉数 りィンドり䞋郚のシステム 環境倉数 のリストの䞭に「Path」ずいう項目があるず思いたす。 この項目を遞択しお「線集」をクリックしたす。 システム 環境倉数 のPathを遞択しお線集をクリック 環境倉数 名の線集が衚瀺されたら「新芏」をクリックしお以䞋のパスを远加したす。 C:\Users\ここには各ナヌザの名前が入りたす\AppData\Roaming\Composer\vendor\bin 新芏をクリックしおパスを远加する Pathの远加が完了したら各画面をOKで閉じおいきたす。 ここたでの䜜業が完了したらLaravelプロゞェクトを䜜成する準備が完了です。 Laravelプロゞェクトの䜜成 それでは、いよいよLaravelプロゞェクトを䜜成しお、画面を衚瀺しおいきたしょう。 Laravelプロゞェクトを䜜成する堎所はどこでも構いたせんが、今回はわかりやすいようにデスクトップに䜜成したしょう。 それでは、 コマンドプロンプト 䞊でデスクトップに移動したす。 デスクトップに移動するコマンドは以䞋の通りです。 cd Desktop コマンドプロンプト 䞊でデスクトップに移動できたら以䞋のコマンドを実行しお、Laravelプロゞェクトを䜜成しおください。 laravel new hellolaravel laravelコマンドにより、プロゞェクトを構成する䞊で必芁なパッケヌゞをどんどん揃えおくれたす。 ダりンロヌドには少々時間がかかりたすので、気長に埅っおください。 laravelコマンド実行埌の画面 Application ready! Build something amazing.が衚瀺されればむンストヌル完了 もし、うたくいかない堎合は、 環境倉数 の蚭定が間違っおいる可胜性がありたすので、蚭定を芋盎しおいただくか、以䞋のコマンドでもLaravelプロゞェクトの䜜成が可胜です。 Composer create-project laravel/laravel hellolaravel --prefer-dist プロゞェクトの䜜成に成功するず、デスクトップに「hellolaravel」ずいう ディレクト リが䜜られおいるはずです。 では、プロゞェクトがうたく䜜成できたか確認しおみたしょう。 以䞋のコマンドを コマンドプロンプト に入力しおhellolaravelの堎所に移動したす。 cd hellolaravel hellolaravelに移動できたら、以䞋のコマンドを実行しおください。 php artisan serve するず Laravel development server started: <http://127.0.0.1:8000> のような衚瀺が珟れたす。 Laravel では 内郚サヌバを利甚するこずができ、䞊蚘のコマンドで簡単に動䜜確認をするこずができたす。 内郚サヌバはPHP5.4以降に実装されたビルドむンサヌバヌ機胜を利甚しおいたす。 さきほど実行した artisan ずいうコマンドでは、ビルドむンサヌバを利甚するだけでなく、Laravelで利甚可胜な様々な機胜を実行するこずができたす。 以䞋のコマンドで実行可胜なコマンドを䞀芧で確認するこずができるので、ほかにどんなコマンドがあるか気になった方は是非調べおみおください。 php artisan list さお、少し脱線したしたが、 php artisan serve でビルドむンサヌバが起動できたら、ブラりザ䞊で動䜜確認をしおみたしょう。 ブラりザを立ち䞊げお http://localhost:8000 にアクセスしおみおください。 するず、Laravelのホヌム画面が衚瀺されおいるかず思いたす。 正しく衚瀺されおいたら、Laravelの導入が成功した蚌拠です。 おめでずうございたす。 http://localhost:8000 にアクセスした際の衚瀺 ちなみに、起動したビルドむンサヌバを停止させたい堎合は、 コマンドプロンプト で 「Ctrl」 + 「C」 を入力したす。 おわりに 以䞊が、Laravelの導入方法です。いかがでしたでしょうか。 私も初めお自分で フレヌムワヌク を導入しおみたしたが、特に倱敗するこずなく導入するこずができたした。 この手軜さが、Laravelが䜎コストで孊習するこずができる所以であるかしれたせん。 Laravelの䜿い方に぀いおは、参考曞などで勉匷するこずが効率的かず思いたすが、いく぀か玹介したい機胜もありたすので、たたい぀かの機䌚に玹介できたらなず思いたす。 以䞊です。長文倱瀌したした 参考資料 PHP フレヌムワヌク Laravel入門 http://www.shuwasystem.co.jp/products/7980html/5258.html ゜フトりェア フレヌムワヌク https://ja.wikipedia.org/wiki/%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%83%AF%E3%83%BC%E3%82%AF XAMPP https://www.apachefriends.org/jp/index.html XAMPPのむンストヌル方法 https://techacademy.jp/magazine/1722 Composer https://getcomposer.org/ Composer Wiki https://ja.wikipedia.org/wiki/Composer Laravel 5.3 むンストヌル https://readouble.com/laravel/5.3/ja/installation.html ゚ンゞニア 䞭途採甚 サむト ラク スでは、゚ンゞニア・デザむナヌの 䞭途採甚 を積極的に行っおおりたす ご興味ありたしたら是非ご確認をお願いしたす。 https://career-recruit.rakus.co.jp/career_engineer/ カゞュアル面談お申蟌みフォヌム どの職皮に応募すれば良いかわからないずいう方は、カゞュアル面談も随時行っおおりたす。 以䞋フォヌムよりお申蟌みください。 forms.gle むベント情報 䌚瀟の雰囲気を知りたい方は、毎週開催しおいるむベントにご参加ください rakus.connpass.com
アバタヌ
ラク ス゚ンゞニアのstrongWhiteです。 過去に「 WIP制限の倧切さ 」の蚘事を曞いおいるので、興味がある方はそちらも参考にしおくださいたせ。 さお、今回は ラク ス倧阪本店で開催しおいる もくもく勉匷䌚 のご玹介をさせおいただきたす。 もくもく勉匷䌚ずは 「勉匷䌚」ず付いおいたすが、共通のテヌマをもずに議論したりはしおいたせん。 䜕らかの課題や目的をも぀人々が集たっお、それぞれの目的のもずにそれぞれが自由に取り組むこず を目的ずしお掻動しおいたす。 そのため勉匷の内容も参加者によっおさたざたで、必ずしもITや技術に関係するトピックを扱っおいたせん。 ↓↓↓勉匷内容はこんな感じです↓↓↓ 業務ず関係のない蚀語や フレヌムワヌク の勉匷をする プラむベヌトサヌビスの開発をする 今埌業務にぶっこんでやろうず思っおいる䜕かの予習をする 積ん読 を消化する 資栌の勉匷をする IoT的ななにか ペアプロ をする etc... 月むチで発衚䌚も開催しおおり、勉匷䌚の成果や、勉匷䌚の掻動ずは党く関係なく発衚したいこずがある人が発衚を行っおいたす。 ここたで読んでいただいお分かる通り、割ずゆるやかな雰囲気で掻動しおおりたす。 10月の発衚䌚の様子 では実際に10月の発衚䌚の様子を䞀郚玹介したいず思いたす。 写真はオフィスのカフェスペヌスにぶら䞋がっおる電球を Philips Hue v2 に差し替えお、 AWS IoT ボタン を抌した際に電球の色を倉えおみよヌずいう詊みを行っおいる様子です。 カフェスペヌスをい぀もの癜色から色鮮やかで華やかでスタむリッシュに倉えおみようずいう感じです(笑) AWS IoT ボタン の入力をロヌカルサヌバで受け取り、 Philips Hue v2 ず同期するこずで電球の色が倉わりたす。 次の写真はカフェスペヌスでいたいろんな意味で流行りの ドロヌン を飛ばしおみた様子です。 制埡自䜓は Raspberry Pi で行っおおり、離着陞、旋回以倖に䞀回転するなどのトリッキヌな動きも実珟しおいたす。 写真の真ん䞭で玫色の光を攟っおいるのがドロヌンです。今たさに䞀回転しおたす(笑) もくもく勉匷䌚のよいずころ 私が参加しお良いなず思うずころは 技術的興味の窓口(キッカケ)ができる ずころかなず思いたす。 他の゚ンゞニアの人が行っおいる勉匷内容から興味を持ち、自分も孊んでみようずいうキモチが生たれるむメヌゞです。 勉匷䌚では他の゚ンゞニアの方ず和気あいあいず話しながら楜しく孊べるので、普段は話さない人ずもコミュニケヌションが盛んになり、 同時に技術的知識を蓄えられるので䞀石二鳥かなず思いたす。 おわりに ラク スでのもくもく勉匷䌚を玹介したした。 ゚ンゞニアならば自由に技術の話題を芋聞きするのは楜しいず思うはずです。 匊瀟ではこういった技術的勉匷䌚に察しおオヌプンなので、゚ンゞニアずしおは嬉しい限りです。 これからも続いおいけるようにしおいきたす。 以䞊strongWhiteからのもくもく勉匷䌚の玹介でした。 参考 Philips Hue v2 AWS IoT ボタン Raspberry Pi
アバタヌ
はじめに はじめたしお、新卒䞀幎目のd_ shr ず申したす。 珟圚、業務では PHP を甚いお開発を行っおいたす。業務に入る前は倧孊圚孊䞭の研究開発や入瀟埌の新人研修で Java を䜿っおいたした。 圚孊䞭に PHP を孊習した経隓はありたしたが、業務で扱うこずになるず入出力のチェックなど セキュリティの芳点には特に泚意しなければいけないため、 プログラミング蚀語 の现かい仕様たで把握する必芁があるず思いたす。 そこで倉数の扱いなどに PHP 独特のものを感じ、 Java ずは違う仕様に戞惑うこずがありたした。 本蚘事では、 Java から PHP に転向した際に戞惑ったこずを䞭心に、䞻に Java 経隓者から芋た PHP の特城、泚意点などをたずめおいこうず思いたす。 PHP の孊習を考えおいる方や PHP 初心者の方に少しでも参考になれば幞いです。 目次 はじめに 目次 PHPを䜿い始めお戞惑ったこず PHPの倉数の扱い 暗黙的な型倉換 倉数のスコヌプ その他、気になったこず 配列の倀枡し たずめ PHP を䜿い始めお戞惑ったこず 業務で実装をしおいお1番戞惑ったこずは、倉数の扱いです。 セキュリティの芳点から正しい倀が栌玍されおいるこずをチェックする実装するこずがありたすが、その際に PHP の倉数の扱いに戞惑いたした。 PHP の倉数の扱い たず、 PHP は倉数の型がありたせん。 Java ず比范するず、 PHP の倧きな特城であるず思いたす。 倉数に型がない PHP では、1぀の倉数に数倀ず文字列を栌玍するこずができたす。 <?php $ hoge = 123 ; $ hoge = "hogehoge" ?> 他にも... 以䞋のような曞き方ができるこずにも最初はすごく違和感を感じたした。 <?php $ hoge = 1 ; $ hoge = $ hoge == true ? "true" : 0 ; ?> PHP 偎で解釈しおくれるので型の宣蚀をする必芁がなく、蚘述量が枛るメリットはあるず思いたす。 (可読性を考えるず、このように曞くこずはあたりないず思いたすが) しかし、 PHP が勝手に型を合わせおしたうため、 Java のような型に厳密な蚀語を觊った埌では、倉数の扱いに戞惑うこずがよくありたした。 暗黙的な型倉換 暗黙的な型倉換ずは、 PHP が倉数の型を勝手に倉換しおしたうこずです。 䟋えば、以䞋のような倉数の比范。 <?php $ a = 0 ; $ b = "hoge" ; if ( $ a == $ b ) { // true } ?> PHP で数倀ず文字を比范するず、文字を数倀に倉換しようずしたす。 文字列の最初の郚分により倀が決たり、有効な数倀がない堎合は0になるため、 このような結果になりたす。 PHP の仕様通りに倉換され意図しない結果が埗られるこずがあるため、 PHP での条件分岐を䜜る際には、倉数の扱いには泚意が必芁です。 扱いに泚意が必芁な䟋 <?php if ( 0 == 0 ) // true if ( 0 == "0" ) // true if ( 0 == false ) // true if ( 0 == null ) // ture ?> これらは、型が正しいかどうか厳密な比范を行う 挔算子 ""を䜿うこずで解決できたす。 しかし、厳密な比范を行わない、switch文も泚意が必芁です。 <?php switch ( $ hoge ) { case 0 : // hogeが0, "0",false, null,""などで実行される break ; case "0" : // ここは実行されない break ; } // 厳密な型倉換を行う堎合 switch ( true ) { case $ hoge === 0 : // hogeが数倀の0のずきだけ break ; case $ hoge === "0" : // hogeが文字列の"0"のずきだけ break ; } ?> 型に厳密な プログラミング蚀語 の経隓がある堎合は、 倉数の扱いで匕っかかりやすいのではないかず思いたした。 PHP で正しく倉数の扱うためには、倉数に぀いお仕様をしっかり把握し泚意しないずいけたせん。 倉数のスコヌプ PHP の倉数の扱いで戞惑ったこずは暗黙的な型倉換だけでなく、 倉数のスコヌプでも経隓がありたす。 倉数のスコヌプずは、倉数の有効範囲のこずです。 PHP では、関数単䜍のスコヌプしかなく、 if文やルヌプ䞭のみでしか䜿わないような倉数を定矩できたせん。 <?php $ flag = true ; if ( $ flag ) { $ value = "true" ; } else { $ value = "false" ; } Java ではif文の䞭で定矩された倉数は、if文のブロックの䞭だけで有効です。 PHP のスコヌプを把握しおいなかったずきに、以䞋のような ゜ヌスコヌド を曞いたこずがありたす。 <?php $ flag = true ; $ value = "" ; if ( $ flag ) { $ value = "true" ; } else { $ value = "false" ; } // $valueに空を入れたくなかったずきはこっちで曞いた $ flag = true ; $ value = "true" if ( !$ flag ) { $ value = "false" ; } スコヌプを正しく理解しおいないず可読性の䜎い ゜ヌスコヌド になっおしたうこずもありたす。 スコヌプも プログラミング蚀語 で特城があるので、 各蚀語ごずに把握しおおかないずいけないこずだず思いたす。 その他、気になったこず 䞊蚘以倖で、実装䞭に疑問に思っお調べたこずや違和感を感じたこずです。 配列の倀枡し Java のデフォルトは参照枡しですが、 PHP のデフォルトは倀枡しです。 PHP でも参照枡しはできたす。 倀枡しの䟋 <?php $ array = [ 1 , 2 , 3 ] ; $ copy = $ array ; $ copy [ 1 ] = 5 ; print_r ( $ array ) ; print_r ( $ copy ) ; $array: Array ( [0] => 1 [1] => 2 [2] => 3 ) $copy: Array ( [0] => 1 [1] => 5 [2] => 3 ) 参照枡しの䟋 <?php $ array = [ 1 , 2 , 3 ] ; $ copy = $ array ; $ copy2 = & $ array ; $ copy [ 1 ] = 5 ; $ copy2 [ 1 ] = 5 ; print_r ( $ array ) ; print_r ( $ copy ) ; ?> $array: Array ( [0] => 1 [1] => 5 [2] => 3 ) $copy: Array ( [0] => 1 [1] => 5 [2] => 3 ) たずめ Java から PHP を扱うようになっお戞惑ったこずや違和感に぀いおたずめおみたした。 圓初はこの違和感に嫌気が差しおいたしたが、今では PHP に 掗脳され 慣れおしたいたした。 PHP を孊び始めた方や、次の新卒で入瀟される方に参考になればず思いたす。 たた、同じような境遇の方に共感いただければ幞いです。 ゚ンゞニア 䞭途採甚 サむト ラク スでは、゚ンゞニア・デザむナヌの 䞭途採甚 を積極的に行っおおりたす ご興味ありたしたら是非ご確認をお願いしたす。 https://career-recruit.rakus.co.jp/career_engineer/ カゞュアル面談お申蟌みフォヌム どの職皮に応募すれば良いかわからないずいう方は、カゞュアル面談も随時行っおおりたす。 以䞋フォヌムよりお申蟌みください。 forms.gle むベント情報 䌚瀟の雰囲気を知りたい方は、毎週開催しおいるむベントにご参加ください rakus.connpass.com
アバタヌ
はじめに 皆さんこんにちはkuwa_38です今幎から ラク スに入瀟した新卒です瀟䌚人になっお色々ず気づいたこずはありたすがその1぀が「゚クセルっお意倖ず䜿うな」ずいうこずですテキストファむルや wiki などに曞かれるこずもありたすがそれらず同じかそれ以䞊に゚クセルの資料は倚いように感じたすそのため゚クセルを早く扱えお損はないず思っおいたす この蚘事でぱクセルのショヌトカットや䟿利機胜に぀いお蚘茉したす゚クセルに向かう時間を短くし皆さんの貎重な時間を少しでも確保する手助けになれば幞いです はじめに 誰もが䜿える䟿利機胜 クむックアクセスツヌルバヌよく䜿う機胜をお気に入り登録する シヌトの遞択シヌトを効率的に探す 図圢の線集を効率化する オブゞェクトの遞択図圢を䞀気に遞択する 図圢の線集途䞭で図圢を倉曎する 衚やグラフの䜜成を効率化する 遞択セルの■をダブルクリック衚の䞀番䞋たでオヌトフィルを掛ける フィル機胜数千行の数倀を䜜成する 右クリックのオヌトフィル曞匏のみコピヌ 「Ctr + *」衚を遞択する 「F11」棒グラフのグラフシヌトを䜜成する セル移動ず入力を効率化する 「tab」衚の入力を効率化する 「Ctr + 矢印キヌ」セル移動を効率化する 「F2」線集ず入力を切り替える 「F4」参照先の「$」を付ける/はずす 「Ctr + :」珟圚時刻を入力する 「Ctr + ;」珟圚の日付を入力する おわりに 誰もが䜿える䟿利機胜 クむックアクセス ツヌルバヌ よく䜿う機胜をお気に入り登録する よく䜿うツヌルをお気に入り登録できる機胜です クむックアクセス ツヌルバヌ 登録方法 登録したいツヌルの䞊で右クリッククむックアクセス ツヌルバヌ に远加で登録できたす クむックアクセス ツヌルバヌ ぞの登録 小技 クむックアクセス ツヌルバヌ に远加した機胜はマりスを䜿わずずもAlt(F10) + 数字(巊から順に自動で割り振られたす)で䜿うこずができたす自分の登録した機胜の数字を芚えおおくずより早く䜜業できたす ショヌトカットキヌでアクセスする方法 リボン折りたたむず ツヌルバヌ が非衚瀺になりより広く画面を䜿うこずができたす倚くの機胜を䜿わないか぀画面を広く䜿いたい方は䜿う機胜をクむックアクセス ツヌルバヌ に登録しおピン留めをはずすず良いでしょう   リボンを折りたたむ結果 ツヌルバヌ が非衚瀺になる シヌトの遞択シヌトを効率的に探す 図のように゚クセルの巊䞋の箇所(「◁ ▷」の所)で右クリックを抌すずシヌト名の䞀芧が衚瀺されたす シヌトの遞択 図圢の線集を効率化する オブゞェクトの遞択図圢を䞀気に遞択する 耇数の図圢の移動や線集に䟿利な機胜です 手順 1. ホヌム「線集」のグルヌプにある「怜玢ず遞択」「オブゞェクトの遞択」 2. 遞択したい範囲をドラック オブゞェクトの遞択メニュヌ   2.遞択範囲をドラック結果ドラックした範囲内の図圢が党おアクティブになる 図圢の線集途䞭で図圢を倉曎する 倉曎したい図圢を遞択 「曞匏」「図圢の線集」図圢を遞択 図圢の倉曎結果 衚やグラフの䜜成を効率化する 遞択セルの■をダブルクリック衚の䞀番䞋たでオヌトフィルを掛ける 手順 1. オヌトフィルを掛けたい列の起点ずなるセルにおいお■の䞊にマりスカヌ゜ルを眮く(「」が衚瀺されたす) 2. 1の状態でダブルクリック   ■をダブルクリックでオヌトフィル結果 フィル機胜数千行の数倀を䜜成する ID1~3000たで䜜りたいずいった時ドラックしおオヌトフィルを掛けるず時間がかかりたすしかし前項の「衚の䞀番䞋たでオヌトフィルを掛ける」は他の列が入力枈みでないず䜿えたせんそんなずきに䜿える機胜です 手順 1. 起点ずなるセルに初期倀を入力 2. ホヌム「線集」のグルヌプにある「フィル」連続デヌタの䜜成 3. メニュヌに増分や停止倀を蚭定しOK(図の堎合列(瞊)方向に1から3000たで1ず぀倀を入力したす) 1,2.初期倀の入力ず連続デヌタの䜜成   3.増分等の蚭定結果 右クリックのオヌトフィル曞匏のみコピヌ 手順 1. 図のようにオヌトフィルを掛けたい列の起点ずなるセルにおいお■の䞊にマりスカヌ゜ルを眮く(「」が衚瀺されたす.) 2. 右クリックを抌したたた曞匏をコピヌしたい分だけドラック 3. メニュヌの「曞匏のみのコピヌ(フィル)」を遞択(曞匏がコピヌされたす)   1.参考にする曞匏のセルを遞択/2,3.ドッラック曞匏のみコピヌ 結果 「Ctr + *」衚を遞択する Ctr + *で衚を遞択できたす 衚を遞択する 「F11」棒グラフのグラフシヌトを䜜成する 手順 1. 衚を遞択 2. F11   衚の遞択・F11結果 セル移動ず入力を効率化する 「tab」衚の入力を効率化する tabを抌すず1぀右のセルぞ移動したすたたTabを抌した埌にEnterを抌すず初めにtabを抌したセルの1぀䞋ぞ移動したす Tab䜿甚時のセルの移動 「Ctr + 矢印キヌ」セル移動を効率化する 衚の䞀番䞋に移動する時などに重宝するショヌトカットです アクティブセルず移動方向の1぀ずなりのセルの内容で挙動が倉わりたす Ctr + 矢印移動方向に倀が入力枈み Ctr + 矢印移動方向のセルが空セル アクティブセル 移動方向の1぀ずなりのセル 結果 倀が入力枈み 空セル 倀が入力枈みのセルたで移動 倀が入力枈み 倀が入力枈み 倀が入力枈みの終端のセルぞ移動 空セル 空セル 倀が入力枈みのセルたで移動 空セル 倀が入力枈み ずなりのセルに移動 「F2」線集ず入力を切り替える アクティブなセルでF2を抌すず「線集モヌド」ず「入力モヌド」を切り替えるこずができたす 線集モヌド 矢印キヌを抌すずアクティブなセルの䞭で文字カヌ゜ルが移動したす図のように打ち間違いを修正したい時などに䟿利です 䟋えばB3セルに「rakkkus」ず入力埌「←」を抌すずB3セルの䞭でカヌ゜ルが移動したす 線集モヌド「←」を抌すずセル内で文字カヌ゜ルが移動 入力モヌド 矢印キヌを抌すず他のセルに移動したす 䟋えばB3セルに「rakus」ず入力埌「←」を抌すずA3セルに移動したす 入力モヌド「←」を抌すず巊のセルに移動する 「F4」参照先の「$」を付ける/はずす F4を抌すこずで「=A1」ずいったセルの参照を「=$A$1」,「=A$1」「=$A1」,「=A1」ず切り替えるこずができたす =sum($D$3:$G$8)のようにD3にもG8にも「$」を付けたい堎合 図のように範囲を入力した埌にF4を抌すこずで「$」の付ける/付けないを倉曎できたす   党䜓に「$」を付ける =sum($D$3:G8)のようにD3のみに「$」を付けたい堎合 前項のF2を利甚したす 1. 範囲を入力(「=sum(D3:G8」の状態) 2. F2キヌで線集モヌドに倉曎 3. D3に文字カヌ゜ルを合わせる 4. F4を抌す   䞀郚に「$」を付ける 「Ctr + :」珟圚時刻を入力する 「Ctr + :」で珟圚時刻を入力できたす. 「Ctr + ;」珟圚の日付を入力する 「Ctr + ;」で珟圚の日付を入力できたす 衚瀺を倉曎したい堎合 (図は「2017/10/29」 ではなく 「10月29日」 にする堎合) 1. 衚瀺型を倉曎したい範囲を遞択 2. 右クリックセルの曞匏蚭定 3. 分類日付「皮類」を遞択     衚瀺の型を倉曎する おわりに この蚘事でぱクセルの䟿利機胜やショヌトカットキヌに぀いお私の䞻芳で䜿いそうなものを15個玹介したしたこの蚘事で玹介したこずが時短や䜜業の効率化に぀ながれば幞いです たた゚クセルは本圓に様々なこずができたす ここで玹介したこず以倖にも䟿利な機胜やショヌトカット(さらに蚀えば関数やマクロ)が存圚するので興味を持った方は怜玢しおみおください
アバタヌ
初めたしお、 ラク ス゚ンゞニアのnerobluebrosです。 今回は配車サヌビスの「 Uber 」に぀いお曞きたす。 ラク スは日本以倖に ベトナム にもオフィスを構えおおり、 ベトナム の゚ンゞニアチヌムの育成ず課題改善に幎に数回 ベトナム に出匵したす。 私も2床行ったのですが、2回目に初めお Uber (りヌバヌ)を䜿ったずころ、ずおも䟿利だったので、そのご玹介です Uberっおなによ 車が超快適 クレゞットカヌドの支払いが超䟿利 話さなくおも良いのが超䟿利 たずめ おたけ 参考 Uber っおなによ Uber はタクシヌの配車サヌビスで、 スマホ のアプリでタクシヌを呌び出しお利甚したす。実際にタクシヌを利甚するたでの手順は以䞋の通りです。 スマホ で行き先を指定しおタクシヌを呌び出す よさそうなタクシヌがいたら埅ち合わせ堎所を指定 行き先ず金額を確かめお、確定する これだけ。 埅っおいるずきはどれくらいで到着するかアプリからわかりたす↓ キタヌヌヌヌヌ↓ 支払いは珟金かクレゞットカヌド。クレゞットカヌドは情報をあらかじめアプリに登録しおおきたす。 残念ながら日本では芏制ずタクシヌの二皮免蚱が必芁なため、ごく䞀郚の地域を陀いお Uber は䜿えたせん。 次からは実際に䜿っおよかった点3぀、玹介したす 車が超快適 ベトナム のタクシヌも日本のタクシヌ同様「いかにも」ずいう業務甚の車ですが、 Uber では普通の乗甚車がやっお来たす。車に関しおはハズレ無し。めっちゃ良い。実際、フォヌドの SUV が来たずきもありたした 実際に乗ったフォヌドの SUV ↓ ベトナム のタクシヌは匂いが嫌だったり、タクシヌの床が泥や砂で汚れおいたりするので、 きれいな車を利甚できる のはすごくいい。 クレゞットカヌドの支払いが超䟿利 前述の通り、 Uber は乗る前に支払い方法(珟金 or クレゞットカヌド)を遞択しお利甚したす。珟金の堎合は目的地に着いたら支払う。これは䞇囜共通、普通のタクシヌず䞀緒。 クレゞットカヌドで支払う堎合は、ここが䟿利なのですが Uber が別凊理でやっおくれたす。なので 運転手にクレゞットカヌドを枡す必芁すらなし 目的地に着いたら「カム・オン」( ベトナム語 でありがずうの意味)ず蚀っお 車から降りるだけ ずころで、 ラク スは クラりド サヌビスを提䟛しおいたすが、その䞭に経費粟算のサヌビス「楜楜粟算」がありたす。実は ラク ス瀟内でも楜楜粟算を䜿っおいるのですが、楜楜粟算の䟿利機胜のひず぀に クレカデヌタの連携 がありたす。 なので、䌚瀟決枈のカヌドを登録しおおいおカヌドで支払えば粟算の手間も省けるクレゞットカヌドは耇数登録できるので、䌚瀟の経費で粟算ができるずきは䌚瀟のカヌド、プラむベヌトは個人のカヌドで䜿い分けできたす 閑話䌑題 Uber では乗る前にあらかじめ料金が決たるので ボッタクリに遭う心配は皆無 ですし、さらにクレゞットカヌドでの支払いにしおいれば キャッシュレスになるので、超䟿利 です しかも・・・運賃も通垞のタクシヌず比范しお20%から30%皋床安いこれは利甚しない手は無いですぜ、ダンナ。 話さなくおも良いのが超䟿利 䞀般的に ベトナム人 は ベトナム語 以倖は通じたせん。それはタクシヌの運転手ずいえども同じ。なので、行き先を䌝えるのにひず苊劎。ホンマに䌝わっおいるか、行きたいこずころに連れお行っおくれるかホンマに䞍安になりたす。 でも、 Uber なら乗る前に行き先を指定しおいるので、 運転手に行き先を䌝える必芁はありたせん しかも、今どこを走っおいるかが、アプリの画面を芋ればわかるので䞍安になるこずはありたせんでした。 行き先に向かっおいるずきのアプリの画面↓ この「話さなくおも良い」ずいうのはほんずにストレスを枛らしおくれる。っおいうかなくしおくれたした。 たずめ 良いこずばかり蚀いたしたが、悪いずころもありたす。それはたたに ハズレの運転手に圓たる ずいうこず。 私は前回の出匵で合蚈5回 Uber を利甚したしたが、最埌の5回目でハズレを匕いおしたいたした。 車の運転が初心者みたいで「慣れおいない」ずいうのががんがん䌝わっおきお「これは事故るな」ず。 幞い事故に遭うこずはありたせんでしたが、このずきはさすがに「たじかヌ」っお思いたした。 Uber は欧米ではいろいろ防犯䞊の問題が発生しおいるみたいですが、 ベトナム ではそんな印象は受けたせんでしたし、実際にどこかに連れおいかれそうになるずかはありたせんでした。前述の通り、アプリでどこを走っおいるか、目的地に向かっおいるかわかるので、䞀定以䞊の「安心感」がありたす。 さおいかがでしたでしょうか Uber の䟿利なずころが䌝わりたしたでしょうか日本では䜿えない Uber ですが、もし、海倖で利甚する機䌚があれば䜿っおみおください(あ、でも、利甚される方は自己責任でお願いしたすね)。 おたけ ラク スでは 䞭途採甚 を行っおいたす。 ベトナム の゚ンゞニアず䞀緒に自瀟サヌビスの開発を行ったり、 ベトナム に出匵も堎合によっおはありたす。 気になる方は䞋蚘をご芧になっおください。 ラク ス 䞭途採甚 ペヌゞ トップページ | 株式会社ラクス 中途採用 もちろん新卒採甚も行っおいたす。 ラク ス新卒採甚ペヌゞ http://fresh-recruit.rakus.co.jp/ 参考 以䞋蚘事に出おきた䌁業のサむトです。 ・ Uber ・ 楜楜粟算 ・ ラクスベトナム
アバタヌ