グロースハックする~ダフえもん~

時には腕試しでも。。。

風邪を引くと暗い映画を見たくなるよね。ドラです。 (劇場版うる星やつら2ビューティフル・ドリーマーをまたまた見てしまった日曜の昼下がり。小学生の時に植え付けられたトラウマ映画。何回見ても終盤のラムちゃんの”責任とってね”は鳥肌が立つ。) 年末にエンジニアがこんなツイートをしているのをよく見かけた。

ほとんどのエンジニアには解けるが、下位10%のダメなエンジニアにだけ解けないパズル?

http://www.atmarkit.co.jp/ait/articles/1512/18/news030.html エンジニア1年目といえどこれはチャレンジせずにはいられない 「俺はダメなエンジニアじゃない!!!!!!!!!!!!!!!」 そして、5分後。。。

I’m Winner!!!!!!!

普段webやってるからってのもあるけど、何かしらのAPI触ったことのある人ならほとんどの人ができる問題だと思います。 是非チャレンジしてみてください!!
グロースハックする~ダフえもん~

Spring boot 使ってみた②

旅立つ友人に対して真面目な顔で言ってみたい一言は “フォースと共にあらんことを” のドラです。 (昨日は念願のスターウォーズを見に行って来たんだ!よくも悪くも期待を全く裏切らない映画ですね笑本当に未だに興奮冷めや欄わけですよ、、、今週末もう一回見に行こうか迷ってるんだ、、、)

Groobyコントローラーの仕組み

@RestController

このクラスがHTTPリクエストを受けてボディを持ったレスポンスを返す機能を持つこものであることを認識する。 ->REST用のコントローラ-として自動的に認識される

@RequestMapping(“/”)

メッソドにつけられメッソドの特定のURLにマッピングするためのアノテーション。 この場合/(ルート)へアクセスすればそのメソッドが呼ばれるようになる じゃあ前回のコードにhtml形式を埋め込んで見よう!

Thymeleafテンプレートエンジンを使う

@RestControllerではなく@Controllerを使う場合は@ResponseBodyを追加する これはWebのレスポンスボディをもつものであることを示すアノテーション つまりこのメソッドにアクセスしたらレスポンスが返るよという意味 ここで疑問になるのは@RestControllerにはそんなのなかったじゃん!となる 実は@RestControllerは@Controller+ResponseBodyの二役を果たしてたんです。
(これ正確な解釈ではないらしいがとりあえずはこれでいいらしい、、、適当だなおい)

Thymeleafテンプレート

SpringBootで標準でサポートされていてHTML+式言語のような感覚で扱うことができてしまう。

templatesフォルダの準備

groovyファイルがあるディレクトリにtemplatesフォルダをつくるこれがテンプレートファイルを入れるフォルダになる

index.htmlを作成

templatesフォルダのなかにindex.htmlを作成

@grabでライブラリをダウンロード

Thymeleaf-spring4をロードする

ModelAndViewを引数に設定

ModelAndViewはModelとViewをまとめて扱うクラス setNameでviewの名前を指定している なるほど これは簡単だ! でもまだJavaは使ってない、、、 GroovyはJava仮想マシンで動くスクリプト言語なのでJavaはこれからです。。。
グロースハックする~ダフえもん~

Spring Boot事始め

「春よ〜遠き春よ〜♫」春はまだまだ来ないドラです。 (iTunesだと荒井由実と松任谷由実が別々のアーティストで登録されてるから、iPodで聞くときめんどうなんだよね。さらにはアルバムによっては荒井由実(松任谷由実)みたいな表記になるからあの曲どこだっけてのが多いんだよ。でもapple music契約してからiPodを持ち歩かなくなったね。あんだけclassicの発売中止に落ち込んでたのに結局はiPhoneで済んじゃうんだもんね、、、) 次にプロジェクトからフレームワークの導入を検討していてJavaならSpringかplayかって感じで両方のメリット、デメリットを見比べて考えていたんですが、やっぱり実際に使ってみないとわからないということで双方をちょっとづつ触っていたのです! playを触った感想は簡単で小規模な開発には向くけど今回のには合わないかなといった感じ そしてSpringを触ります!

Spring BootでHello World

まずは定番のHello Worldを出力させてみます。

導入

groovyファイルでappを作る

実行

するとspringが立ち上がる あとはhttp://loacalhost:8080/ へアクセスするだけ うん!うまい具合にHellow world(ドラえもん)が表示されましたね。 ということで今日はこれまで!
グロースハックする~ダフえもん~

Macでよく使う開発ツールを晒してみる~コマンド~

エナジードリンクはレッドブルよりは断然モンスター派のドラです。 (前から思ってたんだけど、エンジニアにはメタラーが多いんじゃないか、、、だからモンスターを好むのも少し納得できる笑 僕もメタルは大好きだよ。tool(タイトルだけに笑)とか聞きながら一日中コード書いてられる笑 あとアイドル好きも多いよね。大衆向けのアイドルよりマイナーなアイドルを好む傾向もあるよね笑 バビューン) Macで個人的によく使うツールご紹介しましょう! 今回は コマンドライン系 です!! (Homebrew導入されていることが前提です、、、)

homebrew-cask

このコマンド一発で開発に必要なアプリをインストールできるすぐれものです! (これはまだlist以外用途を見いだせないかな、、、多分チーム開発かなんかで環境統一したいみたいなときに便利なのかな、、、)

導入

用途

Homebrewでインストール一覧を表示 これは管理に便利! Cashでインストールする

brew-gem

Rubyは使わないのだけどgemはiOS開発者にはなくてはならない存在ですね! そんなgemツール管理をしてくれる優れもの!

導入

用途

こんな感じかな

tmux

これを導入する前はターミナルを複数広げては”このサーバーじゃない”みたいな煩わしいことをやってました、、、 tumxを使い始めて2ヶ月ターミナルが一枚で収まって本当に気持ちがいいです。笑

導入

起動

tmuxに関してはまた別途記事にしようと思います。

tree

ディレクトリをtree構造で表示

導入

用途

Alamofireの中身を見てみるとこんな感じ

bash-completion

bashの補完をしてくれる良い奴!

導入

.bash_profileへ以下を記述 これで”あのコマンドのってなんだっけ?”が多少は解消されるはず!

nmap

Nmapとは?

あるネットワーク内で何台のネットワーク機器が接続されているか、またサーバ等のネットワーク機器に対してどのポートが開いているかを調査することができるネットワークスキャナツール ※使用には注意が必要 導入 ホストをスキャンする ホストのOSを検出する とりあえずこんな感じかな
グロースハックする~ダフえもん~

今更Swift2からの便利な変更点を知った、、、

引っ越すなら押入れはあったほうがキャラ的に美味しいと感じるドラです。 (ドラえもんの映画で一番好きなのはパラレル西遊記です。) なんだかんだSwift2にあげてからvarが勝手にletに保管されるぐらいでしかswift2の良さを実感してなかった、、、 そんな時にいった勉強会でちょうどSwift2のいいところをたくさん学んだのでメモメモ、、、

print関数

swiftではprintlnだったんだけどswift2からはprintだけでよくなったんだよね
しかも,で型関係なく値を出力してくれる優れものになっちゃった! さらには みたいにseparatorで区切っちゃうこともできる これはデバッグのときかなり役立つんじゃないかな~ もっと早く知ってたら効率上がったろうに、、、

for文

for文に複数の変数を定義できる これは使えそうだと思った for-in文にwhereで条件指定が可能 これも使えそう! Swift3ではfor文がなくなってfor-in文が推奨されるみたいだからね
グロースハックする~ダフえもん~

ログインページのあるサイトをcurlでスクレイピングしてみる

最近良く出てくるダフ(どら)です。 またまたダフったので今回はそれをまとめてみる。 スクレイピングはよくGASでやっているのだけど、curlという便利なものがあることに感激してしまった。 (最近はvimでスクレイピングができるという事実をしってしまって、、、なんておもしろいんだと勝手に高まってる笑)

curlとは?

簡単に言うとコマンドライン上でデータのやりとりができるすごく便利なやつ 様々なプロトコルに対応し、HTTPだけでなくFTPやSCPなんかでもファイル転送が可能

使い方

こんな感じで簡単に実行できる
ログインページであれば クッキーを持たせてやりたい場合はファイルに吐き出してそれをつかいまわしてやればいい あと煮るなり焼くなりご自由に! これをシェルスクリプトに書いて指定した時間に回したい 今回はこれにハマった、、、 21時に実行 atコマンドで指定したシェルが動かない、、、 どうやらMacではデフォルトでatコマンドは無効になっているんだとか、、、 なのでatコマンドを有効にしてやる これでシェルが実行される。 ふー時間かかった、、、
グロースハックする~ダフえもん~

markdownでブログを書いているのだけど、エディタがしっくりこない

この温もりは忘れないようにしよう!ドラです。
今日は朝活ブログです!笑 といっても眠いので技術的なことよりも普段使っているツールの紹介をして二度寝をきめたいと思います笑。
※純MacアプリなのでMac以外の人はご了承ください。 このブログもそうなのですが、markdownでものを書くことが多いんです。色々なエディタを試してはイルのですが、いまいちしっくりこないんですよ、、、 最近まではatomでmarkownを書いて、atomのプラグインでevernoteに保存->ブログ投稿っていうかんじだったんですが、atomは保存するとmarkdownの改行を自動的に取り除いてしまうので、投稿してから保存するみたいなわけわかめなことをやっていたんです。 なにかいいエディタはないかと探していたんですが、とうとう見つけてしまいましたよ、、、

kobito

Qiitaの投稿アプリなんですが、普通にmarkdownを書くのにもかなり重宝します。
特にQiitaに直接投稿できるので本当に便利です。

Deckset

これも私用で最近使い始めたのですが、markdownで書けるプレゼン資料作成アプリです。
テンプレートのデザインがかっこいいのでpowerpointやkeynoteにも負けていません。なにより、markdownで書けるということはこの記事を直接当て込んでもプレゼン資料ができてしまうという不思議笑
簡単なLTなんかで重宝しそうなツールです。 でもなんだかんだ使い慣れたエディタがいいということで結局vimで書いてます。笑 この3つのプラグインを入れるだけ!簡単ですね笑
  • vim-markdown
  • previm
  • open-browser.vim
ということで朝活終わり!おやすみなさい!
グロースハックする~ダフえもん~

appleさんの申請が一発で通って気分がいいので.vimrcを晒してみる

持ってないのはiPadとiMacだけ(たぶん、、、)エセapple信者のどらです。 タイトルにもあるように今日iOSアプリ第2弾がリリースされました。
\ぱちぱちぱちぱち/ 今回は周辺の充電スポットを探せる地図アプリ
その名も 『まちなか充電ナビ』
https://itunes.apple.com/us/app/id1072744226
APIを自作しているのでまだまだ登録スポットは少ないですが、今後機能とともにアップデートしていくのでどうぞ使ってやってください。 というわけで気分もいいでの最近使い慣れてきたvimの設定を晒したいと思います。
といっても何も特別変わったことはやっていないのでこれから少しずつ育てていく感じですね。笑
それとgithubの事始めとしていいアウトプットなので合わせて晒していきます。 .vimrc こんな感じですね。プラグインの説明やNeoBundleの導入とかはまた今度ということにしてこんな感じでかわいいかわいいvimたんを強化してあげます。笑
どうせならgitで管理しようということで あとはgithubへプッシュ!!!!!!!!!!!!!
(atomでこの記事書いてんだけど、atomの補完機能もすごいねNeoBundleとかデフォルトで出てくんのね、、、) 一応リポジトリも晒します。
https://github.com/inomar/vim_setting
グロースハックする~ダフえもん~

OAuthについてもう一度理解してみる

久しぶりに聴くアジカンは寒い夜に滲みますね。ドラです。 この次のプロジェクトで各SNSのOAuthを使ったログイン機能を実装することになりそうなので今一度勉強しなおしてみます。 すごくざっくりと作ってみました笑
これまた流れをざっくり説明すると 1. ユーザーはあるサービス(クライアント)の認証を得るためにFBトークンの発行を要求します。 2. FBはそのユーザを確認しトークンを発行します. 3. ユーザはそのトークンをもとにクライアントにリクエストを送ります。
4. クライアントはFBに発行されたトークンが正しいかどうかの確認を行います。 5. トークンが正しければクライアントから改めてトークンを発行してもらい、サービスを利用することができるようになります。 すごくざっくりですが、こんな感じでしょう!笑 というわけで次回以降は実際に簡単なプログラムを書いてみたいと思います、
グロースハックする~ダフえもん~

改めてViewControllerの切り替えを考える

攻殻機動隊 笑い男編がコミック化されていたことに感激しているドラです。
(早速3巻まで購入笑 攻殻機動隊TVアニメシリーズでは一番好きな話なんですよね。超ウィザード級ハッカーなんて言われてみたいですね。笑 今年の秋に最終巻が出るみたいです。) 今回のアプリ開発でview切替時のトリガーについて改めて確認できたので、まとめます。
  1. viewDidAppear: インスタンス化された直後に呼ばれる
  2. viewWillAppear:画面が表示される直前
  3. viewDidAppear:画面が表示された直後
  4. viewWillDisappear:画面が消える直前
  5. viewDidDisappear:画面が消えた直後
前々回スマホアプリには欠かせないアレを作る – Swift学習記録の例に追加して試してみたいと思います。

Storyboard

ViewController

MainViewController
SecondViewController
leftVC

実行結果

これで実行結果を見てみましょう. ここで注意したいのはLeftVCは別ストーリーボードであるということ。この辺がどう絡んでくるのか楽しみですね笑
MainViewController起動時
MainViewController→SecondViewControllerのとき

SecondViewController→MainViewControllerへ戻るとき

MainViewController→LeftVCへ
LeftVC→MainViewControllerへ戻る
MainViewController、SecondViewControllerそれぞれの動きは予想通りでした。 しかしやはりLeftVCへの切り替わり時はMainViewControllerのトリガーは呼ばれません。
これはなぜなのでしょうね。。。
この謎はドロワーの中身を調べてみるしかないでしょう!
ということで後半へ続く!