2010年6月28日

WindowsCE+Silverlight+C++=死亡フラグ立った

WindowsCEにて開発を命ず(但し、既存業務はそのまま)
・・・ちょっとまてー!

はい、開発環境を作りましょうか。
WindowsCE+Silverlightの開発に必要なのは以下のモノたちのようです。

VisualStudio2005
WindowsCE6.0R3
ExpressionBlend

VisualStudioは2005でないとダメなようです。
PlatformBuilderが動かないんですって(ノ◇≦。)

http://social.msdn.microsoft.com/Forums/ja-JP/windowsceja/thread/4cfe7c16-7e1b-4246-9e8e-bb4003e22199
↑のサイトで2008でも動かせるんじゃない?ってありますが、
ドつぼにはまりそうなので回避します。興味のある人頑張ってく( ̄Д ̄)ノ

さて、インストールをするわけですが、
WindowsCE6.0の開発評価版は計4つのファイルを必要とするみたい。
(あと、試用版のライセンス取得も必要みたいです)

まずは、
WindowsCE6.0
そして
WindowsCE6.0SP1
その後
WindowsCE6.0R2
最後に
WindowsCE6.0R3

あー、長い。。。
数分間お待ちくださいのダイアログに1時間待たされるとは
(Microsoftと貧PGの会社は相対性理論的に時間の進みが異なるようです)

・・・待つこと1時間

さあ、続いてはSilverlightのインストールですね。
取り敢えず必須はこちら

SilverlightTools(バージョンは2だそうです)
Expression Blend2(まあ、取り敢えずは試用版で)

さあ、インストールしましょうか♪
とちょっと待ったそこの奥さん!ΣΣΣ(/゜□゜)/
今一度あなたのコンピュータ君にSilverlightがインストールされていないか再チェックです!

特に。ランタイム。
これ入ってるとSilverlightToolsインストール中に
「イベントログがいっぱいです」
ってエラーが出ます。
これで2時間潰しました・・・(≡д≡)

さあ、インストールが終わったところで公共交通機関がなくなりそうです。
続きは次回・・・

2010年6月14日

「win64_11gR2_database」あれ?インストールできない・・・

Oracleの11gR2が会社のサーバに転がっていた。
多分上の方の人が手に入れてきたんだと思う。

見つけてしまったのでインストールして動作を確認しなくてはいけない(≡д≡)
※ゴミは見つけた人が片付けるのがルール
こうして思いもよらぬ落とし穴にはまっていく・・・

サーバー室よりお届けする♪
Oracle11gR2の簡単クッキング♪(食べるな危険)
さて、それじゃインストールをしてみましょう♪

今回犠牲となってくれるのはWindowsServer2008R2君です!
実験台としてわざわざHDD新しくしてみました。
(正確には会社から自由を手に入れた人のPCから略奪)

では、インストールです。

・・・
・・・・・・
・・・・・・・・・
ぼんっ(((((≪*****ぢゅどーん!!!*****≫)))))

あれ?インストールが途中で止まるんですけど・・・
えーっと。
「product\11.2.0\dbhome_1\owb\external\oc4j_applications\applications\WFMLRSVCApp.earが見つかりません」
え?なんで?
初回インストールでファイルがないとか訳不明なんだけど。
(訳不明「わけふめい」:訳分からないくらい意味不明の意。とにかく訳不明な現象の時に使われる)

仕方なく再インストールに挑戦。
材料をキレイな状態に戻して再挑戦!(要するにフォルダクリーンアップ)
Enterpriseで失敗したので、今度はStandardEditionを選択。

・・・ことこと
・・・・・・ぐつぐつ
・・・・・・・・・ぼこぼこ
ぼんっ(((((≪*****ぢゅどーん!!!*****≫)))))

えー、また同じエラー(/□≦、)
なんかインストールに凄い時間かかるのでもう半日経ちそうだよぅ

あぅー、仕方ない。再度材料をキレイに・・・
・・・ん?と気付いた。
サーバに転がっている二つのZIPファイルに。

え?二つ?
win64_11gR2_database_1of2/win64_11gR2_database_2of2
えー、まさかねー、そんなわけないよねー
と自分に言い聞かせながら二つのファイルを一箇所にまとめて解凍。

チーン♪
・・・上手くいきました。

二つのZIPファイル、両方とも「database」ってフォルダが中に入っているんですが、
一箇所にその中身をまとめておく必要があるようです。

なぜ一個にまとめない!Oracle!
もう弱い者いじめは勘弁してください。
他のDBに乗り換えちゃうぞっ♪
(だが当然そんな決定をする権限はない)

2010年6月11日

イメージの拡大と縮小処理

なにやらJPEG画像ファイルを縮小しなくてはいけない処理があるらしい。
拡大はないんですね、縮小オンリーなんですか?
→いえ、稀に拡大もありますよby客

こういう「稀に」っていうのは大抵頻繁にあるものです。お客さんの言葉は信用しちゃいけません。
妙に歪んだ縦横比の画像用意されたり、半月も経つと調子に乗ってバカバカ使うようになったりね。

でもまあ、拡大の方は楽です。説明が。
小さい画像でかくしたんだからそりゃ画質悪くなりますって!と
でも縮小は納得してくれない人多数発生(特にうちの上層部)。o><)o
小さくするだけなのになんでこんなギザギザした画像になるんだ!
とか
縮小なのになんでこんなに処理時間がかかるんだ!
とかね。

ぶっちゃけて言うと拡大より縮小の方がめんどいです。
エッジ強調とか粒子状のノイズとかも出ますから。
数式紙に書き出して叩きつけようと思ったり思わなかったりラジバンダ(ry

ってわけで
2パターンの縮小ロジックを作らされる羽目に(≡д≡)
速度と画質好きな方選んでください!と逃げたというのが本音♪
ま、こんなロジックになりました。

2010年6月10日

電子メール送ろうぜ!※但しJISに限る

電子メール送信をC#で行うと、自動で文字コードを設定してくれます。
これ便利なんですが、どうしても自動であることの欠点で化けたりする可能性もあるってことです。

「在」っていう字が「込」っていう字になって大騒動しました(^^ゞ
エンコード情報見る限りはJIS式になっているんですが、

?iso-2022-jp?Q?
という形式になっておりました。
ISO-2022-JP(つまりJIS)なんですが、Quoted-printableという形式だそうで、
一部の文字が化けてしまうようです(理由は知りません。調べてないので・・・)

化けないようにするためには
?iso-2022-jp?B?
の形式で送ると良いようです。

いつもお世話になっている
http://dobon.net/vb/dotnet/internet/smtpmailquotedprintable.html
の情報を頼りに7bit設定をするもうまくいかなかったので、
エンコードを手動で行うようにロジックを作ってみました。

2010年6月9日

Unicode対Shift-JIS

次週!Unicode対Shift-JIS!覇者はどっちだ!?(戦隊モノの次回予告風に)

というまでもなく、Shift-JISを使わざるを得ない仕様のものもあったりします。
いろんな連携ものがUnicode非対応だったりするしね。
ラインプリンタとかもありますし。

で、Windows7はそれはもう簡単にUnicodeが入力できちゃうんですよね、
文明の進歩ってすごいです
るねっさーんすJ◎-◎しΨ☆Ψ(´┏∀┓` )
古い。

Vistaからそうじゃん。とかXPだってIME2007とかで簡単に入力できるじゃんとかは気付かないふりで。m(_ _"m)ペコリ

結局のところUnicodeの入力をエラーにすればいいってことですから。
こんな感じのロジックになりました。

Unicodeの入力を禁止する。っていうかUnicodeがあったらエラーにするって感じです。


  1. byte[] compare_byte = System.Text.Encoding.GetEncoding(932).GetBytes(チェックする文字列);
  2. string compare_char = System.Text.Encoding.GetEncoding(932).GetString(compare_byte);
  3. if (チェックする文字列 != compare_char)
  4. {
  5.  //Shift-JISにない文字が使われているのでエラーリターン
  6. }

Shift-JISにない文字コードがあると、再びUnicodeに復元できないっていう不可逆的な現象を使っただけです
「?」などに化けてしまうので、Shift-JIS非対応文字が存在すると判断です。

Unicodeのまま使える環境が増えて欲しいです。ホント

2010年6月8日

新視力検査、じゃない深視力検査

中型以上の免許を取得する際には深視力検査というのを受けないといけないようです。

奥行きというか、立体感をちゃんと持ってるかの検査ってことでしょうか?
ただこれがずいぶん厄介でした(。-∀-)ノ

簡単に言えば3本の棒が揃ったらボタンを押す。
っていうことなんですが、棒までの距離が2mほどあります・・・

|||
   ↑
この真中の棒が延々と行ったり来たりを繰り返しているので、
横一列に揃ったらボタンを押して記録。
3回やって平均20mm以内になっていたらOKのようです。

で。この棒なんですが。箱の中に入れられて覗き窓から見ることになるので、
縦の長さを頼りに止めることができなくなっております(ノ∀`*)


初めてだっていうことで一回練習でやらしてもらった結果は
7mm・3mm・15mm
うん、イケそうですね

で、本番
2mm・26mm・17mm
・・・あれ?
もう一度やりましょうかと行ってくれたのでお言葉に甘えてもう一度。
「これはUFOキャッチャーだ、延々前後可能なアームだと思え」
と念じた結果
2mm・0mm・8mm

いよっし!つーか0mmキタコレ!
これまでUFOキャッチャーにうん万円かけてきただけの事はある( *^皿^)
(いや、たぶんコツを掴めばいいだけだと思います)

棒の移動速度はおそらく秒速2cmほど。
つまり横に揃う位置を中心とすると、前後計4cmで2秒間はボタンを押すチャンスが。
棒自体は20cm位の間を前後しているので、最悪計算によって求めることも(こら!)

深視力が不安な方、ぜひUFOキャッチャーで練習してください♪
景品も取れて一石二鳥・・・かも?

2010年6月7日

中型。というか元大型自動車

というわけで限定解除の教習です。

今回教習で乗る車は三菱ふそうのこちらのトラック
















写真で見るとなんか小さく感じますね(^-^ゞ

一応7.5mで総重量9.6tあるようです。
中型免許の新設前はこれが大型教習車だったのかな?

ちなみに大型車両は11mで総重量約20tだそうです(。-∀-)ノ
いや、大型の横に立つとなんか圧倒されましたよ。ほんと。

乗ってみて分かること。
眺めいいね♪
いつもコンパクトカーとか軽自動車だから視線の高さが新鮮です♪
横を走っている普通自動車の教習車両が小さく見えるんです(危ない)

まずは軽く操作の確認をしましたが、
さすがはディーゼル。なかなかエンストしないですね
発進時にアクセル踏んだら怒られました(-_-;)
アイドリングの状態のまま普通に発進できるんですね・・・

まあとりあえず初日は発進・停止・右左折をひたすら繰り返すっていう
車両感覚を身につけるだけで終わりましたね。

次回はS字とクランクに挑戦したいと思います。

2010年6月4日

限定モノは好きだが免許の限定表記はいらない

免許の更新通知が届いた。
一応優良講習ですむようなのだが、一点気になるのが

中型免許の限定表記(AT限定じゃないっすよ)
せっかく眼鏡等の表記がないので免許の条件欄は空欄にしたい…

なので。
ご入学です自動車学校!
義務教育以外でもっとも多くの人が通うと言っても過言ではないでしょう( ̄ー ̄)
こんなサイトも有るくらいですからね→運転免許予約センター


さて、今回は8t限定の解除だけで5時間乗れば良いので安さ重視。
というかほぼ安さオンリーで選びました。

無事5時間のストレートで卒業できるでしょうか?
…あ、卒業検定合わせたら6時間ですね(;^_^A

2010年6月2日

C#でSQLiteに繋いでみたい

普段お仕事で使っているのはOracleさんです。
でかいサーバに繋いでごっそりデータを取得することがメインです。

ただ・・・小回りが利きにくいです、私の使い方がおかしいだけかもしれませんが(*/∀\*)

それに個人で使うには大げさすぎるのが一番の問題点でしょうか?
無料で使えるXEバージョンもあるのですが、
DBインストールして容量確保してテーブルスペース作って・・・

てわけで。
SQLiteです!
無料で使えてうまくやればクライアントへインストールも不要!
Android系の携帯じゃ基本DBで使えるらしいですし(Android携帯持ってないので分かりませんが・・・)

ただ以前もちょっと試そうとして投げ出した記憶が・・・
当時はC#で動かすには結構面倒くさかったんですよね。

でもいろいろ読んでると
Google CodeにC#(というか.NET)に移植したバージョンがあるみたいですね。
http://code.google.com/p/csharp-sqlite/
(というか公式もDLLで配布してるので動かそうと思ったら動かせるはずですが)

いやー、素晴らしい(・∀・)
これで簡単なDBプログラムを自作出来そうです。

え?仕事で使うんじゃないのかって?
いやいや(´ω`)ノシ
頭の固い上層部に説明するのめんどいのでしばらくはひとりで遊びます
(ライセンスはCreative Commons 3.0 BYのようなので商用でも使えそうですが)
http://creativecommons.org/licenses/by/3.0/

とりあえず。時間見つけて弄ってみます

2010年6月1日

FTPでファイルを送りたい。てか受信もしたい。その前にログインしたい。

FTP接続時になぜか550エラーが出るので調べてみた



  1. public FtpWebRequest FTPWReq;
  2. public FtpWebResponse FTPWRes;
  3. public NetworkCredential FTPCredential;
  4. FTPCredential = new NetworkCredential(ユーザID, パスワード);
  5. FTPWReq = (FtpWebRequest)WebRequest.Create("ftp://" + FTPアドレス+ "/" + FTPホーム);
  6. FTPWReq.Credentials = FTPCredential;
  7. FTPWReq.Method = WebRequestMethods.Ftp.PrintWorkingDirectory;
  8. // 基本的に接続を維持する
  9. FTPWReq.KeepAlive = true;
  10. FTPWReq.UseBinary = false;
  11. FTPWReq.UsePassive = true;
  12. // 接続実行
  13. FTPWRes = (FtpWebResponse)FTPWReq.GetResponse();
と接続を実行するも550のエラーが御帰宅・・・