2009年12月 8日 (火)

情報科学苦手の会に参加してきました

今年の情報科学若手の会には参加できなかったので、情報科学苦手の会の方に参加してきました。

幹事のみずしまさん、運営周りをいろいろサポートしていたsyuuさん(ハンドルネーム)、会場提供たけおかさん、その他発表者のみなさん、参加者のみなさん、ありがとうございました。

ボウズマンチョコ

自分はC++が苦手なので、templateでコンパイル時に素数を数え上げるプログラムを作成して自習勉強してみました。苦手な法律の話も勉強したのですが、ピザ到着の時間が近かったので今回は発表をパスさせていただきました。

■ C++テンプレートでコンパイル時に静的に素数を計算する

元ネタ:

  1. C++テンプレートでFizzBuzz - おびなたん☆
  2. Kazuho@Cybozu Labs: C++ テンプレートで(いまさら)FizzBuzz
  3. C++のテンプレートで素数計算 - 西尾泰和のはてなダイアリー

ちょっと古い話題ですが、enumを使うテクニックをherumiさんから教えてもらったので、書いてみました。

#include <stdio.h> 

template<int N, int n=N-1, int m=N%n> struct isPrime {
  enum { ok = isPrime<N, n-1>::ok };
};

template<int N, int n> struct isPrime<N, n, 0> {
  enum { ok = 0 };
};

template<int N> struct isPrime<N, 1, 0> {
  enum { ok = 1 };
};

template<int N> struct printPrime {
  printPrime() {
    printPrime<N-1>();
    isPrime<N>::ok && printf("%d\n", N);
  }
};

template<> struct printPrime<1> {};

int main()
{
  printPrime<MAX>();
}

コンパイルするときに -DMAX=100 のオプションをつけて #define MAX 100 してあげます。

■ 計測スクリプト

さきほどのC++のソースコードを prime.cpp に保存して #define MAX の値を変えて g++ のコンパイル時間を計測してみます。

#!/bin/bash
n="10 20 30 40 50 60 70 80 90 100 110 120 130 140 150 160 170 180 190 200"
for i in $n
do
  echo -n "$i, "
  /usr/bin/time -f "%U" g++ -DMAX=$i prime.cpp
done
■ 実行結果

以下の環境でベンチマークをとってみましたが、MAXの値が大きくなると結構な時間がかかるようです。

Athlon1640B 2.7GHz Memory8GB Ubuntu8.10(AMD64)
  gcc version 4.3.2 (Ubuntu 4.3.2-1ubuntu12)

10, 0.17
20, 0.19
30, 0.23
40, 0.30
50, 0.44
60, 0.60
70, 0.69
80, 0.73
90, 1.17
100, 1.87
110, 2.81
120, 4.00
130, 5.59
140, 7.54
150, 9.97
160, 12.52
170, 16.58
180, 20.55
190, 25.74
200, 32.17

グラフにするとこんな感じになりました。MAX=1000を予想すると絶望的です。

Cpptemplatecompiletime

結論:C++コンパイラは頑張り屋さん

ToDo:もっと早く計算させる方法を勉強する

enum じゃなくって typedef 使えば早くなるのかなぁ。。。

苦手なので誰か教えてください(><)

2009年12月 3日 (木)

ポスドク向けIT業界セミナーを開催します

事業会社で働くことを考えている情報系のドクターコースの学生、研究者に向け、株式会社ディー・エヌ・エーと株式会社プリファードインフラストラクチャー、サイボウズ株式会社がIT業界で働くという事に焦点をあてたセミナーを開催します。

■ポスドク向けIT業界セミナー(共催:DeNA×PFI×Cybozu)

日時:12月20日(日) ※盛況のうちに終了いたしました。ありがとうございます。
場所:サイボウズ株式会社 本社

《第一部》

17:00~
  「事業会社で働くということ」
    山本 泰宇(サイボウズ株式会社)

17:30~
 「研究者と開発者/リサーチャーの生態」
    岡野原 大輔(株式会社プリファードインフラストラクチャー)

18:20~
    DeNA様 エンジニアによる講演

《第二部》※ 第二部は自由参加です

19:00~ 座談会

当日発表するエンジニア以外にも、現役で活躍するポスドク出身のエンジニアが参加します。少人数に分かれて、将来のこと、就活のこと、技術のこと、何でもご相談ください!

Cybozu2010postdocter

サイボウズ株式会社では、2008年6月よりポスドク採用枠を新設し、比較的有利な条件でソフトウェア開発エンジニアの募集を行なっております。

【募集要項】ソフトウェア開発エンジニア(博士後期課程出身者)
2010年4月からの入社を希望される方が対象と記載されていますが、ポスドクの方であれば、特に入社月日にはこだわりません。


アカデミア業界における研究の世界とは違う部分もありますが、実際に世の中やユーザに使われる役に立つ基盤ソフトウェア製品の開発に携わることができ、大きなやりがいを感じられることができるのが大きな特徴です。

もしも近くに興味のありそうな人がいらっしゃいましたら、ご紹介いただけますと有難いです。

2009年10月30日 (金)

就活生向けIT業界セミナーで講演します

最近リクルートスーツに身を固めた学生さんと電車ですれ違うことが多くなった今日この頃、みなさんはいかがお過ごしでしょうか。

サイボウズでは今年も就活生向けの「IT業界セミナー」を開催するのですが、ひとくくりにIT業界と言うのではなく、いろんな会社があって、その中でも社員によっていろんなワークスタイルがあり、広く業界のことを知ってもらおうということで、DeNAさん、はてなさん、P&Aラボさんの3社さんと共催して、全国数ヶ所(東京×2回、大阪×1回、松山×1回)でセミナーを開くことになりました。

■東京会場(共催:DeNA×サイボウズ、2回開催)

 日時:11月29日(日) 盛況のうちに終了いたしました
 場所:DeNA本社

 日時:12月20日(日) 盛況のうちに終了いたしました 
 場所:サイボウズ本社

 13:00 IT エンジニアの可能性 ~ サービスやビジネスを自ら生み出す力
    能登 信晴(DeNA)
 13:40 ITエンジニアと株式会社の付き合い方(恋愛編)
    竹迫 良範(サイボウズ・ラボ)
 14:30 IT業界のヒ・ミ・ツ
    田縁 英治 or 佐藤 学(サイボウズ)
 15:00 座談会

Cybozu2011tokyo


■松山会場(後援:四国情報セキュリティ勉強会連絡会)

 日時:11月22日(日) 盛況のうちに終了いたしました
 場所:ニューグランドビル松山

 14:30 エンジニアから客員企業家へ
    尾藤 正人(P&Aラボ)
 15:10 ITエンジニアと株式会社の付き合い方(恋愛編)
    竹迫 良範(サイボウズ・ラボ)
 16:00 IT業界のヒ・ミ・ツ
    門屋 亮 (サイボウズ松山オフィス)
 16:30 四国の情報セキュリティ勉強会について
    まっちゃだいふく(IT勉強会カレンダー)
 16:40 座談会

Cybozu2011matsuyama

■大阪会場(共催:株式会社はてな×サイボウズ)

 日時:12月5日(土)
 盛況のうちに終了いたしました
 場所:大阪ドーンセンター

 14:30 ボクがはてなを選んだ理由~グローバルなサービスを求めて~
    栗栖 義臣(はてな)
 15:10 ITエンジニアと株式会社の付き合い方(恋愛編)
    竹迫 良範(サイボウズ・ラボ)
 16:00 IT業界のヒ・ミ・ツ
    佐藤 学(サイボウズ)
 16:30 座談会

Cybozu2011hatena

IT業界の最先端で活躍しているエンジニアは何を考えどう生きているのか!?
IT業界でエンジニアとして働きたいと思っている人には是非参加してほしいセミナーです。

昨年までは、サイボウズ・ラボの畑、奥、蓑輪、天野が、各地で講演しましたが、今年はサイボウズ・ラボの竹迫が全国を飛び回ります。今回の講演のためにニンテンドーDSで新しいソフトを買って修行して参りたいと思います。

たぶん初めての就職活動ですと、いつから何をし始めればよいのかよくわからないと思います。言われるがままに自己分析をしてみたり、将来のライフスタイルを設計してみたり、企業分析をしてエントリーシートをひたすら書いて応募してみたりと、あわただしく動き始めていると思います。

とりあえず、ここではそんな堅苦しいことは一切なしに、気軽に参加していただければと思います。

参加無料、スーツ禁止です!

※ 万が一リクルートスーツでご来場いただいた場合は入場をお断りする場合がございます。

座談会は希望者のみの自由参加ですが、(会社からは怒られるかもしれませんが)本音でみなさんと楽しくお話しできればと思います。

よろしくお願いします!

2009年8月15日 (土)

プログラミングコースOS 自作組

プログラミングコースOS<br />
 自作組
いよいよ明日は最新成果報告会です。大橋検事さんとnaoyaさんの特別講義も終わり、はせがわさんと一緒にBOFの一コマをプロデュースしてきました。

2009年8月12日 (水)

セプキャン2009 開始

セプキャン2009<br />
 開始
はじまりました。全員集合です。

2009年7月30日 (木)

第30回U-20プロコンの応募締切は8/3(月)です

平成21年度第30回U-20プログラミング・コンテストの作品募集開始について(METI/経済産業省)のプレスリリースにあるとおり、応募締切は8/3(月)となっています。

昨年は「未発表」の作品に限っていましたが、今年は過去1年以内に公開したオリジナル作品も審査対象に含まれることになりました。ブログやネット上で複数の人とコミュニケーションをとりながらプログラムを作り上げていくオープンな開発スタイルも一般的になってきたと思います。応募資格に該当する方で既に何かしらのプログラム(作品)を持っている方はぜひこの週末で書類を揃えてコンテストに応募してみてください。電子メールでの応募も可能です。たくさんの応募をお待ちしております。

■U-20プログラミング・コンテストとは
プログラマとしての「才能の芽」の発掘を目的に毎年開催している、プログラム提出型のコンテストです。今年で30回目を迎えます。
U20procon30th

■主催
情報化月間推進会議(経済産業省、文部科学省、内閣府、総務省、財務省、国土交通省)

■参加資格
日本国内に居住する、平成元年(西暦1989年)4月1日生まれ以降の方(団体の場合もチームメンバーの参加資格は上記のとおりとなります。)

■募集部門(作品はどちらか1部門にご応募ください。)
◇個人部門
  1人で制作した作品を対象とします。
◇団体部門
  複数人(チーム:人数制限は無し)で制作した作品を対象とします。

■応募締切
平成21年8月3日(月)必着

■募集内容
あなたのユニークな発想や培ってきた技術力を活かした、未発表または過去1年以内に公開したオリジナル作品を募集します。特にジャンルやシステム方式は問いません。

■プログラミング言語
特に問いません。

■開発形式
* プログラミング言語による直接開発のほか、市販ライブラリや 開発キット、オーサリングツールなどのソフトウェアも使用可。
* 一般的なマシン環境で動作/再現できるものに限ります(携帯電話で動作/再現できるものは審査の対象になります。スーパーコンピュータ、汎用機、ゲーム機、家庭用ゲーム機など、特別なマシン環境上でのみ動作/再現するものは不可)。
* 動作プラットフォームとしては、Windows、Mac OS、Linuxを想定しており、それ以外のプラットフォーム上でのみ動作する作品については、事前に事務局にご相談ください。

昨年度のU-20プログラミング・コンテストでは、Lispのマクロを持ったPython風のインデントによってブロックを表す自作のプログラミング言語Cyanを作った高校生の林拓人さんが経済産業大臣賞を受賞しました。今年も引き続き私も審査委員の一人として参加させていただいていますが、いまから若い人の応募作品を見るのを楽しみにしています。