Swiss+Tech Utili-Key は「常にそこにあるナイフとドライバー」

Posted about 1 year ago by yoosee.
  edc keychain

いつぞやのEDCキーチェイン記事にも書いた Swiss+Tech Utili-Key (Amazon JP) である。今日はこれの素晴らしさを語ろう。

Swiss+Tech Utili-Key

機能としては「ナイフ(ストレート・波刃)」「プラスドライバー」「マイナスドライバー(2種)」「栓抜き」の6種。ツールとしての出来は、まあ感心するほどではない。ナイフの切れ味はそこそこかつ研ぎにくいし、ドライバーの精度も取りあえず使い物になるレベルだ。しかしそれは問題では無い。こいつの真価は鍵と一緒にいつでも持ち歩くことにある。

切れ味そこそこのナイフではあるが、例えばダンボール箱を封してあるテープを切る際、手では外しようがない結束バンドを外したい時、固く縛られた麻やナイロンのひもを切ってほどきたい時などには大活躍する。買った服についているタグを切り離したり、手で開きにくいお菓子の袋を切って開けたりと、ナイフをわざわざ探しに行って使うほどではないが手元にあってすぐに使えると便利、という状況は意外に多い。

またこれも精度そこそこなドライバーだが、プラスとマイナスのドライバーがいつでも手元にあるのはこれがなかなか便利なのである。特にプラスドライバーの大きさはラップトップPCの背面ネジや子供のおもちゃの電池蓋など、生活でネジ回しが必要になるサイズに意外とフィットする。眼鏡のネジを締めるのにも使えないことはない。ドライバーが見つからなくて先の平たく尖ったものを斜めに差し込んで無理やり回す、なんてシチュエーションは記憶に無いだろうか。そんな時にこそちょっとしたドライバーが非常に助かる。

栓抜き。あなたが仮にアメリカ人であれば多分カバンだのなんだのいたるところに栓抜きが付属しているだろう。なぜか知らないが米国人は栓抜きが大好きである。しかしあなたが日本人であるなら、栓抜きはそこまで身近にはないだろう。そもそも栓抜きが必要なシチュエーション自体が日本では少ないだろうが、だからこそ必要になった時に栓抜きが手元にあるのはありがたいものである。

結局のところこのツールは程々の品質だがあると便利なツールが鍵と一緒にいつも身につけて持ち歩けるのが最大の強みだ。開閉のロックがしっかりしているのでキーホルダーに付けていて勝手に無くなることもないし、着脱も簡単だ。また値段も安いので、壊れたり無くしたり没収されたりしてもさほど痛くない。これの最大の欠点が「持ち歩いていることを忘れてしまう」というくらい、常に持ち歩くことに特化したツールとしては大変よく出来ているのである。

値段も安いのでぜひひとつ持ち歩いてみて欲しい。あ、一応はナイフなので軽犯罪法云々にはお気をつけを。

 

Obsidian - Pebbleのウォッチフェイスをひとつ書いてみた

Posted about 1 year ago by yoosee.
  pebble

さて先日買ったPebbleだが、せっかくスマートウォッチを買ったことだし、ウォッチフェイスのひとつくらいは自分で作ってみることにした。シンプルなアナログ時計のデザインで Health の Steps (歩数計) と Weather (現在の天気) を出してくれるウォッチフェイスが見当たらなかったので、その方向で作成。Obsidian という名前にしたけど背景が黒いから以上に根拠はない。

Pebble AppStore にも上げておいた。Submit してすぐ有効になったけど手動の審査とかはないのかな。

気温の C/F や各パーツの色は設定で変更が可能。

Pebble Obsidian Watchface

Pebble の開発環境は基本的に C + JavaScript で Linux 用のSDKがあるが、CloudPebble という Cloud9 のようなブラウザ上で動く開発環境があるのでそれを使って作業した。Compileから Virtual Machine を動かしてのテストや、Pebbleアプリの Developer Connection という機能を使って実機にアプリを流しこみつつアプリの実行時ログを見るなどもできるので、結構使いやすい。インラインの補完も効くし、Githubとの連携もできる。

Pebble の開発は先述の通り C と JavaScript で、アプリ本体部分を C で書きつつ外部Webサービスとの連携、例えば天気予報の取得などを JavaScript で記述する形になっている。C 部分はよくある GUI ツールキット作成の構成で、コールバックを作ってGUIパーツをレイヤーとして位置・色・リソースを割り当てて重ねていく形。C と JS の間は Data Dictionary を介したメッセージのやり取りになっていて、これもよくある。ウェブアクセスや文字列操作系を JS に任せられるのは楽といえば楽。

開発にあたってはチュートリアルもあるので、Build Your Own Watchface // Pebble Developers をたどれば時計と天気を表示するところまではだいたい進むし、Examples // Pebble Developers にアナログ時計のサンプルもあるのでその辺りを参考にできる。

ちょっと面倒だったのが設定画面で、Pebble の設定は外部にWebサーバを立てて JavaScript でそこに飛ばし、HTML Form の設定値を JavaScript で持ってきて Dictionaly に入れて C コードの Tuple に渡す、という割と迂遠なやり方になっている。このためにWebサーバを使うのもなあと思ったら、 RawGit という Github のコンテンツをそのまま配信してくれるサービスが有ったのでこれにホストしてもらうことにした。

そんな感じで一応は使用に耐えるウォッチフェイスをひとつ作ったのでコードは公開しておく。書き方を調べながら書いたのでコードがかなり汚いのはご容赦頂きたい。なお基本的に Pebble Time Round (CHALK) での動作確認はしているが、Pebble Time (BASALT) の方は実機もないしあまり真面目に画面表示のチューニングもしてないのでそこもご容赦を。

背景に Bitmap イメージを貼れるので機能にこだわらなければ好きなデザインのウォッチフェイスを作るだけなら簡単だと思う。しかしテストを書きにくいのは皆どうしているのだろう。

追記・更新記録

  • 1.3 Weather Provider を OpenWeather.org から Weather.gov に変更。早く Pebble SDK が Weather API を提供して欲しいのだが、取り敢えずの対応として。また Notification から Back で戻ると時計の針や各種情報が非表示になる問題に対応。.did_focus handler を書いたけどこの辺りの Best Practice が見当たらない。と言うか Pebble 側の不具合だと思うのだけど。

 

米国でのキャリアパスの考え方

Posted about 1 year ago by yoosee.
  uscompany

米国でのキャリアの考え方は日本とは結構違っている。個人的に例えるのが RPG での転職システムで、「スキルレベル」を上げたり「新しいスキル」を習得することで「職業クラスのレベル」が上がったり「転職可能な職業クラス」が増えるというモデルだ。あくまで一例だが、ソフトウェア開発系で Developer のキャリアを書くとこんなイメージだろうか。

キャリアパスのイメージ

Developer としてプログラミングや基盤技術などを上げていくと Developer レベルの昇格が可能になる。そのまま Developer としてレベルを上げていくキャリアもあるし、エンジニアリングに加えてチーム内で取りまとめ役をこなしているうちに Dev Lead 系の職に進んだり、技術戦略などのスキルを得ることで Architect 系の職に進むといったパスが考えられる。

Manager 職は「チームの管理」や「人事」といったものを押さえる職業クラスであり、管理職系キャリアパスの入口になる。そもそも米国企業では Manager クラスが採用や給与額の設定を直接行うケースが多いので「人事」スキルが欠かせない。最初の昇格としては担当として働いているチームでまとめ役として仕事をしているうちに上の Manager が辞めてその後任をオファーされたり、チームサイズが大きくなって分割層として Manager が必要になったりとチーム内から昇格するパターンが少なくない。なお Manager キャリアからは Director や VP など管理職系上位職へのキャリアパスに繋がっていく。

またキャリア軸の変更として、エンジニアリングスキルに加えてプロダクト戦略やマーケティングなどを学ぶことで Product Manager (日本で言うプロダクト企画系の職)へのパスを取ることも出来る。社内でのプロダクト知識を元にそちらの職にキャリアを向けることもあるが、こうした転職にに現在の職業クラスで習得できないスキルがある場合、キャリアの途中で大学に通って必要な学位を取ることで必要スキルを習得するというパスもありうる。

なお米国の場合は自分がなにもしなくても成果が出ていれば上にあげてもらえる、なんてことはあまりなくて(同じ職業クラスの中でのレベルアップはありうるが)、基本的には社内にしても社外にしても自分で新しいポジションに応募して職を変えるのが基本になる。

Developer という上級職種へのパス

ちなみにそもそも Developer というポジション自体が米国では結構な上級職である。大学でCSを習得していきなり Developer から始める人もいるが、そうでない場合は例えば技術初心者でも採用されやすいサポートデスクなどからキャリアを始めて

  • サポートデスク → テクニカルサポート → システム管理者 → デベロッパー

といった感じに職を変えていくパターンが多い。これも基本的には下の職業クラスで技術スキルを習得し、そのレベルが一定以上上がると上級職への転職が可能になる形だ。なお余談だが米国ではこうした初学者向けの職種がオフショアで国外に出てしまい、技術系キャリアのスタートが難しくなっているという事情も存在しており、スタートからよい大学を使う必要性が増えている。

一方で当然ながらこうしたキャリアの途中で「これ以上仕事を変えなくていいや」とストップする例も多い。基本的にキャリアパスは上に行くほど競争率も上がり学習コストも高くなるので、誰もが上のキャリアを目指しているわけではない。逆に言えばこうしたキャリアパスで上位職に上がってきている人というのはほぼ例外なく業務に関する学習を続けているものである。

 

メラトニンによって時差ボケが1,2日で解消できるようになったことについて

Posted about 1 year ago by yoosee.
  travel jetlag

いま住んでいるところは日本と仕事をするには時差的にはかなり悲惨な Eastern Time (-0500, DSTでは -0400) の地域であり、+0900の日本との時差は14時間ないし13時間、ほぼ昼夜がまるまる反転する地域である。日本との往復も既に数十回を超え、時差ボケの迅速な解消は大げさに言って人生の質に関わる大問題である。何年も色々と試行錯誤した結果、最近は数日で修正できるようになったが、その大きな要因はメラトニンである。

Melatonin

時差ぼけ解消法

時差ぼけ解消法は当たり前の話として体内時計を新しいサイクルに調整することだ。さほど特別なものはないが、方法としては以下のあたりになる。

  1. 飛行機で行き先の時間に合わせて眠る
  2. 陽の光を浴び、食事を正しいタイミングでとる
  3. 寝る数時間前にメラトニンを服用

私はメラトニンを主に使うようになってから時差ボケは、殆どついた翌日には多少寝さが残るのは仕方がないにしても日中の活動から夜の飲み会まで大きな影響がないレベルに抑えることができるようになった。

個人的経験では結局のところ、時差ボケを早々に治すカギは「夜に十分な深さと長さで睡眠が取れるかどうか」である。時差ボケを味わった人ならわかると思うが、結局のところ辛いのは頑張って適度な時間に就寝しても、午前 3,4時といった早朝に目が覚めてしまい、そのまま眠れなくなることなのだ。こうなってしまうとどうしても夕方には眠気が来てしまうし、そもそも睡眠時間が足りていないので体力も回復しない。

メラトニンについてと、その服用方法

メラトニンは睡眠薬のたぐいではない。これは元々体内で日夜のサイクルに合わせて生成される物質であり、体内時計を調整する働きをする。体はメラトニンが増えると夜だと認識し、減少して少なくなると朝だと認識する。つまり メラトニンを摂取することで体内物質の睡眠サイクルを新しいタイムゾーンに合わせ、十分深い睡眠を取る ことができるようにする。

私の服用は、飛行機で行き先タイムゾーンに合わせて寝るために離陸早々に 5mg を 1錠(ただし飛行機で使う場合は飲んでから到着までの時間が最低でも7時間くらいはあることが望ましい)、到着後は就寝の数時間前に飲み、だいたい3-6日程度服用する。経験上、住んでいるところから出張した先では短期間で治り、出張から住んでいるところに戻った時は1週間かそれ以上かかる。緊張感の差だろうか。よく「東回りの方が辛い」と言われるが、そもそも時差がほぼ丸々半日なのであまり関係ない。

なお知人に何人か勧めたが、これはこれで合う人と合わない人がいるようで、合わない人は飲んでもあまり眠れなかったり、逆に朝起きられなくなったりするらしい。なので効果も絶対ではないが、米国では医薬品ではなくサプリの扱いであり量を正しく取っていれば副作用は殆ど心配しなくていいようなので(例によって14歳以下の子どもや妊婦は推奨されていないが)、安価なものでもあるし試してみるのはありだと思う。

メラトニンについては丁度下記のような記事も出ていたので参考にされたし。

これら記事によればメラトニンの摂取は睡眠直前ではなく就寝時間の5時間前くらいが適当らしい。

メラトニンの入手方法

先述の通りメラトニンは米国ではサプリの扱いなので、CVSやWalgreen'sなどの薬局チェーンのみでなくWalmartやTarget, Publixなどの大手スーパーのサプリコーナーでも普通に売っている。私がよく買っているのは Melatonin 5mg - Nature’s Bounty で、90錠入りで$10もしない。他のメーカーでもいいが、だいたい 3, 5, 10mg の錠剤があるので、最初は3mgを効きを見ながら1または2錠で調整するのもいいかもしれない。

残念ながら日本で入手するには個人輸入サイトに頼るしかないらしいので(以前は Amazon.co.jp にもあったが現在は売っていない様子)、米国や欧州への出張時に探してみるか、現地の人に頼んで買っておいてもらうのがよいかと思う。

メラトニン以外の時差ボケ解消

なお最近の記事 Stop zoning out: Scientists may have at last found a way to beat jet lag | The Economist では特に2に関連して「時差に合わせて早朝寝ている間にフラッシュライトを当てることで光によるリズム調整を行う」ことが書かれているが、時差13時間となるとそもそも行き先の朝はまだこれから寝ようと言う時間なので、寝ている間の調整と言うのは難しそうである。

ついでに、これはあまり時差ボケとは関係ないのだが、睡眠時は腹巻きを着用すると睡眠が深くなるので、出張時も腹巻きは忘れないようにしている。

 

Testfiを作る時に使った・使っているValidator

Posted about 1 year ago by yoosee.
  textfi

このブログを作る時に使った Validation サービスを備忘録として。

The W3C Markup Validation Service

HTML の Validation は JavaScript 系機能の埋め込みをすると結構失敗するし、Rails が作っているHTMLはコントロールしづらいので完全にパスしなくてもあまり気にしないことにしておく。well-formed XML である限りはまあいいよね。そもそも本体のHTMLを頑張って正規化してもJavaScriptから呼ばれるGoogleさんとかが派手に引っ掻き回してくれたりするよね…

SSL Server Test (Powered by Qualys SSL Labs)

Let’s Encrypt で SSL 化したが、設定が間違っていたり緩かったりすると SSL 通信の信頼性は簡単に落ちるのでチェックするに越したことはない。A を狙うのがいいと思うが、B でもさほど問題はないと思われる。A+ 以上は SSL 設定以外のポリシー、例えばすべての通信に SSL を強要する、なども求められるようなので用途次第で無理に狙わなくてもいいと思う。

Object Debugger - Facebook for Developers

最近の Social 対応として Open Graph の埋め込み。画像の選び方などがちょっと難しいが、それ以外は割と素直。

Card Validator | Twitter Developers

同じく Social 対応として Twitter Card の設定。Open Graph 向けデータがあればフォーマットをちょっといじって Twitter アカウントを足す程度なので簡単。

W3C Feed Validation Service, for Atom and RSS, Flipboard Feed Validator

RSS2.0 の Validation 。これ RSS として正しく書くこと自体はさほど難しくないが、validator によって細かいポリシーが違ってエラーをもらったりするのがちょっと面倒。Feed Reader に読ませるのが目的なら Feedly の Best Practice にでも従うのがいいのだろう。

10 ways to optimize your feed for feedly – Feedly

Java Script?

特に Validation ツールという感じの話ではないが、Syntax Validation はすぐ出来るので問題は正しく動作するかだし、それはむしろテストであったりデバグであったりと呼ばれるものであろうか。