2014-01-01から1ヶ月間の記事一覧

Integration test の Failed assertion, no message given への対応; Rails

Ruby で Integration テストしていた(ruby -Itest test/model/*.rb) assert のテスト失敗時、常にFailed assertion, no message given. と表示された。一概には言えないが、一つの、原因と対策 一つの原因 assert の第二引数に「エラーメッセージ」が渡され…

many to many(関連) ; Rails ; Design

多対多を実現するには中間モデルが必要(当事者モデル2つだけでなく) フレームワーク思想に則って現れたらしく。 この経緯に付いては(分かっていないことが多いので)省略。 Prepare $ rails g model Member name:string $ rails g model Article title:string…

外部キー参照を rails g model で プロパティ指定する ; Design

何度も同じことで失敗している いい加減アウトプット コード rails g model 参照始点モデル名 プロパティ1 プロパティ2 ... 参照先モデル名(小文字から始まる):references ex rails g model Subject name:string student:references app/models/subject.rb c…

one to many(関連) ; Rails ; Design

1 対 多 on Rails モデルを使ったとき、どのようにして実現するか Student - Subject 関連を使う Prepare $ rails g model Student name:string $ rails g model Subject name:string student:references $ rake db:migrate db/seeds.rb Student.create! do …

one to one(関連) ; Rails ; Design

Rails 書留レベル one to one をどうやって実現するか Subject - Page 関連 generate model $ rails g model Subject name:string $ rails g model page name:string subject:references $ rake db:migrate app/models/subject.rb class Subject has_one :pa…

関連(Relation) ; Design

Rails の書留 元を辿れば「設計」 DB には世話になってる なぜ Relation があるのか 共通の命令をコードの中で端的にかつ易に記す為。 Relation が無い場合 class Custom ActiveRecord::Base end class Order ActiveRecord::Base end 新規 order を 既存 cus…

gem ruby-perl ; Ruby

主題 Raw な Ruby からは Perl スクリプトを call するのは非常にメンドイらしい gem を使って楽に call する 開発者には「バグレポートを出してくれれば対応するよ」という意味合いの文面は github にある。 目的 環境導入 gem install 正常処理 -- Ruby コ…

Shoes ; stack, flow ; Ruby

Shoes による stack と flow の「イメージ」 vertical(stack) : horiznal(flow) いずれかで UI 上に配置される イメージとしてはそれだけ stack Shoes.app do stack do 1 2 3 end end GUI □□□□□□□ □1 □ □2 □ □3 □ □□□□□□□ flow Shoes.app do flow do 1 …

Shoes ; notation ; Ruby

メモ記事御免 self object Shoes.app do stack do para 'HelloWorld' para 'Thanks' end end changes self object app block window and dialog methods not changes self object stack block because of the fact source Shoes.app do self.stack do self.p…

Shoes ; GUI Library ; Ruby

GUI をアウトプットするまでのコスト(主に時間)を ゴッソリ減らせる 目的 GUI 上にボタンを一つ生成する。 環境を整える(CentOS) コードを作成する 実行する 環境を整える(CentOS) Shoes を clone する git clone git://github.com/shoes/shoes.git ${SHOES_…

Redis ; CentOS with i686

将来同じことをする自分の為に Redis を入れたかった CentOS 使ってるけどアーキテクチャが i686 だった 環境構築 wget http://dl.fedoraproject.org/pub/epel/6/i386/redis-2.4.10-1.el6.i686.rpm rpm -Uivh redis-2.8.4]# rpm redis-2.4.10-1.el6.i686.rpm…

gem dalli ; Rails

メモリキャッシュシステム。 使いようによっては session 以上の代用が出来る 設計とは相談。negotiate 目的 CentOS, Rails を使って memcache を devlop 環境で Controller に埋め込めるようになる。 準備 環境導入 sudo yum install memcached memcached …

attributes, tuple, relation ; Design

DB attributes defines property of an object □■□□□□□□□□□ □■□□□□□□□□□ □■□□□□□□□□□ □■□□□□□□□□□ || tuple one record □□□□□□□□□□□ □□□□□□□□□□□ ■■■■■■■■■■■ ] □□□□□□□□□□□ relation name paird with a domain □□□□□□□□□□□ □□□□□□□□□□□ □□□□□□□□□□□ □□□□□□□…

関数決定子/関数従属

リレーション R が与えられている R に於ける属性の組 X は 関数決定子 と言われる X めいめいの属性値が漏れ分無く一つの Y の属性値に関連付いてるとき R は 関数従属 を満たしていると言う。 ex. studentID Semester Lecture TA 参考元 Functional depend…

1NF ; Design

定義 シンプルなドメイン[1]上で定義されたリレーション[2] シンプル 他の幾つかのドメインの直積でない ... 甲 ドメインの冪集合ではない(属性値として集合をとらない) ... 乙 not シンプルな例 甲 他の幾つかのドメインの直積であるリレーション Z(name) n…

デプロイしてテスト(Rspec/turnip)できるか ; heroku

heroku-san 設定ファイルやらを hack up すれば出きる模様。そもそも heroku-san はテスト環境をサポートしてない 出来ても、何のために開発用でテストしてきてデプロイしたの、って話になるよね ということが所々で書かれていた(見ているうちに色々ブクマし…

OLTP と OLAP ; Design

DB に関連する。設計らしい 入門の門前すら立っていないと思うが、やる OLTP (On-Line Transaction Processing) 処理方式の一つ。端末からの要求があればホストコンピュータが即座に処理応答する方式。 百万など多数のリクエスト 検索、更新、削除 を、イン…

plugin 構築 ; Rails 4

暫定版 Rails 4 でプラグイン、ってのはどう構築するのか知る必要があった gem と切り分けができてない ゴール Rails 4 環境に plugin を導入する プラグイン開発はローカルのみにし、gem にしたり云々はしない ハッシュが method_missing したときに 'f' * …

capybara-webkit 用の環境を CentOS 6.5 に導入する ; Rails

Rails というより Linuxの環境構築 ゴール CentOS 6.5 に capybara-webkit の環境を構築すること 導入に当たって起きた問題点 https://github.com/thoughtbot/capybara-webkit/wiki/Installing-Qt-and-compiling-capybara-webkit にある CentOS 6.4 の導入を…

ロードバランシング ; Knowledge

ロードバランシング サーバーへのリクエストを複数のサーバーに振り分ける仕組み ロードバランサ サーバーへのリクエストを分散させる装置 Client から のリクエストを 4サーバーのうち Server A へ送信する Load Balancer Client ↓ Load Balancer ↓ Server …

SMART ; business

個人の目標、チームの方針、お客様との課題 あらゆる所で設定しなければならないものがある。 ではどのように設定するのか。 SMART の原則 以下の五つの要件を定める Specific Measurable Attainable Result-based Time-oriented Specific テーマは具体的…

テーブル論理削除 gem acts_as_paranoid

rails 4 に対応している gem の目的 テーブルデータを物理削除ではなく論理削除する。 データ自体が完全に消えては困るが、表向きには消去されていてほしいときに使う。 Gemfileの記述 gem 'rails4_acts_as_paranoid' 論理削除確認までの手順 (books テーブ…

直接 SQL を叩く ; Rails

Rails で SQL 直書き処理をさせる方法 1-0. 方法 1-1. 正常系返り値のオブジェクト 1-2. 異常系の挙動 方法 ActiveRecord::Base.connection.execute("SQL文") でいける。 ex. ActiveRecord::Base.connection.execute("SELECT * FROM rankings;") 正常系 処理…

Rails ; Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock

Rails で DBMS を MySQL にして、rake db:migrate などをしたときに Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' が出たときの原因と対策 原因 MySQL サーバーが立ち上がっていない 対策 MySQL サーバーを立ち上げる C…

日報共有ツール ; gamba!

ルーティンワークになっている「日報」に着目し、ビジネスに昇華させた一例。 gamba!(ガンバ) - 日報を変えると、チームが変わる。業績が上がる。 gamba!の使い方【一般ユーザ・入門編】 今日からサクッと使える! 「gamba!」の職種別日報テンプレート6選 …

順位付け機能(ランキング) | FIND_IN_SET と GROUP_CONCAT を利用する ; MySQL

目的 1-0. FIND_IN_SET と GROUP_CONCAT を使って 順位付け機能(ランキング)を設計使用すること。 1-1. FIND_IN_SET と GROUP_CONCAT の設計分担を コードの位置から解く 1-2. 順位が妥当なテーブルから、既存テーブルを UPDATE もしくは INSERT 前提条件 次…

GROUP_CONCAT ; MySQL

目的 GROUP_CONCAT 関数の概要と使い方を知ること 1-0. どのような関数か 1-1. テーブルとコマンドを見つつ知る どのような関数か 複数レコードを一行にまとめる テーブルとコマンドを見つつ知る 次のテーブルが用意されている。 hand(持ち物)テーブル id us…

FIND_IN_SET ; MySQL

目的 FIND_IN_SET の 使い方を知ること 1-0. FIND_IN_SET / 単一コマンド 1-1. テーブルを使ったコマンド MySQL 独自関数らしいので、各々の RDBMS では都度調査が必要。 FIND_IN_SET / 単一コマンド 公式ドキュメントより FIND_IN_SET(str,strlist) N 個の…

コロンイコール (:=) と イコール (=) の違いは ; MySQL

:= と = は共に同じ意味。代入演算記号。 私見になるが、Webに転がるサンプルコードの流儀に従えば、 あまり気にしないでよい。 (ただ、MySQLの場合であって、多言語やソフト(VBやAutoHotKey)は 挙動が違うようなので注意) 以下は判断材料。共に公式Docsより…

テーブルのバックアップを取る ; MySQL

目的 或るデータベース内の users テーブル用バックアップを作る。 方法 CREATE TABLE users_backup LIKE users; INSERT INTO users_backup SELECT * FROM users; 明快 引用元 おいぬま日報 ありがとうございます