LAMPエンジニアってこういうもんでしょ

こういうもんでしょって話をつらつらと

共有されたパッケージ管理のパッケージをinstallする方法

最近色んなパッケージ管理が出てきて、オープンソースのあれやこれやを簡単に扱う事ができるようになってきましたね。
gitやsvnなどのソース管理にパッケージのソースを入れなくて良くなったので
プロジェクトの取得も軽くなったし同じパッケージを使う事で開発と本番でパッケージ依存のなんやかんやみたいのもなくなりましたね。

ただ、意外とパッケージ管理の初期構築、共有、除外設定、共有されたもののインストール
みたいなところをまとめた情報がなかったので、知っている範囲でメモっておこうと思います。

共有ファイルについてはプロジェクトの設定によって変わります。
除外設定については過去プロジェクトで使った.gitignoreの記述を参考にしています。

Vagrant

言わずと知れた仮想環境構築ツール

公式 https://www.vagrantup.com/

初期構築

vagrant init

共有するファイル

Vagrantfile

除外設定

/.vagrant

共有されたもののインストール

vagrant up

composer

PHPのパッケージ管理です。
過去にはPearPeclも使われていましたが、共有のしやすさからcomposerを使われる事が多くなってきました。

公式 https://getcomposer.org/

初期構築

composer init

共有するファイル

composer.json composer.lock

除外設定

/vendor/

共有されたもののインストール

composer install

npm

nodejsのパッケージ管理ですね。 僕が初めて触った今時のパッケージ管理です。

公式 https://www.npmjs.com/

初期構築

npm init

共有するファイル

package.json

除外設定

node_modules

共有されたもののインストール

npm install

【まとめ】 今時のパッケージ管理はプロジェクト構築も対話式で出来る事が多いですし
チーム開発をしていく上で大きな武器になるので、是非とも活用していきたいですね。
まだ導入していないプロジェクトはさっさと入れてソース管理から外部パッケージは除外していきましょう!

【2016年】今年の振り返り【総決算】

今年も振り返りしないとなと思い
だらだらと一年間を振り返っていきます。
SNS、ブログ、カレンダーを見ながら思い出しながら書いていきますが
おそらく今年も忙しい年だっただろうなと。

 

■1月
仕事初めの日には会社で初詣に行き
夜は会社の同い年の人たちで飲みに行きました。
50人ばかりの会社で同い年が7人いるという状況に
みんな変なテンションになって
結果翌日はみんなで二日酔いでした。

 

この月は担当プロダクトのアンとケイトで
スマホ最適化開発の追い込みがあったりとか
登録導線の変更とかがあって
初めて会社で早朝リリースのために泊まったりとかしました。
早朝リリースだからって言って前日飲んでそのまま会社にいただけですがw
今までは出向での仕事が多かったのでさすがに泊まりは無かったなと。
会社に住んでいたりとかはしましたけどねw

 

社内ハッカソン企画でニコニコ●画っぽくコメントを流すJS書いたりもしましたが
それはしれっとGithubにあげていますね。

github.com

使いたい人は使ってみてください。
諸々調整は必要ですが意外と面白いと思います。


■2月
ここ去年もやったもんじゃ会を今年もやりました。
高校の後輩が「もんじゃ食べたい!」って言ったせいで始まった企画です。
今年は新宿でダラダラと飲んだはずです。

 

また、LIGブログにうっかり見切れたりもしました。

liginc.co.jp

実は3回目の登場です。
本当にありがとうございます。

 

あと数年ぶりに元妻と夜にお酒を飲みました。
だいたい会う時は昼間で昼からお酒飲んでいるのですが
夜に飲んだのは7年ぶりとかですね。
夜の新宿にテンション上がっていて楽しかったです。


■3月
アンとケイトから離れて
大規模なシステム改修の設計の一部を担当していたのですが
この頃にぽろっと言った名前が結果正式採用されてしまいました。
ジョークみたいな名前ですが正式採用されたらもう変えられないでしょう。
他社も関わるのと内部システム名なのでここには書けませんが
PMからはちょいちょい弄られる結果になりました。
チームの異動の兼ね合いでこの頃は忙しく働きつつも立場がふわふわしていますね。


■4月
アンとケイトに戻ってきたものの担当の執行役員が退職するという事態に見舞われ
入社以来なんだかんだと一緒に仕事をしてきた方がチームのトップになるという事態になりました。
その他にも様々な要因があり
チームは最大時に10名ぐらいまで膨れ上がりました。
10名とか前職の退職時ぐらいの規模ですよ。
もうてんやわんやです。

 

渋谷にあるDot`sに初めて行ったのもこの月です。
新しくマネージャーに就任した方と一緒に行ったのですが
「ゼロから作るエンジニア組織」
面白かったですね。
(本当はHR x テクノロジーの勉強会でした)

 

LIGさんが運営する長野のLAMPに行ったのもこの月ですし
社内表彰で「爆速!」と書かれたのもこの月です。
新年度って良いですね!


■5月
毎年おなじみですが、母校吹奏楽部の定期演奏会にOBバンドの一員として参加してきました。
4月がバタバタし過ぎて練習はほとんど出られなかったのですが
LAMPでも仕事していたし・・・)
本番は全力で臨みたいがために
初めて府中にホテルを取ってリハから本番、打ち上げまで全力で行ってきました。
移動で体力を奪われないのは良いですね!
来年もこのパターンで行こうと思っています。

 

この頃に何かの兼ね合いでうっかり観た「SHISHAMO」にはまりました。
youtubeなんですがずっと観ていた気がします。

 

ゆとり世代エンジニア交流会の会場が自社になり
スタッフの確保が捗らずに
休日鍵開けとしてほぼオフィスに引きこもっていたら
会場に引きずり出されたりとかしましたが
ちゃっかり(社内秘)LTも行いました。
エンジニア的な意味での「エンターテイメント」の提供をしてきました。


■6月
この頃に「苗字を変える」事について考えているとFacebookに書いてあります。
というのも、名前が一文字なので、苗字も同じ一文字にしたら人生がネタになるんじゃないかと。
実際には手続きが相当大変なのでやらないですが
盛り上がってきたらクラウドファウンディングでもなんでもして実現してみても面白いかなとは思っています。

 

あとはカートに乗りに行って
房総で海を見て車がパンクして夜中にJAFのトラックで帰宅して
LIG社長ゴウさんの弟子、モンパチさんに撮影してもらう
っていう週末があったのもこの月でした。
これだけでブログ書けそうだな。。。
Facebookで使っているTOP画像はこの時にモンパチさんに撮影してもらった画像です。
「良い笑顔!」と何回も言ってもらいながらだったので
本物よりもイケメンに写っています。


というわけでここまでが半年です。
この一年はyoutubeで「柳原可奈子のワンダフルナイト」と「花澤香菜のひとりでできるかな」を聴きながら仕事をしていました。
前職の時からそうなのですが
そこに同僚のハロプロ推しが加わり
柳原可奈子様おすすめのJuice=Juiceを聴くようになります。
花澤香菜さんからのニコニコ動画の歌い手さんからのサウンドホライズンのヘビロテというのも
今年の出来事ですね。
是非ワンダフルナイトは聴いてください。
毎週楽しです。

 

下半期行ってみましょう!


■7月
某メディアを運営している会社の社長さんにお会いしたのがこの月でした。
退職した元同僚で飲み仲間に
「社長と飲みたい!」と言ったらセッティングしてくれました。
お互いの出自を話したらいい時間になってしまったので他の話を全然していませんが
互いにクレイジーな人生だったので仲良くなれました。

 

数年愛用してきたチェリーの黒軸がひとつ壊れたのもこの月です。
ちゃんと掃除すれば長持ちするのでしょうけど
デスクで普通にカップ麺すすっている環境では難しかったのでしょう。
仕方なく青軸に買い替えを行いました。

また、カラーコーンを贈る方法を知ったのもこの頃みたいです。


■8月
たった一カ月の間に
pixivの「罵倒少女」、篠崎愛の「口の悪い女」特設サイト、「撫物語」刊行記念特別サイト「なでっこシェア」と
3つのサイトの挙動確認とハッキングの挑戦しています。
なでっこシェアについては実際に自動化成功していますね。

htanaka0828.hateblo.jp

 

トレタさんで行われた「くそコードレビュー会」に行ったのもこの月みたいです。
JSでじゃんけんをするコードが書かれているので、そのリファクタをするというのが課題で
課題の中で優秀な回答をした人を招待してみんなで回答を見ながら議論するというものでした。
中には仕様をコードにゴリゴリに書く人やコードゴルフをするというネタに走った回答もあって
かなり面白かったですが
「なんでこれで提出しちゃったんだろう・・・」と思うような不可解な回答を送っている人もいて
エンジニアの技量の闇の深さについて色々と考えさせられた機会でした。

 

アンとケイトアプリの開発が佳境に入り
週に2回ぐらい家で寝る生活をしていたのがこの頃です。
クーラー代の節約になって本当に良かったです(白目

 

■9月
CTO座談会なるものに参加したり
転職エージェントに会いまくったりした頃です。
「何者になるのが良いのかよくわからないから小さい会社の経営者と話をしたい」
というめちゃくちゃなオーダーでエージェントに会社を紹介してもらったのですが
実際にオーダー通りに紹介してもらえたエージェントはほぼいなかったですね。
転職にこだわりがあるならエージェント選びは慎重にした方が良いのと
エージェントにもどうしようもない要求の場合は自力の方が良いと思います。

 

この月の頭には「渋谷ズンチャカ」というイベントの運営に携わらせていただいていますね。
前日には毎年恒例の「生誕祭」を行い
翌日はズンチャカでセッションの見守り
夜は打ち上げで飲みまくるという
これもまためちゃくちゃな日程でイベントをこなしています。
今年の生誕祭は人数を見誤ってしまったので
来年は慎重に行きたいな~と思っている次第です。


■10月
毎年何かとライブをするさだまさしカバーバンドでのライブがあったみたいです。
たしかこの時はピアノを弾いたりドラムを叩いたりと
くるくるしていたと思います。

 

アプリ開発の方はリリースがずるずるしている最中だったのですが
ディレクターが退職の意向を示したり
実はエンジニアも転職活動をバリバリしていたりで
結構しっちゃかめっちゃかの状況でした。
元々9月リリース予定で要望は出ていたのですが
工数見積もりではリリース予定日前週ぐらいに疎通テストに入れるぐらいの見積もりだったので
まあ無理だったんですよねw
書かなくてはいけない部分については目途が立っていたので
割とゆるゆると仕事をしていました。


■11月
突発で仙台に行ってラプラスを捕獲してきました。
仕事の後に会社の前から出発して夜通しドライブ
昼前には石巻について温泉に入り
お昼ご飯に海鮮
ラプラスを捕獲したら休憩を多めに取りながら東京までまたドライブと
出発から帰着までがちょうど23時間半でした。
弾丸日程でよく行くよなと思うのですが
驚くべきはこの間運転手が一人だったということです。
鉄人だなと思いました。

 

月末には「クエを食おう」と言われて赤坂でクエを食べてきました。
鍋でクエだったのですが
初クエはとても美味しかったです。
何よりでかいんですよね。
クエの背骨も見せていただいたのですが
小学生が山で拾ってきて振り回す棒きれぐらいのデカさでした。
死にはしないけどケガするぐらいのやつです。

 

この月に転職の意向を伝えました。


■12月
12/1に「カブトムシ欲しい」と唐突にFBにつぶやいていますね。
12月は契約ラッシュでした。

12/4にVWビートルの契約を決断してから色々と動きましたね。
Facebookの書き込みを確認すると
・自動車(VW ビートル/年明け納車)
・ローン(車のやつ)
・カード(ローンのやつ)
・駐車場
スマートフォンauから格安simへ)
・退職(1年3カ月ぶり4回目/12月末日付)
こういう感じらしいです。

 

11月に「ペーパードライバーがドライブする会」で久しぶりに運転したら楽しくなって
車を購入してしまったのがいけなかったですね。
年末のこのタイミングでしかも転職前で
どうあってもバタバタするのにどうしてこうなったっていう状況です。
納車が楽しみです。


というわけで今年もバタバタしていましたが
思い返してみると例年に比べると随分落ち着いた年だった印象です。
年齢を重ねるとはこういうことなのかなと思いつつ
職場も変わり環境も変わるので
もしかすると来年はまたはっちゃけた年になるのかなという期待もあります。
むしろ思いっきりはっちゃけていきたいなと。

今年も一年間本当にありがとうございました。
来年もどうぞよろしくお願いいたします。

良いお年を★

エンジニアが幼女と少女と童女を撫でまくるために行うただひとつの賢い方法

先日、花澤香菜さんのラジオで「なでっこシェア」というサイトが紹介されていました。

touch.ni.siois.in

ブラウザゲームは基本的に開発者コンソールを立ち上げながら遊ぶものと

Cookieおばさんに教えてもらったので

例にもれずコンソールを見ながら撫で撫でしていたわけです。

本題から言えば、自動化したかったので書きました。

ToucheEventを疑似発火する必要があったので、先人の知恵を拝借させていただきました。

qiita.com

あとは適度に時間を空けながらループするように発火のタイミングと回数を調整して完成です。

(function() {
    function nadenadeStart(emulator) {
        emulator = emulator || new TouchEmulator();
        emulator.touchstart(1, {
            x: 100,
            y: 200
        });
        setTimeout(nadenadeMove.bind(this, emulator), 50);
    }

    function nadenadeMove(emulator, c) {
        emulator = emulator || new TouchEmulator();
        c = c || 1;
        c++;
        emulator.touchmove(1, {
            x: 200,
            y: 200
        });
        emulator.touchmove(1, {
            x: 100,
            y: 200
        });
        if (c > 50) {
            setTimeout(nadenadeEnd.bind(this, emulator), 50);
        } else {
            setTimeout(nadenadeMove.bind(this, emulator, c), 50);
        }
    }

    function nadenadeEnd(emulator) {
        emulator = emulator || new TouchEmulator();
        emulator.touchend(1, {
            x: 150,
            y: 220
        });
        setTimeout(nadenadeStart.bind(this, emulator), 750);
    }

    nadenadeStart();
})();

ダメって書いていない気がしますが、良いとも書いてないのでご利用は自己責任でお願いいたします。