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

ぱちおのいろいろ。

プログラミング、イラスト、作曲、アニメ等好きな事や近況報告とかアウトプットしたい時に使います。

2週間でWebサービスを作ろうとしたら人が死んだ話

patioglass.hatenablog.com

これの制作にあたった制作秘話というかチラ裏的なあれです

どうやって作ったとかそんなのをメモ程度につらつら書いただけの記事なので読みたい人だけでも(*‘∀‘)

何かを作る

最近何も作ってなくてさすがにヤバさを感じていた(´・ω・`)

気づいたら一日が終わっていて絵を描いてもワンドロくらいのものしか描いてなかったし、なんかギター弾いてたかって言われるとうーんって感じ

VAIO Zも買ったものの面白い発想が降ってこず、特にこれといったコーディングもしていなかった

作る機会

たまたま課題で「なんか作れ」というあやふやなものが降ってきた(おいおい)

その時も特に面白い発想が降ってこず、「どうしましょ~~(*‘∀‘)」ってなっちゃてた

やばいなーって感じてた

ふと

イラスト・作曲・プログラミングさまざまな方面で活躍し始める同期、いろんなことに熱心な後輩達、なんだかんだ支えてくれる先輩達、Twitterで適当なノリについてきて会話してくれる人達とかとか

周りがすげえ!!!

すげえ!!!と思ったわけですよ(語彙力はない)

そんな人達から「体調悪くなるとあれだしね」とかたくさん励ましの言葉をいただいてた

たしかに体壊しちゃ意味ないよね?って言い聞かせてたし、むしろそれは正論で医者からもそう言われまくってる

でも!!

そうだけどそうじゃない!!!!(意味不明)

なんでもいい、作ってやる!って気分になれた

ありがとう

前置きが長い

ですね(*‘∀‘)

今回はWebに手を出した

経験

以前にあいちゃれに出場させていただいた時もWebだったわけですが、雑にいうとフロントエンドしか担当してませんでした

あ、ちなみに作ったやつ

これ「Yonkoma」です

yonkoma.abcang.net

デザインとか機能とか改変してこうって話はチームで一応持ち上がってはいる

鍋とかする時に気が向いたら開発する感じ

だからぶっちゃけサーバサイドマジでわかってなかった

つまりサーバサイドやってみよう

Yonkomaの時Ruby on Railsで開発を進めたのでいつでもチームメンツとかに質問が飛ばせるように同じくRailsでの開発を取り組んだ

VAIO Zも買ったばかりということで環境構築から

  • VMにDebian7を入れる
  • rbenvのインストール
  • ruby

とりあえずはこんな感じ

さて何をする

何作ろうか悩んでる間、友人は意☆味☆不☆明なのものを大量に生産していた

twitter.com

patio-shindan.rndlog.net

わしの呟きはフリー素材か

形態素解析

まあn番煎じ感あるけど形態素解析でなんかしてみよう

テンションを測定

冒頭でも言ってたように最近割と落ち込んでました( ;∀;)<ナサケナイ

よく「つらい」「だめだ」とか呟いてました(´・ω・`)

そんな時は好きな曲を聴いたりしてよく気分を紛らわしてました!

本当GUMIちゃんは天使です(唐突)

いろんな曲を聴くことは素晴らしい

目指すは「呟きのテンションに応じていい感じの曲が聞けるサービス」

この発想に至った時点で締切2週間前だったので割と焦る

ということでとりま形態素解析を行うため

を入れる

Twitter周りのうんぬんはここを参考にさせていただいた

OmniAuthで認証した後に、tweetしたりfollowしたりする | hello-world.jp.net

とりあえずは(忘れないメモ)

rails new プロジェクト名
**注意**

もし、Herokuへのデプロイを考えてるなら

データベースはPostgresqlにするようnewするときに注意

Sqliteは使えませんのでいろいろ設定することががが

プロジェクトを立てて、必要なviewとそのcontroller、さらにrouteを編集

class HogeController < ApplicationController
  def index
    
  end
end
  root 'hoge#index' 

modelだけはrails g使って生成

rails generate model モデル名 カラム名:データ型

controllerとかをrails gとかで生成しなかったのは何が起こったかよく分からなくなるのが嫌だったので。割と勉強になる

あとはいい感じにViewとControllerを書いていく


結構使ったコマンド:

テーブルにあとでカラムを追加したくなったとき(設計がばがばとか言わないで!)

rails generate migration Addカラム名Toクラス名 カラム名:型
rails generate migration AddValueToMusics value:integer

端末上からrubyでなんか実行したいとき/データベース確認したいとき

rails c
rails db

ミスってrake db:migrateしたとき

rake db:rollback step=1 

どうやって感情を測るのか

単語感情極性対応表

http://www.lr.pi.titech.ac.jp/~takamura/pndic_ja.html

高村大也, 乾孝司, 奥村学 "スピンモデルによる単語の感情極性抽出", 情報処理学会論文誌ジャーナル, Vol.47 No.02 pp. 627--637, 2006.

これを用いて感情値の計算をしています!(許可はいただいてます)ホモがマイナス値っていうのが個人的にツボです!

提出1週間前

ここまで少しつまづきながらもうまく言ってるような進捗だった

あとは音楽データを実際入れたり、ツイートボタン、お気に入り機能あたりを作れば終わる・・・そんな感じ

だが事件は起きた

マイグレーションファイルをちょいっと手でなおしてしまった(のだと思う)

なにやらわけわかんないエラーに見舞われ、色々と必死で手直しするうちにもっと見知らぬエラーに出会いどうしようもなくなってしまった

ggってエラーの対処法を行えば行うほど新たなエラーに遭遇する負のスパイラルである

仕方なく私は

プロジェクトを潰した

そして無言でモンスターを1つあけた

f:id:patioglass:20150623000224j:plain

大丈夫、もう一度作り直すだけさ

Herokuにデプロイ

一 番 つ ら か っ た

ちなみにこの時点で課題締切24時間切ってました(情弱すぎた)

周りが結構Heroku使ってたのでHerokuにあげようとしてたんですが、

  • HerokuでMecabをできない
  • HerokuはSqliteじゃなくてPosgresql

と後で知りました・・・(←先に調べとけ

HerokuでMecabを使う方法

github.com

buildpack作ってくれてた!!!!神!!!!

まずGemfileにmecabを追加

gem 'mecab' , '0.996'
bundle install
heroku config:set BUILDPACK_URL=https://github.com/diasks2/heroku-buildpack-mecab.git
heroku config:set LD_LIBRARY_PATH=/app/vendor/mecab/lib
heroku config:set MECAB_PATH=/app/vendor/mecab/lib/libmecab.so

で設定完了!!

ちなみに、、、私はここで意味不明すぎるエラーを吐かれまくって2日費やしました()嫌になりすぎてエラー内容もなんかあんま覚えてない・・・一番よくみたのは「Mecabなんてファイルないよ????(*‘∀‘)」ってずっと言われたことですかね。。。

そんな感じで環境変数設定して動くはずのものが動かずうわああああってなったとき!!

消そう

heroku apps:destroy --app アプリ名 --confirm アプリ名

実際消してもう一回createしたら通った(たぶん自分がそれまでに変なことしてたんだと思う)

HerokuのSqlite3からPostgresqlに変更

config/database.ymlで本番のproductionをpostgresqlにする

production:
  adapter: postgresql
  encoding: utf8
  database: database
  port: 5432
  username: username
  password: password
heroku config
//DATABASE_URL:postgres://username:password@hostname/database

//username:passward@hostname/databaseの形で教えてくれるのでそれに合わせて入力

Gemfile

group :production do
  gem 'pg'
  gem 'rails_12factor'
end
group :development, :test do
  gem 'sqlite3'
end

慣れてないせいでめっちゃエラー吐いたのがymlの記述のところ

ymlはスペース二つで入れ子になるのを完全に忘れて適当なインデントでやってたせいで「Settinglogics」 周りでいっぱいエラー出た

ここまでやったらbundle install、コミットしてプッシュだあああ!

通らなかったら私みたいに2日くらい悩んでください(理不尽)

しかし、

heroku run rake:db migrate

をすると「ActiveRecord::StatementInvalid: PG::UndefinedTable: ERROR: relation ~」

そんなテーブルないぞ的な?いやいやいやあるある

qiita.com

この記事なかったら死んでた・・・

これであげられた・・本当に感動した・・・

ちなみにデータベースのsqlite→posgresqlへの引き継ぎはtapsっていうgem使って、heroku db:pushみたいなことすればいい!みたいな記事にぶち当たったんですけど上手くいかなかったので今回は諦めました

開発中の状況と出費

この開発の2週間でモンスターを何本も飲んだ

周りのリア友からさすがにそれは死ぬんじゃないとも言われ始めてたし

その間に別の友人はスプラトゥーンを買っていたので何回か忍び込ませてもらい、イカしたプレイをしてた

スプラトゥーン1戦につき1行のソースコード

我ながら当時は「最高のソリューション!」ってなったけど1日経ってその非効率さに気づきました

そんなこんなでこの2週間死んでました(死にました)

これから

まぁぼちぼちなんか作っていきます

 もうすぐ6/26!!!!!!!!

お前らわかってるだろうな!!!!!!!!!!