カテゴリー : 2014年 12月

技術的負債を返却するには何をすればいいか?

最近、技術的負債の返却のやり方について考えていたのですが、そのアプローチの1つとして参考になる記事を教えてもらいました。

■ 技術的負債を返却するには何をすればいいか
A. “技術的負債の返却が上手な人を雇って権限を与える”

ほんとこれ。2年以上ずーっとやって来てわかった。

サービス開発しながら空いた時間で返却とか、時間の流れで積み重なる負債の量にはまるで歯がたたない。積み重なる負債を圧倒的に倒せる能力を持った人を雇うか、組織の何処かから連れてきて権限を与えるしかないと思う。

・引用元:楽天 TechTalk で Ruby と Rails の話をしてきた, 技術的負債を返却するには何をすればいいか – HsbtDiary(2014-12-12)

サービスと事業が成長してきて、サービス開発する人以外も雇える余裕ができてきたら「技術的負債の返却が上手な人」を雇って権限を与えて任せるというのが良さそうですね。問題点としては、そういう人材は市場にほとんどいないのでリクルーティング自体が難しそうということぐらいでしょうか。

我が家を支えるサービスとアプリまとめ ’14 #家庭を支える技術

このエントリは 「家庭を支える技術 Advent Calendar 2014」 の17日目です。

家庭を支える技術のアドベントカレンダーを見つけたときは意気揚々と登録したのですが、あっという間に当日がやってまいりました。

「何のネタ書こうかなー?」って思っていたら、夜になっちゃいました。特にこれというネタがないので、うちの家庭ではウェブやアプリをこんな風に活用して生活を楽にしてるよって話をしたいと思います。

というわけで例題トピックに沿って、我が家のケースに当てはめて、つらつらと書きますね。

我が家の前提条件

今年の5月に結婚しました。

それまでは、3年ぐらい東京 – 熊本でリモートワーク(遠距離恋愛)をしていました。

スペックとか


・職業:会社員(IT系: Web エンジニア)
・居住地:東京
・持ち物:Nexus5 (Android), MacBook Air


・職業:会社員(医薬品の研究開発職的な)
・居住地:熊本(2014年7月ぐらいまで)
・持ち物:Xperia (Android), Dynabook (Windows)

子供
・まだいません

そんなわけで、結婚式の準備もリモート作業でした。その辺のノウハウを紹介できればと思います。

家庭内のテキストメッセージは LINE? Facebook Message?

日常のやりとりは LINE を使ってます。Facebook メッセージは友人とはよく使ってますが、IT業界でない人には一般的ではないみたいです。

LINE は検索性が悪いので大事な内容の場合は必ず Gmail でメールするようなルールにしています。これは仕事でも同じですけど、口頭で確認するだけでは「言った、言ってない」と口論になってしまうので、ちゃんと文面化することが大切です。

数年前までは Gmail を使ってもらうのはハードルが高かったように思えます。しかし今は Android の普及のおかげで Google アカウントを持っている人が多いので、導入ハードルは低かったです。

リモートワーキング(遠距離恋愛)のビデオ通話は Skype? Google ハングアウト?

遠距離恋愛という名のリモートワークをしていたときは、ビデオ通話に主に Skype を使っていました。しかし、無料アカウントだったせいか 30 分ぐらいで繋がりにくくなってしまっていたので、繋がらなくなったら Google ハングアウトに切り替えるという併用する形で運用していました。

しかし、ここ一年ぐらいで Google ハングアウトの通話品質が向上しきたので、これからリモートワークする人は Google ハングアウトの一択でいいのではないでしょうか。

Android の普及による恩恵なのか、非 IT な人たちも Google アカウントを持ってる場合が多いので、ハングアウトの方が導入障壁が低そうです。

予定の管理は Google カレンダー?

Google カレンダーを活用しまくってます。

家族用のカレンダーを Home という名前で共有して、夫婦のお互いの予定を共有カレンダーに書き込むようにしています。

google-calendar

とある週末は上記のような感じです。

家庭内の TODO 共有は?

TODO 管理にも Google カレンダーを使ってます。タスク管理用にアプリを別で使うよりも Google カレンダーだけにまとめておいた方が一元管理できるのでよいです。よいですよ。

写真の共有は?

結婚式や新婚旅行の写真は Flickr にアップロードしています。

両親や友人に共有するためにゲスト用 URL を発行できるの便利ですね。数年前と比べるとかなり使いやすくなってる印象です。

あとは、画像ファイルのまま欲しいこともあるので Google Drive に Zip ファイルとして置いていたりします。

支出・予算などお金の管理は?

月々の収支の概算は Google スプレッドシートで管理しています。

基本的にクレジットカードを使うようにしているので、クレカの明細を確認すれば大体分かるようにしています。あとはレシートはできるだけもらうようにしています。

その他、ランチのときや飲み会などレシートが貰えない場合は Zaim に記入しています。

ざっくりしか管理してないので、これからちゃんと詰めていかないといけない部分です。

食品や日用品はどこで買う?

会社が近いって理由だけで表参道、原宿エリアに住んでるので、周りに安めのスーパーがないので日用品の買い物も一工夫する必要があります。

うちの家庭では、生鮮食品以外はほとんどロハコか西友のネットスーパーで購入しています。

2000円 〜 5000円ぐらい買うと送料無料なので、お米とかペットボトル飲料品など重いものと合わせ買いして、隔週ぐらいの頻度で日用品を買いだめています。

さーて、明日の家庭を支える技術はー?

明日の「家庭を支える技術 Advent Calendar 2014」は偶然にも今、一緒に仕事をしてくださっているフリーのデザイナーまえだかずひこ(@monoooki)さんです。

ちょうど仕事終わりに気がついて Slack でこんな会話をしていました。

slack-katei-wo-sasaeru-gijutsu

そんな弊社は絶賛、エンジニアやデザイナーを募集中ですので、興味のある方はぜひ!

[MongoDB] aggregate の実行時間を確認する方法

mongo shell で db.collection.aggregate() の実行時間を確認するコマンドをメモ。

time mongo dbname –eval ‘query’ で実行時間を確認する

bash や zsh などから time コマンドを使って mongo –eval でクエリを渡して、実行時間を確認しました。

$ time mongo dbname --eval 'db.orders.aggregate([ { $match: { customer_id: "abcdefg", payment_system: "paypal" } } , { $group: { _id: "$user" } } ])'
MongoDB shell version: 2.6.5
connecting to: dbname
[object Object]
 
real	0m0.120s
user	0m0.044s
sys	0m0.004s

aggregate の explain オプションではダメなのか?

db.collection.aggregate(pipeline, options) の第二引数に explain を Boolean で指定できます。

しかし、これは db.collection.find().explain() の実行結果とは少し違うみたいで、実行時間については確認できませんでした。

  db.users.aggregate( [ ], { explain: true } )
{
	"stages" : [
		{
			"$cursor" : {
				"query" : {
 
				},
				"plan" : {
					"cursor" : "BasicCursor",
					"isMultiKey" : false,
					"scanAndOrder" : false,
					"allPlans" : [
						{
							"cursor" : "BasicCursor",
							"isMultiKey" : false,
							"scanAndOrder" : false
						}
					]
				}
			}
		}
	],
	"ok" : 1
}

time コマンドを使う以外のやり方をご存知でしたら教えて下さい!


参考情報

db.collection.aggregate() — MongoDB Manual 2.6.6

[Mac] QuickTime Player での画面録画の手順

Mac の QuickTime Player を使って画面を録画する手順をまとめました。

事前準備

Sony の USB マイクを Mac に接続します。

Amazon.co.jp: SONY エレクトレットコンデンサーマイクロホン PCV80U ECM-PCV80U: 楽器

QuickTime Player で画面を録画する

  1. QuickTime Player を起動する
  2. [ファイル] – [新規画面収録] をクリックする
  3. [画面収録] ウィンドウにて [マイク] から UAB-80 を選択する
    QuickTimePlayer-1
  4. 赤丸の録画ボタンをクリックする
  5. クリックするとフルスクリーンで収録されます。… というメッセージが表示される
    QuickTimePlayer-2

    • フルスクリーン収録: クリック
    • 部分収録: ドラッグ
  6. メニューバーの ■ ボタンをクリックして収録を停止する
    QuickTimePlayer-3
  7. 収録停止後、 Command + S でファイルを忘れずに保存する

以上です。


参考情報

Mac標準ソフトQuickTimeで、パソコン画面を音声込みで動画録画する方法