Hatena::ブログ(Diary)

130単位

2008-12-28

はじめてのJava 1日目

Java参考書の購入前調査結果 - 130単位

結局2冊とも購入しました。Amazon品切れの『Eclipseで学ぶはじめてのJava』ですが、書店でも見当たらなかったので確認してもらったところ、どうやら出版社にも在庫がないらしいです(12/25時点)。それで逆にどうしても欲しくなったため、4店舗目*1にしてようやく見つけて購入に至ったのでした。

で、初級者向きで開発環境構築についてもわかりやすく書かれている『Eclipseで学ぶはじめてのJava』のほうから読み始めています。

Eclipseで学ぶはじめてのJava

基礎編が一通り済んだので、以下自分なりにまとめてみます。

Chapter1 プログラムについて

  • プログラミング言語の分類
    • コンパイラ型言語、インタプリタ型言語、中間言語
  • Javaは中間言語
  • "Write Once, Run Anywhere"
    • JavaはOSの違いに影響されずに動作する

Chapter2 まずは、実行してみる

  • Javaのソースコードの拡張子は「.java」
  • コンパイルに成功するとクラスファイルが作られる。拡張子は「.class」
  • コマンドプロンプトでのコンパイル
    • javac SampleClass.java
  • コマンドプロンプトでの実行 (.classは不要)
    • java SampleClass
ちなみに

printlnをprintInと勘違いしてコンパイルエラーになりました。

C:\java>"C:\Program Files\Java\jdk1.6.0_03\bin\javac" Sample2_1.java
Sample2_1.java:3: シンボルを見つけられません。
シンボル: メソッド printIn(java.lang.String)
場所    : java.io.PrintStream の クラス
                System.out.printIn("Hello, world!");
                          ^
エラー 1 個

シンボルとかさっぱり意味がわかりませんでしたが、のちに解決しました。lnはlineの略だそうです。

Chapter3 Eclipseを使う

  • JDK(コンパイラや実行環境)とEclipse(IDE)をインストール
  • プロジェクト〜クラス作成手順
    1. 新規→プロジェクト→Javaプロジェクト
    2. 新規→フォルダー 「target」「target/classes」を作成
    3. 新規→ソース・フォルダー 「src/main/java」を作成
    4. プロジェクトから、プロパティ→Javaのビルド・パス→デフォルトの出力フォルダー 「target/classes」に設定
    5. binフォルダの削除
    6. 新規→クラスでクラス作成
  • ※このフォルダ構成はプロジェクト管理ツールMaven2に合わせたものらしい
  • [Ctrl]+[Space]でコードの補完
  • Eclipseは保存すると同時にコンパイルを行う
  • [Alt]+[Shift]+[X]→[J]で実行

Chapter4 いろいろ表示してみる

  • mainメソッドがプログラムの最初に処理される
  • [Ctrl]+[Shift]+[F]でコードのフォーマット
  • Javaプログラムはクラスが1つ以上存在している必要がある
  • クラス名とファイル名は一致している必要がある
  • System.out.println()は改行される
  • System.out.print()は改行されない
  • 文字列はダブルクォーテーションで囲む
  • 改行などは「¥」でエスケープする
  • シングルクォーテーションで囲む場合、記述できるのは1文字だけ

*1:ビックカメラ書籍コーナー

2008-12-25

新卒さんとの面接で刺激を受ける

ここのところ採用の応募がなんとなく増えているようで、週に2回くらいは面接があったりします。自分も何度か参加させていただいています。

本日面接させていただいたのは、新卒の方。たいへん若いです。そして、大きな衝撃を受けました。

インターンをしていた会社で、その携帯サイトのコンテンツとしてゲームを作ったというのです。当然ながら興味を持ち、本人の携帯で自らデモしてもらうことに。すると、これが実に良くできたゲーム。シンプルかつ、いい意味で中毒性があり、さらに企画性も備えている*1優れたものでした。

やはり、自ら作ったものが何かしらある人は強い、とあらためて感じました。

そんなこんなで、面接のほうは終始いい雰囲気で進みました。ただし、それでは少し危険なんじゃないかと感じた、なぜか冷静な自分もいました。もし入社後にギャップが生じてしまったとしたら、お互いが不幸になってしまいます。ましてや今回は新卒の方です。なので、普段なら言わないようなことも、あえて自分なりに伝えてみたりしました。

まだどうなるかはわかりませんし、本人としてもすぐには決断できないものでしょう。余裕があれば、他の会社も受けてみるといいのではないかとも思ったりします。行動すれば、自然と自分の糧になります。学生生活の最後、ぜひ悔いのない3ヶ月間を過ごしてほしいと思います。

*1:会社の事業内容とマッチしたコンセプト

2008-12-24

Java参考書の購入前調査結果

Java参考書を購入するにあたり、調査をしてみました。とりあえず2つに絞ってみました。

1冊目

プログラミング言語Java (The Java Series)

『プログラミング言語Java (The Java Series)』

Javaのおすすめ参考書 - カレーなる辛口Java転職日記
http://d.hatena.ne.jp/JavaBlack/20070522

はてブ数の多いこの記事で、「Javaの原典」として紹介されていました。しかしAmazonでの評価は芳しくありません。どうも翻訳が微妙らしいです。

プログラミング言語Java (The Java Series)」を含むブログ - はてなキーワード
http://k.hatena.ne.jp/asinblog/4894717166

書籍への言及ブログを一通り読んでみましたが、翻訳がダメという意見はほとんどありません。また、書籍がものすごく分厚いらしいことがわかりました。

2冊目

Eclipseで学ぶはじめてのJava

『Eclipseで学ぶはじめてのJava』

Eclipseで学ぶはじめてのJava」を含むブログ - はてなキーワード
http://k.hatena.ne.jp/asinblog/4797344520

2008年発売の、比較的新しめの書籍です。言及ブログの中には「新人研修に最適」というような評価がちらほら。Amazonでの評価も高いです。ただし現在(12/23)品切れ中。


そんなわけで。2冊目のほうがAmazonで品切れということもあり、実際の書店で手にとってみてから購入しようかと思います。

2008-12-22

PHP forループでサイズ0のファイルを自動作成

Subversionで大量のファイルをインポートまたはコミットするとき、たまに失敗します。「tempfile.tmpが開けません」とかいうエラーメッセージが出てきます。おそらく権限の問題なのでしょうが、解決法がわかりません。仕方がなく手動でtempfile.tmpを作ってみます。すると今度は「tempfile.2.tmpが開けません」と出ます。うっとうしいです。ちまちま作成しては何度も失敗するのは嫌なので、自動で作成することを試みてみます。

最初はコマンドプロンプトでやろうとして、ファイル作成までは調べてわかった*1のですが、繰り返しがわからず断念。

説明

bool touch ( string $filename [, int $time [, int $atime  )

(中略)

ファイルが存在しない場合、ファイルが生成されます。

404 Not Found

この関数を利用してPHPで作ってみました。

<?php
    touch("tempfile.tmp");
    for ($i = 2; $i < 1000; $i++) {
        $file = "tempfile." . $i . ".tmp";
        touch($file);
    }

これで、999個のファイルが出来ます。ファイルが出来るのはスクリプトファイルと同一ディレクトリの中です。あとは出来たファイルをエラーの起きているフォルダに移動して完了です。

ちゃんとしたWebアプリなどで同様の処理をおこなう場合は、file_exists()でファイルの存在を調べてから作成するのが良いようです。

*1:fsutil file createnew [filename] [size]

2008-12-19

会社で鉄板イタリアンスパを作ってみた (レシピつき)

f:id:deeeki:20081220024221j:image

社内ルール「誕生日はサプライズ」の一環です。あくまで一環で、今回は主役が主役なだけに(?)相当手の込んだものとなりました。詳しくは主役他のブログにて。

自分が担当したのは、パスタ食材や鉄板の手配から実際の料理まで全部。ひっそりと着実に仕事を全うさせていただきました。以下レシピです。

用意するもの (1人前)

f:id:deeeki:20081220024222j:image

調理手順

下準備
  1. あらかじめパスタを茹でておく
  2. タマネギ、ピーマン、ウインナーを切っておく
  3. 鉄板を温めておく
  4. 卵を割ってかき混ぜておく
イタリアン
  1. 温めたフライパンにサラダ油を引く
  2. ウインナーを投入して炒める (10秒)
  3. タマネギ、ピーマンを投入して炒める (20秒)
  4. パスタを投入、少しだけ水を足して炒める (10秒)
  5. コショウを振りかけ、さらに炒める (40秒)
  6. パスタが温まったらソースを投入して絡める (10秒)
仕上げ
  1. 温めた鉄板にサラダ油を引く
  2. 中央にパスタをのせる
  3. 周りに卵をかける
  4. 卵が良い感じに固まったら木皿にのせて完成

f:id:deeeki:20081220024223j:image

作り終えて

2人前分作ってみたのですが、食べていただいた方からは予想以上に好評価でした。ありがとうございます。といっても、もともとパスタソース自体が美味しいのだと思います。そのうえ、鉄板にのせた見栄えがより印象を良くしたというところでしょうか。

それにしても、学生時代のバイト経験が意外なかたちで役に立ちました。久々の料理でしたが、無事に作り終えられて良かったです。

念願のMacユーザーとなったsimizuくん、あらためておめでとうございます。

2008-12-18

エクセル/複数のハイパーリンクをまとめて削除

自分と同じく竜王戦最終局の行方が気になっているであろう、kashimaさん風のタイトルにしてみました。


さて本題。Website Explorerというソフトで、Webサイトの階層マップをEXCEL形式で出力してみたのです。そしたら、ファイル名のセルすべてにハイパーリンクが貼られていました。

不要なのでまとめて削除しようと思ったのですが、セルを複数選択して右クリックした場合、「ハイパーリンクの削除」の項目が消えてしまっています。さすがに1セルずつ消すなんてことはやってられないので、ググってみることに。

以下のサイトに解決法が載っていました。手順通りに進めて、実際に上手くいきました。

ハイパーリンクの一括解除:Excel エクセルの使い方-入力/編集
http://www.relief.jp/itnote/archives/000320.php

ただ少し引っかかったのが、手順の最初の、値が「1」のセルをつくる部分。空白のセルでは代用できないものなんだろうか?という疑問が生じました。で、空白のセルでも試してみたところ、問題なくリンクが削除されました。

というわけでアレンジさせていただいた手順が以下です。

  1. 空白のセルをコピー
  2. ハイパーリンクの削除をしたいセルを選択
  3. 「形式を選択して貼り付け」で演算を「乗算」にして貼り付け

手順の最後をショートカットで表すと、[Alt]+[E]→[S]→[M]→[Enter]になります。なお、動作はExcel2003にて確認しました。

参考リンク

形式を選択して貼り付けの演算とは:Excel エクセルの使い方-入力/編集
http://www.relief.jp/itnote/archives/000318.php

演算について。

【IT-rescue】Excelハイパーリンクを一括で削除する方法
http://memo.jj-net.jp/263

マクロを用いる方法。

2008-12-17

JavaScript 空白を0として合計金額を計算

以下のような、銀行振込の入力フォームをつくるとします。

振込 :
手数料:
合計 :0
振込 :<input type="text" id="pay" name="pay" />
手数料:<input type="text" id="fee" name="fee" />
合計 :<span id="total">0</span>
  • 合計は(入力がある度に)自動で計算して表示したい
  • 空白の場合は0として計算したい

というような仕様にした場合の、合計を計算するコードを考えてました。

良くない例

最初に書いてみたのがこちら。

function sumTotal() {
    var pay = document.getElementById("pay").value;
    var fee = document.getElementById("fee").value;

    pay = (isNaN(pay)) ? 0 : parseInt(pay, 10);
    fee = (isNaN(fee)) ? 0 : parseInt(fee, 10);

    document.getElementById("total").innerHTML = pay + fee;
}

ただ、これではうまくいきませんでした。どちらかが空白の場合、合計のテキストには「NaN*1」と表示されてしまいます。

返り値の確認

Firebugのコンソールを利用して、isNaN()に空白を通した場合を確認してみます。

>>> console.info(isNaN(''));
false

falseが返ってきます。数値でなくはない、ということに一応はなるのでしょうか。であれば、parseInt()は0が返ってきても良さそうな気がしますが…実際は。

>>> console.info(parseInt(''));
NaN

0ではなく、NaNが返ってきます。ちなみにこれらの挙動は引数がnullの場合でも同様です。

上記のコードでは、

  1. 空白をisNaN()で評価したときはfalseが返される → 0にならない
  2. さらにparseInt()を介すことでNaNになる
  3. NaNが含まれる演算となり、最終的な出力もNaNとなる

のような現象が起こってしまうことがわかりました。

良い(と思われる)例

というわけで、改良版です。

function sumTotal() {
    var pay = document.getElementById("pay").value;
    var fee = document.getElementById("fee").value;

    pay = (isNaN(pay) || !pay) ? 0 : parseInt(pay, 10);
    fee = (isNaN(fee) || !fee) ? 0 : parseInt(fee, 10);

    document.getElementById("total").innerHTML = pay + fee;
}

三項演算子の条件部分にて、値自体の評価をorでつなげています。これにより、空白(あるいはnull)の場合でも0となるようにしています。

あとは、合計出力の関数を両テキストボックスのonblurイベントに設定して完了です。

*1:Not a Number:数値でない

2008-12-12

PostgreSQL COALESCEでNULLを空白に変換

PostgreSQL NULL同士をイコールとして比較したい場合 - 130単位

この記事の続きです。

記事の最後で空白とNULLの比較について少し触れました。が、その方法はまだ調べてすらいなかったため、次回のネタにしようと考えていました。

そしたら、試すよりも前にトラックバック先で教えていただきました。ありがとうございます。

COALESCE関数

coalesce()を使ってNULLを空白に変換してから比較してみてはどうでしょうか。比較対象が文字列型であれば、

coalesce(a.pref, '') = coalesce(b.pref, '')

のようになると思います。

IS NOT DISTINCT FROM - iakioの日記 - postgresqlグループ

COALESCE関数は、引数の中でNULLでない最初の値を返すものみたいです。これを用いることによって、イコール演算子で比較することが可能になります。前回の例でいくと、以下のようになります。

CASE WHEN COALESCE(a.pref, '') = COALESCE(b.pref, '')
      AND COALESCE(a.city, '') = COALESCE(b.city, '')
      AND COALESCE(a.town, '') = COALESCE(b.town, '')
      AND COALESCE(a.tel, '')  = COALESCE(b.tel, '')
     THEN '1'
     ELSE '0'
END AS same_address_flg

実際試してみて、正しく判別できていることがわかりました。

連結してから比較?

ところで、最初に自分が思いついた方法は、「||」を使って文字列を連結してから比較するというものでした。SQL例は以下。

CASE WHEN (a.pref || a.city || a.town || a.tel) = (b.pref || b.city || b.town || b.tel)
     THEN '1'
     ELSE '0'
END AS same_address_flg

しかし、実際にやってみたところうまくいきません。NULLを含むイコールの比較と同様に、NULLが含まれていると連結した結果もNULLになってしまうみたいです。

そんなわけで、なんにしてもCOALESCE関数を用いるのが良いようです。

参考リンク

SQL の COALESCE 
http://sonic64.com/2003-07-29.html

co・a・lesce - goo 辞書
http://dictionary.goo.ne.jp/search.php?MT=coalesce&kind=ej

goo辞書で発音が聞けますが、「こーあれす」と読むようです。「れ」にアクセント。


4798123358
PostgreSQL徹底入門 第3版

2008-12-11

PostgreSQL NULL同士をイコールとして比較したい場合

tbl_personal
personal_id, personal_name, pref, city, town, tel
tbl_home_address
personal_id, pref, city, town, tel

こんな感じで、現住所と自宅住所を別々のテーブルで管理しているとします。で、結合したビューを作る際に、住所が同じかどうかを判別できるカラムを新たに設けたいとします。

判別部分を単純に書き出してみると、以下のようになるかと思います。

CASE WHEN a.pref = b.pref
      AND a.city = b.city
      AND a.town = b.town
      AND a.tel  = b.tel
     THEN '1'
     ELSE '0'
END AS same_address_flg

一見これで良さそうな気がしますが、データによってはうまくいきません。うまくいかないのは、いずれかの値がNULLだったときです。

入力のどちらかがNULLの場合、通常の比較演算子は("不明"を意味する)NULLを生成します。

9.2. 比較関数および演算子

と、マニュアルには書いてあります。"真"とも"偽"とも評価されなくなってしまうようです。

ではどうすればよいか。再びマニュアルの引用です。

比較を行う他の方法として、以下のようにIS [ NOT ] DISTINCT FROM構文があります。

expression IS DISTINCT FROM expression

expression IS NOT DISTINCT FROM expression

(中略)

IS NOT DISTINCT FROMは非NULL入力では=と同じですが、両方の入力がNULLであれば真を、片方のみがNULLの場合は偽を返します。

9.2. 比較関数および演算子

これを踏まえ、「IS NOT DISTINCT FROM」を使って作ったビューのSQLが以下になります。

CREATE VIEW vw_personal AS
SELECT
a.personal_id,
a.personal_name,
a.pref,
a.city,
a.town,
a.tel,
b.pref AS home_pref,
b.city AS home_city,
b.town AS home_town,
b.tel  AS home_tel,
CASE WHEN a.pref IS NOT DISTINCT FROM b.pref
      AND a.city IS NOT DISTINCT FROM b.city
      AND a.town IS NOT DISTINCT FROM b.town
      AND a.tel  IS NOT DISTINCT FROM b.tel
     THEN '1'
     ELSE '0'
END AS same_address_flg
FROM tbl_personal a
    LEFT OUTER JOIN tbl_home_address b
        ON (a.personal_id = b.personal_id);

留意点としてあるのが、空白とNULLを比較した場合には、値が同じ(真)とは評価されないということ。これに対応するには、もう少し工夫が必要といえます。


09/01/29追記:

「IS NOT DISTINCT FROM」が使えるのはバージョン8.2以降のようなので、注意が必要です。「COALESCE」を使うのがいいと思います。

E.18.3.3. 問い合わせの変更

  • IS NOT DISTINCT FROMを追加しました。(Pavel Stehule)
    この演算子は等価演算子(=)と似ています。しかし、NULLを返すのではなく、右辺と左辺がNULLの場合に真と、片方だけがNULLの場合に偽と評価します。
E.222. リリース8.2

2008-12-10

meeboを使ってみた

meebo.com
http://www.meebo.com/

複数のメッセンジャーを統合利用可能なWebアプリケーションです。

現在中国で妄想にふけているliucheng氏と会話してみたときのスクリーンショット

f:id:deeeki:20081210152844j:image

インストール不要のため、手軽に利用することができます。

詳しい使い方は以下で(2006年の記事です)。

ITmedia Biz.ID:複数のメッセンジャーを統合する──meebo
http://www.itmedia.co.jp/bizid/articles/0607/27/news012.html

2008-12-07

カルドセプトの全国大会予選に行ってきた

カルドセプト DS スペシャル サイト
http://ds.culdcept.com/

公式全国大会 > ワイヤレス予選大会 > 大会速報 名古屋
http://ds.culdcept.com/modules/ajcc2008/index.php/sokuho/wireless_nagoya.html

運良く当選でき、出場してきました。

f:id:deeeki:20081208013442j:image

結果は残念なものでしたが…。

f:id:deeeki:20081208013443j:image

試合開始直前の緊張感と高揚感。興奮につつまれた会場の一体感。濃密な空間で味わうことができたすべてが、忘れがたい貴重な体験となりました。

カルドセプトをやろう

大会の総括時、プロデューサーの方が以下のようなことを話されていました。

カルドセプトの魅力は対戦。みなさんの周りでもぜひ対戦を広めて、より多くの人に手にとってもらえるようになるとうれしいです」

カルドセプトがきっかけで、普段あまり交流のない人と話ができたり、自分が仲介役になって対戦をしたり、ということをつい最近経験したりしました。これからもオンオフ問わず何かしら発信し続けて、ほんの少しでも貢献していけたらいいかなぁと思った次第です。

おまけ

イベントスペースにあったPerfumeのサイン。せっかくなので撮ってみました。

f:id:deeeki:20081208013444j:image:w240

実はナディアパークへ来たのはこのインストアライブ以来*1。まさかこのようなかたちで拝見できるとは。不思議な巡り合わせを感じました。

2008-12-06

PHP 複数件データ削除時のページング調整

  • データが一覧表示される
  • ページング機能がある
  • チェックボックスなどによりデータを複数件削除できる
  • 削除後も一覧表示される

という仕様の画面があるとします。

で、例えばその最終ページにて、表示されている全件のデータを削除したとき。削除後にはデータが存在しなくなりますから、表示ページを変更する(1減らす)必要があります。

そこで、ページングを調整して有効な表示ページを返す関数をつくってみました。

<?
/**
 * ページング調整
 *
 * @access  public
 * @param           $current_page   現在ページ
 * @param           $limit          1ページ表示件数
 * @param           $total          全件数
 * @param           $del            削除件数
 * @return                          調整後ページ
 */
function pageAdjust($current_page = 1, $limit = 0, $total = 0, $del = 0) {

    //全件数(以上)削除か、表示件数指定なしの場合、1を返す
    if ($del >= $total || $limit <= 0) {
        return 1;
    }

    //データ削除後の最終ページを取得
    $last_page = ceil(($total - $del) / $limit);

    //削除後最終ページが現在ページより小さければ最終ページを返す
    if ($last_page < $current_page) {
        return $last_page;
    }
    //そうでなければ現在ページを返す
    else {
        return $current_page;
    }
}

//テスト
echo pageAdjust(1, 50, 120, 1);     //1
echo pageAdjust(1, 50, 120, 50);    //1
echo pageAdjust(2, 50, 120, 1);     //2
echo pageAdjust(2, 50, 120, 50);    //2
echo pageAdjust(3, 50, 120, 19);    //3
echo pageAdjust(3, 50, 120, 20);    //2

途中の最終ページを取得する処理を詳しく書き出してみると、

  1. 全件数から削除件数を引く → 現在の件数 ($total - $del)
  2. 現在の件数を1ページ表示件数で割る (/ $limit)
  3. 切り上げして総ページ数(=最終ページ)を得る (ceil)

ってなことをやっています。


ちなみに、チェックしたIDを保持してページをまたいで削除可能な実装の場合にも、うまく動作するようになっていると思います。

参考リンク

PHP: ceil - Manual
http://jp.php.net/manual/ja/function.ceil.php

2008-12-03

html jQueryでファイルへのリンクにアイコン付加

やたらとリンクばかりあるWebサイトの制作をしています。

で、pdfなんかのファイルへのリンクに対して、アイコン画像を付け加えて視覚的にわかりやすくしたい。これをJavaScript(jQuery)で実現しようとして、いろいろ試してみてました。

aguuu ≫ Blog Archive ≫ リンクにアイコンを追加してくれる、 Iconizeを属性セレクタが使用できないIE6用にカスタマイズしてみる
http://www.aguuu.com/archives/2007/11/iconizetextlinkswithcsscustomer/

こちらの記事と配布ソースコードが参考になりました。以下、アンカーテキストの左側にアイコン画像を付加する場合のコード例です。

CSSで付加

CSS

.pdf_link {
    padding 5px 0 5px 40px;
    background: url(img/icon_pdf.gif) no-repeat center left;
}

JavaScript

$(function(){
    $("a[href$='.pdf']").addClass("pdf_link");
});

href属性が「.pdf」で終わるa要素に対し、「pdf_link」というクラスを追加して初期化を行います。スタイルシートでは、左側に余白をとって背景にアイコン画像を指定しています。

ただ、アイコン画像が文字サイズよりも大きかった(32×32)影響か、IE6では若干欠けて表示されてしまいました*1。そこで今度は、htmlに直接img要素を付加してみることに。

htmlで付加

JavaScript

$(function(){
    // 外部挿入。アイコン画像はリンクにならない
    $("a[href$='.pdf']").before('<img src="img/icon_pdf.gif" />');
});
$(function(){
    // 内部挿入。アイコン画像もリンクになる
    $("a[href$='.pdf']").prepend('<img src="img/icon_pdf.gif" />');
});

こちらの方法では、IE6でも問題なく表示されました。2通りありますが、画像もリンクに含めるかどうかで使い分ければよいかと思います。

ほか参考リンク

Iconize Textlinks with CSS - pooliestudios
http://pooliestudios.com/projects/iconize/

jQuery 1.2.6 日本語リファレンス
http://semooh.jp/jquery/

*1CSSをいじれば解決できたかもしれませんが

2008-12-01

11月分の読書記録

読書メーター - あなたの読書量をグラフで管理 http://book.akahoshitakuya.com/

昨日の記事に引き続き、11月分です。カルドセプトに時間とられすぎているため、ほとんど読めていません*1

11月分読書データ

f:id:deeeki:20081121210730j:image

11月の読書メーター
読んだ本の数:5冊
読んだページ数:484ページ

NARUTO 巻ノ44 (44) (ジャンプコミックス)NARUTO 巻ノ44 (44) (ジャンプコミックス)
ナルトが闘うのしばらく見てない気がする
読了日:11月09日 著者:岸本 斉史
アイシールド21 32 (32) (ジャンプコミックス)アイシールド21 32 (32) (ジャンプコミックス)
スピードしかないセナがどう攻略していくんだろう。
読了日:11月15日 著者:稲垣 理一郎
ラクして成果が上がる理系的仕事術 (PHP新書)ラクして成果が上がる理系的仕事術 (PHP新書)
できるところから始める、全体を見通す
読了日:11月17日 著者:鎌田 浩毅
リアル 8 (8) (ヤングジャンプコミックス)リアル 8 (8) (ヤングジャンプコミックス)
苦悩しながらも前向きに変わりつつある高橋が印象的
読了日:11月20日 著者:井上 雄彦
ドラゴン桜公式副読本 16歳の教科書~なぜ学び、なにを学ぶのか~ドラゴン桜公式副読本 16歳の教科書~なぜ学び、なにを学ぶのか~
わかりやすい言葉で様々な分野の教養が得られる本
読了日:11月21日 著者:7人の特別講義プロジェクト

*1:しかもマンガばかり