Rails3チュートリアルのアプリがデプロイできねえ。
2012-05-12T06:22:16+00:00 app[web.1]: !! Unexpected error while processing request: no such file to load -- active_record/railtie
→Gemfileに追記&bundle installしてデプロイしたらうまくいった。
gem 'activerecord'
gem 'actionmailer'
gem 'activeresource'
gem 'pg'
ActionViewがどうたら・・・
→config/environments/production.rbを書き換えたらうまくいった。
config.assets.compile = true #falseとtrueに
数時間も調べないとわからない問題が多いのが困る…バージョン依存もあったりするし。
やっぱり何か作るならASP.NETの方が楽なのかなあ…
2012年5月12日土曜日
2012年5月8日火曜日
Windows 2000にTortoiseGitをインストール・・・できなかった
素のWindows2000だとmsiがインストールできないので以下が必要。
2012.05.12 追記
普通のコマンドラインベースのgitなら入った。gitkで履歴を見れるし結構十分っぽい
Windows Installer 3.1 Redistributable (v2)
でもインストール中に「XP SP3以上じゃないと駄目だから!!」って言われて駄目だった。
なんとかしてLinux入れるしかないのか…
2012.05.12 追記
普通のコマンドラインベースのgitなら入った。gitkで履歴を見れるし結構十分っぽい
2012年5月6日日曜日
AppHarborと格闘中(3)
とりあえず、GWが終わるとしばらく更新できそうに無いのでAppHarborの印象まとめ。
・無料で使える範囲で結構遊べる。
・Windows OSなので、恐らくWindowsで動くEXE、DLLはだいたい呼び出して使える。
・Tempフォルダを使えばサーバー上でファイルの読み書きができる。
・GitにPushするだけでサーバー側でビルドしてくれるし、結果も割りと早く表示されるので、問題解決にかかる時間は短い。
Windowsで動くEXE/DLLを呼び出せるってのはPaaSとして結構強みな気がする。
今のところどんな面白いことができるか思いつかんけど。
・無料で使える範囲で結構遊べる。
・Windows OSなので、恐らくWindowsで動くEXE、DLLはだいたい呼び出して使える。
・Tempフォルダを使えばサーバー上でファイルの読み書きができる。
・GitにPushするだけでサーバー側でビルドしてくれるし、結果も割りと早く表示されるので、問題解決にかかる時間は短い。
Windowsで動くEXE/DLLを呼び出せるってのはPaaSとして結構強みな気がする。
今のところどんな面白いことができるか思いつかんけど。
2012年5月5日土曜日
AppHarborと格闘中(2)
Softalkにしゃべらせられないか試してみたけど無駄骨だった…
結局TEMPフォルダにファイルを吐けることがわかったことだけが進展。
string wabefiletitle = DateTime.Now.ToString("yyyyMMddhhmmss") + Guid.NewGuid().ToString() + ".wav";
string wavefilename = Path.GetTempPath() + wabefiletitle;
しゃべらせるならアドレス渡すだけでWAV吐いてくれるgoogle翻訳しかないのかなぁ。でも非公式だし難しそう。
結局TEMPフォルダにファイルを吐けることがわかったことだけが進展。
string wabefiletitle = DateTime.Now.ToString("yyyyMMddhhmmss") + Guid.NewGuid().ToString() + ".wav";
string wavefilename = Path.GetTempPath() + wabefiletitle;
しゃべらせるならアドレス渡すだけでWAV吐いてくれるgoogle翻訳しかないのかなぁ。でも非公式だし難しそう。
2012年5月3日木曜日
AppHarborと格闘中(1)
だんだんAppHarbor以外でも詰まるようになってきた。
AppHarbor周り
・ソリューション作成時にASP Net WebサイトではなくASP.NET WEBアプリケーションを選ばないとうまくいかない。
その場合、AppHarborがprecompiledしてるからApp_Code入れるなよ~的なエラーを吐く。
なぜかbin/objフォルダの内容も上げないとうまくいかない。自分だけかも・・・
・.Net Framework 4.5には対応していない。Visual Studioのプロジェクトを右クリック→プロパティ→アプリケーション→対象のフレームワークから4に変更する必要がある。
LINQ周り
せっかくなのでLINQにも挑戦してみました。
・LINQでデータベースとやり取りするにはdbmlファイルを使ってマッピングするのが早い。というか私にはこの方法しか無理。
Visual Studioから追加できる。LINQ to SQLクラスという名前になっている。
・データをSELECTしてくるときは以下みたいな感じ。
DataClassesDataContext dc = new DataClassesDataContext(GetConnectionString());
dc.Connection.Open();
var query = from b in dc.BATTLELOG
orderby b.LOGID descending
select new
{
戦闘日付 = string.Format("{0:yyyy/MM/dd}", b.BATTLEDTE),
登録者 = b.ENTUSR,
自チーム名 = b.TEAMNAME,
相手チーム名 = b.OTEAMNAME,
戦闘マップ = b.MAPM.MAPSN,
種類 = b.BATTLEM.BATTLETYPENAME,
勝敗 = b.WINLOSE,
時間帯 = b.TIMEMESH1.TIMEMESHSN + " 時",
コメント = b.NOTE
};
//SELECT結果をグリッドビューに表示
gv.DataSource = query;
gv.DataBind();
最初はConvert.ToStringでキャストを試みたけどうまくいかんかった・・・string.Formatだと何故か成功。
・INSERTするときは以下みたいな感じ。
BATTLELOG blog = new BATTLELOG
{
ENTUSR = txtEntUsr.Text,
TEAMNAME = txtTeamName.Text,
OTEAMNAME = txtOTeamName.Text,
MAPCD = txtMap.SelectedValue,
BATTLETYPE = txtBattleType.SelectedValue,
WINLOSE = txtWin.Text,
BATTLEDTE = Convert.ToDateTime(txtBattleDate.Text),
TIMEMESH = txtTimeMesh.SelectedValue,
NOTE = txtNote.Text
};
dc.BATTLELOG.InsertOnSubmit(blog);
dc.SubmitChanges();
本当はトランザクションとかいろいろ張ってるけど割愛!!
・戦闘のn件だけ取りたい、という場合はSQLだとrownumとか使っていたが、LINQの場合はTakeを使う。
以下はLOGIDで降順ソートして先頭100件だけ取ってくる例。
var query = (from b in dc.BATTLELOG
orderby b.LOGID descending
select new
{
戦闘日付 = string.Format("{0:yyyy/MM/dd}", b.BATTLEDTE),
登録者 = b.ENTUSR,
自チーム名 = b.TEAMNAME,
相手チーム名 = b.OTEAMNAME,
戦闘マップ = b.MAPM.MAPSN,
種類 = b.BATTLEM.BATTLETYPENAME,
勝敗 = b.WINLOSE,
時間帯 = b.TIMEMESH1.TIMEMESHSN + " 時",
コメント = b.NOTE
}).Take(100);
Visual Studio周り
・エディットコンティニュ(デバッグ中にコードを書き換える機能)はVisual Studioのプロジェクトを右クリック→プロパティ→WEB→一番下の「エディットコンティニュを有効にする」をONにしないと使えない。
2012年5月2日水曜日
GWが終わったらきっと更新も止まる
GW中AppHarborで遊んでいたらあまりに詰まってきたので、詰まった履歴を忘れないように(あるいは他の人に役立つように)メモしていきます。
AppHarvorがC#好きな人のためのHerokuとして認知度が高まるといいなあ…
とりあえず"AppHavor"でググってもわからない範囲でメモるよ!!
・自分のローカル環境
Windows 7 64bit
Visual Studio 11 beta
msysGit
TortoiseGit
・自分のAppHavor環境
1ワーカー
アドオン:SQL Server Free(20MB)
AppHavor周り
・たまに"Web.configに追記が必要~"みたいな説明があるけど、追記しなくてもとりあえずデプロイはできる
・SQL ServerはconnectionStringをweb.configから持ってくるのが楽。
string connectionString = ConfigurationManager.AppSettings["SQLSERVER_CONNECTION_STRING"].ToString();
デプロイすると、自動的にweb.configを置換してくれる。
具体的には以下のあたりを置換する。
<appSettings>
<add key="SQLSERVER_CONNECTION_STRING" value="Server=ホスト名\SQLEXPRESS;Database=データベース名;User ID=ユーザーID;Password=パスワード;" />
</appSettings>
</configuration>
Visual Studioのプロジェクトを右クリック→プロパティ→設定からやってもうまくいかないので、直にweb.configに書いたほうが早いみたい。
・SQL Serverで列をvarcharにするとハデに文字化けする。nvarcharに変更するのが手軽な解決策だったけど他に手段があるかも。
・AppHavorで作成した無料DBはMicrosoft SQL Server Management Studioから開ける。でもインポート/エクスポートがうまくいかなかった…
今はローカルDBからスクリプト作成した後、無料DBで流すようにしてる。
・環境が海外なので、MaskEditExtenderでMaskType=Dateとか指定すると、うまくいかないことがある。
例:2012/05/02→0002/20/12
CultureNameプロパティにja-JPを指定してやると解決する。
・・・なんか一投稿が長すぎると見難いから続きはまた明日!!
AppHarvorがC#好きな人のためのHerokuとして認知度が高まるといいなあ…
とりあえず"AppHavor"でググってもわからない範囲でメモるよ!!
・自分のローカル環境
Windows 7 64bit
Visual Studio 11 beta
msysGit
TortoiseGit
・自分のAppHavor環境
1ワーカー
アドオン:SQL Server Free(20MB)
AppHavor周り
・たまに"Web.configに追記が必要~"みたいな説明があるけど、追記しなくてもとりあえずデプロイはできる
・SQL ServerはconnectionStringをweb.configから持ってくるのが楽。
string connectionString = ConfigurationManager.AppSettings["SQLSERVER_CONNECTION_STRING"].ToString();
デプロイすると、自動的にweb.configを置換してくれる。
具体的には以下のあたりを置換する。
<appSettings>
<add key="SQLSERVER_CONNECTION_STRING" value="Server=ホスト名\SQLEXPRESS;Database=データベース名;User ID=ユーザーID;Password=パスワード;" />
</appSettings>
</configuration>
Visual Studioのプロジェクトを右クリック→プロパティ→設定からやってもうまくいかないので、直にweb.configに書いたほうが早いみたい。
・SQL Serverで列をvarcharにするとハデに文字化けする。nvarcharに変更するのが手軽な解決策だったけど他に手段があるかも。
・AppHavorで作成した無料DBはMicrosoft SQL Server Management Studioから開ける。でもインポート/エクスポートがうまくいかなかった…
今はローカルDBからスクリプト作成した後、無料DBで流すようにしてる。
・環境が海外なので、MaskEditExtenderでMaskType=Dateとか指定すると、うまくいかないことがある。
例:2012/05/02→0002/20/12
CultureNameプロパティにja-JPを指定してやると解決する。
・・・なんか一投稿が長すぎると見難いから続きはまた明日!!
登録:
投稿 (Atom)