「UZABASE Meetup#3 〜チームの生産性を向上させる〜」参加レポート #UzabaseMeetup

「UZABASE Meetup#3 〜チームの生産性を向上させる〜」という勉強会に参加してきたレポートです。

UZABASE Meetup#3

オープニングLT

チームの生産性を下げる要因が2つある。

1. 役割を明確にし過ぎること

  • 視野が狭くなる。
  • 個人プレーになり連携がしにくくなる。

2. 責任の所在を決めてしまうこと

失敗したときの責任を考えてしまうのに時間を割くのは本当に無駄ですよね。

UZABASE Meetup#3 責任の所在を求めてしまう

“役割の線引を曖昧にし、成すべきことを俯瞰して見るべき。”

  • Q) 曖昧にすると特定の人に仕事の負荷が偏ったり、誰もタスクを拾わなくなったりするけど何か工夫してるのか?
  • A) 毎日 10 分はチームで会話して「こういうことに困ってるんだよ」とかリアルなコミュニケーションをとると、いい感じにチームが回った。

生産性を高めてハッピーライフを

なぜ「生産性」を重視するか?

なぜ「生産性」を重視するか?

  • スピードは競争力の源泉
  • 仕事以外の時間も大切に

ホント、この2つですよね。

chatopsのおかけでエンジニアがルーティンワークから解放された話

エンジニアで工数でやってると肝心な開発が進まない

  • Q) Push 通知以外で非エンジニアに chatops を導入できてる事例は?
  • A)

三位一体GitHub駆動開発

ZenHub を使っているのか。以前、使っていたけどページの表示処理が遅すぎて使うの辞めたけど Trello と比べてどうなんだろう?

  • Q) 以前 ZenHub を使っていたんですが表示が遅くてイライラしませんか?
  • A) 遅いという認識はある。

まとめ

懇親会のピザ

ユーザベース、エンジニア的にいい雰囲気な会社という印象でした。

Mac OS X El Capitan にアップグレードしたら hub コマンドが動かなくなったけど brew upgrade hub したら解決した

Mac OS X El Capitan がリリースされてそれなりに時を経たので、会社で使ってる Mac も El Capitan へアップグレードしました。

タイトルで終わってますが El Capitan にアップグレードしたら hub コマンドが動かなくなったのですが brew upgrade hub したら解決したので、似たようなエラーに悩まされた方は brew upgrade するといいですよ。

hub コマンドのエラー事例

いつも通り hub コマンドで github の pull-request を作成しようと思ったら、見たことのないエラーが発生しました。

$ hub pull-request -h myGitHubRepo:`git symbolic-ref --short HEAD`
/usr/local/bin/hub:75:in `initialize': wrong number of arguments (9 for 1) (ArgumentError)
	from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/http.rb:1030:in `new'
	from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/http.rb:1030:in `proxy_uri'
	from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/http.rb:1017:in `proxy?'
	from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/http.rb:868:in `connect'
	from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/http.rb:862:in `do_start'
	from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/http.rb:851:in `start'
	from /usr/local/bin/hub:473:in `perform_request'
	from /usr/local/bin/hub:588:in `perform_request'
	from /usr/local/bin/hub:437:in `post'
	from /usr/local/bin/hub:371:in `create_pullrequest'
	from /usr/local/bin/hub:1760:in `pull_request'
	from /usr/local/bin/hub:1586:in `run'
	from /usr/local/bin/hub:2514:in `initialize'
	from /usr/local/bin/hub:2518:in `new'
	from /usr/local/bin/hub:2518:in `execute'
	from /usr/local/bin/hub:2569:in `<main>'

ネットで調べてみたところ 「hub のバージョンが古いと動かないので brew upgrade hub するといいよ」という内容を書いている isuue を見つけたのでそれ通り対応してみたら解決しました。

$ brew list | grep hub
hub
 
$ hub --version
git version 2.1.3
hub version 1.12.2
 
$ brew upgrade hub
==> Upgrading 1 outdated package, with result:
hub 2.2.3
==> Upgrading hub
==> Downloading https://homebrew.bintray.com/bottles/hub-2.2.3.el_capitan.bottle.tar.gz
######################################################################## 100.0%
==> Pouring hub-2.2.3.el_capitan.bottle.tar.gz
==> Caveats
Bash completion has been installed to:
  /usr/local/etc/bash_completion.d
 
zsh completion has been installed to:
  /usr/local/share/zsh/site-functions
==> Summary
🍺  /usr/local/Cellar/hub/2.2.3: 9 files, 10.3M

OS アップグレードは何かしらハマりますね。

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

先日 MongoDB の Query を書ける営業社員から「Mongo Query の出力結果を Google スプレッドシートに貼り付けると左に列がずれるのでコードレビューしてほしい」と相談されました。

MongoDB

続きを読む

「渋谷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 で構築した方がよいということが分かりました。

参考情報