[Android] ギャラリーを強化する

JustPictures!
標準で入っているギャラリーは、確かにそれなりに便利である。ログインしているGoogleアカウントのPicasaウェブアルバムとリンクして自動的に表示してくれるし。

ただ、写真をPicasa意外にもアップしている場合にはこれだけでは力不足である。
そこで色々とアプリを探してみて行き着いたのがこれ。

Picasaだけではなく、FlickrやFacebook。Windows Liveの写真をもリンクさせることができる。操作も著感的ですぐに使いこなすことができるはずだ。もちろんメールで添付するときにも、このアプリ経由で写真を選択することができる。

[MySQL] 関数を使って取得した値をドロップダウンリストにバインドするとおかしい。

MySQL Connector/NET(v6.2.4.0) & Visual Studio 2008 (.NET Framework3.5)

MySQLのデータを取得しているのだが、MySQLのLEFT関数を使用して取得した値をドロップダウンリストにバインドしようとしたところByte型の値ということでおかしなことになってしまった。

select left(hogehoge, 4) from hoge
(出力結果)
2011

上記SQLを発行し、DataTableにデータを入れる。
DataTableのRowを確認するとByte型として値が返ってきていた。

詳しい原因は不明だが、SQL発行時に数値として明示的に型変換をすることで解決した。

select convert(left(hogehoge, 4), decimal) from hoge

なお、関数を使用せずに値をとってくる場合はそのままデータバインドできる。当然ではあるが。

[MySQL] バージョンを確認する

以下のコマンドを実行する。

select version()

[Evernote] Outlook2003から消す

Evernoteクライアントをインストールすると、Outlookに「Evernoteに追加」というアイコンが追加される。
Evernoteを活用しているのなら特に気にしないのだが、普通の消し方をしても次回起動時に復活しているという仕様のようだ。

これをインストールしているとOutlookの動作がおかしくなるという報告もあるようだが、クライアントツールを削除せずともOutlookから無効にすることができる。
[ツール] - [オプション] - [その他] - [詳細オプション]
COMアドオンにて、チェックボックスを外す(もしくは削除)。

心なしか、Outlookがキビキビ動くようになったような……。

まぁ、そもそもOutlookなんて使いたくないのだがね。

[デスクトップ] ゴミ箱の名前をいつでも変更できるようにする

1. レジストリエディタを開く(Windows + R → regedit)。

2. キーに移動する。
HKEY_CLASSES_ROOT\CLSID\{645FF040-5081-101B-9F08-00AA002F954E}\ShellFolder

3. 値の変更
Attributes 40 01 00 20 → 50 01 00 20
CallForAttributes → 削除

4. レジストリエディタを閉じる。

[Excel] 絶対参照


オートフィルで値をコピーする際に、数値が自動的に連番になってくれる機能がある。これは便利といえば便利なのだが、時に意図したようにコピーできないことがある。 こいつをコピーするためには「絶対参照」を使う。
自動的に変えて欲しくない部分を「$」で囲む。 F4キーを押下してもいい。
意図した通りのコピーができた。

[Googleドキュメント] google.comへのアクセスを試みています...

Firefoxで利用しているのだが、新しいデザインになってからよく止まる。
http://www.google.es/support/forum/p/docs/thread?tid=687c663497f7f798&hl=ja
サポート掲示板を見ると、どうやらChromeだと発生しないようだ。
解決策になっていない気がするが、まぁChromeで使えばいいのか。

[Google日本語入力] 単語登録のショートカットキーを設定

Google日本語入力で単語登録をしたい時、デフォルトではショートカットキーが用意されていないようだ。
オプションのキー設定を設定することでいつでも単語登録することができる。
モード:入力文字なし
入力キー:お好み
コマンド:単語登録を起動

Google日本語入力は概ね実用に堪えるようになっているが、特筆すべきは語彙だけであり、日本語表現としての変換精度はまだまだATOKには及ばないのが残念だなぁ。そのうち改善されそうだけど。

[Firefox7] 閉じるボタンで閉じない

WindowsXP SP3 & Firefox7.0.1

アドオン「Evernote Web Clipper」のバージョンが 5.0.0.201551 である場合、ウィンドウの閉じるボタンを押しても閉じない。アドオンを無効化するととりあえず直る。

ちなみに、閉じない場合でもFirefoxのメニューから「終了」をクリックすればウィンドウが閉じる。

Stay Hungry, Stay Foolish

スティーブ・ジョブズ氏が逝去した。 
残念ながら俺はApple製品を一つも持っていないし、iTunesも入れていない。 
しかしながらそんな自分も、そのニュースを聞いて衝撃を受けたというのは、やはりそれほどの偉人であったということであるのだろう。 

Appleといえば、今でこそiPhoneやiPadを始めとするモバイル端末で有名だが、 
自分の中ではやはりMacである。 


俺がPCを初めて買ってもらう当時。 
選択肢は、 

NEC PC-98 
DOS/V 
Macintosh 

の三つだった。 


当時のMacintoshはデザイナーやミュージシャンが使うブランド品というイメージがあった。値段も他のPCに比べると高かった記憶がある。 

Macintoshはブランドの一つだった。 

その後(詳しい話はここでは省くが)、スティーブ・ジョブズ氏がAppleに復帰したときに、iMacが登場した。 

iMacは親しみやすく、手軽に買えるMacだった。 
しかし、それは「シンプル」であり、「簡単」であり、「優れている」などといった、現在も引き継がれている思想が脈々と受け継がれていた。 


ところで、プロダクツを生み出す手法というのは、二種類のアプローチがあると個人的には思う。 
一つは世の中をよく観察し、それに適合したものを生み出すこと。 
もう一つは、自分の信じるものを生み出し、逆に世界を変えていくこと。 

Appleとジョブズ氏はよく後者に例えられるが、後者であっても世の中をよく観察して何が必要であるかを捉えなければ、それはただ奇抜なだけで終わってしまうと思う。 

自らの信じる道を貫くというのは、並大抵のことではない。 
しかし、それは彼自身も常々言っていた「Stay Hungry, Stay Foolish」に集約されている。 

結果的に評価されるべきプロダクツを生み出して世界から賞賛され、世界は変わったたわけだが。 

愚直に夢を追い続けることの大切さ。 

彼の一番の功績はまさに彼がその通りだったということだと、自分は思う。 

ご冥福をお祈りします。

[Ajax] ロード中にクルクルするやつ(笑)をコードだけで実現

CSS load.net
ちなみに、クルクルするやつはスピナーという。
対応ブラウザは以下のとおり。
  1. Firefox 5+
  2. Google Chrome
  3. Safari 4+
  4. Safari for IPhone
  5. Android 2+
  6. RIM OS6 web browser
  7. Other browsers with -webkit- prefix

XP + IE8で確認したら全く動作しなかったw

Windows Phone 7.5アプリ開発のためのメモ

.NET技術者だと、やはりこれが一番馴染みやすいと思う。
  1. Windows PhoneのアプリケーションプラットフォームはSilverlightである。
  2. 現在、無償の「Windows Phone SDK 7.1 RC」が提供されている。これには開発ツール一式のほか、エミュレータも含まれる。
  3. クラスライブラリのリファレンスマニュアルはMSDNに統合されている。ただ、現在のところ英語版のみ記載されているようだ。基本的には同じものだが、携帯独自のクラスが追加されていたりする。
  4. App Hub
    アプリケーションを配布するためには、App Hubのサブスクリプション(年間9,800円)が必要となる。また、Windows Phoneでは自分で開発したアプリを自分の端末に自由にインストール・実行できない。アンロックを行う必要があるようだが、これにも上記のサブスクリプションが必要となっている。

[SkyDrive] SDExplorerでエクスプローラにマウント!

SDExplorer
http://www.cloudstorageexplorer.com/

Microsoftが提供しているオンラインストレージサービス「Windows Live SkyDrive」。
25Gの容量が無料で利用できるありがたいサービスであるが、正直な話、ブラウザからの利用は使い勝手がいいとは思えない。

そこでエクスプローラにマウントできるツールがないか探してみたところ、GLADINET - Cloud Desktop というソフトがまっさきに浮かぶのだが、これは80番ポートを使用しているためにWebサーバを立てていると共存してしまう。

そこでSDExplorerである。
少し使っただけだが、これはいい。速度も問題なく、使い勝手も良い。
Cloud Desktopのように細かい設定などはできないよだが、とりあえず満足だ。

[IIS, Apache] Webサーバの共存

私はApacheに関してはお手軽なXAMPP Liteを愛用しているのだが、80番ポートを使うためIISと競合してしまう。これを変更するのは設定ファイルを書き換えれば良い。

■Web
\xampplite\apache\conf\httpd.conf
 47行目:Listen 80 → Listen 8080
181行目:ServerName localhost:80 → ServerName localhost:8080

※例として8080番に変更。行数は環境によっては異なるかもしれない。

■SSL
\xampplite\apache\conf\extra\httpd-ssl.conf
41行目:Listen 443 → Listen 444
80行目:<virtualhost _default_:443> → <virtualhost _default_:444>
83行目:ServerName localhost:443 → ServerName localhost:444
※443番→444番へ変更。


なお、ポート番号を変更した場合、「http://localhost/」だけでは80番ポートを使っているWebサーバのページに飛ぶ。このため、上記の例でいうと「http://localhost:8080/」 などでアクセスするようになる。

[Gladinet Cloud Desktop] ポート80番の罠

Gladinet Cloud Desktopは非常に便利だ。
クラウドのデータを意識せずにクライアントマシンで使用できるのには驚いた。

しかしこれ。 80番ポートを使うんだよね……。IISやApatcheとおもいっきりかぶる。 
free阪はポート変更できないが、まぁ、仕方がないか。

[C#] readonlyはswitch文のcaseラベルで使えない


C#で定数を定義する場合、readonlyとconstがある。
constで定義されているソースを読むことが多いのだが、Javaの人なんかはreadonlyで全部書いていたりする。で、このreadonlyなのだが、switch文を書く時にcaseラベルに使用できない。
厳密に言うとこれだけではなく違いがあるのだが、これはかなり痛い。

[Chrome] FlashBlockでFlashをブロック

Flashの広告は画像のそれよりも鬱陶しいと思うのだが、ChromeにもFlashをブロックできる拡張機能があった。

 FlashBlock for Chrome
http://www.chromeextensions.org/appearance-functioning/flashblock/v
ちなみにコレ。 オプション設定で「Block Microsoft SilverLight」にチェックを入れるとSilverLightまでブロックすることができる。

[ASP.NET] Enterキーでポストバックさせない

ページ内にテキストボックスとボタンがある画面でEnterキーを押下するとポストバックが発生する。これはボタンプロパティの UseSubmitBehavior がデフォルトで true であるという仕様であるからだ。
そのため、このプロパティを false に設定すればそのボタンのポストバックは発生しない。

<asp:button id="Button1" onclick="SubmitBtn_Click" runat="server" text="Submit" usesubmitbehavior="false">

[Firefox6] ダウングレード

やはり今回も以前投稿した方法でやるしかないようだ。Firefox5に戻すためには、3→4→5という手順を踏まなければならない。これはめんどくさい。 

Portable Editionも同じようなことになっているんだよね。
Mozilla Firefox, Portable Edition

ところで最近、Firefoxのことを真顔で「エフエフ」と言っているのを初めて聞いた。
Fire + Foxではなく、Firefoxなので「Fx」が正しいはずだが…。

こういうのは教えてあげるのが迷うところだが、
プロジェクト全体でそう言っているようなので放っておくしかないな。

[Blogger] 投稿できない


気づいたのだが、Bloggerに投稿できない。メンテ中なのかどうか知らないが、ずっとローディング状態になっている。

そこでこちらのサイトから投稿してみる。

Bloggerのベータ版というか、開発阪のようなサイトらしい。
こちらからなら投稿できるようだ。

UPSの再配達攻略法w

海外の通販等で荷物を送ってもらう時に、UPSが選択される時がある。

こう言ってはなんだが、使ったことがある方なら、間違いなく不満があったはずだ(笑)。
荷物の追跡情報を見ていると、海外から日本に持ってくる早さは問題ない。しかし国内に来た瞬間からサービスが一気に低下する(泣)。

・土日は配達しない
・時間指定ができない
・3回しか配送しない

平日勤めで一人暮らしの人は、まず受け取れない。

普通の感覚だと1回目の不在票が来たときにカスタマーサービスに連絡をすると思うのだが、それでは遅い。なぜなら、当日の変更はできないからだ。

大抵の場合は次回配送予定日が次の日になっており、その日のうちに変更をかけないと次の日も「不在」になって、配送チャンスがあと1回になるだけだw

だから追跡情報を確認するサイトでステータスをチェックしまくって、不在になったらその日のうちに電話してしまうのがいいと思う。もしくは、配送方法の変更をサイトから行う。

これらも18:30までというタイムリミットがあるので注意する。

また、カスタマーセンターも自動受付になっていて、「不在票について」ではなく、「その他のお問い合わせ」を選ばないとオペレータは出ない…。「InfoNoticeナンバー」を忘れずに。

時間指定や土日の配送はヤマトに委託している。
これだと夜間の19時-20時、20時-21時指定もできるので受け取ることができるはずだ。

何気に使っている日本の配送業者のサービスが極上であることを実感する。
すごいよね。大変だろうけど。

[SSD] インテル Data Migration Softwareでパーティションを切ったドライブをコピーする

SSDに置換してみた。
intelのドライブにしたのだが、ご丁寧なことにインテルはハードディスクをイメージごとコピーするツール(Data Migration Software)を提供している。
true imageの機能制限版のようだが、基本的には簡単操作で今の環境を丸ごとSSDに移行させることができるだろう。

ただ、HDDをパーティションを切ってCドライブ(システム)を入れている場合は、うまくコピーできないことがある。1TのHDDをCドライブとDドライブに分けて使っているような場合だ。

おそらくだが、コピー先のSSDがコピー元よりも大きければ、パーティションを切っていても問題はないと思う。この場合は、コピーしたいドライブではないパーテション領域のデータを削除することでコピーできるようになる。

例えば...

移行元HDD: 1T → 移行先SSD: 128G
C:\ 128G
D:\ 872G
※Dドライブのデータを削除するかパーテションを削除することでコピー可能。

移行元HDD: 128G → 移行先SSD: 300G
C:\ 100G
D:\ 28G
※問題なし


なお、Data Migration Softwareをインストールした環境に「True Image Home 2010」体験版をインストールしようとしたらできなかった。
この二つは競合するのかもしれない。


ちなみに。
パーティションは「EASEUS Partition Manager」のHome Editionを使わせてもらった。フリーウェアだが直感的に作業できる。

Windows&ASP.NET が使える国内のレンタルサーバを使ってみた感想

法人向けはともかく、個人向けのASP.NETレンタルサーバというのは国内ではかなりの少数派。自分も何社か使ってみたのだが、その時の感想をメモっておく。独断と偏見であることをお断りしておく。


【アイル Infinito (インフィニート)】
使用期間:3年

無停止に関しては疑問。停止したことがある。
あとでフォローが郵送で送られてきたが。

とにかく書類を送付してくる。そういう信頼性は高い。
信頼性重視の人にはオススメ。

あと、常にキャンペーンをやっているのが気になる。
途中で安い方にプラン変更等は基本できないらしい。自分はしてもらったけれど。

パフォーマンスはちょっと気になるレベル。契約者が多いということだろう。

[Good]
・メールでIMAPが使える
・メールサポートの応答は早い。ただ、システムやプログラムに突っ込んだ部分の質問は電話だと厳しい。

[Bad]
・今どき「ASP.NET2.0」というのは厳しすぎる。
・パフォーマンスが気になる。


【ActiiveWeb】
使用期間:1年

技術的な質問をしたときの対応が良かった。エラーログを調べてくれたし、それで解決することができた。
値段とパフォマンスのバランスが良いので、わりとオススメ。


[Good]
 ・サポート。
 ・SQLServerがついてくる。
 ・月毎のカード払いにも対応している。

[Bad]
 ・今のところ不満はないなぁ。


【ExpressWeb】
使用期間:半年

ここも低価格を売りにしているが、内容もかなりしっかりしている。
いい意味で期待を裏切られたw
サポートに設定情報や技術的な事などが網羅されていて良い。

[Good]
 ・ASP.NET4.0でこの値段は驚異w
 ・応答の早さ。すぐに開通する。

[Bad]
 ・今のところ不満はないなぁ。


[番外]
【ドサバ | カゴヤ】
使用期間:2年

現在はASP.NETのレンタルサービスは行っていない。
品質には不満はなく、値段が安いのがよかった。
しかし、ASP.NETでのアプリの設定(DB接続等)などの情報が少なすぎ。もう少しそのあたりを充実して欲しかったなぁ……。

[ASP.NET] このコンテキストでセッション状態は利用できません。

Session関係のエラーかと思ってみたら、単に静的コンテンツ(画像)が存在しないだけだった。
そういうエラーも拾うのね。

[TortoiseSVN] 日本語化できない



TortoiseSVNは非常に便利なのだが、
バージョンアップさせたときに日本語化できなくてハマった。

プログラム自体のバージョンアップは新しいバージョンのインストーラーを起動させるだけで完了する。
非常に簡単。

その状態だと今まで日本語化してあっても英語で表示されるはずだ。
そこで言語パックを落としてきてインストールするわけだが、
そのままインストールすると何度やっても日本語化できなかった。

調べてみると、以前のバージョンで使用していた言語パックが残っているようだ。
C:\Program Files\TortoiseSVN\Languages に「ja」とかそういうフォルダがあるので、それを削除する。
改めてバージョンに適合した言語パックをインストールしてみたら日本語化された。

[Firefox5] 消えたユーザーエージェント Configuration Mania

Configuration Maniaというアドオンは非常に便利である。
その昨日の一つにユーザーエージェントを変更できる項目があるのだが、ここで色々と設定した後に「標準に戻す」ボタンを押下したらユーザーエージェントが消えてしまった。

以前のバージョンでもそうだったのかもしれないが、消えた状態だと色々なサイトで割と困る。
「お使いのブラウザはサポート外です」とかでるサイトがけっこうあるからだ。

Firefoxを再インストールしてもこの現象は直らない。
アドオンも入らなくなる。

これを直すには、強制的にユーザーエージェントを直すしかない。
ユーザーエージェントは about:config の general.useragent.override キーで設定されている。
ここで適当に「Firefox 5.0」とか入力してやると、意外と色々なサイトで認識してくれるw

そうはいっても元通りにしたい。
そういう時は、Configuration ManiaのUserAgentタブの、プリセットの「Firefoxのこのバージョン」を選択すれば元通りになる。

ユーザーエージェントがおかしくなったらこういう直し方もある。

[IETester] IE6, IE7, IE8を共存させる

IETesterという素晴らしいツールがある。これは異なるIE環境によるテストを実施するときに重宝する。
インストール方法に特に難しいところはないし、操作もぱっと見て直感的に操作できるだろう。


ただ、インストールしているIEのバージョンによって開けるものとそうでないものがある。
当然のことながら、IE7がインストールされていないPCではIE7のタブで開けないし、IE8がインストールされていないPCではIE8のタブを開けない。

今さらIE6や7もないだろうと思うが、
業務用途では残念なことに古いIE指定という縛りがある時がある。
セキュリティの観点からもそういうのを撲滅していくのが本当の「システム屋」だとは思うのだがね。

[Oracle] OraOps10.dllを読み込めません。

.NETからOracleにDB接続しているシステムで、こういうエラーが出た(OS: WindowsXP)。
調べてみるとdllがあるフォルダの権限がないらしい。
自分の場合は、C:\Oracle\product\10.1.0\Client_1\BIN フォルダに権限を付与したら直った。

「ASP.NETコンピュータアカウント」を追加し、フルコントロール。

[Firefox5] Firefox5からのダウングレード(→3.6.18 →4.01)

 Firefox5!  Firefox5!  Firefox5!ということで勇んでインストールしたものの、10秒後には「アドオンが対応していないじゃないか」と落胆して「4.01に戻したい…」と思った人もいることだろう。
 自分もそうだった。

旧バージョン置き場
http://mozilla.jp/firefox/download/older/

しかしここには 3.6.18 しかない。

5をいれた状態でこれをダウンロードして、インストールすると、3に戻すことができる。
(起動時にアドオン関係が消えたり、無効化する場合があったりするが…)

じゃあ、4にするには?

メニューから「Firefoxの更新」をして、最新バージョンをチェックしてみる。
すると4.01が見つかるので、それをインストールすると4に戻すことができる。

ただ、この際もアドオンが消えたりするがw

4にした後5にすることも当然できる。
細かい部分で完全に移行できるというわけではないが、うっかり5を入れてしまい、
アドオンが対応してねえよ!と憤怒したら試してみるといいかもしれない。

[VSS] ソース管理された.slnが開けない。バインド情報が削除される。

おそらく Visual Studio 2003のケースだと思うが……。
VSSにて管理されているソリューションのバインド情報が削除されて開けなくなることがある。
・ バインド情報が見つかりません
と、いうようなエラーメッセージが出る。

バインド情報を更新して.slnを保存しなおしても、再び同じ現象が出てハマった。
こうなってしまったら、.sln自体をテキストエディタで開いて直接編集するしかないようだ。

 で、編集箇所だが。

VSSで管理されていると "GlobalSection" という箇所が追加されているはず。
ここにソリューションに含まれるプロジェクトの詳細が含まれている。

で、確認したところ SccProjectEnlistmentChoice = 2 という箇所が抜けているとダメらしい。
少し調べた感じではこれが何なのかはわからなかった……。

[.NET Framework1.1] Temporary ASP.NET Filesへのアクセスが拒否されました

アプリケーションでサーバーエラーが発生しました。
System.UnauthorizedAccessException: パス "c:\windows\microsoft.net\framework\v1.1.4322\Temporary ASP.NET Files\" へのアクセスが拒否されました。

今さら.NET Framework1.1もないとは思うが、そういえばこういうエラーがあったことを思い出した。

[原因1]
フォルダにアクセス権がない。

c:\windows\microsoft.net\framework\v1.1.4322フォルダに対し、
IUSR_とIWAM_のユーザーに対して[プロパティ]-[セキュリティ] から権限を付与する。
オブジェクトの種類: ユーザー
場所: ローカルマシン内

[原因2]
ACLがおかしい。

権限を付与しても変わらない場合はASP.NETのACL(必須アクセス制御リスト)を再構築する。
.NET Framework1.1ではけっこうこのコマンドを実行していた気がする。
(コマンドプロンプトにて実行)
C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_regiis.exe -i

[C#] DataTableからデータを抽出して別のDataTableにコピーする

まず、DataTableをまるごとコピーするには以下のようにする。
DataTable dt1 = new DataTable();
DataTable dt2 = new DataTable();
// dt2にdt1をコピー
dt2 = dt1.Copy();

データを抽出して別のDataTableにコピーするには以下のようにする。
foreach (DataRow row in dt1.Select("type = 'A'"))
{
   dt2.ImportRow(row);
}

[C#] DataTableの行を削除する

MSDNにあるとおり、Delete メソッドを使用する。
// dtはDataTable
dt.Rows[0].Delete();
で、これでOKかと思いきや、これだけでは単に「delete」というマークをつけたに過ぎない。実際の行を削除するわけではない。
で、これをコミットするにはDataTable.AcceptChanges メソッドを使用する。
dt.AcceptChanges();
このメソッドによりマークをつけた行を削除することができるはず。
なお、DataRowCollection.Remove メソッドを使用すればいきなり削除できる。
が、こちらはRemove()に削除対象のDataRowを引数として渡すので、
// iは添字
dt.Rows.Remove(dt.Rows[i]);
こういう感じになる。
削除マークをつけて値をチェックする必要がない場合はRemove() が一般的なのかもしれない。

[ASP.NET] ポストバック後にスクロールさせない

業務用アプリで、(操作しにくいのだが)縦に長い画面があったりする。
さらにその画面にボタンがあってポストバックが発生するアレな画面があったりする。
で、ポストバック時に必ず画面上部に戻されるのが嫌がられる。

画面がアレだと言いたいところだが、なんとかしなければならない。

Page.MaintainScrollPositionOnPostBack プロパティはそんな要望をかなえてくれる。

これでスクロールしなくなるはずだ。
なお、以前のバージョン(.NET Framework1.1)で使用されていたPage.SmartNavigationは推奨されない。
ブラウザに依存するらしい。

[VB.NET] Nothingの代入は暗黙的な初期化と同じ

.NET開発を始めるVB6プログラマーが知るべき9のこと
VBはもう最近ではやっていないのだが、なかなか興味深い。昔から言われてきたことが、今でもまだ言われ続けていることがVB6の呪縛の強さを表していると思う。

Nothingの扱いが面白い。初期値が代入されるらしい。
調べたら初期値とは以下のことらしい。

すべての数値型 (Byte および SByte を含む): 0
Char: バイナリの 0
すべての参照型 (Object、String、およびすべての配列を含む): Nothing
Boolean: False
Date: 西暦 1 年 1 月 1 日の午前 12:00 (01/01/0001 12:00:00 AM)

例えば参照型の文字型は、空ではなくNothingになる。

Dim s As String = ""
Console.WriteLine(s)
' ここでは空文字
s = Nothing
Console.WriteLine(s)
' Nothingになる

まぁ、いずれにせよ暗黙的な代入になるので、使用しないに越したことはないということだ。

[C#] DataTableを並び替えてからfor, foreachで列挙する。

DataRow[] rows = dt.Select("", "no");
foreach (DataRow row in rows)
{
 // なんか処理
}
Selectメソッドの第一引数には条件を指定する。
特に条件がない場合には上記の例のように空でも良い。
第二引数には並び替えをする列名を指定する。この場合は「no」という列を昇順指定している。
「desc」キーワードで降順にすることもできる。

[Visual Studio] クラスのメンバをツリー表示 Source Code Outliner

Source Code Outliner
Visual Studioではソースビューの右上にメンバがドロップダウンリストで表示されるのだが、クラス内に大量のメンバがある場合は使いづらい。これをツリー表示にしてくれるアドオンが存在している。
Visual Studio2005用, Visual studio2008用がそれぞれある。
メソッドにすぐにアクセスできるので便利だ。

[追記]
これを組み込むと相当遅くなり、使いものにならない。
日本語環境だからだろうな……。

[DB2] データベースのカタログ

リモートサーバに接続する際には「カタログ」という作業が必要らしい。
catalog nodeコマンドをDB2のコマンド行ツールを使用して実行する。

DB2: 指定したレコード数だけ取得(Top, Limit...)

--100行取得
FETCH FIRST 100 ROWS ONLY
これは文末に付与する。
他のDBだと単語だけというのが多いように思うが、
DB2の場合はそのまま英文になっていることが多いのかな?

[DB2] BLOB に初期値を Insert

DB2 の BLOB に null を Insert しようとすると、できないことに気づく。
調べてみたところ、これは以下のようにキャストしてあげないと Insert できないらしい。

CAST('' AS BLOB(1))

.NET だと今までは SQLServer だったのだが、他のものを使ってみると SQLServer はけっこう自動的に色々やってるのだな、と感じた。

String.Empty or string.Empty?

機能的にはどちらも変わらないらしいが、
String.Empty の方は using System; で参照設定が必要。


昔VBをやっていた頃の名残か癖か、自分はStringを無意識的に使っていることに気づいた。
しかし、例えばC#で using Microsoft.VisualBasic; などとしてVBの関数を使用する際には大文字で書いていると混同してしまう。最終的には「どっちでもいいじゃん」というような話ではあるのだが、小文字で統一したほうが良さそうだと思った。

[.NET]この行は既に別のテーブルに属しています

DataTableに行を追加しようと思って、
.Rows.Add()
などとするのだが、DataRowがすでに存在している場合はエラーとなる。

insertを何度も発行するような処理を行いたい場合にはImportRowメソッドにより行を追加する。
DataTable.ImportRow メソッド

これはDataTableをSelectし、DataRow[]にあるデータを既存のDataTableに追加する場合などに重宝するだろう。
DataRow[] dtRows = dt2.Select("hoge = 1");
foreach (DataRow dr in dtRows )
{
    dt1.ImportRow(dtRows);
}

あまりスマートではない感じだが、覚えておくと便利そうだ。

[EXCEL]セルの中身がシャープで「#####」表示されてしまう。

入力値がセルの幅に収まらない場合に発生するらしい。
日付や数値の場合にこうなる場合が多いのだが、表示形式が「文字列」である場合には以下の理由でもある。

[XL2002] 表示形式が文字列のとき 256 文字以上の文字を表示できない
http://support.microsoft.com/kb/410234/ja

[解決策]
  • セルの横幅を広げる。
  • 右クリック - セルの書式設定 - 表示形式 → 「標準」 に変更する。

Firefox4をRAMディスクにインストールしたら起動できなかった…

RamPhantomEXでRAMディスクを作成した。
そこへFirefox4をインストールしたら起動できなかった…。
原因は不明…。


本当に少しだけ触った印象としては、Betaの時より良くなっている。
画面線画もだいぶ速くなっているようだ。

gooメールでピーターラビット

久しぶりにアクセスしてみたらピーターラビットのデザインが追加されていた。
こういうのは良いね。

CSE (Common SQL Environment) で画面がおかしくなった時

CSE を使用していて、ウィンドウの表示にチェックが入っているにもかかわらず表示されなくなる現象が発生した。そういう際にまずダウンロードし直してみるのだが、これでも直らない。

というのも、このアプリはレジストリに設定を保存しているのだ。

CSE の設定場所
HKEY_CURRENT_USER\Software\Tsumiki Software\cse

上記「cse」をまるごと削除してアプリを起動するとまっさらな状態に戻る。
 ただ、すべて削除すると設定情報も消えるので注意。

ASP.NETのAJAXでエラー? The control with ID...requires a ScriptManager on the page...

ASP.NETのフォームにAJAX ExtensionsのUpdatePanelやScriptManagerを配置する。
これで普通に動くはずだが、

The control with ID "コントロール名" requires a ScriptManager on the page. The ScriptManager must appear before any controls that need it.

なんてエラーメッセージが出る時がある。

調べたらScriptManagerはUpdatePanelよりも前に配置する必要があるらしい。
確かにScriptManagerの位置を変更したらエラーが出るようになった…かもしれないw

推測だが、ページは上から評価されているんだろうね。
で、ScriptManagerがないのにUpdatePanelがある!ということでエラーになったのだろう。

Stylishが原因でFirefox起動時にエラーが出る際の対処法

Stylish is having problems opening its database.
Firefoxを起動させるときに、こんなエラーが出るかもしれない。
これはStylishのデータベースが破損していることに起因しているかもしれないエラーだ。

【対処法】
  1. データベースツール「SQLite Database Browser」をダウンロードする。
  2. Firefoxを起動する。(エラーが出るかもしれないが放置)
  3. アドレスバーに「about:support」と入力する。


  4. プロファイルディレクトリの「フォルダを開く 」。
  5. Firefoxを閉じる。
  6. 先ほど開いたプロファイルフォルダに、「stylish.sqlite」があるはずなので、それをダウンロードしたSQLite Database Browserで開く。
  7. ファイルを選択して、File - Compact Databaseを実行する。

  8. SQLite Database Browserを閉じる。

この作業の後に、一度「Stylish」をアンインストールして、再インストールすれば完璧だと思う。

DELLノートPCでトラックパッドのスクロールができない?

ノートPCにはたいていタッチパッドが付いているものだが、これにはブラウザやエクスプローラ等のスクロール機能が付いているものもある。

この機能だが、DELLのノートPCでは Program Files\DellTPad の中にある
「ApntEx.exe」「Apoint.exe」というプログラムで動かしているようだ。

スクロールができない? と思って色々と調べてみたらそういうことらしい。
ちなみにこれはLATITUDEシリーズのお話。

特定の名前を持つフォルダを一気に削除する。例えば「.svn」フォルダ。

Subversionで管理されたファイルが入ったフォルダには「.svn」というフォルダがある。
これがいらない場合、一発で削除できないものかと調べてみたら、DOSコマンドで削除するようだ。
やり方はいくつかあるだろうが、自分が試したのは以下の方法。

1.コマンドプロンプトで、削除対象となるフォルダに移動する(cdコマンド)。
2.「.svn」フォルダを探す。
dir /s /b /a:d "*.svn"
3.これを実行すると「.svn」フォルダが特定できるので、このリストをテキストファイルにしてやる。
dir /s /b /a:d "*.svn" > list.txt
ファイル名は何でもよい。
テキストファイルで出力されているはずだ。
4.で、そのテキストファイルの先頭に「rmdir/s/q」を挿入する。
 テキストエディタの正規表現で「^」を「rmdir/s/q 」にでも置換すればOK。
5.そのテキストファイルの拡張子をバッチファイル(.bat)にする。
6.バッチファイルを実行。

これで削除される。

Oracle Clientがインストールできない時の確認事項

直下のsetup.exeでインストーラが立ち上がらない時には、\install\setup.exeを実行してみよう。

SysFader: iexplore.exe - アプリケーション エラーの対処法

---------------------------
SysFader: iexplore.exe - アプリケーション エラー
---------------------------
"0x03f07366" の命令が "0xfffffffc" のメモリを参照しました。メモリが "read" になることはできませんでした。

IEを起動しようとしたらこんなエラーが出て起動不可。
なんやねん。
ちなみにバージョンは8。

調べてみると、「サードパーティ製のブラウザー拡張を有効にする」のチェックを外すといいとのこと。
チェックを外してみたら直った。

ちなみにIEの設定は、[コントロールパネル] - [インターネットオプション]からでも変更できるので、
再起不能になっていても設定することは可能。

DELL のノート PC の Scroll Lock 位置

型番にもよるのかもしれないが、DELL のノート PC には [Scroll Lock] キーが見当たらない。
ノート PC は Fn ボタンを押しながら [ScrLk] か [ScrLock] を押してね!と言われても、ないものはない。

何が困るかというと、Excel のスクロールロックだ。
スクロールロックは、十字キーでセル移動ではなくウィンドウを動かす機能だが、正直こんな機能ほとんど使わない。

で、解決策だが。
DELL ルールにより、[Fn] + [F5]  が Scroll Lock に相当するらしい。

一応 F5 キーにマークがあるが、とても気づかない。

VS2005環境にVS2003をインストールする際の備忘録

.NET Framwork1の化石システムは割とまだ見かける。
厄介なことに昔作られた大規模なものなど。

これをサポートするためにはVisual Studio2003(VS2003)が必要なのだが、これ以降のバージョンがすでに入っていることも多いと思う。
普通にVS2003をインストールしようとすると、上記のようなメッセージが出るかもしれない。

他のプログラムのためにコンピュータを再起動する必要があります。
Visual Studio .NET 必須コンポーネントをインストールする前に、コンピュータを再起動してください...

で、メッセージの通りに再起動したくなるが、これは罠であるので、無視しよう。
再起動してもインストールできない。

これはMicrosoftによると仕様らしく、このような手順を踏むことでインストール可能になる。

ちなみに2003はIIS必須だが、これの設定ではまった部分もメモとして残す。
IIS で FrontPage Server Extensions を構成する方法

通知のカスタマイズを一発削除! for Windows XP

過去の項目が残っているわけだが、「履歴が残っているとイヤだ!」という潔癖症なあなたに、
Microsoftから 一発削除ツールが提供されています。
Microsoft Fix it 50015
ダウンロードしたファイルを実行すればOK。

Excelのスクロールバーが消えたときは

慌てず焦らずオプション確認。
[ツール] - [オプション] - [表示]
水平スクロールバー(横),垂直スクロールバー(縦)をチェックすると再表示されるはずだ。
Excel2003の場合。

.mpp(Microsoft Projectファイル)を開くためのビューワー

.mppというのは「Microsoft Project」というプロジェクト管理ツールのファイルらしい。
が、ファイルを参照するだけなら非公式だが以下のようなビューワーがある。
HD Projette - Microsoft Project Viewer

インストールするだけだったが、ファイルを開いてみると日本語表示も問題がないと思われる。
動作には.Net Framework2.0が必要だが、これはXPの古いバージョン以外であれば標準でインストール済みだろう。

Excelのシートに関するショートカットキー

【ワークシートを追加する】
Shift + F11

【次のワークシートを表示する】
Ctrl + PageUp

【前のワークシートを表示する】
Ctrl + PageDown

【ワークシートを複数選択】
Shift + Ctrl + PageUp
Shift + Ctrl + PageDown

【ワークシートの見出しの色を変更する】
Alt + O, H, T
*キーを順に押す。

【ワークシートを複数選択してさらに色を変更する応用】
Shift + Ctrl + PageUp で複数を選択後……
Alt + O, H, T でワークシートの色を一括変更可。

【ワークシートの名前を変更する】
Alt + O, H, R

【ワークシートの移動・コピー】
Alt + E, M

【ワークシートの削除】
Alt + E, L

Microsoftのサイトに一覧がある。
Excel2003
Excel2007

C#で曜日を取得する

日付型から曜日を取得するということを考えたとき、以下のようにするのが一番簡単である。
DateTime dt = DateTime.Now;
Console.WriteLine(dt.DayOfWeek);
// 結果
// Monday
英語表記である。
これでOKなら一番楽なのだが、日本語で取りたいんだよ!ということの方が多いだろう。
そんなときはCultureInfoクラスでカルチャを指定することができるのだ。
using System.Globalization;

// 日本をセット
CultureInfo info = new CultureInfo("ja-JP");
まず、こんな感じでセットする。
カルチャ名はMSDNの以下のページから参照してほしい。
http://msdn.microsoft.com/ja-jp/library/system.globalization.cultureinfo(v=vs.71).aspx

では、日付にどうやってセットするのよ?
というと、カスタム書式で指定するときに引数として指定する。

DateTime dt = DateTime.Now;
CultureInfo info = new CultureInfo("ja-JP");
Console.WriteLine(dt.ToString("dddd", info));
// 結果
// 月曜日
「ddd」だと、省略形になる。上記の場合だと「月」と表示されるはずだ。

ちなみに、このパターンにおいて、カルチャの指定を、
CultureInfo info = new CultureInfo("ja");
とするとエラーとなる。

カルチャ 'ja' はニュートラル カルチャです。フォーマットや解析に使用できません、スレッドの現在のカルチャとして設定することもできません。

といった具合に。

DateTime dt = DateTime.Now;
CultureInfo info = new CultureInfo("en-US");
Console.WriteLine(dt.ToString("ddd", info));
// 結果
// Mon

ちなみに、英語表記でもこのように指定すれば省略形を取ることができる。
もちろん他の言語でも指定できるので、いろいろと使うことができるだろう。

DB2の日付

DBによって様々あるものだが。
DB2で日付を抽出条件にする場合は'2011-01-21 00:00:00'とするようだ。(timestamp型)
ちなみに、'2011-1-21 00:00:00'はOKだが、'2011-1-21 0:0:0'はNGだ。

DB2の日付に関しては本家ウェブサイトに色々と載っている。

CLI0108E 通信リンクに障害が起きました。

CSE(Common SQL Environment) でDB2に接続中、画面をしばらく放置してSQLを実行したらこんなエラーが出た。
 データベースとの接続を一度閉じてから再接続したら直った。
 問題の原因はよくわからんが、タイムアウトでもしていたのだろうか?

Firefox4 BetaをFirefox3と共存させながら試す

Firefox4 Beta
http://mozilla.jp/firefox/beta/
ベータ版はあくまで開発版なので一般的な使用には適していない。
しかしながら新しい機能を試してみたいというジレンマもある。

幸いにしてFirefox4ではFirefox3環境をそのまま残して共存させることが簡単にできる。
ポイントは、プロファイルを分けることだ。

1. Firefoxを終了する。

2. 「Windowsキー + R」で「firefox.exe -ProfileManager」と入力。ちなみに、「firefox -p」でも可。

3. 「新しいプロファイルを作成」で新規プロファイルを作成する。名前はわかりやすいものでよい。


4. 新規作成したプロファイルをベータ用とし、
ベータ用プロファイルを選択して「今後このプロファイルを使用する(s)」にチェック。
「Firefoxを起動」する。
これで準備は完了。

5. Firefox4 Betaをインストールする。

上記の作業で今までの設定をすべて残したままBetaを試すことができるはずだ。

なお、クイック起動バーにあるショートカットからFirefoxを起動させようとするとBetaが起動する。
これは、共存はしていて分離はしているものの、二つある場合は新しいほうを優先して起動するという動作になっているものと思われる。スタートメニューのFirefox3から起動すれば、もちろんFirefox3が起動する。

ちなみに、Firefox3を起動させるときには作成したベータ用のプロファイルではなく、
それまで使っていた3のプロファイルに切り替える。
切り替え方は上記に行った通りである。


なお、Firefox4であるが。
動き全体は驚愕するほどの速さではないが、ストレスはないレベル。ここまでくると体感的なものになってくると思う。メニューバーがなくなってすっきりしたのは良い。初めは慣れないかもしれないが、慣れてくるとシンプルで気に入るだろう。
Choromeと違ってブラウザのタイトルバーが広いのはウィンドウを移動させるときに便利だ。しかし、どうせならどこかにページのタイトルを表示してほしかった。
Firefoxファンはおおむね満足できるだろうが、正直4になるまでにChoromeにシェアを奪われすぎたんじゃないかと思う……。拡張機能がキモなんだという大勢の見方だろうが、4に対応している拡張機能は正直まだ少ないのではないか。

Googleドキュメント: Word形式ではなくテキストファイルで編集

Googleドキュメントで文章を作成すると、通常はWordドキュメントのようなレイアウトになる。

しかし、[設定]-[ドキュメント設定]-[編集]-[Google ドキュメントの新バージョン]のチェックを外すと、
テキストのみのシンプルな編集モードになる。

単純にテキストのみを書きとめたい用途ならこの方がシンプルでいいかもしれない。

Eclipseのビルドパス

プロジェクトを持ってきた時に、エラーが一斉に出ることがある。
こういうのはビルドパスの設定が正しくされていない原因であることが多い。

パッケージ・エクスプローラーかプロジェクト・エクスプローラーで、
対象となるプロジェクトのプロパティを開く。

すると「Javaのビルド・パス」という項目があるので、そこのライブラリ設定を見直す。
システム・ライブラリーの設定を確認してみて、正しくJREが設定されているかをチェック。
また、サーバの設定もここから設定できるので、チェックする。

Visual Studioでいうと「.NET Framework」を切り替えるようなものだろうか。

Eclipseの使い方

Visual Studioしか使ったことがないのに、
いきなりJava開発やEclipseをいじることになった場合に戸惑った部分を記しておく。

ワークスペース

様々なリソースを保存するフォルダ(ディレクトリ)。
Visual Studioでいうと「ソリューション」が置いてあるフォルダの感覚。

ワークベンチ

ウィンドウ全体のこと。机の上のような感覚。

ビュー

機能ごとのウィンドウ。

パースペクティブ

Eclipse特有の概念。ビューのセットといえる。
例えばソースを書いている時に使用するビューのセット、ビルドしている時に使用するビューのセット、という感じにビューのセットをそれぞれ設定しておくことができる。
タブブラウザのタブみたいな感覚かもしれない。
Visual Studioにはこの機能はなかったと思うが、慣れると非常に便利だ。



エディタのフォント

[ウィンドウ]-[設定]-[一般]-[外観]-[色とフォント]
エディタ部分のフォントだけではなく、リストやツリービューのフォントも細かく設定できる。

ビルド

Web開発に限った話でいうと。
Visual Studio ビルド→ブラウザ起動→デバッグ
Eclipse ビルド→サーバ立ち上げ ブラウザで各自テスト

Visual Studioに関してはサーバがIIS前提であるので一貫して動作確認までできるが、Eclipseはそうではないのでこういう動作になっているのだろう。

CVS

VSSしか使ったことがなくてCVSに入ると、少々戸惑う部分がある。

■チェックアウト
VSSだとソースを編集状態にしてロックをかけるという意味であるが、
CVSの場合はソースをローカルに持ってくるという意味である。

■コミット
VSSでいう「チェックイン」である。

慣れればVSSよりもずっと使いやすい。
マージ機能が強力だ。

Excelの共有ブック

xxx.xls は編集のためロックされています。
使用者は 'hoge' です。
[読み取り専用]で開くか、または、読み取り専用で開き、ほかの人がファイルの使用を終了したときに通知を受け取るには、[通知]をクリックします。

ファイルサーバにおいてあるExcelファイルを複数の作業者で編集する際によく出る警告メッセージである。


複数の作業者で同時に作業を行いたいファイルは「共有ブック」にすると便利だ。
[ツール]-[ブックの共有]
[検閲]-[ブックの保護と共有] (Office2007以降)

細かいことはこちらにも説明がある。

Excelで正規表現を使って検索・置換

Excelで仕様書や文章を作成していると(←何かがおかしい)、一括で置換したいというケースがある。
今まで気にしていなかったが、Excelで置換する際に正規表現を使うことができない。調べてみたら関数で変換するという事務処理用のものしかなかった。

Excel用正規表現検索ダイアログアドイン

窓の社のレビュー

「Ctrl + R」でダイアログが出てくる。
これは素晴らしい。

ODBCデータソースアドミニストレータをコマンドから起動

ファイル名を指定して実行: odbccp32.cpl

通常は「コントロールパネル - 管理ツール - データソース(oDBC)」より起動する。