リア充爆発日記

You don't even know what ria-ju really is.

Titaniumでlongjohn.js:184がでたら

こんなエラーがでたとき。 $ ti build --platform android --log-level info -T dist-playstore Titanium Command-Line Interface, CLI version 3.2.0, Titanium SDK version 3.2.1.GA Copyright (c) 2012-2013, Appcelerator, Inc. All Rights Reserved.Ple…

ActiveDecoratorでhas_manyな関連モデルに対応する

ActiveDecoratorは今のところ、has_manyとかbelongs_toなモデルをdecorateしてくれない。PRが上がっているようだけど、これ2年前か。 https://github.com/amatsuda/active_decorator/pull/8githubの常識とかよくわからないんだけど、こんな感じでスルーされ…

rubyのstrftimeとかで0なしの月や日を表示する方法

マイナスを入れるだけ。 @user.birth_date.strftime("%Y年%-m月%-d日") マイナス思考から すぐに抜け出す9つの習慣作者: 古川武士出版社/メーカー: ディスカヴァー・トゥエンティワン発売日: 2012/11/14メディア: 単行本(ソフトカバー) クリック: 8回この…

unread gemとpublic_activity gemを組み合わせて使う

ハラが減ってるので、差分の作業だけメモっていく。unreadは既読、未読的なやつができる。 public_activityは「○○から☓☓にいいね!がありました」みたいなやつができる。この2つを組み合わせて、「○○から☓☓にいいね!がありました」が未読から既読にできる…

poltergeistでテストごとに設定を変更する方法

poltergeistはここにいろんな設定内容の説明が書いてある。 https://github.com/jonleighton/poltergeist#customizationで、今回js_errorsを一部のテストだけfalseにしたかったので、その方法を調べた。何かそれようのメソッドがある感じじゃなかったので、…

parallel_testsでRSpecのテストを高速化

テストが多くなってくると必然的に実行時間が長くなってしまう。 テストの書き方を工夫する余地があるうちはいいけど、それもきつくなってきたらもう後はマシンパワーに頼るしかない。そこでこちらのparallel_testsです。 https://github.com/grosser/parall…

動的にActiveRecordのプロパティにアクセスする方法

参考:http://www.davidverhasselt.com/set-attributes-in-activerecord/ふつう @user.name = "foo" とかやるところを、どういうわけかname1..name3くらいまであって、同じような処理をしたいときの話。 具体的にはバリデーションのテストだったんだけど。@u…

RailsとMySQL5.6.xで全文検索をやってみた

時間がないので備忘録的に書いていく。http://dev.mysql.com/doc/refman/5.6/en/fulltext-search.html 前提 全文検索には、Natural Language Full-Text SearchesとBoolean Full-Text Searchesがある。 日本語で前者を使うには、分かち書きを別途導入する必要…

Rails4のconcernsなmoduleのテストをrspecで書く方法

Railsとcapybaraで何かをドラッグアンドドロップしてソートするテストを書くではカテゴリをソートするfeaturesなテストを書いたけど、アレには当然modelのテストもある。モデルにはCategory.reorderという並び替えを行うメソッドがあって、これのテストはcat…

Railsとcapybaraで何かをドラッグアンドドロップしてソートするテストを書く

今回はカテゴリを画面でソートできることをテストする。たとえばブログで言えばブログカテゴリの表示順を管理画面でソートしたいとき、などの話。 こんな画面で、ドラッグアンドドロップでソート後、更新ボタンを押したら、その順番に更新される、という仕様…

さくらのVPSにMySQL5.6をかんたんにインストールするメモ

まぁ、こまけーことはいいからすぐに最新が使いたいんだよ。という向きにはおすすめ。 http://dev.mysql.com/doc/refman/5.6/en/linux-installation-yum-repo.htmlMySQL本家が、yumリポジトリを提供している。 さすが本家ということで、5.6.15が最新のGAのと…

RubyでEnumを使いたかったらenumerize

追記)この記事古いので、Rail4.1以上を使う場合は、ActiveRecord::Enum使ったほうがいいと思います。https://github.com/brainspec/enumerize結論からいうと、これはいいです。 例えば職業や性別なんかのDBで管理するほどのもんじゃないものはコレで扱うと…

Redmine2.4をインストールしようとしてMysql2::Error: Index column size too large

Redmine2.4をCentOS6.4+MySQL5.5にインストールしようとして、ひさしぶりに以下のエラーをみた。 Mysql2::Error: Index column size too large. The maximum column size is 767 bytes.: CREATE INDEX `wiki_pages_wiki_id_title` ON `wiki_pages` (`wiki_i…

TitaniumでAndroidアプリをリリースビルドしたときだけ上手く動かなくて泣いた話

リリースビルドと開発ビルドで何が違うかというと、リリースビルドのときはJSにminifyがかかります。で、こういう配列があったとき,悲劇が起こります。 GENRE: "01": "ほげ", "02": "ふが", "03": "もが", minifyがかかると、"01"は1にされちゃいます。マジ…

rbenvで新しいrubyのバージョンをインストールしようとしてエラーが出たときのメモ

homebrewの人でrbenv intall 2.0.0-pxxxでこけてエラーログがこんなだったら・・・ 1 warning and 1 error generated. make[2]: *** [readline.o] Error 1 make[1]: *** [ext/readline/all] Error 2 make[1]: *** Waiting for unfinished jobs.... ~~~ ld: w…

MySQLでdatetimeをSQLで修正するときに便利で意外だったこと

5.6.13で確認。 | id | name | updated_at | created_at | +----+------------------+---------------------+---------------------+ | 1 | リア充 | 2013-10-04 16:26:47 | 2013-10-03 06:15:46 | こんなデータがあったとして、 update users set created_a…

TitaniumのAndroidでGoogle Mapv2を使った時、なぜか2回目以降のアクセスから真っ黒になってしまったときのメモ

検索用。https://developer.appcelerator.com/question/156521/timap---map-shows-only-after-clear-data-otherwise-is-emptyblackAndroidManifest.xmlのtargetSdkVersionが14以上だとそうなるらしい。。。もうわけわからないよ。こんなわけわからん設定でOK…

コマンドラインでのTitaniumのバージョンアップ方法

$ ti -v 3.1.2$ ti login Titanium Command-Line Interface, CLI version 3.1.2, Titanium SDK version 3.1.2.GA Copyright (c) 2012-2013, Appcelerator, Inc. All Rights Reserved.Please report bugs to http://jira.appcelerator.org/Username: Password…

Titaniumで[ERROR] Error generating R.java from manifest

ビルド中に以下のようなエラーがでたら・・・ [ERROR] Error generating R.java from manifest tiapp.xmlのIDがFQDN形式ではないtestのようになっていないか確認する。 com.example.textのようなかたちじゃないと、エラーになる。艦隊これくしょん~艦これ~(…

TitaniumでAndroidアプリを配信する手順メモ

Google playを経由してテスト用や本番用のアプリを配信する手続き。これの和訳。 http://docs.appcelerator.com/titanium/3.0/#!/guide/Distributing_Android_apps 手順 Google playへの登録 キーペアと証明書の生成 キーストアの確認 アプリが正しいキーで…

TitaniumのTableViewの中のImageViewの横幅が画面幅いっぱいにならなかったときの対策メモ

TableViewの中でリモートの画像を読み込むImageViewを画面幅いっぱいに表示しようとしたところ、どうにもこうにもランダムに画面幅にいっぱいにならず、両脇にスキマができるような状況が発生した。発現パターンがつかめず、対応にあぐねていたところ、Table…

Railsでバリデーション前に文字列の前後のスペースやタブを取り除くメモ

ベースにこれを使う。 https://github.com/holli/auto_strip_attributes gem "auto_strip_attributes", "~> 2.0" で、これだけだと全角スペースには対応してないけど、さいわい好きな処理を挟めるフィルター機能があるのでそれを使う。っていうか、これ使う…

RailsにJbuilderを導入したら、レスポンスが帰ってこなくって困ったでござるの巻

まず最初にJbuilderってJavaのなんかだと思った。富士通とかそういうところが出してるIDEとかなんかそういうの。10万くらいしそうな。で、そうじゃなくてレスポンスをjsonで組み立てるときに使うやつ。 https://github.com/rails/jbuilderWebAPIサーバなんか…

TitaniumでTabelViewからTableViewRowを全部消す方法

APIドキュメント見たらremoveAllChildrenとかあるのでそれかと思って使ってみたけど、びくともしない。で、俺は調べた。スタッフも一生懸命探しました。そして、見つかりました。 table = [] はぁ?『惡の華』Blu-ray 第一巻出版社/メーカー: キングレコード…

Railsでforce_sslしたらELBのヘルスチェックが通らなくて困ったときのメモ

いろいろ紆余曲折したけど、ELBからのリクエストヘッダにはHTTP_X_FORWARDED_FORがついているが、ヘルスチェックにはついてないので、これを利用する。environments/staging or production config.force_ssl = true config.ssl_options = { exclude: proc { …

Railsのmigrationで緯度経度をdecimalで設定する

http://guides.rubyonrails.org/migrations.html と http://dev.mysql.com/doc/refman/5.6/en/fixed-point-types.html と http://gis.stackexchange.com/questions/8650/how-to-measure-the-accuracy-of-latitude-and-longitude/8674#8674文系なんで、用語の…

rubyで2点間のランダムな緯度経度を生成する

http://stackoverflow.com/questions/12846099/create-a-random-set-of-latlngs-inside-a-boundingbox rng = Random.new(seed) lat = minLat + rng.rand * (maxLat - minLat) lng = minLng + rng.rand * (maxLng - minLng) 劇場版 魔法少女まどか☆マギカ [前…

RailsのDirtyはなぜDirtyというのか。

教えてください。http://api.rubyonrails.org/classes/ActiveModel/Dirty.html ActiveRecordの状態をトラッキングできる便利なモジュール。これを使うと、非公開から公開になったタイミングで公開日を入れる、的な処理がキレイに書ける。 before_save :publi…

Railsで管理用のアプリをnamespaceで同居させるときのメモ

やりたいこと 管理アプリもフロントアプリも同じプロジェクト内で共有するのがいいに決まってる。と思ってる とはいえフロントからアクセスされないようにネットワーク設定以外に、アプリ的にも対応しておきたい。 管理アプリは/adminというプレフィクスパス…

Paperclipでオレオレmasker

ImageMagickの参考サイト http://www.imagemagick.org/Usage/thumbnails/#border_overlay記念の残しておく。maskのための画像は別途用意しておくこと。 paperclipのgithubのドキュメントとthumbnailプロセッサーのソースを読んでがんばった。 https://github…

PaperClipでリサイズ指定

ありがたやありがたや・・・http://blog.rono23.org/12 '100' 横幅固定でリサイズ 'x100' 縦幅固定でリサイズ '300x200' 指定した値を最大値としてリサイズ '300x200^' 指定した値を最小値としてリサイズ '300x200>' 指定した値より、大きいときリサイズ '30…

strong parameterとaccepts_nested_attributes_forを併用する方法

こんな感じのとき class Parent < ActiveRecord::Base has_one :child accepts_nested_attributes_for :child こんな感じでやる params.require(:parent).permit( :name, :name_kana, child_attributes: [ :name, :name_kana, ] ) 福本作品もいいけど、甲斐…

Railsで検索フォームのバリデーションをかける

検索フォームの入力値もちゃんとバリデーションかけないと脆弱性のスクツになってしまいます。RailsCastにひとつの答えが載ってた。 http://railscasts.com/episodes/111-advanced-search-form-revised ※有料記事 かんたんにまとめると、検索をひとつのリソ…

TitaniumでTableViewにTableViewRowが追加できなくて死にたくなったメモ

RTFMだった件。 @articles.fetch( success: => for article in @articles c = Alloy.createController('row') c.articleTitle.text = article.title $.articleSection.add c.getView() Ti.App.fireEvent('onloadView') ) とかやってたんです。 Titanium Allo…

Titanium AlloyのSync Adapterでナイススケルトン2

前回で、サーバサイドとクライアントサイドの分業がしやすくなった!とおもったけど、あれだと1種類のmodelにしか対応できていない。articleの開発は問題なく進められても、author絡みの開発をするには、また別のアダプターをつくらないといけなくなっちゃ…

Titanium AlloyのModelをいじっててハマったメモ

記事を表示する記事画面のarticleという画面があった。 article.xml <Alloy> <Window> ~snip~ idを省略することによって、controller名が自動的につくので、このWindowのidはarticleとなる。 記事の内容を表すModelとしてやっぱりarticleというModelを作った。別にふつうの</window></alloy>…

Titanium AlloyのSync Adapterでナイススケルトン

http://docs.appcelerator.com/titanium/3.0/#!/guide/Alloy_Sync_Adapters_and_Migrations backboneに限らず、だいたいModelはDBなどのストレージとデータ構造の同期をとることによって永続化する。とかその逆とか。 backboneはBackbone.syncというメソッド…

Titanium AlloyのListViewに見事打ち砕かれたリア充のその後

あらすじ Titanium Alloyのレイアウトについていろいろ試したメモ2-画像編で絶望に打ちひしがれたリア充は、新しめの機能に調子に乗って手を出した己を恨む一方で、迫る納期に背中を押され、捨てたはずのTableViewに近づいていくのであった。 <Alloy> <Window backgroundColor="white"> <TableView id="table"> <TableViewSection> <TableViewRow> <ImageView image="/images/tmp_image/150x150.png" /> </TableViewRow> </tableviewsection></tableview></window></alloy>

Titanium Alloyのレイアウトについていろいろ試したメモ2-画像編

前回の続き。今度はラベルを画像にしてみた。とりあえずhorizontalとverticalの比較を。 <Alloy> <Window class="container"> <View id="wrapper"> <ImageView image="/images/tmp_image/150x150.png" /> <ImageView image="/images/tmp_image/150x150.png" /> <ImageView image="/images/tmp_image/150x150.png" /> </View> </Window> </Alloy> "Window": {…

Titanium Alloyのレイアウトについていろいろ試したメモ

ListViewでheightの設定がキマらない。そんな経験はありませんか? 今回はListViewでやや複雑なレイアウトを組んでたら、パニックになったので、初心に立ち返って仕様を確認してみる。まずは超シンプルなレイアウトについて再確認してみる。 <Alloy> <Window class="container"> <Label>1つめのラベル</Label></window></alloy>…

TitaniumでButtonのbackgroundColorが反映されない。

backgroundImage='none' を入れてみるといいよ。

Titanium AlloyのListViewを実際に使ってみたところ具合がよかった話

TableViewの後継?のListViewを調べたメモの続き。実戦投入だ!前回のエントリではXMLではできなさそう、とか言ったけどできるもんね!今回は食べログ的な検索条件画面を組んでみる。 こんなの。 チェックボックスがついている行と、次ページに行って選択し…

TitaniumのAlloyのControllerとViewについて調べたメモ

TitaniumのAlloy事始め。画面から別の画面に遷移するでちょっとだけ触れているけど、いざ深く画面の遷移まわりの処理を組んでいこうと思ったら、controllerとviewの境目とかわかってなくて、再度まとめてみることにした。 自分の頭の整理用メモだから、これ…

TitaniumのTabGroupとNavigationGroupのほぼAPI和訳

調べたメモ。というかほとんど和訳Facebookアプリみたいなナビバーを作るにはどうしたらいいんだろう。と思って調べ始めたところ、この2つの違いが気にかかったのでメモ。 こういうやつ。 TabGroup http://docs.appcelerator.com/titanium/3.0/#!/api/Titan…

TableViewの後継?のListViewを調べたメモ

もうスマホアプリっていったらつまるところリストビューだから。 リストビューを制するものはスマホアプリを制す。Titaniumではリスト表示には長らくTableViewが使われていたらしいが、パフォーマンスや使い勝手の面で性能アップしたListViewというものがそ…

Titanium + AlloyのViewでリストを組んだだけのエントリ

http://docs.appcelerator.com/titanium/3.0/#!/guide/Alloy_ViewsViewはXMLで書き、tssというスタイルシートちっく(Json形式ちっく)なものでレイアウト調整する。それはhttp://d.hatena.ne.jp/ria10/20130901/1378043812でちょっと調べたのでわかっている…

TitaniumでiOS,AndroidアプリをCoffeeScript+TDDで爆速開発する環境構築手順メモ

さて、Titaniumによる開発についてこれまで個別にいろいろ調べてきたけど、一気に実際にアプリを開発するための環境についてまとめてみる。 目指す環境 これまでTitanium Studioと標準的エミュレータでサンプルアプリの開発+実行を行ってきたけど、やっぱり…

TitaniumのAlloy事始め。画面から別の画面に遷移する

TitaniumのAlloyについて調べたメモ2 までで、だいたいなんとなく、たぶん、わかってきたので、実際にアプリをいじくってみる。TitaniumのAlloyについて調べたメモ でりんご画像を出すように変えちゃったindexをぜんぶappleに変えて、indexは元通りにする。…

TitaniumのAlloyについて調べたメモ2

前回の続き。 いまさらAlloyのコンセプト確認 公式がこういう順番なんです。理屈が先だとおもしろくないしね。http://docs.appcelerator.com/titanium/3.0/#!/guide/Alloy_Concepts箇条書きに書いていくと、 AlloyばBackbone.jsベースのMVCフレームワークで…

TitaniumのAlloyについて調べたメモ

現状はTitanium StudioをインストールしてKitchenSinkをシミュレータで動かしたところ。 http://d.hatena.ne.jp/ria10/20130823/1377248810次にAlloyの構成を実際に確認してみる。 参考サイト http://docs.appcelerator.com/titanium/3.0/#!/guide/Alloy_Qui…