Androidはワンツーパンチ 三歩進んで二歩下がる

プログラミングやどうでもいい話

Rails Model Generator GUIを使ってrails g modelコマンドを間違わないように書く

rails勉強中です。

railsでモデルとマイグレーションを生成する時のコマンド

rails generate model NAME [field[:type][:index] field[:type][:index]] [options]
(generate はgと略せる。)

こういうものを間違わずに書くいい方法がないかと探したらCodePen - Rails Model Generator GUIなるものを発見しました。
他にも方法があるのかもしれないのですが、私は便利に使うことが出来ました。

codepen.io

表形式で入力してexportボタンを押すとコマンドが生成されるのでコピペしてコマンドラインで実行すればokです。


例)次のようなデータがあり、PostalCodeというmodelを作ります。

f:id:sakura_bird1:20170226135018p:plain

add model ボタンを押して、モデル名を入力。
add attribute ボタンを押して、フィールド名と属性を入力。 n,i,u,a,pはカーソルを上に持っていくと説明が表示されます。

f:id:sakura_bird1:20170226135228p:plain

入力し終わったらexportを押して rails cmdを押すとコマンドが生成されます。

f:id:sakura_bird1:20170226135328p:plain



ちよだニャンとなる会&千代田区共催「ちよだ猫まつり2017」に行ってきました

以前のエントリでご紹介したイベントに行ってきました。

chiyoda-nekofes.jp

sakura-bird1.hatenablog.com


直前まで別の用事があったのですが、幸い千代田区役所に近い場所にいたので終了1時間前に駆け込みました。
千鳥ヶ淵を歩いていたら少しだけ桜が咲いていました。

立派な千代田区役所
f:id:sakura_bird1:20170219155611j:plain

f:id:sakura_bird1:20170219155702j:plain

私が行った時はもう終了間近だったんですが、とても盛況でした。
公式のFacebookでも盛り上がっている様子がわかります。
小池都知事も来てたんですね〜。
愛犬家らしいしちょっと好感度あがっちゃう。

公式Facebookより
https://www.facebook.com/chiyodanekofes/


イベントは、猫グッズなどの販売・展示物・講演・譲渡会・企業のブースなどで成り立っており、収益が飼い主のいない猫の医療費などに使われるようになっています。
写真でどんな雰囲気だったかご紹介します。
猫グッズはかわいいものがたくさんあって見ているだけで楽しかったです。

戦利品
f:id:sakura_bird1:20170219231134j:plain


ネコロジーコーナー
f:id:sakura_bird1:20170219155707j:plain

入り口にでかいコーナーが。アルフィー(懐かしくて涙が出るリアルタイム世代。゚(゚´Д`゚)゚。)の坂崎幸之助さんが保護猫活動がまだまだマイナーだった頃に出版した本の新装版の販売コーナーがありました。
「理想は、世の中から不幸なノラ猫が1匹もいなくなること。猫写真とエッセイで綴る、心温まる保護猫たちとの日々。」
販売をなさっていた方から伺ったのですが、ちよだ猫まつりで販売する分は全額寄付だそうでこれは買うしか無いだろうと。
まだ読んでないんですが、Amazonのレビューを見ると非常に良い内容らしく坂崎さんの素晴らしさが伝わってきましたよ。
ハンカチ用意して読もうと思っています(笑)

↓アフィのリンクですいません。普通の商品ページへのリンクがキレイに出来ず。。。


ちよだニャンとなる会のチャリティくじ。はがきが当たりました。
f:id:sakura_bird1:20170219155746j:plain



日本羊毛アート学園佐藤法雪生徒作品展。すばらしくリアルで「おお~」と自然に声が出ます。
表情がすごい。猫を知っている人達が作ったとわかる。
f:id:sakura_bird1:20170219155833j:plain

f:id:sakura_bird1:20170219155839j:plain

f:id:sakura_bird1:20170219155841j:plain

f:id:sakura_bird1:20170219155852j:plain



イベントの目玉であるリアル猫ヘッド。ホントにリアルなんですよ!
f:id:sakura_bird1:20170219160549j:plain



里親さんの家庭で暮らす猫さんの写真展。みんな良かったねえ。
f:id:sakura_bird1:20170219160627j:plain


猫グッズなどの販売コーナーの一部。店舗数多かったです。
f:id:sakura_bird1:20170219155919j:plain


f:id:sakura_bird1:20170219155941j:plain


f:id:sakura_bird1:20170219155945j:plain


f:id:sakura_bird1:20170219160058j:plain


f:id:sakura_bird1:20170219160109j:plain


f:id:sakura_bird1:20170219160115j:plain


f:id:sakura_bird1:20170219160135j:plain


f:id:sakura_bird1:20170219160151j:plain


f:id:sakura_bird1:20170219160320j:plain


f:id:sakura_bird1:20170219160330j:plain


f:id:sakura_bird1:20170219160411j:plain


f:id:sakura_bird1:20170219160524j:plain


短い間だったけど実際に活動してる人をみると自分も何か!って思って良かったです。
最近はボランティア活動といっても明らかに優れたビジネス的なセンスをお持ちの方々を見るにつけ、外の世界を巻き込んで仕組みを作れるってすごいなあ、猫も助かるなあって感心していたところなのですがこちらでもそう感じました。
色々と自分を振り返って思うことがありますが、それはそれでまた!
主催の方々、参加者の方々、千代田区さん、本当にお疲れ様でした。

AndroidのTextUtilsのisEmptyメソッドとJavaのStringのisEmptyメソッドはわりと違う

年がら年中使っているAndroidのTextUtilsのisEmptyメソッドとJavaのStringのisEmptyメソッドですが、同じ名前で何が違うのか調べたメモです。
TextUtilsクラスのメソッドは全てstaticで定義されていて、JavaのisEmptyメソッドはインスタンス変数から使用する形になっているという違いはありますが、中身はどうでしょう。
それぞれのコードはこのようになっています。

java.lang.String

   public boolean isEmpty() {
        return count == 0;
    }

※countはfinal int の変数で、Stringオブジェクト初期化時にセットされる文字数です。

android.text. TextUtils

   public static boolean isEmpty(@Nullable CharSequence str) {
        if (str == null || str.length() == 0)
            return true;
        else
            return false;
    }

大きな違いは、TextUtilsのisEmptyメソッドはnullチェックがなされている部分です。
メソッドの引数がnullのオブジェクトが渡されてきてもjava.lang.NullPointerExceptionで落ちませんが、JavaのisEmptyメソッドではインスタンス変数がnullの場合は当然落ちます。

例えば次のコードはNullPointerExceptionが発生します。

    public void onFinish(String example) {
        example = null;
        if (example.isEmpty()) {
            Log.d("Example","exampleがemptyです");
        }

以上です。