HerokuでRailsで無料Shared Databaseを使う手順
HerokuにRailsアプリを作ってShared Databaseの無料枠5MBを使うまでたどり着いたのでそのときの手順をメモ。
手順
1.railsアプリを生成
例としてhogehogeappというアプリ名とします。
rails new hogehogeapp
2.scaffoldコマンドでひな形作成
rails generate scaffold User name:string email:string
3.DBをsqliteからPostgresqlに変更
Gemfileの中のDBのgemをsqlite3からpgに変更して
#gem 'sqlite3'
gem 'pg'
bundlerを実行
bundle install
4.Gitでローカルコミット
git init
git add .
git commit -m 'first commit'
5.Herokuアプリの登録
heroku create
6.GitでHerokuにpush
git push heroku master
7.Heroku上でマイグレーションを実行
heroku run rake db:migrate
以上で作業完了。まずはブラウザでルートにアクセスし、Railsのデフォルト画面が表示されればデプロイ成功。次にscaffoldで作成されたURLを叩いてリスト画面が表示されればShared Databaseへの疎通も成功。こうして難なく行けば10分程度でWEBアプリを公開することができる。Railsさまさま、Herokuさまさまです。
Sublime Package Controlがプロキシ環境だとエラーになる
最近お気に入りのエディタなSublime Text 2にSublime Package Controlをインストールしたので、Sublime Package:Install Packageを叩いたら下記エラーダイアログが。
Package Control: There are no packages available for installation.
コンソールにはより詳しいエラーログが。
Package Control: Error downloading channel. URL error _ssl.c:480: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol downloading https://sublime.wbond.net/repositories.json.
error: Package Control: There are no packages available for installation.
ぐぐったら同様のIssueをPackage Controlのgithub上に発見。
https://github.com/wbond/sublime_package_control/issues/94
どうやらプロキシ環境下でのhttps接続に問題があったらしい。github上ではすでにコミットされてるけど今のバージョン(v1.5.0)にはまだ入ってなかったので以下に回避策を。
回避策1:設定ファイルを書き換える
Preferences -> Package Settings -> Package Controll -> Settings-User に以下を追加。httpsをhttpに書き換えてるだけ。
"repository_channels": [
"http://sublime.wbond.net/repositories.json"
]
回避策2:ソースコードを修正する
githubの修正を自分で適用してもよい。下記サイトを参考に。
https://github.com/wbond/sublime_package_control/commit/d9c19a9e167a936a614f80c50d16d67808ce0f08
要は、Preferences -> Brows Packages で開いたフォルダの中のPackage Controllの中にPackage Control.pyがいるのでそいつを下記に従って2行書き換えればよいだけ。
Tumblr APIのAccess-Tokenを取得するサービスを作ってみた。
Tumblr APIは投稿など一部の機能でOAuthが要求されます。それには事前にAccess-Tokenを取得しておかねばならんのですが、このAccess-Tokenの取得がなかなか手間取ったので、だったらその苦労をサービスとして公開しようと思いherokuアプリを作ってみました。「とにかくまずTumblr APIで投稿とか試したい」という人の役に立てればうれしいです。
http://gettumblraccesstoken.heroku.com/
Default callback URLの設定が必要です
見ての通り登録したTumblrアプリのConsumer KeyとSecret Keyを入力すればよいだけですが、その前にひとつだけ準備が必要です。Tumblrアプリの設定画面でDefault callback URLを以下のように設定してもらう必要があります。
本当はこの手間を省こうと当アプリからの書き換えを試みたんですが、セキュリティ的に制限されているのか結局かなわず。Stack Overflowにもそれっぽい悩みが出てました。
Tumblr OAuth Callback URL - Stack Overflow
もし外からcallback URLを指定する方法があったら教えてください。
formのサブミット前にvalidationとかする方法
HTMLのformをサブミットする際に、クライアント側で必須項目の入力チェックとかつまりvalidationをしたいんだけど勝手にサブミットされてしまい困ってる、という人の参考になれば。
ボタンではなくjavascriptのsubmit()でサブミットさせる
まずボタンのtypeをsubmitではなくbuttonにします。次にjavascriptの関数を用意します。validation合格だった場合だけformエレメントのsubmit()を行なうように実装しましょう。あとはボタンのonclick属性で先の関数を指定すればできあがり。
実際のコードはこちら。
ドットインストールがなぜ楽しいのか考えてみた
最近はまっているプログラミング学習サイトのドットインストールがなんで楽しいのか考えてみた。
1.最大3分
1レッスン3分未満の動画でスマホでも見れるからいつでもどこでも受講可能。このライトな設計が学習というちょっと頑張りが必要な行動への障壁をこれ以上ないほど下げてくれてると思う。尺の長いコンテンツはつかみが弱い昨今とは言え、3分という決断はお見事です。
2.今どきな技術から老舗の技術まで
jQueryやCoffeeScriptなど今どきなレッスンもあればvim、正規表現などの老舗なレッスンもあるので初心者じゃなくてもためになります。技術ごとにレッスンが章立てになっているので「正規表現のうちフラグについてだけ学習したい」という人でもつまみ食いしやすくなってます。
3.取捨選択
例えばgitであれば「バージョン管理って何?」って人がpushできるようになるまでに必要な知識を22のレッスンに分割して順に学べるようになってますが、そのレッスン構成に過不足感はなく、各レッスンを見ても無理やり押し込んでいたり引き伸ばしていたりという印象もありません。きっと学習における基礎とは何なのかについて、適切な取捨選択を行った結果なのでしょう。
4.弾き語り
講師は代表の@taguchi氏、声のみの出演です。3分という制限時間にも関わらずゆったりまったりとした口調で丁寧に説明してくれます。地味にすごいのが、レッスンはすべてタイピングしながら説明するという弾き語り形式であり、しかも見た限りすべて一発録り。録画とは言え簡単なことではないと思うんだけど@taguchi氏はそれを自然にこなしているように見える。しかも1000本突破って、もはやアーティストですな。
思い
こんなに素晴らしいサイトが無料だなんて最近のインターネットはどーなってるんだと思い、背景やらを調べてったら@taguchi氏のブログに立ち上げの思いみたいなものが書かれてました。
個人的な夢ですが、僕は自分が死ぬまでに「国語、算数、理科、社会、英語、プログラミングが必修」になっていればいいと思っています。そうじゃないと日本はこれから大変だな、と。別に国粋主義者とかでもないですが、やはり日本が好きなのはしょうがないですよね。
やはり大事を為すには「思い」有りきなんですよね。感謝と共感の思いでステッカー購入しました。これからも陰ながら応援していきたいと思います。