2012年11月30日

OSXでnexus7とUSB接続

Nexus 7を手に入れました。先日、Kindle Paperwhiteも購入したというのに、連続しての消費です。
7インチタブレット、Wimaxのおまけでもらったlenovoのものを持っていたのですが、「可能性はあるのに遅い!」というイライラがありました。
仕事柄PDFを見ることが多くて、その遅さがストレスになっていました。
それでも、7インチは使いやすくて、少しずつ使用頻度が上がってきていました。
そこで、一念発起して、Nexus 7を手に入れることにしました。
(Google Playストアから注文すると、4日で届きました。)

で、Nexus 7にいくつかファイルをまとめて入れておこうと、MacにつないでUSBを差したところ、MTP・・・がどうとか表示されます。
Macの方は反応せず。

調べてみたら、MTPドライバはMacにはなくて、Android File Transferとかいうものを使わなくてはいけないということ。
ツールをインストールすれば、あっさりとつながりました。

Nexus 7のストレージ内を表示するウィンドウが出るので、そこにファイルを適当にドラッグドロップすれば、問題なく使えます。
Finderから使えてほしいところではありますが、とりあえずこれで用は足ります。

しかし、Nexus 7、さくさく動きますね。
僕の使い方だと、ほんとうにストレスありません。

2012年8月8日

気になるメールだけGmailから携帯へ転送

メールを一日に一回か二回しか見ないという、ライフハックがよく提案されている。
ほとんどのメールはそれでもいいのだけれど、誰かとやりとりしているメールは、ある程度リアルタイムに知りたかったりする。
で、そのためだけにメールチェックをすると、ついつい他のメールを見てしまう。あげくにメルマガなんかを読み出すと、そこに紹介されているリンクにジャンプして、いもづる式ネットサーフィンがはじまる。。。

やっぱりこれはいかん!ということで、メール管理システムを少し考え直した。

Gmailのばあい大事なメールはうまく設定すると、Priority Inboxに入ってくれるようになるけれど、それをしょっちゅうチェックすると、やっぱりネットサーフィンの罠にはまってしまう。
今やりたいことは、割り込み仕事に対応する事ではなく、「誰かのメールによるアクションを待っている仕事をウォッチすること」だ。

こういうものは、@waitというラベルを作って、そこにいれることに決めた。
誰かにお願いメールを送ったときも、送信箱に残るお願いメールを、@waitボックスに入れておく。
そうすると、相手のアクションは、@waitボックスに入ったメールへの返信のかたちで到着するので、やっぱりこのボックスに入ってくる。
@waitを監視しておけば、相手からの返信があればすぐに分かる。
もちろん、こちらのリクエストに返信で返さない人もいるけれど、そういう人のメールは、基本、優先度は低くなっても仕方ないかなと思う。

相手が目上だったりして、そうもいかないときは、 そのときだけ、Gmailのフィルタを作って、その人からのメールはすべて@waitに入るようにしてもいい。
ただし、待っている仕事が終わったら、すぐにフィルタを削除しないと、だんだんこのフィルタが肥大化して、Priority Inboxと似たようなものになってしまうので、ここだけは気をつけないといけない。

せっかくなので、スクリプトを作ってみた。
 このスクリプトは、
  1. Gmailの@waitボックスの新着メールをチェックして、
  2. 新着があれば取得
  3. タイトルと本文を登録したメアド(通常は携帯かな)に送信
  4. メールを既読にする  
という処理をするメール。
Gmailを処理するGemがあることをこちらで知り、 さっそく使ってみた。
このスクリプト、あとは、cronで10分に一回ぐらい起動するようにすれば、誰かのアクションがあれば、その返事を携帯に届けてくれる。

デスクトップで仕事をしているときなら、これを使って、Growlに通知とかもいいかもしれない。
ま、特定のフォルダ(ラベル)を監視して、通知してくれるメールソフトがあれば、それでもいいのかもしれないけど。





2012年7月25日

Mountain Lion

Gizmodeのインストール中継を見ながら、ふと思う。
ターミナル(bash)とEmacsは動くかなあ。。。

そういえば、Macで使うって、Emacsとターミナル、Rails、Firefox、Evernoteだ。
ときどきWordやExcel、Keynoteも使うけど。
最新のOS、僕には別にいらないのかも。

2012年7月12日

Bitbeaker

GitHubがはやるなか、BitBucketを使っている。
世の中にはいろんな選択肢があるから、別に一番有名なのを使わなくてもいい。
 そう、おもっていつも二番目か三番目のものをつかうことが多いのだが、最近はやっぱり一番には一番なりの理由があるなあと感じてしまう。

 ただ、BitBucketはプライベートリポジトリを作ることができるので、それが魅力だ。
が、書いた瞬間気づいたが、プライベートリポジトリなら、自分のサーバにインストールして、Redmine使って、プロジェクト管理すればいいだけかも知れない。。。
やれやれ。

でもまあ、BitBucket、普通に使えます。
WikiやIssueトラッカーもあるし。

IDEA*IDEAの記事に触発されて探してみて、今回見つけたのが、Bitbeaker。
BitBucketのプロジェクトを閲覧するツール。
ログを見たり、Issueトラッカーを操作するだけではなく、diffも使える。
けど、プライベートリポジトリのdiffには対応していないらしい。
なんでなん?

Facebookアプリと同じで、ページを更新するたびにWebにアクセスしにいくので、単に、Webのフロントエンドの役を果たしているだけみたいだけども、これでも出先でIssueが見れるのは便利だ。

しかし・・・プライベートリポジトリ使うだけなら、Redmineにもどろうかな。。。

2012年6月9日

deviseを2.0にアップグレードするときのエラー

devise1.5系を使っていたのだが、いつの間にか、2.1にバージョンが変わっていた。
ちゃんと動くなら、別にかまわないのだが、どうも、rake db:reset、rake db:migrate してDBを作り直すとまともに動かなくなるようだ。
例えば、自分の作ったプロジェクトをgitにあげておいて、他の人がgit cloneして使うばあいに、問題が出る。こういうのって、ツールを公開するばあいには一般的だと思っていた。

出てくる問題は、rake db:migrateすると、 Database Authenticatableというメソッドはないというエラーだ。
この原因は、こちらに書かれているとおりdeviseを2.0系にアップデートした際、もともとのファイルにあった、Database Authenticatableなどのヘルパー(?)の利用を廃止した。
その結果、以前のmigrationファイルが動かなくなってしまった。

基本的に、あるプロジェクトのDBを新しく作るには、rake db:migrateではなく、rake db:schema loadが正しい処方らしい。
で、DBが変わるたびに、rake db:migrateして変更を追加していくわけだ。

引用するまでもないが、こんなエラーが出る
undefined method `database_authenticatable' for
#
しかしこれでは、いざというときに、migrationファイルが壊れていることになり、気持ちが悪い。
そこで、migrationファイルをいじることになる。
サイトがなくなると困るので、この記事の最後にべったりコピペしておこう。

なんとなくmigrationファイルをいじるのには抵抗がある。
しかし、中身が実質変わらないのならリファクタリングの一環ということで、よいという意見がある。



<migrationファイルの変更>
現状(1.5系)
create_table(TABLE_NAME) do |t|
  t.database_authenticatable :null => false
  t.recoverable
  t.rememberable
  t.trackable

  # t.encryptable
  # t.confirmable
  # t.lockable :lock_strategy => :failed_attempts, :unlock_strategy => :both
  # t.token_authenticatable
end
 2.0系
create_table(TABLE_NAME) do |t|
  ## Database authenticatable
  t.string :email,              :null => false, :default => ""
  t.string :encrypted_password, :null => false, :default => ""

  ## Recoverable
  t.string   :reset_password_token
  t.datetime :reset_password_sent_at

  ## Rememberable
  t.datetime :remember_created_at

  ## Trackable
  t.integer  :sign_in_count, :default => 0
  t.datetime :current_sign_in_at
  t.datetime :last_sign_in_at
  t.string   :current_sign_in_ip
  t.string   :last_sign_in_ip

  ## Encryptable
  # t.string :password_salt

  ## Confirmable
  # t.string   :confirmation_token
  # t.datetime :confirmed_at
  # t.datetime :confirmation_sent_at
  # t.string   :unconfirmed_email # Only if using reconfirmable

  ## Lockable
  # t.integer  :failed_attempts, :default => 0 # Only if lock strategy is :failed_attempts
  # t.string   :unlock_token # Only if unlock strategy is :email or :both
  # t.datetime :locked_at

  # Token authenticatable
  # t.string :authentication_token

  ## Invitable
  # t.string :invitation_token

  t.timestamps
end

2012年6月4日

Gmvaultを使って、Gmailをバックアップ

Gmailのアカウントが二つあって、扱いに困っていたところ、ちょうどGmailのバックアップツールであるGmvaultがLifehackerに紹介されていたので、利用してみた。
アカウントAは以前から使っていたもので、90%ぐらいの使用量になっていた。
で、最近職場のメールがGmailベースに切り替わったので、二つ目のGmailアカウントができた。(アカウントB)

アカウントBは容量がとても大きいので、いったんアカウントAのデータを全部アカウントBにPOP経由で移動した。
そのときは、今後はアカウントBを日常利用用に使おうと思っていたのだけれど、なんとこのアカウントが使えない!
一定時間が過ぎるたびにログアウトしてしまうのだ。
それもけっこう短時間で。

マシンをいったんスリープしたらもうアウト。
またログインからやり直しだ。
こんなのGmailちゃう!

ということで、仕事関係のメールはアカウントBに届くので、アカウントBに届くメールをすべてアカウントAに転送して、今までどおり、普通のGmailを普段使いで使っている。
この問題は、いったんメールを全部アカウントBに移動してしまったので、今年の4月以前のメールがないということ。
でもまあいいかと思っていたのだけれど、微妙に不便。

そこで見つけたのが、Gmvault
これを使って、2011年1月1日以降のメールをアカウントBからバックアップし、そのデータを、'before201204'というラベル付きでアカウントAにリストアした。
とりあえず、一年ちょい分のデータがあれば日常使用には耐えるので、こんな感じでしばらく運用してみよう。
使ったコマンドはこんな感じ。
./gmvault sync --type custom --imap-req 'Since 1-Jan-2011' アカウントA
./gmvault restore --label "before201204" -d ~/gmvault-db アカウントB
 この作業が終わった今は、全体を一度バックアップして、今後はcronで定期的にsyncしておこうかなと思っている。
が、それよりも、IMAP使って、ローカルにMaildirかなにかで保存した方が使い勝手は良いかもしれないなあ。。。

2012年5月10日

b-mobile Fairを4ヶ月使ってみた。これでじゅうぶんかも

b-mobile Fairを4ヶ月使ってみたところ、残り数十MBというところで期限が切れた。
(ちなみに、期限が切れても30分ぐらいは使えた)

筆者の使い方は、ネットをときどき使う程度で、YouTubeはまず見ない。
普段の昼間と夜は、Wifiで接続しているので、移動時間(単身赴任なので、週に10時間程度の長時間移動と、毎日の通勤=週10時間、計20時間程度)にネットを見たり、メールチェックしたりするぐらいだ。

こんな感じの使い方だと、月に250MBどころか、200MBいくかいかないかというところだ。
そして、「せっかくやから・・・」と思って、ときどきYouTubeを見たり、Audibleのデータをダウンロードしたりして、意識的にパケットを消費する感じだ。

これで追加ライセンスのばあい、一ヶ月2087円(4ヶ月で8350円) だから、じゅうぶんに安いと思う。

今日の昼間時間があったので、HeyWireに登録して、SMSを使えるようにしたので、LINEも登録できるようになった。
いちおう、LINE、登録はしたけれど、通話したりメッセージ送ったりする相手がいないので、使えるかどうかは自信ない。いろんなサイトを見る限りは、たぶんこれで使えているのだろう。

話がそれた。
b-mobile Fairの使い勝手は、可もなく不可もなく、なんのストレスもなく使える。
唯一、アンテナがちゃんと立たなくて、いつも圏外になっているのがうっとうしいと言えばうっとうしいけれど、これはこういうものだと思っておけば、諦めもつく。
スピードも、スマホでネットする分にはまったく問題ないし、圏外の場所もほとんどない。

筆者ぐらいの使い方(メール中心ということ)ならば、多くの人は定額内に収まるのではないか。
やはり、スマホ二台持ちとかいって、二台持つことになってしまう人も多いみたいだけれど、それで4-5000円という料金は高すぎると思う。
普通の使い方をしていれば、月に2000円から3000円程度が妥当な価格だと思うのだが、携帯キャリア、ちょっと商売の方法を考え直してもらえないだろうか。

2012年4月23日

SensationにICSがきた

10日ぐらい前、SensationにOTAのお知らせが来たので、アップデートしたらICSになった。
なにが変わったのかな?と思っていろいろ操作してみると、なんとb-mobileがつながらない!
おまけに、リセットするたびに、アプリケーションをICSに調整とかいって、すごい時間がかかる。。。

HTCにダウングレードしてくれ!とメールしたところ、ハードリセットしろとの連絡が。

とりあえず、ハードリセットしてみると・・・アプリケーションとか全部消えて、工場出荷時の状態、ただしOSはICS、という状態になった。
そして、一個ずつアプリケーション入れたり、b-mobileのアクセスポイントを設定したり・・・

ようやくまともに使えるようになった。
どうやら、オフィシャルのOTAにアップグレードしてしまうとrootはとれないようだが、今のところ必要性は特に感じてないので、問題なし。
動作としては、うーん、なにが変わったのかよく分からないけど、今のところICSにして悪くなったというのはないみたい。

2012年4月16日

capistranoでgitのパスワードを何度も聞かれる

capistranoを使ってデプロイすると超らくな気がするんだけど、なぜか、デプロイするたびに4回パスワードを聞かれる。
何なのかなあ?と思っていると、どうやら、gitのリポジトリを取得する際に、同じサーバなのにパスワードを聞かれているみたい。

で、あほなことに、ローカルマシンからパスワードなしでかぎ認証でログインできるようにする設定を何度も見直して、やり直していた。
が、当然ながら、サーバのアカウントAからアカウントBにあるgitリポジトリを読みに行く際に認証が必要だった。
つまり、サーバのアカウントAの公開鍵をアカウントBに登録しなければならない。

たまたま今回はアカウントAとBが同じだったから、その辺がよく分からなかった。

というわけで、アカウントAで公開鍵(id_rsa.pub)を作って、それを/home/user_name/.ssh/authorized_keysに登録すると、パスワードを一回しか聞かれなくなった。
(この辺は、@ITの記事参照。毎回見てるなあ、いい加減覚えよう。)

最後の一回は、Webサーバのリスタート用のパスワードだ。
これはまた、リスタート時に、restart.txtをtouch(更新)するのだが、このときにどうもsudoを実施しているっぽい。
この問題は、どうやら、設定ファイル(deploy.rb)で
set :use_sudo , false

とすべきところがなぜかtrueになっていたため。

というわけで、ぶじパスワード入力なしで、コマンド一発でデプロイできるようになった。
スキルがないといらない苦労しますね。
ちゃんと勉強しようっと。

2012年4月14日

elpaを使ってみた

大竹智也さんの「Emacs実践入門」を書店で見かけたので、買ってみた。
ていねいな説明で、とても参考になった。
特に開発環境の構築に関しては、いい感じ。

さて、本でパッケージマネージャであるELPAが紹介されていたので、さっそく導入。
color-themeはバージョンが古くて使えないみたいだったけれど、magitは最新版が入っているみたい。
ダウンロード、インストール、バイトコンパイルまでしてくれる便利なツール。
ほんとうは、auto-installが標準になればよかったのになあとは思うけど、僕は基本的にエンドユーザなので、あまり文句は言えないかも。

2012年4月11日

結局iftttを使って、Google ReaderからEvernoteへのフローを構築

Google Readerで気に入ったアイテムにスターをつけて・・・という情報整理があちこちで紹介されています。
情報というのは、集めるだけではだめで、あとで検索できるように、保管しておくことが大事です。
最近はやはりEvernoteがデファクトになってきたみたいで、ここに保存しておく人が多いですね。
かくいう僕もだいぶ使っていて、結局有料ユーザに移行しました。

で、新年度を機に一念発起して、改めて情報整理法を構築し直しました。
いろいろと検討したのですが、iftttを使って、Google Reader -> ifttt -> Instapaper -> まるごとRSS -> Evernoteというフローに落ち着きました。
(この他に、はてぶてやRead it Later、Readability、独自ツールなどなど、検討しました。)

すべてを自動でEvernoteに転送することもできますが、僕の場合には、Instapaperで読むことにしました。
Instapaperで読んで、これは!と思った記事には、ハートマークをつけます。
そうすると、その記事がEvernoteに送信されます。

Evernoteは、他の方も書いておられるように、RSS経由で登録すると、スタイルがこわれて読みにくくなりますので、Evernoteのメールから登録機能を使いました。
タイトルのあとに、@と#に続けてキーワードを入れることができます。
@マークのあとに保存するノート名、#のあとにタグ名をつけると、そのとおりにEvernoteに保存されます。
基本的に、Instapaperで一度読んでいる記事ですので、inboxはスキップして、仕分け用のフォルダに登録することにしています。
inboxには、ほかのところから登録したまだ読んでいない記事が収録されます。

Instapaperを使うメリットとしては、InstapaperからTwitterやFacebookにリンクを登録できたり、フォルダ別に保管して、そのフォルダ内のアイテム一覧をRSSで出力したりということができます。
とくに、フォルダ分けは便利で、僕はStorifyというフォルダにいれたアイテムをiftttを経由して、Storifyに送るようにしています。

以前はスターをつけたアイテムを集めたRSSが取得できたのですが、いつのまにやらできなくなっていて、そこから迷走がはじまりました。

2012年4月4日

bitbuketに既存のソースコードを登録する

何となく、ソースコードを保管するのにbitbucketを使いたくなったので、利用を開始した。
新しいリポジトリを作成して、利用するのは簡単なのだけれど、既存のコードを登録するのは、どうすればいいのか分からなかったので、しばらく悩んだ。
結局、Documentationに詳しい方法が載っていたので、無事完了。
方法としては、ローカルのgitリポジトリをgit --mirrorでアップロードすればよいようだ。

以下、具体的な方法
  1. Set up SSH for GitのStep 6でsshを使えるようにする
    (もちろん、ローカルの環境でSSHが使えなければ必要なツールのインストール、設定が必要。
  2. Importing code from an existing project に従って、リポジトリにローカルのリポジトリを登録する。
    まずは、登録したリポジトリをbitbucketに作成し、そこにローカルのファイルを登録することになる。
    コマンドは次のとおり。
    (以下のtutorialsがユーザ名で、exploratoryが登録するリポジトリ。)
    $ git push --mirror git@bitbucket.org:tutorials/exploratory


2012年3月11日

org-modeで表に行番号を表示する

結局、Wimaxは@niftyのタブレット付きにした。
届いた文書を見ると、ルータが@nifty専用と書いてあるのがちょっと気になる。
1年の縛りが終わった後も、ルータは@niftyでしか使えないのだろうか。
ちょっと困る気がするが、一年後には新しいルータが出ている気もするので、まあいいかな。

さて本題。
めっちゃ簡単な話だけれど、org-modeで表の一番左の列に行番号を表示したいと思っていた。
マクロを使うんだろうなと思っていたのだけれど、方法が分からなくて悩んでいたけれど、分かってみればとても簡単。

org-infoの「Field coordinates in formulas」の項を見れば載っていた。
現在の行番号を取得するのは、「@#」でオッケー。
通常、一行目がタイトル行なので、C-=で計算式の挿入モードに入って、「@# -1 」とすれば、目的どおり、行番号を連番で入れられる。

2012年2月6日

wimaxトライアル

UQ Wimaxのトライアルキャンペーンを申し込んで、Wimaxを試用してみた。
結果、Wimax、使えるな!って印象。

今は二つ居住場所があって、そのうえ研究室もある。
で、研究室のネットが死ぬほど重いので、ときどき研究室からも自前の通信環境でネットにつなげればなあと思うことがある。

出歩くことはあまりなくて、外でパソコン使ってネットを使うことはまれ。
(スマホでちょこちょこはよくやってます)
ただ、ほんとうに緊急時にネットが使えないと怖いなあってのもある。

今回Wimaxに関心を持ったのは、平日いる家のネットと研究室、移動中のスマホからの通信を一本化できたらいいなという思いから。
Wimaxって月3880円で、つなぎ放題だから、自宅でそこそこのスピードが出ればあっさりそちらに移行してもいいなって感じ。

ただ、テスト用についてきたURoad-8000を使う限りは、スマホからの通信に使うのはいろいろとめんどうそう。
一日中電源オンにしておくと、いつでもネットが使えて、スマホに通信用SIMが刺さっているのと変わらない使い勝手だが、夕方には電源が切れている。
5−6時間ぐらいという感じか。
電源オンから使えるまでに1−2分かかる感じなので、「さて、ネットにつなぐか。・・・」と思い立たなければ、使えない。
うーん、まあ、別にそんなに急ぎでネットにつながなければならないことはないから、これでもいいのかも知れないけど、ちょっとだけめんどう。

というわけで、新機種のAterm WM3600Rを入手するつもりになった。
ショップの店員の話では、この機種は、待機状態にすることができて、そこからの復帰も早いという。
そして、いずれは週末の自宅用にはファミ得パックを契約してもいいと思っている。
今、こちらの家はADSLなんだけど、全然ストレスはないので、光にする必要性は全然ない。

ケータイについては、パケットを基本的にwimax経由で使えるようにしたらいいなと思って、近いうちに、スマホに変えようかなと思い始めた。
そうすると、今b-mobileで使っているSensationは不要になる。
Sensation、とても気に入っているだけに、なんだか残念だけど、まあ、そんなに端末持ち歩いてもね。

最終的には、
ケータイ、タブレット(ainol aurora)、WM3600Rあたりが普段の持ち歩きようになりそう。
もしかしたら、ケータイがスマホに変わるかも。

2012年1月28日

Ainol NOVO7 Auroraでタブレットデビュー

ついにというか、タブレットを買ったというか、予約。
あまりに移動が多いので、PDFを読む端末が欲しいなって感じで、いろいろ選んでたんだけど、普通のは嫌ってことで、中華パッドの中でも評判のいいものに。

持ち運びということを考えると、10インチではなく7インチかなという思いと、10インチはiPad3が出たらそちらにしたいなという思いが交錯して、7インチAndroidに落ち着いたという次第。

買ったのは、これ(http://akafudatengoku.com/products/detail.php?product_id=2735)。

まだ届いてないので、何とも言えないけれど、これで自炊した本と研究用の論文が読めたらいいなって感じ。
SensationでPerfect Viewer使えば、まあ読めることは読めるけど、もうちょい大きいといいかなあって感じ。
なんだか、スマホだと、のぞき込むような感じになってしまって、「読書」というのとはちょっと違う感じがする。

PDFを読んで、コメントとか書き込んで、保存しておけるようになると、紙を持ち運ばなくていいし、人にコピーしようとしたときに、書き込みだらけでちょい恥ずかしいということもないのがうれしいところ。
本のばあい、学生に読ませようと思っても、自分でアンダーライン引きまくったものだと、「ここを読め」って言っているような、学生もついさぼってしまえそうな、そんな気がするので、線を引いてしまうと、教育用には使いにくくなってしまう。
PDFのばあいには、マーカーとかコメントとか、消して渡せる。

これでどれだけペーパーレスになれるかは分からないけれど、しばらく実験的に使ってみようと思う。

ちなみに、10インチぐらいあると、研究室でもそれで論文読むかもしれない。
縦長のディスプレイに全画面表示されるのが、集中できそうな気がするから。