スポンサーリンク

2009-01-01から1年間の記事一覧

Prototype.js + Script.aculo.us のはまり所

もはやレガシー*1となりつつある,時代を作ったJavaScriptフレームワーク Prototype.js の盲点,注意点を書きためてゆく。 ※「JavaScriptの動かないコード(JavaScriptエラー集)」のprototype.js版,という位置づけである。ただしネタは多くない。 Download P…

電磁気学講義ノート:マクスウェル方程式のためのベクトル解析 (2)ナブラを使って grad・div・rot の計算を簡素化

Maxwell方程式に基づく電磁場の計算のために,前回は下記の事項を学んだ。 和を縮約則で省いて,内積・外積の計算を簡素化しようhttp://language-and-engineering.hatenablog.jp/entry/20091115/p1 続いて今回は, 微分の表示をナブラで省いて,場の計算を簡…

Ruby on Railsのfixturesを,Excelから生成しよう (テストデータを管理しやすくするためのマクロ)

〜書き途中〜 Ruby on Railsのテストの書き方 (モデルの単体テストと,コントローラの機能テスト) http://language-and-engineering.hatenablog.jp/entry/20091023/p1 テストデータやテストケースを作る際,下記のような要望が生じる。 yaml形式のfixtures…

Ruby on Railsのマイグレーションで,テストデータやサンプルデータをうまく管理する方法

Ruby on Railsで開発を進めていく際,マイグレーション中には スキーマ情報 マスタデータ サンプルデータ などの構築情報を含めることができる。 たとえば 01_create_users.rb でまず users というテーブルを作成したら,すぐに 02_add_users.rb でサンプル…

RailsでGMailを利用したメール送信 (ActionMailer + tlsmailの仕組みを理解しよう)

Ruby on Rails (1.2.6)で gmail からメール送信を行なうためのサンプルコードと,拡張クラスを作れるようになるための詳しい解説。 (1)ごくかんたんにSSL/TLS認証を使う場合(シンプル) (2)(1)に加え, 1,日本語文字化け対応 2,件名や宛先もテンプ…

電磁気学講義ノート:マクスウェル方程式のためのベクトル解析 (1)内積・外積の計算を簡素化

Maxwell方程式に基づく電磁場の計算を,楽に,スムーズに,手早く実行したい。そのために,計算上のテクニックとして以下の点を学ぶ。 (1)演算子の表示を省く: 和を縮約則で省いて,内積・外積の計算を簡素化しよう 微分の表示をナブラで省いて,場の計…

Ruby on Railsのテストの書き方 (モデルの単体テストと,コントローラの機能テスト)

Ruby on Rails のテストの書き方のまとめ。 RSpecを使わない,素の unit test (モデルのテスト) functional test(コントローラ+ビューのテスト) について,どう書いたらいいのか,どこの情報を参照したらよいのか,などを列挙。Rails入門者が初めてテスト…

JavaScriptの動かないコード (中級編) ラジオボタンとプルダウンのonchangeイベントがおかしい

連載目次へ 以下のJavaScriptコードが意図した動作をしないのは,なぜですか。(制限時間1分) やりたい事: ラジオボタンのチェック状態によって,表示文言を切り替える。 <input type="radio" name="msg_type" id="radio1">Aと表示<br> <input type="radio" name="msg_type" id="radio2">Bと表示<br> <br> <div id="div_msg1" style="display:none">A</div> <div id="div_msg2" style="display:none">B</div>

IE AutoTester で,UIの回帰テストを完全自動化

テスト仕様を書けば,仕様書自身がテスト(ブラウザ操作)を自動でやってくれる。Excelのシート上に,下記のように記述する。 IE起動 開く http://www.yahoo.co.jp/ 存在判定 srchtxt 存在判定 srchbtn 入力 srchtxt hogeraccho クリックして待機 srchbtn が…

ブラウザの自動テスト中に,テスト結果をExcelに記録させる(UWSCでIEを自動操作するライブラリ 1.3)

バッチ・マクロのTOPへ 下記のライブラリを改良した。 ブラウザ上で,マウスのドラッグ&ドロップも自動化できるスクリプト(UWSCでIEを自動操作するライブラリ 1.2) http://d.hatena.ne.jp/language_and_engineering/20090826/p1この時あった機能: IE上で…

JavaScriptの動かないコード (中級編) イベント強制発生までの遅延時間をなくしたい

連載目次へ 以下のJavaScriptコードが意図した動作をしないのは,なぜですか。(制限時間1分) やりたい事: 「フォーカスを外す(blur)とメッセージを表示する」という,テキストボックスがある。 このテキストボックスの動作テストをしたい。blurのイベ…

JavaScriptの動かないコード (中級編) clickイベントを強制的に発生させたい (fireEvent/createEventの使い方)

連載目次へ 以下のJavaScriptコードが意図した動作をしないのは,なぜですか。(制限時間1分) やりたい事: 「クリックするとメッセージを表示する」という,テキストボックスがある。 このテキストボックスの動作テストをしたい。クリックのイベントを自…

JavaScriptの動かないコード (中級編) nullが0以上0以下と認識されてしまう

連載目次へ 以下のJavaScriptコードが意図した動作をしないのは,なぜですか。(制限時間1分) やりたい事: ラジオボタンの中で,どれかボタンが選択されたかを検証する。 何も選択されていない場合,警告のメッセージを表示。 <body> どれか選択して下さい。<br> <input type="radio" name="hoge" value="0"> 0 <br></body>…

JavaScriptの動かないコード (中級編) innerHTMLを追記するとイベントハンドラが消える

連載目次へ 以下のJavaScriptコードが意図した動作をしないのは,なぜですか。(制限時間1分) やりたい事: 「追加」ボタンを押すと,「メッセージ表示」ボタンが追加される。 どの「メッセージ表示」ボタンを押しても,メッセージが表示される。 <body> <input type="button" onclick="f()" value="ボタンを追加する"> <br> <div id="hoge"><input type="button" id="btn1" value="メッセージ表示"></div> <style type="text/css"> .bl</body>…

マウスでソートできるリストを作るためのJavaScriptライブラリ(行追加・削除・固定行の設定が可能)

JavaScriptプログラミングのTOPへ 下記のようなUIを実現するための,クロスブラウザなJavaScriptライブラリ。 マウスのドラッグドロップで,行を入れ替え可能。 行の追加・削除ができる。 リストの中に,ドラッグ不可能かつ順序不動の「固定行」を作れる。(…

ブラウザ上で,マウスのドラッグ&ドロップも自動化できるスクリプト(UWSCでIEを自動操作するライブラリ 1.2)

バッチ・マクロのTOPへ ※これより新しいバージョンがリリースされています。 http://d.hatena.ne.jp/language_and_engineering/20090918/p1 下記のライブラリを改良した。 UWSCでIEを自動操作し,回帰テスト/JavaScript実行/ファイル保存 などができるライブ…

UWSCでIEを自動操作し,回帰テスト/JavaScript実行/ファイル保存 などができるライブラリ

バッチ・マクロのTOPへ ※これより新しいバージョンがリリースされています。 http://language-and-engineering.hatenablog.jp/entry/20090826/p1 下記の「IEを自動操作するライブラリ」の改良版ができた。 UWSCで,IEを自動操作するためのライブラリ (ファ…

Selenium 中級者になろう (変数+XPath+JavaScriptを,テストケース中で利用する方法)

回帰テストツール「Selenium」の中級 Tips。 初級の使い方については 今から3分で selenium の使い方を身に付ける (回帰テスト自動化) http://language-and-engineering.hatenablog.jp/entry/20081016/1224080409 selenium 主なコマンド一覧 http://languag…

Excel VBAのマクロを,複数のブックから利用する方法 (標準モジュールをブックの外部で管理して,共通ライブラリとして読み込み)

バッチ・マクロのTOPへ 通常,Excel VBAのコードは, .xls ファイル(=ブック)の内部に 保存されてしまう。これだと 複数のブックで共通のコードを利用できないし, マクロの修正があると,全ブックを修正しなければならないし, ソースコードをテキスト形…

UWSCで,IEを自動操作するためのライブラリ (ファイルアップロードも自動化できる)

バッチ・マクロのTOPへ ※これより新しいバージョンがリリースされています。 http://language-and-engineering.hatenablog.jp/entry/20090825/p1 Windows 自動化ソフトの「UWSC」で,IEを自動操作する。 SeleniumやVBAやWSHでの自動化と比べて,このUWSCの最…

UTF8Nの複数テキストを,一斉に置換するバッチ (JScriptでUTF8Nのファイルを読み書き)

バッチのまとめTOPへ UTF-8 (BOM無し)のファイルがたくさんある。(例えばRuby on Railsのプロジェクトとか)これらのファイル内の文字列を,一斉に置換したい。 そのためのスクリプト。 サンプルコード 置換したい文字列を下記のようにテキスト内に保存。置…

WSH/JScriptで,XMLを読み込みする (コマンドラインからDOM操作)

バッチのまとめTOPへ WSHで,XMLをパースする。設定ファイルから情報を抽出したりできる。 ここでは,下記のページに載っている build.xml を解析してみよう。 Antを使う … 簡単なJava用ビルドファイルを記述する http://www.jajakarta.org/ant/ant-1.6.... …

CSVをExcelファイルに変換するスクリプト (JScript/WSHで,カンマ区切りCSVファイルから.xlsを生成)

バッチのまとめTOPへ JScript/WSHで,CSVを.xlsファイルに変換するスクリプト。 実は,Excelには致命的なバグ(致命的な仕様)があり,CSVの扱いがひどい。 どれほど工夫しても,CSVをExcel上で開くと, 列がずれたり セルの表示形式を楽に制御できず,値が…

JScript/WSH で,Excelファイルを読み書きしよう

バッチのまとめTOPへ JScriptからExcelを操作するコード。 新規Excelファイルの自動生成 既存のブックの読み書き などできて便利。

アラビア語の数字(アラビア数字)の書き方を覚えよう

多言語を学ぶ目次へ アラビア語では「1」とか「2」のようなローマ数字を使わない。数字のために,独特の文字がある。 各国語でのインド・アラビア数字の表記法 http://ja.wikipedia.org/wiki/%E3%82%A2%E3%83%A9%E3%83%93%E3%82%A2%E6%95%B0%E5%AD%97アラ…

JScript / VBScript (WSH)で,IEを自動操作しよう

バッチのまとめTOPへ JScript / VBScriptでも,IEを自動操作(オートメーション)できる。テキストファイルをダブルクリックするだけで,ブラウザが動く。 しかも,ブックマークレットを自動実行することもできる。つまり,表示中のWebページに対してJavaScr…

Excel VBAのマクロで,IEを自動操作しよう (DOMセレクタ関数をVBAで自作)

バッチ・マクロのTOPへ JavaScriptと同じように,VBAでもDOM操作が可能。 下記のようなマクロで,IEを操作できる。 Sub Googleで検索() ' IEを立ち上げて Google を開く Dim ie As Object Set ie = new_ie("http://www.google.co.jp") ' 検索キーワードを入…

Railsで,簡単にメッセージ管理する方法 (メッセージ定義書からメッセージ処理クラスを自動生成するVBAマクロ)

アプリケーション開発で,表示文言やエラーメッセージを一元管理したい場合,GetTextを使うのがスタンダードだ。 Ruby on RailsでRuby-GetText-Packageを使う (Rails-2.1.x以前) http://www.yotabanana.com/hiki/ja/rub... しかしこの方法は汎用的である反面…

JavaScriptの動かないコード (中級編) IEでスコープチェインにdocumentが補完されるように見える不思議

連載目次へ 以下のJavaScriptコードが意図した動作をしないのは,なぜですか。(制限時間1分) やりたい事: alertとかgetElementByIdなどの関数を,1文字の変数に代入して利用する。(つまり,ショートコーディングを試みる。) <html> <body> <input type="button" onclick="f()" value="1文字関数のテスト"> <div id="my_div">fuga</div> <script language="JavaScript"> function f(){ v</body></html>…

JavaScriptの動かないコード (中級編) オブジェクトのメソッドを変数代入でコピーできない

連載目次へ 以下のJavaScriptコードが意図した動作をしないのは,なぜですか。(制限時間1分) やりたい事: hello,world! と,2回表示したい。その際,出力用の処理を簡単に呼び出せるように,関数を変数に代入してから利用する。 <html> <body> <input type="button" onclick="f()" value="「hello,world」と2回表示"> <script language="JavaScript"> function f(){ var </body></html>…