Hatena::ブログ(Diary)

DeNA 技師のメモ このページをアンテナに追加

2010年 02月 26日

Technology of DeNA: DeNA エンジニアブログの開設

DeNAエンジニアが共同執筆の形で進めるエンジニアブログを用意しました。

http://engineer.dena.jp/

私が何か執筆する際もそちらの方に載せますので、RSS リーダーやブックマークの登録を変更していただければ幸いです。3/16 開催予定の DeNA テクノロジーセミナーご案内も掲載されています。すでに申し込みが定員を超えているようですが、当日は ustream での中継も予定しています。

もうひとつ、DeNA エンジニアの仕事やワークスタイルをお伝えする特集コンテンツをコーポレートサイト内に用意しました。現在公開している文章は、「新技術の取り込み」*1を除いて私が執筆しました。エンジニアが大切にしていることというのは、エンジニア自身が書いた方が微妙なニュアンスまで伝わると考えて書きました。今後エンジニアのインタビューも順次追加予定です。もしよろしければ、合わせてこちらもお読みいただければと思います。

*1:このページは hidek さん執筆です

コピー時計コピー時計 2014/03/04 10:16 ロレックス時計の全く新しい日誌型レディースファッションの31ミリメートルの金鋼のシリーズは黄金、プラチナと永久不変のバラの金などの多種の材質を持って、組み合わせる何モデルもの表面設計と装飾は選択を供えます。使って精妙に烙印が濃い色のロジウムの質あるいはシャンパーニュの色、ピンク色の表面の上でにテーマの図案を求めて、この精密なサイクルコンピュータのために並み外れている設計の美感を持ってきます。

1.コピー時計通販: http://www.tokeishoppu.com/

2.ロレックス腕時計コピー: http://www.tokeishoppu.com/rolex_b20

2008年 11月 21日

エンジニア志望学生向け講座と、近況

なんかここで告知しかしてなくて恐縮なのですが、今回もその話題です。

これから就職活動を始めようというエンジニア志望学生に向けて、「エンジニアのための IT 企業論」という講座を DeNA で開催します。

僕が就職活動したのはもう 10 年以上前なんですが、当時のことを思い返してみると、「IT 系のお仕事」というバックリしたイメージで、電機メーカーもゲームメーカーも SI も通信キャリアもだいたい同じようなもんだと思っていました。そもそも DeNA のようなウェブ/ケータイサービス専業の会社も無い頃でしたが。

最終的にコンピュータの上でプログラムが動いて何かいい結果が引き起こされるという点では同じはずなのですが、IT 系エンジニアの仕事というのは幅広く、想像以上にまったく異なった仕事をしています。金融系の基幹システムを開発している人と、モバゲータウンを作っている人では、同じ IT 系エンジニアでもまったく別ものと言えるくらい仕事のやりかたや、重視することが違ったりします。僕が経験した通信キャリアの研究所の仕事もまったく違うし、おそらく同じ「研究所」という名前で実質 SI をやっているところとも違うと思います。

最近だと、「受託開発」と「サービス運営」で全然違うということがブログなどで言われるようになりましたが、まだ実務を知らない学生にどれだけそういう違いが伝わっているのだろうと思います。実際、面接でお会いしてみるとあまり区別して捉えていない学生の方も多いです。

ということで、今回の講座ではそのばっくりとした「IT 系のお仕事」を並べて分類してみるということをやってみようと思います。まずは参加者のブログで「ニュートラルではない」と dis られない程度に (笑) フェアに業界や業務を分類して紹介します。ここでは、SI や IT コンサルなどの仕事や、電機メーカーやゲームメーカーなども含めたいと思います。

で、その後に、具体例としてサービス運営者である DeNA の仕事の現場がどんな感じかを、アプリケーションエンジニアインフラエンジニアに分けて紹介します。もし DeNA のような仕事のスタイルをとるサービス事業者でエンジニアをやるなら、入社前にどんなスキルを身につけるようにした方がいいかについても触れる予定です。

会社説明会では無いので、DeNA 自体に興味がある必要はありません。「これから IT 系の技術者として就職活動をしよう」という学生に対して、就職活動前に知っておくと役に立ちそうな情報を提供するのが開催意図です (もちろんちょこっとは DeNA に興味を持ってもらいたくてやるわけですが)。

初回は来週 11月 27日 (木) 12:00-14:00 に初台DeNA オフィスで開催します。同内容で、来年にかけて他に 2 回程度開催する予定です。申し込みは以下の URL からお願いします。

http://student.jobweb.jp/company/show/company_id/553/type/entry/entry_id/1877

なお、初回の前半部分、業界分析のところは私 noto が担当します。

==

なんか全然技師自身が技術話をするという内容になっていなくて肩身が狭いのですが、僕の近況を話すとあいかわらずモバゲータウンの中の検索サービスの開発をしています。

当初ちゃちゃっと Perl らしくクローラ作ろうと思って MySQLPerl の poll を使ってクローラを作ったのですが、やはり DBボトルネックになってしまうので、完全にデータを各サーバに分散させ、サーバを増やせばどこまでもスケールするというアーキテクチャに変更しました。今は主に Tokyo Cabinet をデータ管理に使っていて、サーバ間で共有するものはほとんど無い、という状況になっています (一時期 SQLite を使おうとしてハマりました...)。

ある程度いいものができたと思えたら、ここか、どこかの勉強会で紹介したいと思っているのですが、今のところ全然納得がいっていないので、そういう話ができない (というかする気にならない) という状態です (IIR 輪読会のクローラの章の時は話すかも)。

ではまた!

2008年 08月 22日

WEB+DB PRESSMobaSiF の記事が gihyo.jp で公開

以前ご紹介した WEB+DB PRESSMobaSiF の記事が gihyo.jp で読めるようになりました。

http://gihyo.jp/dev/feature/01/mobasif

全 5 回で、毎週金曜日に追加されていく予定です。

本日公開の第 1 回では、紙面の制約で削除した「ケータイ端末の世代分類」を追加してあります。雑誌記事との大きな違いはここだけで、第 2 回以降はほぼ (=各回の最初と最後の部分以外) 同じです。

2008年 08月 21日

モバゲータウンの秘密開発室

モバゲータウンには、ちょっと前から「秘密開発室」というものがあり、開発中の機能がこっそり公開されています。

当面秘密なのかなとずっと思っていたのですが、今日秘密開発室のメンバーに聞いてみたらここで紹介していいということなので、到達方法をご紹介します。

モバゲータウンケータイトップページから「質問広場」を選び、「カテゴリから探す」から「趣味・スポーツ > 趣味 > ゲーム」とカテゴリを下ると「モバゲータウン・」というカテゴリ表示があります。一瞬文字化けか何かと思っちゃいますが、その「・」(= 中黒) をクリックすると「秘密開発室」に入れます。

なお、今のところ秘密開発室に入るためには会員登録が必要で、PC 版からは利用できないようです。

Lightweight Language Future でフレームワーク

2008-08-30 (土) に「なかの ZERO」で開催される Lightweight Language Future「サイコー?!フレームワーク」というセッションMobaSiF エヴァンジェリストとして参加します。ちなみに T シャツ無しチケットはまだ残っているようです。

2008年 06月 23日

WEB+DB PRESS Vol.45 に MobaSiF の解説記事

明日 6/24 (火) 発売の WEB+DB PRESS Vol.45

(そういえば「日本 Ruby 会議 2008」の会場で先行発売されていましたね)

http://gihyo.jp/magazine/wdpress/archive/2008/vol45

の特集 1 が「イマドキケータイ開発実践入門」というテーマで、その中の「フレームワーク MobaSiF を使おう その 1 / その 2」の記事 (全 16 ページ) を執筆しました。最初に、ケータイ向けウェブアプリケーション開発特有の面倒な点 (端末認証、機種判定、絵文字処理など) とそのあたりのケータイキャリアごとの仕様の違いを説明し、その後、MobaSiFインストールと設定方法、MobaSiF ならケータイ特有の面倒なことをこんな風にかんたんに処理できますよという説明をしています。よかったらぜひ手に取って読んでみてください。

MobaSiF に依存しない「ケータイならでは」の仕様のまとめ部分は、当初もう少し丁寧に説明する予定だったのですが、紙面の制約があり簡潔な形に変更しました。じゃあここにフルバージョンを掲載しようかなと思っていたのですが (先日紹介した「HTTP リクエストヘッダフィールドと環境変数の関係」の話もこの記事から派生してます)、近く技術評論社さんのサイトで紹介していただけることになりました。公開が決まりましたら、またお知らせします。

DeNA でも Ruby 使っているんですか?

DeNA はおととい、昨日と開催された 日本 Ruby 会議 2008 のスポンサーをつとめた。

僕自身もおととい参加してきたが、何人かの人に「DeNA でも Ruby 使っているんですか?」と聞かれた。

答えは速攻で「No」。

ビッダーズ EC プラットフォーム (= BEP) 開発チームには一部の機能のプロトタイプRuby on Rails で作っている花部さんという人がいるけど、その後サービスに組み込む際は Java で書き直しているので、実サービスには今のところ使われていない。

DeNA には Innovation Lab. という制度があって、エンジニアとして勤続 2 年を経過すると 1 ヶ月間、稼働時間の 100% を使って自分の希望する研究ができる。前述の花部さんは、近々このラボで BEP の社内ツールを Rails ベースのものに置き換えるための準備をするらしい。1 日目午前の発表でも説明があったように JRuby では Java資産の活用もできるらしいし、これはとても楽しみ。

一応解説しておくと、DeNA でもっとも歴史の長い BEP (PC 版ビッダーズの他、ポケットビッダーズau ショッピングモール, モバデパなど含む) は Java (+ Oracle) で、モバオク以降のポケットアフィリエイト, モバゲータウン, モバコレなど主に携帯向けのサービスは Perl (+ MySQL) で開発されている。

じゃあ、なぜ Ruby 会議のスポンサーになったかというと、花部さんのような取り組みもあるし、 スポンサー紹介ページ には

株式会社ディー・エヌ・エー (DeNA) はケータイ総合ポータルサイトモバゲータウン」の他、「モバオク」「モバデパ」「ビッダーズ」「ポケットビッダーズ」などのショッピング・オークションサービス、「ポケットアフィリエイト」のような広告ネットワークなどを提供している企業で、今後も新サービスを創出していきます。

これらのサービス競争力の源泉には、自社エンジニアの技術力とオープンソースソフトウェアの活用があります。「考えた人が作るのが一番速い」という考えのもと、エンジニアがサービス企画段階から関わり機動性の高い開発を実現、低コストでのスモールスタートが可能でありながら、ヒット時の高トラフィックにも耐えられるスケーラビリティも確保しています。

DeNA では開発言語として主に Perl, Java を利用していますが、Ruby の動向にも注目しており、Ruby コミュニティを応援すべく日本 Ruby 会議 2008 のスポンサーとなっています。

と書いた。

要は、Ruby コミュニティを応援しつつ、Ruby コミュニティエンジニアに「DeNA というおもしろい会社があるよ」ということを知ってもらいたいということなんだけど、どれくらいそういう認知をしてもらえたんだろう? うちで今すぐ Ruby で開発できるわけではないし、あまり直接的なアプローチじゃないから、正直自分たちでも気になるところ。

それはさておき、Ruby 会議に出たらいい刺激をもらい、今のところ自分で Ruby を使う気は無いにも関わらず、会場で先行発売されていた『初めてのRuby』という本を買ってきてしまった。というのも、発表内容を聞いていたら、我々が使っている Perl には Perl らしいプログラムの書き方というものがあるように、Ruby には Ruby らしい書き方があり、Perl と比較しながらその「Ruby らしさ」を把握してみたいなという興味が出てきたから。

僕個人としては、長くプログラミング言語に対するこだわりというのはあまりなかった。「実行スピード命」の時は C、HTMLスクリプト埋め込んでかつ Apache モジュールを使って fork 無しっていいな *1 という時には PHPビッダーズの開発に合流したら Java、ポケットアフィリエイトの開発に合流したら Perl って感じで、自分で選んだ時もあるし、チームに合流する際はそのチームで使われている言語を使うこともある。要は、必要な結果を出すのに必要な開発ができればまぁいいんじゃない、という考え方だった。

とはいえ、1 年前から YAPC に参加し、そういう場に行くと他言語と比較してPerl という言語を捉え直す機会が出てくる *2。あとは『ハッカーと画家』という本も、自分が使っているプログラミング言語をあらためて考え直す、もっと言うとプログラマーとして攻めの姿勢でいくための武器として捉え直すきっかけになった。振り返ってみると、当面使うつもりもない言語の入門書を読んでみようと思うようになるまでにはこういう影響を受けてきたんだなと思う。

まぁあまり結論らしい結論はないんだけど、こうなってくると単にプログラムを書いて結果を得る (あるいは、必要としているシステムを開発する) だけでなく、プログラムを書きながらそのプログラミング言語哲学・思想を味わうみたいな面も出てきて、よりプログラムを書くのが楽しくなってくる。人によっては「何をいまさら」「お前は何年プログラム書いてきたんだ?」という話かもしれないけど。

Perl DBI: MySQL から SQLite への移行

地味なんだけど、同じ Perl DBI なのに MySQLSQLite で挙動が違っていてハマった点:

  • MySQL で SELECT した後、SELECT の取得結果があるかどうかをステートメントハンドルオブジェクトの rows メソッドを使い「if ($sth->rows)」などでチェックしていたが、SQLite だとこれが効かず、SELECT できた場合でも 0 が返る。

『入門 Perl DBI』によると

SELECT 文に対しては、すべてをフェッチすることを除いて、返される行数を知ることはできない。(中略) したがって、SELECT 文に rows メソッドや DBI::rows を利用することは勧められない。

とのこと。MySQL の時はたまたま使えているということか。

  • SQLite の場合、$dbh->commit や $dbh->disconnect する前に、SELECT に使ったステートメントハンドルに対して $sth->finish しておく必要がある。そうしないと、

DBD::SQLite::db commit failed: cannot commit transaction - SQL statements in progress(1)

などというエラーが出る。

(追記, 2008-06-24)

$sth->finish してもダメな場合もある。

http://d.hatena.ne.jp/charsbar/20070621/1182398149

にある通り undef $sth する必要あり。

http://rt.cpan.org/Public/Bug/Display.html?id=22688

には原因も説明されている模様...

*1:言い換えるとプロセスの永続化。

*2:発表中他の言語の悪口を言う人もいて、そうなると「なぜそういう風に言うんだろう?」と気になって考えるようになる。悪口とはちょっと違うかもしれないけど、先日の Ruby 会議の基調講演でまつもとさんは sed, awk の流れで「Perl というお化けが出てきた」と話していた。

SS-COPYBAGSS-COPYBAG 2012/06/21 22:37 送┃  料┃  無┃  料┃ss-copybag.com
━┛  ━┛  ━┛  ━┛
シャネル財布
品番: CH-C 001 価格:4500円 品番: CH-C 002 価格:4500円
品番: CH-C 003 価格:4500円 品番: CH-C 004 価格:4500円
品番: CH-C 005 価格:4500円 品番: CH-C 006 価格:4500円
品番: CH-C 007 価格:4500円 品番: CH-C 008 価格:4500円
品番: CH-C 009 価格:4500円 品番: CH-C 0010 価格:4500円
商品は全く写真の通りです。
激安、安心、安全にお届けします.品数豊富な商
スピードを発送するのは速い!
4-6日にきっと引き渡す.
税関没収する商品は再度無料で発送します。
期待,ご注文の方は!
http://www.ss-copybag.com/chc.htm