著作権侵害?

FCC(米国連邦通信委員会:Federal Communications Commission)という組織をご存知でしょうか。通信機器に関する規制の策定、許認可を行なうアメリカの政府組織です。
最近では、ブロードキャストフラグ(broadcast flag)を巡る一連のニュースでよく名前が出ていました。broadcast flagとは、著作権保護のための暗号化等を管理するためのフラグのようなものです。争点となっていたのは、FCCがデジタルテレビや記録機器等のデジタル放送信号を受信する全ての機器が本フラグを処理する機能を備えなければならないという決定を下したという点でした。このFCCの決定が、FCCの本来の権限の域を越えたものとして批判が噴出し、5月には、裁判所で規制破棄の判決がでています(詳細は関連リンク等を参照して下さい)。

FCC broadbandbroadcast flag導入の是非や、FCCに権限範囲についてはここで詳細に触れるつもりはありません。今回の話題はFCCのマスコット、その名も「ブロードバンド(broadband)」君です。Kids Zoneのキャラクターとして考案されたものようですが。。

百聞は一見にしかず。彼を見てください。どうみてもドラえもんです。よりにもよって日本の国民的キャラクターです。私は、トリビアの泉で初めて知ったのですが、調べてみると1年くらい前から存在しており、数多くのブログでもとりあげられいたようです。
著作権保護を云々行っている団体のマスコットがパクリ。しかも警告をうけてもなお一年間放置とは。。。

broadband君曰く、
「Have a question? send broadband an e-mail」

とりあえずはドラえもんとの関係を聞いてみようかと思います。

【関連リンク】
Federal Communications Commission (FCC) Home Page
FCCの「ブロードキャスト・フラッグ」義務付けは違法:米控訴裁裁定 (hotwired)
米でブロードキャスト・フラグに裁判所が「待った」(スラッシュドット・ジャパン)
ドラえもんもどき (Creative Commons in Japan)
米連邦通信委員会キャラはドラえもん (流れにまかせるコト)
僕、ブロードバンド君 パクられた国民的的キャラクター (DB blog)

たまには回り道を

前回の記事で、膨大な情報から有用な情報を探し出す検索力について触れました。いかに無駄なく目的の情報にたどり着くか。その方法を持っているかどうかで作業効率は大きく変わってきます。今回は、逆に一見「無駄」な過程をいかに生かすかという話です。

雑誌Interfaceに連載されているシニアエンジニアの技術草子というコラムがあります。私の好きなコラムなのですが、2005年7月号の中で、「紙の辞書が持つ秘めたパワー」についての話が載っていました。電子辞書を使用すると、紙の辞書と比べてはるかに早く単語の意味が検索できます。しかし、紙の辞書にも、
・単語を心の中で反芻しながら調べることで記憶に残りやすい
・またページ内の別の単語や用例も目に入るので付加的な情報も同時に記憶に残る
・さらには折り目などの使用する人のくせが手になじんでくる気持ちが乗りやすい
といった効果があるという話です。
これはペーパーメディアと電子メディアの比較ですが、電子メディア内でも同じことが言えます。例えば、前回紹介したanswers.com。検索ワードの意味に関するページが一発で表示されるようになっており、無駄なく目的の情報にたどり着けます。しかし、通常の検索エンジンを用いた検索の過程では、当初の目的にたどり着く過程で、多くの周辺情報や最新トピック等、当初の目的ではないものにも触れることができます。このような検索の過程で得られる情報にこそ、自分の知識を広げてくれる、あるいは、新しい発想の種となるようなものが多く含まれています。

つまり「いかに早く結果を得るか」だけではなく「いかに有意義な過程を経るか」が大切なんですね。
# 検索だけに限った話ではありませんが (^^)

たまには、検索対象一直線ではなく、ちょっと寄り道をしながら、ひとりブレーンストーミング(?)をしてみてはいかがでしょう。ブログだったらトラックバックリンクを辿っていったりするのも、どんどん世界が広がって楽しいですよ。

下記関連リンクに、検索エンジンを使った発想を支援してくれるサイトの紹介記事を紹介しておきます。入力キーワードにランダムな単語をくっつけた検索結果を表示してくれます。単純だけどなかなか面白い結果が得られることもありますよ。

【関連リンク】
どう組み合わせるか (百式)
ただ眺めるだけ

検索力

インターネットを使えば実に豊富な情報が手に入ります。検索エンジンでキーワードを入力して、関連リンクをたどって。
しかし、全てが有用な情報とは限らず、中には間違った情報ありますし、偏った見方によって書かれた情報も含まれています。情報が増えれば増えるほど、膨大な情報から本当に求める情報を見つけ出す「検索力」の重要性が高まってきます。

では、「検索力」を高めるにはどうすればいいのでしょうか。第一歩は「道具」を知ることでしょう。GoogleやYahooだけが検索エンジンではありません。確かにGoogleやYahooは非常に優秀な検索エンジンですが、目的によっては、より特化された「道具」の方が便利なものです。例えば、以前紹介したソースコード検索エンジンKodersもそのひとつでしょう。対象を絞られることで、検索の効率が上がります。

また、検索にかかる手間を省くというアプローチをとっているサイトもあります。日本ではまだ認知度は低いようですが、路線やテレビ番組の一発検索も可能となっているAsk.jpという検索エンジンがあります。検索欄に「新宿 目白」「終電 京都 名古屋」や「テレビ 大阪」等と書くことで、路線情報やテレビ番組情報が直接で検索出来ます。
asnsers.com(英語)では、検索ワードにヒットしたページの一覧ではなく、検索ワードの意味を示すサマリーページが表示されるようになっており、最小限のステップで検索ワードの意味に辿り付けるようになっています。

また、普段使っているものでも意外と知られていない便利な応用機能があったりします。例えばGoogleでも「和英 経済」「英和 communication」等と入力すると、和英/英和辞書へのリンクが表示されます。検索以外では、以前紹介したGoogle電卓もそのひとつといえるかもしれません。

ちょっとしたことを知っていると格段に効率が上がるということもあります。意外と知られていない便利な機能がないか、ちょっと調べてみてはいかがでしょうか。

【関連リンク】
Ask.jp
Googleの特殊機能
必要ないページ (百式)
後工程 (百式)

変数の命名規則

名は体を現す
Names and natures do often agree.
変数や関数の命名規則はどうしてますか。
個人の好みのあらわれるところではありますが、業務だとコーディング規約で強制されているものところもあると思います。

命名規則の例としては、複数単語からなる変数や関数の命名規則があります。

Camal記法
最初の単語のみ小文字で始め、以降単語の先頭文字は大文字
thisIsAnExample
Pacal記法
各単語の先頭文字は大文字
ThisIsAnExample
アンダーバー区切り
単語は全て小文字で区切りはアンダーバー
this_is_an_example


Camel記法やPascal記法は、JavaやC++のコーディング規約における変数や関数の命名規則としてよく見かけますし、アンダーバー区切りの命名規則はGNUコーディング規約(GNU coding standard)のようなC言語のコーディング規約における変数や関数の命名規則として見かけます。

複数単語の表現方法以外のところでは、意味名にその属性を示すプレフィックスをつけるというものがあります。その種の命名規則の中で、もっとも有名で悪名高いのものといえば、やはりハンガリアン記法でしょう。
Windowsプログラミングの経験があれば、一度は目にしたことがあるのではないでしょうか。Microsoftのプログラマが始めた記法で、意味名の前に変数の型(種別)を示すPrefixを付けるというものです。
# .NETでは使用しなくなったようです

意味を示すprefixを定義するというアイデア自体は良いと思うのですが、ハンガリアン記法が不評なのは、ひとつの変数にprefixが何個も付与された時です。

例えば、
char * apszName[]; /*名前の文字列へのポインタの配列*/
は、わかりやすいどころか意味不明の文字の羅列に見えてしまいます。

4756136494私としては、発音できない変数名はあまり好きではないのでハンガリアン記法もあまり好きではありません。また、charやlong等の変数の型をprefixとしてつけるのも抵抗があります。
ポインタの「p_」、メンバの「m_」、グローバル変数を示す「g_」等は良いと思うので使います。しかし、charやlong等の種別は、コードを読む上でほとんど役に立ちません。勿論、役に立つことがなくはないですが、それよりも間違ったprefixが当てられて気がつかないので、冗長なコメントと同様かえって混乱のもとだと思っています。

ハンガリアン記法には欠点も多いですが、統一した命名規則を定義するという点は他人のコードを解読する時には重要です。
まれに、統一されていないソースにであうことがありますが、第3者から見ると非常に混乱します。
少なくとも、自分なりの命名規則は持ちましょう。

【関連リンク】
Hungarian Notation (MSDN)
名前付けのガイドライン (MSDN)
ハンガリアン記法は悪なのか?(Lynxの迷走(瞑想?))
ハンガリアン記法ってナンデスカ?(それほど間違ってないプログラマ用語辞典)
GNU コーディング規約 - 変数,関数,ファイルの名前付け
Java言語コーディング規約 - ネーミング規約

【関連書籍】
C++ Coding Standards―101のルール、ガイドライン、ベストプラクティス
リファクタリング―プログラムの体質改善テクニック
プログラミング作法 ブライアン・カーニハン ロブ・パイク
組込みソフトウェア開発向けコーディング作法ガイド[C言語版] SEC
Code Complete第2版〈上〉―完全なプログラミングを目指して スティーブ マコネル

googleを電卓として使う

以前「gdbを電卓として使う」という記事を書きました。
桁あふれや桁落ち、型変換等の型を意識した計算には非常に重宝しますので、プログラミングのお供には最適だと思っています。

ただ欠点としては、gdbはLinux環境以外ではどの環境にでも入っているというものではない点です。
そこで、重宝するのがgoogleの電卓機能です。
googleの検索ボックスに計算式を書くだけです。

16進表記や2進表記も使えるので、デバッグ中の計算にも使えます。
もちろんこれらの混在表記も可能。
さらには、sin等の三角関数はもちろん、各種科学定数も使えるので、ちょっとしたけ計算には十分すぎるほどの高性能です。

しかし、google電卓が本当にすごいのはこのような基本的な機能ではありません。
詳しくは、下記の関連リンクを見て頂きたいのですが、単位計算や文字での計算等まで出来てしまいます。
例えば、
1A * 1V」 で、1Watt
1km in mile」で、0.621371192 mile
(10Mbps * 80%) * 60sec」で60megabytes
thirty four thousand five hundred sixty seven times two」で、sixty-nine thousand one hundred thirty-four
answer to life the universe and everything」で42
等です。
勿論、googleの語源となったgoogol(10の10条)も使えます。
googol / 10^100」は、1

とにかく、とても説明しきれないので、是非下記リンクを参考に試してみてください。

【関連リンク】
google電卓リファレンス
Google電卓のすさまじい機能一覧

使いやすさと分かりやすさ

仮想化によってユーザビリティを改善する。
そんな例のひとつとして、GmailをHDDのように見せてくれるサービスが百式さんで紹介されていました。

http://www.gmailharddrive.com/

内容はGmailの巨大なメールスプール(2GB)をバックアップストレージとして使うというものです。
アイデア自体は特に目新しいものではなく、実際にいろんなサイトで同様の機能を実現するためのスクリプト等が公開されています。
Googleで「Gmail バックアップ」等のキーワードで検索してみると、いろいろと出てきます。
今回紹介されていたサイトは、UIが誰にでも使えるような「分かりやすさ」が売りのようです。
同じようなコンセプトで、Explorer風にGmailスプールを厚かるソフトもあるようです。

GMail Drive shell extension

ただ、実際に試した方の感想などを見ていると必ずしも「使いやすい」ものでもなさそうです。
Explorerとshell、GUIとCUI。必ずしも「分かりやすい」ものが「使いやすい」ものとは限りません。
どちらも忘れてはいけない大事な観点だとと再認しました。

ちなみに、その他似たようなものを調べていて気になったのがGmailFSです。GmailアカウントをVFS mountできるそうです。

面白そうなので一度使ってみたいとは思ったのですが、残念ながら私はGmailアカウントを持っていません。
今後もしアカウントを取る機会ができれば一度試してみたいと思います。
# ちなみに、私はGmailアカウント取得に招待メールがいることを知りませんでした。
# 米Googleでは、時々新規登録リンクが不定期で現れるようですね。

【関連リンク】
スクリプト変化 (百式)
GmailアカウントをマウントするGmailFS (スラッシュドット ジャパン)
Gmail Filesystem のインストールと使い方 (Discreet Blog)
Gmailの実装 (blog.bluknews.com)

続きを読む

Caps lockとCtrl

「パリへ行って言葉に不自由しなかった?」
「僕はしなかった。けどパリの人が不自由してたよ」

プログラマの多くがまずOSをインストールしてまずやること。
その代表的なものが、Caps LockキーにCtrl(コントロールキー)を割りあてることではないでしょうか。
私のメインエディタはemacsですが、Ctrlが左下にあるのとCaps Lockの位置にあるのとでは、小指のストレスが10倍くらい違ってきます。

定番なのでご存知の方が多いと思いますがその方法を簡単に紹介しておきます。

■Linux (X window)
/etc/X/XF86Configのkeyboard sectionにある
# XkbOptions "ctrl:nocaps"
のコメントを外して、Xを再起動するだけです。
これで、Caps LockもCtrlキーにバインドされます。

置き換えではなく入れ替えをしたい場合は、
# XkbOptions "ctrl:swapcaps"
の方のコメントを外してください。
ただ、入れ換えても普通Caps Lockは使わないと思いますので、nocaps設定をお勧めします。

ディストリビューションによって、XF86Configの場所は違いますのでご注意下さい。
- Redhat Linux 7.x ... /etc/X11/XF86Config-4
- Vine Linux 2.x ... /etc/X11/XF86Config
最近のディストリビューションでは、XFreeではなくXorgが採用されているので、
/etc/X11/xorg.conf
になっているかもしれません。

なお、コンソールでCaps LockとCtrlを入れ替える、または置き換えるには別途設定が必要です。
keymap(キー配列定義ファイル)を書き換えるのですが、詳細は記事下の関連リンクの記事を参考にして下さい。

■Windows

私はAltIMEを使わせてもらっています。
このツールでCtrlとCaps Lockを入れ替えることができます。

できれば、入れ替えじゃなくて置き換えをしたいんですが。
レジストリをいじればできるようですが、そもそもあまりWindowsは使わないので入れ替えで使っています。

----

仕事では、人の環境でエディタを使うことがよくあります。
残念ながらこの場合、CtrlとCaps Lockがどうなっているかはわかりません。
プロであれば、Ctrlがどっちにあっても適応できるようになっておくことが必要ですね ^^;)

B000EXXEWE【関連記事】
・X Window Systemで[Ctrl]と[Caps Lock]キーを入れ替えるには
・コンソールで[Ctrl]と[Caps Lock]キーを入れ替えるには

【関連商品】
PFU Happy Hacking Keyboard Lite2 日本語配列かな印字なし USBキーボード ブラック PD-KB220B/U

gdbを電卓として使う


天体の運動はいくらでも計算できるが、人の気持ちはとても計算できない
ニュートン


gdbと言えば、gccやemacs等と並んでLinux上での開発環境の定番でしょう。
gdbは非常に強力なデバッガですが、今回はデバッガというよりは電卓としてgdbを紹介します。

皆さんちょっとした計算をしたいときに、どんな電卓(計算)ソフトを使われているでしょうか?
Windowsならアクセサリの電卓、Linuxではxcalc、bcあたりが多いでしょうか?
私は大抵コマンドラインのgdbです。

使い方はgdbをコマンドラインで立ち上げて、あとはprintコマンドに続けて計算式を入力するだけです。
例えば、128 * 256なら


(gdb) p 128 * 256 [enter]
$1 = 32768


とbcのようにコマンドラインで使えます。
16進表示したければ、

(gdb) p/x 128 * 256 [enter]
$2 = 0x8000

となります。入力式も16進が使えるので、


(gdb) p/x 0xffff + 3
$3 = 0x10002


なんてこともできます。

その他、カーソル上やCtrl+Pでヒストリが使えたり、
次のようにして、計算結果を再利用できたりします。


(gdb) p/x $2 + $3
$4 = 0x18002

以上の機能だけでも結構使いやすいのですが、
なんといっても他の電卓にはない便利な機能は「型」を指定できる点です。
例えば、次の例を見てください。


(gdb) p 0 - 1
$1 = -1
(gdb) p (unsigned int)0 - 1
$2 = 4294967295
(gdb) p 100 / 3
$3 = 33
(gdb) p 100.0 / 3
$4 = 33.333333333333329
(gdb) p (int)((char)0xff)
$5 = 0xffffffff


このように、型指定が計算結果にどう影響するかがインタラクティブに確認できます。
デバッグ中の式の確認なんかには非常に重宝する機能ですし、プログラミングの初心者の方にとっても、型やbit幅について教えるにも非常に良いツールだと思います。

Windows上で開発されている方も、cygwin+gdbで一度試されてみてはいかがでしょうか。

【関連書籍】
GDBハンドブック アーノルド・ロビンス 千住治郎 オライリージャパン
GDBデバッギング入門 リチャード・ストールマン ローランド・ペシュ
ふつうのLinuxプログラミング Linuxの仕組みから学べるgccプログラミングの王道 青木 峰郎
新版 明解C言語 入門編 柴田望洋

【関連リンク】
GDBマニュアル

クリックで救える命がある。

クリック募金というのをご存知でしょうか。
クリックするだけで協賛企業が1円の募金をしてくれます。募金対象は、地球環境から教育支援、医療支援と様々です。

http://www.dff.jp/
クリックで救える命がある。


クリック募金と言うと、うさんくささを感じる方もおられるかもしれませんが、きちんとしたサイトのようです。現在は、「コスモ石油」「エイブル」「花王」「ジャパンエナジー」「CHINTAI」「キリンビール」「味の素」「IPB」「カカクコム」といった企業が協賛しています。

私自身はブログサーフィンをしている中で、「すーぱーSEへの道」さんの紹介記事で知りました。記事へのトラックバックを辿っていくと、ブログを通じてクリック募金の輪が広がっていく様子がわかります。ブログで繋がる共感の連鎖。その力に素直に感動を覚えます。

微力かもしれませんが、本ブログのサイドバーのリンクにも追加しました。ブログ・Webサイトを持っておられる方がおられましたら、是非ともご協力お願いします。

また、上記以外のクリック募金関連サイトも紹介しておきます。こちらのサイトもぜひ訪問してみてください。

ネットサーフィンの始まりや終わりにちょっとワンクリック。偽善とか自己満足とかそんなことは気にせずに。

【関連リンク】
ブログで救える命がある (すーぱーSEへの道)
募金パーク
環境教育へのクリック募金

本のおすすめ

4274065979

4844337858

482228493X

4904807057

4873114799


プロフィール

  • Author:proger
  • 組み込み関係で仕事してます

ブログ内検索