メイン

Office 7 アーカイブ

2008年04月16日

Office 開発の体制について

サイボウズ本社の田中と申します。
今回はサイボウズ Office の開発体制をご紹介いたします。

現行製品であるサイボウズ Office 7 の開発と、そのメンテナンス、後継バージョンの開発については私のチームで行っております。サイボウズ・ラボには現行ラインの各種の制限を解消する目的で、抜本的な研究開発(=Office X)を依頼しております。

それぞれのチームの取り組みは今後少しずつお知らせできると思います。
どうぞよろしくお願いいたします。

2008年04月24日

3倍速ければあの人にも使ってもらえる?

田中です。

Office7の開発責任者を務めて早1年になります。今回はその開発項目のなかから、Office7(やデヂエなど)の高速化について、説明します。

実は Office7 は Office6 と比較して2~5倍応答速度が向上しています。パターンに依りますが、開発中の計測では10倍以上速いケースもありました。


このチューニングの成果は Office のデータをガルーンに変換するコンバータにも応用されて、なんと24倍も高速化した社内検証結果がでています。


その秘密は... 簡単に説明しますと、ディスクへのアクセス数を大幅に削減することに成功したのです。Office6/7やデヂエメールワイズCyDE1 という、弊社独自のオブジェクトデータベースを使用しています。オブジェクト単位に取り扱えて便利なのですが、ディスクアクセスが細粒度になってしまっていたのです。

このチューニングは今後デヂエ等の製品にも適用されますので、私自身、結果が楽しみです。

成熟した製品を発展する際は機能改善が中心になりますが、パフォーマンスの低下で断念することもしばしばありました。Office7ではまずその懸念が解消されましたので、次は ガッツン と機能改善するつもりです!

2008年05月07日

UI改善への取り組み

田中です。

Office 7でトップページのスケジュール週表示、個人のスケジュール月表示で表示の部分更新を取り入れたのですが、こうした部分的な表示の更新は今後も積極的に取り入れていきたいと考えています。

ただ、製品の画面については機能とデザイン的な要素のバランスが重要になるので開発の中でも賛否両論分かれて熱のこもった議論になることが多いところです。
そこで現在の開発ではUI評価版として新規の画面や変更の大きな画面を先に実装して、社内から自由にアクセスできる環境へ公開し意見を募るということを行っています。
目的は実装した機能、画面が意図したように使われるか、理解されるかどうかを確認するということとして、公開当初は敢えて機能の詳細を明かさずにユーザービリティテストを実施して、ブラッシュアップしていくというやり方をとっています。

まだ画面をお見せできないのが残念ですが、「これまでよりも1日30分、自分の時間が増える」ということを目標にして、より簡単に、より効率的に毎日使えるソフトウェアを目指して開発を進め、考えるものに日々近づいていっていると感じます。

また、効率を上げるだけでなく
「せっかく入力したのに、エラーで消えたー!!!」
なんていうイライラからも解放されるようにPOST処理をAjax化したり、ブラウザのストレージを使ったりして対応を検討しています。なかなか気付かれない機能ではあるのですが、こうした機能の積み重ねがあって初めて心地よさって感じるものなんだと思います。

直感的に使える、というところからもう一歩進んで、直感的に使ってみたいと感じる、というものなるよう日々精進していますので、皆さんお楽しみに!

2008年05月14日

Office 7 記念Tシャツ

魂まで Office 7 に売り渡している新卒2年目の岡田です。

昨年夏にOffice開発チームに配属されてまもなく、Office 7 のリリースを迎えました。
新しい製品がリリースされると、お客様向けに記念品を作ったりすることはよくあると思いますが、Office 7 のリリースでは開発メンバー向けにも記念品を作ってみました。

サイボウズ Office 7 記念Tシャツ

正直なところ、社名がドドーンと入ったTシャツなんかいつ着るの・・・?と思ったのですが、google とのマリオカート対決に着ていく者もいれば、リリース当日の朝これを着て出社するつわものもいました。
なんだかんだで私自身も自宅付近の飲み屋で着用したりしています。

リリース後の打ち上げもそれはそれで楽しいのですが、数少ない開発メンバーだけが手に入れることのできる記念品があるというのも嬉しいものです。
たとえパジャマになる運命だとしても…。

2008年05月19日

Office 7 インストーラー

新卒3年目の梶田です。

Office 7 の開発に携わること早1年、今回は私がOffice 7 開発で最初に携わったインストーラーにまつわるちょっとした小ネタを紹介させていただきます。頭の片隅にとどめておくとふとした時に役立つかもしれません(ごく稀に)。

インストール時にオプション製品を選択しなくても大丈夫!?

Officeシリーズではイントールの最後の設定画面で、インストールするオプション製品を選択することができます。これを選択せずにインストールしてしまった場合、再度インストールし直さなければいけないのかという質問を受けることがあります。

そんなことはありません!

「システム設定」 → 「アプリケーションメニュー」から、いつでもオプション製品の追加を行えます。

Linux版でWebサーバなしインストール!

インストールの起動後にWebサーバーが起動されているかどうかのチェックを行い、インストールされていない場合、同梱されているWebサーバのインストールを促すメッセージを出力しています。この時、どうしても同梱されているWebサーバをインストールしないで製品だけをインストールしたいと思ってもエラーで弾かれてしまい、前に進めません。

こんな時、インストール実行ファイルに

  -force

という引数をつけてやることでWebサーバーのチェックをスッ飛ばして製品だけのインストールが可能になっちゃいます。つまり、以下のようにコマンドラインで入力すればOKです。

  sh ./cbof70ja.bin -force

いかがでしょうか。今後も、ちょっとした裏技を紹介していければと思います。

2008年05月23日

記念Tシャツのプレゼント

Tシャツ担当の岡田です。

先日の記事「Office 7 記念Tシャツ」に、「このTシャツほしい」というコメントをいただきました。
在庫を確認したところ、なんと白色が1枚だけ余っていました。

そこで!
限定1名の方に抽選でプレゼントしたいと思います!!

ご希望の方は件名に「Tシャツ希望」と記載して、下記のメールアドレス宛にメールをお送りください。(名前、住所等は一切不要です。)

宛先メールアドレス:mail.gif(お間違えのないようお気をつけください)
応募締切:2008年5月30日(金)

当選した方には、お送りいただいたメールアドレス宛に後日メールでご連絡させていただきます。
※いただいたメールアドレスは抽選と当選のご連絡のためにのみ使用します。

たくさんのご応募をお待ちしております!

2008年06月13日

サイボウズ Office に登場する人たち

サイボウズ Office の PM を務めている山田と申します。初めまして。

PMとはプロダクトマネージャーの略で、サイボウズの各製品・サービスのコンセプトやビジネスプラン、そして製品要件を決める責任者です。今回は私が決めている「サイボウズ Office」の要件定義について、少々解説いたします。

「サイボウズ Office」の要件を考える上で、登場人物(「~が~できる」の「~が」の部分)を考えるわけですが大まかに以下のように考えています。

  • システム管理者
    (「サイボウズ Office」システムに責任を持つ人)
  • 運用管理者
    (「サイボウズ Office」のアプリケーションの運用を行う人)
  • ユーザー
    (「サイボウズ Office」を使う人)

個人に提供するサービスであれば「ユーザー」を中心に考えるところですが「サイボウズ Office」の場合には、「システム管理者」を中心に考えています。
(もちろん「ユーザー」は、「システム管理者」「運用管理者」も含みます。)

「サイボウズ Office」は、「誰でも使いやすい」という評価をいただいていますがそれは、サイボウズの代わりに社内で「サイボウズ Office サービス」を展開している「システム管理者」の方々のおかげだと考えています。

そういう方々が、苦労しないように。
そういう方々が、使っているユーザーから感謝されるように。
そういう方々が、「情報を管理する」能力が向上するように。

そんなことを考えながら、要件を決めております。

2008年07月18日

日本語ファイル名の悩み

田中です、お久しぶりです。

Webアプリケーションを開発していると仕様としてRFCを参照することが頻繁にあるのですが、実際の開発の中ではRFCに準拠しつつ個別にブラウザの癖を吸収しつつ進めることになって、なかなかRFCに準拠すればそれで問題なく動作するということにはなってくれません。
その中でも長い間悩まされているのが、ファイルダウンロード時の日本語ファイル名の付け方です。問題の元にあるのはファイル名に使われる文字列のエンコード形式を指定する方法がRFCで定義されていなかった、というところにあると思いますが、これがなかなかの曲者です。
ファイルダウンロード時の保存ファイル名を決める方法は、

  1. URLにファイル名を付加する
  2. Content-Dispositionヘッダでfilenameを指定する
の2通りの方法がありますがブラウザによってファイル名の解釈の仕方、挙動が全然違うのです。
  1. IEの場合 左クリックして保存する場合も、右クリックして対象を保存する場合も共にファイル保存ダイアログが開かれる前にサーバーへアクセスし、Content-Dispositionヘッダがあれば必ずこれを参照します。 ただしContent-DispositionヘッダのfilenameはURLエンコードされたUTF-8文字列として解釈しますが、拡張子のない場合にはURLデコードされないようです。生のShift_JISコードで指定されているとShift_JISのままファイル名を解釈します。
  2. FireFoxの場合 左クリックして保存する場合には保存前にサーバーへアクセスして、Content-Dispositionヘッダがあればこれを参照します。しかし右クリックして対象を保存する場合にはサーバーへアクセスせずにURLから保存するファイル名を決定します。Content-Dispositionヘッダのfilenameはそのままの文字列で保存ファイル名として使われ、RFC2231形式に対応している。

少し上に「ファイル名文字列のエンコード形式を指定する仕様がない」と書きましたが、現在はRFC2231という仕様がありFireFoxはこれを正しく解釈してくれるので、FireFoxからのアクセスの場合にはこの形式でファイル名をしているサービス、アプリケーションも現在は多いようです。
私たち開発者が頭を悩ますのは、上のようにIEはファイル名の解釈で独自の挙動を持っており、IEでもFireFoxでも正しく日本語ファイル名を解釈させようとするとContent-Dispositionヘッダのfilenameに生のShift_JISで指定するということになってしまうからです。RFCでは非ASCII文字をそのまま送信する仕様などありませんので違反といわれてしまっても止む無しという感じにもなります。
さらに困ったことには、Excel や Word には解釈できるURLの長さや、開く際のファイルパスの長さに制限を持っていて、日本語ファイル名をUTF-8でURLエンコードした場合にはURLやファイル名が長すぎてしまって Excel や Word などで開けなくなるということが発生します。このためにファイル名を切らざるを得ない場合なども出てきてしまい日本語に限定すると1文字を2バイトで表せるShift_JISの方がファイル名が切れにくくなるのです。

利用する立場からすると、保存したファイルがそのままダウンロードできるということはごく当たり前のことなのですが、こんなちょっとしたことですごく頭を悩ませたりすることになるのです。
いつかRFC2231で統一されるときが来るとは思うのですが、まだまだしばらくは悩ましい対応していくことになるのだと思います。


参考

  • ファイルのダウンロードダイアログで表示されるファイル名の命名規則

  • [XL2002] 長い URL から Excel ファイルが開けない問題

  • 長いファイル名を持つファイルを開けないで、 変換ファイル ダイアログ ボックスが Word 2007 に表示されます。

  • [WD2000]長いURLからWord文書が開けない問題
  • 2008年08月01日

    はじめまして

    はじめまして、 8月1日より、Office開発チームに配属された新人の梅田と申します。

    まだ配属されたばかりで、実際の開発にはこれから少しづつ参加していくことになりますので、
    皆様にOffice開発の話題をお伝えするにはもっと多くのことを先輩方から吸収していかなければなりません。
    そこで、今回はOfficeの開発に飛び込んできた私の意気込みをお伝えさせていただきたいと思います。

    私が以前アルバイトをしていた某IT会社では、Office6を導入していました。
    その会社では、Officeのスケジュール機能を使い、休みの申請をするようになっていました。
    しかし、社内でのコミュニケーションは通常のWebメールで行っており、Officeの他の機能は一切使われていませんでした。
    この時の私はグループウェアでどんなことができるのかを全く知らず、Webメールを使ってコミュニケーションするスタイルが当たり前だと思っていました。

    実際にグループウェアの良さや便利さを知ったのはサイボウズに入社してからです。
    グループウェアにはたくさんの機能があり、一から一つ一つ学んでいかないといけないため、使い始める前は少し抵抗がありました。
    しかし、実際に使ってみると自分のスケジュールがすぐに確認できたり、空いている会議室を簡単に押さえることができたりと、
    非常に便利なツールだということに気づきました。Webメールで行うよりも円滑に社内の人とコミュニケーションを行うことができ、
    今まで自分が当たり前だと思っていた会社のコミュニケーションスタイルを覆すツールでした。

    既にOfficeを導入いただいているユーザー様も多くいらっしゃいますが
    まだ、Officeに触れる機会がなかったり、知っていただくチャンスがなかったりして
    私の感じる便利さをお伝えできていない方々も多くいると思います。

    そこで私がOffice開発でやっていきたいと思っているのは、ユーザー様に便利さやメリットが伝わりやすく、
    今よりももっと「使ってみたい」「使ってみよう」と思っていただけるような製品へとOfficeを進化させていくことです。
    お客様に便利に使っていただくのはもちろんのことですが、
    使うという第一のステップをより多くの方に踏んでいただけるように励んでいきたいと思います。

    次にこのブログを書く機会がありましたら、皆様の希望に応えることができるような
    Office開発のお話をお伝えしたいと思います。
    これからも宜しくお願いします m__m

    2008年08月22日

    「8」にちなんで UTF-8

    岡田です。

    現在サイボウズでは 「8」にちなんだキャンペーンを計画中 なのですが、せっかくなのでこのブログでも「」にちなんで UTF-8 に関するお話をさせていただこうと思います。

    昨年 Office 開発グループに配属され、自由課題で Office に Ajax アプリケーションを実装していた時の話ですが、Ajax で日本語のデータを送信すると文字化けが発生しました。

    Ajax で日本語のデータを送信する場合、EncodeURIComponent() 関数などでURL エンコードする必要がありますが、この関数では自動的に UTF-8 でエンコードされます。
    しかし、Office のデータベースの文字エンコーディングは Shift JIS ですので、そのまま保存して、そのまま取り出して表示すると文字化けが発生する、というわけです。

    文字化けを発生させないためには、JavaScript で Shift JIS に URL エンコードできるようにするか、CGI で UTF-8 から Shift JIS に文字エンコーディングを変換(もしくはその逆を)できるようにするしかないのですが、どちらもなかなか大変な処理になってしまいます。

    • JavaScript で Shift JIS に URL エンコードする方法
      Shift JIS のコード表を用意してShift JIS コードに変換する方法や、 Unicode から Shift JIS のマッピング表を用意して charCodeAt() 関数で Unicode に変換した後、Shift JIS に変換する方法などが考えられます。 しかし、いずれの方法でも巨大な表を常に読み込まないといけないので、パフォーマンスに影響が出てしまうのは避けられないところです。
    • CGI で UTF-8 から Shift JIS に文字エンコーディングを変換する方法
      PHP には mb_convert_encoding() という気の利いた関数が用意されているのですが、C++ には用意されていません。もちろん、Windows では MultiByteToWideChar() 関数とWideCharToMultiByte() 関数を、Linux では iconv を使うという手もあります。 しかし、自分たちで一から作っておいた方が何か問題があった時にメンテナンスが楽なので、Unicode から Shift JIS のマッピング表を用意して、UTF-8 から Unicode に変換した後、Unicode から Shift JIS に変換する方法が無難かと思います。

    結局のところ、文字エンコーディングの変換は C++ でコツコツ書くのが一番かなぁという結論です。

    About Office 7

    ブログ「サイボウズ Office 開発ブログ」のカテゴリ「Office 7」に投稿されたすべてのエントリーのアーカイブのページです。過去のものから新しいものへ順番に並んでいます。

    次のカテゴリはOffice 8です。

    他にも多くのエントリーがあります。メインページアーカイブページも見てください。