カテゴリー : 2016年 6月

MongoDB shell で moment.js や underscore.js などの便利ライブラリを使えるように拡張する mesh.js が神

MongoDB shell で JavaScript の有名なライブラリを使えるように拡張する mesh.js が便利だったのでご紹介します。

mesh.js のインストール

まず mesh.js をダウンロードします。

curl -O https://raw.githubusercontent.com/skratchdot/mesh/master/mesh.js

次に MongoDB shell で mesh.js ファイルを読み込んで shell から使えるようにします。読み込み方は2パターンあります。

.mongorc.js に load メソッドで読み込むパターン

.mongorc.js ファイルに下記のように

load('/path/to/mesh.js');

MongoDB shell 起動時に読み込むパターン

MongoDB shell 起動時に mesh.js ファイルを指定して読み込むことができます。

mongo --shell /path/to/mesh.js

個人的には .mongorc.js に書く方が無意識に使えるので便利です。

[事例] moment.js が使えて日付演算がめっちゃ楽

例えば、EC サイトで商品ページ productpages が公開日 published_at から1ヶ月毎の日付を確認したい場合は以下のように使えます。

> var productPage = db.productpages.findOne( ObjectId( "568f2d5f2e2195f01f663e3d" ) )
 
> productPage.published_at
ISODate("2016-01-08T04:08:59.822Z")
 
> var m = moment( productPage.published_at );
> m.toDate()
ISODate("2016-01-08T04:08:59.822Z")
 
> m.clone().add( 30, 'days' ).toDate()
ISODate("2016-02-07T04:08:59.822Z")
> m.clone().add( 60, 'days' ).toDate()
ISODate("2016-03-08T04:08:59.822Z")
> m.clone().add( 90, 'days' ).toDate()
ISODate("2016-04-07T04:08:59.822Z")

他にも時刻情報を Google スプレッドシートで扱いたい場合は moment.js の format メソッドを使って整形できるのは最高です。

> m.format('YYYY-MM-DD HH:mm:ss')
2016-01-08 04:08:59

まとめ

MongoDB shell で日付の演算をしたくなったら迷わずに mesh.js をインストールすると moment.js が使えて幸せになれそうです。

本人に「メンター制度をやる必要がある」という認識がないと良い結果にはならないのでは?

職場でメンターを引き受けるか考える過程で、メンター制度について調べたこと、考えたことを書き残しておきます。

まずは「メンター」という言葉についてです。

メンターとは、仕事上(または人生)の指導者、助言者の意味。メンター制度とは、企業において、新入社員などの精神的なサポートをするために、専任者をもうける制度のことで、日本におけるOJT制度が元になっている。メンターは、キャリア形成をはじめ生活上のさまざまな悩み相談を受けながら、育成にあたる。

次に、ネットで検索していくつかメンターについて書いてある記事を読んでみました。

メンターってなによ

メンターというのは、特定の分野において経験を持つ人が「世話焼き兄貴・姉貴」として、キャリアや仕事の進め方、トレーニング、コーチングなどをしていく人のことです。その対象のことをメンティと言います。
そのため、目的は対象となる人の迷いを取り除き、成長させ一人前にしていくことです。また、メンターを経験することでより大きな人数での指導的立場やサポートをしていくことの足がかりとしても大変有用です。

ここで重要なポイントは「メンティを成長させたいか?」という点だと考えてます。

対象のメンティの成長に関心がない場合は、メンター業務に対してモチベーションが上がることもないので、お互いのために引き受けるべきではないと思ってます。

ここでメンターに関して皆さんが具体的に出来ることをお話したいと思います。

ルール第1は、33%の法則です。皆さんの周りの人の33%は皆さんよりもレベルが低いです。皆さんは彼らのメンターになることができます。彼らを助けることで、皆さんは良いことをした、と気分が良くなります。皆さんよりも低いレベルの人がいると安心しますよね。
そして他の33%の人々は皆さんと同じレベルの人です。この人達は皆さんの友となり、仲間となる人達です。そして最後の33%は多くの人がその存在を忘れている人々です。彼らは10年、20年、皆さんの先を行っています。彼らは一緒にいると皆さんをすこし居心地悪く落ち着かない気持ちにしますが、これが皆さんには必要なのです。

覚えておいてください。よくある間違いは、自分より少しだけ優れた人をメンターに選ぶことです。自分も物事をよくわかっていないのに、同じ程度にしか物事をわかっていない人を選んではなりません。これを10Xルールと呼んでいますが、メンターには自分の10倍優れた人を選ぶべきです。100万ドル企業を築きたいのであれば、1000万ドル企業を築いた人にメンターとなってもらう。ものすごく成功した人にアプローチすることを恐れないで。彼らは直接会ってみると素晴らしい人ばかりです。

”メンターには自分の10倍優れた人を選ぶべき”なので、そうでない場合はメンティにとって効果は小さいと思うんですよね。

自分がメンティの立場だったら「少しレベルの高い人についてもらっても、何も変わる気がしない」と思いますね。

まとめ

メンターもメンティーの立場にもなったことがないのですが、どちらの立場でも本人に「メンター制度をやる必要がある」という認識がないと良い結果にはならないのではないでしょうか。

[Shell Script] 昨日, 今日, 明日の日付をフォーマットして取得する

シェルスクリプトで昨日, 今日, 明日の日付を Google スプレッドシートや MongoDB Query で使いやすいようにフォーマットして取得する方法を調べたのでメモ。

前提

今日の日付は 2016/06/22 とします。

昨日, 今日, 明日の日付を取得する

# 昨日の日付
% date -d '1 days ago'
Tue Jun 21 13:40:41 UTC 2016
# 今日の日付
% date
Wed Jun 22 13:40:42 UTC 2016
# 明日の日付
% date -d '1 days'
Thu Jun 23 13:40:43 UTC 2016

昨日, 今日, 明日の日付を取得する (フォーマット版)

Google スプレッドシートや MongoDB Query で扱いやすいようにハイフン区切りでそれぞれ日付をだしてみました。

# 昨日の日付
% date '+%Y-%m-%d' -d '1 days ago'
2016-06-21
# 今日の日付
% date '+%Y-%m-%d'
2016-06-22
# 明日の日付
% date '+%Y-%m-%d' -d '1 days'
2016-06-23

以上です。


参考情報

[SEO] 半角スペースと   はどちらを使うべき?

Q)
半角スペースと   で SEO 的にはどちらを使うのが好ましいですか?

HTML を minify した際に末尾の半角スペースが削られて文字やレイアウトが詰まってしまうことがあり、半角スペースに   を利用することがあるのですが、これが含まれている単語でも SEO 的に問題なく認識されるのか気になっています。

A)
ほとんど差はないです。
完璧を追求するなら、半角スペースの方が望ましいです。
そのほうが、HTML ファイルのサイズを小さくできるのというのが理由です。

IT企業とはいえ緊急時の連絡手段はやっぱり電話

外資系の IT 企業で EC を主力事業としてやっているので日本とアメリカに倉庫があるんですが、たまにシステムトラブルが日本時間の深夜に発生しても寝ていて対応できないことがあるんですよね。

特に僕は寝るときに iPhone を「おやすみモード」に設定しているので、通知に気づけないのが主な理由です。

通知に気づけないと対応もできないので、”社内で一部のエンジニアの電話番号を共有してほしい” という要望があがってきました。

色んなコミュニケーションアプリがリリースされている昨今ですが、緊急時のコミュニケーション手段はまだ電話みたいです。

iPhone 「おやすみモード」の設定方法

iPhone の「おやすみモード」を設定しているときは、デフォルトアプリの「着信通知」と「メッセージ通知」のみ通知を受け取る設定ができるみたいです。

着信通知の設定についてですが、社内の他のメンバーの電話番号を登録していないのでそういう方は、[着信を許可 (Allow Calls From)] の項目を [すべての人 (Everyone)] に変更するのがおすすめです。(下記、画像参考)

iPhone おやすみモード

メッセージ通知の設定はまだ使えてないのですが、Slack の特定の通知を SMS で受信するとか上手く使いこなせるといいのかもしれませんね。

Apple が iPhone に「おやすみモード」のときにでも、特定のアプリだけから通知が届くような設定機能を追加してくれると嬉しいんですけどね。