ACアダプタぶっ壊れたから買い直した

少し前の話。ACアダプタのプラグが破損して使えなくなった。Appleの正規サービスプロバイダに行ったら、保証外ですと言われたので買い直すことにした。

Apple 60W MagSafe Power Adapter for MacBook

Apple 60W MagSafe Power Adapter for MacBook

Amazonで純正品が量販店の半額で、ちょっと怖かったけど注文した。届いてみたらビニールに包まれただけで説明書も何もついていなかったけど、今のところ問題なく使えてる。
中国の工場から直接仕入れてるから安いという噂をどこかで目にしたけど本当かしら。

privateなメソッドを無理やりpublicにする

あるライブラリのprivateメソッドをどうしても利用したい状況になったとする。privateメソッドを無理やりpublicにする必要があるのだが、さてどうすればいいか。

class A
  private
  def himitsu
     puts 'himitsu'
  end
end

class_evalを使ってpublicにする。

A.class_eval do
  public :himitsu
end

あまりやるべきではないけど、使い捨てのプログラムなどでちょっと使いたいだけなら神は許してくれるかもしれない。

半分くらい読んだ本

最近、本を半分くらい読むことが多いので書いておきます。

SICP

Structure and Interpretation of Computer Programs (MIT Electrical Engineering and Computer Science)

Structure and Interpretation of Computer Programs (MIT Electrical Engineering and Computer Science)

3章くらいまで一気に読んだけどなぜかやる気を失った。そのうち続きも読む。

安全なWebアプリケーションの作り方

必要なところは読んだ。たぶん続きは読まない。

デザインパターン

増補改訂版Java言語で学ぶデザインパターン入門

増補改訂版Java言語で学ぶデザインパターン入門

ざっと読んだくらいな気がする。気が向いたらじっくり読む。

Founders at Work

Founders at Work 33のスタートアップストーリー

Founders at Work 33のスタートアップストーリー

IT起業家のインタビュー集。面白そうなところだけ読んだ。

珠玉のプログラミング

珠玉のプログラミング―本質を見抜いたアルゴリズムとデータ構造

珠玉のプログラミング―本質を見抜いたアルゴリズムとデータ構造

読んでる。

Macbookの電源アダプタから電気が供給されなくなったときに試みること

 Macbook Proに電源アダプタをつないでもランプが一切点灯しなくなった。画面を見ても電気が供給されてる様子がない。もしかしたら接触不良かと思ってコードをごにょごにょやって試してみるものの反応がない。
 交換してもらうしかないかなぁと思って調べてみたら対処法が見つかって、あっさりと簡単に直ってしまったのでメモしておく。

対処法

 Macとコンセントから電源アダプタを外してしばらく放置しておく

 なんじゃそりゃという感じですが、実際やってみると本当に直ってしまったから驚き。同じ問題で困ってる人は念のため試してみるとよいです。

RVMでsudo gem installしてはいけない

RVMでgemsetを作ってそれに何かをインストールしようとしたら、なぜかglobalのgemsetにインストールされる。この原因が分かったのでメモ。
gemで何らかのパッケージをインストールするとき、前にsudoを付けるのが癖になっている人も多いと思うけど、RVMではgem install にsudoをつけてはいけない。

# sudoを付けてはいけない(ダメな例)
% sudo gem install rails   

RVMでgemsetを作る際の正しい手順は以下のような感じ。

% rvm use 1.8.7
% rvm gemset create redmine
% rvm gemset use redmine
% gem install rails -v=2.3.11

くれぐれもsudoはつけないように!

縦型ディスプレイを買った

 以前から縦型のモニタが欲しいと思っていて、値段が高いだろうから敬遠してたんだけど、先日Amazonで調べてみたら2万円もしないくらいで思ったよりも安かったので買ってみた。
 いざ使ってみると、Webページや資料を見るのにほとんどスクロールしなくてすむのですごく便利。縦がMacbookのディスプレイの3倍くらいある。
 予想していたよりもでかくて画面の上部を見るのに視線をかなり上げなければいけなくて、首が痛くなるのが悩みどころ。

追記:慣れたらそれほど首は痛くならなかった

ChromeのGreasemonkeyでjQueryを使う

How can I use jQuery in Greasemonkey scripts in Google Chrome? - Stack Overflow
jQueryの練習にGreasemonkeyを書いてみようと思って調べた。
FirefoxGreasemonkeyだと@requireにjQueryのURLを書いておけば初期インストールされるときに一緒にjQueryもインストールされて使えるんだけど、ChromeGreasemonkeyは@requireなどの機能がないため使えない。
そこでjQueryをロードするスクリプトを書く必要があって、下のエントリに書いてあるようにすればいいらしい。
http://erikvold.com/blog/index.cfm/2010/6/14/using-jquery-with-a-user-script

// Code from  http://erikvold.com/blog/index.cfm/2010/6/14/using-jquery-with-a-user-script

// ==UserScript==
// @name         jQuery For Chrome (A Cross Browser Example)
// @namespace    jQueryForChromeExample
// @include      *
// @author       Erik Vergobbi Vold
// @description  This userscript is meant to be an example on how to use jQuery in a userscript on Google Chrome.
// ==/UserScript==

// a function that loads jQuery and calls a callback function when jQuery has finished loading
function addJQuery(callback) {
  var script = document.createElement("script");
  script.setAttribute("src", "http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js");
  script.addEventListener('load', function() {
    var script = document.createElement("script");
    script.textContent = "(" + callback.toString() + ")();";
    document.body.appendChild(script);
  }, false);
  document.body.appendChild(script);
}

// the guts of this userscript
function main() {
  alert("There are " + $('a').length + " links on this page.");
}

// load jQuery and execute the main function
addJQuery(main);