rails 独学して軽くにちゃんまとめつくる

読者です 読者をやめる 読者になる 読者になる

rails独学して軽く2ちゃんまとめビルダーをつくる。

rails tutorial読破→2chまとめビルダー作成→アメリカでインターンシップ→恋活SNSを作成・・・・・→音で感触をつくり感触をあつめたライブラリをつくる

『flier』をプログラマ的視点でためしてみた~本の要約書評サイト~

bukupe.com

おもしろいサービスだと思った。こういう情報ってさがせばあるんだけど、個人ブロガーだったり、アマゾンの感想欄だったり、感想文になっていたりとなかなか一貫してよむことができない。書評をまとめてくれていて、ライターをやとってかいていて分量もおおくて見やすい。getabstract という海外版の輸入といった感じ。

www.getabstract.com

参考になる箇所も多々あって教材としてもよろしい。

 

 

書評を書く専門のライターがいる

だいたい5000文字くらいを書く要約ライターがいることにおどろいた。amazon のように参加者が自由勝手にコメントを残していくのではなく、ちゃんと flier 側が用意したライターが書いている。そうすることによりかなりしっかりした文章になっていて、フォーマットも整っている。一定の品質を確保するためにはこういうことも必要なのだろう。

ただ、本の要約の分野においては契約されていないユーザーが書評を投稿する形式は成り立っている。 bukupe というサイトがそれを証明している。このサイトでは PV 数に応じて書評を書いた人にお金が流れるしくみになっている。

http://bukupe.com/summary/760

アフィリエイト臭がしない

まずさがしたのはアマゾンのリンクで、どうせアフィだから買え買えとうるさいんでしょう?とおもったのだが、パッとみたかんじわからなかった。ほんの画像をクリックしてもアマゾンのページに飛ばない。まんなかばっかり探してたのだが、右端にあった。そりゃそうだ。有料プランもあるのだから、わざわざアフィリエイトで稼ぐなんてケチなことをしなくてもいい。

もともとこのサイトを経由して売れなくてもいいんだ。というか本が売れたら出版社側に流れるようにしているのかも。bukupe ではそうらしい。

 

f:id:mooooooooooriiiiii:20170426110411p:plain

PDFでダウンロードする機能がある

これはいいのか?使う人が思い浮かばないが、案外使ってる人も多いのかも。

 

有料プラン

要約があるからと言って全部の本の要約がみえるわけではない。無料プランでは読める要約の数がきまっている。こんな感じで 「無料」のタグがつけられている。TED TALKS とか読んでみたいのだが、こんな感じに無料と有料の記事がいっしょくたんになっていたら有料プランになりたくなくなる。

 

f:id:mooooooooooriiiiii:20170426111216p:plain

 

著作権の問題はない

どうやらすでに出版社とも話がつけてあるため、著作権の問題はないのだそう。本は著作権が絡んでくるから面倒なのだろうとおもったが、どうやって対処したのだろう。

 

自社の記事も作成している

『心が折れそうになったときに読みたい5冊』みたいなおすすめを紹介する記事だったり、本の著者へのインタビュー記事の2種類ある。ぼくもこういうサイトつくったらこんな感じの自社記事つくりたいわ。検索に引っかかりやすくなるというのもあるのかな?ほんのレビューページって検索に引っかかってくるとは思えないし。それプラス作ってて楽しそう。

 

未ログイン状態でもすぐ読める

たまにログインしてない状態のホームのページが説明欄に割かれていることがある。これはちょっとサービスを触ってみたいとおもう人にとってはとても邪魔。ログインしてなくてもすぐに書評ページにいけるくらいでないと困る。

f:id:mooooooooooriiiiii:20170426115607p:plain

 

そのあと、こんな感じのサービス紹介があればいいのだ。まさに理想だな。ただ、紹介されている本は無料会員はよめないような本ばかりが紹介されている。。。

 

f:id:mooooooooooriiiiii:20170426115830p:plain

 

 

ログインの要求画面がモーダル

これはありがたい。別ページにとんでいったらものすごく鬱陶しい。bootstra でモーダルがつかえるようにしとかなきゃ。これも bootstrap つかっているぽいん。

f:id:mooooooooooriiiiii:20170426120858p:plain

 

 

ヘッダーのデザインがいい感じ

このようにスッキリまとまっている。クリックしたときもスムーズに動くし。アイコンではなく文字でヘッダーをつくってもこんなにスッキリ見やすくなるもんなんだなあ。

ただあわよくば、ヘッダー以外の場所をクリックしたときにも閉じてほしい。スクロールしたときにもこの出っ張りが邪魔をする。このままじゃ、青い部分か、ヘッダーのどこかをクリックしたときでないと閉じてくれない。

 

f:id:mooooooooooriiiiii:20170426121333p:plain

 

 

index がきれいにまとまっている

本だからそうなのかもしれないが、表示の画像と本の情報というシンプルなつくりだが、ニュースサイトや感想サイトなどにはない整った感じがある。なんでかわからないが、すっきりして見える。

f:id:mooooooooooriiiiii:20170426121847p:plain

 

サイトのイメージカラーが出すぎてない

もっと鬱陶しいくらいにイメージカラーをだすのかとおもったらそうじゃない。青と黄色の2色を基調としているが、そんなのが気にならないくらい落ち着いた色使いになっている。その分メリハリがなく、ちらついた感じが出てる。

 

本情報

評価というのがある。う~ん、これはいらん気がする。出版社と提携をむすんでいてかつ、ライターがかいているのだから結局は3以上のお世辞評価におちつくことは間違いないのだから。Amazon のように利害関係のない多数の一般人が評価してはじめて評点はいみをなす。

f:id:mooooooooooriiiiii:20170426122227p:plain

 

 

詳細ページ

だいたいこんな感じの構成なのだが、本の内容について「レビュー」「要点」「要約」の3つに分けたのはすごい。3つに分けようなんて考えたこともなかった。レビューはまさに amazon に書いてあるような内容、要点は重要なポイントを3つくらいに絞ってそれを教えてくれてる。要約はほんの内容のまとめを書いてある。章ごとのまとめなのか、ストーリーごとのまとめなのかは書き手によってことなる。

 

レビューを2番目にもってきたのもいいな。こちらのほうが見慣れてるし、親しみを覚えやすい。なんでいいのかを感情でうったえてくるからいいな。ライターも自分を出せる場所としても使えるし。(要約要点ならライターの個性が出ない)

 

また、ユーザーの感想というのがない。これは徹底した運営ファーストをつらぬいているのだろう。これだけ書いてあったら、ユーザーがかくことはないもんな。ユーザーの感想はなにかかけている情報の穴埋めに役立つ。それはニュースだったりユーザー投稿型だったりしたらいいのだろうが、このサイトではもはや必要ないだろう。

f:id:mooooooooooriiiiii:20170426123900p:plain

 

無料

無料で読める本の一覧ページがある。ありがたや。

 

f:id:mooooooooooriiiiii:20170426125233p:plain

タグ

ジャンルと著者がタグになってる。タグというよりかは、css で見た目をととのえて、a タグを張ればだいようできるのでは?ユーザーがタグを作るのであれば別だが、運営側でタグを管理するならばぜんぜんおっけ。

 

 

テキストエディタ

見やすい css で書かれている。マークダウンではなく、自分らで作成した感じになっているぞ。マークダウンを自作したのだろうか。書き手はプログラマじゃないから、わかりやすいように作る必要があるな。

 

 

 

trippiece をプログラマ的視点から見た感想~イベント企画系~

イベントや旅行の企画サイト。個人が「こんな場所いきませんか?」という企画を持ち出し、それユーザーが参加する。運営側に管理されているのではなく、自由に投稿できるのでいろいろとある。いくつか面白そうなのもあった。どうみてもリア充系サイトだな。

 

 

フロントエンド

新規登録したあとのプロフィール入力が、こんな感じでモーダルで表示されるのはおもしろい。たしかにこうやったら鬱陶しくない。新規登録時はいきなるプロフィール画面に飛んでいってしまうのもあるが、こんなのがあるとは。また、新規登録の後、認証のためのメルアド確認はなかった。

 

f:id:mooooooooooriiiiii:20170425233123p:plain

 

こういうサイトって機能しているかどうか不安なんだよな。だから○○件実施されました!合計何人の人が利用しました!と打ってくれたらいいのに。うぜーと思うが同時に安心できる。

 

 

行きたいレベル機能が面白い。これは主催者のためであり、迷っている参加者のためでもある。だれかが行くなら俺も行く、というのはよくあることなのでそれが数字で可視化されているのは面白い。

f:id:mooooooooooriiiiii:20170425234245p:plain

 

 

値段未定やほんとはかかるのに0円というのはダメだわ。こんなのウソやん。ある程度の予算はきめてほしいわ。たとえば提携の旅行会社を通したときとかの値段で旅費はだいたいわかるし、プルダウンメニューで外部サイトと連携した移動費くらい割り出せるやろ。食事や移動費もだいたいわかるやろ。

f:id:mooooooooooriiiiii:20170425234528p:plain

 

 

まあshow画面の自由記述欄はいいと思うが、予定は旅のしおりみたいなインターフェースえつけたほうがいいとおもう。旅の企画なんだし、そっちのほうが楽しそう。

 

イベント作成フォームでマークダウンつかうのはまずいぞ・・・だいたいの人マークダウンなんか知らないし・・・

f:id:mooooooooooriiiiii:20170425235540p:plain

 

プルダウンメニューがモーダルででてきた!いつもはプルダウンメニューしかないのだが、数がおおくなってきたらこんなかんじでモーダルにするのがいいですね!

f:id:mooooooooooriiiiii:20170425235703p:plain

 

 

フォントを別のものにしたほうがいい。こういうサイトはかわいらしさを求めた女性向けのほうがいいから、もっと丸っこい文字をつかったほうがいいかと。。。

 

f:id:mooooooooooriiiiii:20170426010517p:plain

 

ヘッダーがいい感じ。アイコンと文字が一緒になったかんじがいいわ。

 

f:id:mooooooooooriiiiii:20170426010724p:plain

 

イベント詳細画面のサイドバーにコメント機能がついている。パーフェクトruby on rails でみたことがあるぞ。こういう感じでつかわれてるのか。チャットの見た目として作られているよりかは、こじんまりしてて一対多のときとかには便利かも。

 

 

 

f:id:mooooooooooriiiiii:20170426091331p:plain

 

 

 

色での区別って大事なんだな。ただこの場合は申し込み受付中か受付前という、けっこう地味な部類分けで色をかえているからあんまり目立たせてないのかな。でもわざわざ色の区別するくらいだったら、キャプションでもめだたせたらいいのに。にしてもindex 画面で色をかえるのはいいよな。

 

f:id:mooooooooooriiiiii:20170426091319p:plain

 

 

1人の主催者が多数の参加者をひきつれる場合って、信頼性の可視化を主催者におくものだから、もっと主催者の情報をかけばいいのに。プロフィール、過去に行ったイベントとか、ほかに主催しているイベントとか、過去のイベントの参加者数とか、開催回数とか、感想とかとか。そのへんストアカとか参考になるぞ。

逆に参加者情報はこちらからは全く分からないな。たしかに人が実際に出向くからストーカーみたいなのを起こさせないためか。必然的に感想欄も40代女性みたいなかきかたになるか。

渋谷・恵比寿のネットショップ運営講座「不安脱却!最短5日間でネットショップ開店!月5万円のお小遣いを作る」by Nagai Takahiro | ストアカ

 

 

かと思えばユーザーの詳細ページにとぶことができる。なんのこっちゃ。参加済み、申し込み中、お気に入りのすべてがみえるし。あ、でもユーザーid が連番ではなくハッシュ値になっている。でもだとしたら、表示させないのはいったいなんのため?

これまたストアカを例にするが、これはえらい。参加するときのプロフィールと、教えるときのプロフィールを別々にしている。せやな。参加するときの情報なんか本来のせる必要なんてないもんな。

 

こんな感じに自分のプロフィールページでも切り替えられるようになっている。

参加者と主催者の2つのデータを持つとき、絶対きりかえたほうがええわな。また、プロフィール画面をいくのにも

https://www.street-academy.com/dashboard

こういう感じになっている。current_user を紐づけているので、ほかのユーザーのページにはいかせないようにしてるな。このコツは知ってるで。ただ、先生用ページは

https://www.street-academy.com/steachers/0000000

というように数字になっている。おそらくこれが id なんだろうな。なんにせよ、こんな感じで切り替えるのが重要ですわ。

 

f:id:mooooooooooriiiiii:20170426094950p:plain

 

 

 

検索画面がこうやってトグルででてくるのはええな。へんなやつは、検索用ページにとんでいってしまう。スマホのときも、スマホ専用ページに飛んで、別ページにとばずとも検索ができた。

ワード検索だけでは間に合わないときはええな。

 

f:id:mooooooooooriiiiii:20170426095439p:plain

 

 

やっぱこういうのって通報ボタンがあるんだな。CtoC では大事だな。

 

f:id:mooooooooooriiiiii:20170426100100p:plain

 

大事な情報をこうやって横のリストにあつめるのはいい!「いつ」「どこで」「いくら」が重要事項だし。

 

f:id:mooooooooooriiiiii:20170426100159p:plain

 

 

ただ、自由記述欄が自由過ぎてカオスな状態になってとても見にくい。。。

たとえば適当にページを紹介する

光と向き合う体験した事のない時間、アートに泊まる。光の館 - トリッピース

 

店員、最小開催人数、料金、申し込みの流れ、締め切りこれはせっかく定式化されているのだが、いかんせん目立たない。。。だからわざわざ自由記述欄にかくひとが現れる。もっと間隔をあけたほうがいいな。

f:id:mooooooooooriiiiii:20170426101222p:plain

 

 

過去の開催済みのイベント情報、どんな内容かなどの定式化しやすい部分はちゃんとテンプレにしたらいいのに。

 

 

 

面白い合コンが集まる omo.com のプログラマ的レビュー

参考になる箇所

徹底的な女子受けが特徴

・絵と丸文字

・ひらがなの多用

・カラフル

サイドバーの設計が上手い

 

れびゅ~

こういう出会い系は女子に向けた UI になるのが鉄則である。このサイトは絵とひらがなの多用と手書き文字で勝負してきた。こんな感じのかわいい絵と丸文字がいっぱい出てくる。

f:id:mooooooooooriiiiii:20170420184228j:plain

 

こんな感じで色がめちゃくちゃある。黄色を基調とした超カラフルなサイトだ。

f:id:mooooooooooriiiiii:20170420184707p:plain

 

 

 

さらにポイント制を導入しており、ユーザーの価値を可視化している。

また、ユーザーが見えない。。。参加したら見えるのかもしれないが、未参加の状態では参加ユーザーの名前すら見えないのだ。不思議。

 

開催されているイベントは「暗闇合コン」「寝ても覚めてもボブ合コン」「利き米合コン」などゲテモノぞろいだ。

 

 

サイドバーがスマートフォンに最適化されている。もともとトグルボタンしか用意されていないし、クリックするとサイドバーが右から現れて、表示している画面が暗くなり左に寄せられる。移動もみえるので、見た目的にもいい。そして height: 100% で設定されているのでパソコン用とスマホ用でどうしようと悩む必要がなくなった。賢い。bootstrap あでレスポンシブ対応している。

 

 

ここでもまた女子受けのいいひらがなの多用と画像の多用。

しかしこの li が画像+文字となっているのはいいな。

 

f:id:mooooooooooriiiiii:20170420185849p:plain

 

 

new について

ユーザーができるのは運営側に提案することだけで、イベントを新規作成するのはユーザーには許されていない。そこで「ていあん」するフォームが用意されている。

https://omocom.jp/offer/

OfferEventData というモデルを作っているらしい。おそらく運営側にだけ通知がいくようになっているのだろう。

このときの new のサイドバーはいまいちかな。マウスオーバーしたら自動的にドロップダウンメニューが開くようになっている。この機能をつけるときはもうちょっと時間を長く設定してほしいな。

 

くどいようだがこの説明欄も女子受け抜群である。

f:id:mooooooooooriiiiii:20170420190752p:plain

 

 

Rubyによるクローラー開発技法の目次とそのあらまし

chapter 1 10分間のクローラーの作成

  1.   イントロダクション
  2.   クローラーGNU Wget
  3.   クローラーを作るにあたっての Ruby の基礎
  4.  Rubyでテストサーバーをたてる
  5.  超簡単!10分で作るクローラー
  6.  クローラーを拡張する

chapter 2 クローラー作成の基礎

  1. クローラーの目的と構造
  2. Anemone を利用する
  3. Anemone のインストールwindows編)
  4. Anemone のインストール (Mac編)
  5. 基本的なクローラーを作成する
  6. 行儀のよいクローラーを作成するには
  7. ブラウザタイプのクローラー

chaper 3 収集したデータを分析する

  1. 収集したデータを分析する
  2. HTML解析と正規表現
  3. 文字コードの対処法
  4. RSS の解析
  5. 自然言語を使った日本語の処理

chapter 4 高度な利用法

  1. データの保存方法
  2. クローラーの開発とデバッグ方法
  3. クローリングとスクレイピングの分離
  4. クローラーを効率的に動かすには
  5. Anemone のオプション一覧
  6. APIを利用した収集

chapter 5 目的別クローラーの作成

  1. Google の検索結果を取得する

  2. ブログへのクローリング
  3. Amazon のデータを取得する
  4. Twitter のデータ収集
  5. Facebookへのクローリング
  6. 画像を収集する
  7. Youtubeから動画を収集する
  8. iTunes Store の順位を取得する
  9. Google Play の順位を取得する
  10. SEO に役立てる
  11. Wikipedia のデータを活用する
  12. キーワードを収集する
  13. 流行をキャッチする
  14. 企業・株価情報を収集する
  15. 為替情報・金融指標を収集する
  16. 郵便番号と軽度井戸情報を取得する
  17. 新刊情報を収集する
  18. 荷物を追跡する
  19. 不動産情報を取得する
  20. 官公庁オープンデータを活用する
  21. 新聞の見出しを集める

chapter 6 クローラーの運用

  1. サーバーサイドで動かす
  2. 定期的にデータを収集する
  3. 収集結果をメールで自動送信する
  4. クラウドを活用する
  5. さらなる高速化の手法
  6. 変化に対応する
  7. クローラーとそれに付随する技術

 

といった内容になっています。Rubyクローラーの情報は日本ではこの本しかないのでネットでデータを自動収集したいとおもう方はおすすめです。

1章の10分でつくるクローラーについてはしなくてもいいと思います。あまり ruby とは関係ないし、なにより応用が利かないからです。これはこんなのがあるんだなーと流し読みする程度でかまいません。

 

さて、本題は2章からです。ここでは Anemone と nokogiri という gem を使って説明してくれています。2章の最初ではクローラーとはなんぞやということについて系統立てて説明してくれてます。要は

  • コンテンツの取得(クローリング)
  • データの解析(スクレイピング
  • データの保存

という作業の一連をクローラーがしてくれるのです。一つ目のクローリングですが、これが一番厄介なのです。ウェブページといってもおおまかに分けて2種類あります。一つはステートレスなページ。このサイトもステートレスなページですね。とくにこの記事をみるのにログインが必要なわけでもなく、「続きをよむ」ボタンを押さなくても全文が読める、フツーのページのことです。この手のものには Anemone を使ってデータを収集します。

次にステートフルなページ。本書ではアマゾンアフィリエイトを例に説明していますが、先ほど述べたようにログインが必要だったり、続きをよむボタンを押さなきゃならなかったりと、ボタンを押したり入力したりなど何らかの操作が必要なうぇぶさいとのことを指します。 facebook もそうですね。これをクローリングするには capybara という gem を使います。この capybara を入れるのはそうとう厄介なのでべつのページで解説したいと思います(cloud9 を使っていますので、説明は centos などの linux 環境になるかと思います。windows, mac ユーザーの方も本書を読んでもできなかった場合動作確認としてcloud9 でやってみることを勧めます。)

 

本書ではアマゾンから情報を抽出してきたり、capybara を使って仮想的にボタンをクリックしてくれてページ移動をしてくれたり、ヤフーのタイトル情報を取得したり様々なことをしてくれます。本章で anemone や capybara の基礎をたっぷり学んで、5章を見るべきです。これらの gem の機能は十分に説明されているのでクローラーをまだしたことのない人でも十分に学べます。

 

3章4章は飛ばして、5章の説明を。

これが一番おもしろい。思う存分クローラーで遊べるからだ。もう一度先ほどの目次を引用する

 

  • Google の検索結果を取得する

  • ブログへのクローリング
  • Amazon のデータを取得する
  • Twitter のデータ収集
  • Facebookへのクローリング
  • 画像を収集する
  • Youtubeから動画を収集する
  • iTunes Store の順位を取得する
  • Google Play の順位を取得する
  • SEO に役立てる
  • Wikipedia のデータを活用する
  • キーワードを収集する
  • 流行をキャッチする
  • 企業・株価情報を収集する
  • 為替情報・金融指標を収集する
  • 郵便番号と経度緯度情報を取得する
  • 新刊情報を収集する
  • 荷物を追跡する
  • 不動産情報を取得する
  • 官公庁オープンデータを活用する
  • 新聞の見出しを集める

さすがにこれだけあったら一つくらいは気になるのがでてくるだろう。いっぱいあってややこしそうだが、結局やることは anemone か API の利用だ。特に twitter の収集が面白かった。 twitter api で調べてみるといい。やってみた系の情報がいっぱい出てくる。ぼくもいくつかその手の記事を書いている。

twitter-stream という gem を使えば不特定多数のツイートが絶え間なく取得できるのでそれを眺めるだけでも暇つぶしができる。条件を絞ることによってフォロワー10000人以上を取得したり、「彼女」というワードを含むツイートに限定したら「彼氏」>「彼女」という比率だったり、キリンビールの広告ツイートの多さに驚いたりと十分楽しめる。

2ちゃんねるまとめビルダーもこの技術でつくることができるし、満足できる1冊である。まあなんせこれは面白い本だ。ぜひ買うことを勧める。

 

 

【オレオレ要旨】落合陽一氏『Fairy Lights in Femtoseconds: Aerial and Volumetric Graphics Rendered by Focused Femtosecond Laser Combined with Computational Holographic Fields』

f:id:mooooooooooriiiiii:20170417152605p:plain

 

どんなもの?

空間に映像を映し出す

先行研究と比べてどこがすごい?

肌への安全と大きさを変えることに気を付けている。空間に投影している。

技術や手法の肝は?

ナノセカンドではなく、フェムトセカンドをつかうことで、安全性をました。Galvano scanner と varifocal lens で座標を測定した。焦点を移動させることで、映像の位置を変えている。

どうやって有効だと検証した?

フェムトセカンドレーザーで放射したレーザーをSLM や Galvano Scanner で変形し、空中に映し出す。

議論はある?

器具が多すぎて簡単にパソコンに実装できない。表示できるのが1cm3さすがに小さすぎる。横からではなく下から映すてるのがやば

次に読むべき論文は?

Tunnnel ionization of complex atom

 

面白かった。 何かのテレビでみてこの論文を知った。画像だけみるととても小さい機械のようにおもえるがじつはとても大きくて、大仕掛けなのだとしった。また、これをボタンに応用できるらしいので未来感がでてよかった。

 

リンク

https://arxiv.org/ftp/arxiv/papers/1506/1506.06668.pdf

パーフェクト Ruby on Rails を読んだので

評価は★四つ。

アマゾンでは☆3つ半くらいだったがその理由もなんとなくわかる。おそらく低い評価をした人は中級以上の人で rails を1年以上実務で使っている人や、何冊も rails 関連の本を読んだ人に違いない。そういう人にとっては「こんなの当たり前」と思い低評価をしたにちがいない。

しかし僕のような rails 初心者にはしらないことがたくさんあって、学べるところが多かった。

この本の肝はアプリ開発の実践例にあり、スケジューラーアプリの作成、Rspecをつかったテスト、chef やvagrant をつかったサーバー構築とデプロイが書かれている。

 

本の構成は、1/3 が初歩的な説明、1/3がイベント作成アプリの作りかた、1/3が応用的な内容になっている。詳しくみていこう。

 

1章は rails のインストールの仕方になっている。この本を読む人はおそらく rails を読んでみたけどなんだかわかった気がしないレベルの人が読んでいるはずなので蛇足といえば蛇足だろう。

 

2章(p44 ~ p92)

MVC について再確認している。「わかったようなわからんような」レベルの人はここがきちんと系統立てて理解していないことがあるのできちんと読むことを勧める。モデルの役割は?と聞かれて CRUD が頭に浮かばなかった人は読んでおこう。

また、 CRUD という言葉は浮かんでも個々の役割についてきちんと説明できるだろうか?データベース系はせんじ詰めれば Create, Read, Update, Delete の4つのことしかやってない。

Ruby に置き換えたら Read は find や find_by のことで、これに関連する事柄に scope や has_many, belongs_to がある。

Create は new や create のことで、関連する事柄に バリデーションやコールバックがある。こういったことを言われてパパッと関連する知識を思い出せたか?

 

コントローラーを作成したときにすぐにルーティングの定義をしなくちゃな~という思考回路が出来上がってるか?ストロングパラメーターについて理解してるか?API 作成時に使う jbuilder について理解してるか?パーシャルについて理解してるか?

心配ならぜひよむべき章だ。

 

 

3章(p94~p129)

この章ではアッセトについて書かれている。app/assets/ にあるアイツラのことで, javascript, stylesheet などを指す。これらはアセットパイプラインというので結びつけられていて、それの原理を説明している。

次に coffeescript や sass の文法の説明がある。あまり意識して使おうとおもったことがないのでなるほどと思った。

最後に turbolinks の説明がある。rails は高速化をはかるために、サイト内の aタグクリックでページ移動をしたときに head タグを確認して同じであれば<title> と <body> を差しかえるだけで、アセットはそのままにしておくという手法をとっている。それに関する注意点が書かれている

 

 

4章(p130~p141)

アプリ開発をしていると MVC のいずれにも当てはまらないものを書く必要がでてくる。そういったものは

・モデルとして扱う

・lib ディレクトリにおく

・新しいレイヤーを作成する

という方法をとる。このレイヤーをつくるためのオートローディングの設定やacttive_decorder という gem を使ってレイヤーを作成する例がのっている。

本書では sidekiq という非同期処理を行うものを例にとってそういったのをどこに置くかを説明している。

 

5章(p142~p158)

便利な gem を紹介しています。特にやくだったのが pry という gem です。これを使うと、ソースコードを最後まで実行せず途中でとめることができて、それまでに代入されている変数の中身の確認や、メソッドの実行ができるステップ実行を行うことができます。さらに show-models、show-routes などの操作でモデルのカラムやリレーションの確認ができたりしてとても便利。

 

6章(160~239)

ここが本題のスケジューラーアプリの作成をしている。

プログラミングのIT勉強会・セミナー・イベント情報 - dots.[ドッツ]

こんなサイトをイメージしたらいいだろう。

twitter認証の omnauth をつかったり、bootstrap を使ったり、i18n を使って、f.label の日本語化をしたり、Ajaxを使った場合のエラー処理だったり、N+1問題を扱っていたり、ransackを使った検索機能を実装したりと、盛りだくさんの内容で、知らないことをたくさん知った。ここだけでもう2千円分の価値はあった。twitter 認証など、知ってるけどなんだか怖くて手がだせなかった機能を実例を交えて解説してくれているのでとてもありがたい。

f.label はこうやって日本語化するんだな~というのもわかった。いままでどうして f.label なんて使うのだろうと思っていたが、この国際化のためのものだった。

 

7章(p240 ~p274)

Rspec を使ったテストを実装している。 Rspec を勉強したいと思ってたが、RailsTutorial はminitest だし、『Ruby on Rails アプリケーションプログラミング』もminitest だし、サイトで調べたのは断片的だして、勉強する資料がなくてこまっていた。しかし パーフェクトRuby on Rails では Rspec を使ってテストしているのでありがたい。昔は should 記法というのがあったらしいがそれが廃止され expect 記法で書かれているという補足情報もありがたい。じつは RailsTutorial の2版ではテストが Rspec で書かれていたのでそれをたまにみてたのだが、それは should 記法をつかってるので変な癖がつかずにすんだ。

 

さらに capybaraを使ったエンドツーエンドのテストや poltergeist を使った javascript のテストがあり、かなり本格的になっている。

また、実際にテストのてきようはんいを 調べることができるカバレッジというのを説明してくれている。simplecov というのを調べてみよう。

 

8章(p275~p330)

 

ここは難しいのと、必要がないのと、windows なので飛ばした。どうやら vagrantVMをつくり、chef と連携し~と書いてるがよくわからん。ただ説明がなので気になるひとはよんだらいいとおもう。めんどくさい人は heroku で十分。

 

9章(p332~p375)

ここは面白い。モデルってこんなに深いないようだとは思わなかった。

「まよったらモデルに書け」とか「ファットモデル」という言葉はきいたことあるだろうか?rails ではとにかくモデルにたくさんコードをかくように言われているが、それもたくさんになりすぎたときのリファクタリングについて詳しく書かれている。たとえばバリデーションやコールバックを別クラスとして定義しなおしたり、ActiveModelをつかったり、値オブジェクトを利用したりする。

この値オブジェクトというのがとても便利。本書で説明されているのを例にとる。

Userというモデルに住所の情報をか address カラムを持たせているとする。これがおおざっぱな情報でよければそのままでいいのだが、都道府県名の prefecture カラムや市区町村 city カラムやアパート名の apart カラムまで詳しく定義しておきたいとき、 User モデルの持つカラムは非常に多くなる。さらに住所はほかのPlace クラスや Company モデルでも使われるとすると重複する。

こういった事態に対処するために Address モデルとして切り離してしまおうというのが値オブジェクトのしたいことだ。大規模な開発のときに役に立つ。

他にも concern というのも扱っている。 app/models/concerns、 app/controllers/concerns というのがあってなんだこりゃと思っていたが、どうやらモデルやコントローラーから特定の機能のためにのみ利用されるメソッドやバリデーションをここに書くらしい。

・タグの分類機能

・ログイン制御

などを書き込むらしいぞ。本書では論理削除の実装を行っている。

 

 

10章(p376~411)

 この章は流れるように説明されているので、本書でわかる必要はない。

Rack と Rack::Middleware と gem の作り方が書かれている。これらを使って rails を拡張しようというのが本章の狙いだ。ゆえに内容も高度になっている。 Rackとは railsアプリケーションサーバーをつなぎ合わせる機能のことをさしている。p378では4行程度の rack のコードを書いて実際にサーバーを立ち上げて localhost にアクセスして文字を表示させている。何をいってるかさっぱりわからないかと思うが、私もわからない。この章はレベルの高い人だけがよむものだ。

 

脱初心者を目指す人はぜひ買うべき本であるのでおすすめする。

 

パワポ版の落合先生流論文要旨のテンプレートを作ったので配布する

高速で論文がバリバリ読める落合先生のフォーマットがいい感じだったのでメモ - 書架とラフレンツェ

 

この落合陽一先生のオレオレ要旨の記事をみてぼくも真似したくなったのでテンプレートを作ってみた。

 

 

 

テンプレートはこういう出来上がりになっている。

f:id:mooooooooooriiiiii:20170416211841j:plain

 

落合先生のスライドにあったように

「どんなもの?」「先行研究と比べてどこがすごい?」「技術や手法の肝は?」「どうやって有効だと検証した?」「議論はある?」「次に読むべきタイトルは?」

の6つの項目をもとにして論文をアウトプットするフォーマットだ。論文とはただ闇雲によんでいくものではなく、きちんと目的をもって読み進める必要がある。初心者は読むべきターゲットや目的がわからないが、このフォーマットに従うだけで論文を読むときの思考過程を誘導してくれて効率よく情報を吸収してくれる。

 

さっそく SlideShare からダウンロードしてきてください!

 

slideshare からダウンロードしてください】

 

ダウンロードしたら4ページ目にある例のコンテンツを編集してそのまま使ってください

 

ではテンプレートのつかい方を説明します。

メインコンテンツのこの6つの項目から。

 

f:id:mooooooooooriiiiii:20170416214304p:plain

 

これはそのまま、内容を変えるだけで大丈夫です。緑の枠はそのままで、コンテンツ部分をクリックしたらそのまま編集モードに入るので、(削除してご使用ください)というぶぶんを消してそこに書き込む。

さらに右下に小さいが「日付」とかいてあるのがわかる。ここに読んだ日付を書こう。いつ呼んだのかもメモしておくといい。

 

つぎにヘッダー部分について説明する。

ヘッダーには題名、著者と書かれた年代、pdfの配布リンクの4つを書き込む。

 

これだけで論文を簡潔にまとめることができるオレオレ要旨ができあがる。

オプションとして画像をついかすることができるので、最後のページにそれをはっておいた。