ご報告

株式会社はてなにアルバイトとして入社しました.

所属はシステムプラットフォーム部というところでなんか色々便利にしていく感じのことをやっていきます.

 よろしくお願いします.

IITCプラグイン「scoreboard-in-polygons」を作った

IngressIntel Mapを拡張するIITCにおいて使える新しい拡張機能を作った.

https://github.com/cohalz/Ingress-Tool/raw/master/scoreboard-in-polygons.user.js

draw toolsで作成したポリゴン内のポータルに限定して両陣営のスコア比率を見れる機能.

IITCの他にdraw toolsも必要.

見ることができるスコアは,ポリゴン内のポータル数ポリゴン内に繋がっているリンクの本数ポリゴン内に収まっているCFの数の3つ.

グラフをマウスオーバーすることで詳細な数値も見ることができる.

f:id:cohalz:20171117215538p:plain

上の画像はEXO5 大阪のアノマリーゾーンをポリゴンで囲ったときのスコア.

ポリゴンは複数描画されていても画面の中に収まっていれば正確に集計することができる.

これからのクラスタ戦やリンクフレンジー等の個人的な計測に便利.

それと,Ingress5周年おめでとうございます.

Macにinstallしたmackerel-agentを再インストールする

Homebrewで入れたmackerel-agentをクリーンインストールしたくなった場合の対処.

結論

mackerel-agent.confmackerel-agent/idが残っているのでそれも削除する必要がある.

brew uninstall mackerel-agent 
rm /usr/local/etc/mackerel-agent.conf
rm ~/Library/mackerel-agent/id
brew install mackerel-agent 

発端

localhostでMackerelを立ち上げて,Macを監視対象としていたことがあった.

mackerel.io

この手順のように/usr/local/etc/mackerel-agent.conflocalhostで使っているapikeyapibaseを設定して使っていた.

最近になってlocalhostではなくmackerel.ioで監視をまた行いたいと思い,設定を変更した.

  1. apikeyをmackerel.ioで使っているものに変更

  2. apibaseコメントアウト

  3. brew services restart mackerel-agentを実行

これで移行が終わるかと思いきや,変化なし.

brewで再インストールしてみるも,mackerel-agent.confの設定が変わっていない.

手動で削除する必要があるらしい.

またやり直すも変化なし.

ここでMackerelヘルプを読んでみる.

エージェントのアンインストール エージェントのアンインストールは、お使いのパッケージングシステムにあわせて行ってください。 またその際、デフォルトでは /var/lib/mackerel-agent/id (KCPS用エージェントの場合は /var/lib/mackerel-agent-kcps/id)にホストIDの記録されたファイルが残っているため、これを削除してください。

エージェントをインストールする - Mackerel ヘルプ

どうやら,mackerel-agent/idを削除する必要があるらしい.

Macでは~/Library/mackerel-agent/idにあるのでこれを削除.

すると無事mackerel.ioで監視されるようになってめでたしめでたし.

金を使う

最高の夏を終えて買った

SQLアンチパターン

SQLアンチパターン

パーフェクトJavaScript (PERFECT SERIES 4)

パーフェクトJavaScript (PERFECT SERIES 4)

パワーボールは来月くらいに買う

はてなインターンという人生最高の夏

mackerel.io

はてなインターン2017に参加しました

はてなインターン応募してくれ!!!というレポート記事です

来るまで

以前

id:cohalz

2年前くらいから某社で動いてるプロダクトのScala(PlayとかLiftとか)に触り始めた感じの人間で,

あとは動いてるものだとこのbotがあって,それ以外にやってきたことはいろんな言語の機能見たりとか,コードのレビューなんかも複数の所でやってたりしてた

はてなインターン自体の応募理由としてははてなブックマーク等は使っていたし,Twitterで前々からフォローしてた人多数がめっちゃ行ってたので行きたいと思ってた

とはいえ今年になるまで応募していなかったのは自身のレベルが足りないと思っていたからで,そんなときに去年に行われた夜の合同説明会に参加して次は応募しようと思った

cdgh.connpass.com

事前課題

そんなこんなで受かったあとはコースごとに指定された事前課題を解いて提出するよう指示が来る

MackerelチームではScalaJavaScriptが指定されて,どちらもLTSV形式をパースして集計を行うことや,JavaScriptだとDOM操作も使ってテーブル表示・検索などの機能を実装するという課題

これらの実装の他にテストを書くのも課題として含まれていて,言語機能やその言語でのテスト環境を事前に把握することができる課題になっている

JavaScript課題では検索機能の課題は自由に作成してよいという指示が入っていて,好きだったり最新のフレームワークを使うのも可能

なので余裕があればただの課題と思わずに色々工夫までできると良かったと後で気付いた

京都

前半過程

11時から13時まで毎日入れ替わりで社員の方が講義をして,昼休憩が終わった14時から課題を進めるという形式

14時から退社時間の19時まで5時間もあるし課題なんてすぐ終わるだろうと思っていたけれど,満足の行く実装を終えるには時間が足りないくらいだった

何故かと言うと課題は毎日関連があるようにできており,下手な設計・実装をすると次に影響が出てしまうからである

以下講師の方と内容紹介

  • id:stefafafan Scalaによるプログラミングの基礎
    OptionやEither,forやimplicitなど実用で使う部分が中心

  • id:Windymelt Scala によるデータベースプログラミング
    ScalaでDBを扱う際のライブラリの紹介やDB設計,レイヤ化アーキテクチャなど

  • id:motemen ScalaによるWebアプリケーション開発
    Scalatraを用いてURL設計,View,Controller,それに対するテスト追加

  • id:masawada はてな教科書JavaScript
    ES6中心の言語仕様,DOM,非同期,AjaxjQuery,フロントエンド設計,NodeJS

  • id:syou6162 Web開発におけるコンピュータサイエンス - 機械学習
    何故Web開発で機械学習を導入するのか,簡単な例,難しい例でどのように特徴量を決めていくのか

  • id:takuwolog id:akawakami デザイン講義
    課題解決の手順の話やより良く伝えるためにどのような考えをするべきか

  • id:masayoshi インフラ講義
    「インフラ」という大きな括りではなく部分に分けて,何故このサービスはこんな構成/実装になっているのか等

  • AWS講義・ハンズオン
    AWSのサービス紹介と前半過程の初週で作ったWebサービスAWSを使ってデプロイするまで

  • id:chira_rhythm55 サービス企画
    様々な方法で問題を洗い出し,考えた企画を周りにアピールするためにどのようにやっていくか

というような講義を受けてそれに対応する課題を実装し翌日にレビューを貰う形

課題自体は機械学習で一旦終わり,2週目は提出した課題の直しをする余裕があるようになっている

前半過程の最終日には,今までの課題で作ったWebサービスをさらに拡張し新しく何か機能を追加したものを発表するというイベントがあり,自分はWeb Speech APIを使って音声入力をできるようにした

他の人がレベル高いものを作っている中で5位と言う結果に

上位の人はほんとうにすごい機能追加をしていて,自分ももっと事前に構成を練って設計をしておくと良かったなぁと後悔

後半過程

後半に入ってからはid:ktr_0731と2人でMackerelチームに配属され,
id:itchynyさんがメンターとなって開発を進めていった

2人ペアでチーム配属というのは本当にいいシステムで,二人でAPI設計をした後にサーバサイドとフロントエンドに分かれて機能開発をしたり,
こっちはControllerのテスト書いてるからそっちはModelのテスト書いてほしいみたいなことがどんどんできる

2週間で新しく開発した機能は6つ

  • メタデータの一覧API
  • アラートを閉じた時の通知の強化
  • 最後に共有したチャンネルを保存してセット
  • アラートを監視の種類で絞りこめる
  • アラートで通知したチャンネルを表示
  • グラフ共有でメトリックを指定

リリースブログ記事はこちら mackerel.io mackerel.io

と,個人的にはかなり爆速で機能を開発して,手応えはあったものの最終成果発表は4位と悔しい結果に

他のチームを見てみると

とめちゃくちゃ便利になっていて完敗

とはいえ社内でもMackerelを触っている人から「めちゃくちゃ便利になった!」との声を頂いて,めちゃくちゃ嬉しかった

自分で書いた便利機能が実際にリリースされてユーザから感謝されるっていう体験は本当にいい体験で,本当にあっという間に2週間が過ぎてしまった

期間中の出来事いろいろ

毎日の話

  • ホテルはオフィスから徒歩2分ほどのハートンホテル京都
  • ホテルは一人部屋で洋食バイキングと和食が朝食
  • 10時30分までにオフィスに来て11時から開始
  • 13時からまかないランチの時間で,社員の方と話しながら食べてその後時間までソファのある場所で一緒にイカしたり等
  • オフィスには本やボドゲもいっぱいあって色々できる
  • 定時が19時で前半過程は21時まではメンターも残っているのでその時間までは作業が可能
  • 後半過程では19時過ぎて作業を続けるということはほとんどなくて,ゆっくりしてから夕食食べに行っても21時くらいにはホテルに着いてるような感じ
  • 夕食はオフィスにピザや寿司が届いたり,すき焼きや寿司や焼肉に連れてってもらえる会があったり
  • その他にはチームの人にお店に連れて行ってもらったりで一度も財布を出していない日の方が多いんじゃないかという感じで詳しくは以下のアルバム photos.app.goo.gl

まとめ

来る前と比べてどう変わったか

  • 経験があった部分はより確かな知識へ
    前半過程では講義と課題のフィードバックによって,よりレベルの上がったコードが書けるようになった
    後半過程でもDB設計やMVC,テストを実際のプロダクトを見ながら実装できたことは大きな力になった

  • Webサービスの上から下まで見通せるようになった
    末端の部分であるインフラやデザインの部分を知ったことで,インフラエンジニアやデザイナと話す際の共通言語を増やすことができた
    プロダクトにおいてなぜこんな構成になっているのか,なぜこんなデザインなのかをより意識できるようになった

参加を考えている人へ

応募はしよう

応募しないと受からない

Perl書いてないからとか知識足りなさそうだから応募しないという理由はまったくなくて,前半過程ではWebサービス開発のために特定の言語を選んでいるだけでそこは本質ではない
事前課題では3週間くらいは余裕があるし事前に良書の紹介もあったりSlackにも入れるので質問ができる

逆にはてなインターンのためにPerlとかScalaやろうかなと思っている人がいたら注意したいのは,カリキュラムは毎年変わるので来年もその言語がある保証はないということ

インターンに行く前のスキルで特に役に立ったのは,Webサービスがどのように動いているかという知識と,規模の大きいコードを読む・書くという経験の2つ

あとは応募開始したら早めに応募をすることで早めに面談,合否がわかることもあるので複数インターンに応募したい人は特に早めに,それに締め切りギリギリの応募も印象良くない

課題や発表は全力で!!!

毎日の課題で講評があり,他のインターン生のコードを見ることができる

同じインターン生のコードを見るというのは刺激的で

  • 事前課題のJavaScript課題
  • JavaScript課題のマウスストーカー作成
  • 機械学習でよりよい特徴量を抽出しF値で競うコンペ
  • 前半過程の自由課題
  • 後半過程の最終成果発表

などなどいくつも機会がある

この機会のお陰で自分の実力を発揮して良いものを作るチャンスになるし,他の人を見て参考にしたり高めていく気持ちになる

なので体調を崩さない程度に全力でやっていくといいと思う

おわり

という感じで何もかもが最高の環境で最高の夏を過ごすことのできるはてなインターン是非応募してくれ!!!

あわせて読みたい

syfm.hatenablog.com

hogashi.hatenablog.com

ishikawa-pro.hatenablog.com

snowman-mh.hatenablog.com

k3ntaroo.hatenablog.com

anatofuz.hatenablog.com

bookmark.hatenastaff.com

オタクはすぐ熊本に行く

この記事は PMOB Advent Calendar 2016 の 25 日目の記事です.

 

12/10~12の3日間熊本に行ってました.

12/11にMission Day Kumamotoが開催されるのでそれに合わせて行ってきました.

 

missiondaykumamoto.splashthat.com

 

熊本空港に着くとくまモンがお出迎えしてくれました.

 

f:id:cohalz:20161213220036j:plain

 

空港から市内へ...ではなく,ちょうど12/10から青春18きっぷが利用可能だったので,博多の近くまで電車で行きました.

博多ラーメンもスープからめちゃ美味くて,明太子もふんわりとしてて美味しかったです.

 

 

 

そんでもって12/11から熊本散策開始しました.

熊本城入り口の城彩苑というところで,ペットボトル3000本を使った熊本城を見たり,

 

 

熊本の郷土料理を食べたりしました

 

 

 

 

熊本城ではかなりの部分が通行止めになっていたんですが,その理由は現地を歩いてみればすぐわかりました

 

f:id:cohalz:20161213221307j:plain

 

 

 

f:id:cohalz:20161213221422j:plain

 

まだまだ復旧の目処が立ちそうにない状況でした.

 

市内の街は路面電車が走ってたり美味しいラーメン屋が多く立ち並んでいたり,古いゲームが置いてある店があったりと中々珍しいものを見れました.

 

 

 

 

 

 

熊本ではふっこう割で元の旅行代金の半額近くが割り引かれるのでかなり安くいけます.

2泊3日の飛行機とホテルの料金で合計1万6000円ほどで行けたのでかなりお得です.

ふっこう割は今年中で終わりますが,もし都合が付く人がいればぜひ熊本へ!

ぼくも散歩しました

この記事は PMOB Advent Calendar 2015 の 25 日目の記事です.

 

散歩エントリが羨ましいのでTwitterから散歩の記録を取ってきました(写真のあるもののみ載せてます) 

 

1月2日 奈良公園

 

1月4日 彦根

 

1月5日 熱田神宮

 

1月6日 小田原

 

1月8日 忍城

 

1月10日 横須賀・猿島

 

2月2日 越生

 

2月8日 浅草

 

2月9日 滑川町 

 

2月16日 大平山

 

2月23日 東京電機大学千葉ニュータウンキャンパス

 

3月2日 東村山

 

3月7日 町田

 

3月15日 鶴見

 

3月22日 養老

 

3月23日 樽見

 

3月25日 奈良

 

3月28日 京都

 

3月29日 大阪

 

3月30日 姫路

 

3月31日 岡崎

 

4月5日 江ノ島

 

4月5日 東松山

 

4月7日 横須賀

 

5月3日 長瀞

 

6月13日 ときがわ町

 

6月20日 仙台

 

6月21日 石巻

 

6月27日 東京都庁

 

7月4日 横浜

 

7月5日 秋葉原

 

7月30日 お台場

 

8月3日 鴻巣

 

8月16日 東京ビッグサイト

 

8月24日 横須賀

 

8月29日 伊香保

 

9月2日 松戸

 

9月5日 松本

 

 9月6日 大阪

 

9月7日 甲府

 

9月12日 天王洲アイル

 

9月14日 青梅

 

9月18日 幕張

 

9月20日 上福岡

 

10月24日 横浜

 

11月15日 草津

 

11月21日 東京大学駒場キャンパス

 

11月21日 電気通信大学

 

12月11日 沖縄

 

12月12日 沖縄

 

12月13日 沖縄

 

お金がない