コーヒーこぼした。

プログラミングとちょこっとハード

MacBook Pro 13が届いた話

http://store.storeimages.cdn-apple.com/8324/as-images.apple.com/is/image/AppleInc/aos/published/images/m/ac/macbook/pro/macbook-pro-13-retina-config-201505?wid=816&hei=480&fmt=jpeg&qlt=80&.v=1433480888973


学部の時から使ってきたThinkPad X220がついに逝ってしまわれた。
無線が死に、インターネット難民状態に。

保証期間もとうに過ぎているため、修理にも結構お金がかかります。

個人的にはキーボードのホームポジション中間にある、あの赤いトラックポイント(通称、乳首)が好きだったのですが、そろそろ買い替えどきのようです。

もちろん買い替え候補にXシリーズ最新モデルもあったのですが、最近は何かとMacの必要な場面が増えてます。
インターンで会社からレンタルしていたこともあって使用感はわかっていたし、思い切ってMacにしてしまおうと1週間くらい前に発注をかけました。

MacBook Pro 13インチ
CPU Core i5 2.9 GHz
ストレージ SSD 256GB
メモリ 16GB

CPUはi7までカスタマイズできますが、+¥24000という値段のわりにはそれほど意味のあるグレードアップではないと感じました。

ストレージも512GBと悩みましたが今の時代クラウドストレージもあるのでそこまで必要ないかと思い削りました。
僕の場合、音楽や動画は作業用PCに保存しないのでなおさら必要ありません。

ただメモリだけは有無を言わさず16GBまで引き上げました。
これは結構死活問題でChromeはタブを立ち上げるたびにバカみたいにメモリを食うし、愛するEmacsも気づいたらバッファが溜まってるみたいなところがあるので正直16GBでも少ないくらいです。


旅は計画してる時が一番楽しいと言いますが、デバイスも届くまで環境構築について考えを巡らせてる間が一番楽しいですね。
Brewfileを書いてみたり自動化スクリプトを書いてみたりいろいろ。


で、昨日手元に届いたわけですが実際に届くと「あ〜やっぱこれいらないな。むしろこれいるな〜」みたいな感じになって事前に書いたスクリプトやらは結局使わずじまいでした。

ちなみに届いた時にはまだYosemiteでした。

最終的に環境構築はansibleを使いました。
t-wadaさんのブログが参考になります。t-wada.hatenablog.jp


かくしてプライベートでもマカーデビューを果たしました。
スタバドヤが楽しみです。

mixiインターンに行った話

久しぶりにブログ書きます。

投稿がだいぶ遅くなりましたが、インターンの話をします。

ある人によると「ブログ書くまでがインターン!」だそうなので、これでようやく僕のインターンが終わります。

twitterでひたすらに呟いていたように、9月10日から30日まで株式会社ミクシィにてインターンをしておりました。

実はこの夏、他にも数社インターンを巡ってましたが、ラーメン行脚の毎日でブログを書くのをすっかり忘れてました。

塩分摂取量が振り切っているので、そろそろ食生活の方をなんとかしていかないと就活の前に終活になると思います。

さて、ミクシィには一応長期の枠で行ってきたわけですが、シルバーウィークをはさんでいたこともあって営業日で言うと10日間程度のインターンでした。
就業型のため各々部署に配属され、「さあ、存分にやるがよい!」といった具合です。(少し語弊がありますが、もちろん事前に何をやるかのアナウンスがあります)
僕の所属はメディア事業mixiサービス部というところでSNS mixiの開発を行っている部署でした。

初日 グループメンバーとの顔合わせ

初日、まずインターンの選考でお世話になったミクシィ人事部の方から期間中のインストラクションを受ける。
選考は全てSkypeでやってもらったので実はこのときが初対面でした。

その後、フロアを案内してもらいながら自分のデスクがあるグループの島まで連れて行っていただいて、メンバーとの顔合わせをしました。

グループメンバーは9人。うちインターン2人(デザイナー、エンジニアそれぞれ1人ずつ)でした。

初日は拾われてきた子犬並みの人見知りを発揮していたのですが、
チューターさんがとても気さくな方で助かりました。
僕がグループに打ち解けられるようにこの日、メンバーひとりひとりとの面談をセッティングしてくれていました。

チームの皆さんにミクシィ開発の現状や、自身のキャリアなどなかなかに深い話をしていただいて、メンバーそれぞれの役割を認識したのもこのときでした。

これがなかったら「あれ? あの人何してる人だっけ?」となっていたかもしれないのでチューターさんの思惑どおり、チームに溶け込む良いきっかけでした。

開発はスクラムで行われていて、進捗共有会が朝と夕方にそれぞれ1回ずつ。
それ以外の時間に担当タスクをこなします。

社内チャット

いわゆるChatOpsの実運用を初めて見ました。
他メンバーの進捗も全体の進捗も確認できるので「そういえば、あれどうなりました?」みたいな質問が最小限に抑えられて作業に集中できます。

2日目 開発環境構築

業務フロー初体験。学生は普段絶対に触ることのないエンタープライズな業務アプリケーションを使って、他部署に依頼を出したりしました。
すると、すぐにインフラを司る神々から「汝のアカウントなり」とお告げが来て、コマンド一発でドカっとVMが立ち上がったり、それと同時にいつの間にかプロビジョニングが走っていてログインしたらすでに完璧な環境が整っていたりして驚愕のスピードで環境構築が終了しました。
この日は残り時間ずっと歴史を感じるPerlコードとにらめっこしてました。

3日目 全社席替え&開発本格スタート

なんとも絶妙なタイミングで入社してしまったようで、インターン3日目に年に数回の席替えを経験しました。


無いに等しいデスク周辺の荷物をまとめて8Fから6Fへ。

開発のスピード感

開発に関して特筆すべき点はコレです。

エンジニア、デザイナー、ディレクターが物理的にも心理的にも近い距離にいるのでレスポンスがとても速かったです。
スクラムの利点の一つですかね。

それから、初めてGitHub flowを経験しました。


コードを書く » プルリクエストを送る » レビューが返ってくる » 修正する » マージされる

これがすごい勢いで回って残タスクが消化されていきます。
その流れに自分が加わると、何とも言えない心地よさがあります。

シルバーウィーク

今回、残念だったのがこれ。このタイミングでシルバーウィークが来てしまったことです。

普段なら涙を流して喜ぶ連休も、インターンという貴重な経験を削がれてしまうことを考えると複雑な感じでした。

とはいえホテルにずっといても仕方ないので、東京ゲームショウに行くことに。

人気のあるサポーターチケットはすでに売り切れていたので、いい機会だと思い、


(チケットキャンプはミクシィが3月に買収した株式会社フンザの運営するサービスです)

落札した翌日、ホテルの部屋におもむろにレターパックで届いたチケットが置いてありました。

TGS

インターンに関係ないので多くは語りませんが、楽しかった(小並

最終日 成果報告会&退職スタンプラリー

成果報告会

最終日はこのインターンで自分のやったことを総括します。
これには人事の方と開発チームの方々が忙しい中時間を割いてくれて細かくフィードバックをいただきました。

改めて自分のこなした仕事を見るとペース的には1 issue/day。
はじめのうちはチューターさんも手探りという感じで僕に任せるタスクも比較的簡単なものが多かったですが、後半は未着手のものから自分で選んでいいよという感じで、「インターンだからこのくらいでいいだろう」みたいな甘えもなくチームの一員としてプロジェクトに関われたと思ってます。

この辺りが短期で参加した他のインターンとは異なっていて、本当の意味でインターンできたかな、と。

退職手続き

ミクシィインターン恒例行事と化している退職スタンプラリーをやりました。インターンとはいえ有給のため、扱いとしてはアルバイトになっているそうです。そのため退職にはいろいろ事務手続きが必要でした。そのチェック表にそれぞれ担当部署の印鑑を押してもらうためスタンプラリーと呼ばれています。

最後に

そんなこんなで短い期間でしたが、インターンを終えました。

企業の主要サービスのひとつに自分のコミットログが残ると思うと、なかなか感慨深いです。

そんな感じの充実した夏でした。
ミクシィさん、お世話になりました!

hubot-conohaでslackからConoHa APIを叩く話

どうも、ひさびさにhubot関連の記事です。
最近ConoHaにAPIが存在することを知り、hubot-conohaを作りました。

github.com

まだ全然APIを網羅できてないですが、とりあえず今月の利用料金を返してくれます。

f:id:imkitchen:20150828202007p:plain

APIの使い方については公式のドキュメントがあったのでそちらを参考にしました。

ConoHa API index

どうでもよいですがConoHaの管理画面には「このはモード」というConoHaのイメージキャラクターである「美雲このは」の画像が右側に出現するだけの最高の機能があります。
ConoHa、おすすめです。

Gyazo for Linuxにプルリク出した話

どうも、久々の更新です。
相変わらずラーメン屋には行きまくってますが、ラーメンブログじゃないのでこれくらいの更新頻度がちょうどいいんです。

Gyazoというサービスをご存知ですか?
Gyazoはスクショの共有ツールです。
このスクショに特化したコンパクトさがとてもいいので最近使い始めました。

gyazo.com


Mac, Windows, Linuxプラットフォームに対応していて普段使いがCentOSの私も問題なく利用できてます(実体はRubyスクリプトからImageMagickを呼び出してるだけなのでRubyImageMagickが実行できる環境ならなんでもいけるはずです)。

github.com

ただ、私がリポジトリをのぞいたときはDebian系のパッケージしかなかったので、RPMのSPECファイルとビルドスクリプトを書いてプルリクを出しました。

ちょうどそのときパッケージのホスティングについて話し合われていたらしく、マージは待ってほしいと言われましたが、数日後にはDockerでビルドを行ってpackagecloudというパッケージのホスティングサービスを使うという結論に至ったようです。

それからも紆余曲折あったのですがid:Pasta-K氏が高速Docker学習によってあらかた問題を解決し無事RHEL対応が完了しました。

そういうわけでRHEL系OSでも次のコマンドでインストールできるようになりました。

$ curl -s https://packagecloud.io/install/repositories/gyazo/gyazo-for-linux/script.rpm.sh | sudo bash
$ sudo yum install gyazo


これからもコントリビュートを続けていくかは微妙ですが、1人のGyazoユーザとして今後の動向をウォッチしていくつもりです。

はてなブログのfeedをjson形式で取得した話

どうも、ラーメンブロガーのid:imkitchenです。
今日はめずらしく技術系の記事書きます。

最近、就活に向けてポートフォリオサイトの制作にいそしんでいます。
Google+っぽいマテリアルデザインのカードスタイルで次の情報を載せることにしました。

作るのはただのポートフォリオなのでなのでgithub pagesを使います。

twitterfacebookは貼り付けるだけでいいjavascriptコードを生成してくれるので全然苦労してないですが、githubリポジトリはてなブログのエントリー取得はjQueryを使って書きました。

で、ハマったのが はてなブログ のfeed取得。

クロスサイトスクリプティングという脆弱性を塞ぐため、多くのブラウザはXML形式のデータは同一ドメインからしかajaxで取得することができないようです。
はてなブログ ではfeed取得のためのjson APIがなくて、取得できるのはXML形式のみでした。

しばらく途方に暮れていましたが、Googleのfeed APIを使えばXMLのfeedをjson形式に変換して取得できるようです。
さすがグーグル先生!

https://developers.google.com/feed/v1/jsondevguide

使い方はとても簡単で

$.ajax
    type: 'GET'
    url: 'http://imkitchen.hatenablog.com/feed'
    dataType: 'xml'
    success: (res) ->
        # 取得成功時の処理
    error: (err) ->
        # 取得失敗時の処理

としていたところを

$.ajax
    type: 'GET'
    url: 'https://ajax.googleapis.com/ajax/services/feed/load?v=1.0&q=' + encodeURIComponent 'http://imkitchen.hatenablog.com/feed'
    dataType: 'json'
    success: (res) ->
        # 取得成功時の処理
    error: (err) ->
        # 取得失敗時の処理

とするだけです(dataTypeはjson)。
encodeURIComponentはfeedのURLをAPIのパラメータとして渡せるように/(スラッシュ)や:(コロン)などの文字をエンコードしています。

ということで、まだ制作途中ですがなんとかできました。
https://imkitchen.github.io

スポンサーリンク