2004年05月18日

[PRB] Visual Studio .NET 上でソース管理を行うと Unicode ファイルおよび UTF-8 ファイルが破損することがある 【 Developer 】

842037 - [PRB] Visual Studio .NET 上でソース管理を行うと Unicode ファイルおよび UTF-8 ファイルが破損することがある

完全に見落としていたのですがこんな話があったのですね。特にデータベースプロジェクトでSQL Server相手にストアドプロシージャなんかを書いていると、これはUTF-8で記述されているので見事にこの事例に当てはまります。
またWEBプロジェクトでも、Web.configとかUTF-8なので注意が必要ですね。

2004年05月17日

ドメイン変更 【 WebLog 】

ドメイン変更しました。新しく http://www.szktech.jp/ というドメインになり、このBlogも http://www.szktech.jp/diary/ というURLに変わっていますのでどうぞよろしくです m(http://www.tankmage.com/spacer.gif)m

また、IIS6.0&ASP.NETでの実験サイトとして、 http://www.szktech.net/ というサイトも新たに立ち上げました。こちらは自宅のSBS2003サーバーですのでたまに落ちてることがありますが、ASP.NETベースの、.Textによるblog、FlexWiKiによるWiKi、ASP.NET ForumsによるForumなんかを立ち上げてますのでお暇な方は是非。それぞれのインストール記録はまた別途こちらのszktech.jpに挙げていきます。

IISTools 【 IT 】

IISToolShed.com Home

IISToolsというものがあるそうな。後で時間をとって見てみよう。

TechNet Virtual Lab 【 Microsoft 】

TechNet Virtual Lab

要するに、テストやデモに使えるものを提供しますよ、ということらしいです。開発やデモのみならず、勉強会や公衆でも使えるかもしれませんね。ちと時間をとって試してみます。

2004年05月14日

NewsGator 【 WebLog 】

NewsGator - the RSS news aggregator for Outlook

ためしに使って見てます。これ、OWAでも使えないかな。

Posted by suzukiworks at 11:13 | コメント (0) | トラックバック (0)

2004年05月13日

行列を入れ替えるSQL 【 Developer 】

問題:以下のテーブルAをテーブルBのように抽出するSQL文は?

テーブルA

IDdata1data2data3data4
1a1b1c1d1
2a2b2c2d2
3a3b3c3d3
4a4b4c4d4
5a5b5c5d5

テーブルB

12345
12345
a1a2a3a4a5
b1b2b3b4b5
c1c2c3c4c5
d1d2d3d4d5

Excelにコピーして(略 というのは無しの方向で。

Posted by suzukiworks at 21:20 | コメント (2) | トラックバック (0)

正解:
SELECT DISTINCT
CAST((SELECT T1.ID FROM TABLEA T1 WHERE ID='1') AS varchar) AS '1',
CAST((SELECT T1.ID FROM TABLEA T1 WHERE ID='2') AS varchar) AS '2',
CAST((SELECT T1.ID FROM TABLEA T1 WHERE ID='3') AS varchar) AS '3',
CAST((SELECT T1.ID FROM TABLEA T1 WHERE ID='4') AS varchar) AS '4',
CAST((SELECT T1.ID FROM TABLEA T1 WHERE ID='5') AS varchar) AS '5'
FROM TABLEA T
UNION ALL
SELECT DISTINCT
(SELECT T1.data1 FROM TABLEA T1 WHERE ID='1') ,
(SELECT T1.data1 FROM TABLEA T1 WHERE ID='2') ,
(SELECT T1.data1 FROM TABLEA T1 WHERE ID='3') ,
(SELECT T1.data1 FROM TABLEA T1 WHERE ID='4') ,
(SELECT T1.data1 FROM TABLEA T1 WHERE ID='5') ,
FROM TABLEA T
UNION ALL
SELECT DISTINCT
(SELECT T1.data2 FROM TABLEA T1 WHERE ID='1') ,
(SELECT T1.data2 FROM TABLEA T1 WHERE ID='2') ,
(SELECT T1.data2 FROM TABLEA T1 WHERE ID='3') ,
(SELECT T1.data2 FROM TABLEA T1 WHERE ID='4') ,
(SELECT T1.data2 FROM TABLEA T1 WHERE ID='5') ,
FROM TABLEA T
UNION ALL
SELECT DISTINCT
(SELECT T1.data3 FROM TABLEA T1 WHERE ID='1') ,
(SELECT T1.data3 FROM TABLEA T1 WHERE ID='2') ,
(SELECT T1.data3 FROM TABLEA T1 WHERE ID='3') ,
(SELECT T1.data3 FROM TABLEA T1 WHERE ID='4') ,
(SELECT T1.data3 FROM TABLEA T1 WHERE ID='5') ,
FROM TABLEA T
UNION ALL
SELECT DISTINCT
(SELECT T1.data4 FROM TABLEA T1 WHERE ID='1') ,
(SELECT T1.data4 FROM TABLEA T1 WHERE ID='2') ,
(SELECT T1.data4 FROM TABLEA T1 WHERE ID='3') ,
(SELECT T1.data4 FROM TABLEA T1 WHERE ID='4') ,
(SELECT T1.data4 FROM TABLEA T1 WHERE ID='5') ,
FROM TABLEA T

UNION ALL と CAST が 肝かな

Posted by suzuki | 2004年05月14日 10:35.

って、一応正解だけどほんとにこれがBESTなのかな。
教えてえらい人(^^;

Posted by suzuki | 2004年05月14日 11:05.

WinFormから外部EXEを起動 【 Developer 】

WinFormから外部EXEを起動するとき、例えば以下のようにします。

条件:WinForm上に貼り付けられたButton1をClickするとNotePad.exeが立ち上がる

 コード例:VB.NET

 Imports System.Threading
 Imports System.Diagnostics
 ~中略~
    Friend WithEvents noteProcess As System.Diagnostics.Process
 ~中略~
        Me.noteProcess = New System.Diagnostics.Process
        Me.noteProcess.StartInfo.FileName = "notepad.exe"
        Me.noteProcess.SynchronizingObject = Me
 ~中略~
    Private Sub Button1_Click(ByVal sender As System.Object, _
                                          ByVal e As System.EventArgs) _
                                          Handles Button1.Click
        noteProcess.Start()
    End Sub

Visual Studioの入門書なんかみるとこんな感じでかかれていることが多いんですけど、別に別スレッドにする必要は無い場合はどうするんでしょうね。

Posted by suzukiworks at 16:36 | コメント (2) | トラックバック (0)

別プロセスで起動するなら、Process.Start(アプリ名)を
呼び出すだけでOK。
http://homepage3.nifty.com/dotnetfan/console/console16.html

外部EXEがマネージドなアプリケーションだったら、リフレクションを
利用して別スレッドで起動するとか、別AppDomainで起動するとか
同一AppDomainで起動するとかできる。
でも、マネージドじゃないアプリケーションは、別プロセスで
起動するしかできないんじゃないかな?

Posted by 小野@どっとねっとふぁん | 2004年05月13日 17:50.

ふーむ。
例えば業務系アプリをチームで開発しているとき、メインパネルから各種業務機能のフォームを呼び出すものを想定します。
このとき、各業務機能フォームを「単体EXE」として作成し、最終的にメインパネルのEXEからそれぞれの各業務機能EXEを呼び出すようにすれば開発が楽かなー、というのが発端。
それぞれをプロジェクトにしてソリューションでまとめて、ソースコードはVSSで管理して、というのが普通だとは思うのですが、案外、そうしたことについてのドキュメントやらケーススタディって無いんですよね。MicrosoftのVSSのページ見ても「?」だし。
いままで自分は「一人で開発一人でデバッグ一人でリリース一人で使用する」というとってもアローンな環境(笑)しか経験がないもんですから、.NET系の大規模開発をしているところはいったいどういう手法で取り組んでいるのかに興味があるのです。

先のVB.NETのプログラムも、どうしたらそういう開発で楽できるかなぁ、というのを考えてるときにふと思いついたプログラムをメモしたのでした。

Posted by suzuki | 2004年05月13日 18:36.

.NET アーキテクチャ センター 【 Developer 】

.NET アーキテクチャ センター

というのが公開されています。時間があったら(無いけど)見ておこう。

Posted by suzukiworks at 16:04 | コメント (0) | トラックバック (0)

IEEE 802.11 DSSS 無線機器における DoS の脆弱性 【 IT 】

IEEE 802.11 DSSS 無線機器における DoS の脆弱性

まあその。以前から「電子レンジをONしたら無線LANが切れた」とかいう話もあるくらい弱いものではあるわけで。
プロトコル依存してるので気をつけましょう、というくらいでしょうか。

Posted by suzukiworks at 10:30 | コメント (0) | トラックバック (0)

米国のサポート事情? 【 Diary 】

Good Customer Support? (by CalvinH)

なかなか苦労したみたいで。。。日本だと、ISP側の機器が更新/変更されるときは大概ユーザー向けにアナウンスされるものですが、向こうではそうではないんですかねぇ。

Posted by suzukiworks at 10:26 | コメント (0) | トラックバック (0)

2004年05月12日

自動車税 【 Diary 】

自動車税の季節になりました。もうすこし早く納付書が来てくれると予定が立てやすい(忘れない)んですけどなんとかなりませんかねぇ(^^;

ところで、自動車税を「銀行引き落とし」にできることって皆さんご存知ですか?各県税事務所などに用紙があるので、そこに記入して指定銀行等に持っていけば次年度から自動で引き落としになります。こういうサービスは便利ですので活用したいと思います。

Posted by suzukiworks at 23:02 | コメント (1) | トラックバック (0)

てか、サラリーマン的にはボーナス直前が締め切りってのがねぇ(w。
ゴールデンウィークもあるし~。

自動引き落としは口座残高がマイナスになりそうだ(w。

Posted by うに。 | 2004年05月13日 01:00.

2004年05月11日

How do you design new features for C#? 【 Developer 】

うにょうにょ日記 - How do you design new features for C#?

Channnel9 の Eric のインタビューが文字に起こされてます。必見。

Posted by suzukiworks at 21:41 | コメント (0) | トラックバック (0)

SELECT結果のn番目からn+m番目までを抽出 【 Developer 】

TというテーブルにFieldという順列のつけられる一意なデータを持つ列があったとして。

SELECT * FROM
(SELECT Count(*) AS NO FROM T AS T11,T AS T12
WHERE T12.Field <= T11.Field Group by T11.Field) AS T13
WHERE T13.NO Between 10 and 20 Order by T13.NO

これで、10番目から20番目のレコードを抽出できますがコスト高っ(w
#まぁ100件くらいならなんとか。。。

ちなみに、Pentium4 3.06GHz RAM 1GB Windows2000Pro SP4 SQL Dev SP3 、6万行のテーブル(インデックスなし)相手に大体30秒の実行時間がかかりました

またはこんな方法も

SELECT TOP 10 * FROM T
WHERE Field NOT IN (SELECT TOP 10 Field FROM T)
ORDER BY Field

こちらは、SELECT上位10を除いたSELECT結果から上位10個ということで、11番目から20番目を抽出することが出来ます。こっちのほうが素直かも。

Posted by suzukiworks at 13:14 | コメント (0) | トラックバック (0)

VAIO TypeX 【 IT 】

世間は新型VAIOの話で盛り上がってますが

VAIO TypeX

すっげぇ。。。そこいらのDVD/HDDレコーダーが裸足で逃げ出すスペックですね。。。

価格次第ですけどホスィ。。。
#予価はざっと100万くらい?

Posted by suzukiworks at 11:10 | コメント (1) | トラックバック (0)

すごいですよね!typeX!ディー○とか、どうメーカーのコクー○とか、もはやいらないのでは?予想は、50万!

Posted by トトロ | 2004年05月12日 23:18.

[HOWTO] Visual Studio .NET 2003 で初歩的な C アプリケーションを作成する方法 【 Developer 】

841226 - [HOWTO] Visual Studio .NET 2003 で初歩的な C アプリケーションを作成する方法

ことさらKBにするまでも無い内容だと思うのだけどどうなんだろう。確かに、基礎的CプログラムをVS.NETのIDEで書くのは抵抗があったりしますけどね。
「Cはviとgccでやらなければならない(瞳孔開」
というつもりもさらさら無いですが(^^;

Posted by suzukiworks at 10:20 | コメント (0) | トラックバック (0)

Visual C# .NET を使用して Web サイトにファイルをアップロードする方法 【 ASP.NET 】

816150 - Visual C# .NET を使用して Web サイトにファイルをアップロードする方法

machine.configでアップロードできるファイルの容量が制限されていることにも触れたほうがいいんじゃないかな、と思ったらちゃんと触れられてましたね。リンクで。

[PRB] HtmlInputFile サーバー コントロールを使用するとサイズの大きなファイルをアップロードできない

Posted by suzukiworks at 10:14 | コメント (0) | トラックバック (0)

末期的対応 【 PC Parts 】

某C社の新型キャプチャーボードのお話。

現行バージョン(のアプリとドライバ)のつくりが悪くて、再三バージョンアップしているのに直らないそうです(アー買わなくてよかった)。
しかし現在発売されているものには、さらにバージョンアップされているものが既に添付されているらしく、既存ユーザーが苦しんでいる不具合が悉く解消されているとのこと。
報告によれば、現在販売されているものに添付されているアプリ&ドライバの日付は、一月以上前のものだそうです。

で、某C社のサポートフォーラムでは
『既にバージョンアップ版があり、実際に製品に添付しているにもかかわらず、既存ユーザーに提供していないのはなぜか?』
ということで紛糾中です。まあ、ユーザーの声を代弁するなら「釣った魚には餌はやらねぇってかっ卍」というとことでしょうか。

サポートとマーケティングと開発の足並みがまったくそろっていない、会社として末期的症状になってしまったのでしょうか。

Posted by suzukiworks at 10:07 | コメント (0) | トラックバック (0)

2004年05月10日

新型VAIO U発表 【 IT 】

VAIO type U -Sony Style

なんじゃこりゃあああ!

やるな、SONY。。。

Posted by suzukiworks at 15:03 | コメント (1) | トラックバック (0)

んー。
やや心惹かれるものはありますが、OSが単に「Windows XP Professional」ってなってるところが…
TabletPC Editionじゃなくって、ソニーお得意の独自拡張なわけね(汗)

Posted by いしどう | 2004年05月10日 15:14.

Winny作者、逮捕へ 【 Social 】

「著作憲法違反幇助」の疑いでWinny作者が逮捕されるみたいですね。
このごり押しが通るということは、包丁を作ってるメーカは「殺人幇助」、自動車メーカは「安全運転義務違反幇助」で逮捕できるということになるんちゃうかな。

Posted by suzukiworks at 10:35 | コメント (1) | トラックバック (1)

http://www.asahi.com/national/update/0510/020.html

この「金子勇」なる47氏の発言ですが、うさんくせ。
なんか「逮捕されちまったし、こういっとこ」的匂いがします。

Posted by suzuki | 2004年05月11日 21:28.

2004年05月09日

Microsoft Active Server Pages Cookie Retrieval Issue 【 ASP.NET 】

Microsoft Active Server Pages Cookie Retrieval Issue

BugTraqに投稿されたものです。
要約すると、ASPのエンジンが特別なクッキー値を正しく取得できない場合があるので、それをつかれると、Webアプリケーションの公開したくない情報を外部にもらしてしまう恐れがあると言うことです。
詳しくはリンク先のページを見てもらうとして、私の個人的な感想では、この脆弱性(?)で機密情報を抜かれるようなWebアプリケーションの作り方そのものがどーなの?と言う気がします。
一応の回避策(この言い方もどうかな・・・)としては、IISが返すErrorメッセージをすべてカスタマイズするのが望ましいとなってますが、まあこれはそのとおりですね。デフォルトを返すのは何かとよろしくないことが多いですから。

Posted by suzukiworks at 23:57 | コメント (0) | トラックバック (0)

2004年05月08日

Microsoft Wireless Optical Desktop Elite Executive Edition 【 PC Parts 】

Microsoft Wireless Optical Desktop Elite Executive Edition を買っちゃいました。

キータッチは「カフカフ」という感じで若干クリック感に乏しいですが、パームレストが革張りでいい感じです。いままで自宅では史上最大とまで言われたMicrosoft Natural Keyboard Proをつかっていたので若干まだキータッチに違和感が有りますが、いろいろと便利なキーがついているので、慣れたらいい感じになりそうです。

Posted by suzukiworks at 23:00 | コメント (0) | トラックバック (0)

買取 【 PC Parts 】

買取サービスってありますよね。んで、よく行くPC屋が買い取りサービスをやっていたので、そこに使わなくなったCRTモニタと、ものは試しとVAIO U3/Pを持ち込んで見ました。CRTモニタの方は、普通に処分するとお金がかかるものなのですが、なんと古いCRTモニタにも関わらず値段がついたのでそのまま売却しました(^^;
ただ、VAIO U3/Pに関してなんですが、これはSonyStyleモデルなので、"ビジネスモデル"扱いになるそうで、いわゆる「カスタマイズモデル」にあたるから引き取れないそうです。なので、VAIO U3/PなどのSonyStyleモデルのような一般的に店頭で手に入らないものに関してはこうした一般的なお店での買い取りは難しいとのこと。買取専門店とかちょっとマニアックな店ならOKなんでしょうけどね。
まあ、とりあえずそういうことがわかっただけでも良しとしましょう。さ、再インストールして環境作りなおそ(売る気なかったんかい。

Posted by suzukiworks at 22:00 | コメント (0) | トラックバック (0)

2004年05月07日

システム構成検討 【 IT 】


The Internet-------------[www.********.jp]
      |
      +---------------------------+
      |                           |
NTT IP Network                    |
      |                           |
      |       [External]          |
   B flets                     Yahoo!BB
      |                           |
      |GIP-A                      |GIP-B
===BBRouter====================BBRouter===
      |LIP-A                      |LIP-B
      |       [Internal]          |
      |                           |
      +--------+--------+---------+
      |        |        |
      |        |        |
    WinSV    WorkPC   NotePC
[www.********.net]

[NAT]
GIP-A:53/TCP -> WinSV:53/TCP
GIP-A:53/UDP -> WinSV:53/UDP
GIP-A:80/TCP -> WinSV:80/TCP

多少無理があるか。肝はDNSをどうするか、ですな。

ええ、個人宅のネットワーク構成の一例ですが何か?

Posted by suzukiworks at 11:19 | コメント (0) | トラックバック (0)

2004年05月06日

ドメイン名調査不足による我が失態 【 Diary 】

いま、このサイトは「Suzukiworks」を名乗っていますが、実は既にこの名前は屋号として登録されていることに今日気がつきました・・・(;-;

以前、ドメインを登録するときにはちゃんと調べたんだけどなぁ。。。

というわけでまたしばらくしたらドメインを変えようと思います(先にとってた人に悪いし)。
まあ、こんな場末のサイトのドメイン名がころころ変わったところで私の財布の薄くなるだけで世界にはなんの影響も無いことでしょう。

#tankmage.com復活させろということなのかなぁ。。。

Posted by suzukiworks at 19:25 | コメント (3) | トラックバック (0)

devadmins.jpなんてどうでしょう。これならco.jpにも登録無いみたいだし。

けっして「デブ管理者」という意味ではないですけども(;-;

Posted by suzuki | 2004年05月06日 19:45.

SzkTech.jp(.co.jp/.ne.jp/.com)もあいてるなぁ。

Posted by suzuki | 2004年05月06日 20:06.

移行はいつ頃になります? それ次第でウチからのリンク変えときます。

Posted by YamaKen | 2004年05月12日 19:23.

某所のバックアップポリシー 【 IT 】

うちではこんなバックアップをしています。

まず、サーバーのHDD容量と同じ程度の容量を持つ外付けHDDを用意します。速度と安定度を重視するならIEEE1394接続のもの、可用性を重視するならUSB2.0接続のものを準備します。そして、それをサーバーに接続して認識させます。

次に、以下のバッチプログラムを作成し、保存します。例としてサーバーのDドライブにあるShareDataフォルダ(共有フォルダ)以下の全てのファイルを、外付けしたHDD(Gドライブ)に全て移すことにします。


XCOPY D:\ShareData G:\ShareData /d /e /i /c /k /h /X /Q /R /Y

詳しくはXCOPYのHELPを見てもらえばいいのですが、このバッチでは、今ある全てのファイル(サブフォルダ含む)のうち、更新されたものを、外付けHDDに単純にコピーしているだけです。これをタスクスケジューラで夜間に実行されるようにしておきます。
これを実行することにより、コピーを実行した時点の最新の状態を保持できるだけではなく、更新されなかった(削除されてしまったものを含む)ものも常に保持されます。
このバックアップの利点は、
1)単純なXCOPYなので、ファイルを復旧させたいときはエクスプローラなどで簡単に戻せる。
2)ファイルサーバーが壊れてしまったとき、外付けHDDを別のマシンに取り付けて共有させておけば一時凌ぎができる。
3)ファイルサーバーから消してしまっても外付けHDDには残っているので、消したことを後からきづいてもなんとかなる
ということになります。恒久的な本来の意味でのバックアップは、DATやDLTなどに取っておき、それを遠隔地に輸送するという運用が望ましいのですが、これは昨今の巨大ストレージを持つファイルサーバーに対しては、大変大きなコストがかかります。そこで、日々(Daily)のバックアップはこの方式で、月次(Monthly)のバックアップはテープデバイスというように運用をわけることで、コストと手間を削減することが可能です。
このバックアップ方法で使用する外付けHDDはファイルサーバーよりも容量の多いHDDを用意しなければなりませんが、非常に手軽に運用できますので、バックアップに悩んでいる管理者の方は一度検討してみてはいかがでしょうか。色々なドキュメントや作業用ファイルを入れているファイルサーバー程度であればこれで十分間に合うのかと思います。
#データベースサーバーの場合はまたちょっと違うかも、ですが。

バックアップは転ばぬ先の杖ということでシステム管理者の仕事としてはトッププライオリティである重要な仕事ですのでいざというときユーザーに迷惑をかけないように慎重に検討することをお勧めします。

Posted by suzukiworks at 10:43 | コメント (2) | トラックバック (0)

同様のハードウェア構成で、うちでは RealSyncという
フリーソフトを使用してバックアップとらせてます。
http://www.takenet.or.jp/~ryuuji/realsync/)

コマンドラインオプションに、-r -mをつけて、
タスクで毎日午前3時に実行するように設定。

XCOPYコマンドも考えたのですが、将来的に運用を自分の手から
投げ出すため、設定のやり方とかこっちの方が分かりやすいかなと。
また、コピーログも日付ごとに作ってくれていい感じです。

ご参考まで。

Posted by kuzurin | 2004年05月07日 09:01.

ほほう。これはいい感じですねぇ。

実際うちでは、上記のDOSバッチプログラムを、VBScriptで書いたプログラムからキックしています。そのVBScriptでは上記DOSバッチプログラムの実行のほかに、日付入りLogファイルの作成、動作完了後のメール送信(おわったでぇ~の確認のため)までやらせていますです。

Posted by suzuki | 2004年05月07日 09:51.

連休明け 【 Diary 】

大型連休((c)NHK)も昨日で終わり。今日から仕事始めの方も多いのではないでしょうか。といっても今日明日出勤したらすぐ土日なのでエンジンがなかなか温まらなかったりするのですが。
連休明けというと、システム管理者的にはいろいろとトラブルが多いものです。連休中自宅や出張先に持っていったNotePCがウィルスやワームに感染してしまい、それを社内LANにそのまま接続してしまってお祭り騒ぎになってしまったり、連休出勤した人が大事なファイルを消して大騒ぎしたりと。特にこの連休中はSasserワームが大流行していたので気をつけたいものですね。
私的には、私のメールアドレスを騙って大量にSPAMを発射したフランスのやつがいたので、そのあおりを食ってメールボックスがパンクしかけました。実業務にさしさわりが出たので、損害賠償請求でもしたろかとも思ったのですが、相手がフランス(EU)だと国際訴訟?になるので面倒なことこの上なし、ということでやむ無く放置。幸い、Outlook2003だと7割くらい"迷惑メール"としてくれるのでだいぶ楽なんですけどね。
さて、連休ですっかりしわの無くなった脳にカツをいれないと。

Posted by suzukiworks at 10:18 | コメント (0) | トラックバック (0)

Suzukiworks.jp News

tankmage.com v 4_3