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

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を検出する とりあえずこんな感じかな
スクリーンショット 2016-01-21 2.44.47

インバウンドマーケティングに挑戦!! ーユーザーの行動を知るー

インバウンドマーケティングとは

昨今のWeb業界では広告を出したり、ダイレクトメールを送ったりするアウトバウンドマーケティングではなくブログを書いたり、ソーシャルメディアを利用したり、SEO対策したりしてユーザー自らWebコンテンツを見つけてもらえるような施策をうつインバウンドマーケティングが主流になってます。 そこで、自分たちもインバウンドマーケティングをおこないユーザーの獲得をできるようにしていきたいと思います!!

ユーザーの思考を分析してみる

今回は、インバウンドマーケティングの記事の一回目ということで、 「ユーザーの思考」について分析していきます!! その後、ユーザーはその思考を元にどういった行動を取り、どんなサイトに訪れるのかということを分析・考察していきたいと思います。

転職希望者について考える

ターゲットとするユーザーは『転職を希望しているユーザー』という比較的大きな括りで定義していきます。 転職を希望している転職希望者はどういった思考で
  1. 転職準備
  2. 応募・面接
  3. 退職・入社準備
という流れの中で転職をおこなうのか。 その際に、どいうったサイトやアプリを利用するのかを考えていきます。 では、一番最初の段階である転職準備でのユーザーの思考について分析していきます。 転職は一般的に4ヶ月〜6ヶ月程の時間でおこなうと言われております。 その中で転職準備に使う期間は3分の1〜4分の1くらいです。 もちろん、転職する人の状況によって大きく変わってきますが、 それくらいの期間を使うのが理想となります。 その転職準備の期間には何を行うのか。。。 大きく分けると以下の4つになります。
  • 転職の計画を立てる
  • 自分のキャリアの棚卸し
  • 求人情報の収集
  • 履歴書・職務経歴書の準備
と、ここまで転職する人の行動について書いていきましたが、 本題は転職する人がどういった考えをもって行動するのかということです。 なので、必要なのは「転職する理由」であると思います!!

転職理由ランキングトップ10

ですので、数十の情報を元に転職理由ランキングをまとめてみました。
順位転職理由割合
1他にやりたい仕事がある21.2%
2給与が不満14.3%
3会社や業界の将来性に不満13.8%
3残業が多い・勤務時間に不満13.8%
5専門的な知識を身につけたい10.4%
6上司と合わない6.1%
7人間関係が合わない5.9%
8幅広い経験を積みたい5.7%
9社風が合わない5.0%
10キャリアアップ3.7%
1位が「他にやりたい仕事がある」と、前向な回答となり、 2〜4位は今の会社に対しての不満からの回答になりました。 これらの回答からそれぞれの理由の場合はどういった行動を取るのかという部分を深堀りしていき、 ユーザーに合った対策を施していくことに成ります。 まだまだ、インバウンドマーケティングの「イ」の字もわからないですが、 分析と勉強を繰り返していきます。 それでは、後日に続きを書いていきます!!
8386

Webサービスの管理画面について考えてみる

今回は「サイトの管理画面について考えてみる」ということで、 先日管理画面についてのセミナーに参加してきたので、 そこで聞いた内容を自分の考えをふまえてまとめていきます。

管理画面を作る目的を考える

どんなサービスでもそうだと思いますが、 サービスや機能において何かしらの課題があります。 その課題を解決するための手段の一つとして管理画面があります。
  • サービス運営者がデータの管理をしやすくする
  • サービス利用者が多種多様な情報から自分が知りたい情報だけを見れるようにする
といった何かしらの目的があって管理画面が作られ、改良されます。

管理画面の利用者によってデザインや仕様を変える

管理画面は利用する人の業種や職種によっても変わってきますが、 自社の社員だけの利用か、自社の社員以外が利用するのかによってもデザインや機能は異なってきます。 例えば、セミナーの発表にあった、飲食店の予約管理システムでは、 ITリテラシーがそこまで高くない方でもお客さんの予約状況を管理しやすいようにします。 そのためには、簡単でわかりやすいことを重視します。 現場の人の声に耳を傾け 並びかたや検索の仕方を変更していく必要があります。 また、社内のみで管理画面を利用する場合には、
  • 運用工数を減らすこと
  • 開発の工数がかからないで作ること
といったようにデザインよりも機能の部分で比重を置くケースが多いです。

管理画面の共通する考え方

共通する考え方では下記のようなことが挙げられます。
  • データの間違いがおこらないようにすること
  • 万が一、データの間違いが起こったら迅速に対応出来る体制を作ること
  • 管理画面を利用出来る人の権限を管理すること
  • 将来を考えた設計にすること
色々と書きましたが、まだ実装には至っていないので、 どういった考え方で設計していけばいいのかという部分をまとめていきました。 実装段階に入ったら、細かく仕様やデザインにも触れていければと思います。 今回参加したセミナーはこちらになります。
グロースハックする~ダフえもん~

今更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
8143

AndroidでRealmを使ってみた〜お気に入り機能の実装(其の五)〜

今回はRealmから抽出したデータを並び替えする処理をしてみたいと思います。 前々回で抽出したデータを並び替えたいと思います。 完成した後の画面がこちらです。 こちらはGoogleMapsを利用して、電源の使えるカフェを地図上に表示させるアプリで、 並び替えは「現在地から近い順」にしています。 なお、Realmに並び替えの処理が存在するのですが、 今回紹介させていただく方法は別の方法ですのでご了承ください。。。 並び替えに必要なデータは
  • 現在地の緯度・経度
  • 各データの緯度・経度
になります。 ※現在地の緯度・経度の取得は本内容とは直接関係ないので、割愛致します。

「現在地から近い順」に並び替える手順

  1. 現在地から緯度・経度を取得
  2. Realmに登録されているデータから緯度・経度を取得
  3. 上記の1と2のデータから距離を算出
  4. 距離を含む各データをArrayListに格納
  5. ArrayListのデータを距離が近い方から並び替える
  6. 並び替えたArrayListをListViewで表示
といった流れで処理させていきます。

1.現在地から緯度・経度を取得

現在地の緯度・経度は取得できているものとします。

2.Realmに登録されているデータから緯度・経度を取得
3.距離を算出
4.距離を含む各データをArrayListに格納

それぞれの電源の使えるカフェのデータには緯度・経度があり、それらはRealmに登録されているので取得していきます。 距離の求め方は中学生?の時にやった三角関数を用いれば算出できますね!! a:緯度 b:経度 c:距離 となります。

5.ArrayListのデータを距離が近い方から並び替える

Collectionsクラスのsortメソッドを利用して並び替えをおこないます。

6.並び替えたArrayListをListViewで表示

最後にListViewに設定すれば、「現在地から近い順」で表示されます!! もっといい方法があったら教えていただけるとうれしいです。。。汗 今回の記事で「AndroidでRealmを使ってみた」を終わりたいと思います!! 今回のRealmを利用したアプリがこちらになるので、よければダウンロードしてみてください!!