2008年8月14日木曜日

Excel:別シートのデータをリスト化する。

リストってありますね。
[データ]-[リスト]を選択すると、ポップアップでリストの内容設定できるやつが。

違うシートにあるデータをリスト化したかったんだけど、問題が
「あれ、別シート選択できないじゃない」

ということで調べたら、↓のやり方でできるみたいです。
http://www.eurus.dti.ne.jp/~yoneyama/Excel/n-kis.htm#list2

選択したいデータがどのシートにあるかかかわらず、
リストデータに名前を定義しておけば、
「設定」タブの「入力値の種類」で『リスト』を選択→「元の値」の欄に「=定義した名前」
で選択できるようになった。

2008年7月24日木曜日

海外ホテルの予約って

最近70%OFF!とか直前格安予約サイトがありますが、
最近いたった結論は以下のとおり。

結局、直接ホテルに電話して予約するのが早いし楽。

何でかって言うと

  1. BEST RATE OFFER:どこよりも安値をGuaranteeします!っていうホテルも結構ある。特に大手の系列ホテル。
  2. 細かい要望に対応してもらえる可能性大。:喫煙とか海側とかインターネットオプションつけるとか。
  3. 後払いでよし。:クレジットカードで確保しておいて、一日前までキャンセル代タダとか融通がより利く。

①のBest Rate Guaranteeは、ヨドバシカメラ形式?みたいに他のサイトで見たプロモーション名と金額を言うと、それよりいいOFFERがあります、なんて話しになったりする。

ということで、そのほうがいいような気がしてます。
ただ、そうは言っても金額比較のためにホテル予約サイトは非常に参考になります。

http://www.asiawebdirect.com/
Asia Web Direct。Promotionがいっぱい乗ってたり、ホテルの情報が見やすいので重宝。
http://www.agoda.jp/ひとつのホテルでいろんな予約サイトを比較してみると、ここが一番安いことが多い。

【番外編】http://www.jp.asiarooms.com/
AsiaRoom。何がすごいって自動翻訳された日本語がすごい。上のバーには、
「英語からの自動翻訳。元の満足の見るためにはここをかちりと鳴らしなさい」って(笑)

VISTA英語版の日本語表示

VISTA英語版をお客様のために購入。
日本語化をお願いされてチェックしていたわけで、
インストールは難なく(っていうかセッティングかえるだけ)終わったのだが、
なんか違和感が。

そう。IEなどで漢字を表示するとき、何かがおかしい。
理解はできるのだけど、まるで中国語表記だ。

セッティング変える方法があるのかと思い
ネットサーフィンしていたらこんな記事が。

Vista 英語版での漢字のフォント表示(フォントマッピング)について

これは、英語版(ENUのUI)で標準となっているのフォントのフォントマッピングでユニコードのCJK漢字領域については、中国語フォントが指定されているためだと思われます。(カタカナひらがなについては日本語フォントにマッピングされている)

らしいです。
そういえば、漢字は違和感あったけどひらがなカタカナはふつーだったな。

デフォルト中国語表記にしますからね!っていうのはつまり
MSから見て中国語>>>日本語なのね。
ま、ユーザ数から考えてもそうでしょうけど。

で、結局のところ、クライアントサイドから
この中国語みたいな漢字表記をなおす方法はいまだに見つかっておりません。

2008年7月16日水曜日

ファイル解凍ツール 7-zip

このツールを使うと.exeファイルを解体して包含されている
.iniファイルとかを確認することができます。
こんなファイル構成だったのね、と見ることができました。

なんでこんなファイル解凍ツールが必要になったかというと、
元をたどればある音楽をダウンロードしたかったため。
これには複数の障壁のあととてつもなくため息をつきたくなるストーリーが。

障壁①
それはMondo Grossoがどーしても聴きたい!と思ったのがきっかけでした。
いつものようにitunesで探してみると。。。ないよ。
ウェブで検索すると、Sony Musicレーベルだったのね。
だからitunesで提供されていなかったんでしょう。

調べると、Mora(Sony系列の音楽コンテンツ提供サービス。Itunes Storeと同義)
だと提供されている!
ということで早速ダウンロードしようとおもったら次の障壁。

障壁②
このMoraって、SonicStageというソニーが独自に出している
音楽アプリ上でしか使えない。
じゃぁSonicStageダウンロードしましょうかーとおもったら。。。
またもや障壁!(いったいなんなんだ。。。)

障壁③
このSonicStageはWindows日本語OSじゃないと
フィルタリングされてインストールエラーが表示される。
私が利用しているのはWindows XP Pro 英語版。引っかかりました。

なんて不親切なんだーと思ってまたネットで調べるとインストールできる裏技が公開されていた。
①7-zipをインストール
②Moraからインストールファイル(.exe)をダウンロード
③ダウンロードしたファイルを7-zipを利用して解凍
④すると.exeファイルに包含されていた.iniファイルが出現
⑤そのファイル内の言語設定をJapanese->Englishに修正してファイルを保存
⑥.exeファイルを起動
これでインストールできました。

こんな障壁を越えつつやっとSonicStageを起動して
Moraでお目当てのMondo Grossoをダウンロードしたら。。。

驚愕のソフト、SonicStage

ちょーーーーーーーーーーーー
ーーーーーーーーーーーーー
使いづらい。このSonicStageとやら。
なにが使いづらいって、
①ユーザーインターフェース
 自分が何をしているのか見失う。
 プレイリスト作るのも一苦労。
 Itunesのように左バーのサブメニューが機能していないので、
 いちいち上のタイトルバー押したり
 左のリンク押したり
 さらに上のMoraメニュー押したり
 あちこちボタンがあってカーソルも大忙しである。
 マイライブラリからMoraにどうやっても戻れない。

②購入したファイルのダウンロード
 購入したのにアルバムが上手くダウンロードされていない。
 わざわざ購入履歴を押していちいち1曲ずつダウンロードしないといけない。
 アルバムを購入した人の気持ちになって
 せめてチェックボックスで複数選択できるようにしてほしいものだ。
 っていうかそもそもなんで購入したアルバムを
 再度購入履歴からダウンロードしないといけないんだ?

③再ダウンロードしたファイルの情報(プロパティ)
 アルバム名が消えている。
 これじゃぁどのアルバムからの曲だかわからない。
 暗記しろってことか。

④CD作成操作
 どのボタンを押せばCDが作成されるのかわからない。
 結局上のツールバーのメニューの中からわざわざ探したぜよ。
 それより、何でCDに焼くときのプレイリストのタイトル名や
 アーティスト名を半角でいいのにわざわざ全角に変換されるのよ?

なにがどーなってこんなアプリでSonyがGoサインを出したのかわからない。
インターフェースもおしゃれとは程遠いし、使い勝手も悪い。
そのくせ局所でItunesのマネが見られる(Moraで利用されている「+」ボタンや家マーク)

書いてみると、ほんとうにすごいな、SonicStageって。

2008年7月10日木曜日

プロジェクト管理ツール

BaseCampというのが有名なようです。

①みんなでどこにいても管理・共有できて
②修正しやすい
③何がOngoingなのか明快
④つくりがシンプル
⑤エクセルみたいにカスタマイズできる
⑥複数プロジェクト横断で眺められる
って言うのがあったらいいな。

Basecamp
Basecamp (プロジェクト管理ツール) ←レビュー。比較していてわかりやすい
Zoho Projects (プロジェクト管理サービス) ←レビュー。比較していてわかりやすい

いろいろあるのね。でもやっぱりフリーを探しちゃうわ。

2008年7月7日月曜日

Excel: Weekday関数で曜日を表示

セルに入れた日にちに対して、曜日を表示する関数。

=IF(WEEKDAY(B7)=1,"Sun",IF(WEEKDAY(B7)=2,"Mon",IF(WEEKDAY(B7)=3,"Tue",IF(WEEKDAY(B7)=4,"Wed",IF(WEEKDAY(B7)=5,"Thu",IF(WEEKDAY(B7)=6,"Fri",IF(WEEKDAY(B7)=7,"Sat","")))))))

一個作ったらぴーっとコピー($B7)とか$はエクセルのレイアウトに任意でつけて。

#'B7'は日付の入っているセル

日曜なら1,月曜なら2...が返却される関数のようです。
ためしに=weekday(B7)だけを入れてみると、そのセルに返却値が1-7で表示されるのでわかります。

2008年7月2日水曜日

海外での開発:よく使う用語①

■DB
1. Retrieve データを取得する
2. SQL [シークル]と言う。なんとも言いにくい。SQL Server = シークルサーバー(笑)
3. Table A Related to Table B with Field C... テーブル同士のリレーションについて話す場合
4. Duplication データ重複

■試験
1. Scenario ご存知シナリオ
2. Test Script 試験項目
3. Test Environment 試験環境

■業務
1. Operation 業務
2. Migration 移行
3. UAT User Acceptance Test
4. Pilot Operation パイロット業務
5. Approval 承認
6. Requirement お客様の要件
7. Business Improvement/Enhancement 業務改善
8. 機能追加 System Enhancement(とお客さんには伝える)

■工程
1. RD Requirement Definition
2. DD Detail Design
3. Coding
4. Unit Test
...試験に関してはうちの会社のそのまんま

思い出したらまた。

Access: Access DBデータから固定長ファイルを作る

さて。今回のシステム開発で初体験だったのが、
「固定長ファイルでのImport/Exportファイルインターフェース」です。
固定長というところがはじめて。

上司には「さすが、時代。WEBアプリ開発に慣れてるからだねー」なんていわれました。

それはおいといて、開発において面倒くさいのが
「固定長ファイルのテストデータ(textファイル)を作成する」ことでした。

なんとかAccessでできないかなーと思ってついに実現
↓はExportファイルを作成するときの手法。

①DBテーブルをOracleからAccessDBにImport (テーブルAとする)
②ファイルフォーマットに従ったテーブルをAccess上に作成する (テーブルBとする)
 2-1 [テーブル]の[デザイン]をクリック
 2-2 各フィールドに固定長の長さ・データ型にあわせてデータ型、フィールドサイズを指定
 2-3 現在日付をデフォルト値にしたい場合は、データ型:日付/時刻型を選び、規定値:=Date()を入力
③追加クエリで②で作ったテーブルBに、テーブルAから①のデータを各々のフィールドに入れる。
 ※データすべてはいらないな場合は、ほしいデータをWhere句条件で絞る。
④データを選択クエリでフォーマットする。(選択クエリC)
 4-1 ③でデータを投入したテーブルBのすべてを選択するクエリを作る。
 4-2 一部データのフォーマットをしたいフィールドに関しては、Format()関数を利用する。
   ※例1 日付型でYYYYMMで出したい場合:F_Application month: Format([Application month],"yyyymm")
   ※例2 数値型で右0埋め、小数点第4位までほしい場合:F_Requested claim amount total: Format([Requested claim amount total],"00000000000000.0000")
⑤④で作成した選択クエリCをエクスポート
 5-1 クエリを右クリック→エクスポート(ファイル形式は.txt)
 5-2 ウィザードで固定長ファイルを選択
 5-3 ウィザード左下の[設定]ボタンをクリック
 5-4 ファイルエクスポート定義のウィザードが出るので、固定長ファイルの開始地点、長さが正しいことを確認(正しくなかったらそこで修正)
 5-5 保存を押下
 5-6 OKを押下

でエクスポート完了。

ちなみに、さらに複数こういうファイルがあって
いちいちエクスポート作業が面倒な場合は、マクロに入れちゃいましょう。

①マクロ→テキスト変換
②変換の種類を固定長エクスポート
③定義名で5で作成した定義名をプルダウンから選択
④テーブル名=4で作成した"選択クエリC"
⑤出力先をフルパスで指定して(ファイル名まで)
⑥フィールド名出力は任意。今回の場合はいいえ。

これでデータ投入マクロ→エクスポートマクロをあわせれば、
一気にデータができます。

どうやったら固定長ファイルが自力で作れるか、
もやもやとしていたのが、泥臭いけれども
なんとか解決

2008年6月26日木曜日

Excel: オートフィルタが動かない

たまにあります。容量の大きいファイルほど、フィルタリングがかからなくなるときがある。

症状
①逆三角のボタンを押しても何も反応がない
②オートフィルタを解除しようとしても、何も反応がない

いろいろネットサーフィンして探したけど、
見つからなかったので原因解明にはならないけど
私のとった対処法↓

①フィルタを仕掛けてある行(タイトル行)を行ごとコピーしてすぐ下(か上)に貼り付ける。
②もともとの動かない行を削除
③コピーして張り付けた新しいタイトル行にフィルタをつける。

原始的な策だが、これで大丈夫。

IT業界の大企業での生々しい話を5つほど

この人のブログは二日酔いでつらかった午前、
会社でGoogleに「二日酔い」と入れて検索してたら
トップに出てきたのでたどり着いた。

中でもこの記事が、書かれている「内部」の人間である私にも
気分が悪くなるほど?納得させられかつ印象に残っているので載せておく。↓

IT業界の大企業での生々しい話を5つほど
http://blog.livedoor.jp/lalha/archives/50156986.html

この人のブログは文章が読みやすく、咀嚼して書かれていて◎

何で「バター」不足なのよ?

最近日本ではバターが不足しているようだけど、
結局なんで「バター」で牛乳やチーズは問題ないんだ?
おなじ牛から出てるんでしょ!って思っていた。
そしたらこんな記事発見↓

生乳減産で大誤算 バター不足の内情
http://www.toyokeizai.net/business/industrial_info/detail/AC/3376d97de5d314f0e1fafd334855c1a1/page/1/

製造工場での生産調整ができず大量生乳廃棄したことにはじまり
需要のあるチーズへの生産シフトが進み
輸入バターに関しては牛といえばオーストラリア!の干ばつによる大規模な輸出規制。。。

これで儒給バランスが崩れて価格も高騰したわけなのね。

優先順位的に最下位なのね。
カヤバタートーストはおいしいのに。
じゃがバターはバターがないと成り立たないのに。
コロちゃんもバター大好きでおいしそうに舐めてたのに。

2008年6月24日火曜日

くそったれ社員

グーグルも実践中! 「くそったれ社員」排除で収益向上

http://diamond.jp/series/worldvoice/10011/


面白かったから載せる。
くそったれ社員のカテゴリー(笑)↓

①一時的に感情的になってひどい振る舞いをするテンポラリーアスホール
②筋金入りのサーティファイド(認定)アスホール

実際にどういうルールで各企業がその社員を
ASSHOLEとフィルタリングしてるのかにもっと言及してほしかった。

2008年6月20日金曜日

ろくでなしブルース

ヤン猫

きれいなジャイアン

きれい

都内の主要駅はドラクエのダンジョン(笑)

だって(笑)

面白いから乗せておこう。
確かに構内図見るとすごいよ、これ。


「渋谷駅がダンジョンのようだ」と話題に
http://www.itmedia.co.jp/news/articles/0806/20/news069.html

渋谷は見てくれだけ 本当にヤバイのは新宿駅です
http://scientificclub-run.net/index.php?UID=1213862243

テッチャン話ついでに。
昔新宿駅構内の案内として表示されていた文字:修悦体について。
http://trio4.at.infoseek.co.jp/life/
新宿ガムテープ道案内のこと(前編)
http://www.youtube.com/watch?v=_tm0tQWmjSc ←こちらはドキュメンタリー

Excel: シート名のをセルに表示する

ザ・庶務課 支払い管理簿と単票管理を楽にするために、以下のような管理エクセルを作りました。
マクロは不要。なぜならあんまりわからないから。

以下の体系でエクセルを作る。
①管理簿(1シート)
②単票シート(Nシート)

①で管理番号を採番し、タイトルや金額、誰に支払うか勘定科目コードを登録
②単票シートのシート名を管理番号と同じにする。
③シート名として登録された管理番号をキーとして、管理簿に記述してあるタイトル、金額、あて先、勘定科目コードをVlookup関数で参照しフォームの各セルに表示させる。

さて。ここで②から③の部分で問題になるのは、
Vlookup("①検索したい値","②検索範囲","何列目を表示するか",False(完全一致検索))
の①の部分!
もちろん検索したい値はこの場合、管理番号になるのだけど、
シート名をどうやって参照するのか。
そこで見つけたのはこの関数。
=MID(CELL("filename",$A$1),FIND("]",CELL("filename",$A$1))+1,31)

これで、ファイル名の]の次の文字列から31バイト(シート名の最大文字数)、
つまりシート名を切り取って任意のセルに表示してくれます。

そういえば、なぜエクセルのシート名の最大文字数が31なのか?
この理由は、なんとMid関数の制約と関係があるそうです。
 文字数をシート名の最大文字数31としているのは、MID関数の”開始位置” が文字列 の文字数より小さく、開始位置 と文字数の和が文字列の文字数を超える場合、開始位置から文字列の最後までの文字が返されるからです。

Mid関数やCell関数、シート名の参照については下記のウェブサイトが具体的。
http://www2.odn.ne.jp/excel/waza/sheet.html

とりあえず、これで楽チン管理簿&単票作成エクセル完成。
管理簿を参照することによって
①作る手間が省ける
②修正が必要なときに、管理簿を修正すれば単票も修正される

というメリットがあります。

Excel: 数値や金額を英語表記にするマクロ

現在庶務担当兼務ということで、月々の支払いの小切手を発行することが多い。
海外の小切手って、金額を数値で入れるのと同時に、英語表記で記入しないといけない。銀行が金額を確認するときに、英語表記のほうを正として処理するらしい。

How to Write a Cheque
http://www.kentdp.co.uk/Libraryitems/DPFORMS/writecheque.htm


で、英語もままならないし、間違ってはいけないし、毎回金額を英文に直すのも私の場合時間がかかる!なんか楽な方法ないのーとまたググるとこんなエクセルの素敵なマクロを発見。

Excel で数値を英語表記に変換する方法
http://support.microsoft.com/kb/213360/ja

ここに記述されているモジュールをエクセルを開いてモジュールとして登録。
さて。ここで。やはりデフォルトは”Dollar”記述なので、
これをローカライズしなければならない。
米: Dollar/Cent
マレーシア: Ringgit/Sen

まずはデフォルトのMSが提供しているモジュールを
コピー&ペーストで実行し、
セルにSpellnumber()で関数が処理されていることを確認したら、
モジュールシートをもう一度開き
999"Dollar"/99"Cent"の部分の記述を
"Ringgit"/"Cent"に一気に置換。

でローカライズOK。これは重宝しています。

これを実施すると、
2882.25 (RM)

のセルをSpellNumber(セル番号)で参照し、

"Two Thousand Eight Hundred Eighty Two Ringgit and Twenty Five Sen ONLY"

と表示されます。
#"ONLY"は日本でいう「~円也」といったところだろう。

こうやってモジュールとして登録すると、
個人のエクセルブックの世界でオリジナル関数がりようできるのですな。

にしても、日本だともう小切手なんて「は?」の世界だけど、
イギリスや旧植民地文化ではまだまだ小切手って運用されているのだなー。
ちなみに、支払いトランザクションの少ないうちの会社では、
給料も小切手支払いです。

Excel: この値だったら、セルの色を変える。

http://korokay-stakenote.blogspot.com/2008/06/excel-is.html
で条件付書式で[数式]-[Is関数] で返却されるTrueかFalseで色を判定するということをやってみたけど、もっとシンプルなものがあった。

どの値か絶対値を設定するやり方↓
数式が-"=IS($L120="4. Fix Complete")"
セルにの書式を選択。

これで、絶対値を参照してセルの色を判定したいときでもできることが判明。
結局()内の値をIs関数でTrue,Falseで返却しているという原理は変わらないけれど

2008年6月19日木曜日

リモートデスクトップでのコピー&ペースト

http://korokay-stakenote.blogspot.com/2008/06/sql.html
でSQLの整文から、なぜかクリップボードに興味が出てきて(すごいよ@ITの関連リンクは)
リモートデスクトップでのコピー&ペーストについて気になってきました。
というのも、日常の作業でリモートデスクトップ使用中だから。

私のPC利用状況
①2つノートPCがある。
②ひとつはLatitudeD630。最近会社で購入されたもので、ノートのくせにすごい重い。
③もうひとつはPanasonic CFW4。今まで3年間使ってきたノートで、メールはすべてこれで管理してきた。軽い。
④メールだけは休日帰宅したときも見れるように、Panasonicで管理したい。(Latitude重すぎ)

ということで、リモートデスクトップを利用中。
基本的には
①Latitudeをメインとして利用。
②メールだけPanasonicにリモート接続して操作。

で、このように利用しているわけだが、今↓のような問題が。
①基本Latitude→Panasonic間でコピー&ペーストができるが、たまにできなくなる。
②Latitudeが英語キーボード、Panasonicが日本語キーボードだからちょっと違う。
③しばらくリモート接続してたまにPanasonic自体を起動すると、音声が出ない。(なぜ?)

今回は①の理由にもなりそうな記事を発見。
リモート・デスクトップ接続でクリップボード共有を禁止する
http://www.atmarkit.co.jp/fwin2k/win2ktips/591rdclip/rdclip.html

こうやって管理できるのですね。
でもこの操作もしていないのに、なぜたまにできなくなって、たまにOKになるのか。
これはいまだに不明。

SQL文の整列(タダ)

現在SI試験中。SQLを証跡として取るのだが、乱れているので整列したいとおもいフリーソフトを探す。

結果、SQLFixというツールにたどり着く。
(いろいろあたったが、ダウンロードしようとしたら画面がフリーズしたり、インストールして起動してみたら何にも起こらなかったり。)

このSQLFixも.exeをたたいても何も起こらない。
ReadMeを読むとこんな記述が。

---------------------
[概要]クリップボードの中にあるSQL文をキーワード(SELECT等)毎に改行してくれます。
[使い方]クリップボードにSQL文をコピーし、SQLFixを起動します。その後クリップボードの中身をエディタ等に貼り付けて使用してください。付属のiniファイルをエディタで編集するとキーワードの設定ができます。また行コメント"--",ブロックコメント"/**/"に対応しています。

---------------------

そこでアクセスで作られたSQLをCtrl-Cして、
SQLFix.exeをたたく。
そしてエクセルにCtrl-Vしてみた。

すると、、、↓これが
-----
SELECT TEST_TEST.SY_INDEX_CODE, TEST_TEST.SY_INDEX_NAME_EN,TEST_TEST.SY_ITEM_CODE,TEST_TEST.PROD_CATEGORY, TEST_TEST.SYOJ_CD_FLD1_WRR,TEST_TEST.SYOJ_CD_FLD4_WRR,TEST_TEST.SYM_DEF_FLGFROM TEST_TEST LEFT JOIN TEST_TEST ON TEST_TEST.SY_INDEX_CODE =TEST_TEST.SY_INDEX_CODE;
----------

こうなった
------
SELECT TEST_TEST.SY_INDEX_CODE, TEST_TEST.SY_INDEX_NAME_EN, TEST_TEST.SY_ITEM_CODE, TEST_TEST.PROD_CATEGORY, TEST_TEST.SYOJ_CD_FLD1_WRR, TEST_TEST.SYOJ_CD_FLD4_WRR, TEST_TEST.SYM_DEF_FLGFROM TEST_TESTLEFT JOIN TEST_TESTON TEST_TEST.SY_INDEX_CODE = TEST_TEST.SY_INDEX_CODE;
-------

そういえば、クリップボードの中身ってどうなってるの?っていう疑問から、繋がって↓を発見
[START]-[RUN]でclipbrd.exeを実行。
そうすると中身が見えるClipBook Viewerなるものが表示された。
そこで、下記処理をやって前後のClipBookViewerをチェック。
①SQLを[Ctrl-C],
② SQLFix.exe実行
この①後と②後、中身が変わってるよ!地味にすげー。(すごくない?)

下は、更なるTips。ClipBrdについてもう少し言及。
①クリップボードの中身をのぞき見る方法
http://www.atmarkit.co.jp/fwin2k/win2ktips/103clipbook/103clipbook.html
②少ないメモリを無駄なく使う方法 ― クリップボードにある巨大なデータをクリアする ―
http://www.atmarkit.co.jp/fwin2k/win2ktips/102clipclear/102clipclear.html
②は、タイトルに興味を示し、観てみたけど結論が
クリップボードに転送されたデータは、次のデータが転送されるまでは残されたままになる。特別なツールでも用意しないかぎり、これをきれいにクリアする方法はない。しかし逆に言えば、次のデータを転送すれば、前のデータはメモリから削除されるので、原始的な方法でよければ、ほぼクリアするのと同等の措置を施すことができる。つまり、ごく小さなデータをわざとクリップボードに転送するのだ
と、いたくごもっともな結論で拍子抜け。そんなの当たり前じゃないか。

Excel: ブックの共有

[Excel]-[Tools]-[ブックの共有]をクリックするとそのファイルが共有ファイルになる。
なので、管理簿や同じネットワーク内にいる人すべてでファイルを共有できる。

メリット
①1つの管理簿をみんなで共有できる。それぞれが作業して後でマージする必要がない

デメリット
①同じ行を複数のユーザが処理してると、後勝ちなので気づいたら削除されてることもアリ。
②一部の機能が使えなくなる。(リストの設定、条件つき書式の設定等)

2008年6月17日火曜日

Excel: is関数のヘルプ

Is 関数ってTrue,Falseを返却するのですね。
行をすべて入力規則によって色を変えるときに参照しました。

管理簿の入力規則
◎ステータスがCompleteになったら行全体を色づけしたい。
  1. ステータスが”Complete"という文字列を持つとき、次の列のセルに数字0を入れる。
  2. 入力規則に 数式 =IsNumber($'0の入ったセル') でグレーの色を指定
  3. ひとつのセルでうまく言ったら、それをコピー→書式貼り付け

で行全体が色づけできました。

http://d.hatena.ne.jp/ogohnohito/20070210/p1

Excel:入力規則:行全体の色を変える

完了日付を設定したら、その行全体の色を変えたい時などhttp://shodai.hp.infoseek.co.jp/excel/knowhow_excel.html#008

Excel: Excelで「クリップボードを空にできません」というエラーが出るときのメモ

http://it.kndb.jp/entry/show/id/364

2008年6月15日日曜日

エコスポーツジムを提案したい

この車社会の運動不足から、ジムに通っているけど、
ジムに行くとすごい異様な雰囲気がある。

ダイエットしたい、肉をそぎおとしたい、マッチョになりたい、、、
そんな人々の欲望がすごいエネルギーになって発散されている。

このエネルギー、再利用できないの?

ランニングマシーン、エアロバイク、プッシュアップ器具、、、
全てがそのスポーツジムのエネルギーとして再利用される。

つまり、人が汗をかいてはしったりこいだりすればするほど、
その力で発電する。
電気も、エアコンも、ランニングマシーンについてるテレビも、
運動後の温水シャワーもサウナも、その再利用電力で動く。

エコエコってこんなに騒いでるんだから、
こんなビジネスモデルもいけるのでは?
本当に発電できるのかとか言う話は言及しないけど。

さらに、客を喜ばせるためには、↓見たいなサービスをつければ?
①客は発電登録カードを持っている。
②自分がどれだけ発電したのかを、器機を使うときに登録する機能を搭載
③自分が発電した量に対して、ポイント制でプレゼントなどを設ける。

久々に妄想した。

Apache,TomCat,Weblogicって結局何してるの?

1年目の開発のときからシステム構成としてお決まりで登場したApache,Weblogic・・
教えてもらったのは、

Webサーバ:Apache
APサーバ:Weblogic, Tomcat

といわれても結局イメージがわかない

Webサーバは複数スレッドで処理する
APサーバはDBにアクセスして処理したり、プログラムの処理をしている。。。

この2つを立てる構成に何のメリットがあるのか?

昨日の電話で話していたことから、
こんなたとえ話が一番理解しやすかった。

マクドナルドをたとえ話として利用。
①店舗はシステム全体
②お店に来るお客さんはユーザ(システムにリクエストを投げる)
③注文カウンターはWebサーバ
 *複数いる店員はスレッド
④キッチンはAPサーバ
 *フライヤーやベイカーはモジュール?

複数のカウンタースタッフが客からの注文を聞き、
オーダーをキッチンに投げる。
複数いるので、客の注文の負荷分散をしている。
肉を焼くモジュールや、パンを焼いたり目玉焼きを作るモジュールがある。
複数の処理を行った上で出来たハンバーガーをカウンターに出す。
カウンターの店員が注文の品を客に渡す。
ここで思わぬうまいたとえだったのは、
Webサーバは画像の処理など単純な処理はAPサーバに返さず自分で処理してしまうこと。
これは、カウンターの店員もジュースやポテトを揚げるなど
簡単に出来る作業はカウンターで処理してしまうことに例えられない??

しかし、ユーザ数も少ないシステムだったら、
わざわざこの2サーバの構成にする必要も無いのではないか?
それは、学校の購買部にたとえる。
購買部のおばちゃんが一人でくる学生の注文を処理する。
カウンタもバックエンドもこのおばちゃん一人。
なぜなら、複数スレッド化する必要も無いから。

たとえ話にすると、システム稼働率にあわせてこんな構成の結論が出るけど、
実際はどうなんでしょう?
知ってる人に教えてもらいたい。

システムの話だけだとさっぱりわからず
1年目からこんなもやもやをひきずっていたけど(はい、SE失格です)
たとえ話にするとけっこうすんなり入ってくるものだ。

#正確な処理、機能、特長とかはanother Story

2008年6月14日土曜日

DVD動画をipodに取り込む

お客さんにお願いされた一言。
「最近ipodnanoを娘がくれてさ。さて動画を入れようとしたんだけどどうしていいのかわからない。ipodで観たいDVDがあるんだけどどうすればいい?」

ということで、なぜか私がやることに。
以下、いろいろ調べた結果を記述。

DVD→ipodに取り込む必要条件ですが、最終的にはただ一つ。

DVDの動画ファイルをipod用にmpeg4形式にフォーマット変換する。

ということで、次に変換ソフト探しに入ったわけですが、
またなかなかたどり着かない。
DVDShrinkとかも試してみたけど、
最終的にはHandbrakeというフリーウェアが一番使いやすかった。

Handbrakeの魅力
①DVDからの一発mpeg4変換(いろいろな変換を咬ませる必要なし)
②字幕をどう処理するか、のオプションあり

あとは、mpeg4形式となったファイルをお客さんのPCのitunesにインポートしてもらう。
それ以降は普通のitunes→ipodの流れ。

ということで参考にしたリンク↓(図解でわかりやすい)
HandBrakeで字幕つきDVD/動画ムービーもiPod/iPhoneへ一発変換
http://www2k.biglobe.ne.jp/~t_muto/ipod/howto_video_handbrake.htm

#ちなみにお客さんの取り込みたかったはEric ClaptonのMTV Unpluggedでした。

Andre Agassi 1995 Nike Guerilla Tennis

うーん、かっこいい映像

2足立ち

こま。。

2008年6月13日金曜日

罰ゲーム

ジミーちゃん

Windows OS OEM版って何?

ずっと会社でmsdnライセンスだったからよくわかっていなかった。
ローカル社員のためにPCを購入時、購入仲介してもらうC社さんから質問が。
「OEMでいいですか?」
OEMって何ですか?というあほらしい質問をして「は?」という顔をされました。

WindowsXPの提供形態
http://arigato.web.infoseek.co.jp/pcjisaku/column040924.html
一般にOEMとはOriginal Equipment Manufacturing(あるいは Manufacturer)の略で、他社ブランドの製品を製造すること(もしくはそれを行う製造者のこと)を意味します。

そういえば、製造業でもそういうのあるな。
Daikinの製品を中国とかマレーシアの会社がDaikinブランドとして製造していたり。
MSの場合は、PC製造側がMSOSを搭載して自社製品として売るということ。

特徴
Windows XPのテクニカルサポートはマイクロソフト社ではなく、パソコンメーカーが行う。
当初プリインストールされていたパソコン以外のパソコンにインストールすることは許されていません。


で、これを調べていて思い出すのはVistaからXPへののダウングレードについて。
http://korokay-stakenote.blogspot.com/2008/06/windows-vista-edition.html 参照)
ダウングレード時の条件は、OEMの場合以下のようになるらしい。
・XPをインストールするディスクはどこからも提供されないので持っている必要がある
・何が起きても自己責任、サポート一切なし
・ドライバの存在や入手も全て自己責任。存在しない可能性もかなり大きい
↑を考えると、まずドライバ見つからないし、VISTAからXPのダウングレードなんてもーやってられない、、という感じがする。結局Vistaのままやることにしたけど。


補足

MS OEMについて
http://www.microsoft.com/japan/customer/oem/default.aspx

OEMかどうかの確認の仕方は

スタート ボタンをクリックして [マイコンピュータ] を右クリックし、さらに [プロパティ] をクリックします。[全般] タブの [使用者] の下に 20 桁の [プロダクト ID] (XXXXX-XXX-XXXXXXX-XXXXX) が表示されます。「OEM」という文字がプロダクト ID に含まれている場合は、OEM 版です。

らしいです。

DBのフィールド定義間違えてた!修正したいとき

環境: Windows XP pro Ver. 2002 SP2 英語版/ Oracle 10g

  1. コマンドプロンプトでSQL*Plusにログイン sqlplus Userid/Password@TNSName
  2. Alter Table ..Modifyを実行 ALTER TABLE table_name MODIFY ( col_name VARCHAR(10)) ;
  3. 参照先はこちら:ALTER TABLE (列の追加、変更、削除)

http://www.shift-the-oracle.com/sql/alter-table-column.html

SQL*Loaderの制御ファイルの注意点 Varchar, Char形の最大長

環境: Windows XP pro Ver. 2002 SP2 / Oracle 10g

現在SI試験に入るところ。
試験データとして、最大桁試験を行うため、
SQLLoaderでCSVファイルをアップロードすることに。

さて、ここで問題が発覚。
データ入れるときは1-2日は骨折りなことを覚悟しないといけないのね。

問題は
Varchar2(500)のデータがエラーで登録されないこと。
下記のようなエラーがログで吐き出される。
------
value used for ROWS parameter changed from 64 to 32Record 2: Rejected - Error on table schema.tablename, column ADDRESS.Field in data file exceeds maximum length
------

なぜかなぜかと調べていたら、制御ファイルの定義の問題だったことが発覚。
------
LOAD DATA
APPEND
INTO TABLE schema.tablename
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
(
ADDRESS CHAR,
....)
------
↑が問題だった。制御ファイルで上記のように指定していたため、
Char型定義での最大長255バイトしか受け付けられなかった。

っていうか、この制御ファイルのこの記述は、
Enterprise Managerで自動生成した制御ファイルのままじゃないか!

ややこしいこと、すなー!!
DB定義がVarchar型ならなぜVarchar定義で自動生成しないのか。。。
ということで、↓のように制御ファイルで定義すればおそらく問題ないでしょう。
まだ試してないけど。
------
LOAD DATA
APPEND
INTO TABLE schema.tablename
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
(
ADDRESS VARCHAR2,
....)
------

Windows Vista 英語版の日本語化 Editionの罠

PCモデル:Dell XPS M1330
http://www1.jp.dell.com/content/products/productdetails.aspx/xpsnb_m1330?c=jp&l=ja&s=dhs&cs=jpdhs1

Windows Vistaしか搭載していないモデルを購入してほしいとBossから指示アリ。
しかも、海外からの購入ということもあって、英語版のみしか入手不可。
確認するべき点は下記のとおり。
  1. XPを利用しているユーザとのファイル共有などの互換性は大丈夫?
  2. 遅いんじゃないの?
  3. Office 2003 は使える(1の問題に関連)?
  4. いっそのことXPにダウングレードはできるの?
  5. 日本語化はできる?

確認したところ、下記のことがわかった。

  1. Office2003はインストール可能らしい。ユーザとのファイル共有もOK
  2. 遅いかどうかは未確認
  3. XPにもダウングレード可能。でもボリュームライセンスでない限り、面倒くさそう。OEMだと論外か。
  4. http://itpro.nikkeibp.co.jp/article/COLUMN/20070829/280633/
  5. 日本語化もできる。
  6. http://nihongopc.us/faq/2007/02/windows_vista_ultimate.html

ということで、Vistaを購入。しかし問題が発覚。

これって、Vista Ultimate Editionじゃないと日本語設定ができないとのこと。

購入したのはBusiness Edition。おかげで、アップグレードを購入しなければならないことに。

超面倒くさい。そういうのははっきり明記してほしいよ。Microsoft。↓みたいな機能比較じゃこういう本当に知りたいところの比較がわかりにくいよ。

VistaEditionの比較

http://www.microsoft.com/japan/windows/products/windowsvista/editions/choose.mspx

ICMPパケットが大量に吐き出されています。

との連絡がオフィスを共有し、
ネットワーク管理を行ってくれているグループ会社のスタッフからアリ。
しかし、そのIPから該当されるPCってAdminスタッフが使っているため、なぜ?という感じだった。
結局なんでそんなことが起こっているのか原因も、
どうやったらICMPが大量に吐き出されるなんていう状況になるのか、
正直理解できていない。
PingやTracerouteでもこのICMPプロトコルを使っているんですね。
↑またSE失格発言

ネットワークの疎通を確認するには?
http://www.atmarkit.co.jp/fnetwork/netcom/netcom01/netcom01.html

ちなみに、UDP Floodパケットを吐いているとも言っておりました。
http://cowscorpion.com/word/Details/UDPflood.html

IPアドレスからホスト名を見つける方法

何回か利用したので、知っておくと便利と認定。
http://www.atmarkit.co.jp/fwin2k/win2ktips/087findhostname/087findhostname.html

コマンドプロンプトでOracleに接続、SQLLoader実行

環境: Windows XP pro Ver. 2002 SP2 英語版/ Oracle 10g

Enterprise Managerを開いて画面からSQLLoaderを実行する方法(http://korokay-stakenote.blogspot.com/2008/06/oracle-10g-enterprise-manager-sqlloader.html)を載せたが、
以下の部分が面倒くさくていらいら。

  1. 自前の制御ファイルを利用しようとすると、データファイルをOracleを入れているサーバ内に入れないといけない。(面倒くさい)
  2. 画面遷移が。。。遅い!(サーバのせい?)
  3. とにかく時間がかかる。(画面遷移とステータス確認と、間違えたときに前の画面に戻る行為)

ということで、コマンドプロンプトを使ってSQLLoaderを実行することにした。
必要条件はTNSが設定されていること。(http://korokay-stakenote.blogspot.com/2008/06/windowsoracle-odbc.html 参照)

  1. コマンドプロンプトで必要な制御ファイル、データファイルを格納しているフォルダに移動
  2. C:\Documents and Settings\Administrator>cd Desktop\TestData
  3. 以下のコマンドを入力
  4. sqlldr username/password@TNSName control = xxxxx.ctl log = yyyyy.log
  5. *1.ctlファイルは1で移動したフォルダにあること。
  6. *2.ctlファイルの中で、データファイル名を記述しておくこと
  7. ---------------------------------------
  8. LOAD DATA
  9. INFILE 'CUSTOMER.csv'
  10. APPEND
  11. INTO TABLE CUSTOMER
  12. FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
  13. ( NAME CHAR,
  14.   ADDRESS CHAR,...
  15. ---------------------------------------
  16. *3.logファイル名は任意で指定 log = yyyyy.log を宣言しないと、ログははかれない。
  17. ↓のようなプロセスが表示される
  18. -----------------------------------
  19. SQL*Loader: Release 10.2.0.1.0 - Production on 金 6月 13 09:29:08 2008
    Copyright (c) 1982, 2005, Oracle. All rights reserved.
    コミット・ポイントに達しました。 - 論理レコード件数1コミット・ポイントに達しました。 - 論理レコード件数2
  20. -----------------------------------
  21. 処理が終わると、ログファイルがフォルダに格納されている。↓
  22. -----------------------------------
  23. レコード1: 拒否されました。- 表WCR_DT_DTCでエラーが発生しました。ORA-00001: unique constraint (SYS_C008070) violated
    レコード2: 拒否されました。- 表WCR_DT_DTCでエラーが発生しました。ORA-00001: unique constraint (SYS_C008070) violated
    レコード3: 拒否されました。- 表WCR_DT_DTCでエラーが発生しました。ORA-00001: unique constraint (SYS_C008070) violated
    レコード4: 拒否されました。- 表WCR_DT_DTCでエラーが発生しました。ORA-00001: unique constraint (SYS_C008070) violated
    表WCR_DT_DTC: 2行のロードに成功しました。 4行はデータ・エラーのためロードされませんでした。 0行はWHEN句のエラーのためロードされませんでした。 0行はすべてのフィールドがNULLのためロードされませんでした。
  24. -------------------------------------

以下、コマンドプロンプトのほうが使いやすいと判断した理由

  1. Oracleサーバにリモートでつないでいる場合でも、自分のPCにおいているファイルでインポート処理が完結すること。
  2. 処理が早い。実行分を秀丸マクロとかで大量に作っておけば、処理は簡単。
  3. ファイルの修正もしやすい(1の理由に準拠)

5分でわかるERP

理屈のわからない私のようなものにはこのくらいの説明がちょうどいい。

5分で絶対にわかるERP
http://www.atmarkit.co.jp/im/cbp/special/five_erp/00.html

下のほうに5分でわかるシリーズが(笑)
他にもSox法と内部統制の違いがなどの説明アリ。

データ型:数値型の最大で苦戦する

Environment
Client:Windows XP pro Ver. 2002 SP2 英語版/
Server:Oracle 10g in windows Server2003 SP2

OracleでもSQL Serverでも、いつも数値型の小数部分がわからなくなるのでメモ。
データ定義文の中の
Number(4,1)はどこまで入るのか。

http://www.iceprobe.net/database/oracle/oraorasql/sql_datakata_number.php

答えは、今のところ999.9。
Number(a,b)だと
整数部分は a-b
小数部分はbと覚えるようにした。

あまり複雑な理論とかはよくわからないため。 

IE7で検索エンジンの追加

やはりデフォルト検索エンジンがMSNになっていて、使いづらいこと極まりなかったため、検索エンジンを追加。

以下3つを登録
  1. Google(デフォルト)
  2. Yahoo Malaysia(マレーシア情報の検索)
  3. Space ALC (入れてみたらできた)

登録方法は下記のとおり。

http://www.microsoft.com/windows/ie/searchguide/ja-jp/default.mspx?dcsref=http://runonce.msn.com/runonce2.aspx

画面の右側のオレンジの箱にインストラクションアリ。

Oracle 10g Enterprise Manager 画面からSQL*Loaderを使う

Environment
Client:Windows XP pro Ver. 2002 SP2 英語版/
Server:Oracle 10g in windows Server2003 SP2

Accessにデータを入れたはいいものの、Oracleとの互換性が悪すぎる。

CSVに吐き出してSQLloaderを使ってインポートすることにした。

参考にしたサイト↓

第7回:SQL*Loader にて従業員のデータをEMPLOYEES表に入力しよう

http://www.thinkit.co.jp/free/article/0707/9/7/

AccessでOracle接続

データベース・サーバのフロントエンドとしてAccessを利用する

http://www.atmarkit.co.jp/fwin2k/win2ktips/346dbaccess/dbaccess.html

WindowsからOracleアクセス-ODBC設定

Environment
Client:Windows XP pro Ver. 2002 SP2 英語版/
Server:Oracle 10g in windows Server2003 SP2

ODBCから接続する必要がある。

必要なもの
①Oracle10g ODBCドライバ
②TNS Nameの設定

手順
  1. Oracle Clientのインストール *1 オプションで管理者インストールをする
  2. インストール後、NetManagerを開く
  3. サービスネーミングを選択
  4. 右の「+」をクリック
  5. TNSネームを任意で作成
  6. サービス名=DB名→TCP/IP選択→ホスト名=DBをインストールしたコンピュータ名→ポート番号=デフォルト(1521)を設定
  7. 接続テスト *ユーザ名とパスワードをOracleで設定したものでテスト
  8. 接続テスト成功後、Windowsメニューから[Oracle10g_home]-[コンフィギュレーションおよび移行ツール]-[Microsoft ODBC Administrator]を選択
  9. [System DSN]タブを選択
  10. Addボタン押下
  11. Oracle Client 10g_home を選択後finishボタン押下
  12. データソース名:任意
  13. TNSサービス名:5で作成した名前をプルダウンから選択
  14. ユーザID=7で接続テストしたユーザ名
  15. [接続テスト]を押下
  16. パスワードを入力
  17. 接続テスト実施後、成功したらODBCユーザ作成完了