サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
買ってよかったもの
miau.s9.xrea.com
以前 ActivePerl での File::Find や Cwd の日本語問題について書いたけど、File::Copy にも似たような問題があった。解決策は同じような感じなので、簡単に説明。 ■現象 use File::Copy; copy('from\\サンプルソース.pl', 'to') or die "Copy failed: $!"; とすると、to\ース.pl というファイルができてしまう。Shift_JIS だと「ソ」の 2 バイト目が「\」になるから、ファイル名の取得かなにかでしくじってるのはわかる。 ■調査 処理を追ってみると、File\Copy.pm で sub copy { my $from = shift; my $to = shift; $to = _catname($from, $to); return syscopy($from, $to); } みたいな処理
PHP_CodeSniffer の --standard オプション比較 - miau's blog? ここで書き漏らした PHP_CodeSniffer の諸々について。 ■Zend Code Analyzer のインストールについて Zend Code Analyzer 入れてると、--standard=Zend で追加のチェックもやってくれる件。これ、マニュアルにも載ってたんだけど見落としてて↓の blog 見て存在に気づいた。 webプログラマーのメモ ≫ PEARのPHP_CodeSnifferのインストール及び使用法 | php, MySQL, PostgreSQL, apache, Linux等の技術メモです。 そして、Zend Code Analyzer へのパスを設定します。 $ sudo phpcs --config-set zend_ca_path /path/to/
VMware まわりでもちょっと時間を食ってしまったので書いておきます。そういえば VMware Infrastructure Client についても書いてなかった(実は一回書いたんだけど投稿ミスでやる気なくしてそのままだった)ので、まずはここから。 ■VMware Infrastructure Client いいよ VMware Server 2.0 RC2 を使ってみた - miau's blog? に Web UI の使い勝手が悪い旨を書きましたが、それ以外の問題として Tomcat のポート競合があります。Web UI 自身も Tomcat で動作しているわけですが、これ以外の Tomcat を起動しようとすると、こんなエラーが発生。 致命的: StandardServer.await: create[8005]: java.net.BindException: Address
家でメイン PC のように使ってる Thinkpad X61 Tablet ですが、布団の上で使ったりすることもあり、ファンが詰まってるような音がします。以前キーボードを外してファンの表側だけ掃除したことはあるんですが、今回はちゃんと分解して裏も掃除してみようかなと。 で、Thinkpad には保守マニュアルもあるから簡単だよね、と思ってたらそうでもなかったので簡単にハマったところの説明を。 ■最終目標 機種によってファンの取り外し手順なんてのはずいぶん違うんだけど、Thinkpad X61T はほとんどすべての部品を取り外さないとファンの裏側までは掃除できません。 この状態まで分解する(基盤をひっくりかえせる)のを目標にします。ファンの取り換えなんかもする場合はこの基盤を完全に取り外すことになると思うんですけど、今回は掃除したいだけなのでそこまではやりません。 ■保守マニュアルのありか
Selenium 周りでネタが溜まってきたので、ごっちゃり書く・・・つもりが、気がつくとすごい量になったので、やっぱり 2 回に分けて書きます。 まずは、 ・最近の戦略とか ・Selenium RC 1.0 beta 2 で Test Suite が Not Found になる件 ・CakePHP 用にアクションを追加 について。 ■最近の戦略とか ○スクリプトを使わず Selenium IDE で Perl や PHP から Selenium RC を呼び出したりして使っていたこともありますが、特にそうする必要がない場合は Selenium IDE でやってます。前の案件では結合テストから Selenium を使ってたんですが「こんな便利なら開発中の確認でも使えばよかった〜」と言われたので、今回の案件では開発中の動作検証から Selenium IDE で実施して、後半の結合テスト、シナリ
今回のシステムでは DB に Oracle 10g 使ってます。各開発機(Windows)には Oracle Express Edition(Oracle XE)を入れてもらってるわけですが、結構インストールまわりで不調なことが。そんなわけで設定メモ&ついでに Oracle まわりの雑感。 ■そもそも Oracle XE って? フリーで使える Oracle 10g みたいな位置づけ。詳しいことは FAQ(PDF) に書いてあるけど、 ・扱えるデータは 4 GB まで ・利用できるのは 1 インスタンス、1 CPU のみ ・メモリの上限は 1 GB まで みたいな感じ。あと配布バージョンが 10.2.0.1 のみでパッチは無償では提供されていないので、たまに「10.2.0.3 にすれば解決するんだけど、それ以前だとの設定で回避してね」的な設定を行う必要があることも。 でもまあ、ふつうの開発
先週くらい?に発売した CakePHP の実践本。近所の書店に売ってなかったんですが、会社の後輩が買ってたのでちょっと借りてぱら見しました。読んだ感想、メモ、内容に絡めた話とかを適当に。長いです。 ■全体的な感想 ・概要についてはあっさりした説明のみ。その代わりに実際の開発手順が具体的に書かれてるから、中級者向けっぽくて良い感じ。 ・テストについては結構紙面を割いてるので、やったこと無い人にはいいかも+assetTags なんかにも触れられてるのはいいかも。core のテスト見ればこの辺の使い方はわかるんだけど、いつの間にか core のテストがリリース版に含まれなくなっちゃってるから、テストのサンプルが気軽に見れなくなっちゃってるんだよね・・・。 ・細かいところでうまいこと共通化されてて勉強になる。「ここで Component 使うかー」とか思ったりとか。 ■個別のメモ ・p29 XAM
今の案件では設計書のたたき台を TracWiki に書いて、最終的に別の形式(Excel、Word、PDF 等)でまとめることになってます。開発者&運用者の立場からすると ・チケットへのリンクが貼れるので、後で仕様確定の経緯がわかりやすい ・画面間でリンクが貼れる ・編集が容易 ・余計な手間がかからない というような理由で Wiki のままのほうがいいとは思うんですけど、ユーザへの納品用にやはりドキュメントは欲しいとのことで。軽く調査したので、そのことについて。 まあ調査と言っても Trac Hacks をうろついてただけなんですけど。で、今回の目的に使えそうなのが以下の 3 つのプラグイン。 ちなみに今回導入したい Trac は 0.10。自前管理の Trac じゃないから気軽に 0.11 に上げるわけにも行かない状況。 ■Trac2LatexPlugin 0.10 専用で、LaTex
前項 の続きというか、はみ出した部分。 元々 Selenium IDE で検証してたんだけど、よくよく聞いてみると今回の対象ブラウザは IE6 とのことで。じゃあ Selenium Core 使って IE で・・・と動かしてみたら結構問題があったのでその辺のお話。 ■Firefox と IE だと href 属性が違う まずコケてるところが目立ったのは、 <a href="/users/update/1"><img src="update.png" alt="更新"></a></td> こんなリンクを辿るための、 clickAndWait //a[@href = '/users/update/1']/img/[@alt='更新'] みたいなアクション。(※img をクリックする必要はないんですけど、わかりやすいようにこういう書き方にしてます。) Firefox だと @href が「/us
最近だとソースコードや DB を UTF-8 で統一するのが当たり前になってきてますが、日本語版の Windows は cmd.exe で Shift_JIS(Windows-31J)以外でエンコードされた文字を出力すると文字化けしてしまいます。 この対応について、半端ではありますがいくつか調べたのでそのお話。 ■対応方法 ○chcp 使う→これだけではダメ。 去年の頭の時点で一般的にいわれていた対策は「chcp 65001」にするというもの。 chcp 65001 でもこれってうまくいかないんですよね。「これは UTF-8 ですよ。」という内容のテキストファイルを出力すると、こんな感じ。 (ラスタフォント。マルチバイトが 1 バイトずつ認識されてる。) (Lucida Console。文字認識はうまくいってるけどフォントが該当文字を持っていない。) (Win7 上でのラスタフォント。元々
ack -- better than grep, a power search tool for programmers Perl 製の grep ツール。 ソースコード検索の ack がよさげな件: blog.bulknews.net で見かけたときにちょっと試してその後すぐ使わなくなってたわけですが。今回また使ってみたのでそのお話。 ■前置き 私は他人のコードのメンテナンスをメイン業務にしていた時期がありまして。構成や設計指針がわからないので、影響調査なりなんなりで grep は結構やるほうです。しかも扱う環境が ・PHP と Perl と Born shell を連携してる環境 ・ASP と C++ が混在してる環境 ・設定ファイルに拡張子がついてない環境(以前 blog にも書いたやつ) といろいろなので、拡張子で絞込みを行わずに全ファイルを対象にして grep することが多いです
ここ数年 SVN/Trac 周りの管理っぽいことをやってることが多くて、「これ blog に書こうかなー」と思うことが多いんですが。細かいことをいろいろ書く前に基本をひととおり書いておいたほうがなんとなくやりやすいので、がんばってまとめようかと。 ということで、いくつか tips っぽいのも交えつつ、インストール済みの SVN や Trac の初期設定についてまとめてみます。べつに決定版とかいうわけでなく「最近はこうしてるよ」って程度のものです。 なんだか無駄に長くなってしまったので何回かに分けます。ひとまず今回は ・ルートディレクトリの作成 ・管理ファイルの格納 ・pre-commit hook の設定 まで。これだけでも結構な長文なので要注意です。 ■前提(たぶん読み飛ばして OK) ・プロジェクト名の部分はすべて hoge としておきます。 ・SVN と Trac が同一の Linu
※勘違いによって書かれたエントリーです。末尾に追記しているので、そちらもあわせてご覧ください。 今やってる案件で「ラジオボタンが切り替わったら現在日付が自動入力される」みたいな画面がありまして。これを Selenium IDE でテストしようとして、 |click|radio_button|| |assertElementNotPresent|//input[@id='datetime_field' and @value='']|| みたいなケースを作ったんですが、これが通らない。どうも @value が JavaScript での変更前の値になっている様子。 検索ワードが悪いのか、ググってもこの辺の情報がなかなか見当たらなくて。なんか常識だったり検証方法が間違ってたりするかもしれませんが、簡単に検証してみました。 ■検証用ページ xpath_test.html ソースはこんな感じです。
ここ数年は裏方の仕事が多くて、SVN や Trac には結構詳しくなったつもりでいたんですが・・・1 ヶ月ほど前に基本的な原理(client/server の役割とか)を理解していないことが判明したので、反省がてら晒しておきます。 ■きっかけ Subversion でコミット時にメールを送る post-commit hook を設定してたんですが、気がつくと動作しなくなってまして。ネットワーク周りの調子が悪いのかな?くらいに思ってたんですが、たまーにちゃんとメールが飛ぶこともあるようで。 どうしてリポジトリのフックが動作しないの? - Subversion FAQ(in Japanese) あたりを試してみると、ちゃんとメールは送れるようで。hook が正しく呼ばれてない? よくよく見てみると ・Subversion のリポジトリが載ってるサーバで svn co /home/svn/pro
「maven2 djUnit」とかで検索して迷い込んでくる方がいらっしゃるようなので、ちゃんと書いておきます。基本は前書いた Maven2 で外部 .jar を社内リポジトリに格納 - miau's blog? と同じなので、同じ部分はさらっと流します。 実際試したバージョンは 0.8.3 だったんですが、先日 0.8.4 が出てたので、以下のバージョン記述は 0.8.4 に書き換えてます。 ■超参考 たぶんこの辺の情報がなかったら Maven で djUnit 使えてなかった。感謝。 maven-surefire-plugin(djUnitを使用) - tanamonの日記 2008-04-16 - tanigonの日記 ちなみに tanigon さんてタイピングで有名な方ですね。同業者だとは知らなかった・・・。(勝手にプロのタイピストか何かかと思ってた・・・。) ■.jar の格納 j
今月あたりから(?)blog にコメント書き込もうとしても 403 Forbidden になってしまうことがあって。原因&対策を調べてみると、特定の IP からの POST をはじいているらしい。 POST処理で403Forbiddenが出る症状について - XREA&CORE SUPPORT BOARD トラックバックスパム、コメントスパムの自動拒否について - XREA&CORE SUPPORT BOARD 主に海外からのアクセスをはじいてるみたいだけど、なんで会社からも書き込めないんだろう? で、この辺の対策をひととおり試したんだけど、うまくいったのは SSL で(ss1.xrea.com 経由で)接続する方法だけ。それ以外(.htaccess だとか FTP 登録だとか)はダメ。 仕方ないのでとりあえずこんな bookmarklet 作成して対処。 xrea SSLサイトに移動 な
つなぐ、つながる、そして未来へ Developers Summit 2009 今年も両日行ってきたので、忘れないうちに感想とか。まずは初日のぶん。 ■開発プロセスの心 ・要求開発の話。あんまなじみのない言葉だけど 技術情報 / 要求開発超入門 | リコーソフトウエア株式会社 あたりを見るとわかるんだとか。 ・メインテーマはちょっと今やってるところからすると上流というか担当外で、すぐに活かせる感じではないかな。でも将来的にはこういう視点も必要そう。 ・アジャイルのコツとして「走りながらモデリングする」「ドキュメントは最低限にして書きすぎない」みたいなことも語られていた。アジャイル開発はやってないけど、この辺は参考にできそう。 ■未来へつながる言語〜ある言語おたくの視点から ・Matz さんの話は年に一回くらいは聞いてるし、それほど真新しい話はないのかなー、とか思いながら聞いてたらいきなり P
前回 書いたように JIS かな入力を卒業(?)したわけですが、今度は月配列というのを試してみることに。 「月」 --- 中指シフト新JIS配列 まだ使い始めですが、以下つらつらとこの話題です。 ■菱(ひし)について ○導入 月配列にも色々あるみたいですが、まずはベーシックな 2-263 式とやらにチャレンジしてみます。月配列を実現するためのソフトにもいくつかありますが、一番簡単そうだったので菱(ひし)を使うことに。 手順は 先頭のリンク からすぐに辿れますが、まとめると (1) massangeana's program archive から菱(ひし)をダウンロード&解凍 (2) 先頭のリンク からのリンクで 「月配列」設定ファイル 2-263式(.zip) をダウンロード&中の tsuki.hh と hishi.inf を hishi の解凍先にコピー(上書き) (3) hishi.e
今回のシステムでは統合ビルドツールに Maven2 を使ってます。Ivy & Ant なんて組み合わせもあるようですが、私が今回アーキテクトっぽいポジションであるにもかかわらず Java の経験が浅いので「標準的な構成が決まってるし、ぜんぶまとめてやってくれるからこれがいい!」と即決したわけです。 Maven2 を使えば依存関係を解決して勝手に .jar をダウンロードしてくれたりして楽なんですが、ライセンスの関係やらで Maven2 のリポジトリが公開されていない場合、 ・自前でローカルリポジトリにインストール ・社内リポジトリを準備してそこに配置 のどちらかを実施する必要があります。 ググると前者の方法がよくヒットするんですが、今回私は「各開発メンバに環境構築を最低限の手順で行ってもらう」というのを目指しているので(この辺はきっと別項で書きます)後者の方法を試してみました。 ■Mave
ということで、前項の続き。 ■Perl の Selenium RC をインストールしようとすると・・・ >makefile.pl *** Module::AutoInstall version 1.02 *** Checking for Perl dependencies... [Core Features] - Test::More ...loaded. (0.47 >= 0.42) - Test::Exception ...missing. - Test::Mock::LWP ...missing. - Test::Pod ...missing. ==> Auto-install the 3 mandatory module(s) from CPAN? [y] nTerminating on signal SIGINT(2) こんなこと言われた。でもインターネットに繋がってない PC
前項で Thinkpad のキー配列が気に食わないことは書いたけど、一番気に食わないのは ・左下に Fn キーがある ・Esc キーが遠い こと。Esc についてはキーの入れ替えをやればいいんだけど、問題は Fn の入れ替えについて。これは PC 側にその機能がついていないと行うことができない。その理由として「Fn キーは単独で押したときには何も信号を送らず、特定のキーとの組み合わせでのみ信号を送る。これはハード的に制御されているのでソフトウェア側で変更はできない。」というのがよく信じられてると思うけど、調べてみるとちょっとだけ違ってた。 結論としては結局「Ctrl との入れ替えはソフト側では行えない」になっちゃいそうだけど、他の使い方なら胡散臭く実現できるかも? ■おことわり この検証は Thinkpad X61 Tablet でやってるので、別の PC だとまたいろいろ違うのかも。あと
上流の会社が最近 PHP_CodeSniffer によるスタイルのチェックを推奨しているらしい。そんなもので縛らなくてもまともなコード書ける人ばかりだといいんだけど・・・うちでもたまにひどい人がいるから文句言えない。(平気で 8 タブでインデントするような人もいたし。見たとき眩暈がした・・・。) PHP_CodeSniffer では自分でコーディングスタイルの基準を定義したりもできるんだけど、組み込みの基準も何種類かあったりする。その基準で PEAR と Zend 以外に言及してる人が少なかったから、まずはそこについて触れておこうかと。 ■インストール >pear install PHP_CodeSniffer-1.1.0RC1 ということで、今回は現時点で最新版である 1.1.0 RC1 で確認してます。 ■--standard オプションについての概要 phpcs を -i オプション
数ヶ月前に会社からノートPC(Thinkpad X61)が貸与されたんですが、画面中央付近にドット欠け(輝点。常に緑色に表示。)があって、結構気になってました。そんな折に、以前 X61T のドット欠け関連でいろいろと - miau's blog? の最後にで紹介したドット欠けを直す方法を思い出しまして。試してみたら本当に直ったので改めてご紹介です。 ソフトウェアによる修復(失敗) JScreenFix - Fix stuck pixels 画面をちらちらさせる Applet が走るので、それをドット欠けの部分に重ねてしばらく置いておくと直りますよ、と。まず 5 分試して、ダメなら再度 20 分くらいやってみる。それでたいてい直るはず・・・とのことですけど、残念ながら効果はありませんでした。 物理的な方法 JScreenFix のページに「それでもダメならこの方法を試してね」と書いてあったの
たとえば、こんなテーブルがあったとして。 SELECT * FROM CustomerFamily cust_id family_id name ========================== 1 1 波平 1 2 フネ 1 3 カツオ 2 1 マスオ 2 2 サザエ 2 3 タラオ それをこんな感じで抽出したい場合。 cust_id family1 family2 family3 ================================== 1 波平 フネ カツオ 2 マスオ サザエ タラオ まぁ、正攻法では CURSOR 使ってぐるぐる回すことになるんでしょうけど、DataGrid とか使いたい場合はそうはいかないわけで。 以前似たようなことを聞かれたときは、「できない」って答えたか、あるいは副照会使って SELECT cust_id, (SELECT name FROM
ということで Perl での Excel 操作には慣れてるんですが、最近は Ruby のほうが楽しいかも?とか思い始めてるので Ruby での操作法メモ。 require 'win32ole' # msoXXX 系の定数を使うためのおまじない。 # msoXXX は Office::MsoXXX として利用できるようになる。(先頭は大文字になるので注意) module Office end WIN32OLE.const_load('Microsoft Office 11.0 Object Library', Office) # xlXXX 系の定数を使うためのおまじない。 # xlXXX は Excel::XlXXX として利用できるようになる。(先頭は大文字になるので注意) module Excel end WIN32OLE.const_load('Microsoft Excel 11.
まともな方法を始めて知ったので、その経緯とかメモとか。 TeraTerm の自動ログイン用マクロとかよく作ると思うんですが、サーバ毎にターミナルの文字コードは違うわけで。 文字コードを指定する TTL コマンドはないので、今までは TERATERM.INI、TERATERM_UTF8.INI のように使いたい文字コード毎に設定ファイルを用意して、その中で KanjiReceive=UTF-8 KanjiSend=UTF-8 みたいに文字コードを指定 ↓ .ttl の最後で restoresetup 'TERATERM_UTF8.INI みたいにサーバの文字コードに応じた .INI ファイルの読み込み、という方法をとってました。 でもこの方法だと、プロジェクトで .ttl ファイルを共有する場合に .INI ファイルも共有する必要があって面倒なんですよね。 そんなわけで要望を出してみたわけで
以前から悩んでいたんですが、普段複数の PC を使っているせいで、作ったスクリプトが色んな PC に分散しがちです。「あー、あのマクロ使おうと思ったけど、あっちの PC で作ったんだった」みたいなことも多かったり。 それで「Subversion のレポジトリとか作って、ちゃんと同期できればなー」と思ってたところ、こんな記事を見かけまして。 Mercurial で手軽な共有レポジトリをつくろう - steps to phantasien t(2007-05-19) Mercurial だと CGI でレポジトリ公開できるらしい。ということはこの XREA のサーバでレポジトリ管理できるってこと?それはなかなかいいような。 例えば blog で公開しているスクリプトも Mercurial で管理すれば気軽にバージョンアップできるし、普段「これは公開するレベルじゃないな」みたいな感じで blog
マインドマップは SAI で書くとよさげ - miau's blog? ここのコメントで dhal さんに「サイドスイッチ使えてます?」という質問を受けまして。試してみるとほとんど機能していない様子。マニュアル見たら便利そうだから、できることなら使いたいものだけど・・・。 で、いろいろ試した結果 Wintab32 ProxyDLL をいじればなんとか誤魔化せそうなので、とりあえずご報告。 ■完成品 wintab32_for_x61t.zip SAI で Thinkpad X61 Tablet のサイドスイッチがうまく動作しないのをなんとかする DLL です。 TabletPC Wintab32 ProxyDLL for SAI - moegoto etcetera のソースをちょっと書き換えただけです。使い方も元の DLL と同じで、sai.exe と同じ階層に wintab32.dll
次のページ
このページを最初にブックマークしてみませんか?
『miau's temporary!』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く