プログラミング
小さな便利
やっぱり年度始は大変。事務処理が山のごとくあってもうパニック。とにかく、総務・人事とこの季節は大変です。いつの間にか人事やら総務やらの仕事を手伝う事になります。で、ビックリ。そんなこと「手作業」してるの???って事ばっかり。そりゃ、忙しいはずだよ。時間がいくらあっても足りないよね。普及したといっても所詮、各人に一台ずつパソコンを支給しているってだけで使いこなしているワケじゃないんだものね。
windowsでディレクトリを走査するプログラムを書くには?
Windowsでabcディレクトリを走査して、拡張子xyzのファイルをすべてコンバートするスクリプトを書く必要があったのですが、こういう時Windowsならどうすればいいのかってちょっと迷った。UNIX系ならシェルで
for in `ls abc/*.xyz`
do
...(処理)...
done
と書くだろうけどWindowsのコマンドでこんなことするにはどうしたらいいのかなぁ。意外と単純なことができない自分に気がつきました。普段の自分の作業環境なら、cygwinもRubyもインストールされているので上記のスクリプトやRubyで
「データ」出力考
この一週間とういものMFCでエクセルを扱うのにかかりきりで自分のやろうと思っていたことは何もできませんでした。それにしても集計結果をエクセルで出力するなんてちょっといい加減にして欲しいというのが僕の本音なんすが、世間ではどうなんでしょうね?
そりゃエクセルは便利でMS製品の中では使いやすさピカ一とは思いますが、こちらとしてはそんなデータはcsvでチャチャっと出力してそれでオシマイにしたいです。実際のところ、編集の簡易さ(メモ帳で開いてチョチョイ)・処理速度(実際、エクセルに出力する時間や開発にかかる時間)・他ツールでの扱い易さ(awk/sed/grep/sort/Ruby/Perl...)を考えればテキストファイルとして出力するのがベストだと思うのですがやっぱりユーザサイドにそんなことを説明してもムダでとにかく「エクセルでお願い」といわれりゃやるしかないわけです。
小売りを生業とする会社のシステム部に転職して約三年、ここらあたりの空気の違いには慣れたハズなんですがまだまだですね。アチラは「自分の時間」を節約したいわけで、決して「開発工数」を減らそうだなどとは決して考えていません。だからCSVなんかで貰っても自分でエクセルに変換する手間がかかるばかりでちっとも嬉しくない。sortもgrepもある程度エクセル上でなんとかなるしRubyやPerlで云々なんてもう誰も聞いていない...というよりそれって何?の世界です。ユーザ部門に所属する以上、望むとおりの形式で出力するということは大切なのですが今ひとつスッキリしないのはデータを帳票のように出力して欲しいと言われることなんですよね。今回も事の発端は分析用のデータが欲しいということだったのですがそれがだんだんエクセルに出力して計算式まで設定しろってことになって。う〜ん、そのあたりはもしかしたらあなたの仕事なのでは?という疑問が僕の中にあるからなんです。
かつて、某ビールメーカーのシステムを構築した時に出力フォーマットをどうするかということを検討するなかで選択肢の一つとしてエクセルによる出力というのを提示したことがあったのですが、その時に「データは最終形式で出してくれるな。システムは必要となる項目について『素』の形で出力して欲しい。システムが出力したデータを分析・活用するのは我々の仕事です。我々の欲しい形式をすべてだせますか?帳票の類いを考えているならそんなもの要りません。」とユーザサイドに言われたことがあります。いやぁ、このときは感動しました。こういうことをサラっと言える人がプロなんでしょうね。「データ」を出力するのか?「帳票」を出力するのか?この違いは重要ですね。
業界今昔
今日は一日、Access VBAでwinな一日。なんか今更モードでした。
が、これも仕事、家族のため!致し方のないところす。
7~8年前でしたら、こういう仕事も喜んでVC++なんかでガリガリ書いたのでしょうが今となってはこういうレガシーな仕事はサッサと終わらせたい一心でAccess/VBA。(帳票を出力する場合レポート機能などは重宝します。これをVC++/MFCなんかでやったりした日にゃもう大変ですからね。)
今はなんといってもWebが中心の業界ですから技術者としては気乗りのしない仕事ではあるのですがまだまだ企業内にはこういうニーズも少なからずあって、またその事でいくばくかのお金をもらう以上、丁寧なコードを書くように心がけたいものです。
大仰なIDEにはもうウンザリ
RDBMS操作ツール決定打!? - EclipseからOracle/DB2/MySQL/PostgreSQLを操作なんとも便利そう。便利そうであるけれどきっと使わないだろうツールかな?正直、大仰なIDEにはもうウンザリしています。去年・一昨年と、eclipseを使ってjava+Strutsの案件を担当しましたがもう環境構築だけで半日くらいかるく潰れてしまうんですよね。もちろん環境は一度作り上げてしまえば、以降便利に使えますがそれでも覚えることが多すぎます。余りにも多機能・高機能すぎていつの間にかツールの使い方を覚える事の方が優先されてたりして。
Smultronエディタ
MacOSXでRubyコードを書くのにはSmultronを愛用しています。最初はターミナルでviしていたのですがやっぱり日本語の入力が気に入らなくて(表示だけできてもしかたないじゃん)使っていたのですが、Smultronにも少し問題があって、エンコーディングを自動判定にしておいても全然自動判定してくれないんですね。ずっとバグなのかなぁ?って疑問で昨日ドキュメントを調べてみようと思い立ちWebをのぞいてみるとソースが公開されていました。
で、ソースを見たらhtmlの"charset"とxmlの"encoding"、UTF8と16の判定しかしていませんでした。しかもこのどれかにマッチしない場合いきなりNSISOLatin1StringEncodingでencodingするんですね。ここのNSISOLatin1StringEncodingで失敗してはじめてNSString defaultCStringEncodingを使うみたい。僕の場合、MacOSXの時はUTF8でコードを書いて会社から持ち帰るコードやテスト用のデータなんかはSJISなので開くたびアラートがあがってエンコーディング設定を選択し直していたので非常に面倒です。で、変更しちゃいました。本来、自動判定しているコードに自分のよく使うShiftJISとかEUCJPとかを追加するべきなんでしょうがObjectiveCはあまりよく知らないしCocoaもちょっと自信がありませんので最後の部分でNSISOLatin1StringEncodingしているところをNSString defaultCStringEncodingに、アラート用のフラグもこのエンコードに失敗したときセットするよう変更しました。これで、めでたく会社から持ち帰りのRubyスクリプトの変更が楽になりました。あとは、会社のLINUX用スクリプトのEUCですかね。こちらはちゃんとコードを書かないとダメそうです。
しかし、2バイト文字文化圏のプログラマはかならずこういうしなくても良いような(?)苦労をさせられますね。UNICODEが登場しても解決しないというかむしろ複雑になっているような気がします...










最近のコメント
2 weeks 2 days ago
3 weeks 4 hours ago
3 weeks 6 days ago
3 weeks 6 days ago
6 weeks 6 days ago
6 weeks 6 days ago
13 weeks 21 hours ago
22 weeks 6 days ago
22 weeks 6 days ago
25 weeks 4 days ago