HerokuでRailsで無料Shared Databaseを使う手順

HerokuにRailsアプリを作ってShared Databaseの無料枠5MBを使うまでたどり着いたのでそのときの手順をメモ。

環境

※ローカルDBサーバー構築せず

手順

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 2Sublime 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を指定する方法があったら教えてください。

アプリ構成

herokuで動いてるrubyアプリです。sinatrahaml、sass、Bootstrap、jQueryあたりを使ってます。Key情報を収集するとかしてません。ソースはGithubで公開中。
https://github.com/gelegele/GetTumblrAccessToken
はじめてまともに作ったサービスになるけど使ってくれる人いるのかな?

formのサブミット前にvalidationとかする方法

HTMLのformをサブミットする際に、クライアント側で必須項目の入力チェックとかつまりvalidationをしたいんだけど勝手にサブミットされてしまい困ってる、という人の参考になれば。

ボタンではなくjavascriptのsubmit()でサブミットさせる

まずボタンのtypeをsubmitではなくbuttonにします。次にjavascriptの関数を用意します。validation合格だった場合だけformエレメントのsubmit()を行なうように実装しましょう。あとはボタンのonclick属性で先の関数を指定すればできあがり。

実際のコードはこちら。

MS-DOSとかターミナルでタイプミスした文字を一発で消す方法

WindowsMS-DOSMacのターミナルで、タイプミスした文字を一発でクリアする方法があるはず!と思いながら今日までBackSpaceの長押しで生きてきましたが、やっと調べる気になったのでメモ。

MS-DOSはEscキー

MS-DOSならEscキーで一発です。厳密にはdoskeyによって拡張されたMS-DOSでのみ有効らしい。

ターミナルは ctrl + u

MacLinuxのターミナルの場合は ctrl + u でクリアできます。正確には行頭からカーソル位置までの文字列のクリアになります。そしてviのコマンド入力も同じでした。

今日をもってBackSpace長押しから卒業します。

ドットインストールがなぜ楽しいのか考えてみた

最近はまっているプログラミング学習サイトのドットインストールがなんで楽しいのか考えてみた。

1.最大3分

1レッスン3分未満の動画でスマホでも見れるからいつでもどこでも受講可能。このライトな設計が学習というちょっと頑張りが必要な行動への障壁をこれ以上ないほど下げてくれてると思う。尺の長いコンテンツはつかみが弱い昨今とは言え、3分という決断はお見事です。

2.今どきな技術から老舗の技術まで

jQueryCoffeeScriptなど今どきなレッスンもあればvim正規表現などの老舗なレッスンもあるので初心者じゃなくてもためになります。技術ごとにレッスンが章立てになっているので「正規表現のうちフラグについてだけ学習したい」という人でもつまみ食いしやすくなってます。

3.取捨選択

例えばgitであれば「バージョン管理って何?」って人がpushできるようになるまでに必要な知識を22のレッスンに分割して順に学べるようになってますが、そのレッスン構成に過不足感はなく、各レッスンを見ても無理やり押し込んでいたり引き伸ばしていたりという印象もありません。きっと学習における基礎とは何なのかについて、適切な取捨選択を行った結果なのでしょう。

4.弾き語り

講師は代表の@taguchi氏、声のみの出演です。3分という制限時間にも関わらずゆったりまったりとした口調で丁寧に説明してくれます。地味にすごいのが、レッスンはすべてタイピングしながら説明するという弾き語り形式であり、しかも見た限りすべて一発録り。録画とは言え簡単なことではないと思うんだけど@taguchi氏はそれを自然にこなしているように見える。しかも1000本突破って、もはやアーティストですな。

思い

こんなに素晴らしいサイトが無料だなんて最近のインターネットはどーなってるんだと思い、背景やらを調べてったら@taguchi氏のブログに立ち上げの思いみたいなものが書かれてました。

個人的な夢ですが、僕は自分が死ぬまでに「国語、算数、理科、社会、英語、プログラミングが必修」になっていればいいと思っています。そうじゃないと日本はこれから大変だな、と。別に国粋主義者とかでもないですが、やはり日本が好きなのはしょうがないですよね。

やはり大事を為すには「思い」有りきなんですよね。感謝と共感の思いでステッカー購入しました。これからも陰ながら応援していきたいと思います。


2012年6月14日追記:

ステッカー到着しました。

Spark DataGridにCheckBoxとかを盛り込む

FlexのSparkのDataGridにレンダラーを使ってあれこれコンポーネントを盛り込んでみました。

盛り込んだのは以下の内容。

  • CheckBox
  • DropBox
  • restrictやmaxCharsが指定できるようItemEditorをカスタマイズ

ソースコードgithubにあります。