実験

railsの複合ユニーク制約をshoulda_matchersでテストする

Railsのユニーク制約をshoulda-matchersを使ってテストしてみました。結果として、このマッチャーは複数カラムをまたいだ制約の時は使わない方がいい気がしました。1つのカラムでのユニーク制約も、複数カラムのユニーク制約も同じ扱いになっているようです…

Railsのモデルをループで回してdestoryする時に、関連テーブルのレコードも削除したい

下記のモデルと対応するテーブル、3つずつ作成して実験しました。括弧内はカラムを表しています。 Post(title) Tag(name) PostTag(postid, tagid) これでdb/seeds.rbにレコードの追加、削除を記述します。title1という記事につけられたtag2を削除します…

Railsのモデルバリデーションとカラム制約のユニークはどう挙動が変わるのか

下記のモデルと対応するテーブル、3つずつ作成して実験しました。括弧内はカラムを表しています。 Post(title) Tag(name) PostTag(postid, tagid) db/shema.rbにadd_index :tags, :name, unique: trueを追加して、モデルにバリデーションを追加すると、…

JavaScriptで座標を配列とオブジェクト、どちらで管理した方が処理が早くなるか実験

オブジェクトより配列を使ったほうが、計算が早くなると思いましたが実際は違いました。C言語の時は、プリミティブ値が連続的に配置された集まりだったから配列の走査が速いのかもしれません。JavaScriptだと配列はArrayオブジェクトなので、なるべくオブジ…

pythonの配列は、添字の有無によって参照がどう変わるのか

今回は変数が何を指しているかというところを深く見るための実験です。pythonのバージョンは3.4.3です。 別の変数からオブジェクトを変更する 変数の中身を別の変数に代入しても、同じオブジェクトを指しています。これをオブジェクトidを比較して確認します…

pythonの関数が呼び出し元の引数に影響を与える時はいつか?

pythonの関数の引数には、何が渡されているのでしょうか?それがわからないと、もとのオブジェクトを破壊してしまいます。今回はそれを確かめる実験です。pythonのバージョンは3.4.3です。 配列をコピーする pythonでは関数内で渡された引数を変更しても、元…

pythonのabcモジュールの抽象メソッドはクラスかインスタンスは区別しない

pythonには抽象クラス、インターフェースがありませんでした。ですが、abc(abcstractの略)モジュールが追加されて、デコレータを使うことによって実現することが可能になりました。今回は、抽象クラスが実際にエラーを出す条件を知るために実験してみます。…

pythonは特殊メソッドを継承するのか

実行環境 インタプリタ上で出力を確認しているため、print()は省いています。 名前 バージョン python 3.4.3 ipython 3.1.0 何を継承するのかを確認 特殊メソッドである__init__()で確かめたところ、定義していないSubクラスでSuperクラスの__init__()が実行…

pythonの式、(1,2)は丸括弧がタプルを作っているわけではない

タプルの型を調べようとしたらTypeError: 'type' object is not subscriptableというエラーが出ました。結論としてはタプルじゃないものに添字演算子を使っていことが原因でした。 例:my_tuple[0] ※今回載せているソースはインタプリタ(ipython 3.1.0)上…

ローカルにwordpressをインストールして、DBの構造を見てみる

カスタム投稿などを使ってみるために、MAMPを使ってwordpressをローカル環境にインストールしました。いろいろいじる際にwordpressがどういう風にデータを管理しているも見てみようと思い、ダッシュボードで値を変えてながら、DBを確認していました。最初は…

virtualboxにあるcentos6にsquidをインストールしてみた

squidはプロキシサーバを立てるのに必要なものという認識しかありませんが、構築にチャレンジしてみます。下記のサイトを参考します。 Squidによるプロキシサーバーの構築 CentOSのバージョンの確認 普段使わないので忘れがちファイルです。 cat /etc/redhat…

Wordpressのカスタマイズはフックを使えば簡単にできる事に感動した!

そろそろ記事の投稿フォーマットを使い分けたいと思っております。アサイドかステータスを使って、Twitterでいうつぶやきを管理したいのです。何故なら記事や本を読んでいる時にその都度アウトプットを140文字程度で行ったりして、週1でざっと読み返したいか…

tree.jsのメッシュのpositionとはどこを表すのか

ソースコードはgithubで公開しています。 tree.jsで立方体を作る際に、幅・高さ・奥行きを決めるのですが、これらの数値はどこから測られるのか、よく分からなかったので確かめてみました。 座標をすべて0にして試してみる 10cmの立方体と、その立方体の高さ…

アクセサメソッドを書く手間が省けるDynaActionFormを使ってみた

Beanはただ値を格納するだけに利用する場合は、自動でアクションフォームを作成してもらいましょう。アクセサメソッドを書く手間が省けます。 ファイル構成 action要素でvalidate属性をfalseにしないと何故かエラーになってしまいます。デフォルトはtrueみた…

global-forwardsとaction、どちらの子要素のfowardが優先されるのか調べてみた

すべてのURLでの共通のエラーページなど、デフォルトとして使用する遷移先を毎回指定するのは面倒ですよね。 <action-mappings> <action path="/A" type="MapAction"> <forward name="common" path="/pages/Common.jsp"></forward> </action> <action path="/B" type="MapAction"> <forward name="common" path="/pages/Common.jsp"></forward> </action> </action-mappings>

Struts1のアクションフォームの寿命はいつまでなのか調べる

~.doにアクセスしてJSPページが返ってきて1つのHTTPリクエストが終了です。また違うURLにアクセスした際は別のHTTPリクエストとして扱われます。つまり、変数のスコープがリクエストだと、この時点で破棄されてしまいます。他のページに移動後にも変数を維持…