カテゴリー : 2016年 5月

MongoDB query でタブ文字区切りの文字列を出力させた結果をコピペするとタブ文字が消えることがあるのでファイル出力するのがベスト

本記事でお伝えしたいことはタイトルで完結していますが、先日 MongoDB の Query を書ける営業社員から「Mongo Query の出力結果を Google スプレッドシートに貼り付けると左に列がずれるのでコードレビューしてほしい」と相談されました。

MongoDB

結論としては query 自体には何も問題なく、タブ文字 \t 区切りで文字列を出力すると Mac の Terminal アプリからコピー&ペーストするときに折り返し位置によって \t が消えてしまうことがあるようでした。

ファイル出力すればタブ文字が消えてしまう問題は発生しないので、

mongo --quiet mydb script.js > example.csv

のような感じでファイルに出力して、これを Google スプレッドシートにインポートすると列がずれることがなくなりました。

もし、似たような問題が発生した方は Terminal アプリからのコピペの部分の挙動を疑ってみると解決するかもしれませんよ。

「渋谷ECミートアップvol.2」参加レポート #pbtech

「渋谷ECミートアップ」というタイトルに釣られて参加してきました。

渋谷ECミートアップ

ペパボが主催で「渋谷ECミートアップ」という名前を付けるのはどないやねんという話は置いておいて。

ノベルティのレポート

ペパボ ノベルティ

もらったノベルティたちです。

ペパボ ノート

ノベルティでノートをもらったので仕事で使いたいです。

イベント参加レポート

LT

LT の内容は「どんな感じで業務をやってるか」ということがふわっと分かる感じだった。特に EC は関係ない印象でした。

新卒1〜3年目でペパボに転職を考えてるエンジニア、デザイナーにとっては「ペパボで働くのはどんな雰囲気なのか?」ということがなんとなく分かって良いのかもしれません。

演劇「雨あがりの5月30日、月曜日の夕会」

シュールなネタでした。

懇親会

ペパボ ピザ

入社1週間目のエンジニアさんとひたすらお話しました。

「ほとんどの人が定時退社する」「残業してると上司から怒られる」というホワイト企業な話を聞いて、「すごいなー。でも、限られた時間の中でアウトプットを出さないといけないのでシビアな職場だなー」という好印象を受けました。

まとめ

もっと EC の話をしたかったです。

[Ansible] パスワードなしで SSH 接続できるサーバには ansible-playbook コマンドの -k, –ask-pass オプションを付けるとエラーになる

Ansible を使い始めて最初にハマったことは、パスワードなしで SSH 接続できるサーバには ansible-playbook コマンドの -k, –ask-pass オプションを付けるとエラーになるということでした。

ansible

ansible-playbook コマンドの help によると -k, –ask-pass は接続時にパスワードを求めるオプションみたいです。

$ ansible-playbook -h
Usage: ansible-playbook playbook.yml
 
Options:
  -k, --ask-pass        ask for connection password

以下、エラー時の実行結果です。

$ ansible-playbook -k -c paramiko -i hosts init.yml -vvv --extra-vars "user_password=$user_password"
No config file found; using defaults
SSH password: 
 
PLAYBOOK: init.yml ******************************************************
1 plays in init.yml
 
PLAY [setting SakuraServer VPS by root] ****************************************
 
TASK [setup] *******************************************************************
<128.199.213.164> ESTABLISH CONNECTION FOR USER: root on PORT 22 TO 128.199.213.164
 
paramiko: The authenticity of host '128.199.213.164' can't be established.
The ssh-rsa key fingerprint is 99a7fb117513602f560568e9d6daaa72.
Are you sure you want to continue connecting (yes/no)?
yes
fatal: [128.199.213.164]: UNREACHABLE! => {"changed": false, "msg": "Authentication failed.", "unreachable": true}
	to retry, use: --limit @init.retry
 
PLAY RECAP *********************************************************************
128.199.213.164             : ok=0    changed=0    unreachable=1    failed=0

公開鍵認証による SSH 接続設定をしていて、ログインパスワードが不要な場合は -k, –ask-pass オプションを付けると下記のように The authenticity of host ‘128.199.213.164’ can’t be established. というエラーが発生してしまいます。

$ ansible-playbook -h
Usage: ansible-playbook playbook.yml
 
Options:
  -k, --ask-pass        ask for connection password

-k オプションを付けずに ansible-playbook コマンドを実行すると正常に実行できました。

$ ansible-playbook -c paramiko -i hosts init.yml -vvv

以上です。

「自己割り当てIPアドレスのためネット接続ができません」エラーが発生したらルータの DHCP 割当数を確認すべきという教訓

タイトルで完結してますが、実際に今日ネットワークのトラブルシューティングしたお話です。

先日、ルーター機器を切り替えたのが原因で、物流倉庫内で使っている PC やモバイル機器から Wi-Fi に接続しようとすると、「自己割り当てIPアドレスのためネット接続ができません」というエラーが頻発するようになりました。

結論としては、切り替えたルータ Aterm WG1800HP2 の DHCP 割当数の上限は32台までと、Wi-Fi 利用機器に対してかなり少なかったという点でした。

AtermWG1800HP2 PA-WG1800HP2

Aterm WG1800HP2 が DHCP で割り当てるIPアドレスの範囲は以下の記事に詳しく書かれてます。

このルータから自動的にIPアドレスなどを割り振れる(DHCP)のは32台まで。
それ以上は、個々の機器に固定IPアドレスを割り振れば 32 + 221 = 最大253台まで接続できるようです。

元々、NTT からレンタルしていたルータ PR-500KI はより高性能だったので DHCP 割当数の上限という問題が発生しなかったんですけどね。

参考情報

[Windows10] L2TP/IPSec VPN クライアントの接続設定

Windows10 にて L2TP/IPSec VPN クライアントの接続設定について調査しました。

基本的な VPN 設定方法は下記の記事を参考にしました。

通常は上記の記事だけで無事に設定完了できるはずですが、Mac OS で VPN Server を構築してる場合はもうひと工夫という名の設定が必要になります。詳しくは下記の記事をご参考ください。

具体的にどういう手順でトラブルシューティングをしたかは、別に記事を書きます。

[WordPress] All in One SEO Pack で Facebook og:image をいい感じに表示する設定方法

WordPress プラグイン All in One SEO Pack の「ソーシャルメディア」機能を利用して、Facebook og:image をいい感じに表示する設定をしました。

まず、All in One SEO の [機能管理] メニューをクリックして、[ソーシャルメディア] の項目の [Activate] ボタンをクリックします。

All in One SEO Pack - Social media - before activate

[ソーシャルメディア] を [Activate] すると [ソーシャルメディア] メニューが追加されます。

All in One SEO Pack - Social media - side menu

[Select OG:Image Source] から [First Attached Image] を選択して、ページ下の [設定を更新 »] ボタンをクリックします。

All in One SEO Pack - Select OG-Image Source

この状態で「Sharing Debugger – Facebook for Developers」の機能を使って確認すると、Select OG:Image Source の設定を変更する前が下記で、

Facebook Sharing Debugger - before

Select OG:Image Source 設定変更後は、下記のように記事中の1枚目の画像が og:image に利用されるようになりました。

Facebook Sharing Debugger - after

All in One SEO Pack のソーシャルメディア機能には、他にもたくさん機能があるみたいなので積極的に活用していきたいです。

Slack Multi-Channel / Single-Channel Guest アカウント料金について

Slack では一部機能を制限して使える Multi-Channel Guest や Single-Channel Guest といったアカウントも作成することができます。

社内で「取引先企業とのちょっとしたやり取りを Slack 内でしたい」という要望を解決するために、これらの Slack アカウントの料金体系について調べてみました。

Slack

{言語: “日本語”}

  • 👯 マルチチャンネルゲスト : 制限アカウント(有料)
    複数のチャンネルやグループにまたがって様々なSlackを確認する必要がある場合に選択(案件を複数お願いするフリーランスの方にはこちらがおすすめ)
  • 💃 シングルチャンネルゲスト(無料・チーム有料アカウントの5倍まで)
  • 一つのチャンネルのみ共有する場合に選択(一つだけのクライアントとプロジェクトを共有する場合におすすめ)

{lang: “English”}

  • 💳 Guest roles are available to teams on the Standard plan and above.
  • 👯 Multi-Channel Guests are billed as regular team members, and can be added to unlimited channels.
  • 💃 Single-Channel Guests are free. You can add up to 5 Single-Channel Guests per paid member of your team.

シングルチャンネルゲストは有料アカウントの5倍まで作成できるので、積極的にアカウント作成して使っていきたいですね。

参考情報

VPN 接続に利用されている認証プロトコル「MS-CHAP v2」

VNP で受け取ったデータは PPP (Point to Point Protocol) へ流されていて、そこで使われる認証方法「MSCHAPv2 認証」について調べた内容をまとめてみました。

MS-CHAP (エムエス・チャプ)

マイクロソフトのRAS(Remote Access Service)で利用されるPPPでのCHAPのこと。Windows NT LAN ManagerではMS-CHAP v1、Windows 2000ではMS-CHAP v2が利用されている。

MS-CHAP v2

MS-CHAP v2の仕様は RFC 2759 で情報提供プロトコル扱いで公開されている。

プロトコルレベルではCHAPと同等だが、MD5でアルゴリズム番号5とする部分を、0x81として用いる。MD4とDESを用いてチャレンジとレスポンスを生成する。

MS-CHAP v2はv1の欠点の改善と機能強化が行なわれており、双方向認証への対応、常にパスワードとチャレンジに基づく暗号鍵を作成する、送受信で別の暗号鍵を用いる、などの特徴がある。但し、相変わらずMD4である点には変更が無い。

このため、MS-CHAP v2には情報漏洩に繋がる可能性のある脆弱性が相次いで報告されており、危険である。

MS-CHAP v2 の脆弱性に関する注意喚起

問題は、MS-CHAP v2を単体で利用して、PPTPベースのVPN接続を行っている場合に生じる。悪意ある第三者が中間者攻撃や無線通信を盗聴することで認証トラフィックを取得し、認証に関する情報(パスワード)を窃取される可能性がある。こうして盗まれた認証情報が悪用されれば、なりすましや不正アクセスにつながる恐れもある。すでに、この攻撃を行うためのツールも公開済みだ。

日本マイクロソフトはこの状況を受け、2012年8月21日にセキュリティアドバイザリを公開した。上記に該当する環境では、拡張プロトコルの「PEAP」を併用したり、L2TP、SSTP、IKEv2といったほかのプロトコルを利用することを推奨している。

セキュリティの観点では VPN は PPTP よりも L2TP over IPSec で構築した方がよいということが分かりました。

参考情報

新人エンジニア研修用の教材として「WEB+DB PRESS 総集編」を購入した

「4月から入社したエンジニアの新入社員さん向けにどういう研修をしていこう?」ということが、ずっと議題としてあがっている昨今です。

そんな前提の下、4月号の WEB+DB PRESS が時期的に「Web開発新人研修」という特集記事を扱っていました。

WEB+DB PRESS Vol.92

この特集を目にして「過去の WEB+DB PRESS を全て目を通して、今でも使える特集をピックアップして研修に使えばいいじゃん」という話になって、WEB+DB PRESS総集編 [Vol.1~84] を取り寄せました。

WEB+DB PRESS総集編[Vol.1~84]

目次だけざっと目を通してみると prototype.js や ActionScript など今からわざわざ手を出す必要がない内容もあれば、計算量の話など一生使える枯れた知識も載っているので、良い特集だけピックアップして使っていきます。

某IT企業の広報の方にオススメされた本「広報の仕事術」

某IT企業の広報の方とお話する機会がありまして、そのときに ”広報の仕事をしていて参考にしている本” を教えてもらいました。

中小企業だと広報という職種を担っている社員はせいぜい1〜2名ぐらいですが、サイバーエージェントの規模となると何人もいるわけでそういう会社で「広報」をチームとしてどう運用していくべきかという点でノウハウが詰まっている本とのことでした。僕はまだ読めてないので聞いた話によるとなんですが。

「広報」という仕事を理解する必要がでてきたタイミングで読みたいです。