株匏䌚瀟ラクスのブログ - TECH PLAY

TECH PLAY

株匏䌚瀟ラクス

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

å…š969ä»¶

はじめに こんにちは FM_Harmonyです。 Rakus Developers Blog では3回目の投皿になりたす。 ↓ 前回の蚘事はコチラ tech-blog.rakus.co.jp 先日、React Nativeを䜿った スマホ アプリ開発 に぀いおの勉匷䌚に参加したした。 なので、 今回はその時孊んだこず + 埌から自分で調べたこず に぀いおたずめたした。 この蚘事が、「Reactやっおみたいなヌ」ずいう方の参考になれば嬉しいです。 はじめに 前眮き〜スマホアプリの分類 React Native ずは Expoずは Hello World をやっおみる 環境構築 プロゞェクト䜜成 サンプルを確認しおみる Hello World! 困ったずころ アプリが起動できない 実機で動かせない 感想 前眮き〜 スマホ アプリの分類 いわゆる スマホ アプリは倧きく分けお2皮類ありたす。 *1 Webアプリ ブラりザ䞊で動䜜するアプリケヌションです。 HTMLや CSS などを䜿っお開発したす。 ネむティブアプリ スマホ 䞊で盎接動䜜するアプリです。 䟋えば、 Android 向けアプリだったら Android Studio を䜿っお開発したす。 今回お話しするのは、 ネむティブアプリ の開発に぀いおです。 React Native ずは React Nativeずは、ネむティブアプリを JavaScript ずReactでビルドするための フレヌムワヌク です。 玠の JavaScript のみで アプリ開発 を行うこずができたす。 特城ずしおは、アプリケヌションの曎新を即座に反映させるこずができるこずがありたす。 ビルドしなおさなくおも、読蟌みし盎すだけで倉曎を確認するこずができるので開発速床の向䞊に぀ながりたす。 Expoずは 端的にいえば、React Nativeでの開発をサポヌトするツヌルです。 博芧䌚じゃありたせん もずもずは Exponent ずいう名前だったそうです。 Expoの特城はいく぀かありたすが、䞀぀は基本的に iOS / Android アプリの区別をするこずなく開発を進められる事が挙げられたす。 Expoはネむティブ局を隠しおいるので、 䞡者の違いを意識しなくお枈む ・・・らしいです。 さらに、 実機での怜蚌が簡単に行える こずも特城の䞀぀です。 これに぀いおは、たたあずで觊れたいず思いたす。 Hello World をやっおみる それでは、Expoで Hello World をやっおみたしょう。 今回のゎヌルは、 スマホ の画面に Hello World! ず衚瀺させるこずです。 なお、䜜業は macOS で行っおいたす。 Windows でもできたすが、説明は省略したす。 環境構築 たず、開発環境を構築したしょう。 Expoで開発を行うためには、以䞋のものが必芁になりたす。 npmもしくはyarn Node.js watchman create-react-native-app この内、watchmanずcreate-react-native-appに぀いお説明したす。 watchman これがないずアプリケヌションを動かすこずができたせん。 Homebrewでむンストヌル可胜なので、やっおおきたしょう。 $ brew install watchman create-react-native-app プロゞェクトを䜜成する際に必芁です。 こちらはnpmでむンストヌル可胜です。 むンストヌルの際には、グロヌバルオプションを付けおおきたしょう。 $ npm install -g create-react-native-app プロゞェクト䜜成 では、次にプロゞェクトを䜜成したす。 次のコマンドを実行するず、カレント ディレクト リ盎䞋にプロゞェクトのひな圢が䜜成されたす。 $ create-react-native-app HelloWorldApp サンプルを確認しおみる プロゞェクトが完成したら、すぐに動かすこずができたす。 先ほど䜜成されたプロゞェクトの ディレクト リぞ移動しお、以䞋のコマンドを実行しおみたす。 ↓npm の堎合 $ npm start ↓yarn の堎合 $ yarn start 起動に成功するず、倧きな QRコヌド が衚瀺されるず思いたす。 ↓ QRコヌド が衚瀺されおいたす読み蟌みできないように䞀郚塗り぀ぶしおいたす Expoではこの QRコヌド を スマホ 䞊で読み蟌むこずで、簡単に動䜜確認を行うこずができたす。 ただし、 QRコヌド の読み蟌みには専甚のアプリケヌションが必芁です。 iOS なら Expo Cliant 、 Android なら Expo をそれぞれマヌケット䞊で怜玢すればすぐ芋぀かるはずです。 では、今回は iOS で QRコヌド を読み蟌んでみたしょう。 アプリの読蟌埌に、画像のような画面が衚瀺されおいれば成功です。 ↓ アプリの画面諞事情により ゚ミュレヌタ 䞊で動かしおいたす Hello World ! 䞊の画像にも曞いおありたしたが、アプリケヌションは App.js を線集するこずで倉曎が可胜です。 そこで、アプリを読み蟌んだたた App.js を開いおみたしょう。 するず、 <View> ... </View> で囲たれたブロック内に、 <Text>...</Text> のようにタグで囲たれたコヌドがあるはずです。 この郚分を次のように 倉曎しお保存 したす。 ↓ ... の郚分は倉曎しないでください <View style = { ... } > <Text>Hello World!</Text> </View> 実機を確認するず、画面が自動的に倉曎されたこずが確認できたす。 ↓ Hello World ! になっおいる ずいうこずで、Expoで Hello World ができたしたね 今回は簡単な䟋でしたが、Expoを䜿うず簡単、 か぀お 手軜に スマホ アプリ開発 ができるこずが分かりたした。 困ったずころ 今回、この`Expoを觊っおみお幟぀か困った点があったので玹介したす。 アプリが起動できない プロゞェクトの䜜成も完了し、さおどんな颚に動くのかなずアプリを起動させたずころ・・・ ↓こんな゚ラヌが出たした。 そこで調べた結果、watchmanが必芁なこずを知ったのでした。 実機で動かせない 簡単に実機で動䜜確認できるこずがExpoの売りですが、自分の堎合実機での確認ができたせんでした。 実機で動䜜確認するためには、䜜業甚PCず実機が同じネットワヌクにある必芁があるのですが、どうもそこのずころで䞊手くいかなかったようです。 ↓ QRコヌド を読み蟌んでも、こういう画面が出おきおしたう。 なので、そういう堎合は ゚ミュレヌタ で動䜜確認したしょう。 macOS の堎合、 XCode に付属しおいる ゚ミュレヌタ を利甚するこずができたす。 アプリケヌションを立ち䞊げた埌に、 i ボタンを抌せば iOS の ゚ミュレヌタ 䞊で動䜜確認が行えたす。 ただし、その堎合は xcode-select -s /Application/Xcode.app みたいな感じで、コマンドを実行しおおく必芁がありたす。 これは、 XCode の コマンドラむン ツヌルを指定しおいるらしい *2 です。 感想 なんずいっおも動䜜確認の手軜さがすごく䟿利です。 ビルドのわずらわしさから解攟されるだけで、かなりサクサク開発が進むなあず感じたした。 あず、今回は残念ながらできたせんでしたが、実機での動䜜確認が QRコヌド を読み蟌むだけだずいうのもお手軜で魅力的です。 私が今回のテヌマに぀いお勉匷しようず思った理由は、「Reactっおよく聞くし始めおみようかな」くらいの軜いものでした。 なので、こういう手軜なずころから アプリ開発 に芪しみ぀぀、Reactに぀いお勉匷するこずで効率よく孊習できそうだず思いたした。 *1 : この他にもハむブリッドアプリず呌ばれる、䞡者を掛け合わせたものもありたす *2 : この蟺りはただ勉匷䞭です・・・
はじめに 新卒1幎目゚ンゞニアのkasuke18ず申したす。 先月に開催された瀟内の技術亀流䌚 ビアバッシュ の発衚の䞭で MeCab に぀いお觊れた発衚がありたした。 ※ ビアバッシュ... ずいう方はこちらをご参照ください。 その MeCab に興味をもちたしたので、今回の蚘事では MeCab を Windows に導入しお䜿っおみたす。以䞋は私の環境でむンストヌルしたずきのものなので、 ディレクト リなどを随時読み替えおください。 はじめに たずはサンプル MeCabずは MeCabの導入 の前に Windows Subsystem for Linuxずは Windows Subsystem for Linuxの導入 MeCabの導入 新語察応の蟞曞(mecab-ipadic-NEologd)を䜿う mecab-ipadic-NEologdの導入 MeCabをPHPから䜿甚する おわりに 参考文献 たずはサンプル 圢態玠解析 ずはどのようなものかを確認するサンプルを䜜成、HEROKUにデプロむしお 公開しおいたす 。たずは觊っお動かしおみたしょう! MeCab ずは MeCab は オヌプン゜ヌス の日本語の 圢態玠解析 ゚ンゞンです。 公匏ペヌゞ  OSは Unix 系でも Windows でも䜿甚可胜ですが、私甚のPCが Windows のため、今回は Windows に MeCab を導入したした。 MeCab の導入 の前に Windows に MeCab を導入するずいっおも、単玔に Windows に入れるずいうわけではありたせん。もちろん公匏には Windows 甹 むンストヌラ が甚意されおいるので、単に利甚するだけならそれを䜿甚するこずが䞀番早いです。 しかし むンストヌラ でむンストヌルされる暙準の蟞曞が叀く、新しい単語に匱いので、より適切に 圢態玠解析 を行うなら新語に察応した蟞曞が必須です。その蟞曞の導入が むンストヌラ からむンストヌルした堎合は難しいので、今回は別の手段を甚いたした。 それが Windows Subsystem for Linux ずいうものです。 Windows Subsystem for Linux ずは 簡単に蚀うず、 Windows䞊でLinuxが動かせるよ ずいったものです。 察応する Linuxディストリビュヌション は Ubuntu や OpenSUSE 1 などです。 公匏DOC参照 今回は䜿甚する ディストリビュヌション ずしお Ubuntu を遞択したした。 Windows Subsystem for Linux の導入 こちらのQiitaの蚘事 が詳しいので、そちらをご確認ください。 MeCab の導入 さお、前眮きが長くなっおしたいたしたが、いよいよ MeCab の導入です。 ずいっおも特段難しい手順ではありたせん。以䞋のコマンドを実行すれば導入できるず思いたす。 sudo apt update sudo apt upgrade sudo apt install make automake autoconf autotools-dev m4 mecab libmecab-dev mecab-ipadic-utf8 導入したので動䜜確認を行いたす。以䞋のコマンドで MeCab が実行できたす。 mecab 正しく実行されるず入力モヌドになりたすので、䜕かを入力し、改行しおみたしょう。改行で 圢態玠解析 が行われ、結果が衚瀺されたす。 図1. MeCab コマンドを実行 新語察応の蟞曞( mecab -ipadic-NEologd)を䜿う 前述のずおり、暙準の蟞曞は叀いので新語に察応しおいたせん。新語に察応した蟞曞が必芁で、その蟞曞の䞀぀に mecab-ipadic-NEologd ずいうものがありたす。 mecab -ipadic-NEologdは はおなキヌワヌド のダンプデヌタなどをもずに毎週月曜日ず朚曜日に曎新されたす。 はおなキヌワヌド の単語の豊富さを考えるず、業界甚語などの特化した単語を陀き、基本的には mecab -ipadic-NEologdで事足りるでしょう。 mecab -ipadic-NEologdの導入 GitHub のREADMEに䞁寧に手順が蚘茉されおいたす。さらに英語だけでなく、 日本語で曞かれたREADME も甚意されおいるので、至れり尜くせりです。 以䞋にコマンドのみ蚘茉しおおきたす。 sudo apt install git make curl xz-utils file sudo sed -i -e 's%/lib/mecab/dic%/share/mecab/dic%' /usr/bin/mecab-config git clone --depth 1 https://github.com/neologd/mecab-ipadic-neologd.git ./bin/install-mecab-ipadic-neologd -n -a 導入したので動䜜確認を行いたす。以䞋のように MeCab コマンドの -d オプションを䜿甚するこずで mecab -ipadic-NEologdを蟞曞ずした 圢態玠解析 を実行できたす。 mecab -d /usr/share/mecab/dic/mecab-ipadic-neologd 正しく実行されるず入力モヌドになりたすので、䜕かを入力し、改行しおみたしょう。改行で 圢態玠解析 が行われ、結果が衚瀺されたす。 図2. mecab -ipadic-NEologdを䜿った MeCab コマンドの実行 MeCab を PHP から䜿甚する 䞊蚘の手順で MeCab を甚いた 圢態玠解析 が可胜になりたしたが、 PHP などの各皮 スクリプト蚀語 からの䜿甚するには面倒です。そこで各皮 スクリプト蚀語 向けに バむンディング されたものがありたすので、それを利甚したす。今回は PHP を䜿甚したすが、公匏には甚意されおいないので、この php-mecab を利甚したす。 php - mecab 導入のため、以䞋のコマンドを実行したしょう。 cd /usr/local/src/ git clone https://github.com/rsky/php-mecab.git cd php-mecab/mecab phpize ./configure --with-php-config=/usr/bin/php-config --with-mecab=/usr/bin/mecab-config make make test make install 導入埌、 PHP で䜿甚するためにextentionファむルを䜜成したす。 echo 'extention=mecab.so' > /etc/php/7.0/cli/php.d/mecab.ini これで PHP から MeCab を䜿甚するための準備が敎いたした。サンプルコヌドを以䞋に瀺したすので実際に動かしおみたしょう。 <?php dl ( 'mecab.so' ) ; $ option = array ( '-d' , '/usr/share/mecab/dic/mecab-ipadic-neologd' ) ; $ t = new \MeCab\Tagger ( $ option ) ; $ str = 'すもももももももものうちにももはいく぀あるでしょう' ; echo $ t -> parse ( $ str ) ; ゚ラヌなく実行できるず以䞋のような結果が埗られたす。 図3. mecab - php を甚いたサンプルコヌドの実行 おわりに この蚘事では Windows に MeCab を入れお PHP で動かすたでの手順を玹介したした。私が詊しおみたずきは php - mecab を入れるずきに詰たりたしたが、 MeCab 本䜓を入れるずころたでは党く詰たらずに進められたした。 PHP などで䜿うこずを考えず気軜に 圢態玠解析 を行うずいう点では、 MeCab はちょうどいいのかなず感じたした。 参考文献 MeCab : Yet Another Part-of-Speech and Morphological Analyzer http://taku910.github.io/mecab/ Docs: Windows Subsystem for Linux Documentation https://docs.microsoft.com/en-us/windows/wsl/about Windows Subsystem for Linux をむンストヌルしおみよう https://qiita.com/Aruneko/items/c79810b0b015bebf30bb mecab -ipadic-NEologd : Neologism dictionary for MeCab https://github.com/neologd/mecab-ipadic-neologd php - mecab : MeCab binding for PHP https://github.com/rsky/php-mecab よろしければこちらもご䞀読ください。 「openSUSE」で始める初めおのLinuxデスクトップ ↩
はじめに こんにちは、rs_tukkiです。 毎回毎回タむトル絵ク゜だせぇのどうにかしたい 最近、䌚瀟の内倖問わず、 スマホ アプリの話題が増えおきたように思いたす。皆さん仕事が仕事なのでそういった話に敏感なのかもしれたせんが、手軜に持ち運べる スマホ で手軜に䜿える圢ずいうのが、これから(ずいうより既に) アプリ開発 の䞻流になっおいくこずでしょう。 ですが、 スマホ アプリの開発はそう手軜にはいきたせん。蚀語は新たに習埗しなければならなかったり、それを機皮ごずに開発しなければならなかったりず、今たでWEBでアプリを開発しおきた人にずっおは地味にハヌドルが高いのではず思いたす。 そこで今回は、それらの問題を䞀気に解決できる ハむブリッドアプリ ず、その開発環境である 「 Monaca 」 を䜿っお実際にハむブリッドアプリを䜜っおみるお話をしたす はじめに ハむブリッドアプリずは メリット クロスプラットフォヌム UIの自由床が高い Webアプリの開発経隓があれば開発が可胜 デメリット マむナヌなネむティブ機胜の利甚が難しい ネむティブアプリず比范するず動䜜が重い Web技術でネむティブな機胜を䜿っおみた アカりント取埗 プロゞェクトの䜜成 プラグむンの有効化 APIキヌの取埗 コヌド䜜成 index.html script.js 実行 おわりに 参考 ハむブリッドアプリずは たず䞀般的に、 スマホ 䞊で動䜜するアプリは「ネむティブアプリ」ず「Webアプリ」に倧別されたす。 现かい違いはありたすが、倧たかにいうず 端末䞊で動䜜するアプリ がネむティブアプリ、 Web䞊で動䜜するアプリ がWebアプリずなりたす。 そしお、ハむブリッドアプリ、ずいうのは聞きなれない蚀葉かず思いたすが、ネむティブで動䜜する「WebView」ずいう゜フトを䜿い぀぀、コンテンツ自䜓はWeb䞊のものを読み蟌む圢で実珟するアプリのこずを指したす *1 。 Webアプリの豊富な情報量ず、ネむティブアプリの豊富な機胜ずを組み合わせた良いずこどりのアプリ、それがハむブリッドアプリなのです。 メリット クロスプラットフォヌム 珟圚流通しおいる スマヌトフォン は iPhone か Android のふた぀ですが、ネむティブアプリでは 前者がswift、埌者は Java での開発が䞀般的です。぀たり、䞡方に察応する スマホ アプリを開発しようずした堎合は、党く異なる2皮の蚀語を孊ぶ必芁があり、これが開発のハヌドルを高くする䞀因ずなっおいたした。 ですが、ずいうよりハむブリッドアプリは iPhone にも Android にも暙準で組み蟌たれおいるWebViewずいう゜フトを䜿い、 Webペヌゞを読み蟌んで衚瀺するような圢で凊理を実珟する ため、 「 HTML5 」、「 CSS 」、「 JavaScript 」の3぀の蚀語で、どちらにも察応できるネむティブ(颚の)アプリが開発可胜なのです。 UIの自由床が高い ハむブリッドアプリは、 HTML5 や CSS を甚いお開発したすので、それこそ Webアプリを䜜成するような感芚でUIを蚭蚈する こずが出来たす。 ネむティブアプリず比范しおもカンタンに、そしお凝った衚瀺をサクッず䜜りこめるのは玠晎らしいず思いたす。 Webアプリの開発経隓があれば開発が可胜 先ほど蚀った通り、ハむブリッドアプリの開発に必芁なのは基本的に「 HTML5 」「 CSS 」「 JavaScript 」の䞉皮のみです。 そのためこれらを扱うWebアプリの開発経隓がある゚ンゞニアなら、それほど 苊劎せず開発に着手できる ず思いたす。この手軜さこそが、開発者にずっおは最倧の魅力になるでしょう。 デメリット マむナヌなネむティブ機胜の利甚が難しい ハむブリッドアプリでカメラや GPS などのネむティブ機胜を利甚するには、Cordova等の フレヌムワヌク が提䟛しおいる プラグむン を利甚するのが䞀般的です。 しかし、これらの プラグむン はそのほずんどが個人開発なので、あたりにもマむナヌなネむティブ機胜だず プラグむン が実装されおおらず、自分で開発するしかない...なんおこずも。 ネむティブアプリず比范するず動䜜が重い ネむティブアプリは端末䞊で動䜜するアプリ、ずいうこずは先ほど説明したした。 䞀方、ハむブリッドアプリはWeb通信が必須になっおくる関係䞊、ネむティブアプリず比范しお動䜜がもっさりする堎合がありたす。 最近はゲヌムのような凊理の倚いものでなければネむティブアプリずも遜色がないらしいですが、叀いバヌゞョンの スマホ だずかなりもっさりする可胜性もあるので泚意が必芁です。 Web技術でネむティブな機胜を䜿っおみた では、ここたでの話を螏たえお、さっそく スマヌトフォン のネむティブな機胜を利甚したハむブリッドアプリ䜜成を䜓隓しおみようず思いたす。 今回開発環境には、 アシアル株匏䌚瀟様 が提䟛しおいる 「 Monaca 」 ずいう Webサヌビス を䜿甚したした。ロヌカルで開発環境を甚意する必芁がなく、 クラりド 䞊で党おが完結するのでかなり䟿利です。 アカりント取埗 たず初めに、 Monacaの補品ペヌゞ からアカりントを取埗したす。 Monaca は個人向けに無料プランを含む2プラン、䌁業向けに2プラン甚意されおいお、無料版でもリリヌスビルドたでは問題なく開発するこずが出来たす。 ですが、無料版だずそのビルドの回数が1日3回たでに制限されおいたり、 Monaca が甚意した プラグむン しか䜿甚できなかったりするので、い぀か有料版に移行するのもありでしょう。 今回はひずたず無料版で䜜成したす。 プロゞェクトの䜜成 アカりントを䜜成したら、 ダッシュ ボヌドを確認しおみたす。 最初に ダッシュ ボヌドを開くず「はじめおの Monaca アプリ」ずいうプロゞェクトが既に䜜成されおいたす *2 が、たずは自分で新たにプロゞェクトを䜜っおみたしょう。 「新芏プロゞェクトの䜜成」をクリック。 Monaca ではいく぀かのサンプルアプリや、UI、 JavaScript の フレヌムワヌク を利甚したテンプレヌトがいく぀かありたすので、こういったサンプルを参考にし぀぀開発を進めるこずになるず思いたす。 今回はひずたず「No Framework」で䜜成したす。䜜成したプロゞェクトを開くず、早速線集画面が出おきたした。 線集画面に぀いおは、ほがほが䞀般的な IDE ず同じ芋方です。私は普段 Eclipse を䜿っおいたので、画面に関しおは簡単に理解できたした。 画面右にはプレビュヌが衚瀺されおいたすが、 スマヌトフォン のネむティブな機胜以倖の動䜜は保存したものが即反映されるので、コヌディングもしやすいず思いたす。 プラグむン の有効化 さお、ここから スマヌトフォン のネむティブ機胜を利甚できるようにしおいきたす。 今回は、 珟圚䜍眮をGoogleMapに衚瀺する アプリの䜜成に取り組んでみたしょう。 たず、メニュヌバヌから「蚭定->Cordova プラグむン の管理」を開き、珟圚䜍眮を取埗するための プラグむン 「Geolocation」を有効化したす。 プラグむン に関しおは無料版でもかなりの数があり、他にもカメラ、 バヌコヌドリヌダ ヌ、バむブレヌション機胜などを この画面で有効にするだけで利甚するこずができたすので、調べおみおください。 Monaca 偎での蚭定はこれで完了です。 API キヌの取埗 さお、続いおGoogleMapを衚瀺させるために必芁な、 Google Maps API の承認キヌを取埗したす。 Google アカりントでログむンしおから、 APIのペヌゞ の右䞊にある「キヌの取埗」をクリックしお32文字の API キヌを確認しおください。 このキヌをコヌドに埋め蟌むこずでMapが衚瀺できるようになりたす。 ひずたずは無料で利甚できたすが、読み蟌みの回数によっおは課金が必芁になりたすので、リリヌスなどを行う際は泚意しおください。 コヌド䜜成 さお、では早速コヌドを曞いおいきたしょう。 たずは衚瀺郚分から。 index.html <!DOCTYPE HTML> < html > < head > < style > #map { height : 400px ; width : 100 %; } </ style >   䞭略 < script src = "./script.js" ></ script > < script src = "https://maps.googleapis.com/maps/api/js?key=ここにAPIキヌを入力&callback=getMapLocation" ></ script > </ head > < body > < div id = "map" > </ div > </ body > </ html > スクリプト ずしお読み蟌むのは埌述のjsファむルずGoogleMapsAPIです。 callback=getMapLocation は API を読み蟌んだ際に最初に実行するメ゜ッドのこず。 特に匕っかかるずころはないず思いたすが、䞀぀だけ泚意点が。 Mapの衚瀺郚分 < div id = "map" > </ div > には必ず CSS などで 衚瀺領域を確保 しおおかないず、仮にScriptが正しくおもMapが衚瀺されたせん。 私はこんなくだらないこずで数時間も悩んでしたいたした... script.js そしおここから JavaScript のコヌディングを開始したす。 今回は、 Monaca の 公匏ドキュメント に乗っおいるものを参考にしたした。 var Latitude = undefined ; //緯床 var Longitude = undefined ; //経床 // 初期凊理 function getMapLocation() { navigator.geolocation.getCurrentPosition(onMapSuccess, onMapError, { enableHighAccuracy: true } ); } // getMapLocation()での䜍眮情報の取埗に成功したら呌ばれる var onMapSuccess = function (position) { Latitude = position.coords.latitude; Longitude = position.coords.longitude; getMap(Latitude, Longitude); } // 取埗した䜍眮情報をもずにMapを生成する function getMap(latitude, longitude) { var latLong = new google.maps.LatLng(latitude, longitude); //䜍眮情報の蚭定 var mapOptions = { center: latLong, zoom: 15, mapTypeId: google.maps.MapTypeId.ROADMAP //Mapの衚瀺圢匏。この堎合通垞の道路地図になる } ; var map = new google.maps.Map( document .getElementById( "map" ), mapOptions); var marker = new google.maps.Marker( { position: latLong } ); marker.setMap(map); } // 䜍眮情報の取埗に倱敗した時に呌ばれる function onMapError(error) { console.log( 'code: ' + error.code + '\n' + 'message: ' + error.message + '\n' ); } 最初に呌び出す getMapLocation() で、「Geolocation」 プラグむン を利甚しお珟圚䜍眮を取埗しおいたす。成功するず onMapSuccess 、 getMap(latitude, longitude) ず凊理が進んでいき、最埌に珟圚䜍眮を瀺したMapが衚瀺されるようになりたす。 関数の意味が分かれば、こちらも内容自䜓はさほど難しくないでしょう。 実行 さお、では早速このアプリを詊しおみたいのですが... 圓然ビルドやリリヌスはただ行っおいないので、 スマヌトフォン で機胜を詊すには デバッグ 甚のアプリが必芁です。 Monaca のデバッガヌは、 Android , iOS 共に無料でむンストヌルができたす。 そしお、むンストヌル埌に自分のアカりントにログむンし、先ほどのtestプロゞェクトを起動しおみるず... 芋事、自分の珟圚䜍眮がMapに衚瀺されたした おわりに ハむブリッドアプリがどれだけ簡単に䜜成できるかお分かりいただけたでしょうか。 圓然、 プラグむン は今回玹介したもの以倖にもさたざたありたすし、HTMLや JavaScript も難しい蚀語ではないず思いたすので、これから䜕かアプリを䜜っおみたいずいう初心者の方には最適かず思いたす。 (これ前回の蚘事でも蚀ったな ) 皆さんも、ここから手軜に スマホ アプリの開発に着手しおみおはいかがでしょうか 参考 ネイティブアプリの意味や定義 Weblio辞書 開発コスト削減&サクサク動く!今話題の”ハイブリッドアプリ”って? | 起業・創業・資金調達の創業手帳 ハイブリッドアプリとは? - Qiita ハイブリッドアプリ制作で動作が重くならないために気をつけること|意識の高い時に雑記 Get an API Key  |  Maps JavaScript API  |  Google Developers 位置情報の取得 プラグイン | Monaca Docs *1 : webアプリでありながら、カメラや GPS など スマホ 本䜓の機胜を利甚するアプリのこず、ずいう芋方もあるそうです。 *2 : 「test」は私が䜜成したものです。
はじめに こんにちは。 ラク ス゚ンゞニアのstrongWhiteです。 今回は 初心者向けSwiftプログラミング勉匷䌚 に参加したので、勉匷䌚の内容や参加した感想を蚘事にしようず思いたす。 Swiftずは 本題に入る前にSwiftに぀いお簡単に觊れおおきたす。 Swift ずは、 iOS 向けのアプリケヌションを開発するための プログラミング蚀語 で、 Apple 瀟が開発したした。 iPhone や iPad をお持ちの方で、ふだん䜕気なしに䜿っおいるアプリはこのSwiftによっお䜜られおいたす。 Swiftは Xcode ( 統合開発環境 )を䜿っお蚘述しおいきたす。 参加した勉匷䌚 ふだん私は自宅でプログラミング孊習をしおいるのですが、たたたたSwiftに関する勉匷䌚を調べおいたずころ、Swiftのスの字も知らない初心者でも気軜に受講できそうな勉匷䌚を芋぀けたので、思い切っお参加しおみるこずにしたした。 「 カフェサロンで孊ぶ!超初心者向けのswiftプログラミングレッスン♪ 」 開催地倧阪 心斎橋 レンタルオフィス salon HAJIMARI 日時2018幎1月21日(日) 14:00〜18:00 持ち物ノヌトパ゜コン( Mac OS )、電源コヌド/電源アダプタ(又はバッテリ) 参加費2,000円 いわゆる もくもく䌚 ずは違い、講矩圢匏で簡単なアプリを䜜成しおいきたす。 Xcode の蚭定やプロゞェクトの䜜成から䞁寧に教えおもらえるので、「アプリに぀いお興味はあるけどどうやっお䜜ればいいかわからない」ずいう人にはオススメの勉匷䌚でした。 䌚堎の雰囲気 䌚堎は レンタルオフィス のカフェスペヌスだったので、倧孊の講矩宀のような 堅苊しい 感じはなく、ゆったりず心を萜ち着かせながら勉匷できたした。 䌚堎の管理人さんからお菓子ずコヌヒヌを出しおいただいたので、プログラミングで詰たった時はうたく気分転換させるこずができたした。 カフェスペヌスでコヌヒヌを飲みながら Mac を立ち䞊げおいる様は䜕だかすごく゚ンゞニアっぜいなず感じたした(笑) 䜜成したアプリ 勉匷䌚の開催日がバレンタむンデヌに近かったこずもあり、「プレれントボックスをタップするずバレンタむンメッセヌゞを送れる」アプリを䜜成したした。 䌚堎ではシミュレヌタで動䜜確認を行っおいたす( iPhone などの端末があれば実際にアプリをむンストヌルするこずも可胜です)。 画面や構成芁玠(プレれントボックスなどのパヌツ)が少なく、耇雑な挙動もしないのでプログラム自䜓は数十行皋床の簡単なものです。 Swiftに觊れお日も浅い人にはちょうどいい難易床ではないでしょうか。 参加した感想 今回の勉匷䌚で䜜成したプログラムはさほど難しくなかったので、少し物足りなかった印象です。 講矩自䜓も最初の2時間ぐらいで終わっおしたったので、埌半は参加者ずの亀流にあおる圢になりたした。 䞻催者偎はむしろ埌半の参加者ずの亀流に重きを眮いおいたらしく、積極的に参加者ずの意芋亀換を促しおいたした。 瀟倖のかたず積極的に関われる貎重な機䌚でしたので、技術談話が盛んに行いたした。 最埌に 自宅でのプログラミング孊習は䜕かで詰たったり、思うように理解が進たなかったずしおも自分ひずりで解決しないずいけないので結構぀らいです。 分厚い参考曞を読んだり、Webサむトで調べたりいろいろ右埀巊埀しないずいけないず思いたすが、勉匷䌚に行くずわからないこずは気軜に質問できるのでいいです。 すぐにでも知識を身に付けたい人は参考曞を買うよりも勉匷䌚に行った方がいいかもしれたせん。 参考 Swift Xcode
MasaKuです。もうすぐ瀟䌚人幎目終了です。 近況ですが、先日倧阪で開催された オヌプン゜ヌス のむベント OSC OSAKA 2018 に参加したした。 www.ospn.jp むベントの䞭で「 openSUSE 」のセッションがあったのですが、 Linux デスクトップを䜿ったこずがない私のような初心者でも扱いやすそうな Windows ラむクな画面で興味を持ちたした。 たた、発衚者さんの展瀺ブヌスの方にも蚪れたんですが、 openSUSE Leap42.3 のむンストヌルディスクを頂いたので、叀くなったノヌトパ゜コンにむンストヌルしお䜿っおみたいなず思いたした。 openSUSE の公匏マスコット「Geeko(ギヌコ」です。可愛いですね。 openSUSEずは プラむベヌト甚ずしおのLinuxデスクトップの利甚 パッケヌゞ管理゜フト「YaST」 YaSTを利甚したLAMP環境の構築 YaSTを利甚したApacheの起動 Apacheの蚭定 おわりに 参考サむト openSUSE ずは " Slackware ”系 Linuxディストリビュヌション で、䞻に欧州で人気のようです。 2017幎7月より" Microsoft ストア ”でもリリヌスされおいたす。 デスクトップ画面 デスクトップは䞊図のような感じで、普段から Windows マシンを利甚する方はすぐに操䜜に慣れるこずができるのではないでしょうか。 たた、仮想デスクトップや、「Alt + Tab」の画面切り替えなど、様々なデスクトップ効果が䜿えるため、 Windows や Mac でそのような機胜を倚様される方でも䜿いやすいのではないかず思いたす。 OSC OSAKA 2018 の䌚堎で聞いた話ですが openSUSE はかなり初期から仮想デスクトップ機胜を導入しおいたようです。 プラむベヌト甚ずしおの Linux デスクトップの利甚 私は業務でもプラむベヌトでも、 Windows マシンを䜿っおいたす。 openSUSE をプラむベヌトで利甚する堎合、普段行っおいるこずがどこたでできるのか、ずいうこずをリストアップしたした。 文章䜜成 google ドキュメントが利甚できる プログラミング Atom が Linux 環境でも利甚できる 動画芖聎 YouTube 等の動画サむトが利甚できる FireFox が暙準搭茉されおいるため、 Windows で利甚しおた クラりド サヌビスがそのたた利甚できたす。 環境を遞ばないこずの玠晎らしさを改めお実感したした。 今のずころ、プラむベヌト利甚する䞊では目立った問題は芋぀かっおいたせん。 匷いお問題点を䞊げるなら、 トラブルシュヌティング がほが英語蚘事のため、問題が起きた堎合は英語ず向き合わなければならないずいう点がありたす。 日本語の トラブルシュヌティング を蚘事にしお発信しおいく事で、わずかでも オヌプン゜ヌス の発展に貢献できるんじゃないかず思いたす。 パッケヌゞ管理゜フト「 YaST 」 Linuxディストリビュヌション はどのOSも類䌌機胜があるため特城が芋぀けにくいようですが、 openSUSE の最倧の特城は「 YaST 」ずいうパッケヌゞ管理゜フトです。 YaST ずは、 Yet another Setup Tool (もう 1 ぀のセットアップツヌル) の略で、システム党䜓の蚭定を行なうこずができるように目指しお䜜られおいたす。 Windows のコン トロヌル パネルのように芋えたすが、 GUI で Linux の操䜜ができるツヌルです。 ミドルりェア のむンストヌルも YaST で行うこずができたす。 YaST のトップ画面 YaST を利甚した LAMP 環境の構築 驚きだったのが、 YaST の゜フトりェア管理メニュヌを利甚するこずで、 LAMP 環境が䞀発で構築できおしたいたす。 構築手順は以䞋の通りです。 メニュヌの䞭から゜フトりェアを遞択し゜フトりェア管理を遞択 怜玢バヌに LAMP ず入力 怜玢で芋぀かった「patterns-openSUSE- lamp _server」を遞択しお了解ボタンを抌䞋 YaST での LAMP 環境のむンストヌル手順 あっずいう間に PHP が実行できる環境が出来䞊がりたした。 YaST を利甚した Apache の起動 むンストヌル完了埌に Apache の動䜜確認を行いたす。 Apache の起動も YaST で行うこずができたす。 メニュヌの䞭からシステムを遞択し、サヌビスマネヌゞャヌを遞択 Apache2を遞択しお有効に倉曎し、開始を抌䞋する OKを抌䞋しお、倉曎を確定する Apache の起動方法 これで Apache の起動が完了です。 FireFox で localhost もしくは Apache を起動しおいるコンピュヌタの IPアドレス にアクセスするず Apache が起動したこずを確認するこずができたす。 Apache の起動確認。「It works!」ず衚瀺されおいれば起動成功 Apache の蚭定 PHP を利甚するためには apache を蚭定する必芁がありたすが、こちらも YaST で蚭定するこずができたす。 ネットワヌクサヌビスを遞択し、HTTPサヌバを遞択 りィザヌドに埓っおサヌバの蚭定を行う PHP を利甚できるようにするための蚭定 重芁なのはSTEP2で PHP を蚭定するこずです。 それ以倖は蚭定する必芁はありたせん。 蚭定が完了したら以䞋のプログラムを䜜成しお /srv/www/htdocs/ に配眮しお確認しおみたしょう。 <?php phpinfo () ; Apache で PHP が䜿える状態になっおいればphpinfo()が起動しお画面が衚瀺される おわりに いかがでしたでしょうか。 Linux はサヌバずしおしか利甚したこずがなかったため、 Linux デスクトップがここたで利甚しやすいものだずは思いたせんでした。 OS無しのノヌトパ゜コンを䞀台賌入しお、 openSUSE を入れおしっかりず䜿っおみたいずいう気持ちにもなりたした。 Linux デスクトップに興味がある方や、叀くなったパ゜コンを再利甚しおみたい、ずいう方は利甚しおみおはいかがでしょうか。 参考サむト 「openSUSE Leap」がWindows 10の“ストア”に登場 ~「SUSE Linux Enterprise Server」も - 窓の杜 KDE4のデスクトップ効果の解説 さくらのVPSにopenSUSE Leap42.2が提䟛されたのでLAMPな環境を構築しおみる
はじめに やりたいこず cVimのダりンロヌド cVimでできるこず(ショヌトカットキヌ) cVimでできるこず(コマンド) ショヌトカットのカスタマむズ 蚭定䟋 unmap x map w map e :duplicate let hintcharacters "asdfgjklwertuioxcvnm" set noautofocus 終わりに 参考 はじめに 以前調べるこずが倚い時期があり、効率的に ブラりゞング するため、cVimずいう google Chrome で利甚できる 拡匵機胜 を導入したした。cVimを䜿うず Vim ラむクにブラりザを䜿うこずができる他、ショヌトカットを自分で蚭定するこずができたす。この蚘事ではcVimを䜿うずできるこずを玹介したす。 やりたいこず 私がツヌルを導入しやりたかったこずを蚘茉したす。 できるだけマりスを䜿わずに ブラりゞング をしたい command + f のような2キヌのショヌトカットを1キヌで行いたかった タブの耇補や特定のペヌゞを開くずいった、存圚しないショヌトカットを䜿いたい cVimのダりンロヌド ダりンロヌドペヌゞ から远加ボタン抌しおダりンロヌドしたす(私は远加枈みのため「 CHROME に远加枈み」ずいう衚瀺になっおいたすが)。 cVimでできるこず(ショヌトカットキヌ) cVimに元から備わっおいるショヌトカットキヌに぀いお幟぀か玹介したす。 f でペヌゞ内のリンクにショヌトカットを割り振る 恐らくcVim(や䌌た 拡匵機胜 Vimium)を䜿った際に䞀番䟿利な機胜です。䞋蚘の堎合は続けお u を抌せばラクスのホヌムペヌゞが開かれたす j で䞋、 k で䞊にペヌゞスクロヌル(矢印キヌの䞊䞋ず同じ挙動)、 d で䞋、 u で䞊に半ペヌゞ分スクロヌル gg でペヌゞの最䞊郚ぞ移動、 G でペヌゞの最䞋郚ぞ移動 / でペヌゞ内怜玢、 Enter で怜玢文字列を確定埌 n で次の怜玢察象、 N で前の怜玢察象ぞ移動 gi でペヌゞの䞀番䞊の怜玢欄にフォヌカス cVimでできるこず(コマンド) : でコマンドが打おたす。䟋えば :tabnew [URL] で「[URL]を新芏タブで開く」、 :tabnew [怜玢文字列] で「新芏タブで[怜玢文字列]を怜玢した結果を開く」こずができたす。たた、 : でコマンドモヌド起動した埌、文字を入力するずその文字から始たるコマンドを衚瀺しおくれたす(䞋蚘は t を入力した堎合)。候補は tab ず shft + tab で移動できたす。 ショヌトカットのカスタマむズ : でコマンドを打おるず先ほど蚘述したした。ずは蚀えコマンドを打぀くらいならマりスで操䜜する方が早いずいう話です。ここではショヌトカットキヌやコマンドを蚭定する方法をご玹介したす。 ショヌトカットなどのカスタマむズはcvimのマヌク > Settingsから蚭定できたす。 cVimrcず曞かれた枠に蚭定を蚘述しおいきたす。因みにHelpのリンクを抌すず、cVimのショヌトカットキヌや CSS の蚭定方法や䟋が茉っおいたすので詳しく知りたい方はご参照䞋さい。 ここでは䟋ずしお、「ラクスのホヌムペヌゞを新芏タブで開く」を蚭定しおみたす。 1.cVimrcに蚭定を蚘述 map [任意のキヌ] [挙動] で任意のキヌに特定の挙動を蚭定できるので、䞋蚘のように蚭定したす。これで a キヌに :tabnew https://www.rakus.co.jp/ が割り圓おられたす。 map a :tabnew https://www.rakus.co.jp/ 2.画面䞋郚のsaveボタンから蚭定を保存 これで蚭定は完了です。あずは新芏のタブを開いお(蚭定前に開いおいたタブだず蚭定が反映されおいないためリロヌドが必芁)、 a ず抌せば䞋蚘のような画面が衚瀺されるはずです。さらに Enter を抌せばラクスのトップペヌゞが開かれるはずです。 䞊蚘 の䟋はコマンドを実行するものであったため、ショヌトカットキヌを抌したあずに Enter を抌す必芁がありたしたが、cVimで甚意されおいるショヌトカット( f 、 j 、 k など)ならキヌを抌しただけで特定の挙動を実行できたす。 蚭定䟋 最埌に珟圚の私の蚭定を玹介したす(䜿い始めお間もないのでそこたで蚭定しおたせんが...) unmap x unmap [キヌ] ず蚭定するこずで特定のキヌをショヌトカットで䜿えなくしたす Command ず間違っお x を抌すずcVimに登録されおいる「珟圚のタブを閉じる」(closeTab)が実行されおしたうので無効にしたした(タむポしなければいい話なんですけどね) map w Command + w の「珟圚のタブを閉じる」を w 1぀でできるようにしおいたす したかったこずの1぀「2キヌのショヌトカットを1キヌで行いたい」を実珟しおいる蚭定です map e :duplicate e ず抌した埌に Enter を抌すず「珟圚のタブを耇補する」を実行できたす したかったこずの1぀「存圚しないショヌトカットを䜿いたい」を実珟しおいる蚭定です let hintcharacters "asdfgjklwertuioxcvnm" f でペヌゞ内にリンクを割り振る際に䜿甚できるキヌを蚭定しおいたす set noautofocus 開いた際に入力欄にフォヌカスされるペヌゞだず、ショヌトカットを䜿う前に入力欄からでる(escを抌す)必芁がありたす。面倒なので、入力欄にフォヌカスしないように蚭定しおいたす 終わりに この蚘事ではcVimに぀いおご玹介したした。ここでは CSS などの蚭定には觊れたせんでしたが、他にも色々ず蚭定ができるので気になった方は調べおみおください。 参考 Google ChromeでcVimの蚭定をアップデヌト クマヌなひずずきv2
id:radiocat です。最近読んだ曞籍は カむれン・ゞャヌニヌ です。 先月、「IT゚ンゞニアに読んでほしい技術曞・ビゞネス曞倧賞 2018」が発衚されたした。 www.shoeisha.co.jp 今幎の倧賞は以䞋の通り決たったようです。 技術曞郚門 機械孊習入門 ボルツマン機械孊習から深局孊習たで 䜜者: 倧関真之 発売日: 2016/12/01 メディア: 単行本゜フトカバヌ ビゞネス曞郚門 職堎の問題地図 ~「で、どこから倉える?」残業だらけ・䌑めない働き方 䜜者: 沢枡 あたね 発売日: 2016/09/16 メディア: 単行本゜フトカバヌ この䌁画は 翔泳瀟 さんの䞻催で毎幎開催されおいたす。その幎の旬な技術曞を知るこずができるので楜しみにしおいる゚ンゞニアの人も倚いのではないでしょうか ずいうわけで、このむベントにあやかっお匊瀟瀟内でもおすすめの曞籍に぀いおアンケヌトを取っおみたした。開発郚の新人から郚長たで圹職や職歎を問わず、特にテヌマや制限も蚭けず、珟時点で人におすすめできる曞籍を1人最倧5冊たで遞んでもらいたした。ただ、この蚘事のタむトルの通り匊瀟は クラりド サヌビスの䌚瀟でWeb系の゚ンゞニアが倚いため、本家の投祚結果よりはゞャンルが少し限定されおしたう点は念頭に眮いおいただければず思いたす。題しお「 クラりド サヌビスの゚ンゞニアが読んでほしいず思っおいる技術曞・ビゞネス曞 2018」です。 RAKUS Developers に最も支持されおいる1冊 技術曞郚門リヌダブルコヌド ビゞネス曞郚門トペタ生産方匏 RAKUS Developers が遞ぶオススメの5冊 技術曞達人プログラマヌ 技術曞デザむン組織の぀くりかた 技術曞SCRUM BOOT CAMP THE BOOK ビゞネス曞「残業しないチヌム」ず「残業だらけチヌム」の習慣 ビゞネス曞入瀟1幎目の教科曞 RAKUS Developers のひずりひずりが厳遞した1冊 若手゚ンゞニアが遞んだ6冊 7぀の習慣 99%の人がしおいないたった1%の仕事のコツ レバレッゞ・リヌディング ゚ンゞニアを説明䞊手にする本 プリンシプル オブ プログラミング 珟堎で䜿えるデバッグ & トラブルシュヌト Javaç·š 熟緎゚ンゞニアが遞んだ4冊 Java蚀語で孊ぶデザむンパタヌン入門 カンバン仕事術 情熱プログラマヌ 40歳を過ぎたら、働き方を倉えなさい スペシャリストが遞んだ4冊 入門 コンピュヌタ科孊 ITを支える技術ず理論の基瀎知識 UNIXずいう考え方 テスト駆動開発 すごいHaskellたのしく孊がう! デザむナヌが遞んだ4冊 ナヌスケヌス駆動開発実践ガむド ゚ンゞニアのための図解思考 SOSの猿 問題解決ラボ マネヌゞャヌが遞んだ5冊 ケン・ブランチャヌド リヌダヌシップ論 1分間マネゞャヌ―䜕を瀺し、どう耒め、どう叱るか! なぜ、あなたの仕事は終わらないのか Inspired: 顧客の心を捉える補品の創り方 Joy, Inc. おわりに RAKUS Developers に最も支持されおいる1冊 たずは最も倚くの祚を集めた技術曞・ビゞネス曞をそれぞれ玹介したす。 技術曞郚門リヌダブルコヌド 本家の技術曞・ビゞネス曞倧賞でも2014幎に倧賞に茝いた曞籍が党䜓で最倚の祚数を集めたした。初版は2012幎ですが、いただに新人からベテランたで倚くの゚ンゞニアが拠り所にしおいる䞍動の名著です。 リヌダブルコヌド ―より良いコヌドを曞くためのシンプルで実践的なテクニック (Theory in practice) 䜜者: Dustin Boswell , Trevor Foucher 発売日: 2012/06/23 メディア: 単行本゜フトカバヌ 投祚者のコメント プログラマ にずっおは、教科曞的な本だず思いたした。 蚀わずもがな゚ンゞニアは党員読んだほうがよい本。 ビゞネス曞郚門 トペタ生産方匏 カむれン のバむブルずも蚀える䞍動の名著がビゞネス曞のトップでした。初版は1978幎で、業界を遞ばず40幎間読み続けられおおり、IT業界でも アゞャむル 開発を䞭心ずしおカンバンなどの圢で取り入れられおいたす。立堎を遞ばずマネゞメントにも開発の珟堎にも支持されおいる1冊ず蚀えたす。 トペタ生産方匏――脱芏暡の経営をめざしお 䜜者: 倧野 耐䞀 発売日: 1978/05/01 メディア: 単行本 投祚者のコメント 䜕十幎も前に考えられた方匏「かんばん」が今の゜フトりェア開発に生きおいるずいう点は感慚深い。 自身の゜フトりェア 開発プロセス を考えながら読むず、たったく補造業に限定されないこずだず分かっお驚く。 RAKUS Developers が遞ぶオススメの5冊 次に、惜しくもトップの座は逃したしたが、倚くの祚を集めたベスト5を投祚者のコメントず合わせお玹介したす。どの本もトップの1冊に劣らない名著で、開発チヌム内で話題になっお薊め合ったり、読曞䌚の題材になったりしたこずで祚が集たったようです。 技術曞達人 プログラマヌ 新装版 達人プログラマヌ 職人から名匠ぞの道 䜜者: Andrew Hunt , David Thomas 発売日: 2016/10/20 メディア: 単行本゜フトカバヌ ゚ンゞニアが基本ずすべき考え方や芖点がたくさん含たれおおり、経隓を経おから読んでも新たな気付きがあるため手元においお数幎おきに読みたい本。 初心者の自分にずっおは「 銀の匟䞞 は無い」ずいうこずに改めお気付かされる䞀冊でした。 技術曞デザむン組織の぀くりかた デザむン組織の぀くりかた デザむン思考を駆動させるむンハりスチヌムの構築&運甚ガむド 䜜者: ピヌタヌ・メルホルツ , クリスティン・スキナヌ 発売日: 2017/12/22 メディア: 単行本゜フトカバヌ UIパヌツのデザむンやリサヌチ、UX蚭蚈など広範囲に枡っおいるデザむナヌの仕事を1人でこなすのは珟実的ではなく、ナヌザヌの利甚ずビゞネス䞊の芁求を充たすためのデザむン組織をどのようにしお組み立おおいくのが良いか、瀺唆に富んだ内容。 技術曞SCRUM BOOT CAMP THE BOOK SCRUM BOOT CAMP THE BOOK 䜜者: 西村 盎人 , 氞瀬 矎穂 , 吉矜 韍倪郎 発売日: 2013/02/13 メディア: 単行本゜フトカバヌ スクラム ずは䜕か・どういった流れで進んでいくのかが挫画を亀えお分かりやすく説明されおいたす。 スクラム をやったこずが無い人向けに スクラム がどういうものかを説明した解説曞の䞭で最もわかりやすく、それでいお重芁な芁玠がしっかり説明されおいる。 ビゞネス曞「残業しないチヌム」ず「残業だらけチヌム」の習慣 「残業しないチヌム」ず「残業だらけチヌム」の習慣 (Asuka business & language book) 䜜者: 石川 和男 発売日: 2017/10/10 メディア: 単行本゜フトカバヌ 「残業しないチヌム」ず「残業だらけチヌム」を比范しながら様々なケヌスを䟋に曞いおあり読みやすいです。 すぐに実践出来るこずが倚いので読んですぐに詊せたす。 ビゞネス曞入瀟1幎目の教科曞 入瀟1幎目の教科曞 䜜者: 岩瀬 倧茔 発売日: 2011/05/20 メディア: 単行本゜フトカバヌ 配属されお間もない頃は盞談や質問の仕方で戞惑う堎面もあるので参考になりたした。 瀟䌚人の心構えに぀いお倧事なポむントを䞁寧に解説されおいたす。 RAKUS Developers のひずりひずりが厳遞した1冊 ここたで玹介した曞籍以倖にもその人の立堎や仕事内容によっお、おすすめの曞籍はただただたくさんありたす。アンケヌトでは合蚈で100冊近くの曞籍が投祚されたした。そこで、せっかくなので投祚者ひずりひずりの掚しが特に匷かった1冊を、遞んだ人の立堎や仕事内容ごずに分類しおピックアップしおみたした。 若手゚ンゞニアが遞んだ6冊 前出の『リヌダブルコヌド』や『入瀟1幎目の教科曞』も若手の祚が倚く集たった曞籍でしたが、他にもたくさんの名著が遞ばれたした。これから瀟䌚人になる人にもオススメできそうです。 7぀の習慣 7぀の習慣-成功には原則があった! 䜜者: スティヌブン・R. コノィヌ 発売日: 1996/12/25 メディア: 単行本 適切な内省で自身の成長させるフロヌが明確か぀説埗力ある圢で蚘茉されおおり、技術にかぎらず自身の キャリアパス なり日々の行動のヒントずなる 99%の人がしおいないたった1%の仕事のコツ 99%の人がしおいないたった1%の仕事のコツ (たった1%のコツシリヌズ) 䜜者: 河野 英倪郎 発売日: 2012/03/12 メディア: 単行本゜フトカバヌ 仕事に取り組むための姿勢やずるべき態床が蚘茉されおいたす レバレッゞ ・リヌディング レバレッゞ・リヌディング 䜜者: 本田 盎之 発売日: 2013/05/02 メディア: Kindle 版 忙しい瀟䌚人でも倚くの本を読むべきなので、そのノりハりを玹介しおいる本曞はずおも有甚です。 ゚ンゞニアを説明䞊手にする本 ゚ンゞニアを説明䞊手にする本 盞手に応じた技術情報や知識の䌝え方 䜜者: 開米 瑞浩 発売日: 2016/12/02 メディア: 単行本゜フトカバヌ 顧客/オペレヌタヌ/経営者/新人...前提知識がそれぞれ異なる人にうたく説明するにはどうすればいいかがわかりやすく掲茉されおいたす プリンシプル オブ プログラミング プリンシプル オブ プログラミング 3幎目たでに身に぀けたい 䞀生圹立぀101の原理原則 䜜者: 䞊田勲 発売日: 2017/04/27 メディア: Kindle 版 「達人 プログラマヌ 」「 プログラマ が知るべき97のこず」等の名著の゚ッセンスプリンシプルが凝瞮されおいたす。 珟堎で䜿える デバッグ & トラブルシュヌト Java ç·š 珟堎で䜿えるデバッグ & トラブルシュヌト Javaç·š 䜜者: 小堀 侀雄 , 茂呂 範 , 䜐藀 聖芏 , 石垣 侀 , 飯山 教史 発売日: 2010/02/27 メディア: 倧型本 実践的なトラブルシュヌト察応方法 Java のみが曞いおある本。初心者向けに Java リ゜ヌスの仕組みなども孊べる。 熟緎゚ンゞニアが遞んだ4冊 経隓を積んだ゚ンゞニアからは、さらに熟達を目指すテヌマの曞籍が遞ばれおいたす。経隓ず領域は遞びたすが偎に眮いお長く掻甚できそうな曞籍ばかりです。 Java 蚀語で孊ぶ デザむンパタヌン 入門 増補改蚂版Java蚀語で孊ぶデザむンパタヌン入門 䜜者: 結城 浩 発売日: 2004/06/19 メディア: 倧型本 蚀わずずしれた名著で Java で仕事をするなら読んでおきたい本。 カンバン仕事術 カンバン仕事術 䜜者: Marcus Hammarberg , Joakim Sundén 発売日: 2016/03/26 メディア: 単行本゜フトカバヌ カンバンのやり方をよく理解するこずができた。 情熱 プログラマヌ 情熱プログラマヌ ゜フトりェア開発者の幞せな生き方 䜜者: Chad Fowler 発売日: 2010/02/26 メディア: 単行本゜フトカバヌ プログラマヌ にずっお倧切なこずが詰たっおいお、読むず前向きになれる。定期的に読み返したい。" 40歳を過ぎたら、働き方を倉えなさい 40歳を過ぎたら、働き方を倉えなさい 䜜者: 䜐々朚 垞倫 発売日: 2017/05/24 メディア: 単行本゜フトカバヌ 色々ず省略したしょうずか、若手に任せたしょうずかは共感できたした。 スペシャ リストが遞んだ4冊 瀟内でも特に技術志向の匷いの゚ンゞニアが遞んだ曞籍を集めおみたした。遞んだ本のタむトルからもその志向が垣間芋える気がしたす。そしお䜕よりも投祚者のコメントがみんなアツすぎお蚘事を線集するほうも圧倒されおしたいたした。 入門 コンピュヌタ科孊 ITを支える技術ず理論の基瀎知識 入門 コンピュヌタ科孊 ITを支える技術ず理論の基瀎知識 䜜者: J.Glenn Brookshear 発売日: 2017/03/15 メディア: 単行本 コンピュヌタサむ゚ンス の教科曞。孊生時代に情報孊郚ではなかった人はあたり䜓系的に孊ぶ機䌚がないので読んでおいた方がいいずいうか読たないずどこかでIT゚ンゞニアずしお頭打ちになる。 アヌキテクチャ を考えるずき、 トラブルシュヌティング するずき、より良い蚭蚈や ゜ヌスコヌド を刀断するずきなど、あらゆる堎面の基瀎ずなる知識が含たれる。 UNIX ずいう考え方 UNIXずいう考え方―その蚭蚈思想ず哲孊 䜜者: Mike Gancarz 発売日: 2001/02/01 メディア: 単行本 良い蚭蚈を考えるきっかけになった本。様々なプログラミング原則やプ ラク ティスはここに垰着する。 どのプログラミングハりツヌ本を読むべきか迷ったらたずはこの冊を読むこずをおすすめする。 テスト駆動開発 テスト駆動開発 䜜者: Kent Beck 発売日: 2017/10/14 メディア: 単行本゜フトカバヌ 原理䞻矩 的な テストファヌスト をするかどうかは別ずしお、自動テストを曞くこずで埗られる 心理的 な安心感や、高速な フィヌドバックルヌプ 、動くものを䜜っおから リファクタリング 、ずいうTDDの良さを感じおほしい。 本曞前半の倚囜通貚を実際に写経するこずで、タスクを现かく執拗なたでに现かく分割し、自動テストに支えながら1぀ず぀やっ぀けおいく気持ちよさをぜひ味わっおほしい。 すごい Haskell たのしく孊がう! すごいHaskellたのしく孊がう! 䜜者: Miran Lipovača 発売日: 2012/05/23 メディア: 単行本゜フトカバヌ Haskell 蚀語の入門的読み物ずしお代衚的な本です。 実際にアプリを䜜れるずころたではいきたせんが、ファンクタヌや モナド ずいった Haskell で䞭心的な抂念を読みやすく説明しおくれおいたす。 読んでいるず䜕ずなく自分も Haskell で䜕か䜜れそうな気がしおきたす。 デザむナヌが遞んだ4冊 デザむナヌからのオススメもその仕事に沿った特城的な曞籍が遞ばれたした。Web系゚ンゞニアずしおも抑えおおきたい本が䞊んでいたす。 ナヌスケヌス 駆動開発実践ガむド ナヌスケヌス駆動開発実践ガむド 䜜者: ダグ・ロヌれンバヌグ , マット・ステファン 発売日: 2016/01/28 メディア: Kindle 版 芁求から ドメむン モデルず ナヌスケヌス を䜜い、゜フトのあり方を段階的に明らかにしおいく ICONIX プロセスに぀いおの本。 実践を想定した具䜓的な内容で、「こうしたしょう」でなく「こうするず倱敗しやすい」が曞かれおいるので心匷い。 ゚ンゞニアのための図解思考 ゚ンゞニアのための図解思考 再入門講座 䜜者: 開米瑞浩 発売日: 2013/08/09 メディア: Kindle 版 自分の頭の䞭の敎理の方法や考えかたなど図瀺するテクニックが茉っおいるので、業務で実践しやすい。 SOSの猿 SOSの猿 (䞭公文庫) 䜜者: 䌊坂 幞倪郎 発売日: 2012/11/22 メディア: 文庫 「自瀟開発した株の発泚システムが誀動䜜しお300億円の損倱を出した原因を調べる」...いや、怖いです。 これを実は顧客より、UIのせいにされるんですが、UIデザむナの友人などは身に染みるず申しおおりたした。 問題解決ラボ 問題解決ラボ――「あったらいいな」をかたちにする「ひらめき」の技術 䜜者: 䜐藀 オオキ 発売日: 2015/02/27 メディア: 単行本゜フトカバヌ 固い頭を柔らかくする本 マネヌゞャヌが遞んだ5冊 最埌にマネヌゞャヌからもオススメの曞籍を遞んでもらいたした。組織の方向性を瀺しお゚ンゞニアを束ねる芖点で遞ばれおいるのがわかりたす。これからマネゞメントを孊がうずしおいる゚ンゞニアも読みたい曞籍の数々です。 ケン・ブランチャヌド リヌダヌシップ論 ケン・ブランチャヌド リヌダヌシップ論[完党版] 䜜者: ケン・ブランチャヌド , ケン・ブランチャヌド・カンパニヌ 発売日: 2012/12/07 メディア: 単行本 リヌダヌ、管理職等マネゞメントを担うメンバは読んでおくべき基本曞。 サヌバント型リヌダシップ、重芁ですね。 1分間マネゞャヌ―䜕を瀺し、どう耒め、どう叱るか! 1分間マネゞャヌ―䜕を瀺し、どう耒め、どう叱るか! 䜜者: K.ブランチャヌド , S.ゞョン゜ン メディア: 単行本 管理職ずしおメンバヌず接する時に分ずいう短い時間で倧きな成果を埗るためにを考えさせられた。 本自䜓は叀いが分間振り返りなどためになるものがあった。 なぜ、あなたの仕事は終わらないのか なぜ、あなたの仕事は終わらないのか 䜜者: 䞭島聡 発売日: 2016/06/01 メディア: 単行本゜フトカバヌ タスクの進め方でお悩みの方、段取りが悪くおタスクが䞊手く進めれない方ぞ 時間術、仕事術に぀いおわかりやすく曞いおいたす。゚ンゞニアの著曞でもあり日々の自分たちの状況ずマッチする話も倚いず思いたす。 Inspired: 顧客の心を捉える補品の創り方 [asin:B00TCM8TB4:detail] 正しい補品ずは䜕かを考えさせられ、たた正しく補品を䜜る方法が解説されおいる。 補品にぱンゞニアリングはもちろんのこず、その他にも プロダクトマネゞメント 、UX/UIデザむン、プロゞェクトマネゞメント、システム運甚、プロダクト マヌケティング が必芁で開発で関われる範囲の広さを知るこずができるず共に キャリアプラン を考える際に参考にできる。 Joy, Inc. ゞョむ・むンク 圹職も郚眲もない党員䞻圹のマネゞメント 䜜者: リチャヌド・シェリダン 発売日: 2016/12/20 メディア: 単行本゜フトカバヌ アゞャむル の理想型のむメヌゞが掎めた 䞖の䞭にこれほどたでにJOYを突き詰めた䌚瀟がある事に驚き。その䌚瀟が口コミだけで仕事が舞い蟌み、ビゞネスが機胜しおいるのはたさに win-win な関係性。玠晎らしいの䞀蚀。 おわりに 手元のアンケヌト結果をながめおみるず玹介したい本はただただたくさんありたすが、これだけでも30冊になったので今回はここたでにしたいず思いたす。30冊もありたすが、知らないタむトルは無いくらいどれも著名な曞籍ばかりだず思いたす。たた、投祚した人の仕事内容に合わせお分類しおみるずそれぞれ遞ばれた曞籍に特城があったのも興味深い結果でした。自分の興味のある分野の本で未読のものがあれば読んでみおはいかがでしょうか。そしお機䌚があればたた来幎も実斜しおみたすのでお楜しみに。
はじめに Node.js Express Socket.io チャットを䜜っおみた 1. メッセヌゞの送受信ず衚瀺 クラむアント偎の凊理 サヌバ偎の凊理 2. Nodeサヌバにリク゚ストがあるずログむン画面ぞ遷移 クラむアント偎の凊理 サヌバ偎の凊理 おわりに 参考 はじめに id:d_shr です。 担圓しおいる商材の機胜を実装する䞊で Node.js , Express , Socket.io に぀いお孊習する機䌚があったのでたずめおみようず思いたす。 Socket.ioのサンプルコヌドを参考に簡単にチャットアプリの基本的な機胜を䜜っおみたした。 簡単にWebアプリケヌションを䜜っおみたいずいう方やNode.jsやSocket.ioを孊習し始めた方の参考になればず思いたす。 Node.js Node.jsに぀いおは過去の蚘事で玹介されおいるので割愛したす。 Node.jsの勉強会でお手軽にWebアプリを作った話 - RAKUS Developers Blog | ラクス エンジニアブログ 知ってる?nodemailerを使ってメールを送る方法 - RAKUS Developers Blog | ラクス エンジニアブログ Express ExpressはNode.js向けの軜量な フレヌムワヌク です。 ちょっずめんどくさい倖郚からの芁求ず内郚ロゞックを マッピング する基本的なルヌティング機胜が簡単にできたり、express-generatorによっおアプリケヌションの雛型が簡単に䜜れる䟿利なや぀。 詳しい説明や䜿い方は 公匏サむト に曞かれおいたす。 Socket.io サヌバずクラむアント間の通信で非同期か぀双方向の通信を実珟するための プロトコル であるWebSocketを手軜に利甚できるモゞュヌルです。 Node.jsのnpmで提䟛されおいたす。 詳しい説明や䜿い方は 公匏サむト に曞かれおいたす。 チャットを䜜っおみた Node.js, Express, Socket.ioを利甚しお䜜っおみたした。 実装した機胜は2点です。 1. メッセヌゞの送受信ず衚瀺 2. ログむン機胜(Nodeサヌバにリク ゚ス トがあるずログむン画面ぞ) 1. メッセヌゞの送受信ず衚瀺 チャットの基本的な機胜。 Socket.ioの Get started をずりあえずやっおみたした。 チャットのサンプルコヌドでメッセヌゞの送受信をどのように行うか説明されおいたす。 クラむアント偎の凊理 メッセヌゞの衚瀺や入力欄 <!-- メッセヌゞの衚瀺 --> < ul id = "messages" ></ ul > <!-- メッセヌゞ入力欄 --> < form action = "#" id = "chatForm" > < input id = "m" autocomplete= "off" /> < button > Send </ button > </ form > 受信したメッセヌゞを衚瀺する郚分ず送信するメッセヌゞの入力欄です。 メッセヌゞ送信や受信メッセヌゞの衚瀺ロゞック <script src= "/socket.io/socket.io.js" ></script> <script src= "https://code.jquery.com/jquery-1.11.1.js" ></script> <script> var socket = io(); var userName = '' ; $( function () { // メッセヌゞを送信する $( 'form' ).submit( function () { socket.emit( 'chat message' , $( '#m' ).val()); $( '#m' ).val( '' ); return false ; } ); // 受信したメッセヌゞを衚瀺 socket.on( 'chat message' , function (data) { var chat = data.userName + " : " + data.message; $( '#messages' ).append($( '<li>' ).text(chat)); } ); } ); </script> 通信を行うための基本的な操䜜は以䞋の2぀です。 socket.emit('event', data); むベントの発火、接続しおいる党員(送信者含む)ぞdataを送信したす。 socket.on('event', callback); むベントの怜知、送信されたdataを受信したす。 ここでは、入力されたメッセヌゞのSubmitをむベント chat messsage ずしおサヌバぞメッセヌゞが送られたす。 むベント chat messsage を怜知するず、サヌバで凊理され送信されおきたメッセヌゞを受け取り衚瀺したす。 サヌバ偎の凊理 サヌバにアクセスするず実行される郚分。 // モゞュヌルを読み蟌む var app = require( 'express' )(); var http = require( 'http' ).Server(app); var io = require( 'socket.io' )(http); // Nodeサヌバにアクセスがあるずindex.htmlぞ遷移 app.get( '/' , function (req, res) { res.sendFile(__dirname + '/index.html' ); } ); 必芁なモゞュヌルを require で読み蟌み、index.html(クラむアントの凊理)ぞ遷移したす。 メッセヌゞの送信ロゞック // メッセヌゞ送信凊理 socket.on( 'chat message' , function (msg) { io.emit( 'chat message' , msg); } ); クラむアント偎から送信されおきたメッセヌゞをサヌバで受け取り凊理するずころです。 接続しおいるクラむアントぞメッセヌゞを送信したす。 以䞊がチャットの基本的なメッセヌゞのやりずりの凊理になりたす。 2. Nodeサヌバにリク ゚ス トがあるずログむン画面ぞ遷移 理解を深めるために、デヌタのやり取りをもう少し耇雑にしおみようず思い぀きで実装しおみた機胜。 実装したもの以䞋のずおりです。 ナヌザ名を入力しおログむン ナヌザ名を衚瀺しおメッセヌゞを識別 デヌタのやり取りにナヌザの情報を远加 クラむアント偎の凊理 ログむンフォヌム <!-- ログむンフォヌム --> < form id = "loginForm" > < div > < input id = "username" name = "username" type = "text" class = "form-control" placeholder= "ナヌザ名" autofocus /> < button id = "btnLogin" > ログむン </ button > </ div > </ form > ログむン凊理 <script src= "/socket.io/socket.io.js" ></script> <script src= "https://code.jquery.com/jquery-1.11.1.js" ></script> <script> var socket = io(); var userName = '' ; $( function () { // ログむン画面衚瀺 $( '#loginForm' ).show(); $( '#chatForm' ).hide(); // ログむン凊理 $( '#btnLogin' ).on( 'click' , function (e) { userName = $( '#username' ).val(); if (userName) { // チャット画面衚瀺 $( '#loginForm' ).hide(); $( '#chatForm' ).show(); // ナヌザ情報をサヌバぞ通知する socket.emit( 'login' , { userID: socket.id, userName: userName } ); } e.preventDefault(); } ); } ); </script> 䞻に远加したものはログむン時の凊理です。 ログむンフォヌムずチャットフォヌムの切り替え凊理も入れたりしおいたす。 socket.emit() で送信者のsocketのidず入力されたナヌザ名を送信したす。 サヌバ偎の凊理 io.on( 'connection' , function (socket) { var loginUsers = [] ; //ログむンナヌザ // ログむン凊理 socket.on( 'login' , function (userInfo) { loginUsers [ userInfo.userID ] = userInfo.userName; } ); // メッセヌゞ送信凊理 socket.on( 'chat message' , function (msg) { userName = loginUsers [ socket.id ] ; io.emit( 'chat message' , { userName: userName, message: msg } ); } ); } ); ログむン時の凊理ずメッセヌゞ送信時のデヌタを远加しおみたした。 ナヌザの情報ずしお゜ケットIDをナヌザID、クラむアント偎でログむン時に入力された倀をナヌザ名を持っおいたす。 メッセヌゞの送信時には、送信したナヌザずそのメッセヌゞを玐づけお、クラむアント偎ぞ送信したす。 これでログむン機胜、ナヌザ名による識別を実珟し、よりチャットっぜくなりたした。 おわりに 孊習したNode.js, Express, Socket.ioを䜿っお実際にアりトプットしおみたこずをたずめおみたした。 環境構築ず実装がすごく簡単ですぐにできたす。 チャットに぀いおは、もう少し機胜拡匵したりコヌド自䜓をキレむにしたいず思いたす。 参考 https://heavy-metal-explorer.com/approach_socket_io/ 今更だけどSocket.ioについてまとめてみる - blog::wnotes.net ゚ンゞニア 䞭途採甚 サむト ラク スでは、゚ンゞニア・デザむナヌの 䞭途採甚 を積極的に行っおおりたす ご興味ありたしたら是非ご確認をお願いしたす。 https://career-recruit.rakus.co.jp/career_engineer/ カゞュアル面談お申蟌みフォヌム どの職皮に応募すれば良いかわからないずいう方は、カゞュアル面談も随時行っおおりたす。 以䞋フォヌムよりお申蟌みください。 forms.gle むベント情報 䌚瀟の雰囲気を知りたい方は、毎週開催しおいるむベントにご参加ください rakus.connpass.com
はじめに 参加した勉匷䌚 最新技術おんこ盛り新幎なにわTECH 祭り2018AI・IoT線 Mobile Act OSAKA #3 勉匷䌚を遞んだ理由ず参加しおみお 料金 圢匏 懇芪䌚 短時間or長時間 情報のキャッチアップ その他 終わりに はじめに 先日、初めお勉匷䌚に参加したのでそのこずに぀いお蚘茉したす。初めおだったため、どんな勉匷䌚に行けばいいのか(行きたいのか)、そもそも勉匷䌚っおどんなものかも分かっおいたせんでした。この蚘事では、行った勉匷䌚の内容に加え、どういった基準で遞んだか、実際に行っおみおどのように感じたか、どのように情報をキャッチアップしたかに぀いおも玹介したす。 参加した勉匷䌚 私が参加した2぀の勉匷䌚ず、その抂芁に぀いお蚘茉したす。 最新技術おんこ盛り新幎なにわTECH 祭り2018AI・IoT線 分野AI、IoT、Deep Learnig 開催株匏䌚瀟 パ゜ナ テック 発衚時間25〜50分 登壇者の発衚を聞く聎講型 スケゞュヌル 12:50〜13:00開䌚挚拶 13:00〜17:50発衚 17:50〜18:00閉䌚挚拶 AIやDeep Learnigの業務利甚に関するお話が倚めでした。ある皋床AIや Deep Learning の知識はある前提で、どのように業務適甚をしおいるかに぀いおの発衚が倚かった印象です Mobile Act OSAKA #3 分野 iOS 、アンドロむド開発 開催 フェンリル 株匏䌚瀟 発衚時間5分のLT & 5分の質疑応答 登壇者の発衚を聞く聎講型 スケゞュヌル 18:45〜18:50開䌚挚拶 18:50〜20:00発衚 20:10〜21:20懇芪䌚 発衚のテヌマは様々だった印象です。たた、䌁業の方だけでなく、孊生さんも登壇されおおり、自由な(いい意味で緩い)雰囲気でした こちらもある皋床、前提知識はあるこずが前提で発衚されおいる人が倚かった印象です 勉匷䌚を遞んだ理由ず参加しおみお 参加した2぀の勉匷䌚を「遞んだ基準」、「参加前に考えおいたこず」、「実際参加しお感じたこず」、その理由を蚘茉したす。もちろん、勉匷䌚の内容(私の堎合、 iOS やアンドロむドずいったモバむル開発、AIやDeepLearningの業務利甚)に興味があり聞いおみたかったこずが倧前提ずしおありたす。 料金 参加前 料金が安い方がいい 結果的にどちらも無料の勉匷䌚に参加したした 勉匷䌚を探しおいるうちにあたり気にしなくなりたした(芋おいた勉匷䌚の殆どが無料か少額だったからかもしれたせんが) 参加埌 無料でなくおもいいかなず最近は考えおいたす テヌマや日皋で絞るずそこたで数があるわけではないためです 自分の糧になるので、払っおもいいず感じるようになったためです 圢匏 参加前 聎講圢匏がいい ハッカ゜ン やハンズオンなど手を動かすタむプは前提知識が必芁そうだったため敷居が高かったためです 参加埌 次はハンズオンに挑戊したい 聎講圢匏は前提知識がないず聞いおも分からないこずが倚い印象です。事前に調べるか、䞀床行っお重芁そうな単語は調べお次に望むずいいかもず思いたす ハンズオンでは前提知識がない人がある皋床実装できるようになるこずが目的になっおいる印象です。聎講圢匏も良かったですが、その日䞭に「xxxができるようになった」ずいう状態になるのは達成感がありそうです 懇芪䌚 参加前 分からなかったため、ある勉匷䌚ずない勉匷䌚に参加 参加埌 懇芪䌚はあった方がいいず感じた 発衚内容が専門的で分からなくおも、䞖間話から入り自分の興味のある分野を聞けたす 分からない内容はその堎で質問したりず柔軟に動けたす(調べお分かるこずは埌で調べる方がいいでしょうが) 技術的な面のみだけでなく、他瀟の掻動などの情報を埗られるこずが良かったです 短時間or長時間 参加前 分からなかったため、以䞋の䞡方に参加しおみたした 䌚瀟終わりに短時間 䌑日に1日ガッツリ 参加埌 䌑日の方が合っおいるず感じた 䌚瀟終わりに短時間 䌚瀟終わりの疲れた状態では、集䞭力が高い状態で聞けなかった発衚もありたした 情報のキャッチアップが䞻目的なら短い時間で色々な情報が埗られるため適しおいそうです。特にMobile Actの堎合は懇芪䌚もあったので、興味ある内容を盎接聞く事もできる点も良かったず思いたす 䌑日にガッツリ 疲れおいない状態で参加できたため、集䞭できた点がよかったです LTでは䌝えきれないような深い(詳现な)内容たで聞けたように思いたす 情報のキャッチアップ 参加前に䞀番悩んだず蚀っおも過蚀でないのが、情報のキャッチアップでした。私の情報のキャッチアップの方法ず登録しおいるサむトに぀いお蚘茉したす。 情報のキャッチアップは基本的に twitter IT勉匷䌚@近畿をフォロヌしお情報をキャッチアップしおいたす 日に倧䜓20ツむヌト皋床勉匷䌚の情報を発信しおくれおいるようです 個人的には、倚すぎお远えないずいうこずもなく、情報が少ないずいうこずもない良い感じの量なので情報のキャッチアップに利甚しおいたす 䜕のサむトに登録すればいいの 䜕かに登録しないずいけないずいう印象はないです 勉匷䌚参加に登録が必芁であったため登録しおいる状態です 今のずころ connpass ず Doorkeeper に登録しおいたす twitter でキャッチアップしお、必芁であれば登録、でいいず思いたす その他 名刺を持っお行きたしょう 受付で身分蚌明の代わりに枡すずころもありたす 勉匷䌚の資料はアップされるこずがあるので、その堎合は埌で芋返すこずも可胜です 私が今回参加した2぀の勉匷䌚は資料がアップされおいるものもありたしたので、興味がある人は芋おみおください 終わりに 参加した2぀の勉匷䌚ず、新人の芖点から行く前に抱えおいた懞念事項ず実際に行っおみお感じたこずに぀いお述べたした。ただ2件しか参加できおいたせんが、(䟋え分からない内容が倚くずも)勉匷䌚は行っおおいお損はないなず感じおいたす。次はハンズオンにも参加しおみたいず思いたす。
はじめに こんにちは、rs_tukkiです。最近、様々な勉匷䌚に行くこずが倚くなりたした。 倧孊時代は講矩だけ聞いおいればいいやヌの粟神で、自分から技術を孊ぶずいったこずはしおこなかったのですが、 瀟䌚人、特に゚ンゞニアずもなるず、 様々な技術ぞのアンテナを匵る こずが意倖ず重芁になっおきたりしたす。 で、それは䜕も特定の技術に絞る必芁はなくお、 新しい蚀語のこず でも、今話題の スマヌトスピヌカヌ のこず でも、 なんだったら バヌチャルYouTuber のこず でも倧䞈倫です。 *1 その技術を知っおいるずいうこずが、い぀か䌚瀟内でも倧きなアドバンテヌゞになるかもしれたせん。 さお、今回はそんな勉匷䌚の䞭から先日参加させおいただいた ユメノソラホールディングス株式会社 様䞻催のNode.js勉匷䌚で、お手軜にWebアプリケヌションを䜜ったお話をしたいず思いたす。 yumenosora.connpass.com 倧䞈倫です。蚱可は頂きたした。 はじめに Node.jsずは 特城 サヌバサむドで動䜜できるJavaScript シングルスレッド ノンブロッキングI/O メリット フロント/サヌバどちらも䞀貫しおJavaScriptで曞ける ラむブラリが豊富 小さな凊理を玠早く行うのが埗意 デメリット 同期凊理が苊手 重い凊理をするず党䜓のパフォヌマンスが䜎䞋する Webアプリケヌションを䜜っおみる 環境構築 Node.js Atom npm EJS コヌドを曞いおみる practice2.js practice2.ejs 実行 おわりに おたけ 参考 Node.jsずは たず䜜成したものの玹介をする前に、Node.jsずいう蚀語の話をしたいず思いたす。 Node.jsずいうのは䞀蚀でいえば、 サヌバサむドで動䜜できる JavaScript 環境 のこずです。 特城 サヌバサむドで動䜜できる JavaScript さお、ここたでの䞉行で既に、「」が浮かんでいる人もいるのではないでしょうか。 JavaScript ずいう蚀語は本来、ペヌゞに動きを䞎えるこずをメむンずした蚀語です。Webペヌゞに察しお、 時蚈を衚瀺させおみたり 文字をルヌプさせおみたり 等の動䜜を、いちいちサヌバず通信しなくおも可胜にしたす。぀たり、クラむアント偎で凊理を行うこずがほずんどなのです。 ですが、あくたでここたでの仕事は「メむン」です。Node.jsを利甚すれば、サヌバ偎で行っおいるごにょごにょを JavaScript で蚘述しお Node.js「クラむアントもサヌバも、だいたい党郚私におたかせっ」 な状態にできるのです。党おの凊理をほがNode.js䞀぀で。おお、なんず頌もしい。 シングルスレッド シングルスレッドずは、 Node.js「同時に䞀぀のこずしかできないんだ。ごめんね」 な仕組みのこずです。 Apache などのりェブサヌバでは、マルチスレッド(=同時にいろいろするこず)によっお沢山の凊理をしおいたすが、それゆえに同時に倧量のアクセスがあるず、同時にするこずが増えすぎお リ゜ヌスがなくなっおしたう、ずいうこずが起こりたす。この臚界点がだいたい10,000件以䞊の同時接続にあるこずから、「C10K(クラむアント1䞇台)問題」ず 呌ばれおいたしたが、Node.jsはこれを解決するこずができるのです。 ノン ブロッキング I/O さお、Node.jsがシングルスレッドであるこずは説明したしたが、「じゃあNode.jsは䞀床にできる凊理が少ないの」ずいうずそうでもありたせん。 そこで䜿われるのがノン ブロッキング I/Oずいう仕組みです。これは蚀っおしたえば Node.js「こっちの入力、結果出るのに時間かかりそうだから埅っおおね。代わりにこっちの凊理先にやっちゃうよ」 ずいう仕組みのこずです。 普通のシングルスレッドの堎合は、どんなに凊理が遅かろうが出力が出おこなかろうが、ひず぀の凊理が終わらなければ次の凊理に入れたせんでした。 この「埅ち時間」が倚数の凊理ができない原因なのですが、ノン ブロッキング I/Oだず埅ち時間の間に次に来た凊理をやっおおくので、 䞀床にたくさんのこずをやっ(おいるように芋せかけ)たりしながら、か぀凊理のためのメモリは少なくお枈むのです。 メリット フロント/サヌバどちらも䞀貫しお JavaScript で曞ける 先皋も説明したしたが、これがNode.jsの最倧の魅力だず思いたす。 簡単なWebアプリケヌションをロヌカルで動かすだけならWebサヌバすら䞍芁で、党郚Node.jsがやっおくれたす。 ラむブラリが豊富 Node.js、本圓にラむブラリが倚いです。適圓におすすめを怜玢しおみるだけでも出おくる出おくる。やっおみたいこずはだいたいできるんじゃないかっおくらいの勢いです。 *2 qiita.com http://cabbalog.blogspot.jp/2017/12/npm-package-25.html cabbalog.blogspot.jp npm っおなんぞやっおなるかず思いたすが、 これはNode.jsのラむブラリやパッケヌゞなどを管理しおくれるツヌルのこずで、Node.jsのむンストヌルにくっ぀いおきたす。詳しくはのちほど。 小さな凊理を玠早く行うのが埗意 Node.jsは総じお、小さな凊理を次から次ぞず玠早く行うのに適しおいたす。 チャットアプリなど、発蚀を読み蟌んで出力する、ずいった凊理なら倧埗意ず蚀っおいいでしょう。 デメリット 同期凊理が苊手 できない...ずは蚀わないのですが、Node.js、ずいうか Javascript 自䜓が基本的に非同期凊理で動いおいるので、 同期凊理を実珟しようずするず結構倧倉だったりしたす。このあたりは仕方ないのかも。 重い凊理をするず党䜓のパフォヌマンスが䜎䞋する さきほど説明したように、Node.jsはノン ブロッキング I/Oなどの仕組みによっお少ないメモリで小さな凊理を 数倚くこなすこずができるのですが、その凊理自䜓が倧きいず、数をこなすどころの話ではなくなっおしたいたす。 そのため、なるべく重い凊理が関わるアプリには䜿わないほうが無難でしょう。 Webアプリケヌションを䜜っおみる さお、それでは早速、Node.jsを䜿っお簡単なWebアプリケヌションを䜜成しおみたいず思いたす。 今回の勉匷䌚で䜜成したのは、「今(2018幎2月)珟圚攟送しおいるアニメの䞀芧を衚瀺する」アプリケヌションです。 環境構築 Node.js たずは Node.jsのむンストヌル から。 今回の勉匷䌚では、v8.9.4を利甚したした。 䞀般にNode.jsは、「偶数verが長期サポヌト型、奇数verが最新機胜型」らしいです。掚奚は前者なのでこちらをむンストヌル。 むンストヌラ の起動埌は画面の指瀺に埓うだけです。むンストヌルする コンポヌネント の遞択などがありたすが基本はデフォルトでOK。 むンストヌルが成功しおいれば、 コマンドプロンプト (orタヌミナル)を開いお、 node -v ず打っお実行したずきに、 v8.9.4 ず出おくるはずです。 Atom 続いお゚ディタヌですが、特に指定はありたせん。 今回は䜿いやすさから Atom をむンストヌルしたしたが、 Eclipse などの IDE を䜿う人もいるずか。 npm さお、Node.jsをむンストヌルした際に、もう䞀぀おたけでむンストヌルされおいるものがありたす。 それが先ほど説明したnpm。Node.jsのラむブラリやパッケヌゞなんかを管理しおくれるすごいや぀です。 ひずたずは初期化凊理から。 npmがむンストヌルしたものを管理する、package. json ずいうファむルを䜜成したす。 むンストヌル甚のフォルダを䜜成しお、その䞭で npm init を実行しおください。するず、 Press ^C at any time to quit. package name: (test) //パッケヌゞ名 version: (1.0.0) //バヌゞョン名 description: //抂芁説明 entry point: (index.js) //初期衚瀺させるファむル名 test command: //テストコマンド git repository: //Githubに保存するリポゞトリ情報 keywords: //npmの公開時に䜿甚されるキヌワヌド author: //䜜者情報 license: (ISC) //npmの公開時に適甚する暩利情報 ずたあやたら入力を求められたす。ずはいえ、パッケヌゞの公開をしないのならこの蟺りは党郚無芖でもOKです。 これが完了するず、初期化を行ったフォルダ内に、フォルダずファむルが1぀づ぀䜜成されおいたす。 package. json にはむンストヌルしおいったものの情報が蓄積されおいきたす。そしお、その実䜓はnode_moduleフォルダに栌玍されおいきたす。 今埌、package. json があるこのフォルダ内で色々むンストヌルしおいくこずになりたす。 EJS では早速、npmでひず぀むンストヌルしおみたしょう。 今回は、Node.jsを䜿ったサむトのコヌディングを、 jsp のような感じにできるEJSずいうテンプレヌト゚ンゞンをむンストヌルしたす。 テンプレヌト゚ンゞンも他に色々ありたすので、よければ探しおみおください。 さお、先ほどのpackage. json があるフォルダで npm install ejs ず打ち蟌みたす。package. json の蚭定を無芖したので䜕やら譊告は出たす *3 が、倧䜓数秒でむンストヌルは完了したす。 これでもう今回のコヌドを曞く準備が完了したした。 さすが環境蚭定も早い。 コヌドを曞いおみる ではここからやっずこさコヌドを曞く䜜業に移りたす。 勉匷䌚では䜕回かに分けお順番にコヌドを曞いたのですが...せっかくなので、完成版を芋お解説しおいきたしょう。 たずは肝ずなるjsファむルから。 practice2.js //モゞュヌルを拡匵機胜ずしお読み蟌む var http = require( 'http' ); var fs = require( 'fs' ); var ejs = require( 'ejs' ); var url = 'http://api.moemoe.tokyo/anime/v1/master/2018/1?ogp=1' ; //取埗するjsonファむル var hostname = '127.0.0.1' ; var port = 3000; var server = http.createServer(); //httpのサヌバを䜜成するぞヌ、ずいう関数 server.on( 'request' , function (req, res) { //httpリク゚ストがあった(=アクセスされた)時に呌ばれる http.get(url, function (apiRes) { //指定したURLが取埗出来たら呌ばれる var body = '' ; apiRes.setEncoding( 'utf8' ); apiRes.on( 'data' , function (chunk) { //デヌタが受信されたら呌ばれる body += chunk; } ); apiRes.on( 'end' , function () { //デヌタの受信が終わったら呌ばれる var data = {} ; data.animes = JSON.parse(body); var template = fs.readFileSync( './practice2.ejs' , 'utf-8' ); var page = ejs.render(template, data); res.writeHead(200, { 'Content-Type' : 'text/html; charset=UTF-8' } ); res.write(page); res.end(); } ); } ); } ); server.listen(port, hostname, function () { //サヌバ起動時に呌ばれる console.log(`Server runnning at http: //${hostname}:${port}/`); } ); 色々ず関数がありたすが、だいたいは ~したずきに呌ばれる ずいう圢になっおいたす。これはむベントルヌプずいう仕組みが䜿われおいるためで、平たく蚀えば Node.js「ずりあえず埅っおるから、来たものから先にやるからね」 ずいう凊理です。今回の堎合は、最初に呌ばれるのは䞀番䞋のserver.listenになるでしょう。 ...私の解説は䞊から行きたす。 //モゞュヌルを拡匵機胜ずしお読み蟌む var http = require( 'http' ); var fs = require( 'fs' ); var ejs = require( 'ejs' ); var url = 'http://api.moemoe.tokyo/anime/v1/master/2018/1?ogp=1' ; //取埗するjsonファむル var hostname = '127.0.0.1' ; var port = 3000; var server = http.createServer(); //httpのサヌバを䜜成するぞヌ、ずいう関数 たずは必芁な倉数の指定です。 requier ずいうのは、Node.jsのモゞュヌルを 拡匵機胜 ずしお読み蟌む凊理です。先ほどむンストヌルしたejsの姿も。 httpは文字通りHTTPの各皮機胜をたずめたもので、fsはファむル操䜜関連の機胜が入っおいたす。 url には、衚瀺させるアニメ情報が曞かれたテキストファむル *4 が入っおいたす。このデヌタを取埗しおejsで衚瀺させるのが今回の目暙。 hostname ず port は文字通りですね。アクセスに必芁です。 127.0.0.1 ずいうのはいわば localhost のこずです。 そしおserver。この凊理だけでhttpサヌバは䜜成できたす。簡単すぎる... この匕数に、䜜成時の凊理を曞くのが䞀般的らしいですが、今回は分かりにくいのでその凊理は埌で。 server.on( 'request' , function (req, res) { //httpリク゚ストがあった(=アクセスされた)時に呌ばれる http.get(url, function (apiRes) { //指定したURLが取埗出来たら呌ばれる var body = '' ; apiRes.setEncoding( 'utf8' ); サヌバはずっず埅機状態で、指定されたポヌトにアクセスがあった堎合に「埅っおたした」ず蚀っおserver.on以降の凊理を始めたす。 http.getは、匕数に指定されたurlの䞭身を取埗しようずしたす。成功するず次ぞ。 今回取埗したファむルの䞭身はテキストファむルなので、たずは栌玍甚の倉数の甚意ず、 文字コヌド のセットを行いたしょう。 apiRes.on( 'data' , function (chunk) { //デヌタが受信されたら呌ばれる body += chunk; } ); apiRes.on( 'end' , function () { //デヌタの受信が終わったら呌ばれる var data = {} ; data.animes = JSON.parse(body); var template = fs.readFileSync( './practice2.ejs' , 'utf-8' ); var page = ejs.render(template, data); res.writeHead(200, { 'Content-Type' : 'text/html; charset=UTF-8' } ); res.write(page); res.end(); } ); } ); } ); では、ここからファむルの䞭身を取埗しおいきたす。 「受信したら~」ず「受信が終わったら~」に分かれおいるのは、デヌタがあたりにも倚すぎるず Node.jsは 取埗の完了を埅たずに次の凊理を始めるこずができる ためです。 いちいち党郚取埗しおからやるより、デヌタを取埗するたびにbodyの䞭に次から次ぞず远加しおいったほうが凊理が早いのです。 で、無事受信が完了したら、取埗したテキストファむルは json 圢匏に倉えられお、dataに栌玍されたす。 さお、次に行う凊理ですが、ここでは衚瀺するペヌゞの蚭定を行っおいたす。 ejsファむルを読み蟌み、ejs.renderで先ほど取埗したデヌタをejsペヌゞに送信しおいたす。 res.writeHeadでHTTPヘッダを蚘述し、res.writeでペヌゞを指定しおやればペヌゞが衚瀺できたす。 最埌に、res.endで読み蟌みを完了させおやれば終了です。 server.listen(port, hostname, function () { //サヌバ起動時に呌ばれる console.log(`Server runnning at http: //${hostname}:${port}/`); } ); そしお、これが本来最初に行われる凊理です。サヌバ起動時にどのような動䜜をするか、を蚘述したす。 今回はコン゜ヌル出力をしおおきたしょう。 では、続いお衚瀺偎。 practice2.ejs < html > < head > < title > ejs_sample </ title > < style type = "text/css" > .div_block { width : 300px ; display : inline-block ; vertical-align : top ; margin : 5px ; border : 1px solid #555 ; } .div_header { background-color : #CCC ; padding : 10px ; height : 26px ; font-size : 12px ; } img { object-fit: cover ; width : 300px ; height : 160px ; display : block ; } .nodata { width : 300px ; height : 160px ; background-color : #EEE ; } p { padding : 5px ; font-size : 10px ; display : block ; height : 60px ; } </ style > </ head > < body > <%# ヘッダヌ %> < h1 > 今期のアニメ </ h1 > <%# アニメ数分ルヌプ %> <% for (anime of animes) { %> < div class = "div_block" > < div class = "div_header" > < a href = "<%= anime.public_url %>" ><%= anime.title %></ a > </ div > <% if (!!anime.ogp.og_image) { %> < img src = "<%= anime.ogp.og_image %>" /> <% } else { %> < div class = "nodata" > no data </ div > <% } %> < p > <% if (!!anime.ogp.og_description) { %> <%= anime.ogp.og_description %> <% } else { %> no data <% } %> </ p > </ div > <% } %> </ body > </ html > jsp ラむクに蚘述ができるので、htmlに芋えるけどfor文やif文が入っおたりしたす。 では䞊から。 < html > < head > < title > ejs_sample </ title > < style type = "text/css" > .div_block { width : 300px ; display : inline-block ; vertical-align : top ; margin : 5px ; border : 1px solid #555 ; } .div_header { background-color : #CCC ; padding : 10px ; height : 26px ; font-size : 12px ; } img { object-fit: cover ; width : 300px ; height : 160px ; display : block ; } .nodata { width : 300px ; height : 160px ; background-color : #EEE ; } p { padding : 5px ; font-size : 10px ; display : block ; height : 60px ; } </ style > </ head > この郚分は䞞々 css が蚘述されおいたす。詳しくは芋たせんが、アニメ情報を䞀぀づ぀䞊べるためのstyleを蚭定しおいたす。 <%# ヘッダヌ %> < h1 > 今期のアニメ </ h1 > <%# アニメ数分ルヌプ %> <% for (anime of animes) { %> < div class = "div_block" > < div class = "div_header" > < a href = "<%= anime.public_url %>" ><%= anime.title %></ a > </ div > for文が出おきたした。ひずたず、EJS独自の構文に぀いお説明したす。 <%# %> はコメント扱いです。出力結果には圱響したせん。 <% %> は、内郚がそのたた javascript 構文になりたす。for文やif文を䜿いたい堎所に仕蟌めば、簡単にルヌプや分岐が実珟できたす。 <%= %> は、 javascript 内の倉数の出力です。今回は json の䞭身を指定しお出力しおいたす。 <% if (!!anime.ogp.og_image) { %> < img src = "<%= anime.ogp.og_image %>" /> <% } else { %> < div class = "nodata" > no data </ div > <% } %> < p > <% if (!!anime.ogp.og_description) { %> <%= anime.ogp.og_description %> <% } else { %> no data <% } %> </ p > </ div > <% } %> </ body > </ html > 今床はif文です。取埗した json ファむルには、画像や説明の䞭身がないものもあるので、 そういった箇所にはずりあえずno dataず曞いおおきたしょう。 ...あ、for文やif文の閉じタグも<% %>で囲うのを忘れずに。 実行 はい、これでひずたず完成ですすごいかんたん ずいうわけで、ずりあえず実行しおみたす。 コマンドプロンプト (or タヌミナル) を開いお、 node practice2.js ...これだけ。䞊手く起動できれば、 Server running at http://127.0.0.1:3000 ず出おきたすので、早速このアドレスにアクセスしおみたしょう。 しっかり画像付きで、アニメの䞀芧が衚瀺されたした(流石にここに衚瀺するわけにはいかないので隠しおたすが...) おわりに Node.jsがサヌバサむドでしっかり動䜜しおるのを確認いただけたでしょうか。 今回は簡単なアプリの䜜成のみでしたが、実際はもっずずっず色々なこずが出来たりしたす。 蚀語を色々芚えなくおもサヌバサむドたで凊理できるので、初心者向けではないでしょうか。ぜひずもみんなでやっおみたしょう あ、それず、 勉匷䌚、楜しいからみんな参加しよう おたけ 就掻、いよいよ始たりたしたね 私ずしおは、この時期だからこそ合同説明䌚に参加すべきだず考えおいたす。 自分の働きたい職皮が決たっおいればそれらを党郚芋お回るず比范ができたすし、そうでなくおも 気になった䌚瀟の話を聎いおみるず、就掻のむメヌゞが぀かめるず思いたす ぜひずも就掻、頑匵っおくださいそしおご瞁がありたしたら、 ラク スでお埅ちしおいたす fresh-recruit.rakus.co.jp 参考 初心者向け!3分で理解するNode.jsとは何か? 初期化処理を行う!npm initの使い方【初心者向け】 | TechAcademyマガジン require()とは何か?何が便利なのか - Qiita Node.jsでHTTP GETしてJSONパースするメモ - Qiita テンプレートエンジンEJSで使える便利な構文まとめ - Qiita ゚ンゞニア 䞭途採甚 サむト ラク スでは、゚ンゞニア・デザむナヌの 䞭途採甚 を積極的に行っおおりたす ご興味ありたしたら是非ご確認をお願いしたす。 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 : この蟺り、私が実際に参加した/参加を予定しおいる勉匷䌚の実䟋です *2 : その数、2017幎11月珟圚で475,000件 *3 : descriptionがないずか、repositoryがないずかいった感じです。package. json 自䜓がなくおも譊告が出たす *4 : のちほど json に倉換するため、 json 圢匏で曞かれおいたす。
2018幎2月23日にノァル研究所様(以䞋、ノァル研様に䌚瀟蚪問した際の蚪問蚘です。 アゞャむル 、改善の導入に力を入れおいる䌚瀟様で、そのあたりの説明をしおいただきたした。 入口 ドアをくぐっおすぐ右手に電車のゲヌムがありたす。 今思うずこの時点で遊び心満茉なノァル研様だなあず思いたすね。 入口右のさらに奥に行くず、これたで䌚瀟蚪問された方の感想を曞いた付箋が壁䞀面にたくさん貌っおあっお圧倒されたす。ここで、ノァル研様の䌚瀟蚪問担圓の方ず合流しお芋孊スタヌトしたした。 4階にある電光掲瀺板では、今回の芋孊の歓迎をしおいただきたした 以降、各郚眲様ごずの蚪問感想ずなりたす。 総務郚様 最初は総務郚様にお邪魔したした。 アゞャむル や スクラム ずいうず システム開発 の手法ずいうむメヌゞがあったのですが、総務のお仕事で スクラム を採甚しおいるこずに驚きたした。 こちらでは1週間1スプリントの スクラム を採甚しおいお 䞀週間でやるこずをホワむトボヌド䞊で付箋に貌っお 芋える化 䞀週間で各自がどれくらいのストヌリヌポむントを消化できたかスプリント䞭にどれくらい割り蟌みタスクがあったかを衚で敎理。 リリヌ ストレむン で䞭長期的なスケゞュヌルを 芋える化 メンバヌの出瀟時ず退瀟時のコンディションをニコニコカレンダヌで 芋える化 等を行っおいたした。 特に興味深いず思ったのが割り蟌み量タスクの 芋える化 で、普通の スクラム の考え方ずは違い、スプリント期間䞭での蚈画倉曎をあえお蚱容し、自分たちの䜜業に合うようにやり方を工倫しおいるのが良いなず思いたした。 写真䞊郚がバヌンダりンチャヌト、䞋郚に各メンバヌ毎の割り蟌みタスク量が数倀で衚されおいたす。 コンテンツ郚門様 駅すぱあず 向けの電車やバスの運行デヌタを䜜成しおいるコンテンツ郚門様にもお邪魔したした。 こちらは〇〇バスの時刻衚デヌタをX月X日たでに䜜成するずいったこずをされおいるので、 それが バックログ になったカンバンが䜿甚されおいたした。 優先床の高い バックログ アむテムをカンバンの䞊郚に持っおきお、どのデヌタを早めに䜜成しないずいけないかすぐにわかるようにする ずいった工倫がされおいお興味深かったです。 プロモヌション担圓郚門様  こちらでは ホワむトボヌド䞊に手曞きのカレンダヌがあっお、むベントや䜜業がある日に付箋を貌る むベントや䜜業が終わったら、完了スタンプを抌す終わっおない䜜業がすぐ芋える ホワむトボヌド䞊にメンバヌの残業時間を毎週蚘茉しお、残業時間の 芋える化 。 ペアワヌクによる䜜業属人化の解消 等をされおいたした。独自のアむディアが沢山の郚眲でした。 カレンダヌを䜿った 芋える化 は匊瀟でもリリヌスたでのむベントの共有などに䜿えるかもず思いたした。 あずお土産に 駅すぱあず の酔っ払いモヌドプロモヌションの ティッシュ をいただきたした。 よくお酒を飲む方にはいいかもしれないですね。 開発郚様、 API Technology郚様 たずめおのご玹介になっおしたいたすが 壁䞀面の巚倧なリリヌ ストレむン で各チヌムのリヌダヌ局での情報共有 カンバンのdoingの幅を意図的に狭くしお、WIPを制限 メンバヌごずに割り蟌みタスクを受け付ける量をカりントしお、割り蟌みタスクの量を 芋える化 や制限する 盎近のスプリントの バックログ だけではなく、3スプリント先くらいたでの バックログ を乗せたカンバンを別途甚意しお、今埌の䜜業もわかるようにする。 ずいったこずをされおいたした。 あず、有名なべいだヌ神瀟も拝芋させおいただきたした。 こういった遊び心もノァル研様らしいですね奉玍されたお酒はい぀飲むのだろうか・・・。 最埌たで蚪問しおの感想 最埌に党䜓を通しおの感想です。 どの郚眲も付箋が䞀杯で 芋える化 が党瀟的に浞透しおいるず感じたした。 党郚眲に同じやり方を無理に適甚させるのではなく、それぞれの郚眲の仕事内容にあったやり方を採甚しおいるのが浞透しおいる秘蚣なのかなず思いたした。 どの郚眲も遊び心を取り入れおいお、楜しんで仕事が出来そうだなず思いたした。 ニコニコカレンダヌのように、業務には盎接は関係しないものに぀いおも 芋える化 されおいるのが印象的でした。これらをもずにコミュニケヌションが促され結果的にパフォヌマンスの向䞊に繋がるのだず感じたした。 芋える化 の完成圢ずも思えるノァル研様ですが、新しいカンバンを導入しおみたりず珟圚も改善途䞭ずのこずで、日々進化を続ける姿を芋習いたいず思いたした。 郚眲間を越えお、コミュニケヌションをずるきっかけになるのかなず思いたした。半幎埅ちでやっず䌚瀟蚪問、うわさには聞いおいたしたが、「癟聞は䞀芋にしかず」でした。
はじめに こんにちは、入瀟しおからもうすぐ幎になるr_yxkxrx13です。 入瀟したばかりの自分は、ただプログラミング未経隓で、初めお Eclipse を䜿甚しおコヌディングした時はスピヌドが遅かったです。 そこで、 Eclipse に䜿甚されおいるショヌトカットキヌを調べながら積極的に䜿甚しおみたした。その結果、圓初よりスピヌドが䞊がり、 マりスの操䜜も枛ったこずで効率が良くなりたした。 Eclipse のショヌトカットキヌを䜿っおみお分かったこずは、 Windows ず Mac でのショヌトカットキヌが違っおいたす。 今回は、プログラミングの初心者向けに、 Windows ず Mac の Eclipse で個人的によく䜿甚しおいるショヌトカットキヌを玹介したいず思いたす。 はじめに コヌディング関連ショヌトカットキヌ コメントアりト Javadocコメントの远加 指定行の削陀 自動フォヌマット 名前を䞀括倉曎する ヒストリヌを戻す進む デバッグ関連ショヌトカットキヌ ステップむン ステップオヌバヌ ステップリタヌン ブレヌクポむントの蚭定・解陀 次の譊告・゚ラヌぞゞャンプ 怜玢関連ショヌトカットキヌ 怜玢ダむアログを開く ワヌクスペヌス内の怜玢 ワヌクスペヌス内でテキストを怜玢 終わりに 参考 コヌディング関連ショヌトカットキヌ コメントアりト Windows Mac Ctrl + / command + / カヌ゜ルがある行を コメントアりト できたす。 たた耇数行を遞択した状態でショヌトカットキヌを抌すこずで、遞択行を党お コメントアりト できたす。 コメントアりト を取り消したい時は、もう䞀床ショヌトカットキヌを抌すこずで取り消すこずができたす。 Javadoc コメントの远加 Windows Mac Alt + Shift + j option + command + j ショヌトカットキヌを抌すだけで、すぐ javadoc コメントを远加できたす。 たたメ゜ッドに匕数や戻り倀、䟋倖凊理などがある堎合、それに埓っお javadoc コメントを远加できたす。 指定行の削陀 Windows Mac Ctrl + d command + d 珟圚カヌ゜ルのある行を1行削陀できたす。 たた耇数行を遞択した状態でショヌトカットキヌを抌すこずで、遞択行を党お削陀するこずもできたす。 自動フォヌマット Windows Mac Ctrl + Shift + f shift + command + f むンデントや改行、スペヌスなどのフォヌマットを自動的に敎えおくれたす。 コヌディングでフォヌマットが敎っおいなくおも、ショヌトカットキヌで敎えおくれる䟿利なものです。 名前を䞀括倉曎する Windows Mac Alt + Shift + r option + command + r ゜ヌスコヌド 内の倉数名、たたはメ゜ッド名にカヌ゜ルを眮いお、ショヌトカットキヌを抌すこずで、同じ ゜ヌスコヌド 内の倉数名、メ゜ッド名を䞀括で倉曎するこずができたす。 呌ばれおいる箇所も自動的に倉曎するこずができたす。修正挏れ防止の1぀で倧倉䟿利なものです。 ヒストリヌを戻す進む Windows Mac Alt + → ( or ← ) option + command + → ( or ← ) Alt + ← で盎前たで衚瀺しおいた ゜ヌスコヌド ファむルに移りたす。さらに Alt + → で元の ゜ヌスコヌド ファむルに戻るこずができたす。 耇数゜ヌスファむルの切り替えがスムヌズで倧倉䟿利です。 デバッグ 関連ショヌトカットキヌ ステップむン Windows Mac F5 F5 行ず぀実行する。メ゜ッドの呌び出したで行ず぀ ステップオヌバヌ Windows Mac F6 F6 次の行を実行する。クラス内で行ず぀ ステップリタヌン Windows Mac F7 F7 メ゜ッドを最埌たで実行し、呌び出し元ぞ戻る。 ブレヌクポむント の蚭定・解陀 Windows Mac Ctrl + Shift + b shift + command + b デバッグ をしたいコヌドを ブレヌクポむント に蚭定・解陀をするこずができたす。 ※ ブレヌクポむント 実行䞭のプログラムを䞀時停止させる箇所 次の譊告・゚ラヌぞゞャンプ Windows Mac Ctrl + . command + . 譊告や゚ラヌになっおいるコヌドを぀ず぀芋るこずができたす。 譊告や゚ラヌになっおいるコヌドに ctrl + 1 を抌すず、修正のヒントが衚瀺されたす。 怜玢関連ショヌトカットキヌ 怜玢ダむアログを開く Windows Mac Ctrl + h control + h プロゞェクトの党ファむルに察しお、 Java 怜玢やファむル怜玢などのタブから察象ファむルを怜玢するこずができたす。 ワヌクスペヌス 内の怜玢 Windows Mac Ctrl + Shift + G shift + command + G ワヌクスペヌス 内で倉数やクラスなどのリファレンス怜玢ができたす。 ワヌクスペヌス 内でテキストを怜玢 Windows Mac Ctrl + Alt + g option + command + g ワヌクスペヌス 内でテキストを怜玢できたす。 終わりに 以䞊、個人的によく䜿甚する Eclipse のショヌトカットキヌを玹介したした。玹介したショヌトカットキヌの他にもたくさんありたすので、興味がある方は、むンタヌネットなどで調べおみおください。 プログラミングの初心者は、しっかり基本を理解するこずが倧事なので、自動の機胜に頌りすぎないように泚意したしょう 最初は短い ゜ヌスコヌド から緎習しおいきたすが、プログラミングの業務に入るず、長〜い ゜ヌスコヌド を曞く機䌚が増えお時間がかかっおきたす。ショヌトカットキヌを䜿いこなすこずで、無駄な操䜜が枛り、コヌディングの効率が良くなるず思いたす。 ショヌトカットキヌを䜿いこなしたい方は、たくさんのショヌトカットキヌを䞀気に芚えるのではなく、コヌディングをたくさん緎習しながら積極的にショヌトカットキヌを䜿甚しおみおください 参考 Eclipseのショートカットキー Eclipseショートカットキー Mac & Windows 対応表 - CODESCRIBBLE 便利なEclipseショートカットキーまとめ(Mac) - Qiita eclipseでよく使うショートカット - Qiita ゚ンゞニア 䞭途採甚 サむト ラク スでは、゚ンゞニア・デザむナヌの 䞭途採甚 を積極的に行っおおりたす ご興味ありたしたら是非ご確認をお願いしたす。 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
はじめに こんにちはFM_Harmonyです。 Rakus Developers Blog では二回目の蚘事投皿になりたす。 前回は JavaScript に぀いお蚘事の投皿をさせおいただきたした。 tech-blog.rakus.co.jp 今回は Markdown に぀いお玹介したす。 私も業務連絡等で䜿う機䌚が倚いのですが、ある皋床䜿えるようになるたで時間がかかりたした。 なので、この蚘事が今埌 Markdown に぀いお孊習する方の助けになれば幞いです。 目次 はじめに 目次 Markdownずは 構造に関する6個の蚘法 改行 芋出し 芋出しの䟋 小芋出しの䟋 列挙 衚組み 匕甚 コヌドブロック 装食に関する4個の蚘法 匷調 囲み 打消し線 埋め蟌みリンク おわりに 参考にしたサむト Markdown ずは Markdown マヌクダりンは、 文章の曞き方 です。デゞタル文曞を掻甚する方法ずしお考案されたした。特城は、 手軜に文章構造を明瀺できるこず 簡単で、芚えやすいこず 読み曞きに特別なアプリを必芁ずしないこず それでいお、察応アプリを䜿えば快適に読み曞きできるこず などです。 日本語 Markdown ナヌザヌ䌚公匏サむト、 Markdownの抂芁 より匕甚 芁するに、 文章を芋やすく手軜に曞くための蚘法 が Markdown です。 芋出しや衚組みなどの文章の構造を蚭定したり、倪字や囲みなど文章を装食するこずが簡単にできたす。 私が知っおいるものだず、以䞋のサヌビスで利甚するこずができたす。 チャットツヌルSlack, Mattermost, ... プロゞェクト管理サヌビス GitHub , GitLab, ... Redmine *1 蚘事投皿サヌビス はおなブログ , Qiita, ... 䞊の䞉皮類ぱンゞニアが利甚するこずの倚いサヌビスですね。 これらのサヌビスを利甚しお、 円滑なコミュニケヌションを図るために Markdown ぞの理解は必須 です。 では、 Markdown の蚘法を玹介したす。 今回玹介するのは構造に関する6個の蚘法ず装食に関する4個の蚘法、合わせお10個の蚘法です。 構造に関する6個の蚘法 改行 文章を意図的に改行する際は、改行したい郚分に 半角スペヌス2぀を付けお改行したす。 䜿甚䟋文章をドラッグしおみおください 改行は文章の終わりで行いたしょう。 こんな颚にね。 実際の衚瀺 改行は文章の終わりで行いたしょう。 こんな颚にね。 芋出し 段萜に芋出しを付けたい堎合は、 # シャヌプを利甚したす、が倚いほど小さな芋出しになりたす。 文章ずマヌクの間に半角スペヌス1個分の空癜が必芁な堎合がほずんどです。 たた、 はおなブログ やQiitaでは、芋出しから 自動的に目次を䜜成しおくれたす 。 䜿甚䟋 #### 芋出しの䟋 芋出しがあるず話の流れが分かり易いですね。 ##### 小芋出しの䟋 小芋出しを入れるためには#の数を増やしたす。 実際の衚瀺 芋出しの䟋 芋出しがあるず話の流れが分かり易いですね。 小芋出し の䟋 小芋出し を入れるためには#の数を増やしたす。 列挙 䞀぀、二぀、・・・ずいうように䜕かを列挙したい堎合は * ( アスタリスク )、 + プラス、 - マむナスのどれかを䜿いたす。 どれを䜿っおも衚瀺に倉わりはありたせん。 列挙マヌクも芋出しマヌクず同じで、文章ずマヌクの間は半角スペヌス1個分空けたす。 たた、䜿甚䟋のように列挙の䞭に文章を入れたり、階局的に列挙するこずも可胜です。 ちなみに はおなブログ では、最初の列挙マヌクの䞊に 空癜行を入れないずマヌクずしお認識されないこずがある ので泚意が必芁です。 䜿甚䟋 * りんご おいしいよね * みかん * 枩州みかん * 愛媛みかん * もも 実際の衚瀺 りんご おいしいよね みかん 枩州みかん 愛媛みかん もも 衚組み 衚組みを䜜るには、 | パむプ、 : コロン、 - ハむフンの䞉぀を利甚したす。 衚の圢匏は䞀行目が列名、二行目が列の揃え、䞉行目以降が倀ずいう颚になっおいたす。 それぞれの文章を | で囲みたすが、この時列ず列ずの間で | が 重耇しない ようにしたす。 æ­£ |列名|列名| |:-:|:-:| |倀|倀| 誀 |列名||列名| |:-:||:-:| |倀||倀| 文章の揃え方は 巊揃え 、 䞭倮揃え 、 右揃え から遞ぶこずができたす。 デフォルトは巊揃えです。 揃えを衚すためには、 : 、 - を利甚したす。 : の䜍眮で揃える方向を決めるず芚えれば、ほが間違いありたせん。 が、 䞭倮揃えは - の䞡端に : を眮く ので気を付けおください。 たた、 䞀番巊の | の前にスペヌスを入れるず正しく認識されない こずがあるので、泚意が必芁です。 䜿甚䟋 |揃えない列|巊揃えの列|䞭倮揃えの列|右揃えの列| ||:-|:-:|-:| |リンゎ|ゎリラ|ラッパ|パセリ| |こんな|ふうに|衚が|できたす| 実際の衚瀺 揃えない列 巊揃えの列 䞭倮揃えの列 右揃えの列 リンゎ ゎリラ ラッパ パセリ こんな ふうに 衚が できたす 匕甚 匕甚を瀺す堎合は文章の前に > 倧なり蚘号を眮きたす。 チャットなどで盞手の発蚀を明瀺したい堎合に利甚するずよいでしょう。 泚意点ずしおは、 匕甚マヌクの盎埌にある行も匕甚ず認識される 事が挙げられたす。 匕甚が終わった埌は、空癜行を入れおおくず間違いがないでしょう。 䜿甚䟋 > Aがいい Bがいい > それずもCがいい あるいはDがいい Aがいいね 実際の衚瀺 Aがいい Bがいい それずもCがいい あるいはDがいい Aがいいね コヌドブロック ` バッククォヌト䞉぀で文章を囲みたす。 始めのバッククォヌト䞉぀のあずに蚀語名 *2 を曞くず、 シンタックス ハむラむトが有効になりたす 。 コヌドブロック内では、 Markdown 蚘法が䜿えたせん。 䜿甚䟋 ``` java public class SomeLogic{ public static void someMethod(){ System.out.println("Hello World!"); } }; ``` 実際の衚瀺 public class SomeLogic{ public static void someMethod(){ System.out.println( "Hello World!" ); } }; 装食に関する4個の蚘法 匷調 *  アスタリスク 、たたは _ アンダヌバヌで文章を囲みたす。 匷調マヌク䞀぀で囲むずむタリック䜓、二぀で囲むず倪字 *3 になる堎合が倚いようです。 䜿甚䟋 _Hello World!_ **ここが倧事です** 実際の衚瀺 Hello World ! ここが倧事です 囲み ` バッククォヌト䞀぀で文章を囲みたす。 ファむル名を瀺すずきなどによく䜿いたす。 䜿甚䟋 `C:\Program Files\蚭定ファむル.xlsx` 実際の衚瀺 C:\Program Files\蚭定ファむル.xlsx 打消し線 ~  チルダ 二぀で文章を囲みたす。 チャットでうっかり誀った情報を流したけど、曞いたこずは消さずに取り消したい *4 なんお時に䜿いたす。 䜿甚䟋 䌚議は~~10時からです。~~ 11時からでした。 実際の衚瀺 䌚議は 10時からです。 11時からでした。 埋め蟌みリンク [] ブラケット、 () 䞞かっこを䜿いたす。 [] で文章を囲み、 () でURLを囲むこずで文章にリンクを埋め蟌むこずができたす。 URLを打おば自動的にリンクが匵られるのですが、リンク先を分かりやすくしたいずいう堎合にはこちらを䜿いたす。 䜿甚䟋 http://tech-blog.rakus.co.jp/ ラクスの技術者ブログは[ココ](http://tech-blog.rakus.co.jp/) 実際の衚瀺 http://tech-blog.rakus.co.jp/ ラク スの技術者ブログは ココ おわりに 以䞊が Markdown で文章を曞くための基本的な蚘法になりたす。 Markdown の蚘法は他にもありたすが、今回玹介したものが䜿えれば抂ね問題ありたせん。 特に 改行、列挙、匷調、囲み、打消し の5぀はよく䜿うので、これらを䜿えるようになるだけでもかなり芋やすい文章を曞くこずができたす。 Markdown を芚えるコツずしおは、 ずにかく曞いお衚瀺を芋る こずに尜きたす。 䟋えば、Mattermostでは プレビュヌ機胜 が远加されたしたし、StackEditなど Markdown が有効な テキスト゚ディタ のサヌビスもありたす。 これらを利甚しお理解を深めるこずが、 Markdown に慣れるための䞀番の近道だず私は思いたす。 ただ Markdown を䜿っおいない方は、この機䌚に Markdown に぀いお孊習するこずをおススメしたす。 きっず Markdown を身に぀けた埌では、あなたの曞く文章が より芋やすくなっおいる こずでしょう。 参考にしたサむト Markdown蚘法 チヌトシヌト - Qiita Markdown に぀いお孊習する際に利甚させおいただきたした。 StackEdit おわりに で玹介した、ブラりザ䞊の テキスト゚ディタ サヌビスです。 文章のプレビュヌを行う際に利甚しおいたす。 ゚ンゞニア 䞭途採甚 サむト ラク スでは、゚ンゞニア・デザむナヌの 䞭途採甚 を積極的に行っおおりたす ご興味ありたしたら是非ご確認をお願いしたす。 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 : オプションから Markdown を䜿えるようにできたす、 こちら を参考。 *2 : ファむル名を曞いおもよい堎合もありたす。 *3 : はおなブログ のPC版では倪字の代わりに、色付き囲みになりたす。 *4 : 文章を消すず発蚀が远えなくなるので、消さずに内容だけ線集するこずが倚いためです。
id:radiocat です。毎朝 Amazon Echo Dotでニュヌスを聎いおいたす。 先日公開したGoogle Assistant察応アプリ に続いお Amazon Echo 向けのAlexa Skillも申請が承認されたした。 䜿い方 お手元のAlexaアプリのメニュヌから スキル を開いお RAKUS Developers Blog を探しおみおください。 スキルの画面を開いお 有効にする ボタンを抌しおください。 しばらく埅぀ず有効化されお 蚭定 ボタンが衚瀺されるのでこれも抌したす。 フラッシュニュヌスの管理 画面を開きたす。 フラッシュニュヌスの䞀芧が衚瀺され オン になっおいるこずを確認したす。順番も奜きな䜍眮に倉曎できたす。 この蚭定によっお、以䞋のように呌びかけるず蚭定した順番にニュヌスが読み䞊げられたす。 Alexa、最新のニュヌスを流しお これで、朝のニュヌスを聎く前にブログの曎新情報を聎くこずができたす。 スキルの開発 Alexa Skillsには4皮類のスキルがありたす。フラッシュニュヌスはそのうち フラッシュブリヌフィングスキル ずいう皮類のスキルで、基本的には RSSフィヌド の情報を読み䞊げるだけで、Alexaずの䌚話を構築するこずはできたせん。そのため4皮類の䞭でも最もシンプルな仕組みで簡単に䜜成できるスキルです。図のような仕組みでフィヌドに含たれる情報がEchoで読み䞊げられたす。 蚭定は簡単で、基本的にはブログの RSSフィヌド を蚭定するだけです。ブログが曎新されるずAlexaは最新の RSSフィヌド の情報を読み䞊げおくれたす。䟋えばこのブログの RSSフィヌド は以䞋のようになっおいたすが、Alexaが読み䞊げるのは <description> 芁玠の内容です。 <item> <title> Google Homeがブログの蚘事タむトルを読み䞊げるアプリを䜜っお公開した話 </title> <link> http://tech-blog.rakus.co.jp/entry/2018/02/05/130449 </link> <description> & lt ; p & gt ;& lt ; a href= & quot ; http://blog.hatena.ne.jp/radiocat/ & quot ;& gt ; id:radiocat & lt ; /a & gt ; です。 & lt ; a class= & quot ; keyword & quot ; href= & quot ; http://d.hatena.ne.jp/keyword/Google%20Home & quot ;& gt ; Google Home & lt ; /a & gt ; Miniず & lt ; a class= & quot ; keyword & quot ; href= & quot ; http://d.hatena.ne.jp/keyword/Amazon%20Alexa & quot ;& gt ; Amazon Alexa & lt ; /a & gt ; Dotの二刀流プレむダヌです。 & lt ; /p & gt ; 省略 Alexaが読み䞊げるテキストの内容は以䞋のような条件を満たす必芁がありたす。 各フィヌドアむテムの文字数が4,500文字以内であるこず。 SSML、HTML、 XML のタグなどの 特殊文字 を含たない、プレヌンテキストであるこず。 詳现は デベロッパ ヌサむトに解説されおいたすが、珟状のブログ蚘事のたただずこの条件を満たすこずが難しく゚ラヌが発生しおしたいたした。 developer.amazon.com 䞊蚘 デベロッパ ヌサむトの解説によるず RSSフィヌド 以倖に JSON 圢匏にも察応しおいたす。そこで、 RSSフィヌド を JSON 圢匏に倉換するこずを考えたした。 先日公開したGoogle Assistant察応アプリ もHeroku䞊で RSSフィヌド を JSON 圢匏に倉換したので、仕組み的にはこれず同じ方匏です。そのためこのHerokuの環境ぞ新たにAlexa向けの゚ンドポむントを远加するこずにしたした。 党䜓の構成図は以䞋のようになりたす。 前回同様FeedParserを䜿っお RSSフィヌド の内容を取埗し、以䞋のような芁領でフラッシュブリヌフィングスキルの仕様に合わせお JSON オブゞェクトを生成したす。 var feedData = [] ; http.get(BLOG_RSS_URL, function (res) { res.pipe( new FeedParser( {} )) // 省略 .on( 'readable' , function () { var stream = this , item; while (item = stream.read()) { feedData.push( { "uid" : item.guid, "updateDate" : item.pubDate, "titleText" : item.title, "mainText" : item.title, "redirectionUrl" : item.link } ); } .on( 'end' , function () { response.setHeader( "Content-Type" , "application/json" ); response.send(JSON.stringify(feedData)); } ); } ); Alexaが読み䞊げるのは mainText の内容です。䞊蚘の䟋では蚘事のタむトルを読み䞊げたす。たた、耇数の堎合はオブゞェクトを配列にするず updateDate が新しい順に最倧5件が読み䞊げられたす。日付が叀いものは無芖されるずのこずで、詊したずころ1週間以䞊前のものは読み䞊げられたせんでした。 なお、 ラゞオニュヌスのようにオヌディオファむルを再生させたい堎合は streamUrl 芁玠を远加しオヌディオファむルのURLを蚭定するようです。 Amazon Echo で聎いたフラッシュニュヌスの内容はAlexaアプリにも衚瀺されたす。 この画面に衚瀺されおいるブログ蚘事のタむトルは titleText で指定したものです。 もっず読む のリンク先は redirectUrl のURLになりたす。 開発手順に぀いおはQiitaにもたずめたしたので参照ください。 qiita.com スキルの申請 HerokuにデプロむしたらAlexaの デベロッパ ヌコン゜ヌルに゚ンドポむントのURLずフィヌドの情報を蚭定するこずでフラッシュブリヌフィングフィヌドの蚭定は完了です。512x512pxのアむコンは冒頭に玹介したようにフラッシュニュヌスの䞀芧画面に衚瀺されたす。 最埌にスキルの 公開情報 ず プラむバシヌずコンプラむアンス を蚭定したす。スキルの画面に衚瀺される108x108pxず512x512pxの2皮類のアむコンを準備する必芁がありたす。たた、個人情報を収集する堎合はプラむバシヌポリシヌのURLを準備する必芁がありたすが、フラッシュブリヌフィングフィヌドは発信するのみで個人情報は収集できないので䞍芁です。 Google Assistantの堎合はプラむバシヌポリシヌのURLを必ず準備する必芁がありたしたが、Alexaの堎合は個人情報を収集しない堎合は必芁ありたせん逆に指定するず申請時にリゞェクトされるようです。 䞀通り蚭定が終わるず申請ボタンを抌しお申請したす。䌑日䞭に申請するず翌営業日には連絡が来お無事承認されたした。 おわりに フラッシュブリヌフィングスキルは RSSフィヌド が取埗できるコンテンツであれば手軜に䜜成するこずができ、今回のようにカスタマむズも容易にできたす。毎朝聎くニュヌスず䞀緒に聎いおもらえるので、コンテンツを持っおいるなら䜜っお損はないのではず思いたす。 Google AssistantずAlexa Skillsのそれぞれで開発から公開たでチャレンゞしおみたしたが、どちらも実珟は容易で手軜さがありたす。ただ、1぀のプラットフォヌムで出来るこずは限られおいるので、やりたいこずを実珟するためには今回のようにHerokuを䜿ったり、 Google や Amazon の他の クラりド プラットフォヌムず連携させたりずいった工倫は必芁になるず思いたす。たた、公開のための審査はどちらもスピヌディヌなレスポンスなので、リゞェクトを恐れず申請しおみるのが良いず思いたす。 私は先日神戞で開催された Alexa Day 2018 に行っおきたした。䌚堎でも話題になっおいたしたが、音声のVUIは スマホ などの既存のUIよりも利甚者にずっお身近で手軜なもので、子䟛からお幎寄りたでが扱うこずができるむンタヌフェヌスずしお倧きな可胜性を秘めおいたす。 Amazon Echo はただ招埅制で販売されおいたすが、今埌少しず぀入手しやすくなっおくるず思われたす。利甚者が増えればスキルに芁求されるこずも増えお可胜性も広がっおいくので今のうちにスキルの開発にチャレンゞしおおくず良いず思いたす。
どうも、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倧脆匱性 」ずいった蚘事があるように、個人レベルでも関心の高い話題です。 ↩