2012年12月31日月曜日

WaveToneのテンポ解析

なんとなく興味を持って耳コピー支援ソフトWaveToneを使ってみました。

適当な曲を解析して、気になるところをクリック。 「へぇ、この音はCなんだねぇ。Cってドレミ表記でなんだっけ?」みたいな風にポチポチさわりながらヘルプに書いてあることを確認していきました。

中国の漁船を海上保安庁が拿捕したらしいが?

英語も読めないのにyahoo.comのニュースを眺めてました。 ロイターの北京支社からのニュース、でいいのかな?

中国の漁船を海上保安庁が拿捕したらしいです。 日時はDecember 29, 2012のSunday eveningとあります。 日本のニュースサイトでそれっぽい記事は...これか

C# : ワイルドカードを使用して文字列検索をするコードを作成

C#ではワイルドカードを使用して文字列検索をするためのクラスが無いようなので作ってみました。 次のようにして使うことができます。

var m = new WildCardMatcher("test_*.html");
if(m.IsMatch(filename) )
{
    なんたら
}

使用できるワイルドカードの記号は次の2つです。

  • ? : 何でもいいので1文字。
  • * : 長さ不問の文字列。長さ0でもよい。

コードはこんな風になりました。

2012年12月29日土曜日

皿洗いが少なくて済む料理

少し前にこういう本が出てたようですね。

  • 油を使わずヘルシー調理! ポリ袋レシピ (ISBN-13: 978-4803003765)

私は料理はしないんですが、それは後片付けが面倒だからなんですよね。 料理自体は楽しいんで時間がかかってもかまいません。 でも後片付けが面倒でテンションが下がるので結局料理しないという...

「5分で誰でもできる簡単料理」みたいなのでも調理器具をたくさん使っているとやってみる気にはなりません。 その点ポリ袋料理なら後片付けが楽なレシピも有りそうだし、やってみてもいいかな? やっぱり皿洗いが少ないのが重要です。

ってことで↑の本は読まずに適当にやってみようと思いました。 まずはポリ袋の調達。

2012年12月28日金曜日

アメリカで「リアルな殺戮ゲームは捨てよう」というキャンペーン

小学校での銃の乱射事件があったアメリカで「暴力的なシーンのあるゲームを捨てよう!」と呼び掛けている子供がいるそうです。

日本では、そのニュースを見て「ゲームより先に銃を捨てろ」などと言っている人が多いです。 中には米ライフル協会が「残虐な事件はゲームのせい」と言ったのと混ぜて考えている人もいるようです。

「残虐なゲームを捨てる人」と「銃を所持する人」を同じカテゴリーで考えるのはちょっと乱暴ですね。 全てのアメリカ人が残虐なゲームを捨てて銃は手元に残しているとかっていうのは不自然でしょう。 中にはそういう人も居るかもしれませんが、アメリカ人全体を一括りにするのは間違いです。 その子がそういう事を呼びかけるのは間違ってないのでしょうから、変なケチの付け方にならないような配慮が必要ですね。

でもまぁ、自分だったら銃を回収してゲームを渡すキャンペーンとかを提案するかな。 「暴力は架空の世界の中だけにしよう!」とか「ゲームをしながら強盗はできない!」とかっていうキャッチコピーで。

2012年12月17日月曜日

データURIスキームを使ってbloggerに大きな画像を投稿すると?

以前のbloggerは画像のリンクのurlを変えるとサムネイルのサイズを変えられました。 それで原寸表示とかもできたんですよね。 しかし、今は仕様変更でできなくなっています。

今は画像のサムネイルをクリックしないと原寸表示されません。 それはちょっとした手間になってしまいます。 データURIスキームを使って画像を投稿したらそれが回避できるかもしれません。 自由にレイアウトできるかも?

とりあえず、確かめるために画像を1つ貼ってみましょう。 ファイルサイズが大きいものを貼っても誰も幸せになれないので、サンプル画像は白黒2階調の幅だけ大きいものにします。

2012年12月16日日曜日

色んなデータをデータURIスキームで埋め込んでみる

色んなデータをデータURIスキームで埋め込んでみました。 データURIスキームというのは「htmlやcssでuriの変わりにデータを埋め込む」というアレです。

データURIスキームの書式は、

data:[<MIME-type>][;charset=<encoding>][;base64],<data>

<a href="uri">説明</a>や<img src="uri"/>などのuriの代わりにコレを書きます。 <data>に書ける文字は通常のuriと同じです。 uriで使用できない文字を書くときにはエンコードが必要になります。 ファイルの種類に合ったMIME-typeを指定して、バイナリファイルならcharsetなしでbase64エンコードで記述。 テキストファイルならcharsetを指定して、必要に応じてURLエンコードまたはbase64エンコードをして記述します。

ここで試したデータのエンコードにはこちらのプログラムを使用しています。

java : URLエンコード

URLエンコードをする小さなプログラムです。 どこにでも載ってそうなモノですが、次のネタ(データURIスキーム)で使うので一応掲載。 リダイレクトして使う事を想定しています。

java SimpleUrlEncoder utf8.txt > res.txt

以下、コードです。

2012年12月14日金曜日

C# : ネットワークバイトオーダのバイト列からushort型の値を取り出す

udpのパケットなど、ネットに流れているデータはネットワークバイトオーダ(ビックエンディアン)になっています。 それに対してx86系のシステムはリトルエンディアンです。 相互にやり取りするにはビックエンディアン⇔リトルエンディアンの変換が必要になります。

ネットワークバイトオーダ → クライアントマシンのバイトオーダの変換にはBitConverter.ToInt16などとIPAddress.NetworkToHostOrderを組み合わせるようです。 (BitConverterの代わりにMemoryStream+BinaryReaderを使うやり方もあり。) まず、エンディアンがあっていようがいまいがBitConverterで得たい型の変数に読み込み、その後NetworkToHostOrderで変換という流れです。

エアロストリームの吸気口に換気扇フィルタを付けた

1年半前に買ったPC(ツクモのエアロストリーム)からまた異音が発生するようになりました。 前の異音と同じもののようです。

「面倒だけど仕方がない」ってことで前と同じように掃除。

...ってあまり汚れてないぞ?

電源ファンとグラフィックカードまわりを念入りに掃除してからPC起動。 音は変わりません。 「静音がウリ」ってのも買った理由の1つなんだけどなぁ。

まぁ、なっちゃったものは仕方がないかな。 遅きに失した感はありますが、少しでも悪化を防ぐために対策をしましょう。

2012年12月11日火曜日

生ゴミはゴミ缶へ

生ゴミをただビニール袋に捨てただけだと、小バエが寄って来る事があります。 そういう事態にならないようにするには、ビニール袋の口をしっかり密封すると良いでしょう。 いちいち縛ったり空けたりなんてできないので、100円ショップで保存用クリップを買ってくるのがお勧め。

ちなみに、保存用クリップというのはこんなヤツです。

間違って生ゴミ袋に使ったクリップを開封したポテチとかに使わないように「生ゴミ用」と明記しておきましょう。

で、それだけだとちょっと心配もあります。 もし袋に穴が開いていたら?

firefox : ピン止めされたタブのタイトルを表示

firefox17でのお話。 firefoxでタブをピン留めすると、タブからタイトルが消えてアイコンだけになります。 これだと意外に不便です。 例えば、Yahooの天気予報とニューストピックをピン留めした場合、両方同じアイコンになって判別できません。 最初の何文字かは表示したい。

そんなときは、userChrome.cssやアドオンのstylishなどでこう書きます。

java : Base64でのエンコード

Base64でエンコードするコードです。 どこにでも載ってそうなモノですが、次のネタ(データURIスキームがちょっと出てくる)で使うので一応掲載。 リダイレクトして使う事を想定。

java SimpleBase64Encoder pin.png > res.txt

お約束的なことですが、sun.misc.BASE64Encoderはいつ消えるか分からないので注意。 そういうわけでコンパイル時に警告も出ます。

2012年12月8日土曜日

C# : DNSのポートの扱い概要

DNSについて、漠然と「port53を使うんだなぁ」くらいしか知らなかったのでちょっとだけ調べてみました。 通信プログラム自体あまり触らない方だとはいえ、udpのサワリとか全然知りませんでした。 ちょっと反省。

まずはDNSサーバの種類から。 wikipediaなどの定番の解説を読んだ後、こんなページを発見。

これを全部実感コミで飲み込むのは、運用している人でないと無理ですね。 端末でコードを書く人はとりあえずリゾルバ(スタブリゾルバ)⇔キャッシュサーバ、キャッシュサーバ⇔コンテンツサーバの通信の概要を知っていれば良さそうです。 まぁ、上澄みをサラッと理解したくらいで次へ。

2012年12月7日金曜日

C# : Visual C#のコンソールプロジェクトでエントリーポイントを変更

Visual C#のコンソールプロジェクトはエントリーポイントの変更が簡単にできました。 適当なcsファイルに「static void Main(string[] args) 」メソッドを作って、プロジェクトのプロパティ、アプリケーションタブでスタートアップオブジェクトを選択するだけです。

コンソールプロジェクトをあんまり作らなかったとはいえ、今更感。