投稿

1月, 2009の投稿を表示しています

【.NET】.NET用オープンソースなフレームワーク

PHPでの開発はpetitworksomfaを使っていますが、.NET用にフレームワークってないものか探したメモ。一応、それらしいものはあるみたい。@IT .NET開発でもオープンソース・フレームワークを使おう。でも、あまり世間一般には知られていない(?)。今度.NETの開発をするときはもっと調べて使ってみようかな。Micorosoftが推進するオープンソースライブラリ【Enterprise Library】ダウンロード

【PHP】XMLと配列の相互変換してくれるPEARのXML_Serializer

PHPでDOMを使うのは結構めんどくさい(前の記事を参照)。
SimpleXMLを使うと比較的簡単に操作できるけど(これも前の記事を参照)、だったら連想配列で作成しといてXMLに変換すればいいやん。
というのがPHPでは簡単にできてしまう。 それを実現するのがPEAR(ペア)XML_Serializer。 コード例とかはここを参照。 DOMを使うかXML_Serializerを使うか判断に迷うところだけど、そんな方法もあるという感じのメモ。

【Visual Studio】DateTimePickerのカレンダーを制御(表示)

環境はVisual Studio 2005 + VB.NETDateTimePickerを使っていて「F1」キーなどでカレンダーを表示するためのコード。メソッドかプロパティで簡単に実現できるかと思ったけど、ないみたいなので、キーが押されたという情報をアプリケーションに送信しないと駄目みたい。参考にしたのは、ここここ。サンプルコード。Public Const WM_SYSKEYDOWN = &H104 'Altキー Public Const VK_DOWN = &H28 'カーソルキーの↓ ' ウィンドウにメッセージを送る関数の宣言 Public Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hWnd As Integer, ByVal Msg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Integer SendMessage(Me.objDTP.Handle, WM_SYSKEYDOWN, .VK_DOWN, 0) 要はALT+↓をDateTimePickerに対して送信している。

【最近の物欲】ワイヤレスヘッドホンがほしい

すでにヘッドホンはあるにはあるけど、有線だし料理しながら聞きたいし、ベットに横になりながら映画を見たいので、ワイヤレスヘッドホンで検索。価格.comを見る限りSONY MDR-DS7000がいいみたい。買ってしまおうかしら。

Open XMLとODFを相互変換させるツール

Open XMLとODFを変換させるツールをBSDライセンスに近いオープンソースで公開しているプロジェクトを見つけた。Open XML-ODF Translatorマイクロソフトが推進しているらしい。これが広がって、Excel, Word, OpenOffice, PDFなど簡単に相互変換できるようなツールが生まれてほしい。商用ではたくさんあるけど・・・。特に今探しているのはlinuxのコマンドラインでExcelからPDF変換できるような(フリーの)ツール。今のところはJODConverterしかないか・・・。でも変換速度がねぇ。

PHPでコンビニ用バーコードGS1-128(UCC/EAN-128)生成(基礎知識編)

バーコードを生成するライブラリはPEAR::Image_Barcodeがあるけど、コンビニ用のバーコード規格には対応していない。 まず基本的なバーコードについてはここを一読する。 JAN(EAN)やcode128などバーコード規格の違いを一通り理解できる。コンビニ用バーコードの規格はGS1-128(旧名UCC/EAN-128)というらしいけど、この詳細な仕様(規格)は流通システム開発センターにお金を払わないとくれないらしい。ここから。 これぐらい無料で公開してほしい・・・(そんな高くないけど)。そこにはバーコードの仕様、チェックデジットの計算方法、印刷品質についてなどが記述されているので、もし仕事で必要なら手に入れといたほうがいいかも。 重要なのは 余白も含めたバーコードの横幅は60mm以下(左右の余白は2.54mm×2) 高さは10mm以上 バーコードの構成は
(余白)(スタートコードC)(FNC1)(データ部)(チェックデジット)(ストップコード)(余白)チェックデジットの計算方法はモジュラス103。GS1-128(旧名UCC/EAN-128)はcode128を拡張した規格なのでcode128とよく似ている(wikipediaのcode128
違いはFNC1(ファンクションキャラクタ)とデータ部の長さと金額などの出力項目の位置が決められていることかな。

FNC1(ファンクションキャラクタ)はバーパターンが「411131」で固定。
キャラクタセットとバーパターンはここを参照。
GS1-128(旧名UCC/EAN-128)はcode128のcode cを参照。自分が作成したバーコードが正しいかどうかはここにあるようなフリーソフトで出力して確認。

【.NET】【Visual Studio 2005】セルのformatを指定して表示

DataGridViewのセルの書式(金額や日付など)を設定する場合のメモ。
開発環境はVisual Studo 2005, VB.NET, MultiRow。リスト表示はMultiRowを使っているけど、同様に設定可能。コード例はDOBON.NET プログラミング道が参考に。具体例の一覧がみたいならこっち。formatプロパティに設定する値はMSDNのサイトで確認。

【Visual Studio】エディタをカスタマイズして現在行を強調表示

イメージ
一行を切り取って別の行に挿入するときよく間違えるので、現在の行を色変えて表示できるか検索したメモ。ほんとうは下線だけにしたかったけど。Google先生に聞いてみたらここのブログがヒット。Visual Studioのアドオンで「Free SlickEdit Gadgets」をインストールすると無料でエディタの表示をカスタマイズ可能に。インストール後、オプションで設定すると下図のようにハイライトされる。これで少しコーディングしやすくなった。ちなみにShift + Alt + Enterで全画面表示できるので、これも知っておくと便利。

【Visual Studio 2005】イベントログのnview_infoエラー

イメージ
最近、Visual Studioの調子が悪いと思ったらイベントログにnview_infoのエラーが大量に。調べてみるとここのブログでnViewの「nView Desktop Manager」を無効にするとよいというのを教えてもらった。デュアルディスプレイにしてから「nView Desktop Manager」は便利に使っていたのでちょっと残念。無効にしてみると、今まで起きていたVisual Studioが(たまに)ハングする。 デバッグしているときに起動時のアクティブウィンドウが別ウィンドウになる。 が直った。nViewを最新にすると直るかもしれないが、同じような現象にあった人はお試しあれ。あとVisual Studioからデバッグでアプリケーションを立ち上げていると、winshotのコントロール/クライアントのキャプチャが異様に遅い。 これはなんでだろ。

【Visual Studio 2005】プロジェクト データソースを削除する

「プロジェクト データ ソースを追加」はDataSourceプロパティから実行できるけど、いらなくなったプロジェクトデータソースを削除する方法。プロジェクト → すべてのファイルを表示ソリューションエクスプローラのMyProjectの下にDataSourcesが出てくるので、それを右クリック→削除でOK.

長野・松本へ

昨日は休みをもらって親戚の葬式で松本まで行ってきました。長野は天気がよかったですが、やはり雪が残っていて今年初の雪を踏みしめました。(積もっているわけではなかったけど、山になっているのに足跡をつけてきた)何年かぶりに会う同年代の親戚とか、もう思い出の彼方にいたので会っても誰だかわからず。忙しそうだったので特に話もできず、また落ち着いてから声をかけてみよう・・・。告別式では、弔辞(ちょうじ)で泣きそうに。形式ばった弔辞ではなく、本当に故人を想い、故人の残した短歌には優しさと人柄が伺えるような素晴らしいものでした。仕事は忙しいけれど、こういう行事に顔を出して話をするのも大事ですね。

【Subversion】TortoiseSVNでコミット時に自動でバージョン番号付与

Subversion + TortoiseSVNで開発、ファイル管理をしているときに、コミット時に自動でリビジョン番号、日時、ユーザ名を付与するための設定。TortoiseSVNをインストールしたあとにできる設定ファイルを編集。
C:\Documents and Settings\[ユーザ名]\Application Data\Subversion\config< 2011/05/27 Modified >
右Click → General → Editで開くことが出来る。[auto-props]
に次のように設定
* = svn:keywords=Id Date Author Rev URL
これだとバイナリファイルを壊してしまう可能性があるので、特定の拡張子だけに適用したい場合は*.php = svn:keywords=Id Date Author Rev URL
*.css = svn:keywords=Id Date Author Rev URL
*.js = svn:keywords=Id Date Author Rev URL
*.html = svn:keywords=Id Date Author Rev URLこれで
@version   svn:$Id:$
は、コミット時に
@version   svn:$Id: main.php 9437 2008-11-08 05:10:54Z suganuma $
のように変換される。すでにコミットしてあるファイルには反映されないみたいなので、既存ファイルに適用する場合は、削除→新規追加という作業が必要かも。

【Linux】RPMコマンドTipsメモ

よく使うRPMコマンドをメモ。<インストール、アンインストール># rpm –Uvh hoge.rpmオプション-iパッケージをインストール-hインストールの進行状況を表示-v詳細情報を表示-U古いバージョンをアップグレードし、なければインストール-eパッケージの削除--nodeps依存関係を無視<パッケージの問い合せ>PHPの拡張モジュールの一覧を出力
# rpm –qa | grep php-オプション-a全てのインストール済みパッケージの問い合わせ-cパッケージと関連のある設定ファイルを表示-dパッケージに含まれているドキュメントのファイル名を表示-iパッケージの詳細情報を表示-lパッケージに含まれている全てのファイルを表示-pインストールされていないパッケージの問い合わせ-R指定したパッケージが依存しているファイルを表示名古屋でシステム開発

【携帯サイト】入力の初期モードを英字、数値に変更する

携帯サイトでIDなどを入力する場合、初期入力モードが漢字になっていて、いちいち入力モードを変更しないといけない場合がありますが、inputタグにistyle属性を設定すれば初期入力モードを指定できます。参考サイト。詳細はドコモのiモード対応HTMLタグ一覧で。一応メモのため引用istyle属性値入力モード1全角かな2半角カナ3英字4数字AuやSoftbankの携帯も最近はistyle属性に対応しているみたいなので、istyle属性だけで十分そう。ちなみにSoftbankの携帯向け開発サイトが新しくなっていたのでリンク。エミュレータや開発ツールなどが置いてあった。名古屋でPHP開発をするならエクスブリッジ

名古屋も物騒になったもんだ(うちの妹が襲われた)

そういえば11月中ごろにうちの妹が強姦(?)に襲われたことを書き忘れていた。いや、無事だったんだけど。マンションに入るときから後ろに誰かいる気配はあったらしくて、エレベータで8階まで上がるまでに犯人は階段で上ってきたらしい。誰か階段であがってくる気配がしたから、早く部屋に入ってドアを閉めたかったみたいだけど、ドアを閉め切る前に犯人がドアを押さえ「騒ぐな!騒いだら殺す」と一言。犯人の要求は持ってきたアイマスクをしろといってきたらしい。うちの妹はアイマスクをしたら終わりだと思ったらしく「分かった。分かったから落ち着いて。今、手が震えて・・・」と言い逃れをしつつ、後ろ手で携帯電話を使って誰かに連絡を取ろうとしたらしい。しばらく妹が動かないのを見て、犯人も何か怪しいのを感じて「お前何やっている!その携帯貸せ!!」と、ここから乱闘。妹も携帯を取られたら、どうしようもないと思ったらしく必死に抵抗。この辺の記憶はないらしい。乱闘後、犯人はあきらめて逃走。「アイマスクどこやったー!?」とアイマスクをちゃんと回収して逃げていったらしい。それから警察に電話して、事情聴取して私に連絡が来たのが次の日。乱闘したときにどこかで足を切ったぐらいで体は無事。だけど、精神的にやられているみたいで、あの部屋に戻れなくなっていて、雨だったり夜だったり後ろに誰かいるだけで、そのときの記憶がフラッシュバックして怖くなるので一人ではいられないみたい。親にも言われ、しょうがなく私の部屋でしばらく一緒に暮らすことに。それが去年まで。もう次の部屋を見つけ今年早々引越しをするので、また一人暮らし再開。まぁでも妹も気を使って、1週間に3、4回ぐらいしか帰ってこなかったけど。もっとひどい目にあった女の人も知っているし、精神的にきついかもしれないが、乗り越えて強くなってもらいたい。ちなみに犯人はまだ捕まっていない。前に住んでたところが女の人の一人暮らしが多かったみたいなので、警察の見解では「犯人は誰でもよかったんではないか?」らしい。名古屋も物騒になってきたので、一人暮らしの人は気をつけましょう。そして妹よ。私への借金がまた膨れ上がっているので、ちゃんと働いて返せよ。

【PHPExcel】シートをコピーして追加する

前の記事とかで紹介していたPHPExcel。今のバージョンは1.6.5Excelでテンプレートを用意しといて、件数が多くなった場合に現在のシートをコピーして別シートに追加しようと、その方法を調査したときのメモ。サンプルコード。$objSheet = $objPHPExcel->getActiveSheet();
$objSheet_copy = $objSheet->copy();
$objSheet_copy->setTitle("page2");
$objPHPExcel->addExternalSheet($objSheet_copy); Google先生に聞いてみてもサンプルコードがなかったので、ソースを解析してこの方法を発見。コピーしたシートに移動する場合は$objSheet = $objPHPExcel->getSheetByName("page2");$objSheet = $objPHPExcel->getSheet(1);を利用する。<2010/06/08 追記>バージョン1.7.3にバグがあってaddExternalSheetが動かない。普通にaddSheetをやれば大丈夫っぽい。$objSource = $this->sheet->copy();
$objSource->setTitle('source');
$objSource = $this->excel->addSheet($objSource, 0);
//コピー元は隠す
$objSource->setSheetState(PHPExcel_Worksheet::SHEETSTATE_HIDDEN);

デュアルディスプレイ

会社のディスプレイをデュアルディスプレイにしてもらった。すでに自宅のマシンはデュアルだったので、あの使い勝手を会社でも使えるのはうれしい。ただマシン自体は薄型だったので、LowProfile対応のビデオカードを買ってもらったのですが、これが本体部分はLowProfile対応しているけども、コネクタ部分が対応してない(普通に長い)ことが発覚。・・・しょうがなくコネクタ部分を分解して、むき出しの状態で接続。普通はLowProfile用のコネクタが付属しているみたい。一応できるから問題ないけど、ちょっとショック。

2009年仕事初め

ちょっと遅れましたが、明けましておめでとうございます。正月は実家でのんびり過ごすことができました。寒かったので、昼間はほとんどこたつで丸くなってましたが。夜は後輩、先輩、友達と恒例の飲み会。お互い近況を報告しあって、相変わらずな感じ。次帰れるのはゴールデンウィークかな。また1年しっかり成長しないと。