• 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
 
 

なかぐろに引き続いてショートカットシリーズ。 矢印を超早く打つ方法は衝撃的!

私、ずーと「やじるし」を変換してましたが「みぎ」を変換で「→」が出ます!(ということを今知りました)

超ショック。12年パソコン使ってきてショートカットの類はマスターしていると思っていたのにorz。2文字も少ない入力方法があったとは!

知ってました奥さん?

posted by Face ysakaki on Mon 10 Nov 2008 at 18:53

私は「・」(なかぐろ)大好きなんですよ。メモの箇条書きでよく使います。 で、つい最近マカーになったんですがキーボードの配列をUSにしてしまったものだから「・」(なかぐろ)なんてない訳です。

ではどうするか?まず「なかぐろ」と打って変換する手が思いつきます。面倒。

結論。「option+/」または「/の後スペース2回」でなかぐろが出せます。やったー!!

posted by Face ysakaki on Mon 10 Nov 2008 at 18:18

「SQL Server Express」をバックアップするのは、面倒。 管理画面「SQL Server Management Studio」上からGUI操作でのバックアップはできるが、スケジューリングして毎日バックアップ、というようなことができない。以下のようにすると実現できる。

概要

「SQL Server Express」をコマンドラインから操作できるようにして、バッチ処理のタスクにする。

準備

「SQL Server Express」をコマンドライン操作するツールはsqlcmdでこれはmicrosoftからダウンロードできる。先に、同じURLからダウンロードできる「sql native client」のインストールが必要なことに注意。

「sql native client」と「sqlcmd」のインストール

「Microsoft SQL Server 2005 用 Feature Pack- 2007 年 2 月」のURLから「Microsoft SQL Server Native Client」と「Microsoft SQL Server 2005 コマンド ライン クエリ ユーティリティ」をインストールする。

私の環境の場合「SQLServer2005_NS.msi」と「SQLServer2005_SQLCMD.msi」をインストールした。

Microsoft SQL Server 2005 コマンド ライン クエリ ユーティリティ

SQLCMD ユーティリティを使用すると、SQL Server 7.0、SQL Server 2000、および SQL Server 2005 インスタンスへの接続や、Transact-SQL バッチの送信を行えます。またこれらのインスタンスから、行セット情報を出力することもできます。SQLCMD は ISQL と OSQL に代わるものですが、ISQL または OSQL と同時にインストールして使用することもできます。

注 : Microsoft SQL Server 2005 コマンド ライン クエリ ユーティリティには、Microsoft SQL Server Native Client が必要です。両方ともこのページからダウンロードできます。

 

Microsoft SQL Server Native Client

Microsoft SQL Server Native Client (SQL Native Client) は、SQL OLE DB プロバイダと SQL ODBC ドライバの両方を備えた単一のダイナミック リンク ライブラリ (DLL) です。この DLL は、ネイティブコード API (ODBC、OLE DB、ADO) を使用して Microsoft SQL Server 7.0、SQL Server 2000、または SQL Server 2005 へ接続するアプリケーション用のランタイム サポートも備えています。SQL Native Client は、新しいアプリケーションの作成や既存のアプリケーションの拡張を行うとき、これらのアプリケーションで SQL Server 2005 の新しい機能が必要となる場合に使用します。SQL Native Client の再配布可能なインストーラによって、SQL Server 2005 の機能を利用するときに必要となるクライアント コンポーネントがインストールされます。また、SQL Native Client API を使用するアプリケーションの開発で必要となるヘッダー ファイルをオプションでインストールすることもできます。

#sqlcmdのコマンドオプションの詳細は以下を参照。
http://msdn.microsoft.com/ja-jp/library/ms162773.aspx

タスクの準備

まずFullBackup.sqlを用意する。DB名を仮にtestDBとすると

BACKUP DATABASE testDB TO DISK = N'D:\db\backup\ testDB' WITH INIT

次にコマンドプロンプトで以下を実行する。(iオプションはSQL ステートメントまたはストアド プロシージャのバッチを含むファイルを指定するオプション。)

sqlcmd -i D:\db\FullBackup.sql

処理結果が返ってきた。

ファイル 1 で、データベース 'testDB'、ファイル 'testDB_dat' の 776 ページが処理されました。 ファイル 1 で、データベース 'testDB'、ファイル 'testDB_log' の 1 ページが処理されました。 BACKUP DATABASE は 777 ページを 6.079 秒で正常に処理しました (1.045 MB/秒)。

後はこれをタスクスケジューラに登録して毎日実行すれば良い。 とりあえず、世代交代とかはまた別途。

posted by Face ysakaki on Tue 14 Oct 2008 at 18:24

DBにyyyy,mm,dayというカラムがあるのだがmm,dayがなぜかvarcharで発狂しそう。日付型か数値型に置き換えよう。PostgreSQLの数値型へ変換する関数「TO_NUMBER」では書式指定が必須となっている。

詳細はこちら。

http://osb.sra.co.jp/PostgreSQL/Manual/PostgreSQL-8.1-ja/functions-formatting.html#FUNCTIONS-FORMATTING-NUMERIC-TABLE

to_number(year,9999) 10000 + to_number(month,99)100+to_number(day,99))>=20080401

のように使う。(日付型にした方が早かったか?

posted by Face ysakaki on Tue 16 Sep 2008 at 16:07

http://d.hatena.ne.jp/balibali/20080504/1209911231 を参考にRails開発環境を構築する。開発者複数が地理的に分散している案件で各自に配布する予定。

■構築環境

  • CentOS4.6
  • Ruby 1.8.7-p72
  • Rails2.1
  • PostgreSQL8.3.3
  • NetBeans6.1

■1.VMWare Playerダウンロード

http://www.vmware.com/jp/download/player/ VMWareのサイトから最新版VMWare Player(2.0.5)をダウンロード。

■2.CentOSダウンロード

http://ftp.riken.jp/Linux/centos/4/os/i386/images/ から boot.iso を落とす。(rikenでなくても良い)

■3.vmxファイル作成

VMWare Playerを使って任意のOSイメージを使うにはvmxファイルを用意する必要がある。 http://www.easyvmx.com/

作ったvmxファイルをエディタで開いて編集する。

今回は真ん中のアイコンの「SuperSimple」を使った。入力項目は以下。

  • Virtual Machine Name:VM名=VertualCentOS
  • Virtual Machine Operating System:ホストOS=WindownsXP Professional
  • Virtual Machine Memory Size:VM用のメモリサイズ=1024MB

Virtual Machine Disk Size:VM用のディスクサイズ=4.7GB(DVD配布可能なサイズ) * LiveCD:ローカルのisoなどを指定するとCDとして認識される。

「Create Virtual Machine」ボタンを押すとvmxファイル一式のzipファイルをダウンロードできる。

さらにvmxファイルを編集してカスタマイズする。

--
ide1:0.present = "TRUE"
ide1:0.fileName = "boot.iso"
ide1:0.deviceType = "cdrom-image"
ide1:0.mode = "persistent"
--

で、vmxファイルをダブルクリックするとVMWare Playerが起動してCentOSのインストーラが起動するので後は普通にネットワークインストールすれば良い。

posted by Face ysakaki on Wed 10 Sep 2008 at 16:47 with 1 comment

今install railsすると2.1.1が入ってしまうが2.1.0を使いたい場合。 gem install RubyInline --version '= 2.1.0'

posted by Face ysakaki on Tue 9 Sep 2008 at 14:13 with 1 comment

例えばselect結果をinsertするような場合は効率面からActiveRecordを通さずそのままSQLを実行したい。select結果が数千件ある場合ARで素直に書くとそのまま数千回insert実行しなきゃならんので。

Railsでは基本ARで操作できるけど必要があればSQL書ける柔軟な所がある。 今回の場合ActiveRecord::Base::connection::executeを使用する。 Railsレシピブックで言うとP239の例。

   1  Class Entry < ActiveRecord::Base
   2    def self.select_insert_hogehoge
   3      sqlstr = "hogehoge"
   4      return connection.execute(sqlstr)
   5    end
   6  end

posted by Face ysakaki on Thu 28 Aug 2008 at 16:01

NetBeans6.1で「プロジェクト内を置換」を実行した場合。 コメント内を置換するとそれ以降のソースが吹っ飛ぶ。 日本語関係の問題なのか、コメント内だからいけないのかとか、そこまでは調べていない。

下記のコードで「# ・」みたいになってそれ以降のソースがなくなってしまう (苦笑)

   1        # ソート条件

posted by Face ysakaki on Mon 25 Aug 2008 at 09:21

チームで開発しているときに「俺が関係しているテーブルのfixtureだけloadしたいんだぜー」というときに使う。使い方は調べたけど結局使わなかった。

rake db:fixtures:load fixtures=fixture1,fixture2,fixture3,・・・

posted by Face ysakaki on Mon 25 Aug 2008 at 08:29

色々奥が深いと思った(not http://0xcc.net/misc/bad-knowhow.html 笑)

■前提:記事←関連テーブル→ユーザというモデル関係がある。

   1  # has_many :throughのパターン
   2  class Article< ActiveRecord::Base
   3    has_many :articles_users
   4    has_many :users, :through => :articles_users
   5  end
   6  
   7  class User < ActiveRecord::Base
   8    has_many :articles_users, :dependent => :destroy
   9    has_many :articles, :through => :articles_users
  10  end
  11  
  12  # 関連テーブルを実テーブルで持つ
  13  class ArticlesUsers < ActiveRecord::Base
  14    belongs_to :article
  15    belongs_to :user
  16  end

■関連テーブルの操作

あるユーザの関連をごそっと別の関連に切り替えたいような場合!

User.articles_users.destroy_allして作り直すという方法もあるが User.articles_users.replace()という便利なメソッドがある。

AWD第二版(AgileWebDevelopment)で言うとP308。 「○orders.replace(order1,...) この顧客に関連付けられた注文のセットを、新しいセットに置き換える。現在の子のセットと新しいセットの違いを検出し、それに応じてデータベースの変更を最適化する。」という奴。

   1   /ruby/lib/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/associations/association_collection.rb
   2  
   3        # Replace this collection with +other_array+
   4        # This will perform a diff and delete/add only records that have changed.
   5        def replace(other_array)
   6          other_array.each { |val| raise_on_type_mismatch(val) }
   7  
   8          load_target
   9          other   = other_array.size < 100 ? other_array : other_array.to_set
  10          current = @target.size < 100 ? @target : @target.to_set
  11  
  12          @owner.transaction do
  13            delete(@target.select { |v| !other.include?(v) })
  14            concat(other_array.select { |v| !current.include?(v) })
  15          end
  16        end
これは便利。

1.配列を放り込むだけ

「Replace this collection with +other_array+」ということで検索結果、あるいはセッションなどで生成した新しい関連の配列を放り込むだけで使える。

2.以前の関連との差分をチェックして差分だけ反映してくれる。

「This will perform a diff and delete/add only records that have changed.」ということで必要な差分だけチェックして必要なdelete/addをしてくれる。

ちなみにdeleteだと「Railsレシピブック」のP157「Entryオブジェクトobjectとの関連を削除する。Entryオブジェクトobjectの外部キー(blog_id)をNULLにし、関連を削除する。複数の参照元オブジェクトを同時に指定できる。」にある通り、関連テーブルの実レコードは削除されない(外部キーがNULLになるだけ)。関連テーブルにごみが残って気持ち悪い場合は上記モデルのように「:dependent => :destroy」を付けると物理的に削除される。

posted by Face ysakaki on Fri 22 Aug 2008 at 15:54
Contents
キーボード:→(やじるし)を早く打つ方法
Macで「・」(なかぐろ)を入力する方法
SQL Server Expressをバックアップする方法
PostgreSQLのTO_NUMBER関数で必要な書式指定の種類
Rails開発のためのCentOS4.6 on VMWare Player環境構築
gemでrailsのインストールバージョンを指定してインストールするには
RailsでDBクエリを直接発行する方法
NetBeansのバグ?コメント内を置換するとファイルが壊れる
railsで特定のfixtureだけloadする
Railsの多対多で関連テーブルの操作色々
Comments
satoko: 私もGIMP入れてみたんですよ、で、同じ文字化け。 言語の優先順位を1.English、2:... '08-11
榊 祐介: >satokoさん コメントありがとうございます。 画像編集はGIMPを入れてみたのですがい... '08-11
satoko: しまったsubmitするの忘れてたのですが、昨日書いていたコメントです。^^ '08-11
satoko: あわあわ、私も今日までずっと困っていました。先ほど別のところでこの設定方法を学んだところです!... '08-11
榊 祐介: 検索したら自分のブログだった乙orz '08-11
Services from s21g
twpro(ツイプロ)
Twitterプロフィールを快適検索
地価2009
土地の値段を調べてみよう
MyRestaurant
自分だけのレストラン手帳
Formula
ブログに数式を埋め込める数式コミュニティ