Googleスプレッドシートでゼロ埋めをする

GoogleDocのスプレッドシートで左側ゼロ埋め(ゼロプレサス)をする方法について。
例えばこんな処理をしたいとき。

例)3桁で0埋め
1 => 001
12 => 012

以下の関数で実行出来ます。

=text(数字,"000")

数字部分はセルの指定でもOK。

例えば数値「123」を10桁のゼロ埋めをしたい場合は

=text(123,"0000000000")

とすると

0000000123

となります。

gitでいらないbranchを一気に削除する

いらなくなったブランチを消したいときに実行。
自分が現在いるブランチ以外のブランチに対して実行されます。

マージ済のブランチをまとめて削除するには以下のコマンドを実行

$ git branch --merged | grep -v '*' | xargs -I % git branch -d %



マージ関係なくまとめて削除するには以下のコマンドを実行

$ git branch | grep -v '*' | xargs -I % git branch -D %


(「-D」コマンドでマージされていないコミットがあるブランチを強制的に削除)

FacebookのOGPタグを更新する際に注意すべきこと!

ホームページにFacebookのいいね!ボタンやシェアボタンを最近は当然のように設置すると思います。

そこでFacebookに表示される画像やタイトルをOGPに設定するのですが、その内容を更新しようとするとソースコード上で修正するだけでは上手く適用されません。
多分Facebook側でキャッシュか何かに残っているからだと思います。

そう言った場合は、Facebook developersデバッガーページでリフレッシュさせることが出来ます。

Facebook developersデバッガーページ
こちらのフォームにURLを入れて「デバッグ」ボタンを押すだけです。


画像の差替えは要注意!


更新時に、画像を変更する場合は同じ名前の場合、上手く変更したことをデバッガーを通しても認識してくれないことがあります。
そういったときは一番簡単なのは画像の名前を変更すること。

ちょくちょく陥る罠なのでメモしときます。

MySQL5.5と5.6のサブクエリ実行速度が1000倍以上違った件

メンバーの作った機能をテストしようとしたときのこと。
自分の環境で全く動かない画面があって、原因を探ると唯一の違いがMySQLのバージョンでした。

自分のMacに入っているMySQLが5.5系でメンバーのPCに入っているのが5.6でした。
MySQLは5.5から5.6になってサブクエリなどの性能が上がったとは聞いていましたが、
せいぜい1.5倍や2倍程度だと思っていました。

が、しかし!

実はMySQL5.5と5.6には1000倍以上の速度差があることがわかりました。
今回実行したのは以下のようなサブクエリ。

SELECT
    hoges.*
FROM
    hoges
WHERE
    hoges.id IN (
        SELECT
            hoge_id
        FROM
            hugas
        WHERE
            (hugas.deleted_at IS NULL)
        AND (hoge_id is not null)
    )
AND hoges.hoge_state = 2
AND (hoges.deleted_at IS NULL);




MySQL5.5での結果(5回計測)

mysql>  (14.75 sec)
mysql>  (14.79 sec)
mysql>  (14.81 sec)
mysql>  (14.75 sec)
mysql>  (14.89 sec)



MySQL5.6での結果(5回計測)

mysql>  (0.01 sec)
mysql>  (0.00 sec)
mysql>  (0.01 sec)
mysql>  (0.01 sec)
mysql>  (0.00 sec)



MySQL5.5 平均: 14.80
MySQL5.6 平均:  0.01

単純に考えると1,500倍近く違うので驚きでした。
これでマイナーバージョンアップなのだからビックリ。

動的にインスタンス変数を作成する

Rubyではインスタンス変数を動的に生成することが出来るっぽい。

instance_variable_set(変数名, 値)

使用例)

5.times do |i|
  instance_variable_set('@hoge_' + (i + 1).to_s, (i + 1) * 2)
end


これで、
@hoge_1(=2)
@hoge_2(=4)
@hoge_3(=6)
@hoge_4(=8)
@hoge_5(=10)
が生成される


すげぇなぁ。

link_toでアンカーリンク(ページ内リンク)へ飛ばす方法

Railsのlink_toタグで

<a href="/hoge#huga">リンク</a>


というようなアンカーリンクタグへ向けたページ内リンクをさせるようにするためには

<%= link_to "リンク", :action => "hoge", :anchor => "huga" %>


とすれば良いみたい。
まんまやでぇー。