[Tokyodebian-commits] TokyoDebian CVS update: monthly-report debianmeetingresume200610.tex debianmeetingresume200610.pdf ChangeLog

tokyodebian CVS Commit tokyodebian-commits at lists.alioth.debian.org
Thu Oct 19 23:34:32 CEST 2006


  User: dancer  
  Date: 06/10/19 21:34:32

  Modified:    .        debianmeetingresume200610.tex
                        debianmeetingresume200610.pdf ChangeLog
  Log:
  initial merge with matsuyama
  
  Revision  Changes    Path
  1.11      +97 -66    monthly-report/debianmeetingresume200610.tex
  
  CVSWEB Options: -------------------
  
  CVSWeb: Annotate this file:            http://cvs.alioth.debian.org/cgi-bin/cvsweb.cgi/tokyodebian/monthly-report/debianmeetingresume200610.tex?annotate=1.11&cvsroot=
  
  CVSWeb: View this file:             http://cvs.alioth.debian.org/cgi-bin/cvsweb.cgi/tokyodebian/monthly-report/debianmeetingresume200610.tex?rev=1.11&content-type=text/x-cvsweb-markup&cvsroot=
  
  CVSWeb: Diff to previous version:   http://cvs.alioth.debian.org/cgi-bin/cvsweb.cgi/tokyodebian/monthly-report/debianmeetingresume200610.tex.diff?r1=1.11&r2=1.10&cvsroot=
  
  -----------------------------------
  
  Index: debianmeetingresume200610.tex
  ===================================================================
  RCS file: /cvsroot/tokyodebian/monthly-report/debianmeetingresume200610.tex,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- debianmeetingresume200610.tex	18 Oct 2006 14:12:19 -0000	1.10
  +++ debianmeetingresume200610.tex	19 Oct 2006 21:34:30 -0000	1.11
  @@ -680,8 +680,77 @@
   \end{flushright}
   
   
  +
  +\dancersection{DebianでFlashしたい}{松山}
  +
  +\subsection{DebianのFlash事情}
  +DebianのFlash事情は、再生、作成ともに少し寂しい状況のようです。
  +再生に関しては、Debianではバージョンが古いものの(バージョン7.Windows版はバージョン9)、Flash Playerがされているので、これをインストールすれば、Flashが再生可能です。
  +Debian unstableにはgnashというプレーヤのパッケージがあり、フリーのものではこれが少し有名なようです。
  +また、swf-playerというパッケージもあり、いくらか制限があるものの、これでもFlashが再生可能です。
  +このように、Debianでは、Flashを何とか再生する環境はあるものの、Flashを作成する環境についてはかなり寂しい状況になっているようです。
  +
  +\subsection{DebianでFlashを作成したい}
  +人がFlashを作成したい理由にはいろいろあると思いますが、とにかくDebianにはFlashを作成するためのツールというものがほとんどないようです。
  +DebianでなんとかFlashを作成できないかと探していると、mingというライブラリに出会いました。
  +これは、Flashファイルを作成するプログラムのためのライブラリです。
  +つまり、mingというライブラリを使用してプログラムを作成し、その作成したプログラムを実行するとFlashファイルが出力されます。
  +このあたりが少しややこしいのですが、今のところ単なるライブラリとして提供されているだけなので、Flashを作成するのが困難であるという問題があるものの、私達が直接作成するのは「Flashを作成するプログラム」なので、作成Flashを動的に変更するというメリットもあります。
  +mingはコア部分はCでできていて、C++、Perl、PHP、Python、Javaなどに拡張されているようです。
  +ming関連のパッケージはoldstableやunstable、testingにはあるようですが、stableにはないようです。
  +これは当時のメンテナ Erich Schubertが orphan した結果 2002 年に削除され
  +た影響です。\debianbug{166973}
  +このように、mingはちょっと怪しい雰囲気がありますが、今回はこれを検証してみました。
  +
  +\subsection{mingの検証}
  +mingは単なるライブラリです。
  +別途GUIなラッパーアプリを作成すれば、きっとDebianのキラーアプリになると思います。
  +ただ、私の気力や力量もあり、また、とにかく土台となるming自体、どんなFlashでも作成できるのかどうかを確認しておく必要があると思い、今回はmingの検証をしてみました。
  +検証作業は、「mingを使ってこんなFlashは作れるのかな?」といういくつかの観点に立って実際にmingを使用したFlashを作成するプログラムを作成し、できた/できないという結論をつけていきました。
  +\footnote{できた場合にはそれでよいのですが、できない場合は私がFlashについてよくわかっていなくてできないのか、mingの問題でできないのかの切り分けができていません。}
  +
  +\begin{table}[h]
  +\begin{center}
  +\caption{mingの検証結果}
  +\begin{tabular}{|l|p{7em}|p{3em}|c|p{10em}|}
  +\hline
  +分類 & 観点 && 結果 & 備考 \\
  +\hline
  +\hline
  +描画 & テキスト && 可 & フォントの埋め込みが必要? \\
  +\cline{2-5}
  +     & 線 && 可 & \\
  +\cline{2-5}
  +     & 画像 && 可 & PNG画像、JPEG画像の取り込みが可能。 \\
  +\hline
  +動画 & 音楽再生 && 一部可 & WAVファイルの読み込みは可。
  +                  MP3読み込みのAPIはあるが、音が潰れる。 \\
  +\cline{2-5}
  +     & 動画埋込 && 不可 & mpeg等の動画を埋め込むAPIがない。 \\
  +\cline{2-5}
  +     & 動画再生 && 可 & フレームの概念はある。
  +                       線やテキスト等をプログラムによって移動させることが可能。 \\
  +\hline
  +インタラクティブ & ボタン操作 && 一部可 & テキストをボタンとすることが可能。
  +                                       画像、動画はボタンにできない。 \\
  +\cline{2-5}
  +     & テキストフィールド (ボックス) && 可 & 入力値をActionScriptで取り込む方法がよくわからない。 \\
  +\cline{2-5}
  +     & マウス操作 && & \\
  +\hline
  +データ & XML && & \\
  +\cline{2-5}
  +      & HTTP && & \\
  +\hline
  +\end{tabular}
  +\end{center}
  +\end{table}
  +
  +\clearpage
  +
   \dancersection{rpmstrapを活用する}{岩松}
   \label{sec:iwamatsurpmstrap}
  +
   \subsection{始めに}
   みなさん、rpmstrap を御存じでしょうか。「これは Debian 勉強会なんじゃないの?RPM の話なんて
   関係ねーじゃねーか!」と思った人もおられると思いますが、今回は Debian 環境上で RPMなchroot環境を
  @@ -907,7 +976,7 @@
   \end{itemize}
   
   
  -\dancersection{gentoo を chroot にインストールしてみる}{上川}
  +\dancersection{gentoo chroot}{上川}
   \label{sec:gentoo-chroot}
   
   Debian 上で、 gentoo を chroot にインストールする方法について説明します。
  @@ -950,11 +1019,16 @@
   誰かが後でやってくれることを期待しつつ。
   
   \begin{commandline}
  -Gentoo# env-update && source /etc/profile && emerge --oneshot --nodeps gcc-config && USE="-* build bootstrap" emerge linux-headers && \
  -/usr/portage/scripts/bootstrap.sh && emerge -O libperl && emerge -O python && emerge --deep system && \
  -emerge syslog-ng xinetd grub hotplug coldplug vixie-cron reiserfsprogs reiser4progs sysfsutils udev dhcpcd && \
  -emerge --nodeps acpid ntp && rc-update add syslog-ng default && rc-update add net.eth0 default && rc-update add vixie-cron default && \
  -rc-update add xinetd default && rc-update add sshd default && rc-update add hotplug default && rc-update add coldplug default && \
  +Gentoo# env-update && source /etc/profile && emerge --oneshot --nodeps
  + gcc-config && USE="-* build bootstrap" emerge linux-headers && \ 
  +/usr/portage/scripts/bootstrap.sh && emerge -O libperl && emerge -O
  + python && emerge --deep system && \ 
  +emerge syslog-ng xinetd grub hotplug coldplug vixie-cron reiserfsprogs
  + reiser4progs sysfsutils udev dhcpcd && \ 
  +emerge --nodeps acpid ntp && rc-update add syslog-ng default &&
  + rc-update add net.eth0 default && rc-update add vixie-cron default && \ 
  +rc-update add xinetd default && rc-update add sshd default && rc-update
  + add hotplug default && rc-update add coldplug default && \ 
   rc-update add acpid default
   \end{commandline}
   
  @@ -966,6 +1040,9 @@
   
   \dancersection{aptを最適化してみる}{上川}
   
  +前回までで、oprofile を利用して aptのプロファイリングをしてみました。そ
  +れでは、実際にどういう考え方で高速化を検討するか、を考えてみましょう。
  +
   \subsection{最適化の必要な部分の解析}
   
   プロファイル結果を利用して、解析します。
  @@ -991,79 +1068,33 @@
   222       0.4319  vmlinux                  vmlinux                  timer_interrupt
   166       0.3230  libapt-pkg-libc6.3-6.so.3.11.0 apt-get
    MD5Summation::Add(unsigned char const*, unsigned long) 
  -160       0.3113  vmlinux                  vmlinux                  page_fault
  -158       0.3074  libapt-pkg-libc6.3-6.so.3.11.0 apt-get
  - SHA1Summation::Add(unsigned char const*, unsigned long) 
  -140       0.2724  libstdc++.so.6.0.8       apt-get                  (no symbols)
  -134       0.2607  vmlinux                  vmlinux                  find_get_page
  -125       0.2432  ld-2.3.6.so              http                     do_lookup_x
  -123       0.2393  vmlinux                  vmlinux                  sysenter_past_esp
  -95        0.1848  libapt-pkg-libc6.3-6.so.3.11.0 apt-get                  .plt
  -94        0.1829  ld-2.3.6.so              gpgv                     do_lookup_x
  -89        0.1732  libc-2.3.6.so            http                     (no symbols)
  -89        0.1732  vmlinux                  vmlinux                  do_generic_mapping_read
  -88        0.1712  ld-2.3.6.so              file                     do_lookup_x
  -87        0.1693  vmlinux                  vmlinux                  memcpy
  -72        0.1401  ld-2.3.6.so              http                     strcmp
  -69        0.1343  vmlinux                  vmlinux                  _spin_lock
  -65        0.1265  vmlinux                  vmlinux                  vfs_read
  -64        0.1245  ld-2.3.6.so              gpgv                     _dl_elf_hash
  -62        0.1206  vmlinux                  vmlinux                  __handle_mm_fault
  -60        0.1167  ld-2.3.6.so              http                     _dl_elf_hash
  -58        0.1128  oprofiled                oprofiled                (no symbols)
   \end{commandline}
   
  -\subsection{最適化例}
  +\subsection{最適化方法の検討}
   
  -今回の結果で適用できる最適化を分析します。
  +プロファイル結果解析ををうけて適用できる最適化方法を検討します。
   
   \texttt{apt-pkg/contrib/sha1.cc}, \texttt{apt-pkg/contrib/md5.cc} を見る
   と md5 については、 dpkg の実装を、 sha1についてはどこからか拾ってきた実
   装を利用しており、 C++ で書かれた汎用のコードを利用しているということが
  -わかります。
  +わかります。仮説として、アッセンブリでばりばりにチューニングした実装を利
  +用すれば高速になるのではないか、と考えてみます。
  +
  +GPL 互換の既存の sha1 と md5 の高速な実装を探してみます。
   
  -てっとり早く GPL 互換の既存の sha1 と md5 の高速な実装を探してみます。
  -GNUTLSに含まれている sha1 / md5 の実装は、 \texttt{gl/sha1.c},
  -\texttt{gl/md5.c} にあり、特に高速化されていないようです。
  +代表的な GPL 互換の実装である GNUTLS に含まれている sha1 / md5 の実装は、 
  +\texttt{gl/sha1.c}, \texttt{gl/md5.c} にあます。確認したところ、特に高速
  +化されていないようです。
   
  -gitのソースを見てみます。ppc と arm 用の最適化されている sha1 の実装が含
  -まれていますが、 i386 用はないようです。
  +そこで、 git のソースを見てみます。ppc と arm 用の最適化されている sha1 
  +の実装が含まれていますが、 i386 用はないようです。
   
   予備試験をしてみます。600MB程度の iso ファイルの sha1 をとるのに、
   mozilla 実装と openssl 実装でどらくらい違うのかを比較してみました。
  -mozilla 実装で 14 秒程度、 openssl 実装で 12 秒程度です。この時点で非
  -常にやる気が失せています。
  -
  -\subsection{結果の検証}
  -
  -さきほどのベンチマークを利用して、状況が改善していることを確認します。
  -
  -\subsection{回帰テストの貢献}
  -
  -できるようであれば、今回の修正が二度と必要ないように、パフォーマンスのデ
  -グレードがすぐに検出しやすいよう、再現しやすいテストケースを追加してみる
  -のもよいでしょう。
  -
  -\subsection{修正をフィードバック}
  -
  -パフォーマンスの改善のための修正をフィードバックします。
  -Debian の場合、BTSにパッチを登録します。
  -該当するバグ番号は下記です。
  -
  -\begin{itemize}
  - \item XXX
  - \item YYY
  -\end{itemize}
  -
  -\dancersection{グループワーク}{全員}
  -\label{sec:groupwork}
  -
  -\dancersection{次回}{}
  -
  -未定です。
  -内容は本日決定予定です。
  +mozilla 実装で 14 秒程度、 openssl 実装で 12 秒程度です。
   
  -参加者募集はまた後程。
  +ここまでで、既存の実装を応用する限りにおいて、試験環境において劇
  +的に高速化できる方策は無いということがわかりました。残念。
   
   \newpage
   
  
  
  
  1.11      +2632 -2731monthly-report/debianmeetingresume200610.pdf
  
  	<<Binary file>>
  
  
  1.176     +4 -0      monthly-report/ChangeLog
  
  CVSWEB Options: -------------------
  
  CVSWeb: Annotate this file:            http://cvs.alioth.debian.org/cgi-bin/cvsweb.cgi/tokyodebian/monthly-report/ChangeLog?annotate=1.176&cvsroot=
  
  CVSWeb: View this file:             http://cvs.alioth.debian.org/cgi-bin/cvsweb.cgi/tokyodebian/monthly-report/ChangeLog?rev=1.176&content-type=text/x-cvsweb-markup&cvsroot=
  
  CVSWeb: Diff to previous version:   http://cvs.alioth.debian.org/cgi-bin/cvsweb.cgi/tokyodebian/monthly-report/ChangeLog.diff?r1=1.176&r2=1.175&cvsroot=
  
  -----------------------------------
  
  Index: ChangeLog
  ===================================================================
  RCS file: /cvsroot/tokyodebian/monthly-report/ChangeLog,v
  retrieving revision 1.175
  retrieving revision 1.176
  diff -u -r1.175 -r1.176
  --- ChangeLog	15 Oct 2006 21:33:56 -0000	1.175
  +++ ChangeLog	19 Oct 2006 21:34:32 -0000	1.176
  @@ -1,3 +1,7 @@
  +2006-10-20  Junichi Uekawa  <dancer at debian.org>
  +
  +	* debianmeetingresume200610.tex: merge matsu
  +
   2006-10-16  Junichi Uekawa  <dancer at debian.org>
   
   	* debianmeetingresume200610.tex: merge kmuto resource.
  
  
  



More information about the Tokyodebian-commits mailing list