転職します

2017/2/23付けで前職を退職しまして、2/27より株式会社みんれびで働く事になりました。


あらすじ

前に転職したのは2012の秋頃なので、約4年半も勤めた事になります。
moyashidaisuke.hatenablog.com

その前も約4年だったので、私の転職周期は4年くらいのようですねw

4年半で経験できた事、できるようになった事

  • 初めてBtoCのサービスに携われた
    • Excel方眼紙からの開放
  • ゲームを初めて作った
    • 当時はいわゆるブラウザゲーだったので、ものすごいスピード感での運用をした(イベント開始後に演出変更したり、一日に10回くらいデプロイするとか普通だった
    • 最先端のスマホのアプリに携われた
    • デザイナーさんがたくさんいる環境は初めてだった
    • AWSベースのLAMP環境で、サーバもクライアントもやったので、知らない知識・技術がいっぱい身についた
      • トラフィックをシャーディングしたMySQLでさばきつつ、RedisやらAPCやらキャッシュしつつ、負荷に合わせてサーバ追加したり
      • HTMLとCSSで頑張ってアニメーション作ったり
    • 少人数で回してたので、サウンドとかシナリオとかに口出したり、勝手に演出追加したり
    • KPI見ながらすごいスピード感でPDCA
  • Unityでゲーム作るようになった
    • 新規アプリに携われた
      • BGMに勝手にギター入れたりしてた
    • 相変わらずクライアントもサーバもやっていた
    • スマホ用コントローラーIFを作って特許取った
    • 大阪の子会社に出向して、自分が小学校の時にやってたゲームを作ったレジェンド達と一緒に仕事できた
      • 色々自動化したりテストコード書くようにしたりやりたい放題やらせてもらえた
  • お陰様で会社で出しているアプリも人気
    • 人気がある分負荷もものすごい事になり、TVCMやリリース前後の火消しでサーバ負荷対策
    • 会社も非上場->マザーズ上場->一部上場。人数もすごい事に。
      • 優秀な人がすごい勢いで集まってくるようになった
    • 休みの日や旅行中でも会社のCMが流れる体験
  • サーバ側の新FW選定
    • 数年分の負債を返す作業
  • お陰様で給料もすごく上がった

4年半でできなかった事

  • 社外で勉強会行ったり何か作ったり
    • 忙しくてそれどころでは無い
    • 社内でやってる事が割りと最先端なので、業務に真剣に取り組んでいればある程度までは大丈夫だった。でもある程度まで。
  • ゲームじゃないサービスをやりたかった
  • 出世
    • 平で開発しまくる道を敢えて選んでいたので仕方が無い面もあるが、社内制度とかもっと改善したかった
  • 脳筋じゃないスマートなプロジェクト運営
    • 体力が必要なフェーズもあるが、ずっと全力疾走はできない

次の4年半でやりたい事と転職理由

できなかった事の裏返しになってしまうですが、ゲームじゃないサービスにじっくり取り組んで見たかったのが一番大きいです。
あと、もっと組織に食い込んで影響範囲広げつつ、社外でももっと活動したいと思っています。

最後に

入社した時は、そもそもMac全然使えない、コマンドもろくに叩けない、頭でっかちで技術が追いついていない、というそれは酷い状態だったのですが、
お陰様で技術力もいっぱいついて(入社時に比べれば)、貴重な経験もいっぱいさせてもらって、
あっという間に走り抜けた4年半だったと感じています。

関わった皆様には本当に感謝しています。ありがとうございました。

1ヶ月も有給消化期間も頂いて、英気もばっちり、また頑張るぞ~

mixiのボイスを全部消すscript作った

mixiにはボイスという、twitterそっくりな(昔はエコーと呼ばれてた)機能があるのですが、
これの全削除機能がありません。
mixi.jp
mixiの呟きを一括削除できる方法な無いのでしょうか?昔のつぶやき... - Yahoo!知恵袋


twitter連携とかしてて、千、万の単位になってたら手作業で消すのはめちゃめちゃ大変です。

というわけて、mixiスクレイピングするやつを途中まで作ってたのを利用して削除するやつ作りました。

ちなみにtwitterはこういうのがあります。
kurorekishi.me

# -- coding: utf-8
require 'rubygems'
require 'mechanize'
require 'kconv'

# setting
DOMAIN = 'https://mixi.jp'
MAIL = ARGV[0]
PASS = ARGV[1]

if MAIL == nil || PASS == nil  then
  puts '2ARGS is require'
  exit 1
end

agent = Mechanize.new
agent.user_agent_alias = 'Mac Safari'

# ログイン
agent.get(DOMAIN)
p 'login'
agent.page.form('login_form').field('email').value=MAIL
agent.page.form('login_form').field('password').value=PASS
agent.page.form('login_form').submit

# トップページ
agent.get(DOMAIN + '/home.pl')
p 'top'


for num in 1..100 do
	page = agent.get(DOMAIN + '/list_voice.pl')
	p 'voice'

	#<a class="deleteIcon " href="delete_voice.pl?post_time=20161022191342&amp;redirect=list_voice.pl&amp;post_key=648078d3c3351838fb69737f14e1b2e3f59328f9">削除</a>
	elements = page.search('a')
	elements.each do |ele|
		if ele.get_attribute(:class) == 'deleteIcon '
			deleteHref = ele.get_attribute(:href)
			agent.get(DOMAIN + "/" + deleteHref)
			p deleteHref
		end
	end
end 


リポジトリ
github.com

herokuでlaravelデプロイメモ

ちょっとしたscriptを作ったのだけど、みんな使いたいとの事で急遽Webアプリケーションへ。

PHPが動いてMySQLが動いて無料で簡単に使えるのもの、という条件でHerokuへ。

2ヶ月前の事で、ちゃんとメモもとってなかったので汚いですが、せっかくなので公開はしておきます。



参考
ローカルのphpのバージョンが古くてLaravel5.1が入らなかった
takemaru123.hatenablog.jp

料金体系確認
tdenc.com

Laravel動かすよ
qiita.com


remote: Compressing source files... done.
remote: Building source:
remote:
remote: -----> Failed to detect set buildpack https://codon-buildpacks.s3.amazonaws.com/buildpacks/heroku/php.tgz
remote: More info: https://devcenter.heroku.com/articles/buildpacks#detection-failure
remote:
remote: ! Push failed
remote: Verifying deploy...
remote:
remote: ! Push rejected to bandoffcount.
remote:

buildpackでエラー、、、
git - Push rejected, failed to detect set buildpack heroku/php - Stack Overflow


Herokuのログ見る
qiita.com



できたもの

bandoffranking

コード
github.com

nokogiriとMechanizeでスクレイピングその2

前回の続き
nokogiriとMechanizeでスクレイピングその1 - moyashidaisuke's diary


文字コードをちゃんと設定してないせいか、\nがたくさん出てる。=>gsubで無理やり置換しました。

now_updated = div.inner_text.gsub('\n', '')


class指定で取得するときに、div.class の形式だと部分一致で取れる。
div[@class="class"] だと完全一致になる。
Nokogiri の基本(翻訳版)


スクレイピングスクリプト自体はほぼこれで完成。
残りは、サーバーにのっけて定期的に実行し、どこか(メールとかTwitterとか)に連携する。

HTMLのプレゼンテーションライブラリ

PowerPointKeyNoteもいいですが、

  • 有料(Google DocsOpenOffice.orgなら無料ですが。。。)
  • バージョン管理しにくい
  • 使用しているPCに環境依存

という弱点があるので、HTML/CSS/jsベースのライブラリを調べてみました。

HTMLベースで作成できるプレゼン用スライドのまとめ | コリス
HTML/CSS/JavaScriptでプレゼンテーションを実現するライブラリまとめ - NAVER まとめ


ざっくり調べてみた感じだと、reveal.jsが良さそうなのでこれ使ってみます。

  • 演出がかっこいい
  • PDF出力がすぐできる(SlideShareとかにアップできる)

reveal.js - The HTML Presentation Framework
JavaScript - なんかかっこいいプレゼンテーションテンプレートを探しているならreveal.js使ってみろって - Qiita

SIerも自社サービス系も同じIT業界と呼ぶのはもうやめよう

SIerが「IT系」の代表格とかいう日本の風潮
SIerって終わってんな
コーディング技術にこだわり過ぎるとITエンジニアの地位は向上しない - プロマネブログ


ここらへんを読んで。

自社サービス系ってのはいわゆるWeb系とか、自社のプロダクトをもってる会社とか。

この2つを両方IT業界と言っちゃってるのがそもそもの間違い。
一番違うのはビジネスモデルの違いかと思ってます。



■SI業界
受託で主に業務システムを作る
発注者がお客様
営業が案件を取ってきて、見積もりベースでお金を払う
できるだけ大きな見積もりで案件を取り、できるだけ安いコストで作れれば利益が上がる
要は人月ビジネス
⇛営業や、派遣社員達の取り扱いがうまい人が会社にとって価値がある


■自社サービス
何らからのサービス、プロダクトを作る。
エンドユーザーがお客様
使った人が満足すればお金を払う
コストは安いに越した事は無いが、できるだけ良い物をつくれば利益が上がる
⇛良い物を作れる人が会社にとって価値がある


極論で二項対立で書いちゃってますが、当然例外は有り。

一見、設計したりコード書いたりしてるので同じ業界に見えますが、ビジネスの手段が違うので比較してもあまり意味が無い。

CentOSでapache起動してもブラウザアクセスできない時

ちょっと遅目ですが、chef+Vagrant触り始めました。すごく楽しいです。


centOSで、とりあえずapacheいれたけど192.168.33.10 でアクセスしたけど何もでない場合、iptablesの設定が邪魔してる可能性があります。(デフォルトだとこれにひっかかる)

ローカルで動かす分にはいらないので止めちゃいましょう。

https://github.com/pakiln/chef-repo/tree/master/site-cookbooks/iptables_stop



色々な手順を参照してると意外と抜けてたりする。