2013年を振り返って

今年も残すところあと数時間。僕にとっての2013年は、激動というか、良い意味で大きな変化があった年となりました。 長女誕生 とにかくこれに尽きます。10月16日7時23分に、3252gの無事元気な女の子が誕生しました。 今年の初めから妻の妊娠生活が始まり、今日2ヶ月半くらいですが既に体重は6000gを超えています。ここまでこれたのは「妻の頑張り」の一言です。いくら感謝しても感謝しきれません。 とにかくミルクをよく飲みます。ぐびぐび飲みます。太ももは既にお相撲さんです。ここか...

chrome.identity APIのリファレンスを和訳してみました

Chromeのstable 29から、OAuth2を拡張機能内で扱うためのAPIが搭載されました。APIリファレンスを和訳してみましたので、興味のある方は参考にしてください。 Original: http://developer.chrome.com/extensions/identity.html chrome.identity 説明: OAuth2アクセストークンの取得のためにchrome.identity APIを使います。 利用可能環境: Chrome 29 安定版以降 権限...

メールが受信できなくなった&復旧

昨日、家に帰ってきてネットでぶらぶらしてたら、突然自宅サーバのSMTPサービスからエラーメールが次々と送信されてきた。そのメールの中身を注意深く見てみると、 “Insufficient system storage” と書かれてる。あれ?vmのファイルイメージ壊れた?と一瞬思ったけど、Postfixを動かしてるvmのOSやPostfix自体は動作してるわけで、HDD障害ってわけでもなさそう。でも、storageって言ってるので、何かファイル関連の話かなぁ、と調査を開始。 わかってみれ...

娘が産まれました!(副題:出産を支える夫に注意して欲しい9つのこと)

16日の朝7時23分、我が家に家族が増えました。3252gの女の子が誕生しました!15日が終わって16日に変わる深夜に陣痛が始まり、約8時間後に産まれました。安産、なのかな。 その日は「10年に1度」と言われた台風が来ていて、「暴風雨の時に陣痛来たら大変だねー」なんて職場で話していたんですけど、まさにそれが現実になってしまいました。僕自身は午前2時前くらいに病院に到着して、出産の直前まで妻の隣にいたのですが、確かに風の音はすごかった気もするけど、台風が来てるなんて意識はどっかに吹っ飛...

Chrome Packaged Appsが「Chrome Apps (Chromeアプリ)」として正式公開されました

既に「Chrome Packaged Apps」として開発者に知られていましたが、遂にGoogleはそれを「Chrome Apps(Chromeアプリ)」という名前で正式公開しました。今まではPackagedアプリを作ってChromeウェブストアに公開しても、検索にヒットせず、カテゴライズもされていませんでした(URLを直接知らないと見つけられなかった)。現在は、Windows向けのChromeウェブストアで「PC向け」としてPackagedアプリがいくつか公開されています。 以下、...

emacs24で搭載されたELPAでのインストール先指定

emacs24以前では、auto-installなどの外部elispを使って、パッケージをインストールしていました。emacs24からは、package.elというパッケージ管理機能(ELPAと呼ばれています)が標準で搭載されるようになり、機能拡張がより簡単になっています。M-x list-packagesとすれば、インストール可能なパッケージの一覧が表示され、その中からインストールしたいパッケージで”i”をタイプし、”x”でインストールを実行できます。ホントに簡単です。 package...

M.ZUIKO DIGITAL ED 40-150mm F4.0-5.6 Rを買ってみました

OLYMPUSのE-P5レンズキットについてきた17mm F1.8レンズは、単焦点なので撮りたい画角に自分が移動しなければなりません。それはわかっていたのですが、やはりズームレンズも1本持っておきたいな、と思い、買ってみました。 M.ZUIKO DIGITAL ED 40-150mm F4.0-5.6 R こんな感じのレンズです。 望遠側にすると、にゅいぃーんと伸びます。 僕の家の庭には、今背の高いひまわりが咲いています。これを17mm F1.8のレンズで狙うには、脚立に登...

Chrome extension向けにCPU情報取得APIが登場しそうです

たまに「何か新しいAPIが登場してないかなぁ」とChrome extensionのAPIリファレンスを眺めに行きます。今日も眺めていたら、見慣れないAPIがリストに追加されているのに気がつきました。 その名は、「chrome.system.cpu」です。 http://developer.chrome.com/extensions/system_cpu.html これはCPUに関するメタ情報を得るためのAPIです。まだソースコードのtrunkにしかなく、自分でビルドしないとこのAPI...

FreeNASを飛ばしかけた話

僕は FreeNASの8.0.3からのユーザですが、RAIDZ2で快適ファイルサーバ生活を続けています。途中1回のHDD交換を経験し、OSのバージョンも8.2.0p1まで順調に上げてきていました。 世の中はもう8.3.1まで来ていて、すでに9.1のRC版まで公開されています。ファイルサーバという性質上、バージョンを上げたことによってものすごいメリットを得られるかというと、そんなことはありません。しかし、新しもの好きの僕としては、例えば体感できないけどファイル転送スピードがほんのちょっと上...

E-P5とF1.8レンズの威力

この前買ったOLYMPUS PEN E-P5と17mm F1.8レンズの組み合わせで、写真を撮りまくってます。背景をボケさせるためのコツがだんだんわかってきました。かなり満足いってます。 で、この明るいレンズは夜景も得意なんだというレポートがネットに結構多く載ってます。試しに、庭を撮ってみました。 (ISO 1600 17mm -0.3EV F1.8 1/1) この写真、20時過ぎに撮ったものです。肉眼では、もう真っ暗。庭のランプがなければ、足下も見えない感じです。上の写真を撮る...

昨日OLYMPUS PEN E-P5で撮った写真

自分で綺麗に撮れた写真を600x450にリサイズしてブログに投稿してみる。 ここからわかることは、僕は撮りたい被写体を右下でピント合わせて、左上に向かってぼかして奥行きを見せる、っていう構図が好きなんだ、ということですね。

近くの本屋にChrome本を探しに行った話

7月5日に発売開始になったChrom本を探しに近くの本屋に行ってみました。 ぱっと見ても平積みはされてなく、ちょっと探していると、OpenSocial本が見つかりました。 そして隣の棚には、mixiアプリ本も発見。 でも、いくら探してもChrome本は見つかりません。本を探すための端末があったので、キーワードを「著者名: たなかよういちろう」で検索するも、なぜかヒットせず。その端末はどうも平仮名しかキーワードに入れられない模様。もしかして・・・と思って、キーワードとして「...

ミラーレス一眼レフカメラを初めて買ってみました

今までコンデジ&iPhoneで適当に写真を撮ってきましたが、最近無性に「良いカメラ」が欲しくなって、ついに買ってしまいました。 OLYMPUS マイクロ一眼 PEN E-P5 17mm F1.8 レンズキット(ビューファインダー VF-4セット) シルバー E-P5 17mm F1.8 LKIT SLV OLYMPUS PEN E-P5という先月に発売されたばかりのミラーレスカメラです。10万ちょいの一眼レフを買おうと最初思ってたんですけど、カメラ小僧が多いGoogle Devel...

「開発者のためのChromeガイドブック」が出版されます!

Chromeを担当しているGoogle Developers Expert達と、Chromeに関する書籍を執筆しました。7月5日に発売予定です。 この本は、3つの章から構成されています。 Chrome API Chromeウェブストア デベロッパーツール 僕はChromeウェブストアの章を担当しました。ウェブストアの掲載内容、アプリや拡張機能をウェブストアに公開するための手順、そして課金APIやウェブストアにアプリを...

Chromeデベロッパーダッシュボードで公開鍵を確認できるけど何のため?

ちょっと前に僕がリリースしている拡張機能をバージョンアップしようとして、Chromeデベロッパーダッシュボードを開きました。そこには見慣れないリンク「詳細」がありました。 押してみると、アイテムIDや公開鍵が表示されました。 ここで「おぉ、なんと便利な!」と思った方は、下を読まなくてもいいです。僕は最初「え、公開鍵なんて表示されても、何に使うんだ?利用用途ないだろおい」と思ってしまいました。でも、理由なく単に「特に意味ないけど出してみました、てへっ」なんてことはないと思うので、...

省電力を抑制するchrome.power APIが利用可能になりました

「操作はしていないけれど、画面を表示しっぱなしにしておきたい」という場面があります。例えば、プレゼンテーションの真っ最中とか、電子書籍を読んでいる時などです。そのような種類のアプリや拡張機能をChrome向けに作った際に、 chrome.power APIを使うことで、一時的に省電力に入ることを抑制することが可能です。 Chrome 27から、アプリと拡張機能の両方でchrome.power APIを使うことができます。そのAPI Referenceを和訳してみましたので、下に掲載します...

ChromeのDownload APIリファレンスを和訳してみました

そろそろStableになるんじゃないかと思って、Chromeの拡張機能で利用可能になる予定の Download APIのリファレンスを和訳してみました。Chrome Canaryでは実際に試すことができます。Download APIは、ファイルダウンロードをプログラムから制御可能にするAPIであり、chrome://downloads/ ページ相当の機能をプログラムで実現可能というものです。 結構このAPIを待っていた人は多いと思います。Stableに入るまでに、ぜひAPIの使い方をマス...

Chromeウェブストアにて段階的にユーザを増やせる機能が追加されました

Chrome拡張機能を久々にバージョンアップしようとして、Chromeデベロッパーダッシュボードに行ってみると、何やら新しい機能を発見!それは、 「段階的に新しいバージョンの利用ユーザを増やしていける機能」 です。Chrome拡張機能のzipファイルをアップロードすると、以下のようなUIが出てくるようになりました。 つまり、ここで入力した割合で限定されたユーザ数にのみ、このバージョンを利用してもらうということが可能になります。例えば、新しい機能の評判を徐々に見ていくとか、新しい機...

Google I/O 2013報告会に参加してきました、しかも名古屋!

今年は残念ながら参加できなかったGoogle I/O。しかし、Google Developers Expertとして、Google I/O報告会でレポートしなくちゃいけないという、なんとも嬉しいんだか悲しいんだかな感じで、しっかりとレポートをしてきました。今年も全国をHangoutsでつないで、各地で盛り上がりを見せた報告会になりました。昨年は東京会場でしたが、今年は名古屋会場にお邪魔してきました。 名古屋会場の場所は、名古屋ルーセントタワー32階にある株式会社エイチームの会議室でした。...

ちょっと前の僕の夕飯

とある事情で、夕飯をほぼ毎日外食しなくちゃいけない時期が先月あって、食べたものの写真を撮っていたことを今思い出しました。ここでどんなものを食べていたのかを振り返ってみたいと思います。 まずはカレー。野菜、牛しゃぶ、ハンバーグをトッピングしてます。 次もカレー。野菜、牛しゃぶ、とんかつをトッピングしてます。 次は松屋。サラダ、牛めし、豚汁変更です。 そしてまたカレー。野菜、豚しゃぶ、とんかつトッピングです。 次の日は、なぜかコンビニのざるそば。 日高屋...

FreeNAS8でreplaceするもDEGRADEDなままだった話

FreeNAS8のHDD交換エントリで紹介した通り、FreeNAS8で故障したHDDの交換をしてました。replaceを開始して、残り6,7時間と表示され、気を長くして待っていると見せかけて、寝てました。 朝になっても終わってなかったのですが、replaceは何とか終わった模様。状況を確認してみます。 # zpool status pool: tobu state: DEGRADED scrub: resilver completed after 12h58m with 0 e...

FreeNAS8のHDD交換

FreeNAS8で運用してきたNASのHDDが1つ遂にお亡くなりになってしまいました。SMARTの値もどんどん酷くなっていたんだけど、ある日気がつくとHDDが認識されてなくて、プールのステータスもDEGRADEDに。 RAID-Z2で作ってあったために、もう1台壊れても大丈夫。焦ることはありません。ダメになったHDDを特定し、予め買ってあった新しいHDDに交換します。 その後電源を入れてプールの状況を見ると、以下のような感じに。 # zpool status NAME ...

Image Collector extensionの週間ユーザ数が20,000人を超えました

ちょうど昨年の今日に、 Image collector extensionをリリースしました。画像の一括ダウンロードという機能が欲しくて自分用に作った拡張機能でしたが、おかげさまで今日Developer Dashboardを見たら、1週間のユーザ数が2万人を超えることができました。 Google Analyticsの測定でも、訪問数が2万を超えているのがわかります。 拡張機能側は最近手を入れてなくて、もっぱらサーバ側の調整をしてます。ホントはクラウドサービスを使って負荷分散とか...

2週間弱のぷー生活が終わります

前職を辞めて、2週間弱のぷー生活があと30分ちょいで終わろうとしています。この休みにやったことと言えば・・・ ある書籍の執筆作業。 Google Developers Expert meetingへの参加。 次の職場の人と飲み。 本の購入と自炊作業。 試してみたかった技術的な興味の検証。 CSでやってた「風雲たけし城」を見ること。 って感じ。ほとんど執筆で終わっち...

Google+ History APIはどこに行ってしまったのか?

その答えが今日発表されました。結局、App Activitiesという新しい機能に統合されました。 App Activities - Google+ Platform Google Moments PreviewというGoogle Groupがあったのですが、そこに今日投稿された内容を翻訳したものが以下になります。 こんにちは、 Google+ Historyの開発者向けプレビュープログラムの貴重なメンバーとして、あなたにGoogle+の今後の方針のプレビューをお伝えします...

SyncFileSystem APIの仕様ドラフトを和訳してみました

時代はそろそろ「オフラインファースト」になる模様ですが、そのためにはブラウザが情報をオフラインで扱うことを可能にする機能が充実してくれないといけません。いろんなAPIを組み合わせて駆使していけば、現状でもできないことはないです。しかし、もちろん僕らは手軽にオフライン対応Webアプリを作りたいですよね?同期処理や競合など、自分で面倒見たくは誰しもないはずです。 SyncFileSystem APIはそんな僕らの要求に応えてくれるかもしれないと考えています。まだChrome Canaryでし...

徐々にユーザが戻ってきた

Image Collector extension、2月10日にやらかしてしまった結果、多くのユーザが休眠状態になってしまいました。何をしてしまったかは、「 Chrome拡張機能でパーミッションを追加して再リリースすると何が起きるのか」のエントリをご覧ください。 その後、徐々に復活してきてます。ホントに徐々にですけど。休眠してたユーザが再び使い始めてくれているってことでしょうか。 もどってこーい!そして再び使ってくれー!

Chromebook Pixelを見てきました

昨日の夜は、月1で行われているGoogle API Experts meetingでした。そこで、話題のChromebook Pixelの実機を触ってきました。 Chromebook Pixel 「ディスプレイの背面にロゴがなく、ヒンジのところに書かれてる」っていうことは知っていたのですが、その通りでした。小さめに「Chrome」って書かれてます。 重さはとっても軽いです。adamrockerが不自然な姿勢で持っても、とっても軽そうに見えます。 2回くらい前のGoogle ...

昨日の退職エントリへのインパクト

昨日の朝に、「 ミクシィ社を退職しました」っていうエントリを出しました。その反響はすごく、Twitter、Facebook、Google+などで多くの方からいろいろなコメントをいただくことができました。今後も精進せなあかんな、と思った次第です。皆さま、ありがとうございます。 このブログは、僕の自宅にあるサーバで運用しています。最近 muninというサーバの稼働状況をグラフでモニタリングできるソフトウェアを入れて、各サーバ、各VMの状況を見れるようにしていました。昨日のエントリに対する状況...

ミクシィ社を退職しました

3年と10ヶ月ちょい勤務したミクシィ社を退職しました。正確には今月末までですが、余ってた有給休暇を2週間ほど使うので、最終出社日としては先週の金曜日でした。 「退社」というか「退職」というかを調べていたのですが、「退職」という方が正確っぽいですね。退社だと「勤務を終えて家に帰ったこと」も意味として含まれるらしいです。確かに「退社願」は書かずに「退職願」を書きますよね。つまりはそういうことです。 入社からずっと一貫して「mixi Platform」の構築に従事してきました。 mixi D...

Chrome拡張機能でパーミッションを追加して再リリースすると何が起きるのか

開発者は常に新しい価値をユーザに提供したいと考えています。自分の技術的興味が、結果としてユーザを幸せにすることを切に願っています。新しい機能を提供するということは、時にユーザの持ち物をプログラムから更にアクセスできるようにならないと実現しません。勝手に持ち物に触ることは、現実世界ではやってはいけないことですし、もちろんChromeの中においても同じです。ユーザに許可を得て初めて、プログラムはユーザの持ち物に触れる権利を得られるのです。 全てのユーザが「うん、いいよ」と言ってくれれば話は楽...

Event pageを複数回取ろうとしたときの罠はバグでした

ちょっと前に「 Event pageを複数回取ろうとしたときの罠」というエントリをしました。これは、以下のようなコードを実行した時に、Event pageのwindowオブジェクトを最初の1回しか取得できない、っていう現象を報告したものでした。 chrome.runtime.getBackgroundPage(function(backgroundPage) { console.log("1: " + backgroundPage); }); chrome.runtime.get...

自らDoS攻撃を食らった話(onStartupやonInstalledの使い方)

自分が作って公開しているChrome拡張機能をEvent page対応したことは 前のエントリで紹介しました。一般的にはそのエントリの内容で十分であり、Chrome拡張機能の動作自体は問題なかったのですが、思わぬところで落とし穴が一つありました。 それは、Ajax通信によるバックエンドサーバとの通信料の増加、でした。 Image Collector extensionでは、Dropboxなどのクラウドストレージサーバに画像をアップロードする機能を、Chrome拡張機能内ではなく、僕の自...

Event pageを複数回取ろうとしたときの罠

【追記: 2013/02/08】以下の挙動はChromeのバグっぽいので、 バグレポートを提出しています。 Chrome拡張機能を作っていて、最近はまったことをここで紹介したいと思います。それは、「複数回Event pageを取得しようとしたときの挙動」についてです。常駐しないエコタイプのBackground pageである「Event page」ですが、これをポップアップウィンドウなどから取得する際には、以下のように記述します。非同期な感じです。 chrome.runtime.get...

Chrome拡張機能におけるエコ対策(Event pageへの移行方法)

いくつかChrome拡張機能を作ってChromeウェブストアに公開しているのですが、それを最初に公開したときはmanifest.jsonファイルのバージョンがまだ最初の頃でした。現在ではバージョン2が主流であり、そろそろ古いバージョンの拡張機能は撲滅される予定になっています。そのため、開発者はそろそろ急いで新しいバージョンに変更すべく、せっせと移行作業を進めなければなりません。これは何もGoogleの開発者いじめではなく、ちゃんとした理由があります。その理由は、どれも開発者およびユーザへの...

SocialからChromeに担当が変わりました

今までGoogle Developers Expert(=API Expert)のSocial担当として活動をしてきましたが、この度Chrome担当に変更となりました。Google Developer Relations Japan Blogでもそのことが正式に触れられています。 [Google API Expert ミーティング 1 月を開催しました] http://googledevjp.blogspot.jp/2013/02/google-api-expert-1.html 最...

新しいImage Collector extensionは”スライドショーモード”をサポートしています

昨日、 Image Collector extensionの新しいバージョンをリリースしました。そのバージョンは、”スライドショーモード”という名前の新しい機能をサポートしています。きっとその機能は、ネットサーフィンをより楽しくしてくれると思っています。 この拡張機能のボタンをクリックしてポップアップを開いたとき、スライドショーモードを開始するための新しいリンクを見つけることができます。 そのリンクをクリックすると、スライドショーモードが開始されます。今見ていたWebページの画像を...

Google Developers法被(はっぴ)をもらいました!

昨日は毎月やっているGoogle Developers Expert meetingでした。そこでもらったのが「Google Developers法被」。法被と書いて「はっぴ」って読みます。 表はこんな感じ。 そして裏はこんな感じ。 着てみました。似合ってますかねー? これからイベントとかあれば、着ていこうと思います。

Chrome+HTML5 Developers Live Japan #1で話してきました

昨日1月24日の夜に、 Chrome+HTML5 Developers Live Japan #1でChrome extensionの話をしてきました。その時の模様は以下で見れます。7分過ぎくらいから音量が大きくなりますので、それまではVolume MAXでお願いします。 使ったスライドは以下です。 内容としては、ちょっと前に書いた「 僕が考えたChrome拡張機能を作るときのデザインパターン」の内容をベースに、Chrome拡張機能のHello, worldを作るための方法や、拡張機能...

WebKitBlobBuilderがChromeから削除されたっぽい

Chrome拡張機能として提供しているImage Collector extensionの中で、今までWebKitBlobBuilderを使っていました。使ってた箇所は、画像を一気にダウンロードするコマンドが列挙されたスクリプトファイルを作る箇所。以下のようにしてました。 var script = "..."; var blobBuilder = new WebKitBlobBuilder(); blobBuilder.append(script); var link = documen...

oh-my-zshのテーマでwedisagreeを選んだ時のgitステータスのマークの意味

今年はzshを使うぞ!と意気込んで、身近にあるシェル環境を片っ端からzshに強制移行してます。もちろん形から入りたいので、 oh-my-zshをまずはインストール。 かっこいいテーマはないかなぁ、と物色してると、良さそうなのがあるじゃないですか。”wedisagree”というテーマが気に入りました。 このテーマ、プロンプトの右に、現在いるディレクトリのgitの状況がアイコン表示されます。現在のブランチ名とかも出て、かなり素敵。しかし、アイコンの意味がわからない。このままでは「ただキラ...

Ubuntu Phone、意外といいかも

普段、会社にて開発のためにUbuntu 12.04を使っています。3Dを有効にできるだけのグラフィックチップの性能がないため特殊効果の恩恵は得てないのですが、Unityを使っています。これがホントに使いづらい。変にリッチすぎて、希望の操作を行うまでいちいち遠いなぁ、と思いながら使い続けています。他のデスクトップ環境を使いたくていろいろ入れるも、環境を壊したくもないので保守的にならざるを得ず、結局Unityに戻ってきて我慢してきた感じです。 PCのデスクトップでUnityはもーホントなんと...

Tizen IDEでアプリを作って動かしてみた

Tizen OSのEmulatorを先ほどは動かしてみたのですが、インストールされたのは実行環境だけではなく、IDEも入っています。Emulatorの起動に引き続いて、Tizen IDEを使って自分で作ったアプリをそのEmulatorで動かしてみました。 やってみた結果の感想は、とにかくIDEがバギーです。落ちる落ちる。「アプリを動かす」というゴールまではたどり着きましたが、IDEとして使えるかというと、全くだめなレベルですね。今後に期待です。 Tizen IDEは、Androidと同...

Tizen OSを動かしてみました

ひょんなことから、Tizen OSを動かしてみることになり、せっかくなのでブログに残しておきます。 インストールしたのは、以下のものたち。ホントはUbuntuで最初やったんだけど、グラフィックのチップセットが貧弱なせいかEmulatorが起動せず、それなりのスペック&ドライバがちゃんと入ってるWindows機で試してみました。 Oracle Java 7 SDK Install Manager(for Windows 32bit) tizen...

2013年のソーシャルWebは?

あけまして、おめでとうございます。2013年も、よろしくお願いいたします。 というわけで、今年のソーシャルWebがどうなっていくのか、昨年末に考えてみました。gihyo.jpに掲載されていますので、ぜひお読みください。 新春特別企画 2013年のソーシャルWeb - gihyo.jp ちょっと長くなってますが、いろいろとトレンドなどを予測してます。