ドワンゴ検索チームです。
ニコニコ動画の検索チームでは、動画検索ページへの反映をよりリアルタイムに
行うため、本年中を目途に、新検索エンジンへ置き換える予定でおります。
新検索エンジン置き換え予定の動画検索ページ
ページデザインは既存のまま、検索エンジンのみを置き換える形になります。
これにより、動画検索ページの動画投稿数・閲覧数・コメント数といった情報がより多く更新されるようになります。
ただ、これまで動画検索ページを解析し、データを収集されてきた方々にとっては、
刻々と変化する検索では一貫性のある結果を得ることができず、データの解析に
不利益が生じるのではないか?と考えました。
また検索エンジンの仕様変更により、現在提供されている機能が提供できなくなる可能性がございます。
検索チームでは、この問題に対してAPIを提供する等の検討を行っています。
本日は、影響のある技術者の方へ、仕様変更を速報としてお伝えいたしました。
次回のご報告は9月末を予定しております。
続報をお待ちください。
今後ともniconicoをよろしくお願いいたします。
Scala Days 2日目 (6/17)
さて、大変間が空いてしまい、既に賞味期限切れになってしまったかもしれませんが(笑)、二日目のレポートを届けたいと思います。ご容赦ください。
Scala Days 2日目は、Erik Meijer氏による『Contravariance is the Dual of Covariance | Observable is the Dual of Iterable』と題した発表で幕を明けました。タイトルから、GoFのObserverパターンのObservableとIteratorパターンにおけるIterableの関係についての発表が聴けると期待したのですが、発表はタイトルと全く異なっていました。
発表は終止、try-finallyの表示的意味論の話に終止し、これはこれで一つの発表としてはアリだったかもしれないですが…(プログラムの意味を形式的に定義する手法の一つに、表示的意味論というものがあります。他に、公理的意味論、操作的意味論という方法が知られています)。どうも、当初はタイトル通りの発表を行う予定だったが、何らかのトラブルで発表内容を変えたようです。これは少々残念でした。また、一つの発表としても、参加者のほとんどが予備知識を持っていないと思われる表示的意味論の記号を駆使した説明が続くなど、参加者の方が置いてきぼりになっている印象がありました。
Scala Daysの2日目は、Keynoteを除いてパラレルセッションでしたので、同時間帯の発表の中から一つを選ぶ必要がありました。
次に聴いた発表は、『Catalyst: A Functional Query Optimizer for Spark and Shark』でした。近年、Scala界隈では、いわゆるビッグデータを扱うためのScalaで書かれたSparkというフレームワークが流行っています。Sparkの特徴として、インメモリ型の特殊なキャッシュを持っていることで、同じデータセットを繰り返して使う場合にHadoopより数倍〜数十倍の性能が出ることが挙げられます(詳細についてはこちらの発表スライドをご覧ください)。SharkはSpark上のデータに対するSQLライクなクエリ言語で、Hadoopに対するHiveと類似しています(互換性を持っているとされています)。この発表では、Spark SQLという、クエリをSQLライクに書いて自動的に最適化するためのライブラリについて発表されました。TCP-DSではSharkより良い成績が出ており、性能もなかなかのもののようです。
次に聴講した発表は、『Good to Gread: IntelliJ IDEA and Scala』です。Scala Daysでは毎年のように発表されるIntelliJ IDEA Scala Pluginについての発表です。普段から私はIntelliJ IDEAを使ってコードを書いているのであまり新鮮味はありませんでしたが、開発が順調に進んでいることが伺える発表でした。
ビュッフェ形式のランチを挟んで次に聴いたセッションは『Learn you an sbt for fun and profit!』でした。これは、日本語訳『すごいHaskell楽しく学ぼう!』(原題『Lear you a Haskell for Great Good!』)という日本では知る人ぞ知る書籍のタイトルのパロディです。基本的なsbtの使い方から始まって、Setting[T], Task[T]といったsbtにとって重要なコンセプト、sbt pluginの作り方まで及ぶ濃いセッションでした。最終的にライブコーディングでsbt pluginを作ったのは圧巻でした。
その次に聴いたのは『Scala code quality assurance - SCCT』でした。これは、現在のプロジェクトでSCCT(Scalaのコードカバレッジツール。sbtのプラグインとして提供)を利用しているため、日本を出発する前から聴こうと思っていたセッションでした。気になっていたのは、最近人気が出て来ているscoverageと、最近あまり更新がないようにみえるscctとの関係でした。当日私が質問したところ、scoverageは、scctがあまりメンテナンスされていないためforkした新しいプロジェクトで、基本的にscctと互換性があるとのことでした。これから新しいScalaプロジェクトでコードカバレッジツールを使うときはscoverageを使うと良いかもしれません(Jenkinsとの連携に若干の問題があるように見受けられますが、既に解決されているかもしれません)。
この日は大変残念なことに、ここで私が体調を崩してしまったためホテルに戻ることにしました。この日は、懇親会がアレキサンダープラッツ駅近くのWeekend Clubの屋上で行われたようなのですが、参加できなかったのは大変残念でした。
ネタ:Scala Movie 2.11 Official Trailer
さて、大変間が空いてしまい、既に賞味期限切れになってしまったかもしれませんが(笑)、二日目のレポートを届けたいと思います。ご容赦ください。
Scala Days 2日目は、Erik Meijer氏による『Contravariance is the Dual of Covariance | Observable is the Dual of Iterable』と題した発表で幕を明けました。タイトルから、GoFのObserverパターンのObservableとIteratorパターンにおけるIterableの関係についての発表が聴けると期待したのですが、発表はタイトルと全く異なっていました。
発表は終止、try-finallyの表示的意味論の話に終止し、これはこれで一つの発表としてはアリだったかもしれないですが…(プログラムの意味を形式的に定義する手法の一つに、表示的意味論というものがあります。他に、公理的意味論、操作的意味論という方法が知られています)。どうも、当初はタイトル通りの発表を行う予定だったが、何らかのトラブルで発表内容を変えたようです。これは少々残念でした。また、一つの発表としても、参加者のほとんどが予備知識を持っていないと思われる表示的意味論の記号を駆使した説明が続くなど、参加者の方が置いてきぼりになっている印象がありました。
Scala Daysの2日目は、Keynoteを除いてパラレルセッションでしたので、同時間帯の発表の中から一つを選ぶ必要がありました。
次に聴いた発表は、『Catalyst: A Functional Query Optimizer for Spark and Shark』でした。近年、Scala界隈では、いわゆるビッグデータを扱うためのScalaで書かれたSparkというフレームワークが流行っています。Sparkの特徴として、インメモリ型の特殊なキャッシュを持っていることで、同じデータセットを繰り返して使う場合にHadoopより数倍〜数十倍の性能が出ることが挙げられます(詳細についてはこちらの発表スライドをご覧ください)。SharkはSpark上のデータに対するSQLライクなクエリ言語で、Hadoopに対するHiveと類似しています(互換性を持っているとされています)。この発表では、Spark SQLという、クエリをSQLライクに書いて自動的に最適化するためのライブラリについて発表されました。TCP-DSではSharkより良い成績が出ており、性能もなかなかのもののようです。
次に聴講した発表は、『Good to Gread: IntelliJ IDEA and Scala』です。Scala Daysでは毎年のように発表されるIntelliJ IDEA Scala Pluginについての発表です。普段から私はIntelliJ IDEAを使ってコードを書いているのであまり新鮮味はありませんでしたが、開発が順調に進んでいることが伺える発表でした。
ビュッフェ形式のランチを挟んで次に聴いたセッションは『Learn you an sbt for fun and profit!』でした。これは、日本語訳『すごいHaskell楽しく学ぼう!』(原題『Lear you a Haskell for Great Good!』)という日本では知る人ぞ知る書籍のタイトルのパロディです。基本的なsbtの使い方から始まって、Setting[T], Task[T]といったsbtにとって重要なコンセプト、sbt pluginの作り方まで及ぶ濃いセッションでした。最終的にライブコーディングでsbt pluginを作ったのは圧巻でした。
その次に聴いたのは『Scala code quality assurance - SCCT』でした。これは、現在のプロジェクトでSCCT(Scalaのコードカバレッジツール。sbtのプラグインとして提供)を利用しているため、日本を出発する前から聴こうと思っていたセッションでした。気になっていたのは、最近人気が出て来ているscoverageと、最近あまり更新がないようにみえるscctとの関係でした。当日私が質問したところ、scoverageは、scctがあまりメンテナンスされていないためforkした新しいプロジェクトで、基本的にscctと互換性があるとのことでした。これから新しいScalaプロジェクトでコードカバレッジツールを使うときはscoverageを使うと良いかもしれません(Jenkinsとの連携に若干の問題があるように見受けられますが、既に解決されているかもしれません)。
この日は大変残念なことに、ここで私が体調を崩してしまったためホテルに戻ることにしました。この日は、懇親会がアレキサンダープラッツ駅近くのWeekend Clubの屋上で行われたようなのですが、参加できなかったのは大変残念でした。
ネタ:Scala Movie 2.11 Official Trailer
ドワンゴエンジニアの清水(@meso)です。
去る7/7に、ドワンゴ, ドワンゴモバイル, キテラスのドワンゴグループ3社のエンジニアが集結して、イベントを開催いたしましたので、その様子をご報告いたします。
昨年の様子はこちら
今年も昨年同様にハッカソンを行ったのですが、昨年よりもエンジニアの数が50名以上増えているため、会場がパンクしてしまうのを回避するために、新入社員のチーム開発研修の成果発表会を裏で同時開催することで、何とか全員入れるよう調整しました。
ハッカソンのテーマは、開催日の7/7にちなんで「出会い」です。社内の普段交流を持たないメンバとの出会いを促進するような何かが生まれれば、ということを狙ったテーマでした。とはいえ、他に作りたいものがある方は自由に作ってもいいという緩いルールです。
しかし、一点だけ制約を設けました。それは「普段、業務で使っていない環境(言語/フレームワーク/プラットフォーム)で開発すること」です。例えば
などにチャレンジすることを推奨しました。

せっかく環境ごとに席を分けたにも関わらず、そこで何か交流が生まれるわけでもなく、ただひたすら黙々と開発していたのが印象的でした。
18時半になるとハッカソンは終了し、エンジニア決起集会へと移行しました。ハッカソンの裏で開催していた新入社員のチーム開発研修の成果発表会に参加していた新入社員や審査員も合流し、ビールとピザと寿司を楽しんでいただきました。
決起集会では、エンジニア新入社員による自己紹介とチーム開発研修の最優秀チームの発表を行いました。最優秀チームに選ばれた4名には、発売されたばかりの LG G Watch を贈呈しました。また、ハッカソンの成果発表LTも行い、中にはLeap Motionで潜水艦を動かした人や、Docker-Registryで運用している社内Dockerリポジトリに登録されているコンテナを一覧できるツールを作ってくれた人もいました。

LG G Watchをもらって喜ぶ新入社員と、特に何ももらえなかったメンターの先輩
それは仕方のない面もあるのかもしれません。でも僕は、ドワンゴのエンジニアには可能な限りそのような思いを抱いて欲しくないのです。「プログラミングって楽しい」「何かを開発するのって面白い」という、初めてプログラミングに触れた時に感じた思いを抱き続けて欲しい。そういう思いでイベントを開催しています。
さらに、2016年卒業予定の学生向けインターン参加者も募集中です。Oculus Riftを用いた新プロダクトの開発など、他では経験できないコースが目白押しです。是非ご応募ください!
去る7/7に、ドワンゴ, ドワンゴモバイル, キテラスのドワンゴグループ3社のエンジニアが集結して、イベントを開催いたしましたので、その様子をご報告いたします。
イベント概要
ドワンゴでは、毎年「エンジニア決起集会」を開催しています。これは、エンジニアが一同に集まって、「よりよいサービスを作りだしていくぞ!」という思いを新たにするという、大規模な飲み会のようなものなのですが、昨年からはより「エンジニア」っぽいイベントをしたいということで半日使っての「ハッカソン」も開催しています。昨年の様子はこちら
今年も昨年同様にハッカソンを行ったのですが、昨年よりもエンジニアの数が50名以上増えているため、会場がパンクしてしまうのを回避するために、新入社員のチーム開発研修の成果発表会を裏で同時開催することで、何とか全員入れるよう調整しました。
ハッカソンのテーマは、開催日の7/7にちなんで「出会い」です。社内の普段交流を持たないメンバとの出会いを促進するような何かが生まれれば、ということを狙ったテーマでした。とはいえ、他に作りたいものがある方は自由に作ってもいいという緩いルールです。
しかし、一点だけ制約を設けました。それは「普段、業務で使っていない環境(言語/フレームワーク/プラットフォーム)で開発すること」です。例えば
- Scala/Play2, Skinny, Finatra, Xitrum
- Haskell/yesod, rest, Scotty
- Go/Revel, Martini
- Ruby/Rails, Padrino, Sinatra
- PHP/Laravel, Phalcon
- Java/Vert.x, Isis, Dropwizard, Spark
- JavaScript(Node)/Express, Synth, Koa
当日の様子
当日は、環境ごとに席を大まかに分けて着席していただきました。300人以上の方に参加していただき、13時半から18時半の5時間に渡ってアプリエンジニアはもちろん、インフラエンジニアや情シスのエンジニアまでみんな揃って黙々と開発をするという、素敵な空間でした。
せっかく環境ごとに席を分けたにも関わらず、そこで何か交流が生まれるわけでもなく、ただひたすら黙々と開発していたのが印象的でした。
18時半になるとハッカソンは終了し、エンジニア決起集会へと移行しました。ハッカソンの裏で開催していた新入社員のチーム開発研修の成果発表会に参加していた新入社員や審査員も合流し、ビールとピザと寿司を楽しんでいただきました。
決起集会では、エンジニア新入社員による自己紹介とチーム開発研修の最優秀チームの発表を行いました。最優秀チームに選ばれた4名には、発売されたばかりの LG G Watch を贈呈しました。また、ハッカソンの成果発表LTも行い、中にはLeap Motionで潜水艦を動かした人や、Docker-Registryで運用している社内Dockerリポジトリに登録されているコンテナを一覧できるツールを作ってくれた人もいました。

LG G Watchをもらって喜ぶ新入社員と、特に何ももらえなかったメンターの先輩
なぜこのようなイベントをするのか
と、問われることがよくあります。それはやはり、「プログラミングの楽しさを忘れないで欲しいから」です。日々エンジニアとして働いていると、プログラミングをしていて辛さを感じてしまうということがどうしてもあります。「プログラミングは好きだけど、仕事としてするのは辛い」という思いを抱きながら開発をしているエンジニアは、実は多いのではないでしょうか。それは仕方のない面もあるのかもしれません。でも僕は、ドワンゴのエンジニアには可能な限りそのような思いを抱いて欲しくないのです。「プログラミングって楽しい」「何かを開発するのって面白い」という、初めてプログラミングに触れた時に感じた思いを抱き続けて欲しい。そういう思いでイベントを開催しています。
最後に
そんなドワンゴでは、エンジニアを積極的に採用中です。ご興味がある方は是非こちらからご応募ください!また、2015年新卒採用も通年でオープンしております。技術アピール作品とともに是非ご応募ください(ちなみにドワンゴの新卒採用は正社員としての就業経験がなければ既卒者でも応募できます)。さらに、2016年卒業予定の学生向けインターン参加者も募集中です。Oculus Riftを用いた新プロダクトの開発など、他では経験できないコースが目白押しです。是非ご応募ください!
メール配信:あり更新頻度:不定期※メール配信はチャンネルの月額会員限定です
月別アーカイブ
- 2018年11月のブロマガ記事(1)
- 2017年10月のブロマガ記事(2)
- 2017年09月のブロマガ記事(2)
- 2017年08月のブロマガ記事(4)
- 2017年07月のブロマガ記事(3)
- 2016年12月のブロマガ記事(1)
- 2016年07月のブロマガ記事(1)
- 2016年06月のブロマガ記事(1)
- 2015年12月のブロマガ記事(1)
- 2015年07月のブロマガ記事(1)
- 2015年05月のブロマガ記事(1)
- 2015年01月のブロマガ記事(1)
- 2014年11月のブロマガ記事(2)
- 2014年10月のブロマガ記事(2)
- 2014年09月のブロマガ記事(1)
- 2014年08月のブロマガ記事(2)
- 2014年07月のブロマガ記事(3)
- 2014年06月のブロマガ記事(1)
- 2014年03月のブロマガ記事(1)
- 2013年11月のブロマガ記事(1)
- 2013年10月のブロマガ記事(2)
- 2013年09月のブロマガ記事(1)
- 2013年08月のブロマガ記事(3)
- 2013年07月のブロマガ記事(1)
- 2013年06月のブロマガ記事(2)
タグ
- ドワンゴ(33)
- dwango(33)
- engineer(27)
- エンジニア(27)
- ご報告(7)
- 新配信(7)
- kbkz_tech(4)
- 動画検索(4)
- ニコニコ動画(4)
- Scala(4)
- 歌舞伎座.tech(4)
- Chef(4)
- ハッカソン(4)
- hackathon(3)
- インフラ(2)
- C++(2)
- 研修(2)
- はてな(1)
- internship(1)
- 新人研修(1)
- 勉強会(1)
- カンファレンス(1)
- SIGGRAPH(1)
- ICML(1)
- CVPR(1)
- インターン(1)
- mastodon(1)
- friends.nico(1)
- programming(1)
- プログラミング言語(1)
- プログラミング(1)
- tokyo_technical_samurai(1)
- robot(1)
- elasticsearch(1)
- Unity(1)
- OculusRift(1)
- インターンシップ(1)
- event(1)
- 将棋(1)
- API(1)
- ma9(1)
- ドワンゴ技術部(1)