2009年12月13日日曜日

Twitterはじめるならまずはこれから ― ツイッター 140文字が世界を変える

「ツイッター 140文字が世界を変える」 コグレ マサト (著), いしたに まさき (著)

を読みました。Twitterってそもそも何。Twitterをビジネスに生かせるのか。Twitterにアカウント作ってみたけど、どうやったらつぶやきの輪は広がるのか。TweetとPublic Replyの違いは何?など、とにかく手っ取り早く知りたい人にお勧めの本です。

2009年12月12日土曜日

カスペルスキーお使いの方はThunderbird 3.0へのバージョンアップは要注意

Thunderbirdを2.0から3.0へバージョンアップしたら、受信トレイが真っ白。何も見えない。

Veno Blogにカスペルスキーの公式回答(?)あり。

結局、古いバージョンに戻すのが無難です。メールはなくなってません。落ち着いて、3.0をアンインストールし、2.0をここからダウンロードしてインストールします。

2009年12月9日水曜日

TwitterとGoogle翻訳をミックスする

グーグルの翻訳と辞書への取り組み--言葉の壁の撤廃に一歩前進を読んだ。Googleの翻訳とTwitterをミックスすると、言葉の壁を越えたコミュニケーションも可能になる気がする。だいたい、140文字ぐらいなら、Googleの翻訳技術でリアルタイム翻訳できるのでは?

2009年12月7日月曜日

Twitterとりあえず一週間

Twitterとりあえず一週間使って見ました。革命的メディアという書籍もありますが、ハドソン川の事故はリツィートされても、飢餓ってるナウ@アフリカはリツィートされないでしょうね。

2009年11月29日日曜日

Dependency Structure Matrixによるソフトウェアアーキテクチャ解析

ソフトウェアエンジニアにとってソフトウェアの良し悪しを定量的に表現できたらどれほど良いだろうか。ソフトウェアメトリックスと呼ばれ、これまでにもさまざまな試みがなされているが、浸透しているとは言えない。ソフトウェア設計は、結局は属人的なものなのか? Lattixと呼ばれるDSM(Dependecy Structure Matrix)を用いた面白いツールがある。DSMはそもそも生産工程の依存性を表現するために開発されたツール(Design Structure Matrix)だが、これをソフトウェアにも応用しようとする試みだ。ただ、非常に高価なツールであることと、試使用期間が短いことが難点。ユーザ成功事例が多数あれば、購入に対する説得性も増すかもしれないが、そういうた様子もない。

2009年11月28日土曜日

Twitterは1億総勢パパラッチと何が違うのか?

歳をとったせいか、Twitterを使ってみても、何が面白いのか、そして巷の書籍で言ってるような革命的な共感はまったく覚えない。単なるチャット、あるいは、有名人をフォローするたくさんのパパラッチと何が違うのか? Twitterに関するわかり易い記事(リンク)を誰か教えて欲しい。

新型ポメラ高すぎ

DM20 3万円超え⁉ 高すぎる、あり得ない。ネットブックが買えます。この価格、企業がターゲット? だとすると、暗号化機能が必要。最近、企業が情報漏洩に神経質だっていうこと理解してないのでは?

2009年11月23日月曜日

Understandすごい!

Scientific Toolworks, Inc.約25名程度の会社ですが、そこが提供するソースコード解析ツールUnderstandはかなり強力です。この手のフリーツールにDoxygenがありますが、Understandは解析スピードが桁違いに速い。更に、ソフトウェアメトリックス解析の機能も持ちます。日本の販売代理店はテクマトリックス(商社でしょうね)のようです。

2009年11月22日日曜日

DSiウェアの不思議?

DSiウェアにあったらいいなと思うことが2つある。

ひとつはゲーム(ウェア)の人気ランキングとユーザ評価。しかし、ゲームソフトメーカと提携を組む任天堂にこれを求めるのはビジネスモデルとして難しいかも知れない。

もうひとつは、ブログ編集用のウェア。DSiにはカメラがついている。ブログ編集用のウェアがあれば、簡単に写真と記事を投稿できる。しかし、これもまたゲームメーカのスタンスからすると単なるコミュニケーションツールの提供は難しいのかも知れない。

2009年11月21日土曜日

BlogPress便利

iPhoneアプリケーションのBlogPressというツールですが、シンプルで使い易いですね。私の中では大ヒット。同じようなツールにBlogWriterがありますが、それに比べると、BlogPressは横長キーボードにも対応しており、この点もGOOD。

2009年11月19日木曜日

NetWalkerの最初の一手

シャープNetWalkerの最初の一手は、辞書と電子ブック。シャープと言えば、電子辞書も製品として出しているはず、自分で自分のシェアを食う?ということでしょうか。

2009年11月11日水曜日

最悪の言語?JavaScript

「Java開発者のための Ajax実践開発入門」を読んで、JavaScriptというのは面白い言語だと思いましたが、一方でこんな最悪の言語はないと思うことも常々あります。
例えば、名前空間がないこと。最近のJavaScriptアプリケーションはAjaxの普及もあり、それなりに大規模です。JavaScriptを開発した当初は大規模向け言語なんて想像してなかったでしょうけど、大規模開発には、名前空間がない、たったこれだけでもとても不便なのです。Web技術はこんな言語に頼りつつ発展していくのでしょうか?

2009年11月5日木曜日

説得って何だ? エンジニアのための文章術再入門講座

エンジニアのための文章術再入門講座

他人を説得するための文章は論理的でなければならいでしょう。対比などのテクニックはあるものの、人間が理解できる論理は、おおよそ演繹か帰納しかないようです。この点では以外と単純。しかし、論理的なら説得できるか?と言うと、必ずしもそうではありません。経営者と技術者では視点が異なる。人間の判断は思っているより感情に流される。

相手の視点で、説明しないと、いくら論理的でも説得はできないのです。少々お高いですが、文章が苦手と思っている若手社会人のかた、「エンジニアのための文章術再入門講座」を読まれてはいかがでしょう。開眼へのヒントがあるかも知れません。

2009年11月1日日曜日

PSP × mylo = PSP go

PSP go、一瞬myloかと思いました。アップルはiPhone/iPod touchで格安ゲームが普及。任天堂のDS iはダウンロード版で苦戦? PSP goで、ソニーは今後どういう展開を見せるのでしょうか。楽しみです。

2009年10月11日日曜日

「作りながら学ぶOSカーネル―保護モードプログラミングの基本と実践 ~ 金 凡峻」 まとめ

「作りながら学ぶOSカーネル―保護モードプログラミングの基本と実践 ~ 金 凡峻」

とりあえず8章までまとめておきます。

  1. 最初はNASMのバージョンを間違えてはまりました。
    詳しくはこちらをどうぞ。
  2. 著書が指定しているバージョンよりもBochs 2.4.1のほうが便利です。
    詳しくはこちらをどうぞ。
  3. Bochsデバッガでブレークポイントを設定できます。ステップ実行するとより理解が深まります。
    詳しくはこちらをどうぞ。
  4. 誤植(と思われる部分)が多いですね(本当に誤植かどうかは出版社に確認してください)。
    1. pp.16(ハッチング部分の1行目)
      0x7c0:0xf → 0x7c0:0x5
    2. pp.63 (1行目、4行目)
      48バイト → 48ビット
    3. pp.119 (1行目)
      mov byte [es:edi] 0x0 → mov byte [es:edi] 0x6
    4. pp.179(図6-6 右)
      ESP → EIP
    5. pp.195 (2番目のハッチング部分直後の段落「現在のESPには、… はずです。」)
      最初のハッチング部分で

      lea esp, [PM-256]

      と明らかにESPを変更している。ESPがPM_Startであるはずがない。
    6. pp.211(isr_128_soft_intのコードで2箇所不足)

      pushad
       ↓
      pushad
      push eax ;; 追加

      mov GS, ax
       ↓
      mov GS, ax
      pop eax ;; 追加

      理由:
      pp.219の3行目で、すぐにPOP命令を用いてEAXを復元します。と言っている。
    7. pp.227 (図の右部分)
      論理アドレス → 物理アドレス
  5. 8章サンプルコードデバッグ中
以上、8章までまとめです。

2009年9月27日日曜日

bochsデバッガー

作りながら学ぶOSカーネル―保護モードプログラミングの基本と実践 ~ 金 凡峻」

bochs2.4.1のフォルダを見ると、bochsdgb.exeというデバッガーがあります。
ダブルクックして起動、そして、コンフィグレーションをロードしスタートします。
すると

・Bochs for Windows - Display
・Bochs for Windows - Console

という2つの画面が起動されます。
例えば、コンフィグレーションでChapter2のサンプルをスタートするようにしておいて、「Bochs for Windows - Console」のプロンプトで

<bochs:1>pbreak 0x07C00
<bochs:2>c

と打てば、boot.asmの先頭でブレークしてくれます。そこから、ステップ実行する場合は

<bochs:3>s

と打てば良いようです。

詳しくはここにデバッガの使い方があります。

追記

デバッガについてはここにもわかりやすい解説があります。
また、bochs 2.4.1の設定はこちらを参照してください。

2009年9月24日木曜日

NASMチュートリアル

良さそうなチュートリアルですね。

PC Assembly Language

こういうのは是非日本語訳がほしいです。スペイン語、中国語、イタリア語、フランス語はすでにあるようですし。

2009年9月20日日曜日

ページングサンプル動作せず

作りながら学ぶOSカーネル―保護モードプログラミングの基本と実践 ~ 金 凡峻」

ページングのサンプルコード(Chapter8)がNASM2.07とbochs2.4.1の組み合わせではどうにも動作しません。著者の指定しているNASM、bochsのバージョンでは動作するのでしょうか?

狙いは良い本ですし、構成も良いと思うのですが、細かい誤植・誤りが本当に多いですね。ある章ではiretを使い、別の章ではiretdを使う。また、ある章ではeaxを使うが、別の章ではecxを使う。一貫性についてももう少しなんとかなるような。下記URLにも良い指摘がありますので、皆さんも参考にされるのが良いと思います。

http://d.hatena.ne.jp/dogatana/20090609/1244553689

2009年9月13日日曜日

ユーザモードタスクの実行サンプル

作りながら学ぶOSカーネル―保護モードプログラミングの基本と実践 ~ 金 凡峻」

引き続きbochs2.4.1でサンプルコードの動作確認中ですが、Chapter7のkernel_5_User_Task.asmも表示されるはずの文字列が表示されません。

pp.219でisr_128_soft_intはEAXを媒介変数として使うため、PUSHして値(座標値)を臨時に保存しておきPOPすると言ってますが、実際のコードを見ると、そうなってませんね。というわけで


push eax ;; 追加

mov ax, SysDataSelector
mov DS, ax
mov ES, ax
mov FS, ax
mov GS, ax

pop eax ;; 追加

というふうに2行追加したら、ちゃんと表示されました。

2009年9月12日土曜日

キーボード割り込みハンドラサンプルコード

作りながら学ぶOSカーネル―保護モードプログラミングの基本と実践 ~ 金 凡峻」

引き続きbochs2.4.1でサンプルコードの動作確認をしていましたが、Chapter4のkernel3.asmがエラーなく動いているにも関わらず、表示されるはずの文字列が表示されない。

良く見てみると printfの中に

mov byte [es:edi], 0x0 ;; 本文 pp.119

と書いてあるではありませんか

mov byte [es:edi], 0x06


に変更したら、ちゃんと表示されました。

2009年9月6日日曜日

Bochs 2.4.1の設定

「作りながら学ぶOSカーネル―保護モードプログラミングの基本と実践 ~ 金 凡峻」でBochs 2.4.1

Bochs 2.4.1を起動すると、スタートメニューが表れます。



「Disk & Boot」を選択して「Edit」ボタンを押すと、フロッピーとカーネルイメージを選択する画面が表れます。
「Memory」を選択して「Edit」ボタンを押すと、ROM BIOSイメージとVGA BIOSイメージを選択する画面が表れます。



「Browse」ボタンで起動したいカーネルイメージを選択してください。このほかの設定はこの例の通りです。

「OK」ボタンを押してスタートメニューに戻り、設定を「Save」ボタンで保存してください。再びBochsを起動した場合は、「Load」ボタンで設定をロードしてください。

NASM version 2.07が原因でした

「作りながら学ぶOSカーネル―保護モードプログラミングの基本と実践 ~ 金 凡峻」

サンプルコードがBochs 2.4.1で動かない、とお伝えしましたが、動きました。Bochsのバージョンの問題ではなかったようです。
boot.asmの中で実行してる

jmp $+2
nop
nop

をNASM version 2.07でコンパイルすると、とんでもないところへジャンプしていたようです。良く読むと、著者はversion 0.99.06を使うよう言ってます。version 2.07とはjmp命令の仕様が異なるようです。

ちなみに、NASM version 2.07では

jmp short flush
flush:
nop
nop

と書きかえることで動作するようになります。Bochs 2.4.1はコンフィグレーションがGUIで設定できBochs 2.3.7より便利です。

2009年8月30日日曜日

Bochs 2.4.1では動かず

「作りながら学ぶOSカーネル―保護モードプログラミングの基本と実践 ~ 金 凡峻」

のサンプルコードをBochs 2.4.1でトライするがプロテクトモードへの移行で動かず。著者の言うように、2.3.7にしないと動かないのかな? とは言っても割と初歩的なあアセンブリコードなんですが、Bochsの実装がまずいのか不明です。

ちなみにBochsのログにはこんなメッセージが出てます。

00014096220e[CPU0 ] exception(): 3rd (13) exception with no resolution, shutdown status is 00h, resetting

2009年8月29日土曜日

ネットブック市場?

シャープがNetWalkerなる製品を発売するようですね。予想価格4万5千円前後というと、Intel Atomのネットブック(格安ノートPC)メモリ2GBが買えてしまう値段。これに対して、NetWalkerはフリースケールのi.MX515, メモリ512MBで、Ubuntu, Firefox, OpenOffice。どれぐらいのサクサク感が体感できるのか、興味深深です。それにしても、ネットブック市場っていったいどれぐらいの市場規模が期待されているのでしょう?

2009年8月13日木曜日

コンパイラ自作本ブーム?

CPU自作本、OS自作本に続いて、コンパイラ自作本の出版が最近多いです。青木氏の本もその1つです。
この本では、JavaCCを用いて、C♭(シーフラット)というC言語を改造した言語のコンパイラを自作します。文体もごく普通で、だらだらと無意味な会話もなく、比較的ストレスなく読めます。ただ、決して易しい本ではありません。第一に、JavaCCを使うという時点で、Java言語をある程度実践で使ったことがあり(特に、Java1.5ですが)、コンパイルの対象がC言語の改造版だという時点で、C言語もそれなりに実践で使ったことがある、という読者を(意図してか、意図せずか)想定しています。第二に、構文解析、抽象構文木、コンテキスト解析、意味解析を学ぶのに、改造版C言語は実践的ではあるが複雑過ぎという点です(紙面の都合から仕方ないのかも知れませんが)。もう少し易しい言語で見通しをつけてから、C♭言語で実践するほうが理解がスムースでしょう。