書類をスキャンして捨てる

今日は有給休暇で会社を休んだ。自宅の設備点検があったためなのだが、一人暮らしでは自分が対応するしかないので仕方ない。

持て余した時間で、Amazonなどの買い物明細をスキャンしてシュレッダーにかけて捨てた。しばしば休みの日にこういうことをするのが習慣になっている。

shredded documents

ここ数年で手に入れたものの中で最も “Life Changing” なものは何か、と言われたら ScanSnap を挙げたい。 紙の書類は捨てなければ溜まる一方だが、それを捨てられるようになったのはこれのおかげだ。スキャンしたら、そのまま Evernote に送る。この辺はどっかのライフハック系の本に書いてあったことの受け売りだ。それを真に受けてやってみたら、とても良かったという話である。

書類をただ捨てるという行為は小心者の僕にとっては大胆すぎる。ここにある情報がいつか必要になるんじゃないか、という意識に囚われているからだ。スキャンしてデジタルデータにすれば後から見返すことができるのでそんな躊躇もなく捨てられる、という寸法だ。

ScanSnap とシュレッダーを買ってからというもの、ありとあらゆる書類をスキャンして捨てた。光熱費やクレジットカードや携帯電話の明細書、レシートや領収書の類、家電等の説明書、保証期間の切れた保証書、過去に住んでいた物件の関連書類、昔の日記、プリクラ、旅行の記録、手紙などなど。 多分見返すことのないもの、しかし捨てるには躊躇してしまうものを捨てることができた。 部屋が片付くのはもちろん、なんだか気持ちが軽くなる。

もちろんいいことばかりではない。ScanSnap は紙送りの性能がしょぼく、紙を重ねて置くと2枚以上いっぺんに吸い込まれたり、紙詰まりしたりする。1枚でも、厚かったり折り目があったりすると斜めに吸い込まれたりして手に負えない。なのでスキャンするときは手を添えて、真っ直ぐスキャンされるようにサポートしている。コンパクトボディなので仕方がないところもあるのか…と思いつつそこは割り切って使っている。 (今では進化したモデルがあるよね…と思ったら3年経った今もモデルチェンジしていなかった)。

シュレッダーはコクヨ S-tray KPS-X30W という商品を使っている。性能は…とにかくパワー不足で、紙を数枚も入れると満足に裁断されない。コンパクトさが仇になって投入口が小さいためA4の書類などは折って入れるしかなく、折った分だけ厚みが増してパワー不足の壁にぶつかり…と負のスパイラルになる。しかも連続使用するとオーバーヒートして動作しなくなるというおまけ付き。騙し騙し使っているというようなシロモノ。こう書くといいところがないが、インテリアとして目にうるさくない見た目だし、やはりコンパクトだということは正義。毎日使うものでもないので、それなりに使えればよいということにしている。

安くない買い物だったが、もう元を取る以上に役に立ったのでブログに書いておこうと思った。書類をスキャンして捨てるのはおすすめ!

久しぶりにギターレッスンを受講

卒業した音楽学校のギターレッスンに久しぶりに顔を出した。師は、いつでもレッスンに遊びに来てよいと言ってくれる心の広い人。

思えば、僕は自称音楽好きでギタリストでっていう領域に収まっていればよかったんだと思う。自己満足の、オナニーの世界にいればよかったのかもしれない。

しかしとある音楽学校に飛び込んで師に出会い、同じく音楽を志す若人達に出会い、本気で音楽を志す人間達は自分よりもはるかに必死に、深く音楽に興味を持って接し、研究し、愛しているかを知った。自分の中途半端さを恥じると共に、もっと音楽を愛したい、詳しくなりたい、プレイしたいという欲求を強めた。

そんな気持ちを、かつてのようなレッスンを受けるとまた思い出す。

その道を志すならなるべく高い志を持つ人間に触れた方が良い。そういう意味で僕は本当に良い師を持ったと思う。

いまでもレッスンに遊びに来てくれと彼は言ってくれる。その言葉に甘えて僕はまたレッスンを受けに行きたいと思う。 しかし恥ずかしながら何年経っても僕のギターの上達度合いはたかが知れている。 なんせそれを「仕事にしよう」としている若人とは必死さが違う。

しかしそれでもいい。僕は僕のペースで前に進む。それだけのことだ。 ギターも音楽も好きだから、それを止めるという選択肢は今のところない。

我が母校野球部の夏が終わった

今年の夏の甲子園大会には我が母校、早稲田実業が出場していたため、比較的よく試合をTV視聴していた。

清宮涙 土持たず聖地に「また戻ってくるので、いらないです」 (デイリースポーツ) – Yahoo!ニュース

清宮くんのコメントは出来すぎだと思う。末恐ろしい選手だわ。

彼のバッティングにも言えることだが、試合を見ていて最近の高校生は非常にフォームがきれいだ、と思った。バッティングフォーム、ピッチングフォームどちらもとても成熟した選手が多かったように思えた。きっと指導の方法も日々進化しているだろうし、生活管理も行き届いているんですね。

日曜日、準々決勝、中京vs関東第一の試合をTVでずっと見ていた。

印象的だったのはエース上野くんの素晴らしい投球。この試合は投手戦となり、0対0のままずっと進んだが、9回裏に関東第一からスポンとソロホームランが飛び出してサヨナラゲームになった。打線は両チームとも決定力を欠いていたが、投手の投球内容は中京、上野くん方がずっと良かったように記憶している。彼は身体も大きくて(ちゃんとトレーニングで鍛えられた身体なんだと思う)、投球フォームも本当に素晴らしくて「これが高校生か」と思った。
まさに一打に泣いた、そんな試合内容だった。

しかし最近の高校生って「ここ一番」ってときでもガチガチに緊張したりしないものなのかな。チームが負けている状況での笑顔もよく見たし、試合自体を楽しんでいる選手が多かったように思えた。

今日の早実の試合も淡々と進んでいったように感じたんですよ。いや、音声だけで中継を「聞いていた」からかもしれないけれども。仕事中だったのでじっと見ているわけにも行かず(笑)もっと感情的にというか、プレッシャーでガタガタになったり、気迫丸出しのプレイをして見せて欲しいものなんです。それこそが高校野球の見どころだったりする。しかしやっぱり映像で見ないとダメだ、そういうところは…。

そんなシーンももちろん見られたけれど、自分の基準以上に今の選手たちが成熟したプレイをしてくれるものだから、感心の連続だった、そんな印象の大会でした。
いや、まだ大会は終わっていません。明日が決勝です。

任天堂 岩田社長の訃報で思うこと

世界は偉大な経営者、そしてプログラマーを失った。

岩田氏は同族経営だった任天堂に、異例の社長として抜擢された人物。天才的なプログラマー。経営危機を迎えたHAL研究所の社長になり、星のカービーなどを手がけ、見事会社を立て直す。取引き先の任天堂に買収され、社長にスカウトされる…というような伝説的な経歴を持つ。任天堂の社長になってからはNintendo DSとWiiをヒットさせた。

任天堂は近年、スマートフォン普及によるゲーム業界の変化から業績不振に苦しんだが、DeNAとの提携により時代の波に乗ろうとしているところ。業績や株価も回復してきた。会社にはこれから明るいニュースが次々と舞い込んでくるであろう、というときに…非常に残念なことだ。

岩田氏追悼のニュースやコンテンツはたくさんあるが、「ほぼ日刊イトイ新聞」さんの振り返りコンテンツは秀逸なのでご興味があればぜひ。

「ほぼ日」でのインタビューや任天堂本を読むと、岩田氏は優れたプログラマーで経営者であるだけではなく、優れたリーダーであり、素晴らしい人徳を持っていたことが感じられる。「こんなリーダーの元で働きたい」と思わせてくれる数少ない人物なのではないかと思う。

任天堂は僕にとって特別な会社だ。

小学校1年生の頃にファミコンとスーパーマリオブラザーズに出会っていなければ、僕はプログラマーという仕事をきっとしていない。

友人宅で出会ったテレビゲームという革命に、僕はショックを受けた。そしてどっぷりハマった。毎日のように友人宅に押しかけてプレイした。スパーマリオブラザーズ、アイスクライマー、イーヤルカンフー、エキサイトバイク、グーニーズ、スペランカー…どれも最高だった。それを見かねて両親はファミコンを買ってくれたのだ。あまりにも毎日のように通うので、人様のお宅に迷惑だと思ったに違いない(笑)

ファミコンと一緒に買ったのはドラゴンクエスト3だった。それからやはりスーパーマリオブラザーズを手に入れ、様々なソフトを友人を楽しんでいくことになる。ロックマン、メトロイド、ドラゴンボール シェンロンの謎、悪魔城ドラキュラ、火の鳥、コナミワイワイワールド、ドラゴンクエスト、ファイナルファンタジー…
その後の僕はゲームボーイ、スーパーファミコンも手に入れゲームにどっぷりの小学生時代を送った。

すっかりゲーマーになっていた僕が小学校の卒業文集に書いた将来の夢は「コンピューターの仕事」だったと思う。

中学校以降、数学が苦手で文系に進んだが、その将来の夢はどういうわけか叶ってしまった。僕は今、プログラマーをしている。

岩田さん、素晴らしい仕事でたくさんの楽しいゲームを世に送り出していただき、心から感謝しています。本当にありがとうございました。大変な人生だったと思います。どうか安らかにお眠りください。

[React.js] setStateしても直ちにstateは変更されない

最近仕事でReactをやっている。
今回のネタはひとこと(ひとコード?)で言うと以下のようなこと。

getInitialState () {
  return { clicked: false };
},
clickHandler () {
  this.setState({ clicked: true });
  console.log(this.state.clicked); // -> false
},
render () {
  console.log(this.state.clicked); // -> true
  return <button onClick={this.clickHandler}>Click Me</button>;
}

インタラクションのハンドラで this.setState したとして、そのハンドラ内でthis.state を参照しても、まだ更新後の値は取れない。render() が呼ばれるタイミングでは更新後の値になっている。実際にステートが更新されるタイミングは意図的に制御されているらしい。トリッキーだ。

更新後の値は変数に入れておいて this.setState しつつ、ハンドラ内ではその変数の値を使うのがおそらく正解だろう。

getInitialState () {
  return { clicked: false };
},
clickHandler () {
  var value = true;
  this.setState({ clicked: value });
  console.log(value); // -> true
},
render () {
  console.log(this.state.clicked); // -> true
  return <button onClick={this.clickHandler}>Click Me</button>;
}