作成者別アーカイブ: serima

高専の授業を通して「素直さ」の大切さに気付いた

16歳の学生にキャリアについて話す難しさ

ありがたいことに、母校(東京高専)の授業の一コマで、キャリアについてのパネルディスカッションをさせて頂く機会があった。

cwzbqbmukaewdok

高専OB集合写真

趣旨としては、高専のOBの人たちが卒業後にどんなキャリアを歩んでいるかというのを聞いてもらって、自分の進路の参考にしてもらう、というもの。

とはいっても、メインターゲットは2〜3年生(なんと16歳前後!)だったため「キャリア」なんてものにピンとくるはずがないだろうな、とは思ってた。

ふと、自分の高専2年生のころを思い出してみると、部活に精を出しつつも、彼女と遊ぶことぐらいしか考えてなかったな…。好きな授業は、パソコンが触れる実習と体育だったかな…というレベル。
卒業後のことなんか微塵も考えてなかった。

そういうこともあり、できるだけ気軽な気持ちで聞いて欲しいなという願いを込めて、Twitterのハッシュタグ #東京高専で授業やってる を設定して、授業中に好きなようにTweetしてもらうようにした。

学生がTogetterですぐにまとめてくれたので、どんな内容だったのか知りたい人はそっちを見てもらうとして。

教育そのものに通ずる「素直さ」の大切さ

パネルディスカッションしながら、Tweetをリアルタイムに追っかけていたんですが、僕らの話をどう受け止めるかってのは人によって温度差はやっぱりあるよなーっていうのを感じた。

授業が終わった後に教授と少し話したのですが、内容は概ね以下の感じ。

根底には、彼らにハッピーになって欲しい、という思いがある。
そして、人生の経験値上「これするよりは、こうしたほうがハッピーになると思う」ってのは少なくとも彼らより知っているはずなので、それを伝える努力はしているが、どうにも響かない。

この話をしてるときに、自分の子どもにも、会社の同僚や後輩にも通ずるところがあるなーと感じた。

もちろん伝える側の努力なくしては、伝わるものも伝わらないってのは大前提として、「響く」人と「響かない」人の差はなんだろうなーとグルグルと考えた。

で、今自分の中での結論は、「素直さ」なのかなと。「おすすめされたことを、四の五の言わずにとりあえずやってみる能力」、と言い換えることができるかもしれない。

なぜこの能力が大事かっていうと、「とりあえずやってみる」ことが、学習の阻害要因をある程度スキップさせてくれる。
結局、経験からの学習が一番効率が良い。

「おすすめされたこと」というのは、先達が通った道であるが故に「これをすれば、おそらくこういった学習ができるであろう」という思いのもとに成り立っているはずなので、イージーモードでプレイしたら?という提案がなされているに等しい。

イージーモードで一回プレイしてみるってのは、本当に大事だと思っていて、この差が後々大きな差になってくるんだろうなと感じる。

しかし、どうやったら素直さを会得できるのかは、なかなか難しいよなーと思い、いろいろヒントを探していた。

そんな中で @otiai10 氏のこのエントリはいろいろな意味でヒントになる。

「イージーモードで一回プレイしてみる」っていうのは @otiai10 氏が言うところの「進言された行動を一挙手一投足違わず遂行できる」という意味合いで同じで、

そしてそれは「言われた文言を一字一句違わず復唱する」という能力が訓練によって出来るようになるのと同じように、「進言された行動を一挙手一投足違わず遂行できる」という能力も、訓練によって出来るようになると思われる。

こう書かれている。

是非全文を読んでほしいが、素直さは才能でも性格でもなく、「能力」であると断言している。

どのようにしたら「素直さ」が習得できるのか

僕の中に未だに解はないが、ひとつは子どもの頃の親の教育が、能力の習得に大きな影響を与えそうだなとは思った。

よく観察し、寄り添い、適切なタイミングで提案し、褒めること。
良いフィードバックループに入るまでは親のサポートが必要だと思う。

では、大人になってから身につけることができるのか?というとできなくはない、ただしとても難しそうという印象。

自らに「素直さが足りない」ということを認知し受容するためにも、素直さ(ここでは謙虚な気持ちのほうが大事かも)が必要な気がするから。

大人になってからの習得が難しいからこそ、「素直である」ことは大きな武器になりえると思う。

Thanks, See you again!

子育てしながら勉強時間をどう捻出するか、という葛藤

僕はたぶん割と、子育てしている方だと思う。

子育て界隈の風当たりが強い昨今、こう書いてしまうと「それくらい当然だー」とか「それは自己満足だー」とか「女性の気持ちをわかってないー」とか言われてしまうかもしれないが、そこは一旦置いておいて欲しい。

妻が週に4〜5日働いており、仕事がある日は朝7時には家を出ていってしまうので、着替え、朝食、保育園への送りは基本的には全部僕がやる。

朝6時頃に起きて、保育園への送りが終わるのがだいたい8時過ぎ。
その後洗濯物を干して、(余力があれば)洗い物や片付けをしてから出勤する。

今の会社は10時始業で朝が遅いし、それに加えてリモート可能だったりするので、フレキシブルに対応できるのはとてもありがたい。

ただ、たいていここまででエネルギーを結構消費していて、勉強とかそういうモードにスイッチするのはかなり厳しいものがある。

勉強時間を捻出するなら、夜 or 皆が寝静まっている朝4時とかに起きてっていう感じしかなさそうで、結局睡眠時間を削るしかないのかなーと思っている。

土日のどちらかと休日は必ず妻は出勤で、もう一方の土日のどちらかは家族で過ごしたいので、必然的に1人で過ごす時間がなくなってしまっている。(けれども、妻が休みの日曜午前中とかにこうして一人の時間を作ってもらっている。ありがたい。)

こうなってくると、限られた時間で最大のパフォーマンスをっていう話になってくるのだが、ここで質と量の話になる。

昨夜、久しぶりに1人で遅くまで起きて、仕事のことを一切考えずにネットサーフィンをしていたんだけど、最近の技術トレンドや、gRPCの話とかゆっくり追うことができた。(恥ずかしながらgRPCってなんなのか全然知らなかった。)

こういう感覚はすごく久しぶりだなと思った。(独身時代はひたすらネットサーフィンしていた。)
目的のないネットサーフィンは、決して質が高いとはいえないとは思うんだけど、だからこそ見つかる有益な情報もあるってのを再発見してしまった感覚、とでもいうのかな。

なので、限られた時間の中で、ほんとうに必要な勉強を見極めてそこに時間を投資するっていう考え方は伊藤淳一さんの もっと勉強時間を増やしたい子育てエンジニアに「銀の弾丸」はあるか? #childrenac2012 で学んで、フォーカスするものを考えていたんだけど、あれっ、本当にそれでいいのかな?って思った。拡がりがなく、つまらなくなってしまわないかな?

ここまでモヤモヤしているのも、単純に自分の中での優先度の問題なんだろうとも思う。
何かを取れば何かを取れない、ただそれだけなんだけど、いろいろ悩んでる。

まだ答えはない。葛藤感のある文章になってしまった。

ElasticBeanstalk の PHP 5.6 on 64bit Amazon Linux 2015.09 v2.0.7 がちょっとおかしい件

2/11 に新しいバージョンのプラットフォームがリリースされたようです。

http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/platform-history-php.html

https://aws.amazon.com/releasenotes/AWS-Elastic-Beanstalk/0121149643032499

早速、サンプルアプリケーションをデプロイしてみただけなのですが、ちょっと buggy じゃないですかね。

すぐに修正されると思うのですが、困る人がいるかなと思いメモがてら。

PHP7 Casual Talk で LT してきました

さて、先週 PHP 7 Casual Talk #1 に参加して LT してきました。
会場は、ヒカリエの上のほう、KDDI さんでした。会社から近くて助かります。

スライドにも書いたんですが、PHP BLT #2 で PHP7 の話が予想以上に少なかったって tweet をしたら、@fortkle さんに捕捉されてしまいましたw

僕の LT はリアルに拙い感じでほんと申し訳ないんですが、他の方の LT はとても有意義でした。

  • PHP5.x から PHP7 に移行したが、後方互換性が高くほとんど苦労しなかった
  • ほとんどのメジャーどころのフレームワークは PHP7 対応してる
  • PHP7 だから無条件でパフォーマンス上がる!というわけではなく、ちゃんと計測することが大事
    • Yii Framework はまさかのパフォーマンス低下…(びっくりしました)
  • PHP7 独自の機能(スカラー型宣言、null 合体演算子、無名クラス etc…)を使って共通ライブラリ作るのはまだつらいかな…
  • 7.0.1 とか 7.0.2 の changelog とか見ると面白い

個人的には移行へのハードルってやっぱりそこまで高くないんだなーということを実体験として語られている方がいたので、とても参考になりました。

Travis CI、CircleCI をお使いの方はおもむろに php7 でテスト走らせてみたりしたらいいんじゃないかな。
テストコードが無いって方は、PHP7 Compatibility Checker で互換性チェック&互換性ないって場合は、どのように互換性がないかを出力してくれるという便利ツールを使うといいと思います。

connehito の CTO @tatsushim さんもいらしていて、お声がけいただきました。ちょう久しぶりの再会だ!と興奮していたんですが、実は会ったことはなかったらしく、いろいろと失礼しましたw

ピザがとても美味しかったです。ありがとうございました。

しかし、もう LT ネタがない…プライベートでまた時間確保して何かネタを作らねばー。

PHP BLT #2 で LT してきた話

もう先週の出来事になってしまったが、メルカリオフィス@六本木ヒルズで PHP BLT の第 2 回が開催された。

LT 枠で応募して、無事に滑りこむことが出来た。20 枠もあればすんなり入れるだろうと思ってたが、思いの外応募が多くて BLT ブランドすごいなと思った。

メルカリオフィスにつくと、だだっ広いスペースの一角が会場として準備されていた。メルカリは絶賛増床中だそうで、勢いを感じた。
PHP7 リリース直後ということもあり、PHP7 ネタは大いにかぶる可能性があったのであえてそのネタは外して、SensioLabs が出してる Security Checker の話をした。

この checker は以前話題になっていた「ぼくの考えた最強の開発フロー PHP編」の中でちらっと紹介されていたもので、その後この checker についても伸びるかなーと思っていたが、案外日本語の記事が全然現れてこないので、発表することにした。

スライドを読んでいただければ全て書いてあるが、自分のプロジェクトで使用しているライブラリの脆弱性チェックをしてくれるというツールで、それを CI に組み込んでしまえば、普段意識せずに開発できて良い感じですよというもの。

注意点としては、絶対の信頼をおいちゃダメだよってことで、JVN など一次ソースをあたることも忘れちゃならない。

スライド中で、Lumen に組み込んだ CI のサンプル用リポジトリへのリンクをはっていますが、面倒な方はこちらからどうぞ。

https://github.com/serima/security-checker-on-lumen

 

個人的には、packagist.jp の方が来ていたのがテンション上がった。いつもお世話になっていたので…、そしてメルカリに入社していたことにびっくり。タレント揃えてる感あるなーと。

イベントまとめとしてはここがとても良くまとまっているので興味ある方は是非。

PHP BLT #2 に参加してきました

余談ですが、@uzulla さんがトップバッターの LT ってその後のハードル上がるからやめてほしい…

個人的な次のミッション

12月末から1月頭にかけては順調にスタートを切れたので、今後もこの流れを継続するために目標を立てておく。

  • PHP7 CasualTalk の資料作成
    • WordPress のベンチマーク
  • Laravel brancher 検討
    • 実装方法検討
  • ウェブサービス作る
    • 企画は頭のなかにあるので極力シンプルに実装始める

CentOS 7 上の nginx で SSL 化 & HTTP/2 対応

冬休み中、SSL 化とそれにあわせて HTTP/2 対応だけやり残しました。
なので、空いた時間を使ってサクッと終わらせました。

Let’s Encrypt を使えば無料で SSL 証明書を取得できます。良い時代です。
以下のページを参考にさせていただき、手順通りにやれば問題無いです。

Let’s Encryptを使って簡単0円でサーバ証明書を取得

で、http/2 対応している nginx のバージョンは 1.9.5 以降のようなのですが、ソースからビルドするのはやりたくないなーということで yum からいけないかと調べた所ドンピシャな記事がヒット。

yumでnginx 1.9.5にアップデートしてHTTP/2に対応

この通りにやったら、今日時点では、Version 1.9.9 になりました。

で、nginx の設定ファイルの listen 443 ssl; となっている部分を listen 443 http2; に変更し、ssl_ciphers の先頭に AESGCM:HIGH を追加し、nginx を restart させれば完了。

serimacohttp2

無事に HTTP/2 対応できました。
正味、1 時間ぐらいで全部できるので暇な時に是非どうぞ!

CentOS 7 に PHP 7.0, nginx, MariaDB を Ansible でインストールする

前回の投稿でこの休み中にやることを決めました。

今日で冬休みも終わるので、成果をここで公開します。

  • 4年ぐらい前に借りたさくら VPS をずっと使っていた
    • CentOS 5, PHP 5.5, Apache, WordPress 3.9 というもはやレガシーな環境になってしまっていた
  • VPS を借り直すだけで同じ料金で VPS のスペック自体が 2 倍になる

というわけで、新規で VPS を構築しつつ Ansible で初期セットアップの自動化と、各種ミドルウェアのセットアップも自動化しました。

  • CentOS 7
  • PHP 7.0
  • nginx 1.8
  • MariaDB 5.5

初期セットアップについては、この記事が大いに参考になりました。とても助かりました。

Ansible でさくらのVPS の環境構築を自動化 ~ハマりポイントとともに~

初期セットアップでやっていることは、作業用ユーザ作成、SSH ポート変更、root でのパスワードログイン禁止、firewall の設定あたり。細かいことは上の記事を読んだほうが絶対に良いので、そちらにお任せ。

特筆すべきは、CentOS 7 になって iptables というより firewalld を使ったほうがよさげだったので、playbook でもその点は playbook にも反映しておきました。
firewalld は iptables のラッパー的な存在のようです。

さくら VPS のコントロールパネルからカスタム OS で CentOS 7 を選んで、minimal インストールを選択、root パスワードだけインストール中の画面で設定しておきます。

ミドルウェアインストールの playbook については、PHP 7 をやっぱり入れたかったのであえていうならそこくらい。
remi-php70 が既に公開されており、日々更新されているので、こちらを使いました。

New “remi-php70” repository

あと、Wordpress で ftp の代わりに ssh2 を使いたくなったんですが、現状、ソースからインストールしないと使えないらしいので、ssh2 は諦めました。

Solution : How to install ssh2 php7 extension.

(playbook 中で、sed を使いまくってるけど lineinfile に置き換えたい…けどまぁそこは今度)

WordPress 4.4 を使っていますが、今のところ問題なく PHP 7 で動作しています。
ベンチマークをとりたかったんですが、VPS 自体のスペックもかなり上がってしまったので、純粋に PHP の性能測定はできないかなと思い今回はやっていません、が体感早くなった気がするのでおすすめです。

ちなみに、どちらも playbook を github で公開しました。
細かいところはまだ全然出来てないですが、「完璧を目指すよりまず終わらせろ」とザッカーバーグ先生が言っていたのでこれで良しとします。

serima/centos7-initalize-ansible
serima/centos7-php70-nginx-mariadb-ansible

1日2〜3時間ほど作業時間を捻出してくれた妻に感謝!

冬休み中にやりたいこと

すでに仕事納めも終わっているので、あとはなんとかして空き時間を確保して以下をやりたい。

  • プライベートなサーバを、CentOS 7 にアップグレード
    • おそらく OS インストールから各種ミドルウェアセットアップも行うことになるので、Ansible 使ってみる
  • WordPress を PHP 7 で動作させる
  • nginx に移行
  • Let’s Encrypt で SSL/TLS 対応

(以下、余力があれば)

  • HTTP/2 対応
  • ローカルから簡単にデプロイできる仕組みを作る
  • Public repo な自分の project の CI 整備

出産タイミングでの転職について

これは、子育てプログラマ・ITエンジニア・Webデザイナー Advent Calendar 2015 の 23 日目の記事です。

今年の 10 月に第一子が産まれ、11 月に転職しました。

一般的には生活上の大きな変化を2つ以上重ねないほうがいいといわれますが、
このタイミングの転職は大丈夫なのか、実際にしてみてどうだったかという点を書きたいと思います。

実は、転職活動自体は 5 月ぐらいからゆっくりと始めており、出産前に良い所が見つかればなーと思ってました。

幸い、妻のつわりはとても軽く、妊娠前とほぼ変わらない生活を送ることが出来ました。

10 月に子どもが産まれる旨は面接の前から再三伝えるように心がけ、そこを考慮してもらえるような職場でなければ、やっぱり厳しいと思いながら転職活動はしていました。

しかし、条件面含め、もろもろ考慮した上でしっくりくるところが見つからず 7 月が終わってしまいました。

そろそろ見つからないと時期的にも出産と被ってしまうし、いったんステイかなーと思っていた矢先、偶然今の職場を知る機会がありました。

家庭の状況も考慮してもらえる(僕がさんざん言ったからかもしれませんがw)、職務内容も自分のやりたいことにマッチしており、運良く内定をいただくことが出来たのが 8 月下旬。

産前 1 ヶ月と産後 1 ヶ月半ぐらいは妻は実家に帰省する予定だったので、その間は一人暮らしとなります。
そのタイミングを入社時期と被せてしまえば新しい会社に慣れるまでの期間、家族に負担を強いることもないので、むしろそっちのほうが都合がいいことに気付きました。

さらに、有給が 1 ヶ月分ぐらい残っていたので、有給消化中は妻の実家で産前産後直後は一緒に過ごすこともできるし、このタイミングでの転職は結果的にベストじゃないかなと思いました。

今の職場は、その日の家族の体調次第でリモートワークに切り替えることもできますし、子持ちのエンジニアの方が割と多いので理解も得やすい環境なので、転職して良かったなと思っています。

確かに転職先やタイミングを間違えると、本人にとっても家族にとっても辛い時間を過ごすことになってしまいそうですが、エンジニアならではのリモートワークな環境を慌ただしくなる出産前に手に入れておくことはその後の生活が大きく違ってくるかもしれません。

子どもと一緒に妻が帰ってきてからは確かにプライベートな時間は本当になくなりました。
なにか新しい技術をちょっと休日に触ってみるなんてこともできなくなってしまっている状況なので、この AdventCalendar を書いてる先輩方の記事を大いに参考にして、時間を作っていきたいと思います。

今、妻は買い物に出掛けているので子どもはこんな感じで膝の上に乗せながらこの記事を書いていますw
足がしびれてきたので体勢を変えたいが、変えたら起きてしまう…そんな葛藤の毎日です。Evernote-Camera-Roll-20151223-123901