Gitで"fatal: Reference has invalid format.."

Gitを使っててある日突然こんなエラーが。

fatal: Reference has invalid format: 'refs/heads/master (hogehoge 上の問題のあるコピー 2012-05-25)'

なにをやってもこのエラーが出るので血の気が引いたが、ぐぐったら原因がわかりました。

原因はDropBox

実はGitをDropBox内で使ってたんですが、どうやらDropBoxが何かの拍子に ".git/refs/heads" 配下に "master (hogehoge 上の問題のあるコピー 2012-05-25)" というファイルを生成しちゃったらしい。
冷静に見ればエラー文言もそう言っているわな。よってそのファイルを削除すれば問題解決。DropBoxでGitしてる人はいつかこのエラーに出会うかも。

Javaで文字コードから文字を生成する

Javaで「あらゆる制御文字が入力された場合の挙動を調べる」という作業をしました。制御文字はキーボードでの入力方法が不明のものばかりなのでプログラムで出力しようと思いあれこれ調べたのでメモ。

Unicodeエスケープ

Unicodeエスケープを使えばソースコード上に文字コードで直接記述できます。例えば垂直タブなら文字コードは0x000bなのでこうなります。

String s = "\u000b"; // 垂直タブ

でもこうして制御文字全部をべた書きするのは手間なのでもっとクールな方法を考える。

まずはUnicodeエスケープを "\u" と "00xx" に分離できないかと試したけどコンパイル通らず。\uの後にはかならずUnicodeを示す数値が続かねばならないらしい。なら"\\u"でエスケープしたらと思ったけどこれじゃあUnicodeエスケープ自体が無効化されてしまうので意味が無い。ということでUnicodeエスケープを使っての動的生成はあきらめる。

CharacterクラスのtoCharsメソッド

きっと文字コードを文字に変換してくれるメソッドがあるはず、と探してみたら見つかった。CharacterクラスのtoCharsメソッド。

引数にint型で文字コード(コードポイント)を指定できるのでループさせるなどあれこれできて便利です。

ショートカットを使わずにChromeのメモリ解放ボタンを有効にする起動方法

Google Chromeの使用メモリをサクッと解放する超簡単な方法
という記事を読んでWindowsマシンにてさっそく実践してみたんだけど、ショートカットを利用した起動方法だとわたしの場合ちょっと問題が。結論としてはショートカットの代わりにバッチファイルを利用することで解決したのでメモ。

Startup Delayerがショートカット内のオプションを認識しない

わたしはPC起動時のCPU渋滞を防ぐためStartup Delayerというソフトを使ってます。Startup Delayerについての説明はこの辺の記事をどーぞ。

「Startup Delayer」でPC起動をスムーズに! ライフハッカー[日本版]

つまりChromeの起動はStartup Delayerにまかせてるんだけど、どうやらショートカットとの相性が悪いらしく"-purge-memory-button"オプションを追記したChromeショートカットを登録してもオプション部分が認識されずに通常起動になってしまうのです。きっとStartup Delayerの仕様でしょう。

ショートカットの代わりにバッチファイルを用意

ショートカットが駄目ならバッチファイルでどうだ、ということで下記内容のバッチファイルを作成。相変わらずchrome.exeの場所を探すのに一苦労。

"C:\Documents and Settings\Administrator\Local Settings\Application Data\Google\Chrome\Application\chrome.exe" -purge-memory-button

うまくは行くけどこれだとDOS窓が残ってしまうのがいやなので、startコマンドを使用することでDOS窓が自動で閉じてくれるようになりました。これで万事解決。

start .\chrome.exe -purge-memory-button

※このバッチファイルはchrome.exeと同階層に置いてね

ついにiPhoneデビュー


iPhone4S買いました。さらばガラケーです。毎月1,000円前後の支払いで済んでたのでギリギリまでスマホには手を出さないつもりでしたがついにデビューです。YAuth通ったとはいえ、これからは月々のケータイ料金が数倍になるので両手放しでは喜べませんが、ITの恩恵を最大限受けるための税金みたいなものですね。

通話品質が残念

まずは通話品質。あまりよろしくないですね。5年前のガラケーと比べると相手の声がこもって聞こえるし自分の声も相手に伝わりずらくなってる。iPhoneも代を重ねてきてるのでその気があれば改善されてそうですがきっとその気がないんでしょうね。ガラケーとの2台持ちをする人の気持ちが理解できました。

割れ物注意

外観は言うまでもなく美しいです。だって前後ガラス張りですから。しかしその代償として取り扱いには細心の注意が必要です。まさにガラスの箱なので重くてツルツルします。手に持っているときも落下の心配にかられます。机の上に置くときも接地するまで手を離せません。ポケットに入れてても何かの拍子にスルっと飛び出しそうです。道端に落としたりしたら相当運が良くない限りアウトでしょう。

こじゃあ裸で使うのは危険すぎると思い、買うつもりのなかったケースの物色を開始。なんとか好みのケースを見つけることができました。

BELKINというメーカーのもの。半透明なのでiPhone自体のデザインをあまり損なわない。

片面カバーの薄いケースですが安心感が違います。ラバーっぽい素材なのでツルツル滑ることがなくなったのが大きいですね。おすすめです。

ガラケーにはガラケーの良さがある

スマホを持って改めて思いましたが、ケータイは通話とメールができれば十分と思っている人は勢いでスマホに切り替えないほうがよいですよ。電話機として考えた場合はガラケーのほうが優秀です。

と、文句ばっかり書きましたがそれでもiPhoneは最高です。

満充電なのに電池残量警告

先日購入して愛用していたワイヤレススピーカーCREATIVE D100ですが、最近ピーピー音がなってBluetooth接続が切れてしまう現象が頻発してました。説明書を読むとその音は電池の警告音だとわかったのですが、満充電したエネループを入れてもほんの数十分でピーピー鳴り出してしまうのです。

アルカリ電池と充電池の電圧の違い

サポートに問い合わせたところ原因がわかりました。以下引用です。


本製品は1.5Vのアルカリ電池にて動作する仕様となっております。
もしも、充電式の電池をご利用になられております場合、
アルカリ電池の電圧が1.5Vである事に対し、充電式の電池は一般的に
初期電圧が1.2Vとなっておりますことから、アルカリ電池に比べ、
製品上で電池残量が無いと判断する電圧値に、より早く達してしまう
可能性がございますので、ご注意ください。
知らなかったっすorz。
そういえば最初に使ってたのは充電池ではなくアルカリ電池だったから問題なく使えてたってことか。

教訓:
電池駆動の製品を購入する際には1.2Vの電池でも正常動作するかどうかの確認が必要

iPad + ハードウェアキーボードが予想以上に快適

知人からiPad用純製キーボードをゆずってもらいました。

さすがApple純製、アルミ削り出しで質感がとても良いです。iPadに付属していたUSBケーブルをつなげれば充電ドックとなりますが、ケーブルなしでも動作するのがうれしいです。ただしかなり重いのでポータブルには向きません。

ソフトウェアキーボードの不便なところ

iPadではフルサイズのソフトウェアキーボードを使うことができます。ふつうの文章作成ならそれでなんとかなるかもと期待したけれど、さすがにハードウェアキーボードの代わりというわけにはいかないものでした。物理キーのような打感がないのは仕方ないとしても以下の点が大きなストレスとなるのです。

  • カーソル移動はタッチ操作
  • 行選択もタッチ操作
  • 数字/記号を入力するにはモード切替が必要

打感がない上にこれらのひと手間も増えるとなると、結局は脳リソースがタイピングに食われてしまいPCのように文章作成に集中することができませんでした。

iPad + ハードウェアキーボード ≒ ノートPC

それほど期待はしないままiPadにハードウェアキーボードを接続してタイピング開始、、、まるでノートPCじゃないか!具体的にはソフトウェアキーボードと比べてこんな利点があります。

  • カーソル移動、行選択がキー操作でできる
  • コピペやUNDOなどのショートカットキーも機能する
  • Tabキーによる入力欄移動もだいたいできる
  • ソフトウェアキーボードが隠れるので画面が広い。ちなみに変換候補は変換対象文字に隣接して表示されるようになる

メールやブログの文章作成であればこれで十分です。あとWEB上のフォーム入力なんかも捗りますね。こうした軽作業がPCなしでストレスなく行えるのはよいですね。ハードウェアキーボードが気になる人はどのモデルでもよいので購入をおすすめします。

なお、残念ながらこの純製ドック型モデルはiPhone4sはささりません。iPhoneの角ばった形状がドックの丸みとぶつかってしまうのです。他のデバイスでも使いたいという人はBluetooth型のキーボードを検討するのがよいかもしれません。

New iPad がやってきた!

2012年3月16日金曜日、ついにiPadが我が家にやってきました。

すでに一週間経ちましたがもう楽しくて仕方ないです。iPhone/iPod Touchが大きくなっただけではないんですね。うまく説明できないけど単なるサイズの違いだけではない魅力がiPadにはあるんだと思います。

息子とオセロ。

Retinaディスプレイが破壊的

待望のRetinaディスプレイですが本当に綺麗です。これは実際に目にしてもらうのが一番だと思うのであれこれ書きませんが、期待を裏切らない美しさでした。いつものインターネットもフォントの美しさによりなんだか新鮮です。

ここで我が家のデバイスのディスプレイ解像度比較。

バイス 解像度(ピクセル)
New iPad 2,048 × 1,536
液晶TV(Full HD) 1,920 x 1,080
MacBook 13inch 1,280 × 800
iPod Touch 3rd 480 × 320

タブレットが40型テレビを上回る解像度ってどれだけ下克上なのかと。MacBookのディスプレイまでもなんだか急にときめき感がなくなるという思わぬ不幸におそわれます。非RetinaiPod Touchにいたってはもう言葉がないですが第5世代が出てくるまではがんばってもらいます。

カメラ性能は必要十分

iPadのカメラで撮影。まずは素の一枚。

記録目的のカメラとしては十分です。

そして上の写真をiPadiPhotoで編集。エフェクト使ってInstagramっぽくしてみました。
http://farm7.staticflickr.com/6233/6852517394_28df9cfdec_b.jpg
iOSiPhotoはおもしろいですね。RAW現像こそできないけど、トリミング、露出補正、WB調整などの基本機能は備えているし、エフェクトやブラシなどMac版にはない楽しい機能も追加されてます。何よりも撮ったその場で編集して即アップロードできる利便性は大きいです。

ジェスチャー操作が快適すぎる

4本または5本指のジェスチャーによりホームボタンを押さずに以下の操作を行うことができます。

  • ピンチでホーム画面
  • 上にスワイプでマルチタスクバー表示
  • 左右にスワイプでアプリ切り替え

これが使ってみると本当に気持ちいいんです。iPhone/iPod TouchとはちがってiPadはその大きさのためホームボタンを押すのが思いのほか手間です。そのストレスを補うどころか新次元の操作性をこのジェスチャー機能は提供してくれます。これでやっとマルチタスクの恩恵が得られた気がします。

これはもうだれもかなわんですよ

この性能、このデザイン、このユーザビリティに匹敵するものを備えたタブレットを5万円ほどで提供できるメーカーって他にあるんでしょうか。さらにこいつはiTunesApp StoreiCloudという決して一夜では築けない魔法のようなシステムに支えられているんですよ。もうね、iPadは鬼ですよ鬼、金棒を持ってるほうの。日本メーカーのタブレット担当の方々、心中お察しいたします。でも世は常に栄枯盛衰、Appleの神がかりの勢いが今後どうなっていくのかはしっかりと見ていきましょう。