タグ

ブックマーク / www.techscore.com (19)

  • 1. マイグレーション(3)

    2012/09/24 シナジーマーケティング(株) 鈴木 圭 Model 1章 マイグレーション 1.1. マイグレーションとは 1.2. マイグレーションの作成と実行 1.3. マイグレーションファイルの名前 1.4. データ型 1.5. マイグレーション API 1.6. マイグレーションに関する Rake タスク 1.7. リバーシブル・マイグレーション 1.8. 特殊なカラム名 1.9. 初期データの登録 1.10. データ修正 1.6. マイグレーションに関する Rake タスク 「rake db:migrate」でマイグレーションが実行できることは既に述べました。 「rake db:migrate」以外にもマイグレーションに関する Rake タスクが提供されていますので、ここでまとめます。 (※正確には「db:migrate」が Rake タスクの名前ですが、ここでは分かりやす

    kiyo_hiko
    kiyo_hiko 2016/03/17
    Rakeタスクの意味
  • ネストしたトランザクション内で ActiveRecord::Rollback を raise しても握りつぶされるだけだ | TECHSCORE BLOG | TECHSCORE BLOG

    こんにちは、三苫です。 ActiveRecordのトランザクションについてちょっとしたtipsです。 以下のActiveRecordを使ったrubyコードがどのようなクエリを発行するだろう? Entity.transaction do Entity.transaction do Entity.create!(name: "hoge") end Entity.transaction do Entity.create!(name: "moge") raise ActiveRecord::Rollback end end

    kiyo_hiko
    kiyo_hiko 2016/03/01
    nested transactionちゃんとわかっとかないと怖いな
  • Railsのコールバックまとめ | TECHSCORE BLOG | TECHSCORE BLOG

    こんにちは、鈴木です。 Techscore 体の記事の下書きを書き進めています。 ということで、コールバックの記事の下書きを公開します。 コールバックの種類 コールバックとは、バリデーションの実行やデータベースへの保存などのタイミングで処理を行うための機能です。 あるタイミングで必ず実行する必要がある処理をコールバックに指定することで、モデルの一貫性を保つことができます。 Rails のコールバックの種類をまとめてみると、非常に多いことが分かります。 after_find 検索メソッドでオブジェクトが見つかったタイミングで実行されます。 検索条件を指定せずに all メソッドを呼び出すなど、検索結果が大量になる場合は注意が必要です。 検索結果の数だけコールバックが実行されますので、パフォーマンスに重大な影響を及ぼす可能性があります。 after_initialize オブジェクトがインス

  • fuse でオレオレファイルシステムを作ってみた (Haskell で) | TECHSCORE BLOG | TECHSCORE BLOG

    TECHSCORE Advent Calendar 2015 の 8 日目の記事です。 fuse でオレオレファイルシステムを作ってみた Unix 系 OS では、fuse というモジュールを使って、オレオレファイルシステムを作成することができます。 今回は、fuse と locate コマンドで作ってみたファイルシステムをネタに、どんな感じで開発できるか紹介します。 この内容に興味のない方は、最後の世界で一番かわいいの画像を好きなだけ眺めていってください。 検索用ファイルシステム GUI のファイラーでは、検索をすると結果のファイルがずらずらと出てきて通常のディレクトリと同じような操作ができる、そういったものがよくあります。 しかし、locate などで検索しても、単にファイルパスが表示されるだけです。 そこで、(閲覧だけになりますが)似たようなことをするために、locate コマンド

  • [SQL] 5. データの参照 5

    SQL 5章 データの参照 5.1. SELECT によるデータの参照 5.2. 条件付き参照 1. 不等式を使った述語 2. ブール演算子を使った述語 5.3. 特殊演算子 1. IN 演算子 2. BETWEEN 演算子 3. LIKE 演算子 4. IS NULL 演算子 5.4. 集約関数 5.5. グループ化 1. GROUP BY 句 2. HAVING 句 5.6. 並べ替えと名前付け 1. 出力の並べ替え 2. 出力列の名前付け 5.3.2. BETWEEN 演算子 BETWEEN 演算子は、述語が TRUE と評価される値の範囲を定義するものです。例えば、受注表から受注個数が 5 から 15 の受注番号を抽出するには次のように記述します。 -- sample.13-3 -- /* データの参照 */ SELECT 受注番号 , 受注個数 FROM 受注表 WHERE 受注

    kiyo_hiko
    kiyo_hiko 2015/11/04
    BETWEENは境界値を含むので(col BETWEEN min AND max) AND NOT col IN(min, max)などで対応しようという話
  • トップページ

    SQL データベース操作言語SQLについて、またRDBMSの持つ機能について詳しく解説します。 DB概要、SQL、テーブル操作、データ操作 ... 特集:replication PostgreSQLのレプリケーションシステムを紹介し、それらの機能を比較していきます。 特集:pgbench PostgreSQLのベンチマークテストに用いられるプログラムである pgbench について解説します。 SQL演習問題 各章に用意された演習問題を集めました。

  • 小指に優しいキーカスタマイズをAutoHotkeyで設定する for Windows | TECHSCORE BLOG | TECHSCORE BLOG

    こんにちは、河野です。 Vimを使っているとESCキーを良く使いますが、長時間作業をしていると左手の小指が痛くなります。3年前頃まで、地味な痛みに耐えていたのですが、キーの配置を換えることで解消できました。 ついでに他のキーも変更したところ、かなり快適な環境ができましたので、今回はその設定を共有します! AutoHotKeyでカスタマイズ Vimだけでなく、全般的に使えるように設定しておいた方が楽なので、専用のソフトを使用します。 使用するソフトはAutoHotKeyです。色々とキー配置をカスタマイズするソフトはありますが、個人的にはこのソフトが一番融通が利くかなと思います。 公式:AutoHotKey 日語情報:AutoHotkeyを流行らせるページ AutoHotKeyの設定内容 以下、AutoHotKeyの設定ファイルになります。 AutoHotKeyの設定 右下のバックスラッシュ

    kiyo_hiko
    kiyo_hiko 2015/09/28
    PuTTYでIMEオフるのよさげ
  • Rails 4.1.0 で追加された Module#concerning と関心事の分離 | TECHSCORE BLOG | TECHSCORE BLOG

    こんにちは、鈴木です。 Rails 4.1.0 で Module#concerning というメソッドが追加されました。 Module#concerning とは Rails 4.0 で concerns ディレクトリが追加されたことを覚えているでしょうか。(see 「2.4. concerns ディレクトリの導入」) concerns ディレクトリに Mixin 用のモジュールを置いて、それをモデルなりコントローラなりで include する、という使い方をするものですが、Module#concerning を用いると、わざわざ concerns ディレクトリにファイルを作成せずに、モデルクラスの中に記述することができます。 コードで表すと、Rails 4.0 では以下のように書くことができるようになりました。 # app/models/article.rb class Article

  • [SQL] 6. テーブルの結合 2

    6.1. 基的な結合 最も基的な結合は自然結合と呼ばれるもので、データベース構造に既に存在しているリレーションシップを表現するところからきています。ちなみに受注表、顧客表及び商品表のリレーションは次の図のようになっています。 受注表からは受注番号に対応する顧客コードと商品コードを知ることができます。そして、これらの列は外部キーとなっているため、リンクされる顧客表と商品表からコードに対する名称を知ることが可能です。よって、受注番号、顧客名、商品名、受注個数及び納品日の列を持つ表を、表の結合により作成することができるのです。ちなみに、受注表における受注番号、顧客表における顧客コード及び商品表における商品コードは各テーブルの主キーです。 図のようにテーブルを結合するには、これまでのテーブルのデータを参照する時と同様に SELECT 文を用います。SELECT 文に続けて、表示する列名を指定し

    kiyo_hiko
    kiyo_hiko 2015/07/14
    2つのテーブルを指定してSELECTすると結果が直積になる(カンマ=CROSS JOINと同じ?) // WHEREでキーが同じ列を取り出せば自然結合?になる。
  • 6. Prototype パターン

    6.1 Prototype パターンとは 第6章では Prototype パターンを学びます。prototype という単語は、日語で「試作品」「原型」といった意味を持ちます。Prototype パターンは、あらかじめ用意しておいた「原型」からインスタンスを生成するようにするためのパターンです。 例えば、「直線を描く」機能しか持たない図形エディターを想像してみましょう。この図形エディターで星型を書きたいときには、直線を組み合わせることで、星の形を作成していくことになります。では、星型がいくつも欲しいときはどうすればよいでしょう?直線を組み合わせて星型を描くという作業を何度も繰り返す必要が出てきます。こんなとき、最初に作成した星型(直線の集まり)を「プロトタイプ」として登録しておき、これをコピーすることで星型が作成できれば、作業がとても楽になります。 Prototype パターンは、このよ

    kiyo_hiko
    kiyo_hiko 2014/10/05
    生成より複製のコストが低いときに使う感じ?
  • 4. スレッドの制御 (2)

    4.2. スレッドの休止・中断 ここでは、スレッドの処理を一時休止したり、他のスレッドに割り込みをかけるためのメソッドを説明します。 sleep() sleepメソッドはThreadクラスのクラス(static)メソッドです。sleepメソッドは指定した時間だけ現在実行中のスレッドを休止させます。sleepメソッドはクラスメソッドのため、sleepメソッドを実行するスレッド以外の別のスレッドを休止することはできません。 sleepメソッドでの時間の指定方法は2種類あります。 sleep(long millis) sleep(long millis, int nanos); これらのメソッドは、millisミリ秒(1000分の1秒)、またはmillisミリ秒+nanosナノ秒(100万分の1秒)だけスレッドを休止させます。スレッドを休止している間、他に実行可能なスレッドがあれば、そちらに処理

  • 5. レイアウト・マネージャー2 (2)

    5.2. java.awt.GridBagLayout 「GridLayout」は、ウィンドウを各格子のサイズが同じになるように区切ってコンポーネントを配置する、単純なレイアウト・マネージャーでした。「GridBagLayout」は格子のサイズを柔軟に設定できる非常に強力なレイアウト・マネージャーです。機能が強力な分、使用は非常に難しいものとなっています。 グリッドバッグレイアウトの設定は以下のようにします。 GridBagLayout layout=new GridBagLayout(); getContentPane().setLayout(layout); ここまでは他のレイアウト・マネージャーと同じです。「GridBagLayout」ではコンポーネントの追加の方法が異なり、「GridBagConstraints」クラスのインスタンスと共に使用します。「GridBagConstrai

    kiyo_hiko
    kiyo_hiko 2013/08/01
    使い方。知人がSpringLayoutを薦めていたけどGridBagLayoutのほうが個人的には使いやすい予感。
  • 3. アクション (7)

    JSP 3章 アクション 3.1. アクション 3.2. <jsp:useBean> 3.3. <jsp:setProperty>と<jsp:getProperty> 3.4. <jsp:include>と<jsp:forward> 3.5. <jsp:plugin> 3.6. <jsp:attribute>と<jsp:body> 3.7. <jsp:doBody>と<jsp:invoke> 3.8. <jsp:element> 3.7. <jsp:doBody>と<jsp:invoke> <jsp:doBody>と<jsp:invoke>はタグファイルの中で使用されます。 <jsp:doBody>はタグファイルで設定したカスタムタグのボディ部を出力するアクションタグです。 出力先を変数に設定することが出来ます。 属性名 必須 スクリプト 可能 説明

    kiyo_hiko
    kiyo_hiko 2012/11/07
    「<jsp:doBody var="body" /><div align="center">${body}</div>」的に使えばいいのかな doBodyには、クライアントコードにある自タグ内のBodyが入ってくる模様
  • 6. 可変長引数

    2005.12.06 株式会社四次元データ Co-CTO 江原良典 Java言語機能(JDK5.0(Tiger)新機能) 6章 可変長引数 6.1. 可変長引数の定義 6.1. 可変長引数の定義 可変個の引数を持つメソッドを実現したい場合が考えられます。 C言語のprintf関数のような機能です。 そういった場合、これまでのJavaでは配列を用いて実現してきました。 public void printCities(String[] cities){ ... } printCities(new String[]{"京都", "大阪", "神戸"}); printCities(new String[]{"東京", "千葉"}); 非常に面倒です。 そこでJDK5.0からは可変長引数を持つメソッドを定義する機能が追加されました。 可変長引数の定義は、可変長にしたい引数の型の後ろに「...」を追加

    kiyo_hiko
    kiyo_hiko 2012/04/26
    「可変長引数は、コンパイラによって配列に変換される」 / Javadocコメントでは「...」なのか配列として書くのかといった、慣習も気になる
  • 7. アノテーション

    2005.12.12 株式会社四次元データ CTO 畠中晃弘 Java言語機能(JDK5.0(Tiger)新機能) 7章 アノテーション 7.1. 標準アノテーション型 7.2. アノテーションの定義 7.3. 標準メタアノテーション型 J2SE5.0 ではプログラムの動作に影響を与えないアノテーション(注釈)を付加することができます。アノテーションがコメントと異なるのは、プログラムからアノテーションを読み取って処理したりできる点や、アノテーションがコンパイラの動作に影響を与える点などです。(javadoc はここで説明するアノテーションではありませんが)アノテーションと javadoc コメントは似ています。実際、アノテーションは javadoc が持っていた機能を一部持っていますし、将来的に javadoc がアノテーションに置き換えられる可能性もあります。 7.1. 標準アノテーショ

    kiyo_hiko
    kiyo_hiko 2012/04/26
    「将来的に javadoc がアノテーションに置き換えられる可能性もあります」…うーん / メモ:既定では、アノテーションはコンパイルされてもclassファイルに残る
  • 7. Builder パターン

    7.1 Builder パターンとは 第7章では、Builder パターンを学びます。builder とは、建築者や建築業者などを意味する単語です。Builder パターンとは、同じ作成過程で異なる表現形式の結果を得るためのパターンです。 例えば、家を建てることを考えてみます。完成する家がどのような家になるかというのは「家の構築過程」と「素材」大きく2つの要素で決定されると考えてみてください。「作成過程」とは、「どのような順番で、どこに何を配置していくか」というようなことであり、「素材」とは、「柱には何を使って、壁には何を使って・・・」ということであると考えてください。 このとき、「作成過程」には、"平屋を建てるための作成過程" や "2階建ての家を建てるための作成過程"、または "少し変わった平屋を建てるための作成過程" など様々なものが考えられます。同様に、「素材」にも、"柱は木で、壁

    kiyo_hiko
    kiyo_hiko 2012/02/14
    最近作ってるのは小規模なアプリばかりなので直接ビルダークラスのメソッドをロジックから呼んでる事が多い
  • デザインパターン[モデリング] -TECHSCORE-

    オブジェクト指向プログラミングにおいてデザインパターンを利用することは、開発者に様々なメリットを与えてくれます。 ここでは、「デザインパターンとは何か」というようなデザインパターンの基事項と、GoFの23個のデザインパターンをJavaを利用してわかりやすく解説します。 デザインパターン INDEX

    kiyo_hiko
    kiyo_hiko 2011/10/12
    GoF早見。
  • 4. FactoryMethod パターン

    2012/04/26 一部修正しました デザインパターン 4章 FactoryMethod パターン 4.1 FactoryMethodパターンとは 4.2 サンプルケース 4.3 FactoryMethod パターンのまとめ 4.1 FactoryMethodパターンとは 第4章では、FactoryMethod パターンを紹介します。FactoryMethod パターンは、オブジェクトの生成方法に一工夫加えることで、より柔軟にオブジェクトを生成することを目的とするものです。FactoryMethod パターンでは、インスタンスの生成をサブクラスに行わせることで、より柔軟に生成するインスタンスを選択することが可能となります。 オブジェクトを生成する場合、下記のように記述するのが普通です。 Product product = new Product(); しかし、このようなオブジェクト生成方

    kiyo_hiko
    kiyo_hiko 2011/04/20
    「先生、僕は木じゃなくて芋に彫りたい」
  • トップページ

    SQL データベース操作言語SQLについて、またRDBMSの持つ機能について詳しく解説します。 DB概要、SQL、テーブル操作、データ操作 ... 特集:replication PostgreSQLのレプリケーションシステムを紹介し、それらの機能を比較していきます。 特集:pgbench PostgreSQLのベンチマークテストに用いられるプログラムである pgbench について解説します。 SQL演習問題 各章に用意された演習問題を集めました。

  • 1