LEKU ONA

エンジニアしたり野鳥を見たりマンガを描いたり

Hatena Engineer Seminar #4 に行ってきた

Hatena Engineer Seminar #4 @ Tokyo
http://developer.hatenastaff.com/entry/engineer-seminar-4
に、参加してきました。
(一応)エンジニアのわたくしです。


まずは、はてな東京
オフィスを2倍にしてエンジニアも かなり本気で増員予定との事でした。
これは非常にチャンスなんじゃないかしらと思います。興味ある方は是非に!




はてなのイベントには ちょこちょこ参加させてもらっているのですが
今回は、わりとガチな雰囲気の勉強会。
多岐にわたる はてなの内部の取り組みについて、色々聞けたので大変面白かったです。




内容については 他所さんの方が詳しいと思うので
個人的な羅列のみつらつらと。

Goで書かれたmackerel-agentのOSS化や自動化にまつわるあれこれ

参考:http://www.songmu.jp/riji/entry/2015-02-08-hatenatech-4.html
参考:http://songmu.github.io/slides/hatenatech-4/#0

  • mackerelのサーバ側はScalaで、クライアントにインストールするagentはGo。
  • OSS化している https://github.com/mackerelio/
  • ユーザ環境で動くものだから、信頼性のため公開
    あと、オープンソースにすることでユーザがハックできる余地を残しておく。
    ユーザーと一緒にサービスを作っていく(はてなっぽいなー)
    • ただし、どのようにパッチ受け付け体制を整えるかが課題(放置しない、公平に扱う)
  • pluginのリリース -> pull request, Travis -> tag付け 自動化かっこいい
  • Goは 敷居の低い言語らしい(そうなの…?)




はてなのサービスの開発環境

  • エンジニアだけではなく、デザイナーもローカルに開発環境を持つ
  • はてなブックマーク(昔からのサービスの開発環境)
    • B!KUMAとか 色んなサービスの一部が一緒に動いていたり複雑
    • 本番CentOSで 開発環境はUbuntuだったり
    • CPANモジュールの依存関係が複雑(バージョン管理大変そう)
    • Vagrantは放置しておくと壊れる(古いUbuntuだと リポジトリ提供終了してたり…あるある…)
  • はてなブログ(新しいサービスの開発環境)
    • 特定のフレームワーク使ってない
    • ローカル開発環境も本番とほぼ同じ環境でセットアップしてる(VMじゃない)
    • 今後のミドルウェアのバージョン管理が課題?
  • 継続的な長期間プロジェクトの開発環境のバランスって難しいなあ…と思った。新しいもの入れるの大変だけど、古いままの環境だと段々辛くなる。





はてなブックマークの新機能における自然言語処理の活用

参考:http://developer.hatenastaff.com/entries/2015/02/12

  • 自然言語処理技術を用いたはてなブックマークの新機能「トピック」をベータリリースしました」 のこれ http://bookmark.hatenastaff.com/entry/2015/02/05/190331
  • トピック生成にはElasticSearch 全文検索システムの 重要語が取得できる機能(Significant Terms Aggregation)を利用
  • トピックに属するエントリは 含まれるキーワードのスコア合計が一定以上になるものをとってくる
  • トピックタイトルの作成は、要約技術の一種
    • 要約に重要な部分は タイトルと本文一行目(らしい?)
    • タイトルから重要語をとってくるときに変なところで切ってしまうと意味が通じなくなるので、係り受け解析(文節間修飾関係)を使ってる
  • 自然言語処自体関わったことない分野だったので 新鮮。興味深いお話でした。
    重要語(キーワード)の取得は出来ても、そこから要約を作るまでが難しいみたい。過程が面白かったです。





はてなiOSアプリとSwift

参考:http://yashigani.hatenablog.com/entry/hatena-engineer-seminar-4

  • なんだか全体的に、Objective-C 実は結構辛かった。Swiftめでたい!という話だったような…。
  • はてなブックマークのApp Extensionを試験的にSwiftで書いて、今後はSwiftを採用していくことに。
    • Swiftにはnamespaceがある(今まで無かった?prefixの戦いがあったようだ)
  • ただしSwiftは最適化で結構壊れるし、IDEがいけてない。
  • Carthageより CocoaPods使うほうが無難
  • 細かいことがしたい場合は、AFNetworking
  • JSON使うの相性悪いらしい
  • Swift触ってみようかなあ…と思う愛あふれる(?)発表でした。
    Objective-Cは ソース初め見たときウッってなったけれど Swiftは見やすくなっているようだった。




TypeScriptで実現するMVPアーキテクチャパターン

参考:http://developer.hatenastaff.com/entry/2015/02/13/121217

  • ジャンプルーキーの一部の画面で使用。外部ライブラリはjQueryのみ(DOM操作など)
  • TypeScript
  • javascript > TypeScriptへの移行は簡単
  • DOMに依存しないでテストしたい(わかる)
  • MVPアーキテクチャーパターン(Model, View, Presenter)
    • Presenterが 各値を変更 → Viewが表示更新





社内SEやってると「井の中の蛙になるなあ…!」とひしひしと感じました。
もうちょっと色んな勉強会に出よう。

とりあえず、現行やってることにTypeScript導入するのと
Swift触りたいなあ。と思ったのでした。