2011年11月21日月曜日

[Tips]コマンドプロンプト関係(Windows XP)

■エクスプローラーから任意のディレクトリでコマンドプロンプトを開く

[スタート]-[ファイル名を指定して実行]
で「regedit」を指定。

左ペインの
HKEY_CLASSES_ROOT\Directory\shell
上で右クリックして [新規]-[キー]。

フォルダがshell直下にできるので「OpenNew」とフォルダ名に入れる。
HKEY_CLASSES_ROOT\Directory\shell\OpenNew
を選択すると右ペインに 「(既定)」とファイルみたいなのがでるのでダブルクリックして「値のデータ」に
「このフォルダでcmdを開く」を入れる。

さらに、左ペインの

HKEY_CLASSES_ROOT\Directory\shell\OpenNew
上で右クリックして [新規]-[キー]。

フォルダがOpenNew直下にできるので「Command」とフォルダ名に入れる。
HKEY_CLASSES_ROOT\Directory\shell\OpenNew\Command
を選択すると右ペインに 「(既定)」とファイルみたいなのがでるのでダブルクリックして「値のデータ」に
「cmd.exe /k "cd %L"」を入れる。

以上で終了。

エクスプローラー上で適当なフォルダを選択し右クリックするとコンテキストメニューに「このフォルダでcmdを開く」と出てくるのでそこをクリックすると選択したフォルダに移動したかたちでコマンドプロンプトが立ち上がる。



■コマンドプロンプトでの文字コードの変更

C:\>chcp
現在のコード ページ: 932

932というのはShift-JISのことです。

UTF-8にしたい場合は、

C:\>chcp 65001
Active code page: 65001

Shift-JISに戻したい場合は、

C:\>chcp 932
現在のコード ページ: 932

UTF-8にすると文字化けする。解決策はいくつか提示されていたけど完全では無いようです。。

もともとSQLiteで日本語入力、表示をコマンドプロンプトで行いたいというのが動機で
調べていたのですが、SQLiteStudioを使用すれば問題なく作業できることがわかったので
コマンドプロンプトのUTF-8対応はこれ以上深追いしません。


2011年11月13日日曜日

google革命の衝撃







google革命の衝撃


大きく4部構成となっている。

1. 技術的な話し
2. 幹部へのインタビュー
3. 広告ビジネス
4. 個人情報保護と利便性vs監視社会


1. 技術的な話し
backlinkやページランク、クローラーそして検索アルゴリズムと割りと詳し目に書いてあります。

2. 幹部へのインタビュー
一冊の本に主だった幹部のインタビューが載っているというのは珍しいようです。
この部分だけでも貴重とどこかの書評に書いてあり、興味を覚え購入した次第です。

3. 広告ビジネス
インドのgoogle長者の話しを引き合いにGoogle Adsenseの話しが載っています。
Google Adsenseについて理解できるのと、90年代終わりから2000年代初頭にかけ、「どうやってインターネットで収益をあげていくのか?」という問題がありましたがその答えが経緯とともに書いてあります。

4. 個人情報保護と利便性vs監視社会
すべてをgoogleに委ねて良いのか?という命題に対し、利便性と監視社会という2つの側面から功罪を説いています。

わたし自身は技術者ということもあり、「個人情報といってもどうせデータは細切れにされたものでアルゴリズムの入力とするだけのものだから特に問題にはならないでしょ」と軽い気持ちで考えていたのですが、たとえば最近の「カレログ」問題のように、わたしの抱いている安心感は、「Googleだから大丈夫」というものであり、もしGoogleがカレログのようなあたまの悪い会社だとそれは危機感を覚えるわけで。。(笑


他にもGoogle Booksのような著作権との関わりが不透明なもの、パーソナライズされた広告、データセンター、検索はできるがそこから考えを深められない学生の話し、「知の構造」など興味深い話題が多岐にわたります。


最後の方になると、なんとなく old type vs new type という感じもします。。年寄りのバイアスがかかっている感は否めない感じがします。(といっても全体的には客観的ですばらしい内容です)



おすすめします。


目次

プロローグ 「検索」がもたらすもの
1 天才集団の牙城 初めて明かされるその内部
2 “広告革命”―世界で何が起きているのか
3 既存のメディアを揺さぶるグーグル
4 誰が検索順位を決めるのか
5 グーグルにすべてを委ねるのか
6 膨張する巨大IT企業の行方
7 人類のライフスタイルとグーグル
エピローグ 「退化」する私たちの未来

iPad上の画像を3D化

Cylindrical Mirror Optical Illusions On The iPad

まずは動画をご覧ください。

iPad上の画像が円柱に3D画像のように映っています。

開発したのは お茶の水女子大の女子大生 suga, chihiro-san だそうです。すごい!

通販などでの展開を狙っているそうです。面白そうですね。


技術的には アナモルフォーズ というトリックアートの技法だそうです。

こちらの画像をみれば原理が一目瞭然ですね。


これを円柱を回すことで 360°シームレスに画像を楽しむためにはiPadに表示する画像をいくつか用意しないとだめですね。その辺を解決したのが今回の研究発表なのでしょう。(それと円柱にタッチペンを入れ HID (Human Interface Device)にしているところと)。

アイデアですねー。

GIZMODE http://www.gizmodo.jp/2011/11/ipad3d.html より

錯視とトリックアート入門
http://www.geocities.jp/sakushiart/index.html

2011年11月12日土曜日

整腸剤

わたしは便秘症でした。便秘だとガスがたまったり結構大変です。。

数年前から整腸剤として「ザ・ガード」を飲むようになりましたが今では便秘は解消され、ほぼ毎日便通があります。

(効果は飲み始めから3日くらいで出てきました。)




このザ・ガードを飲む前は「ガスピタン」なども試したのですが、あちらは食間に飲むのでなかなか飲むことが習慣化できませんでした。

ザ・ガードの場合は食後なので習慣化は容易です。

とはいえ飲み忘れはかならずあるので薬ケースを活用するようにしたところ、飲み忘れがなくなり薬を飲むことが習慣化できました。


3列x2行のケースで、1行を1日分、朝・昼・晩とみなせば二日分入る計算になり、管理がしやすいです。

便秘でお困りの方、おすすめします。

ツレがうつになりまして。





ツレがうつになりまして。

夫がウツになった夫婦の物語(マンガ)。実話。

夫は元は仕事がバリバリできる、明るい性格のかただったようですが、

ウツになったらここまで人が変わるのか、、と恐怖を伴いつつ実感できます。

わたし自身、仕事が非常な修羅場を迎え、ちょうどその職場には人の気持ちをまるでわからない、理解出来ない上司がおり、「このままだとウツになるだろうな。。」と思いつつ働いた経験があります。

半年間、残業時間は100時間を毎月超え、仲間は次々とうつ病になっていきました。。

1年間のうちに5人ですよ、5人。

このマンガを読み、その時の気持ちがよみがえって来ました。。うつ病にならなくて本当によかった。。と。。

映画もあるようです。評判がよいようですね。今度観に行こうと思います。


2011年11月11日金曜日

暗号技術入門-秘密の国のアリス




暗号技術入門-秘密の国のアリス

難しい技術をわかりやすく解説することに定評ある結城浩先生のご著書。
やはり非常に分かりやすかったです。

技術の概要を押さえ、攻撃される場合のこともしっかり分かりやすく書かれている。

基礎固めに最適な本だと思います。


目次
第I部 暗号

第1章 暗号の世界ひとめぐり
第2章 歴史上の記号
  --他人が読めない文章を作る
第3章 対照暗号(共通鍵暗号)
  --1つの鍵で暗号化し、同じ鍵で復号化する
第4章 ブロック暗号のモード
  --ブロック暗号をどのように繰り返すか
第5章 公開鍵暗号
  --公開鍵で暗号化し、プライベート鍵で復号化する
第6章 ハイブリッド暗号システム
  --対称暗号でスピードアップし、公開鍵暗号でセッションの鍵を守る

第II部 認証

第7章 一方向ハッシュ関数
  --メッセージの「指紋」をとる
第8章 メッセージ認証コード
  --メッセージは正しく送られてきたか
第9章 デジタル署名
  --このメッセージを書いたのは誰か
第10章 証明書
  --公開鍵へのデジタル署名

第III部 鍵・乱数・応用技術

第11章 鍵
  --秘密のエッセンス
第12章 乱数
  --予測不可能性の源
第13章 PGP
  --暗号技術を組み合わせる職人芸

第14章 SSL/TLSM
  --セキュアな通信のために
第15章 暗号技術と現代社会
  --不完全なセキュリティの中で生きる私たち

畑村式「わかる」技術



畑村式「わかる」技術

失敗学の畑村氏の著書。

印象に残ったことをキーワードとして記すと、「要素・構造・テンプレート」、上位概念という思考の立体化・論理化、経験主義の誤りの指摘、課題設定、仮説立証、話し上手のわけ、聞き上手の理由、画と文章の併用の効用、逆演算思考、日記・手帳の書き方

ロジカルシンキングの手法を実践してそこからの経験をまとめた本、、という印象を受けました。

非常に有用な本だと思います。

セックスボランティア



セックスボランティア

障害者の性について真正面から取り組んだ本。

最初は「なんか気持ち悪いな。。」と思っていたのですが読み進める内に健常者と障害者の違い、そもそも人間にとっての性とはなんなのか?と考えるようになりました。

「障害者は天使だ」という論が昔赤くて有名な朝日新聞の「声」欄にのり論争を引き起こしたことがありますが障害者も人間であり、性に関する興味も当然ある。

重い内容でありかつ、軽い内容でもある性について問題意識を持たされました。

福祉関係に進みたい方は読むべき本だと思います。

ロジカル・シンキング―論理的な思考と構成のスキル




ロジカル・シンキング―論理的な思考と構成のスキル

MECE, so what? why so?の3つの考え方を使っていくのですがその前に「課題」、「答」、「相手に期待する反応」に関して非常に感心しました。

またちょうどタイムリーにこの本で学んだことが仕事で役立ちました。

少ない考え方やツールでロジカルシンキングをする。

単にツールを紹介するレベルではありません。

非常に有益な本でありもう一度今度はノートにまとめながら読んでいって地道に練習していきたいと思います。

ネットワークの謎―コンピュータ同士は何を会話しているのか?




ネットワークの謎―コンピュータ同士は何を会話しているのか?

軽い読み物を読みたくて購入。

TCP/IPの説明からwindows network, 無線LAN, DNS, 携帯、VoIPなど軽く触れています。

本書で概要を押さえ興味のある分野を深く研究するなど良いと思います。

説明にちょっと怪しいところもありましたが全体としていい本だと思えました。


目次
1 ネットワークとは
2 データが伝わるために必要なもの
3 Windowsネットワークのしくみ
4 無線LANが混信しないわけ
5 DNSとドメイン名の関係とは
6 ネットワークサービスを支える技術とは
7 携帯電話・IP電話がつながるわけ

マンガ日本政治入門




マンガ日本政治入門

政治には金がかかる!ってことがよく書かれています。

他にパーティや議員年金の話。内容もよかったですが江本孟紀(たけのり)氏はまともな政治家なんだなと思えたことが一番大きいかな?

ちょんまげ議員が水をかけた時、永田(この間メール問題で議員辞職した人)の野次が「扇千影と何発やったんだ?」だったそうな。そりゃー、水くらいかけちゃいますわ。。

とりあえず政治家にも政治家秘書にもなりたくないですね。。もっと魅力的な見返りがあってもよさそうなのにね。。

面白かったです。買う価値は十分あると思います。

ちょいモテvs.ちょいキモ



ちょいモテvs.ちょいキモ

いやはや、こんな世界があるんだなぁ。とハラを抱えつつもちょっと悩んだり、面白かったです。「勝ち組」と目される業界でも「キ」と「モ」があることをコミカルに論じて(?)います。

フェルディナント氏の御著書はこれで3冊目だけど、この本の構成が一番読みやすかったです。

しっかし「自主的開脚女子」って、、すごい表現力ですね!(笑

マスタリングTCP/IP 入門編



マスタリングTCP/IP 入門編

OSI7階層モデルの説明が分かり易く、またTCPのwindow制御と輻輳についても理解できました。

アプリ層の説明はざっとであり、また物理層の説明は斜め読みでしたが全体として大変いい本だと思います。

さすが評判がいいだけありますね。

目次
第1章 ネットワーク基礎知識
第2章 TCP/IP基礎知識
第3章 データリンク
第4章 IPプロトコル
第5章 IPに関連する技術とIPv6
第6章 TCPとUDP
第7章 ルーティングプロトコル(経路制御プロトコル)
第8章 アプリケーションプロトコル
第9章 物理層、伝送媒体と公衆通信サービス
第10章 ネットワーク利用環境とその変化
付録


この本のあと「マスタリングTCP/IP応用編」を読み、リチャード・スティーヴンスに行こうかと思います。


まるくすタン―学園の階級闘争



まるくすタン―学園の階級闘争

マルクス、エンゲルス、レーニン、トロツキー、スターリンと登場する擬似歴史ものエロ小説。

最初は物珍しくって面白かったけど、、途中からだれました。。

下部構造についての考察は実に興味深いです。(嘘

世界の日本人ジョーク集




もうハラを抱えて笑いました。

本当に面白かったです。

意外に日本ってよく思われてるんですね。。もちろん悪くも思われてるんだけど著者の解説を読み、なるほどなるほどと頷きながら読めました。

単に自虐で終わりってわけではないです。

それにしても知的なジョークって論理的には正しいけど内容がめちゃくちゃ、ってのが面白いんですね。

日本人はジョークを解さないって話が載ってるんだけどジョークを解さないんじゃなくて論理的思考に慣れてないってことなんだろうって一人で納得していました。

非常にお勧めです!

豆腐バカ 世界に挑む



「大豆は家畜のえさ」ってことでアメリカ人の嫌いな食べ物 No.1 だった豆腐をアメリカの食卓に乗せることに成功した男の熱い物語。。

異文化との衝突っぽいのは「ふーん」って感じでした。豆腐、食べたくなります。まぁそれはいいとして最後の森永の5則がよかったので引用。
-----
森永乳業株式会社 五則
一、いやなこと困難なことは自分から率先してやれ
  寝ていて吾が児はおこせない
一、万事第一等主義
  茸狩りと山菜とりは早いが勝
一、方向とゆくさきをきめてすぐ断行せよ
  スタートの一歩はゴールで百歩の差
一、失敗をおそれるな
  大地をうつ槌のほか百発百中はないものと思え
  冒険の勇気なき者に勝利の栄冠はない
一、随処創造
  人智は無限である
  常に想いを新たにし独自の天地をきりひらけ
このうらに人の路あり花の山
-----
「方向とゆくさきをきめてすぐ断行せよ」が一番気に入りました。

ローマ人の物語Ⅳ




リーダーに求められるもの。
・知性
・説得力
・肉体的な耐久力
・自己制御の能力
・持続する意志
以上。

冷めた頭脳が「知性」と「説得力」。

熱い心が「持続する意志」。

面の皮の厚さが「自己制御の能力」。

か。

マキアヴェッリ語録




16世紀に書かれたhowto本?

このマキアヴェッリさん。かなりの人間観察力のある人だなと思った。
適当に引用。
・人間とは、その本性からして、恩恵をほどこされた場合と同様に、恩恵をほどこす場合にも義理を感ずるものである。
・人間というものは、危害を加えられると思いこんでいた相手から親切にされたり恩恵をほどこされたりすると、そうでない人からの場合よりはずっと恩に感ずるものである。
・ある人物が、賢明で思慮に富む人物であることを実証する材料の1つは、たとえ言葉だけであっても他者を脅迫したり侮辱したりしないことであると言ってよい。
 なぜならこの二つの行為とも、相手に害を与えるのに何の役にも立たないからである。
 脅迫は、相手の用心を目覚めさせるだけだし、侮辱はこれまで以上の敵意をかき立たせるだけである。その結果、相手はそれまでは考えもしなかった強い執念をもって、あなたを破滅させようと決意するにちがいない。

この本は何度も何度も読み返す価値があるし、一つ一つの語録を徹底的に吟味する価値のある本だと思いました。

窓口としてのリーダー業務

リーダーの仕事はチーム内をまとめるということと、チームの外とやりとりをする窓口としての役割と大きく2つあると思っています。


窓口として役割で求められる能力に「よい通訳者」があると思います。


おもしろいものでチームが異なれば言葉も考え方も違ってきます。


だからリーダーは他のチームから言われたことを自チーム向けの言葉に変換する必要があるし、自チームの言葉を他チームにわかるよう変換しなければなりません。


この通訳業務はほぼ日常的に必要となります。通訳とは要するに、「相手チームの立場に立って考える」ことができればいいわけですよ。


このような基本的なリーダーの役割、能力をまったく理解していない人がリーダーになると、いろいろとトラブルわけです。。


しかも下回り(下位レイヤー)になるほど多いような気がします。

おそらく、サービスを提供する側で、サービスを提供される側の立場がわからないのでしょう。


(「サービスを提供する側」といっても「顧客満足度」云々という日本的な意識はありません。共産主義社会の官僚のサービスに対する意識がそれに近いと思います。)


コーディング能力は高いかもしれないけど、マネージメント能力がおそろしく低いリーダーさんと一緒に仕事をしないといけなくなると、たいへんです。


他チームがいう言葉を理解しようとする姿勢。
自チームの言葉を他チームがわかるように説明しようとする心。

大切にしたいものです。

無効な日付の補正方法

日付設定をするときに、たとえば 2010/02/30 などとありえない日付を指定したときにその値を適当に補正してほしい場合に使います。

mktime()でおかしな値でもよいので日付を突っ込んで、秒数にして(ここで補正がかかっている)、localtimeで日付を取り出します。

ということですね。

// for Linux
#include 
#include 

int main(int argc, const char** argv)
{
    if (6 != argc) {
        printf("年 月 日 時 分\n");
        printf("USAGE: %s 2009 11 2 13 58\n", argv[0]);
        return 0;
    }
    
    time_t timer;
    struct tm t;
    struct tm *t_st;

    int year, month, day, hour, min;
    char *endptr;

    year  = strtol(argv[1], &endptr, 10);
    month = strtol(argv[2], &endptr, 10);
    day   = strtol(argv[3], &endptr, 10);
    hour  = strtol(argv[4], &endptr, 10);
    min   = strtol(argv[5], &endptr, 10);

    printf("%d/%d/%d %d:%d\n", year, month, day, hour, min);

    t.tm_year = year - 1900; /* 2001年 */
    t.tm_mon  = month - 1;       /* 5月    */
    t.tm_mday = day;      /* 20日   */
//    t.tm_wday = 0;       /* 日曜日 */
    t.tm_hour = hour;      /* 14時   */
    t.tm_min  = min;      /* 20分   */
    t.tm_sec  = 0;       /* 00秒   */
    t.tm_isdst= -1;      /* 夏時間無効 */

   /* 構造体を時刻に変換 */
   timer = mktime(&t);

   printf("時刻 : %ld\n",timer);

   /* 再変換して確認 */
   t_st = localtime(&timer);

   printf("年  : %d\n",t_st->tm_year+1900);
   printf("月  : %d\n",t_st->tm_mon+1);
   printf("日  : %d\n",t_st->tm_mday);
   //printf("曜日: %d\n",t_st->tm_wday);
   printf("時  : %d\n",t_st->tm_hour);
   printf("分  : %d\n",t_st->tm_min);
   printf("秒  : %d\n",t_st->tm_sec);

   return 0;
}

VC++とGCCのコードの共存

ソースの文字コードと改行コードはとある規定により UTF-8 LF で保存することになっています。

ところが VC++2005 では SJIS CRLF じゃないと都合が悪い?ようでいろいろ問題が出ます。。


  • UTF-8

ビルド時、C4819のワーニングが出ます。

どうもVC++はSJISかBOM付UTF-8をご所望のご様子

参考:[VS2005]やたらに警告C4819が発生する

抑止するには #pragma を使うのがひとつと、VC上プロジェクトのプロパティでたしか[C/C++]-[詳細]-[無視する警告]とか設定があったと思います。これで指定すれば黙ってくれます。

ちなみに VC++は UTF-8 BOM付 なら大丈夫なようですが、今度は GCC が処理できなくなります。



  • LF

改行コードの問題とUTF-8の文字コードを適切に処理できないことのコンボなんでしょうが、、ビルド時に不可解なエラーに遭遇します。

日本語コメントの前後でエラーが頻発します。

どうすればいいかというと、

// コメントです[↓]    ※ [↓]は改行を表す



// コメントです [↓]

とすればいいようです。(改行の前にスペースを挿入する)


もうひとつは、、日本語のコメントを書かないことです。。(むり)


もしコメントを削除してもかまわないようなら

//.*\n ==> //\n

と正規表現を使った置換で削除してもいいと思います。

(/* コメント */ の削除の仕方はわからない。。)



  • 文字コード、改行コード変換


$ nkf -w -Lu --in-place ファイル

-w はUTF-8への変換
-Lu はLFへの変換

--in-place はファイル上書き指定(タイムスタンプ更新)

--overwrite ではなく、 --in-place を使います。
--overwrite はタイムスタンプの更新をしないため、svn などを使っていたときにファイル内容に変更があるにも関わらずタイムスタンプを見て変更がないと判断されてしまうという現象があるためです。(当たり前の仕様ですが)


  • 文字コード、改行コードの調べ方


文字コードの種類や改行コードは file コマンドで調べることも可能です。

ASCII C program text, with CRLF line terminators

UTF-8 Unicode C program text

という具合に表示されます。

また秀丸を使っているなら、
http://d.hatena.ne.jp/ikuramura/edit?date=20100116
[その他]-[動作環境]で『上級者向け設定』にチェックを入れて、[ウィンドウ]-[高度なウィンドウ]-『エンコードの種類』を『常に表示+改行コード』にすればそのファイルの文字コードと改行コードの種類がタイトルバーに表示されるようになります。

プロットフォームの識別方法あれこれ

windowsでもlinuxでも動く、プラットフォーム独立なソフトってよく作るけどその時の小ネタとかメモ


  • GCCの定義済みマクロを調べたいとき
$ cpp -dM /dev/null

  • コンフィグ用のヘッダー
myconfig.h でプラットフォームの識別をして、各プラットフォームごとの処理はおのおののヘッダーに割り振る。

#ifndef __MY_CONFIG_H__
#define __MY_CONFIG_H__

#if defined(linux) && defined(__arm__) // ターゲット機器用
    #include "my_config_arm.h"
#elif defined(linux) && defined(__i386__) // PC Linux用
    #include "my_config_pc.h"
#elif defined(WIN32) // Windows用
    #include "my_config_win32.h"
#else // プラットフォーム不明
    #error
#endif

#endif // __MY_CONFIG_H__

トーキョー無職日記

大学中退、手に職もなく、当てもなく上京して無職生活を送る主人公がなんとか就職して生活を安定させていく、実話に基づく物語。


自分も一歩間違えばこのマンガの主人公「ハルオ」と同じ運命を歩んでいただろうなぁというのが率直な感想。

「ハルオ」はもがきつつもあまりやる気を見せず、
気ばかり焦る。また友人とうまくコミュニケーションをとれず、
また友人との知的な会話にもついていけない。。

友人の成功も嫉妬心にさいなまれ素直に喜ぶこともできない、、

読みながらつらくなりました。

あまりに自分に当てはまることが多くって。。(;_;)

買ってよかったです。面白かったですよ。

はじめに

ikuramuraです。家電メーカーでソフト屋さんをやっています。
このブログではプログラミングに関するあれこれや、興味がある雑多なことを書いていこうと思います。

ご愛顧ください。