画面やフォントサイズが小さくなってしまったコマンドプロンプトを元に戻す方法


職場にて、コマンドプロンプトのコマンドライン上であるプログラムを動かすと急に画面サイズとフォントサイズが小さくなってしまいました。しかもその小ささがビックリするぐらい小さい。
画面やフォントサイズが小さいコマンドプロンプト

上記の画像を見てもらえれば分かる通り、肉眼で文字を読取ることができないほどです。

あれれ~おかしいぞ~と思い、タイトルバーを右クリックしてプロパティ画面を開き、フォントやレイアウトタブからサイズを変更してみても直らない。一旦閉じて再び開いたら直ってるかなと思っても直らない。再起動しても直らない。これは困った。

ただ、フォントタブを開いて気づいたことが一つ。『Consolas』『Lucida Console』『ラスターフォント』とあって日本語のフォントがない。とりあえずここで『Consolas』とかにしてみるとほぼ元の大きさに戻った。これで解決か・・・と思ったものの、そこで新しい問題が発覚。Alt+『半角/全角』キーを押しても日本語入力にならない。再度プロパティを見て『現在のコードページ』というのを見てみると『1252(ANSI – ラテン I)』と書いてある。

どうやら、文字コードの設定が変わってしまい、その影響でフォントサイズや画面サイズが小さくなったらしい。とりあえず文字コードを変更する方法を調べて、日本語対応の文字コードに戻すことに(参考:コマンドプロンプト chcp – [利用する文字コードを変更する])。
chcp 932
と入力して実行し、なんとか元に戻った。これで一安心。と思ってコマンドプロンプトを閉じて再度開くとまたラテン語の文字コードに戻っていた。再度調べてプロパティページで何かしら変更を加えてOKを押すと文字コードも保存されると分かり、これでようやく元に戻った(参考:コマンドプロンプトを英語表示に変更 chcp コマンドプロンプト王)。

ということは、最初に画面やフォントサイズが変わった時にプロパティをいじってしまったのがまずかったのかとここにきて気づいた。まあ何にせよ、一つ勉強になった。

ctagsで出力した関数一覧ファイルをタブ区切りにする正規表現置換


仕事で関数一覧を取得しなければいけないことになって探してみると、ctagsというツールを見つけました。
ctags日本語対応版

とりあえず、『Win32版(バイナリのみ) (ec58j2w32bin.zip  162,098 byte)』と書いてあるリンクをクリックしてダウンロードし、解凍したフォルダの中にあるctags.exeを『C:\Windows』に置く(システム環境変数のPATHが通ってるところならどこでもいい)。これで、コマンドプロンプトでctagsが使えるようになった。

とりあえず、試しにjQuery(非圧縮版)を置いたフォルダにて『ctags -R –languages=javascript –javascript-kinds=f -x > jquery.txt』と入力して実行すると、同じフォルダ内に下記のテキストファイルができた。
jquery.txt

開いてみると確かに関数一覧ができています(完全じゃないですけどね。これはJavaScript特有の問題だと思います。JavaScript以外のライブラリで試すべきでした)。ただ、区切りが数の定まっていない半角スペースということもあって、扱いづらそうです。もう少し扱いやすいように、これをタブ区切り(TSV)にする正規表現置換を考えてみました。

先ほどのファイルを見てみると、それぞれの行は左から
『関数名』『1つ以上の半角スペース』『function』『3つの半角スペース』『行番号』『1つの半角スペース』『ファイル名』『1つの半角スペース』『関数宣言行の文字列(半角スペース含む)』となっています。そこで、半角スペースで区切ってあるところは半角スペースの数を気にせず正規表現で『\s+』と考え、それ以外は『[^\s]+』と考えることにしました。自分が使っているNotepad++では置換する際に正規表現にチェックをいれ、下記のようにするとうまくいきました。

\1や\2は検索文字列で()で囲んだ文字列にあたります。エディタによっては、\1ではなく$1かもしれません。

とりあえずこれで下記のタブ区切りのファイルができました。
jquery_tab.txt

タブ区切りにすると、全て選択してコピーしてExcelに貼り付けるとちゃんとセルごとに分かれてくれるのでとても便利です。

Yahoo!メールをテキストファイル形式でバックアップする方法(Thunderbird利用)


ある事情で、父の使っているYahoo!メールにあるメール内容をテキストファイルにしてCD-ROMに入れなきゃいけなくなったので、その時のメモ。簡単にできるだとうと思って頼まれたんだろうし、自分もそこまで難しくないと思ってやってみたんですが、思った以上に手こずりました。
ちなみに、Yahoo!メールと書いてますが、Gmail(というより、Thunderbirdで受信できるメール)でも同じ手法でできるはずです。

結論としてはThunderbirdでYahoo!メールを受信するようにし、ImportExportToolsという拡張機能を使ってメールの中身をテキストファイルとして保存します。

以下、その手順。久々に画像多めのエントリーとなるため少し重いかもしれません。

まずは、Thunderbirdのインストールをしないと始まらないので、その説明から。リンク先の『無料ダウンロード』ボタンをクリックして、インストールファイルをダウンロードします。すでに、Thunderbirdをインストールしている人は、こちらへ。すでにThunderbirdでヤフーメールを受信している人はこちらへスキップしてください。
Thunderbirdの『無料ダウンロード』ボタンをクリック

ダウンロードができたら、ファイルをダブルクリックして起動します。すると、最初にプログレスバーのみの画面が出た後、下記のような画面になると思うので、『次へ』のボタンをクリック(ユーザーアカウント制御という画面がでた場合は『はい』をクリック)。
『次へ』のボタンをクリック

つづいて、インストールの種類の選択画面。『標準インストール』にチェックがついていると思うので、そのまま『次へ』をクリック。『Thunderbirdを規定のメールプログラムとして使用する』のチェックは任意です。すでに、OutlookやWindowsメールなど、別のメールプログラムを使ってる人はチェックをつけないほうがいいかも。
『次へ』をクリック。規定のプラグラムのチェエックは任意

規定のフォルダにインストールすることの確認画面になりますので、『インストール』ボタンをクリック。
『インストール』をクリック

しばらく待ちます。
しばらく待つ

インストールが完了したら下記の画面になるので、『今すぐ Mozilla Thunderbird を起動』にチェックをつけたまま、『完了』ボタンをクリック。
『完了』をクリック

Thunderbirdが起動して、下記のような画面になります。とりあえず、『統合をスキップ』をクリックすることに。
『統合をスキップ』をクリック

メールのアカウントを作成するので、『メール』をクリック。
『メール』をクリック

下記のような画面がでてくるので、『メールアカウントを設定する』ボタンをクリック。
mailbackup9

メールアカウント設定画面が開くのて、『あなたのお名前』入力欄に適当な名前を記入し、メールアドレスとパスワードの記入欄にはヤフーのメールアドレスとパスワードを入力する。その後、『続ける』ボタンをクリック。
メールアドレスとパスワード入力後、『続ける』をクリック

すると自動的にサーバー情報が取得されるはずなので、そのまま『完了』ボタンをクリック。
『完了』をクリック

その後、左上の『受信』ボタンを押すことにより、ヤフーメールのメールをダウンロードしていくので、しばらく待つ。もちろん、量が多ければ多いほど長く待つことになる(自分の場合、2時間程度かかった)。ちなみに、個別フォルダの中身はダウンロードされないので注意。自分は個別フォルダのメールをすべてフラグをつけて受信フォルダにいれ、Thunderbird側で受信できたら、フラグがついているものは個別フォルダに入れなおすという方法で個別フォルダにあるメールもダウンロードするようにしました。後、迷惑フォルダはダウンロードしてしまうので、Thunderbird側で受信する前に、ブラウザ側で削除したほうがいいかも。
メール受信中

自分の場合はダウンロードしている最中に、『RETRコマンドを正常に完了できず、メッセージを取得できませんでした。』というようなメッセージがでてダウンロードがストップしてしまう時が何度かあった。
RETRコマンドを正常に完了できず、メッセージを取得できませんでした。
このような場合にはいったんブラウザでヤフーメールを開き、ダウンロードできた最新のメールの次のメールを削除してから再度受信ボタンを押すと、大抵再受信が始まります(始まらない場合は、それとは違うメールが原因の可能性があります)。ちなみに、自分は英語だけのスパムメールを削除したらうまくいきました。

つづいて、ImportExportToolsというThunderbirdの拡張機能をダウンロードします。リンク先に行って、『 ImportExportTools』というリンクをクリックしてダウンロード。
 ImportExportTools

altキーを押してツールバーを表示させ、『ツール』をクリックして、でてきたメニューバーから『アドオン』をクリック。
ツールバーからアドオンをクリック

拡張機能ページを開きます。ところで、検索欄に『ImportExportTools』と記入した状態のキャプチャ画像を取得してしまいましたが、試しにここで『ImportExportTools』と検索しても何も見つかりませんでした。なので、先ほどダウンロードしたImportExportToolsのファイル(2013年2月23日現在だと、『ImportExportTools-2.8.0.4.xpi』という名前)をこの画面にドラッグアンドドロップします。
拡張機能ページを開く

下記のような画面が表示されるので、『今すぐインストール』をクリック。
『今すぐインストール』をクリック

下記のような画面になったら、『今すぐ再起動』をクリック。
『今すぐ再起動』をクリック

ImportExportToolsをインストールできたら、『受信トレイ』を右クリックし、でてきたメニューから『ImportExportTools』→『フォルダ内のすべてのメッセージをエクスポート』→『プレーンテキスト形式』を選ぶ(日本語になっていることに少し驚きました)。
プレーンテキストを選ぶ

フォルダダイアログが開くので、保存するフォルダに移動して『フォルダーの選択』ボタンをクリック。
フォルダーの選択

しばらく時間がたつと、指定したフォルダに、下記のようなフォルダができる。この『受信トレイ_(日付)』というフォルダの下には『メッセージ』というフォルダと、『index.html』があり、『メッセージ』フォルダの下にはメール本文のテキストファイルが入っている。
フォルダに新しく『受信トレイ_(日付)』というフォルダができる

index.htmlは下記のような感じ。メールのリストがテーブル形式で書かれている。
index.htmlの中身

試しに、一番上のリンクを開いてみたら、下記のような感じでした。ちなみに、ファイル名は『20030412-ようこそ Yahoo! メールへ-0.txt』となっていました(なんでコピーライトが2010になってるんだろう? 2003年のメールなのに)
メールの中身

ImportExportToolsは他にも、HTML形式での保存や、emlファイルのインポートなんかもできてしまうので、かなり便利そうです。それより、そもそもThunderbird自体が便利そうですね。今までメールは、Webメールを使っているためブラウザからしかメールチェックはしてませんでしたし、会社のメールもOutlookで利用しているので、Thunderbirdは全く利用したことがなかったのですが、すごいよさそうです。今度から、Thunderbirdを使おうか・・・。

IIS7で拡張子.htmlのままPHPを実行する方法


自分はローカルサーバー環境ではXAMPPではなく、IIS7を利用しています。IIS7を利用している理由は二つ。一つ目は、業務でクラシックASPを使っていることもあってASPが標準で利用できること(ちょっと設定変更が必要ですが)、二つ目はWeb PI(Microsoft Web Platform Installer)を利用すればかなり簡単にウェブプラットフォーム等がインストール利用できること。以上、二点からIIS7を利用しています。

まあそんなことはともかく、わけあって拡張子.htmlのままPHPを動かしてみたいと思ったのでいろいろ調べてみました。なお、IISで動くPHPのインストールや設定方法については、下記のサイトを参考にしてください。
[MEMO] IIS 環境に PHP をインストールする – WebMatrix の歩き方 by 武田正樹 – Site Home – MSDN Blogs
Windows 8/7/Vista に PHP をインストール

そんな中、IIS7で拡張子が.htmlのままPHPを実行したいと思ったのですが、.htaccessでの方法は多く見つかるものの、IISでの設定は見つからず。
.htaccessで拡張子.htmlのままPHP実行可能にする:ねこすけのPHP
.htaccessで、拡張子.htmlのままPHPを実行する方法 | 海外SEO情報ブログ

というわけで、いろいろ試行錯誤して分かったのでここに書いておきます。今回はIISで『amyu』という名前のサイトを作成し、そのサイトにアクセスした場合には拡張子が.htmlのファイルでもPHPとして実行するようにしたいと思います。IISでの複数サイトの追加は下記のサイトを参考にしてください。
IIS で Web サイトの追加

『amyu』の物理パスは『C:\inetpub\wwwroot\amyu』、ホスト名は『amyu.localhost』としました。
Webサイトの追加
試しに下記のようなソースコードを書いた拡張子.htmlを作成し、開いてみます。

もし、PHPが実行される環境であれば、このファイルのページを開いた時にはPHPの設定情報が表示されるはずです。アクセスしてみると下記のようになりました(シークレットウィンドウで開いてますが特に意味はありません。通常のウィンドウだと拡張機能のボタンが多すぎてウィンドウサイズをあまり小さくすることができず、見栄えが悪いんです・・・)。
htmltophp2
何も表示されていません。試しにソースコードを表示してみると、下記のように元々のソースコードがそのまま表示されている状態になっています。
htmltophp3

ではいよいよ、拡張子.htmlでPHPを実行する方法の説明です。IISの画面に戻って、『ハンドラーマッピング』のアイコンをダブルクリックします。
htmltophp4
『ハンドラーマッピング』という画面になるので、そこからパスが『*.php』となっている項目を探してダブルクリックします。
htmltophp7
すると下記のような画面が表示されるはずです。この項目を覚えておいてください(もしかしたら環境によっては下記と同じではないかもしれません)。
htmltophp6
上記画面を閉じてハンドラーマッピング画面に戻り、どこか適当な場所で右クリックし、『モジュールマップの追加』をクリックします(あるか分かりませんが、もし先ほどの画面が『モジュールマップの編集』という画面ではなく、『スクリプトマップの編集』という画面だったならば、『スクリプトマップの追加』をクリックします。なお、ASPを.htmlで実行したい場合は『スクリプトマップの追加』をすることになります)。
htmltophp7
すると、先ほどの*.phpをダブルクリックした時と似たような画面が表示されるので、要求パスに『*.html』、モジュールと実行ファイルを先ほどの*.phpで開いた画面と同じ項目を入力します。なお、実行可能ファイルのパスはダブルクォーテーションで囲まないといけないようです。名前は適当で分かりやすい名前にしましょう。ここでは『HTMLtoPHP』としました。
htmltophp8
OKボタンをクリックすると、下記のようなメッセージボックスが表示されると思うのでOKをクリック。
htmltophp9
すると、ハンドラーマッピングに『HTMLtoPHP』が追加されました。
htmltophp10

以上で、拡張子が.htmlでもPHPとして動くはずです。以下が動作結果。
htmltophp11
ちゃんと動いたようです。

ところで、以上の動作を行った所、ディレクトリに下記のようなweb.configファイルが作成されました。

どうやらこれが、web.configでの書き方になるようです。
試しに、Default Web Site(http://localhost/)のサブディレクトリにこのweb.configとPHPコードを書いたHTMLファイルをいれてブラウザで見てみるとPHPが実行されました。
htmltophp12
もちろん、web.configを削除すると、PHPが実行されなくなります。

Excelで『未』という文字を書いたセルをオートフィルした結果


今回は小ネタ。知っている人も多いかもしれませんが、会社で偶然発見してビックリしたので。

Excelで、ある予定表のようなものを作成し、まだやっていないものは右側にまだやってないという意味の『未』と書く表をつくろうと思いました。例えば下記のような感じ。
autofill1

ところで、Excelでは特定のセルを選択し、その右下にポイントをあわせてドラッグするとそのセルの内容や、特殊な値の場合は連続したデータがコピーされます。これをオートフィルというよう。
例えば、”hoge”と入力されているセルを下にオートフィルすると”hoge”という文字が並んだセルの列ができます。また、”1月”というセルを下にオートフィルすると”2月”,”3月”といった具合に連続した意味のある内容が入力されます。”=A1″というセルを下にオートフィルすると”=A2″,”=A3″というようになります。”1″の下に”2″と書かれたセルの両方を選択して下にオートフィルすると、”3″,”4″,”5″となります。”1″,”3″だった場合は、”5″,”7″,”9″と等差数列になります。じゃあ、”1″,”2″,”4″の3つを選択してオートフィルしたら、等比数列を判定して”8″,”16″,”32″となるのでは! と期待しましたが、そうはなりませんでした・・・。
autofill2
いまいちよく分からない・・・。4つ目以降は等差数列になってるようなのだけれども・・・(多分、1つ目と2つ目の差の数と、2つ目と3つ目の差の数の二つの数の平均の等差数列になってる)。
参考:Excel2010(エクセル2010)基本講座:オートフィル

で、本題。予定表の右側に『未』と書いた列を作ろうとして『未』と書かれたセルをオートフィルするとどうなったか。
こうなりました。
autofill3
一瞬、何が起こったのか分かりませんでした。しばらくたってようやく理解。干支のオートフィル機能なんてものがあるんですね。ところで、未ってなんだっけ? 『ミ』だからへび年? いや、それは巳年か(正解は、ひつじ年だそう)。

仕方がないので、上二つのセルに『未』と書いて2つとも選択し、オートフィルすることに。
autofill4
調べてみると、こんなことせずにコントロールキーを押しながらオートフィルすると『未』というセルだけの列ができるようです。
まだまだExcelには知ってるようで知らないことがありそうな気がします。