tk_onoの技術ブログ

技術、思考系

2013年6月に読んだ本をブクログで振り返る

今月はひさしぶりにローマ人の物語
あと1冊で完結です。
tkonoの本棚 - 2013年06月 (3作品)
powered by booklog

2013年5月に読んだ本をブクログで振り返る

今月は多めの4冊。そのうち3冊が電子書籍でした。
「コーディングを支える技術」を読んでから、新しいプログラミング言語を学びたい欲が高まっています。これまで言語の違いにはそれほど興味がなかったんだけど、なぜその言語が作られたのかとか、それを使うと何が便利なのかとか、単純に文法の違いとか、そういうのおもしろいのでは、という考えに変わってきました。
tkonoの本棚 - 2013年05月 (4作品)
Plack Handbook
宮川達彦
読了日:05月29日
{book['rank']
powered by booklog

JITコンパイラについて20分で調べたこと

今日の社内勉強会でJITコンパイラという単語が出てきて、そういえば名前だけ知っててどういうものか知らないなと思ったので、渋谷から横浜までの電車に乗ってる間に調べたことをメモしておく。


間違ったこと書いてたらごめんなさい。

情報源はWikipediaです。


・実行時に機械語にコンパイルして実行する
・一方、インタープリタは実行するたびに解釈しながら実行する
・コンパイルするのに余計な時間がかかるが、実行速度は速い
・実行時にコンパイルするので時間的制約がある。よって事前にコンパイルするのと比べて高度な最適化はできない
・事前コンパイルと比較した利点はコードの配布が容易な点と、実行環境が具体的にわかった状態でコンパイルできるので細かい最適化 がしやすい点
・またやり方として、最初から全部のコードを対象にコンパイルする方式と、インタープリタ方式で実行しながらよく実行されるコードをコンパイルする方式がある
・コンパイルした結果を保持するためのメモリが必要
・変数の型、オブジェクトのプロパティが安定してると速度が出やすい

Evernoteに書いてコピペしたら箇条書きの点が消えて悲しくなった。

kobo Touchで「はじめてのフレームワークとしてのFuelPHP」を読むためにやったこと

kobo Touchを買いました。

 

達人出版会さんの「はじめてのフレームワークとしてのFuelPHP」を購入して、EPUB形式のファイルをダウンロード後、USB接続したkobo TouchにコピーしてUSB接続を解除。そしたら、「コンテンツを処理しています」の表示が進捗9%のままフリーズしてしまう、という現象が発生しました。

 

このファイルを削除すると正常に動作します。試しに同じ本のPDF形式のファイルをコピーしたら、これも正常に動作します。そこで、kobo Touchに最初から入っていたファイルと同じ拡張子.kepub.epub(ダウンロードしたファイルは.epub)に変更したところ、正常に動作するようになりました。

 

理由はよく分かりませんし、この対応方法が正解かどうかもわかりませんが、記録として残しておきます。

 

Base64のパディングって不要じゃないか?

Base64といえばバイナリデータを64種類の文字で表現するエンコード方式として有名ですが、3バイトずつ4バイトのASCII文字に変換する際、足りない部分をイコール(=)で埋めますよね。

 

このイコールって不要じゃないか?

 

って思ったんですね。

だって、単に元のデータのビット列を6ビットずつ変換していくだけなのだから、別に結果が4バイトの倍数になっている必要ってないんじゃないか?と。

 

そう思って色々調べてたら,Wikipediaに書いてありました。

From a theoretical point of view, the padding character is not needed, since the number of missing bytes can be calculated from the number of Base64 digits. In some implementations the padding character is mandatory, while for others it is not used. One case where padding characters are required is when multiple Base64 encoded files are concatenated.

http://en.wikipedia.org/wiki/Base64

 

Base64エンコードしたデータを連結した場合、区切り川からなくなるから、そういった場合だけパディングが必要だってことでしょうか。

エンコードしたデータが1つだけの場合はなくてもいいみたいですね。