SimpleBoxes

2020 年に入手したガジェットの個人的なまとめ

2020 年も残すところ、あとわずかとなりました。

今回は今年入手したガジェット(?)を振り返ってみたいと思います。

……というのを10年前にやっていたので、10年ぶりにやってみようかと。今年は色んな事情で大物が多いです。

ASUS VivoBook X412FA

[写真] ASUS VivoBook X412FA

入手時期
2020.01
メーカー
ASUS
種類
ラップトップ PC

向こう三年は困らないスペックということで選んだ娘用に選んだマシン。

判断基準は人それぞれだとは思いますが、

  • CPU : Intel Core i5
  • メモリ : 8GB
  • SSD : 256GB
  • ディスプレイ : 14inch fullHD

というスペック。SSD容量は若干不安ですが、MacBook などと異なり、自力での換装が可能(そのためのパーツが付属している)なので、当面大丈夫という印象を持っています。

購入した時期がよくて、ほぼ底値で購入することができました。

今同程度のスペックのマシン探しても、日本円にして 15K 円以上高いようです。

娘用なので、私は普段使うことはないのですが、とりあえず日頃から使ってくれているようです。

ちなみに ASUS VivoBook は、日本でもリリースされていますが、flip ではない 14 インチモデルはラインナップにはないみたいです。

軽量ながらキーボードの大きさなども程よく、使いやすそうな印象。キーボード配列は右端に Home / PageUp & Down などの余計なキーのないシンプルな素直な配列のもので好印象です。

最近の ASUS の機種はそんなキー配列っぽくて、ちょっと残念。

Apple MacBook Pro (16-inch, 2019)

[写真] MacBook Pro (16-inch, 2019)

入手時期
2020.01
メーカー
Apple
種類
ラップトップ PC

搭載 CPU は 2.4 GHz 8-Core Intel Core i9 にしています。

これまで業務では、都度勤めている会社から支給されてきた MacBook Pro 15-inch を利用していました。今年に入ってラップトップを支給してくれていた会社との契約が終了になってしまい、業務用のマシンとして 9 年ぶりに個人のラップトップを新調しました。

その前に購入した MacBook Pro (13-inch, Early 2011) は、整備済製品、いわゆる新古品だったので、その前のマシン 2006 年に入手した MacBook 以来、実に 14 年ぶりの新品マシンということになります。

とは言え、先述の通り、業務ではその都度その時の最新の MacBook Pro 15-inch を使い続けていて、そこまで目新しさがあるわけではないです。

それでも独立した TouchID と ESC キーに、シザー構造を復活させたキーボードなどはこれまで使っていた MacBook Pro 15-inch にはない、明らかな改善点なので、長く利用できそうです。

パフォーマンス面も含め不満はほとんどないんですが、グラフィックドライバーがいまいちなのか、外部ディスプレイと内蔵ディスプレイを同時に利用すると 利用率がほとんど上限で張り付いてしまうという現象に悩んでいます。

外部ディスプレイと内臓ディスプレイを同時に利用しなければ、現象発生しないので、後述する Mac mini を購入するまで一時的にクラムシェルモードで使っていた時もありました。

Sidecar の利用は GPU 仕様にそこまでインパクトを与えることはないようで、外部ディスプレイ+sidecar、あるいは、内臓ディスプレイ+sidecar、であればとりあえず問題起きません。

今は Mac mini との併用でこの現象が起きることは稀なので(それでも Google Meet や Zoom などを使っていると不意に発生することがありますが)、安定して利用できています。

Sony SRS-XB12

[写真] Sony SRS-XB12

入手時期
2020.03
メーカー
Sony
種類
スピーカ

2011 年から利用している MacBook Pro、さすがにメインの開発作業には利用していないものの、まだ現役で使っています。ただ、ここのところ、スピーカの音割れがひどくなってきました。

メモリの増設、SSD へ換装、ファン交換、バッテリー交換二回……、都度パーツ交換などでしのいでいますが、さすがにスピーカ交換は難易度高いか。

そこで手軽に利用できるワイヤレススピーカとして、Sony SRS-XB12 を購入しました。

ワイヤレススピーカは 5 年ほど前に購入した Bose の SoundLink Mini も所有しているのですが、こちらは不意に接続が切れてしまう(電源 off になる)謎現象が発生していて、ちょっと不調です。なので、安定して利用できるスピーカを確保したかったというのがあります。

購入にあたってはいくつかワイヤレススピーカを検討しましたが、値ごろ感と Sony の音響系周辺機器に対する個人的な評価があって、決めました。

Bose AE2 と Sony MDR-ZX750BN というヘッドフォンを比べたときに、個人的に MDR-ZX750BN の音質の方が私好みです。Bose SoundLink Mini 購入したときは店舗で Sony のスピーカと比べて Bose 選んだんですけどね(笑)

コンパクトですぐ手元に置いておけるので、そこまで音量を上げなくて済むのがなかなか良い感じ。運転中に iPhone 用のスピーカとしても結構あって、当初の予想よりも使用頻度は高めです。

Nintendo Switch

[写真] Nintendo Switch

入手時期
2020.04
メーカー
任天堂
種類
ゲームコンソール

携帯のゲームマシン、嫌いじゃないんですが、どうも慣れないところがあって、その一番の理由がコントローラと画面が一体になっていて、独立したコントローラが利用できないって点でした。

私が把握できていなかっただけで、例えばプレイステーション・ポータブル(PSP)などは実はそんなことなかったっぽいんですが。

Nintendo Switch は、その点をあっさり解消していて「据置マシンとしても携帯マシンとしても遊べる」という点で、私にとっては結構理想に近いゲームマシンだったりします。

ギミック的に耐久性はちょっと心配にはなったりしますが。

ダンボールによるペーパークラフトと組み合わせた Nintendo Labo などへの展開などは私の予想を超えていて、すげぇ〜と感心することしきり。発売当初からいつかは欲しいなぁ、とは思っていました。

特に今年買おうと決めていた訳ではないんですが、コロナ禍という情勢になって、前から引きこもりがちなところ、さらに出不精になってしまい、運動不足解消のためリングフィットともに購入することに。

とりあえず、気になっていた「ゼルダの伝説 ブレス オブ ザ ワイルド」や「パンツァードラグーンリメイク」「大乱闘スマッシュブラザーズ SPECIAL」などを購入。海外いても普通に日本のゲームを購入できるのが素晴らしい。

「ブレス オブ ザ ワイルド」は噂に違わず、とんでもないという印象で、ただただすげぇなって思います。なんかしばらくゲームっぽいゲーム触れていなかったのもあって、ビジュアルに圧倒される感じ。ただ、遊ぶためのまとまった時間がなく、あまりできていません。間空いてしまうとその前まで何やっていたか忘れてしまうし。

結果的に、リングフィット以外のゲームはそこそこ稼働って感じなのですが、最近はリングフィットもちょっとサボり気味。

カラオケ JOYSOUND for Nintendo Switch が一番活躍しています(笑)。いや、日本のカラオケをニュージーランドで普通にできるのめっちゃ楽しくて、それだけでも元取れている感じ。

リングフィット

[写真] リングフィット

入手時期
2020.05
メーカー
任天堂
種類
ゲーム

私の住んでいるニュージーランドは世界でも早くからロックダウンをしたりしてました。

昨年からリモート中心に切り替えていたのもあり、個人的な業務に関してはそれほどインパクトはなかったのですが、元々引きこもりがちなところ、更に出無精になりがちに。

「これはいかん」とリングフィットなるものを購入しました。

日本でもなかなか手に入らない状況が続いていたと思いますが、ニュージーランドでも同様でしばらくずっと売り切れ状態でした。なので、一時期ちょっと購入諦めていたこともあったのですが、最初のロックダウンが解除されたあたりで運良く購入できました。

私はアドベンチャーモードを中心にやっていますが、真面目にやるとキツいです。普通に筋肉痛になります。

エクササイズのバリエーションは結構あったりするんですが、攻撃手法だけでなく、道中のギミックでもスクワットを要求されることがあり、スクワット系のエクササイズが多い印象はあります。

イラスト・アニメーションで、それぞれのエクササイズについてあるべき姿勢っぽいものは提示してくれるんですが、自分がその通りに動けているかどうか姿勢が正しいか不安になることも。一応、スコアっぽいもので評価はしてくれるんですが、全身の姿勢で評価してくれる訳ではないので。

ゲームを通して、自然とエクササイズできる感じに仕上がっているのはさすが任天堂といったところ。グラフィックも普通に綺麗だと感じました。

ただ、ここ最近時間が取れなくて、ちょっとサボり気味。いかん。

iPhone SE (2nd)

[写真] iPhone SE (2nd)

入手時期
2020.10
メーカー
Apple
種類
スマートフォン端末

当初、購入予定なかったんですが、開発デバグ用に急遽必要になり、購入。

ご存じ通り iPhone 6/7/8 の筐体に iPhone 11 のエンジンを載せました、みたいなハードウェアで、ケースなど iPhone 8 用のものを流用できます。

とは言え、全く同じという訳ではないようで、スクリーンの湾曲率など iPhone 8 と異なったりする場合もあるみたいです。

開発時に時折利用するという使い方なので、それほど使い込んでいる訳ではありません。

心持ちバッテリーの保ちが悪い気もしますが、たぶん気のせいです。普段使いしていないので、きっちり充電している訳じゃなくて、使いたい時に「あ、バッテリー切れとる」ってのが何度かありました。

「白」を購入したんですが、iPhone 8 と違って表側は黒なので、ケースつけちゃうと全然わからないってのが微妙な欠点かも……。

10inch LED Ring Light

[写真] 10inch LED Ring Light

入手時期
2020.11
メーカー
不明
種類
周辺機器

いわゆる女優ライトなどと呼ばれたりもするリングライト。

今回のモノ撮りでも使いました。明るさや色味を調節できます。

うちでは PC 用デスクは壁に向かって置いてあるのですが、そうすると配置的に後方から照明が当たってしまうことが多いです。

影になりがちな顔を少しでも明るく……と思ったのですが、実のところ、ビデオ会議ではまだ使ったことはなかったりします。

Magic Trackpad 2 (silver)

[写真] Magic Trackpad 2 (silver)

入手時期
2020.11
メーカー
Apple
種類
周辺機器

後述する Mac mini と同時に購入しました。

名称に「silver」とありますが、受ける印象は「白!」です。

手持ちマウスがいくつかあるので、絶対必要かというとそんなことありません。ただ、MacBook Pro をクラムシェルモードで利用していた時に、本体を閉じているせいでトラックパッドが利用できず、それがちょっとストレスに感じたことありました。

今まで手を伸ばせばトラックパッドがいつでも利用できる環境にあって、それに慣れてしまっていた感じ。

素早いスクロールや細かなズーム調整、ジェスチャーを使った操作などはトラックパッドの方がはるかに操作しやすく、重宝しています。なので Mac mini でもいつでもトラックパッドを利用できる状態にしておきたかった、というのがあります。

初代 Magic Trackpad は使ったことがありましたが、フォースタッチ(感圧タッチ)などはサポートされておらず、またクリックも物理的なスイッチによるものでした。

トラックパッドの足が物理スイッチになっているので、ぱっと見ボタンは見えないんですが。

Magic Trackpad 2 はいわゆる最近の MacBook のトラックパッドで採用されているフォースタッチ・タプティックエンジンを使ったものになり、クリックを物理的なスイッチで実現している訳ではありません。

MacBook のトラックパッドや iPhone で使われているタプティックエンジンを採用しているデバイスは、押された時に沈み込むハードウェア構造にはなっていないので、電源をオフにすると本当にただの板切れみたいになります。

一方、Magic Trackpad 2 はタッチセンサーのあるガラス面と土台に微妙な隙間があり、そこに薄いゴムのような緩衝材が挟まれています。電源をオフにしてクリックしてみると、その緩衝材の分は沈み込みます。

とは言え、触覚的なフィードバックはないので違和感はあります。

Magic Trackpad 2 のトラックパッド面は MacBook Pro 16inch のそれよりも、キーボードのキーひとつ分ぐらい大きく、そこそこ場所をとります。それでも、動かす場所の確保が必要なマウスと比べると、実質的に必要な面積はマウスよりも狭くて済むかもしれません。

私の場合、基本マウスと併用が前提なので、それなりに場所が必要になってしまっていますが。

Apple Mac mini (M1, 2020)

[写真] Mac mini (M1, 2020)

入手時期
2020.11
メーカー
Apple
種類
デスクトップ PC

鳴り物入り(?)で登場した Apple Silicon M1 を搭載したマシンです。発売後の評判のあまりの良さに惹かれて購入。RAM 8GB / SSD 256GB いわゆる一番安いモデルです。今年前半に購入した MacBook Pro 16inch との価格比は 4 倍以上。

eid238-about.png

噂に違わず、Apple Silicon ネイティブで動作しているアプリは快適に動作します。搭載メモリは MacBook Pro の半分の 8GB ですが、メモリ不足で困るというような感触になる感じはしないです。

大体常時二つのウェブブラウザ(Safari と Chrome)とエディタ(ARM ビルドの Visual Studio Code など)のほか、Dropbox などまだ Apple Silicon に対応していない常駐アプリも起動させています。

ご存じ通り、これまで Macintosh というハードウェアは、680x0 から PowerPC、PowerPC から Intel Core (X86) へと CPU アーキテクチャを変更してきた歴史があります。

私自身 680x0 〜 PowerPC 〜 Intel Mac 〜 M1 Mac と使ってきました。

[イメージ] 所有マシン遍歴 LC630 → PowerBook G3 → MacBook → Mac mini M1

大学時代に所属していた研究室では Macintosh IIsi (68030) 使っていて、私個人は Macintosh LC630 (68LC040 のちに 68040 に換装) を所有していました。研究室で Power Macintosh 6100 (PowerPC 601) など導入、私自身もその後 Power Macintosh 7600 (PowerPC 604) を友人から買い取り。就職してからは PowerBook G3 / PowerBook G4 (初代・チタニウム筐体) を経て、Intel Core Duo 搭載した MacBook を所有しています。

また、Intel Core Solo 搭載した Mac mini も一時所有していました。

なので Macintosh の CPU アーキテクチャ切り替えのタイミングで発表されたマシンはほぼ漏れなく実際に触れてきました。

M1 はこれまでの CPU アーキテクチャ移行 (680x0 → PowerPC → Intel Core) と比較すると、移行時に感じるであろうギャップを一番うまく隠蔽できている印象を受けています。

もちろん Intel Mac では利用できて M1 Mac では使えないアプリもあるので、該当するアプリをメインで使っている場合、移行は厳しい評価になるとは思いますが。

PowerPC → Intel Core の時も Rosetta というソフトウェアによって CPU アーキテクチャの違いを吸収する仕組みがありました。同様の仕組みが Intel Core → Apple Silicon でもあるのですが、PowerPC → Intel Core の時に感じたパフォーマンスの低下は Intel Core → Apple Silicon では、あまり感じません。

Xcode でいくつか iOS アプリのビルドを試しましたが、 MacBook Pro 16inch with 2.4 GHz 8-Core Intel Core i9 なマシンと比べて、 Mac mini の方が早くにビルドが終わります。今のところ、例外なく。プロジェクトによってはビルド時間が半分以下になることもあります。

[イメージ] ビルド時間比較 Mac mini 273 秒 / MacBook Pro 566 秒

「MacBook Pro 16inch との価格比は 4 倍以上」ということを考えると、Mac mini はコストパフォーマンスがすこぶる高いと言って良いと思います。

んじゃ、開発マシンとして手放しでおすすめできるかというと、ちょっと判断が難しい。Apple Silicon ビルドなものと Intel ビルドなものが混在する影響で、例えば、 brew とかはちょっと面倒なことになりますし、 node もバイナリが用意されていない場合は一からビルドされてしまうので、インストールに時間がかかることがあります。

さらにその場合、独自ビルドになるので、その後も色々調整が必要になったりします。私は Rosseta 経由で動作する Terminal と Apple Silicon ネイティブで動作する iTerm 2 と用意して、都度作業によって切り替える運用をしています。

[イメージ] グラフィカルインタフェース比較図

とうとうメジャーバージョンが 11 になってしまった macOS Big Sur ですが、主にグラフィカルインタフェース的な面で慣れない部分が結構あります。

特にツールバーのところで顕著なんですが、全体的にメリハリがなくなる方向にシフトしているような気がしています。メリハリがなくなった結果、ボタンをボタンとして認識するのが少し難しくなった感じ。

マウスカーソル動かしてみないと動作するかどうか分からないパーツが増えているような気がします。結局アクションするには近づけるんだから一緒だと思っているのか……。

色々述べましたが、CPU アーキテクチャ切り替え初代としてはきちんと仕上げている感じがします。USB / Bluetooth など周辺機器周りでの不具合はあるみたいですが、これはまぁ想定の範囲内な気はします。

このエントリーをはてなブックマークに追加

スポンサーリンク

シュレディンガーの猫

[写真]これはシュレディンガーの猫ではありません。

  • 「シュレディンガーの猫ってあるじゃないですか」
  • 「あぁ、箱を開けてみるまで生と死がわからんってやつね」
  • 「あれに大いなる疑問があって」
  • 「ほう?」
  • 「なんで猫なんでしょ?」
  • 「そこ?」

……ってことを考えながらジョギングしてた。

続きも何パターンか考えていて……

カナリア

  • 「シュレディンガーの猫ってあるじゃないですか」
  • 「あぁ、箱を開けてみるまで生と死がわからんってやつね」
  • 「あれに大いなる疑問があって」
  • 「ほう?」
  • 「なんで猫なんでしょ?」
  • 「そこ?」
  • 「いや、猫じゃなくても、ほら、カナリアとか」
  • 「あ〜、鉱山とかで毒ガス検知に使われたりするよね。でも鳴くから、箱見なくても生死が分かっちゃんじゃ?」
  • ……チュン・チュン・チュン・チュン・チュ……
  • 「あ、鳴き止んだ」
  • 「止んだね」
  • 「い、い、いや、いや、いや。猫だって鳴きますし」
  • ニャ〜〜〜〜
  • 「鳴いたね」
  • 「鳴きましたね」

犬とか……

  • 「シュレディンガーの猫ってあるじゃないですか」
  • 「あぁ、箱を開けてみるまで生と死がわからんってやつね」
  • 「あれに大いなる疑問があって」
  • 「ほう?」
  • 「なんで猫なんでしょ?」
  • 「そこ?」
  • 「愛玩動物なら犬とか」
  • 「あれちゃうの?パブロフに対抗したんじゃない?」
  • 「マジすか。シュレディンガーの犬だとパブロフの二番煎じ?いっそ人とか?」
  • 「シュレディンガーの人」
  • 「中の人みたいな」
  • 「いやいや人体実験でまずいっしょ」
  • 「シュレディンガーの娘」
  • 「なんか親の七光り的な?」

やっぱり猫

  • 「シュレディンガーの猫ってあるじゃないですか」
  • 「あぁ、箱を開けてみるまで生と死がわからんってやつね」
  • 「あれに大いなる疑問があって」
  • 「ほう?」
  • 「なんで猫なんでしょ?」
  • 「そこ?」
  • 「っていうか、猫ずるいっしょ」
  • 「ずるい?」
  • 「そもそも奴らすでに神出鬼没じゃないですか」
  • 「確かに突然キーボード乗っかったりしてびっくりすることはあるけど」
  • 「想像できないところ入り込んだりして……」
  • 「そやな」
  • 「そもそも猫は元々その存在が曖昧なんですよ」
_人人人人人人人人人人人人人_
>  猫は元々その存在が曖昧  <
 ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^ ̄
このエントリーをはてなブックマークに追加

スポンサーリンク

海外でエンジニアとして働いて、ここ十年ほど毎日続けている、ある一つのこと

2003 年よりニュージーランドでエンジニアとして働き始めました。二年ほどスイスに引っ越していましたが、昨年よりまたニュージーランドに戻ってきています。

かれこれ 13 年ほど日本国外でソフトウェアエンジニアとして働いてきたことになりますが、2006 年半ばから毎日ずっと続けていることが一つだけあります。

それは

  • 簡単な作業日誌をつける

ことです。

自身の英語力の弱さをカバーするため、当時のチームリードに日報メールを送り始めたのがきっかけです。その後、メールを送るのは止めましたが、手元に日報として残して置くのは習慣になりました。

日報という形で始めたので、当初は日の終わり頃に書き出していましたが、それよりもその日のやることをリストアップした方が自分に合っていることに気付いて、日の始まりに書き出すというスタイルに落ち着きました。

形式

テキストファイルで箇条書きが記述できれば、形式はなんでも良いのですが、最近は Markdown のようなフォーマットで記述しています。

自分用のメモなので、基本はごく簡単な箇条書きです。例えば、以下のように……

# 09.05.2016 (Mon)
X-App ver 5.2
  - TICKET-1234 implement GA for a feature A
X-App automation
  - TICKET-1235 search feature
  - TICKET-1236 sucess path
Generic
  - coding guidelines

日付を見出しにして、その日にやることを書き出します。

ざっくりとプロジェクト単位で分類して、関連する項目を箇条書きします。開発の仕事に関係しない項目は Generic というカテゴリに記述しています。多くのミーティングはここに分類。

割り当てられたチケットへの対応についてはチケット番号を記述。以前はチケット番号だけでしたが、これだと他人である未来の自分には分かってもらえない可能性が高いので、最近はチケット番号と共にその内容も簡潔に記述するようにしています。

この記事を書くにあたって、十年前のログも見てみましたが、始めたばかりの頃は、上司への報告メールの下書きにもなっていたので、もう少し丁寧に書いていたようです。

基本はこれだけなんですが、普通にメモとしても利用したりするので、コードスニペットが貼り付けてあったり、作業手順の備忘録やミーティングの議事録などを追記したりすることもままあります。

欠点、のようなもの

明らかな欠点は日報を書く時間が取られるということ。

ちょっと覚えていませんが、最初の頃は今よりも丁寧に記述していたので、15 分以上かかっていたかもしれません。

前述の通り、ごく短い箇条書きに落ち着き、今では 5 〜 10 分程度の作業になっています。また、すでに毎朝のルーチンとして、やるべきことのひとつになっているので、個人的には「時間が取られる」とはあまり感じていません。

ログ自体はただのテキストファイルなので、十年分でも高々 500KB を少し上回る程度。

とは言え、プレーンテキストとしてはそれなりのサイズなので、単一のファイルでは、エディタによってはやや重荷になる場合があります。

ファイルが破損した場合も怖いので、大体二、三年に一つのファイルという形にしています (ここ最近はたまたまそのぐらいのスパンで転職しているので、一社一ファイルという感じ)。

ちなみにログファイルは常時開いた状態にしています。メインのテキストエディタに切り替えれば、そのファイルをすぐに確認できるようになっています。

利点、と思われるところ

やっていることは結果的に GTD (Getting Things Done) に近くなるんでしょうか。

  • やることが明確になる
  • やったことを確認することによる、進捗の見える化

という利点があるような気がします。

これを続けていると、自身の開発速度、タスクの割り込み頻度などがある程度把握できるようになります。その結果、タスクに対して作業見込み時間の見積もり精度が向上します。

あるタスクについて、どのぐらい時間をかけたのかというのは、git や svn などのバージョン管理システムのログを見たり、チケットの更新時刻を確認したりすることでも、判断することができます。

しかしながら、実際にはそのタスクに対して割り込みがあったのかもしれないし、前準備が必要だったのかもしれません。その点、自分でログを残しておくと、そういう外的要因を確認できる割合が高まります。

で、本当のところ効果はあるのか

正直なところ、分かりません。そうしなかった時との比較ができないので。

一日二日では違いを感じることは難しいとは思いますが、十年以上続けてきて (こうしてネタにもできましたし) 私には合っているルーチンだと思っています。

ソフトウェア開発でスクラムなどを適用していると、毎日スタンドアップミーティングをやったりしますが、その前の事前準備として役に立ったりします。

私が始めた十年前当時は、まだアジャルな開発手法を取り入れていませんでしたが、最近では採用しているところも多くなっていると思います。そういう点では相性は良いと思います。

このエントリーをはてなブックマークに追加

スポンサーリンク

ここ三、四年で利用している (利用した) ワイヤレスマウスの個人的まとめ

[写真] 所有マウス

左上から時計回りに

Logitech (ロジクール) と Microsoft のマウスしかありませんが、特にメーカー指定で選り好みしている訳ではなくて、日本だと手軽に手に入るであろうエレコム、バッファロー、サンワサプライなどのメーカーは私の在住しているニュージーランドでは手に入りづらいのが一番の理由です。

V470 Cordless Laser Mouse を利用してからというもの、基本的には何らかのワイヤレスマウスを利用しています。

MacBook Pro 13 (Early 2011) を購入してからはトラックパッドも以前よりも利用するようになりましたが、それでもやはりメインのポインティングデバイスはマウスです。

V470 Cordless Laser Mouse は四、五年前ぐらいに挙動不審になってしまい、それ以降いくつかのワイヤレスマウスを利用してきました。

ワイヤレスマウスに対しての基本的な利用基準は、あまり変わっていなくて

  • Bluetooth 対応
  • 光学式あるいはレーザー式のトラッキング
  • スクロールホイール
  • 2 ボタン以上のサポート

ボタンの数に特別なこだわりはありませんが、Mission Control の利用を考慮すると 3 ボタンは欲しいところ (左クリック・右クリック・センターボタン)。

多機能なマウスだと 4 つ以上のボタンがあることもありますが、あっても使うことがないので、あってもなくても気にしません (それがあることで価格が高くなるのであれば、ない方がいい)。

2016.08 現在のメインマウス

とりあえず、まず最初に現在メインとして利用しているマウスを先に言っておくと……

前者は Macbook Pro 13 (Early 2011) 用に、後者は会社で利用している Macbook Pro 15 (Mid 2015) 用に利用しています。

Apple Magic Mouse

まず、基本的なところで Apple からリリースされている Magic Mouse と Magic Trackpad

現在だと Magic Mouse 2 に置き換えられているようですが、使い勝手は従来の Magic Mouse とほぼ変わらないようです。

Apple 製なので、Macbook との相性は良いと思います。

ボタンやホイールの代わりにトラックパッドを組み込んだようなマウスで、マウス表面がタッチセンサーになっています。二本指ジェスチャーなどで Mission Control を利用できたりします。

無線形式Bluetooth
トラッキングレーザー
大きさ(縦) 11.35 cm x (横) 5.71 cm x (高) 2.16 cm
重さ55 g (電池なし)
106 g (電池あり)
99 g (Magic Mouse 2)
電池寿命?

前後左右対称な形状で、突起物などもないため、前後が逆さまになっていた時、触っただけでは分かりません。マウスを動かしてみるか、Apple ロゴの向きや位置で確認する必要があります。

平べったい形状のため、利用中は常に手のひらとマウスの間に空間ができるような形になります。私はそれが少し気になって、メインマウスとしては利用できませんでした。

ちなみに Magic Mouse と Magic Trackpad は、前職の会社支給での利用なので、現在所有していません。

Apple Magic Trackpad

別記事でも触れたとおり、ユニボディな MacBook に搭載されたトラックパッドは、それまでのトラックパッドとは一線を画すと言っても過言ではないほど使い勝手が向上されています。

それを単独な形で切り出したのが Magic Trackpad で、使い勝手はほぼ同等。MacBook に搭載されているものより一回り大きいので、その分向上しているとも言って良いかもしれません。

無線形式Bluetooth
大きさ(縦) 11.0 cm x (横) 13.0 cm x (高) 1.80 cm
重さ136 g (電池なし)
184 g (電池あり)
電池寿命?

メインで利用しないのは単に MacBook を利用している限り、とりあえず Trackpad は常に利用できるから。

Apple Magic Trackpad 2

後継の Magic Trackpad 2 は利用したことがありませんが、Force Touch 対応・充電池内臓でより使い勝手が増しているかもしれません。

無線形式Bluetooth 4.0
大きさ(縦) 11.49 cm x (横) 16.0 cm x (高) 1.06 cm
重さ231 g
電池寿命?

MacBook Pro 13 (Early 2011) のトラックパッドは Force Touch に対応していないので、Magic Trackpad 2 が利用できると嬉しいのですが、接続には Bluetooth 4.0 が必要で、私の所有している MacBook Pro 13 (Early 2011) では、そのままでは利用できません。

Microsoft Sculpt Touch Mouse (日本語サイト)

[写真] Sculpt Touch Mouse

Logitech V470 マウスが挙動不審だった際に、代替候補として購入。

特徴的なのはホイール部分のインタフェースで、ここが縦長のタッチセンサーになっています。クリックすると、センターボタンとして、なぞるとホイールとして利用できます (縦方向・横方向) 。

なぞった時に振動によるフィードバックがあるのも特徴。マウス側で勝手にやっているため、マウスの電源を入れてなぞれば フィードバックを感じることができます。

無線形式Bluetooth
トラッキングBlueTrack
大きさ(縦) 9.55 cm x (横) 6.5 cm x (高) 3.5 cm
重さ62 g (電池なし)
117 g (電池あり)
電池寿命9 ヶ月

どのレビューを見ても触れてありますが、やはり一番の難点はタッチセンサーの操作性。素早くなぞった時にホイールがしばらく回り続けるような慣性動作をサポートしたりしていますが、感度の調整不足なのか全体的に反応が微妙な感じ。

ホイール部のタッチセンサーが Magic Mouse や Trackpad 並の感度だったら、すごく良くなりそうなのに、この点が至極残念 (ソフトウェアで感度を変更できるようですが、Mac には対応していない模様)。

ホイールを使わず 3 ボタンマウスとしてなら、普通に使えるので、サブマウスとして時折使用する感じになっています。

Logitech M555b (日本語サイト)

[写真] M555b

挙動不審になってしまった Logitech V470 マウスの代替として購入。

繭型の V470 と比べて、ややのっぺりした感じの形状になっています。前述の Microsoft Sculpt Touch Mouse とは異なり、物理的なマウスホイールがあるマウスですが、二つのモードを切り替えることができるようになっているのが特徴的です。

慣性動作モードでは回した時のクリック感がなくなり、勢いよく回すことができます。長い文書を一気にスクロールしたい時などに有効。通常動作モードでは回した時に、クリック感があり、回した分だけホイール動作させることができます。

ホイール自体を押すとホイール動作モードの切り替えることができます。動作モードの切り替えにホイールボタンが使われるので、センターボタンがホイール直下に分かれて実装されています。

無線形式Bluetooth
トラッキングレーザー
大きさ(縦) 9.9 cm x (横) 5.8 cm x (高) 3.4 cm
重さ69 g (電池なし)
120 g (電池あり)
電池寿命2.5 ヶ月

ホイールがセンターボタンとして利用できないのには少し慣れが必要かもしれません。私はすぐに慣れました。ホイールの慣性動作はなかなか気持ちよいです。

慣性動作をサポートしている影響なのか、電池寿命が短いのが気になります。案外すぐに電池を交換しなくちゃいけない感じ。

しばらくメインのマウスとして利用していましたが、若干挙動不審気味なため、現在は後継機種の M557 を使っています。

Microsoft Designer Bluetooth Mouse (日本語サイト)

[写真] Designer Bluetooth Mouse

Logitech M555b/M557 をメインのマウスとして利用するようにしましたが、自宅と会社とそれぞれにマウスを置いておきたいと思って見つけたのが Microsoft Designer Bluetooth Mouse です。

とてもシンプルなデザインで、表面はつや消し処理されいるのか、光沢がありません。ベタベタ指紋がついたりしないし、触り心地がとても良いです。

ホイールは細いですが、金属製で剛性はしっかり。ホイールのチルト (横方向) には対応していません。電池用の蓋には爪などなく、磁石で付く仕様になっています。

ボタンが若干の静音設計になっているようで、しっかりしたクリック音はありますが、他のマウスと比べると低音かつ小音です。

無線形式Bluetooth 4.0
トラッキングBlueTrack
大きさ(縦) 10.7 cm x (横) 6.01 cm x (高) 2.6 cm
重さ57 g (電池なし)
80 g (電池あり)
電池寿命6 ヶ月

使い勝手は (良い意味で) とても普通。個人的には高さがあともう少しあると嬉しいかなとは思いますが、使用感には特に影響していないと思います。

利用するには Bluetooth 4.0 が必要なため、MacBook Pro 13 (Early 2011) では利用できないのが残念。そのため、MacBook Pro 13 用のメインマウスとしては利用できません。

Logitech M557 (日本語サイト)

[写真] M557

前述の M555b の後継機種が M557 です。ホイールの慣性動作がなくなった代わりに、ホイールがセンターボタンとして利用でき、また電池寿命が 12 ヶ月と大幅に伸びたのが特徴です。

おそらくホイール機構の単純化の影響でしょう、M555b と比べて本体重量もおよそ 10 g 程度軽くなっています (持ち比べると、マウス前方が軽くなっているのが分かります) 。

無線形式Bluetooth
トラッキングレーザー
大きさ(縦) 9.9 cm x (横) 5.8 cm x (高) 3.4 cm
重さ60 g (電池なし)
112 g (電池あり)
電池寿命12 ヶ月

形状・機能は M555b をそのまま踏襲していて、ホイールの慣性動作が利用できないという以外の点では使い勝手は M555b と同等。電池寿命が大幅に伸びたのは大きいです。交換すれば一年程度はもつので安心感があります。

Bluetooth 4.0 が必要ということもなく、MacBook Pro 13 (Early 2011) でも利用できるので、現在メインマウスとして利用しています。

Logitech MX Anywhere 2 (日本語サイト)

[写真] MX Anywhere 2

MX Anywhere 2 は Logitech の高級マウスの一つです。モバイル用と謳っていて、同じく高級マウスに分類される MX Master と比べると小ぶりで機能も抑えられています。

仕様を見ると、ほんの少しだけ M557 よりも大きいみたいですが、丸みを帯びた形状もあって、M557 よりも若干小ぶりに感じます。電池寿命は 2 ヶ月と M555b よりも短いんですが、充電池内臓で USB ケーブルを使って充電しながらでも利用できるので、個人的にはほとんど気になりません。

さすがに上位機種らしく、M555b 同様のホイールの慣性動作もサポートしていますし、切り替えボタンで一々ペアリングしなくてもサッと接続先マシンを切り替えることができる機能もあります (3 機種まで登録可能) 。

Bluetooth 4.0 が必要ですが、Logitech の Unifying 接続にも対応しているので、USB ポートをひとつ使ってしまう覚悟があれば、とりあえず MacBook Pro 13 (Early 2011) でも利用できます。

無線形式Bluetooth 4.0 / Unifying
トラッキングレーザー
大きさ(縦) 10.03 cm x (横) 6.16 cm x (高) 3.43 cm
重さ106 g
電池寿命2 ヶ月

Microsoft Designer Bluetooth Mouse のようなつや消しボディで触り心地が良く、加えて厚みが適度にあり、丸みを帯びた形状で M555b/M557 よりも手にフィットする感じで、さすが上位機種という使い勝手です。

MacBook Pro 13 (Early 2011) には Bluetooth で接続できないので、MacBook Pro 15 (Mid 2015) 用のメインマウスとして利用しています。

(おまけ) Microsoft Wireless Mouse 1000 (日本語サイト)

[写真] Wireless Mouse 1000

ワイヤレスマウスですが、USB レシーバを使うタイプですので、私のメインマウスには利用していません。ただ、USB 接続できるマウスを手元に置いておくと結構便利で、案外重宝しています。

Microsoft Wireless Mouse 1000 は Wireless Desktop 850 というキーボード・マウスのセット製品の一部です。単体で売っているのかどうかは分かりません。

無線形式2.4 GHz 帯ワイヤレス (USB レシーバ)
トラッキング光学式
大きさ(縦) 11.1 cm x (横) 5.6 cm x (高) 3.7 cm
重さ120 g (電池あり)
電池寿命8 ヶ月

無難なデザインで、やや重たい印象はありますが、使い勝手はいたって普通。可もなく不可もなくと言ったところ。

このエントリーをはてなブックマークに追加

スポンサーリンク

Evernote 5.7 Mac で新しくなったプレゼンテーションモード

Evernote Mac 版 ver 5.7 が先日リリースされました。

[画像]Evernote 5.7 (Mac) が 10 月末にリリースされました。

このバージョンでは、Evernote Mac 版 ver 5.3 より搭載されたプレゼンテーションモードがバージョンアップされています。

プレゼンテーションモードはプレミアム (あるいはビジネス) 会員向けサービスですが、フリー会員でも 30 日間、一切の機能制限なく試用することができます。

[画像]新しいプレゼンテーションモードではレイアウト画面が追加されました。

レイアウトの編集

これまでのプレゼンテーションモードには、ノートに挿入された水平線を「改ページ」のように扱うという機能がありました。

新しいプレゼンテーションモードでは、水平線はそのまま水平線として扱うようになりました。改ページのような「区切り線」は新しく実装されたレイアウト画面で追加・編集できるようになります。

プレゼンテーションスクリーン右上にあるボタンが「レイアウト」ボタンです。

レイアウトを開くと、プレゼンテーションの縮小版が表示されて、表示したい箇所にさっとジャンプすることができます。

レイアウト画面右側に青いドットが表示されているのが分かるでしょうか。これは区切り線が挿入できるポイントを示しています。

マウスカーソルを持っていくと、どの位置に区切り線が挿入されるのか表示されます。そのままクリックすれば、区切り線が挿入されて、プレゼンテーションがその場で更新されます。

[画像]区切り線の追加は「+」ボタンで、追加した区切り線は「−」ボタンで行えます。

すでにある区切り線の横には「-」ボタンが表示されていて、それを押すとその区切り線を削除できます。区切り線はマウスでドラッグすることができて、区切り線の位置を変えたり、前後の区切り線と合わせたりすることでレイアウト調整ができます。

テーブル表示のサポート

Evernote Mac 版 ver 5.6 でエディタの機能が大きく改善されました。テーブルがより簡単に編集できるようになり、イメージのサイズも簡単に微調整できるようになりました。

これまでのプレゼンテーションモードでは、テーブル表示が崩れてしまったりすることがありましたが、大幅に改善さています。

[画像]テーブルの表示が大幅に改善されています。

イメージ表示のブラッシュアップ

これまでノートに貼り付けられたイメージは、プレゼンテーションモードでは画面中央に左右マージンをとって表示するような形で表示されていましたが、新しいプレゼンテーションモードでは、可能な限り大きく表示するようになりました。

特に縦長のイメージは、以前のプレゼンテーションモードでは常に画面に収まるように縮小されて表示されていました。新しいプレゼンテーションモードでは、この動作が変更されて、横幅が十分にある縦長のイメージに対しては、画面をはみ出して表示するようになっています。

[画像]縦長イメージも端から端まで使って表示するようになっています。

ウェブサイトのスクリーンショットなどで、スクロールする画面をくっつけたような縦長のスクリーンショットを見かけることがあると思いますが、そのようなスクリーンショットはとても自然に表示されることになります。

画面をはみ出してしまった縦長のイメージは、クリックすると縮小表示に切り替えることができますし、エディタ上で画像のサイズを変更すると、プレゼンテーションモードでもそれをそのまま利用するので、十分に小さくすれば、画面をはみ出さないように設定することもできます。

イメージ・テーブルの見出しと説明文

区切り線を調節することで、イメージやテーブル前後の文節を見出しや説明文として設定できるようになっています。

テキストでイメージ (テーブル) を挟み込むような形になるように区切り線を追加すると、イメージ (テーブル) 上部のテキストは見出しに、イメージ (テーブル) 下部のテキストは説明文として設定されて、それぞれ見た目が変わります。

[画像]区切り線を調整することで、イメージやテーブルにキャプションをつけることができるようになりました。

その他の改善点

外観のアップデート

タイトル表示やテキストの表示フォントがデザインし直されています。

[画像]新しくなったプレゼンテーションのデザイン

残念ながら、日本語での表示は以前とあまり大きく変わらないのですが、左右のマージンや行間なども微調整されていて、以前よりもさらにスッキリとした見栄えになっている感じがします。

表示フォントのサイズ変更

以前のプレゼンテーションモードでは、表示フォントサイズはほぼ固定でした。

新しいプレゼンテーションモードでは、表示フォントサイズを三段階で切り替えることができるようになりました。

スペースキー動作の改善

以前のプレゼンテーションモードでもスペースキーで下に移動、シフト + スペースキーで上に移動という動作になっていました。

[画像]スペースキーによる画面移動

以前のプレゼンテーションモードでも、区切りや貼り付けられたイメージを認識して、それがうまく表示されるように移動するという動作になっていましたが、新しいプレゼンテーションモードでは、その動作の精度が改善されています。

このエントリーをはてなブックマークに追加

スポンサーリンク

さぁ、楽しいバグ取りの時間だ — バグに対してのワークフロー

現職でも前職でも JIRA というバグトラッキングシステムを使っています。

バグが報告された時にどのようなフローで処理するかをざっとまとめてみました。

チケットの発行

報告のあったバグはシステムに登録されます。

登録されたひとつひとつのバグはチケット (ticket) と呼ぶことが多い感じです。

以前の会社では issue とも言っていました。JIRA のシステム上では issue となっています。

ちなみに英語では、"raise a ticket (an issue)", "create a ticket (an issue)", "make a ticket" と言ったりしています。

バグの報告内容

  • 概要 (Summary)
  • テストしたソフトウェアバージョン
  • テストしたハードウェアならびに OS とそのバージョン
  • 再現手順
  • スクリーンショットやムービー

バグは再現性があるかどうかが肝で、再現する手順が明らかならば、そのバグは八割方直ったも同然です。

バグに対してのアクション

プロジェクトの進行状況や日程などによって変わりますが、バグが報告された際、すぐに修正作業に入ることはまれです。

  • レポーター (Reporter)

    バグを報告した人。テスターでなくてもバグの報告者になりえますが、テスターがレポーターになることが多いです。

  • ディスパッチャー (Dispatcher)

    バグの優先順位を決めたり、割り当て分担を決める人。テクニカルリーダーがこの役目を担うことが多いのですが、プロジェクトマネージャーやシステムエンジニアがチケットの割り当てを行うこともあります。

  • 担当者 (Assignee)

    バグの修正作業を行う人。当然ながら開発者 (デベロッパ) がバグ修正を行うことが多いです。

基本的な流れとしては、

  1. レポーターからバグの報告を受ける
  2. ディスパッチャーが各開発者の負荷や開発範囲を考慮して、それぞれのバグを開発者に割り当てる
  3. 開発者がバグを修正する

という形になります。

トリアージと優先順序

もちろん報告されたバグは全て直すのが理想ですが、リリース日程がタイトな場合には、全てのバグを直すのが事実上不可能なことがあります。

その場合、報告を受けたバグに優先順位をつけて、どのバグから優先的に修正するか、もしくは、修正しないことにするか (修正するにしても次のバージョンアップで修正する) などを決めていきます。

以前勤めた職場では、優先順位決定プロセスを「トリアージ (triage)」と呼んでいました。

災害などの非常事態に行う医療トリアージから来ています。

例えば、優先順位としては、以下のようなものが挙げられます。

順位 内容
P1 緊急。アプリケーションがクラッシュするなど、このバグのために他のテスト作業や開発業務ができない。深刻なセキュリティの脆弱性など
P2 重要。リリース前に直すべきバグ。アプリケーションが要求仕様通りに動作していない
P3 不具合だが回避方法がある、ミススペルや翻訳不備などのローカライゼーション系不具合、などの緊急度の低いバグ
P4 見た目だけの問題や微妙な挙動の一貫性不備、などの動作そのものには影響しないバグ

これは一例ですが、基本的な優先順位の意味付けはチーム内で共有しておく必要があります。

優先順位に付いている「P」は priority の略。

トリアージは以下のようなメンバーで行います。

  • テクニカルリーダー (あるいは、プロジェクトマネージャ)
  • システムエンジニア (あるいは、デザイナー) : 仕様作成者
  • テストリード
  • シニアソフトウェアエンジニア

これに (チケット内容の詳細を確認するため) レポーターが参加したり、実装の詳細をしっているエンジニアが参加したりする場合があります。

ソフトウェアリリース

バグに対してのワークフローからは少し脱線しますが、バグの優先順位はソフトウェアのリリースと関連付けられる場合あります。

ソフトウェアのリリースに関しては、正式公開されるまで

  • 基本仕様の実装完了 (Feature Complete)
  • アルファ版 (Alpha)
  • ベータ版 (Beta)
  • リリース候補版 (Release Candidate)

というような内部リリースの段階を踏みます。

リリース予定日から逆算してスケジュールを組むことが多いと思いますが、この内部リリースの大まかな定義 (目標) として、優先順をつけられたバグの数を使うことがあります。

つまり……

リリース 内容
Feature Complete 仕様実装がほぼ完了。新規機能追加を基本的に行わず、テストフェーズに移行
Alpha 最優先のバグ (P1) = 0。追加仕様の実装
Beta 重要なバグ (P2) = 0
Release Candidate その他、バグを可能な限りなくす。P3 バグ = 0 が目標

内部リリースのフェーズに応じて、その時点で残っているバグの優先順位の見直しが行われます。

場合によって、緊急度の低いいくつかのバグは次期バージョンに持ち越しされることもあります (defer)。

チケットの状態

報告されたチケットは、担当者に割り当てられるまではディスパッチャーが預ります。

チケットの状態 (status) にはおおよそ以下のように分類されます。

状態 内容
公開 (Open) チケットを受理。修正作業に入る前の状態
作業中 (In Progress) 担当者が当該チケットの修正作業中
修正済 (Resolved) 担当者がバグを修正し、テスターに検査依頼
完了 (Closed) テスターが修正内容を確認し、修正の承認が終了した状態

会社やプロジェクトによっては、更に以下のような状態が追加されている場合もあります。

状態 内容
新規 (New) Open の前段階。担当者に割り当てられる前の状態。New がない場合は、Open が New を兼ねる
検査中 (Testing) Closed の前段階。テスターが修正内容を検査中。Testing がない場合、Resolved が Testing を兼ねる

担当者 (開発者) のアクション

担当者はバグを修正して、テスターに「修正済 (Resolved)」として渡す役目を担いますが、単にソフトウェアを変更して「修正」する以外にもいくつか取りうるアクションがあります。

状態 内容
修正完了 (Fixed) ソフトウェアを変更し、バグを修正した
再現不可 (Cannot reproduce) 報告されたバグが再現できないため修正が困難。レポーターないしテスターに差し戻し
重複 (Duplicated) 他のチケットとしてすでに報告されている
修正不可 (Won't fix) 外部要因 (ハードウェアあるいは OS もしくはサードパーティライブラリ) による制限により修正不可能
仕様 (By design) 「それは仕様です (Working as intended)」

先述した通り、バグは再現性が非常に重要です。開発者の環境で再現できれば、そのバグは八割以上直ったのも同然とも言えます。

「再現できない (I could not reproduce/replicate it)」場合は、レポーターもしくテスターに差し戻して手順や条件の見直しをしてもらいます。

フロー概要図

以上を踏まえて、ざっと図にまとめると以下のようになります。

[図] チケットに対するワークフロー

人物っぽいシンボルについては

  • D : 担当者。主に開発者が担う。
  • L : ディスパッチャー。主にテクニカルリーダーが担う。
  • T : テスター。修正されたバグを検査する

のようになります。

レポーターは前述のとおり、テスターが担うことが多いのですが、必ずしもテスターがレポーターになるという訳ではありません (バグの報告は誰でもできます) 。

このエントリーをはてなブックマークに追加

スポンサーリンク

Tinted image for UIImage

[画像]画面に表示するイメージ画像に色付けしたい……。

iOS のアプリケーションでハイライト状態などを示すため、生成した画像イメージに対して色付けしたいときがあります。

UIView には tintColor というプロパティがあって、色付けが簡単にできそうなのですが、イメージを表示する UIImageViewtintColor を設定しても何も変わりません。

そこで以下のようなヘルパークラスを用意して利用しています。

@interface SBLImageHelper
/**
 *  Generates an image which is tinted with a given color.
 *  @param image - an image to be tinted
 *  @param color - tint color
 *  @return an instance of UIImage
 */
+ (UIImage *)tintedImageFromImage:(UIImage *)image
                        withColor:(UIColor *)color;
@end


@implementation SBLImageHelper

+ (UIImage *)tintedImageFromImage:(UIImage *)image
                        withColor:(UIColor *)color
{
  UIImage *output = nil;
  CGRect rect = CGRectMake(0, 0, image.size.width, image.size.height);

  if (UIGraphicsBeginImageContextWithOptions != NULL)
  {
    UIGraphicsBeginImageContextWithOptions(image.size,
                                           NO,
                                           image.scale);
  }
  else
  {
    UIGraphicsBeginImageContext(image.size);
  }

  CGContextRef context = UIGraphicsGetCurrentContext();

  // -- flipping geometry
  CGContextTranslateCTM(context, 0, image.size.height);
  CGContextScaleCTM(context, 1.0, -1.0);

  // -- setting up blend mode
  CGContextSetBlendMode(context, kCGBlendModeNormal);

  // -- first drawing the image
  CGContextDrawImage(context, rect, image.CGImage);

  // -- then setting up mask and fill the color
  CGContextClipToMask(context, rect, image.CGImage);
  CGContextSetFillColorWithColor(context, color.CGColor);
  CGContextFillRect(context, rect);

  output = UIGraphicsGetImageFromCurrentImageContext();
  UIGraphicsEndImageContext();

  return output;
}

@end

次のように使います。

UIColor *tintColor = [[UIColor redColor] colorWithAlphaComponent:0.5];
UIImage *originalImage = [UIImage imageNamed:@"sample"];
UIImage *tintedImage = [SBLImageHelper tintedImageFromImage:originalImage
                                                  withColor:tintColor];

Objective-C にはカテゴリーという既存のクラスを拡張するための仕組みがありますが、すでにあるメソッドと同じ名前のメソッドを追加すると、どっちのメソッドが利用されるか分からなくなってしまうという強烈な副作用があります。

ですので、個人的にはあまりオススメしませんが、UIImage のカテゴリーとして拡張するバージョンだと以下のようになるでしょうか。

@interface UIImage (SBLImageHelper)
/**
 *  Generates an image which is tinted with a given color.
 *  @param color - tint color
 *  @return an instance of UIImage
 */
- (UIImage *)imageWithTintColor:(UIColor *)color;

@end


@implementation UIImage (SBLImageHelper)

- (UIImage *)imageWithTintColor:(UIColor *)color
{
  UIImage *output = nil;
  CGRect rect = CGRectMake(0, 0, self.size.width, self.size.height);

  if (UIGraphicsBeginImageContextWithOptions != NULL)
  {
    UIGraphicsBeginImageContextWithOptions(self.size,
                                           NO,
                                           self.scale);
  }
  else
  {
    UIGraphicsBeginImageContext(self.size);
  }

  CGContextRef context = UIGraphicsGetCurrentContext();

  // -- flipping geometry
  CGContextTranslateCTM(context, 0, self.size.height);
  CGContextScaleCTM(context, 1.0, -1.0);

  // -- setting up blend mode
  CGContextSetBlendMode(context, kCGBlendModeNormal);

  // -- first drawing the image
  CGContextDrawImage(context, rect, self.CGImage);

  // -- then setting up mask and fill the color
  CGContextClipToMask(context, rect, self.CGImage);
  CGContextSetFillColorWithColor(context, color.CGColor);
  CGContextFillRect(context, rect);

  output = UIGraphicsGetImageFromCurrentImageContext();
  UIGraphicsEndImageContext();

  return output;
}

@end

この記事は qiita.com の内容を再掲載したものです。

このエントリーをはてなブックマークに追加

スポンサーリンク

スイス・チューリッヒに引っ越しました

知っている人もいると思いますが、およそ十年間暮らしたニュージーランドを離れ、今年 7 月よりスイス・チューリッヒにて生活を始めました。

[写真] リンデンホフの丘からチューリッヒ旧市街を眺める

カリフォルニア、いわゆるシリコンバレー、を拠点とするクラウド系サービスを提供している IT 企業のチューリッヒオフィスで、ソフトウェアエンジニアとして働いています。

「ニュージーランドからスイスに引っ越します」と言うと驚く人が多いんですが、場所はどちらかと言うと付随的なもので、やってみたいお仕事を選んだら、働く場所がたまたまスイスだったという感覚が近い感じがします。

もちろん、そこで生活していく以上、もっとも影響のある要素のひとつなので、考えられる可能性などを家族と相談した上で決めました。

[写真] チューリッヒ中央駅・車は当然ながら左ハンドル右側通行

スイスで働くためには就労ビザが必要なります。今回、ビザの申請から最終的な承認が下りるまでにおよそ三ヶ月かかりました。

ビザ申請は採用決定後に行われます。採用の決定を受けたものの、スイス行きが確定しない (それもいつ確定するか分からない) という宙ぶらりんな状態が続きました。

いつ確定するか分からないので、準備や告知をどのタイミングで始めるか決めかね、正直辛かったです。

ビザが下りて、スイス行きが確定してからは、前職にて退職願提出から始まり、引っ越しの手配、各所へのお知らせ、日頃よりお世話になっている友人などにご挨拶、ニュージーランドの持ち家に関しての諸手続き、……などなど、とにかくやることが盛り沢山。

娘や嫁さんの頑張りのお陰でどうにかこうにかスイス入りにこぎつけたという感じです。

[写真] チューリッヒ中央駅・博物館通り

参考になるか分かりませんが、スイス行きが確定するまでの流れを軽くまとめると……

2012.09 上旬
申し込み。 CV (職務経歴書) の送付
2012.10 中旬
スイスでの就労ビザ取得困難との判断で一度断られる
2012.12 中旬
先方より再連絡
2013.01 上旬
Skype で技術面接 (一次)
2013.01 中旬
Skype で技術面接 (二次)
2013.01 下旬
Skype で技術面接 (三次)
2013.01 下旬
人事の方と電話面接
2013.02 中旬
Skype にて面接。正式にオファーを受ける
2013.02 下旬
オファーにサイン
2013.03 上旬
就労ビザ申請手続き開始
2013.03 下旬
ビザに必要な書類の送付
2013.04 上旬
スイス連邦当局よりビザ承認
2013.04 下旬
申請者の就労ビザの最終承認
2013.05 下旬
申請者の家族のビザ最終承認
2013.07 中旬
スイス入り
2013.08 上旬
ネコ・家族のスイス入り

就職応募先がスイス、本社はカルフォルニアで、私自身はニュージーランド。面接は基本的に Skype を通して行いました。

2 月頃、こちらのネットワークの調子が非常に悪い時期があって、その時だけ電話での面接でしたが。

これまでにも何度か Skype を通して面接を行ったことはありますが、これほど立て続けに面接をしたのは初めての経験でした。

技術面接では Google ドキュメントのような共同編集できるオンラインツールを使って、コーディングの問題に回答したりもしました。

ビザ最終承認の後、スイス入りまで飛ばしていますが、前述のとおり、怒涛の勢いで色んな行事やら手続きが詰まっています。

[写真] チューリッヒ中央駅にて

スイスにはこの先、どのぐらい滞在することになるかは分かりませんが、とりあえずしばらくはこの新しい場所で生活していくことになります。

十年間暮らしたニュージーランドは、素晴らしい友人にも恵まれ、とても快適に過ごすことができました。お世話になった方々、ありがとうございました。スイスに移ってもよろしくお願いします。

[写真] チューリッヒ大聖堂

このエントリーをはてなブックマークに追加

スポンサーリンク

Re: 今日のiPhoneホーム画面

salchuさんの「今日のiPhoneホーム画面」に触発されて、私もホームスクリーン晒し。

この間、日本でお会いした時には iPhone 持っていなかったので、お見せできなかったですものね。多分、iOS6 でのホーム画面はこれが最終形になるかと。五つの画面をひとまとめにしてしまったので、見づらくてごめんなさい。

[画像] iOS6 でのホーム画面

スクリーン 1
Apple 標準アプリのみ。"Podcast" は、半標準ということで。
スクリーン 2
ソーシャル系・日常で利用するアプリ。左に赤系・右に青系を置いてます。
スクリーン 3
Apple, Google, Evernote を順に並べて、自作アプリもここに。
スクリーン 4
辞書系・読書系のアプリ。
スクリーン 5
銀行関連・乗り換え案内関連。あといくつか普段あまり利用しないやつも。

傾向として……

  • フォルダはあまり使わない。
  • 同系色はまとめたい。
  • よく利用するアプリほど下に配置したい。

といった感じでしょうか。

地図は標準 Map と Google Map を半々で利用する感じ。これまでのところ、標準の Map で使いづらいとか困ったとかあまり感じたことがないので、特に Google Map じゃないとダメという感じではないです。

二ページ目は左側の赤系・右側に青系と決めているんですけど、そのせいであまり使わない mixi とか Foursquare が入ってしまっているのはご愛嬌。Gmail, ATOK Pad, Facebook, Dropbox は、ビューワとしてほぼ毎日使ってます。

iOS7 になると、おそらくまた構成が変わると思うので、この状態があと何日もつかは不明ですけれども。

あ、ちなみに iOS で最も頻繁に使っていると思われるアプリは Settings (設定) です。カメラはもっぱらロックスクリーンからアクセスするのでどこに置いても変わらないという。

このエントリーをはてなブックマークに追加

スポンサーリンク

mi 3.0.0b1 - mi ver 3 のファーストベータ

多機能エディタ mi の新バージョン ver 3 の最初のベータ版が公開されました

ver 3 になって Cocoa フレームワークを利用したアプリケーションとして作り直されています。

そのため Maximizer のような Cocoa アプリケーションにしか効かない SIMBL プラグインも利用できるようになっています。フルスクリーンで mi が利用できるように。

UI のアピアランスが大きく変更されました。Cocoa フレームワークを利用したこと影響も大きいのでしょう、全体的にモダンな UI に変わっています。

[画像] mi ver 3 - インタフェースが刷新されました。

アウトラインは「見出しリスト」という形で従来からサポートされていましたが、それが強化されて、セクション毎に折畳みができるようになっています。

モダンなエディタらしく (?) 選択されたテキストなどに対して、同一ファイル内に存在する同じワードが全てハイライト表示されたりします。

モードや設定などは ver 2 から引き継がれますが、設定ファイルは別に保存されているので併用も可能です。

私の環境ではモード毎に設定されているツールに割り当てていたキーバインドの一部が引き継がれませんでしたが (一部、新規追加されたデフォルトのキーバインドと被っていたせいかもしれません)、概ね以前のままの状態でそのまま利用できる印象です。

英語リソースの対応はまだのようで、英語環境で立ち上げると英語と日本語が交じったインタフェースになってしまうのはご愛嬌。…… ver 2 から引き継がれたメニューやインタフェースは英語化されていて、新規に追加された分が英語化されていないという感じの状態になっています。

アプリケーション設定・モード設定が大幅に見直されてとても分かりやすくなっています。

[画像] mi ver 3 - 設定ウィンドウが大幅に刷新されています。

特にカラー設定は「カラースキーム」という csv ファイルで定義されるようになり、インポート・エクスポートが簡単にできて管理しやすくなっています。インタフェースも分かりやすい。

ver 2 では subversion などバージョン管理システムで管理されたファイルに対して差分表示を行う機能がありましたが、ver 3 では、差分表示機能そのものが大幅に強化されて、自動保存による履歴差分や他のファイルの差分表示などもサポートするようになっています。

[画像] mi ver 3 - 新規に追加された差分表示機能。

私の環境では Retina ディスプレイでの表示を確認することはできませんが、アプリケーション内のリソースを見ると一部アイコンなどはベクター画像が利用されたりしていて、Retina 表示にも対応しているようです。

アプリケーションアイコンも前掲の通り刷新されました。「ミミカキ」がなくなっていますが、最大サイズ (1024 x 1024) で見るとハイライトペンのところに、さりげなく「MI3」の文字が……。細かい。

[画像] mi ver 3 - アプリケーションアイコンに隠された (?) MI3 の文字。

アイコンでキャプチャされている書類は、なんらかのソースコードに見えます。なんだろう……。コードスタイルから見ると c++ っぽい感じのコード。

まだざっとしか利用していませんが、安定して動作しています。パフォーマンスに関しては今のところ従来と同等な印象ですが、大きなファイルを開いたり、マルチファイル検索などの比較的重めな処理は行っていないので、これから確認という感じです。

ver 3 ではフリー版・有料版・AppStore 版とリリースされる予定ですが、今回ざっと紹介した機能のどこまでフリー版のものか、有料版のものかなどの詳細はまだ分かりません。ともあれ今後の展開にとっても楽しみです。

このエントリーをはてなブックマークに追加

スポンサーリンク

1/24