2015-08-22

Apple、一部の iPhone 6 Plus にカメラの不具合ありと発表

Apple が一部の iPhone 6 Plus に背面カメラの撮影で写真がぼやける可能性があることを発表した。

ごく一部の iPhone 6 Plus で、iSight カメラのコンポーネントの一部が故障し、撮影した写真がぼやけて見える場合があることが判明しました。影響が確認されているのは、主に 2014 年 9 月から 2015 年 1 月までの間に販売され、シリアル番号が特定の範囲内にある iPhone 6 Plus です。

iPhone 6 Plus iSight カメラ交換プログラム - Apple サポート より引用

Apple はカメラの交換プログラムを開始している。下記サイトから、プログラムの対象であるかどうかを調べることが可能。

apple-isight

上記サイトで iPhone のシリアル番号の入力する。iPhone のシリアル番号は「設定アプリ > 一般 > 情報」から確認することができる。シリアル番号の行を長押しして「コピー」を選択すると、長いシリアル番号を書き写す必要がなくて楽!

あとがき

ぼくの iPhone 6 Plus は予約開始後すぐに予約して手に入れたもの。調べてみたら、カメラ交換プログラムの対象だった。

Apple Store 銀座への「持ち込み修正」を選択したら、2015-08-28 (金) の予約しか取れなかった。9 月末には次期 iPhone が発売されてゴタつきそうなので、それより前に修理はすませたいところ。

2015-08-20

Google の Wi-Fi ルーター OnHub のスペック

2015-08-18 (火)、Google は Wi-Fi ルーター「OnHub」を発表した。一人一台のスマートフォン。タブレットにノート PC。そしてスマート家電。家庭であっても、Wi-Fi が当たり前に、そして Wi-Fi で繋がる機器が増えた今日の時勢に合わせた Wi-Fi ルーターとなっている。

混んでいる無線の帯域を自動的に避ける機能、IoT (インターネットにつながる物・家電) がサポートする Wi-Fi 以外の無線技術にも対応している点などが面白い。価格は $199。2015-08-31 に北米で発売とのこと。日本には来るのかな?

スペック

Google のサイトを見ると OnHub のスペックが載っているけど、メモ代わりに自分のブログにも書き写しておく。

  • Wi-Fi: 802.11 a/b/g/n/ac (3x3, 2.4 & 5 GHz)
  • Bluetooth: 4.0
  • ZigBee/Thread: 802.15.4 conformance (?)
  • WAN ポート: 10/100/1000 Mbps x1
  • LAN ポート: 10/100/1000 Mbps x1
  • USB ポート: 3.0 x1
  • 大きさ: 19.05 cm (高さ) x 11.68 cm (直径) (7.5inch x 4.6 inch; 円筒型)
  • 重さ: 0.86 kg (1.9 lb)
  • CPU: IPQ8064 Dual Core 1.4 GHz
  • メモリー: 1 GB DDR3L
  • ストレージ: 4 GB
  • スピーカー: 3W
  • 最大接続機器数: 128

2015-08-12

Emacs for Cocoa でフォント設定を変える方法

X Window ベースな Emacs だと Sfift キーを押しながら左クリックするとフォント設定用のウィンドウが現れたけど、Cocoa な Emacs だとその方法が使えなくなっててハマったのでメモ。

Cocoa な Emacs ではメニューから「Options > Set Default Font...」を選ぶ。

もしくは、次のコマンドを実行する。

M-x menu-set-font

すると、フォント設定用のウィンドウが現れる。

Emacs-menu-set-font

2015-08-11

Google が Alphabet という「親」会社を作った

Google が新しい会社を作った。名前を Alphabet という。URL は https://abc.xyz/。

新会社 Alphabet は Google の子会社ではない。Google の「親」会社になるという。言い換えると、Google は Alphabet という新会社の子会社となる。今後、Google 傘下にあるビジネスのうちいくつかを Alphabet の直接下に置き、Google と対等な立場に置くらしい。

新会社 Alphabet の CEO は、Google 創業者で現 Google CEO のラリー・ペイジ氏が就任する。

あとがき

Alphabet という社名は、なんというか、ググラビリティが低い。その一点だけが気にかかる。

Google が親会社を作る是非については、今のところ何とも言えないかなぁ。時が結果を教えてくれるのを待つことにしたい。

Github の「Files changed」(diff) で空白を無視する

先日、git コマンドで diff をとった時に「空白の変更」を無視する方法を紹介した。

今回は Github で同じことをやる方法。

Github で diff を見るのは、Pull-Request を作って master ブランチにマージする時じゃないかと思う。この時、「Files changed」タブを選択すると、ブランチ間の diff を見ることができる。

github-pr-diff

上のスクリーンショットでは、2 つの diff の hunk (固まり) が見える。このうち、最初の diff は行末の空白を消しただけの変更。メインの変更じゃない。こういった変更を見えなくするのはどうするか。git diff -b と同じような出力をどうやって見るか。

方法は簡単。アドレスバーの URL 末尾に「?w=」というクエリー文字を追加してページを開く (Return キーを押すとページが開く)。これだけ。

すると、次のように空白の変更を無視した diff が表示される!

github-pr-diff-w

Pull-Request のようにブランチ間の diff を見る時に、このオプションは便利。コード・レビューで Github の Pull-Request を使っているなら、この Tips を覚えておいて損はない。

ちなみに、クエリー文字は ?w=1 でも OK。

2015-08-09

iPod Touch (第 5 世代・第 6 世代) と iPhone 5s, 6 との比較

iPod Touch 第 6 世代を入手した、ということで、前世代との比較表が欲しくなったので作ってみた。ついでにサイズが同じ iPhone 5s。最新の iPhone 6 との比較もやってみた。

iPod Touch (5G/6G) と iPhone (5s/6) の比較

毎度のごとく、優れている項目を青字にした。

iPod TouchiPhone
第 5 世代第 6 世代5s6
CPUApple A5Apple A8 (1.1GHz) + M8Apple A7 + M7Apple A8 (1.4GHz) + M8
メモリー512 MB1 GB
縦123.4mm123.8mm138.1mm
横58.6mm67.0mm
厚さ6.1mm7.6mm6.9mm
重さ88g112g129g
画面サイズ4.0inch4.7inch
ディスプレイ1136x640 (326ppi)1334x750 (326ppi)
Wi-Fi802.11 a/b/g/n802.11 a/b/g/n/ac802.11 a/b/g/n802.11 a/b/g/n/ac
Bluetooth4.04.14.0
Touch ID—YES
NFC—YES
気圧計—YES

iPod Touch で比べると、第 5 世代からは第 6 世代へは着実なステップアップ。それでいて、サイズ・重量に変化なし。iPhone シリーズと比べると、「小さくて軽い」を実現している。

CPU は iPhone 5s の A7 より新しい A8 チップ。iPhone 6 と同じ CPU を搭載しているけれど、周波数は低め。これはサイズの違い=バッテリーの違いを反映しての、省電力目的かな?

Bluetooth が iPod Touch/iPhone シリーズで最新の 4.1 になっているのは嬉しい。Touch ID が付かなかったのは残念! あると便利なんだけどね。

git diff で空白を無視する

git で diff を取る時、空白(スペース) に関わる変更を無視したい時がある。コードの可読性を上げるためとか、インデントを修正しただけとか、行末のスペースを消しただけとか、そういった「空白まわり」の変更が入っている時。スペースの変更を気にせず、メインの修正にだけ注目したい場合、空白を無視するオプションを使うと便利。

git diff に -b オプションを付けるか、--ignore-space-change オプションを付ける。

サンプル

空白無視 diff のサンプル。まずは普通に diff を取ってみる。

$ git diff
diff --git a/chatwork.el b/chatwork.el
index b3a96e5..5f8cd9c 100644
--- a/chatwork.el
+++ b/chatwork.el
@@ -249,9 +249,9 @@ CALLBACK sould be a callback function"
                 (goto-char (point-max))
                 (mapc (lambda (plist)
                         (let ((message-id (plist-get plist :message_id))
-                              (account-id (plist get (plist-get plist :account) :account_id)
-                              (send-at (plist-get plist :send_time))
-                              (body    (plist-get plist :body)))
+                              (account-id (plist-get (plist-get plist :account) :account_id))
+                              (send-at    (plist-get plist :send_time))
+                              (body       (plist-get plist :body)))
                           (insert chatwork-page-delimiter
                                   (number-to-string message-id) " "
                                   (number-to-string account-id) " "

メインの修正は最初の一行だけ。続く 2 行は alignment を揃えただけ。

ここで -b オプションを付けて diff を取ってみる。

$ git diff -b
diff --git a/chatwork.el b/chatwork.el
index b3a96e5..5f8cd9c 100644
--- a/chatwork.el
+++ b/chatwork.el
@@ -249,7 +249,7 @@ CALLBACK sould be a callback function"
                 (goto-char (point-max))
                 (mapc (lambda (plist)
                         (let ((message-id (plist-get plist :message_id))
-                              (account-id (plist get (plist-get plist :account) :account_id)
+                              (account-id (plist-get (plist-get plist :account) :account_id))
                               (send-at    (plist-get plist :send_time))
                               (body       (plist-get plist :body)))
                         (insert chatwork-page-delimiter

空白修正以外の diff が取れた。このコミットの変更の本質が浮かび上がる。変更点が分かりやすい。便利!

2015-08-08

Anker PowerPort 10 (60W) が届いた

Anker PowerPort 10 が届いたので開封の儀。

開封の儀

ダンボールを開けると、Anker のロゴの入った箱。PowerPort 10 と書かれてる。

Untitled

この箱を開くと、PowerPort 10 本体が姿を見せる。箱の蓋裏には「Thanks for choosing Anker!」。

Untitled

同梱物一覧。ワンシートの説明書に、本体、電源コード、予備のストラップ?。

Untitled

PowerPort 10 を立ててみた。USB ポートが 10 個並ぶと壮観。Anker ご自慢の PowerIQ のロゴ「IQ」が見える。その上にあるのはランプ。PowerPort 10 には電源スイッチが付いた。スイッチを押すと、ランプが点く。

Untitled

背面。右に見えるのが電源スイッチ。

Untitled

前面。普段使いは立てたりせず、こうやって横置きにするかな。

Untitled

最後にサイズ比較。iPhone 6 Plus を横に置いた。厚みこそあるものの、縦・横は意外と小さい。コンパクト。仕様書によると、112 x 68 x 27 (mm)、390 (g)。

Untitled

あとがき

10 Port の USB 充電器。モバイル機器が増える今日この頃にはニーズに合った製品と思う。

Magit を Melpa からインストールしたら警告が出たので対処した

Emacs のパッケージ管理システムで magit をアップデートしたら、次のような警告が現れた。

Error (magit): git-commit-mode has to be removed

Magit is no longer compatible with the library `git-commit-mode', which was used in earlier releases. Please remove it, so that Magit can use the successor `git-commit' without the obsolete library getting in the way. Then restart Emacs.

Error (magit): git-rebase-mode has to be removed

Magit is no longer compatible with the library `git-rebase-mode', which was used in earlier releases. Please remove it, so that Magit can use the successor `git-rebase' without the obsolete library getting in the way. Then restart Emacs.

コンパイル中に一瞬現れる。確認するには、*Warnings* バッファーを開く。

要点は、最新の Magit では git-commit-mode パッケージと git-rebase-mode パッケージを使わなくなったので削除してね、ということらしい。

対処

パッケージ・システムで対象のパッケージを削除。念のため、magit パッケージも削除。Emacs を再起動して、magit パッケージをインストール。これでおしまい。

  1. パッケージの削除
    1. M-x package-list-package
    2. git-commit-mode パッケージ上で d キーを押して削除マークを付ける
    3. git-rebase-mode パッケージ上で d キーを押して削除マークを付ける
    4. magit パッケージ上で d キーを押して削除マークを付ける
    5. x で削除を実行
  2. Emacs を終了 (C-x C-c)
  3. Emacs を起動
  4. magit パッケージをインストール
    1. M-x package-list-package
    2. magit パッケージ上で i キーを押してインストール・マークを付ける
    3. x でインストールを実行

2015-08-07

Emacs-Lisp の insert は数字を直接出力できない

Emacs-Lisp で次のようなコードを書いたところエラーになった。

(insert 100000000)
wrong-type-argument: char-or-string-p 100000000

数字を出力するには number-to-string で文字列に変える必要がある。

(insert (number-to-string 100000000))
100000000

数字は char

insert に数字を引数として与えると、char の文字コードを渡したのと同じになる。例えば、ASCII コードの文字「a」は文字コードで「97」なので

(insert 97)
a

このようになる。Emacs は ?文字 を評価すると文字コードが分かる。試しに ?安 を評価したら 23433 だった。これを insert してみる。

(insert 23433)
安

「安」が出力された。想定通り。

あとがき

今回、数字を insert しようとしてエラーになった。これは数字が大きかったから。数字が小さかったら、意図しない「文字」が出力されて、気付かなかったかもしれない。気をつけよ。