Hatena Engineer Seminar #4 @ Tokyo
http://developer.hatenastaff.com/entry/engineer-seminar-4
に、参加してきました。
(一応)エンジニアのわたくしです。
まずは、はてな東京
オフィスを2倍にしてエンジニアも かなり本気で増員予定との事でした。
これは非常にチャンスなんじゃないかしらと思います。興味ある方は是非に!
先ほど発表しましたが、はてな東京オフィスを2倍に増床します! 3月オープン予定です。エンジニアもエンジニア以外も増員していきますので、興味ある方はご連絡お待ちしています!! #hatenatech
— Shinji Tanaka (@stanaka) 2015年2月7日
はてなのイベントには ちょこちょこ参加させてもらっているのですが
今回は、わりとガチな雰囲気の勉強会。
多岐にわたる はてなの内部の取り組みについて、色々聞けたので大変面白かったです。
内容については 他所さんの方が詳しいと思うので
個人的な羅列のみつらつらと。
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は 敷居の低い言語らしい(そうなの…?)
はてなのサービスの開発環境
- エンジニアだけではなく、デザイナーもローカルに開発環境を持つ
- はてなブックマーク(昔からのサービスの開発環境)
- はてなブログ(新しいサービスの開発環境)
- 継続的な長期間プロジェクトの開発環境のバランスって難しいなあ…と思った。新しいもの入れるの大変だけど、古いままの環境だと段々辛くなる。
はてなブックマークの新機能における自然言語処理の活用
参考: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とほぼ同じ
- 型に関する機能が使える(静的型宣言、型推論)
function add(a: number, b: number): number {}
この書き方いいな。
- javascript > TypeScriptへの移行は簡単
- DOMに依存しないでテストしたい(わかる)
- MVPアーキテクチャーパターン(Model, View, Presenter)
- Presenterが 各値を変更 → Viewが表示更新
社内SEやってると「井の中の蛙になるなあ…!」とひしひしと感じました。
もうちょっと色んな勉強会に出よう。
とりあえず、現行やってることにTypeScript導入するのと
Swift触りたいなあ。と思ったのでした。