Cybozu

2009年10月 5日 (月)

第2回技術発表会を行ないました

Dscf6235

こんにちは、サイボウズ篠原です。
夏も終わりそろそろ肌寒くなってきましたね。
9月の頭の話になりますが、社内で技術発表会を開催しました。

この催しは開発部の技術交流を目的としており、
各拠点とグループ会社であるサイボウズラボとサイボウズ総研に
参加いただいています。

この技術発表会、今回で2度目となり、
開発、運用のノウハウ、そして新プロジェクト、と
目白押しの内容。
メンバーにとってよい刺激になっています。

残念ながら対外的に出せない情報が多いですが
タイトルだけちょっと公開しようと思います。


Dscf6229_2

本社開発部
Gaia (応用発展系アプリ)
Mercury (モバイル系調査)
グループウェアネットサービス

Dscf6231

サイボウズラボ
AzDz by Windows Azure
Fast IMAP Proxy
Key-Value Storage Mio
A Clever Way to Scale-out a Web Application
Application Development on SharePoint
Lab's VM Environment
Bamboo Project Report


Dscf6234

サイボウズ総研
Garoon2 EC2
Garoon2 IP Phone Connection
Garoon2 Exchange Connection


Dscf6226

情報システム部
内部統制
オフショア
ストレージ研究
バックアップシステム
顧客情報システム
Silverlight

松山開発部の活動
上海開発部の紹介

次回の技術発表会は3月を予定しています。

もしかすると対外的に出せる情報も増えるかもしれませんし
新しいプロジェクトがはじまっているかもしれません。
お楽しみに。

2009年9月25日 (金)

ものづくり日本大賞受賞

サイボウズ松山の矢野です。

いまさら感の否めないご報告となりますが、
去る 平成21年7月某日、件の賞を頂戴いたしました。

第18回の高専プロコンへ出展した作品が評価されたとのことで、
当時の開発メンバーが一同に集い、あたかも学生時代に戻ったかのようでした。

実感の湧かぬまま表彰式を迎え、終えたので、未だに夢か幻のような気分であります。
首相官邸にて賞を賜ったのですが、瀟洒な雰囲気の中に身を置くにあたり、場違いな印象を受けるばかりでした。
官邸の天井は高かったです。

第92代首相の力強い握手と励ましのお言葉を忘れません。
この熱い想いを胸に、製品開発に全力を注いでゆきたいと思います。

関連URL:
[第3回ものづくり日本大賞]
[Cydn - 地方でプログラマは育つのか]

2009年7月24日 (金)

サイボウズ・ラボ体験記

サイボウズの岡田です。

私はもともと東京本社で製品開発を担当していましたが、昨年12月から5ヶ月間サイボウズ・ラボに出向し、本社との共同プロジェクトで研究開発を行いました。そして現在は松山オフィスで製品開発を行っています。松山での開発についてもいろいろとお話したいのですが、それは次回のお楽しみということで、今回はサイボウズ・ラボでの生活についてお話しさせていただきます。

サイボウズ・ラボの人たち

ご存知の方もいらっしゃると思いますが、サイボウズ・ラボでは錚々たるメンバーが働いています。出向前はそんな人たちと一緒に働ける楽しみと、天才と呼ばれるようなエンジニアは気難しくて関わりにくい人が多いんじゃないか、技術力が違い過ぎるのにうまくやっていけるだろうか、という不安がありました。しかし、いざ行ってみると、コミュニケーションを取るのが好きな人ばかりで、本当に楽しく働くことができました。

もちろん、楽しく飲むこともできました。
Labs

また、ラボのメンバーは毎週のように技術系のイベントや勉強会に参加していました。毎週行われる進捗報告会で話を聞いていると、社外の交流の場でたくさんのエンジニアから情報を仕入れて技術力を磨くことも重要だと感じました。

日常の様子

仕事中はみなさん黙々と作業しているので基本的に静かですが、グループウェア上のコミュニケーションは非常に賑やかでした。

特に賑やかなのはラボのメンバーひとりひとりが持っている『ひとりごと』という掲示板です。技術的な話からご飯の話、お子さんの話まで、本当になんでもかんでも書きたいことを書くのですが、全員が全員の『ひとりごと』をチェックしていて、あっという間にたくさんのコメントが書き込まれます。

これはおもしろい!ということで、松山開発部でも『ひとりごと』を始めてみましたが、意外な人からコメントが書き込まれたり、いろんな技術情報を簡単に共有できたりと、今では欠かせないツールになっています。

学んだこと

ラボでの私の主な業務は C++ での設計・コーディングだったので、特に C++ に関しては非常に勉強になりました。

template も STL もよくわからず、設計なんて全くやったことがない状態からスタートし、C++ の基礎文法レベルがきちんと理解できるようになるまで1ヶ月。boost のソースコードをある程度まともに読めるようになるまで1ヶ月。自分の書いたソースコードを見直しては納得がいかず何度も書き直すこと延々…。

毎日のように技術的なアドバイスを受けたり、何度もコードレビューをしてもらって最終的に納得のいくものを作り上げることができましたが、自分一人で勉強しただけでは到底成し得なかったことだと思います。

最後に

これまで、サイボウズとサイボウズ・ラボの交流は決して十分ではありませんでした。しかし、今後はもっと交流を深めて、ラボの技術力をサイボウズのエンジニア一人ひとりの技術力の向上、そしてサイボウズ製品の進化に活かしていきたいと思います。

また、私自身はラボから遠く離れた松山の地で、ラボで学んだことをしっかりと伝えていければと思っています。

2009年6月12日 (金)

グループウェアのログデータを分析対象とした、 PL/Rを用いたデータマイニングWebアプリの実現(1)

アブストラクト:
新入社員が受ける一ヶ月の開発研修で、PostgreSQLとR言語を統合し、PL/Rを用いてデータマイニングのWebアプリを実装しました。また、サイボウズ社内で使用している「サイボウズガルーン2」のWebサーバーのログデータを分析してみました。ここで、これらの技術について、紹介したいと思います。

キーワード:
グループウェア、ログデータ、Webアプリケーション、データマイニング、可視化

初めまして、周と申します。2009年2月に「ポスドク採用枠」(ポスドク枠)で入社し、現在は開発部に所属しています。今回、開発部業務研修で実装したデータマイニングWebアプリやログデータ分析についての技術を紹介したいと思います。

サイボウズでは、ポスドク枠で採用される新入社員は、約1ヶ月の人事・OJT研修以外に、配属先の開発部でも、約1ヶ月、経験豊富なメンターに付いて業務研修を受けます。業務研修は、スムーズに開発に参加できるようになることを目的としています。また、自分が好きな分野を加え、技術調査を行うことで、開発部のメンバーたちとの技術交流もできると言われています。

1.データマイニングWebアプリの実現
近年、データマイニングやテキストマイニングが注目されてきました。SASやSPSSなどのデータマイニングに特化する企業の急成長は、その一例であると思います。大量データの蓄積、データ活用する意識の高まり、分析手法を活用する事例の増加などが、データマイニングのニーズを高める要因であると考えています。一方、高価なSASやSPSSのような商業データマイニングソフトと匹敵でき、フリーウェアであるR言語などが注目されています。さらに、R言語をデータベース管理システムの分析エンジンとし、Webアプリの形でデータマイニングやグラフィックスの機能を提供できれば、適用範囲がもっと広がると考えています。そこで、フリーウェアであるデータベース管理システムPostgreSQLをR言語と統合し、データマイニング機能やグラフィックス機能を提供できるWebアプリを実装してみました。

(1)R言語について
R言語とは:
オープンソースでフリーソフトウェアの統計解析向けプログラミング言語、及びその開発実行環境であります。
  R言語(参考:Wikipedia)

特徴:
・可視化の柔軟性が高い
・統計分析や機械学習などの分析機能が豊富である
・フリーなアドオンパッケージが1,700個以上あり拡張性が高い

インターフェース:
R言語の活用によって、多様なアプリとのインターフェースが出てきました。
  Rとインターフェースのあるアプリ

実例:
≪検査・調査Web システムにおける統計解析機能の導入と活用≫

(参考:工藤伸之(2008)平成20年度岡山理科大学修士論文)

(2) PL/Rについて
PL/Rとは:
PostgreSQL用R手続き型言語(R Procedural Language for PostgreSQL)です。DBMS環境でR言語の分析機能や可視化機能を呼び出すことが可能になります。
  http://www.joeconway.com/oscon-pres-2003-1.pdf
  (以下PDFより一部抜粋)
メリット:
・Leverage people's knowledge and skills
– statistics is a specialty not common amongst database developers
・Leverage hardware
・Processing/bandwidth efficiency
・Consistency of analysis
・Abstraction of complexity
デメリット:
・PostgreSQL user:
– Slower than standard SQL aggregates (e.g. AVG) for simple cases
– New language to learn
・R user:
– Debugging more challenging than working directly in R
– Less flexible for ad hoc analysis

PostgreSQLとは:
BSDライセンスにより配布されているオープンソースのオブジェクトデータベース管理システム (ORDBMS) です。

(3) PL/Rを用いたウェブアプリの実現
実装したWebアプリの構造を下図に示しています。分析リクエストがSQLスクリプトの形でPostgreSQLに渡されます。PostgreSQLはSQLスクリプトを実行し、その中に埋め込めたPL/Rの関数を 実行します。また、PL/R関数の実行により、R言語を呼び出し、分析を行い、分析結果やグラフィックスを返します。分析データがPostgreSQLに蓄積していて、分析や分析データのやり取りがすべてPostgreSQL環境で処理できるので、他のR言語インターフェースと比べて、処理速度が速いという特徴を持ちます。ここでは、Webアプリの実現はPHPを利用しましたが、PL/Rがアプリケーションの開発言語に依存しないという特徴も持っています。PL/RがR言語の呼び出しを、PostgreSQL環境で行うためです。

R_1



後編はこちら