HOME / 日記 / 今日の書評的なところ

Date: 2010/02/19 |  このエントリーをはてなブックマークに追加  |  Tags: Solaris, OpenSolaris, Howto, 利用法

今日の書評的なところ

割と本を買うので、買って目を通したら、書評的なものを書くことにしました。

実は私は「積ん読」はしないタイプで、積ん読するぐらいなら「インデックススキャン」を、10分程度するタイプです。必要ならば脳内でインデックス検索してドリルダウンします。そのため、最初のインデックススキャンでは内容は完全には理解してないことが多く、こんな本というメモで、終わってしまうこともあります。

というわけで

  • 自分のためのメモを残す
  • みんなに紹介できるといいな
  • アフィリエイトでちょっと小銭が入ればいいな((というか、amazonのアレがどの程度の確率なのか知りたいな(笑)))

という為に、書こうかなと。

HTML5&API入門

HTML5を記述からAPIの使い方まで、雑記を記載している本。本の流れとしてはFirefox3.5以降などの新しめのブラウザでは一部の機能が使えるのだから、いまHTML5を勉強しておこーよ!的なところのようです。今、使える機能を中心に、今後の物も含め、実利用できるサンプルコードが記載されており、解説がわかりやすいです。

「HTML5のAPIを使ってがっつりHTML5で行くぜ!」とやるのも面白いですが、実利用ではWEBページにHTML5の機能を軽く先取りする程度は、ビジネスサイトでも行けるかも知れませんね。例えば、Formの新しい機能や、IEでは前からサポートされていたルビ、detailsなどはこのサイトでも使うと楽しいかも知れません。

軽く発祥のきっかけ的なところが書いてありましたので、ほとんどノーマークだった自分的には、歴史的な流れや各社の綱引き情報も想像出来て非常に参考になりました。僕のブログのようにお遊び用ならともかく、ビジネスで使うには主流動向を押さえる必要がありますから。リッチなWEB制作は、今後FlashなのかHTML5なのかという考察が多い中、プロプライエタリなFlashでなくHTML5をという流れも多いのは事実です。まあ実際の所はしばらくFlashであろうなぁとは思いますが、実験はしておいて損はないでしょう。AppleはPostScriptフォントをMacに入れるときにもAdobeと綱引きしていた実績はありますし((結果、TrueTypeをMSと一緒に作っておきながら、最後に鞍替えしてPSフォントを採用した))、MSはSilverlightをガンガン押してますが敗退色が見えたら、いつも通りHTML5をメインに添えてスーパーセットのようなSilverlightを押してくるんじゃないかなぁと(笑)

って、大分書評からは離れてしまったのでこの辺で。

最新コンパイラ構成技法

これは高いけど、本当に良い本。

15分ぐらいでさらっと流し見しかしてませんが、インデックススキャンだけでなく、ドリルダウンをしたい誘惑にかられまくりでした。

基本は、コンパイラを作成するためには・・・という本で、どうやらアメリカでは教科書として使われている本のようなのだけれども、これって日本でも教科書にする学科があるのかなぁ。そう言う勉強出来る学生が羨ましいです。

この本が優れているのは、実装による動作までの流れがある点。

これは、実際の理論と実装が延べられているというだけでなく「実装による動作までの流れ」までが、ストーリーづけられているのが特徴。

「私の解釈では」コンパイラを作成するためには、大きく分けると3つあり、

  1. テキストで書かれた言語を解釈する部分。
  2. 上をデータ化する部分
  3. データ化したものを実行する形に治す部分
    • インタプリタであればデータ化するものを実行するエンジン。

という、流れがあります。1は、Yacc(Bison)/ lex(flex)などを使い作りますが、これに関する本は、日本語でも少ないながらも多少はありました。

この本が面白いのは、その後の処理として、2、3の話がきちんと書かれていることです。2はプログラマの勘所によるものが多く、体系づけられた書籍があまり日本語でないのが(多分)実状だと思うのですが、そこがきちんと書かれてるのが面白いです。3番目はいざ実行するに当たる部分で、コンパイラとインタプリタは実装のフェーズで方法論が異なります。

さて、この本では、私が上げた上の3つの点がどのように書かれているかというと、

  1. テキストで書かれた言語を解釈する部分。
    • 字句解析、構文解析、抽象構文、意味解析
  2. 上をデータ化する部分
    • 駆動レコード、中間コードへの変換、基本ブロックとトレース、命令選択、生存解析、レジスタ割当
  3. データ化したものを実行する形に治す部分
    • データフロー解析、ループ最適化、静的単一代入形式・・・

などなど。

面白いのは、その後のセクションで、ガーベジコレクションや、最適化に関する話まで延べられていることです。このあたりになると、実際にコンパイラを使っている人達や、インタプリタを使っている人達にとっても、「中がどのように動いてるのか?」という所で想像がつき、より深い理解が進むかと思います。

こういう本に10年ぐらい前に会いたかったなあ(笑)

実は、私はその昔、会社でHeartfelt Heartというゲームソフトウェアをつくったのですが、これのコンパイラはYacc/Lexで書かれており、入れ子や四則演算、関数などがつかえるシナリオコンパイラがありました。

追ってその後、Symreqという単純なお問い合わせプログラムを作ったのですが、この中で、その部分的なものを簡単なツールで入れ込んであり、Symreq Scriptみたいなものがかける様になっています。ブロック要素を抜き、1行解釈型にしましたが、コンパイラの部分はYacc/Lexで、実際の実行エンジンはPerlで作っているPerlの上で動くインタプリタです。こっちはオープンソースなのでソースは全部公開されてます。バグも多いし我ながら酷い状態だし、メンテもされてませんけど(笑)、シンプルな実装例にはなっているかと思います。

また、PukiWiki互換Wikiパーザをもつ弊社のWikiPlusですが、どうしても、Wikiパーザに入れ子がかけなかったり、Wikiパーザ中で四則演算が出来なかったり、色々不満があったりします。そう言うのを含めて、パーザをYacc/Lexで書き直した、Brand New Wiki Parserなるものを作りたいな〜とは前々からずっと思ってはいるものの、こういう部分デバッグも僕の仕事の役割的にも難しいので、主となって開発するのはむりだろうなぁと思ってたりしました。

久しぶりに、そんなことを思い出してしまうような書籍でした。

時間が出来たらじっくり読みたいなと思います。



日記

Recent Updates

ディスクの不良を確認する(iostat -EnのError等)

ディスク関係のスタックをざっくり書くと次の様になっています 例、SAS Expanderを使う場合、 例、AHCIなどを使う場合、 これらのエラーは、次の様なコマンドで知ることができます。 出力結果例 このなかで、 たとえば、SATAディスクを利用している際に負荷が上がってしまい、ディスクの応答が間に合わないシチュエーションでは、Transport Errorが一気に …
»続きを読む

2017年、新年明けまして、おめでとうございます。

日記/2017年、新年明けまして、おめでとうございます。

新年明けまして、おめでとうございます。今年もよろしくお願いします。 昨年中は、皆様にお世話になりました。 昨年は、コツコツと3年程前から行ってきた改革がある程度完成された年で、この先5年、10年を見据えて、次のフェーズへと進む為の土台が完成した年でもありました。 それにキャッチアップする形で、個々の従業員一同が、役割を自覚し、明確に動けた年であったかと考えています。 …
»続きを読む

RSA鍵認証のみにし、Password認証を無効化する

意外に覚えきれなくて、いつも忘れるので、メモついでに残しておきます。 古いOpenSSHや、SunSSHの場合は、これも無効にします。 ユーザ目線でのザックリとした説明を。OpenSSHではなく別のSSH実装も含めて考えているので、OpenSSHのソースをじっくり読んだわけではないため、間違ってたらすみません。 まず、Password認証を無効にする場合、 PasswordAut …
»続きを読む

Nexus7 2013をMarshmallow(Android 6.0)化

OTAでない方法で。 だいたい ここに書いてある方法 なんだけど、adbなどが一式使えている状態で。 まずは自分の機種のものをダウンロードする。僕のは、 Android 6.0 Marshmallow for Nexus 7 2013 Wi-Fi 。tgzを展開し、zipも解いておく。 まずはboot loaderへ。 bootloader自体のアップデート。一式、updat …
»続きを読む

OS X 10.11 El Capitanで、phpのモジュールインストール

Yosemiteからのアップデートは割と簡単です。なぜならYosemite時に、すでにapache 2.4になり、php 5.5になっているから(笑 アップデート前に、まずはphp.iniとhttpd.confをバックアップしておきましょう きになるなら、hostsとかapache以下全てをバックアップしておいてもいいかも。 後はEl Capitanにアップデートする。 アッ …
»続きを読む

EasyAcc Powerbank PB4000CB

スマフォTips/モバイルバッテリー/モバイルバッテリー製品レビュー/EasyAcc Powerbank PB4000CB

薄型のモバイルバッテリーEasyAcc Powerbank PB4000CBです。 今や、モバイルバッテリーは大型のものが好まれるのか、隙間無く商品があります。20,000mAh越えで、「でけえ!」とか言ってますけど、大きいのを探せば、100Wh(27,000mAh)、200Wh当たり前、探せば500Wh(135,000mAh)とか、もっともっとあるのです。用途がどんどん異なっていくので …
»続きを読む

EC Technology Sports Headsets S10-JWH07B

デバイスTips/Bluetooth/EC Technology Sports Headsets S10-JWH07B

Bluetoothのスポーツヘッドセット、 S10-JWH07B について。 今までブログに記載することはなかったのですが、実は割とBluetoothと言うか無線型のヘッドフォンを沢山持っています。赤外線や独自物、Bluetoothなどいくつもストックを持っていたりします。普通の人からするとマニアです。でも、マニアからみるとそうでもないレベルです。 ただ「ヘッドフォンの音質」というの …
»続きを読む

静岡県内をVPNでつなぐ(割と特殊な例)

静岡というのはある意味特殊な土地で、ほとんどのインターネットプロバイダのPOIは静岡でつながれておらず、NTT西圏内のどこかで繋がっているので、大抵大阪折り返しになる。仮に静岡県内にPOIがあっても、だいたい静岡でルーティングしてないので、やっぱり東京折り返しになってたりする。例え 同じプロバイダを使っていたとしても 。 だから静岡←→静岡のVPNは、静岡←→東京や、静岡←→大阪よりも遅 …
»続きを読む

最新  |  << 前ページ  |  次ページ >>  |  最初