%%%%%%%%%%INCLUDE default.mgp %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %% "tfont" defs in this part is for those who have downloaded Microsoft %% TrueType fonts (or those who mounting Windows partition from your UNIX %% partiton). %% those are available at: http://microsoft.com/typography/fontpack/default.htm %% and they require Windows lisence to extract the archive. %% %% If you got Computer Modern fonts in TrueType format, you may want to %% use the following settings: %% "cmss10.ttf" for standard, "cmssbx10.ttf" for thick, %% "cmtt10.ttf" for typewriter %% CM fonts are avaiable at CTAN mirros, pub/CTAN/fonts/cm/ps-type1/bakoma/ttf. %% unlike MS ones, it does not require Windows license! %% %% see README.fonts{,.jp} for more detailed milage you take. %% %deffont "standard" xfont "helvetica-medium-r", vfont "goth", tfont "arial.ttf", tmfont "wadalab-gothic.ttf" %deffont "thick" xfont "helvetica-bold-r", vfont "goth", tfont "arialbd.ttf", tmfont "wadalab-gothic.ttf" %deffont "typewriter" xfont "courier-medium-r", vfont "goth", tfont "courbd.ttf", tmfont "wadalab-gothic.ttf" %% %% Default settings per each line numbers. %% %default 1 leftfill, size 2, fore "white", back "black", font "thick" %default 2 size 7, vgap 10, prefix " " %default 3 size 2, bar "gray70", vgap 10 %default 4 size 5, fore "white", vgap 30, prefix " ", font "standard" %% %% Default settings that are applied to TAB-indented lines. %% %tab 1 size 5, vgap 40, prefix " ", icon box "green" 50 %tab 2 size 4, vgap 40, prefix " ", icon arc "yellow" 50 %tab 3 size 3, vgap 40, prefix " ", icon delta3 "white" 40 %%%%%%%%%%INCLUDE-END default.mgp %default 1 leftfill, size 2, fore "white", back "black", font "thick" %default 2 size 7, vgap 10, prefix " " %default 3 size 2, bar "gray70", vgap 10 %default 4 size 5, vgap 30, prefix " ", font "standard" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page %nodefault %size 7, font "standard", fore "yellow", back "darkblue" %bquality 10 %bgrad 100 100 24 0 1 "darkblue" "black" %center ダイアグラム作画ツールdia日本語化 %size 4 会津大学情報システム学専攻科 阿部泰裕 m5031201@u-aizu.ac.jp %%begin_comment %%このプレゼンテーションファイルはMagicPointで動作するよう作成されました。 %%MagicPointについては http://www.mew.org/mgp/ で情報が閲覧できます。 %%実行方法は % mgp prog-lecture-embeded.mgp です。 %% %%またHTML化については mgp2note.rb を使いました。 %%end_comment %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page %bgrad 100 100 24 0 1 "darkblue" "black" もくじ このプレゼンテーションの対象 このプレゼンテーションの役割 今、どんなことを学ぶべきなのか? Free Softwareと日本語化の背景 ダイアグラム作成ツール dia Dia概要 (dia-0.85) Dia vs. Tgif diaの問題点と日本語化 日本語が処理できないdiaの解決策 dia日本語化公開後の反響 授業とはあまり関係ないが重要なこと 関係のありそうなページ %%begin_comment %%話の内容は大きく三つのパートに分れています。最初にプログラミングの %%授業に取り組む姿勢についての意見を述べて、その次にDiaの説明を行ないます。 %%そして最後の二枚ぐらいでいくつかのキーワードを紹介します。 %%end_comment %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page %bgrad 100 100 24 0 1 "darkblue" "black" このプレゼンテーションの対象 %fore "yellow" プログラミングを学ぶ一年生 %fore "white" 他の人にも使ってもらえるようなプログラムを作りたい プログラミングに興味がある コンピュータを使いたい 将来はコンピュータを使いたい プログラムがわからない コンピュータを使う予定はない コンピュータが嫌い %%begin_comment %%いろんな人がいて中にはプログラミングをそれほど重要だと考えていない人も %%いると思います。けれども反対にプログラミングをしたいのだけれども、 %%何をやったら良いのかわからないという人もいるはずです。どちらかといえば %%そういう人たちに向いた話ができれば良いなぁと考えています。 %% %%私は普段あまりC言語というものに親しんでいません。しかし他の言語では %%プログラミングをほぼ毎日行なっています。プログラミングができない、苦手と %%いう場合はC言語に限らず日々のWSを使った演習などで作業効率を良くする方法を %%考えるなどプログラミング的な要素を取り入れると良い刺激になるでしょう。 %% %%具体的には、まず csh, sed, awk などを使えるようになって欲しいと思います。 %%end_comment %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page %bgrad 100 100 24 0 1 "darkblue" "black" このプレゼンテーションの役割 (もくじ) なぜプログラミングをするのか これから何をするべきなのか プログラミングによって何ができるのか (就職、研究) %%BEGIN_COMMENT %%このプレゼンテーションでは全体を通して「プログラミングをする動機」を %%持つという事が重要だという主張が含まれています。 %%END_COMMENT %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page %bgrad 100 100 24 0 1 "darkblue" "black" このプレゼンテーションの役割 なぜプログラミングをするのか (自分にとって)使いやすい環境の構築 (エンジニアとしての)技術力の向上 道具を作る -> 道具を増やす これから何をするべきなのか プログラミングをする プログラミング的な作業を増やす プログラミングによって何ができるのか (就職、研究) 自分自身に付加価値を持たせる 可能性を広げる %fore "yellow" プログラミングをする動機の発見 %%begin_comment %%動機は「自分の利益」という視点で考えるのが現実的です。 %% %%大学生活では就職活動あるいは研究活動でプログラミングの技術は重要になります。 %%研究では研究した結果をプログラミングで検証することが必要になります。 %%またこの業界では就職試験などでプログラミングの適性を問われる場面が多いです。 %% %%プログラミングが重要なのは確かなことで、動機がちゃんとあれば %%その作業はけしてつらいばかりではないはずです。就職で、研究で必要だから %%という以外の理由よりも「なんか楽しい」という感覚を大切にしてください。 %%end_comment %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page %bgrad 100 100 24 0 1 "darkblue" "black" どんなことを学ぶべきなのか? (もくじ) 自分にとって楽しいプログラミング みずから目標を設定して解決できる能力 広い視野を持つためのしなやかさ 学習に対する姿勢の変化 %%BEGIN_COMMENT %%前のスライドではプログラミングができる事で得られる利益について %%説明をしました。次にどういう風にすれば良いのかという事について %%いままで経験を基に話てみます。 %%END_COMMENT %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page %bgrad 100 100 24 0 1 "darkblue" "black" どんなことを学ぶべきなのか? 自分にとって楽しいプログラミング 苦労は楽しみのために みずから目標を設定して解決できる能力 先が見えれば苦労は感じない 先を見るための努力も必要 広い視野を持つためのしなやかさ さまざまな情報に影響 反対の意見を吸収 現在の知識に頼りすぎない 新しい知識を得るための努力 学習に対する姿勢の変化 授業は総合的な(基本的な)事を教える場 +αは興味に合わせて工夫 %%BEGIN_COMMENT %%これからの大学生活ではプログラミングを含めていろいろな事を学ぶ機会が %%あります。そういう事にたいしての心構えについて少し話してみます。 %% %%授業というものは誰にでも100%合わせてあるものではありません。 %%まだコンピュータに親しんでいない人は、他の人よりも長い時間WSに向う事が %%必要だという事は理解してもらえると思います。またコンピュータが得意だ %%という人には一種の優越感、あるいは安心感のようなものが邪魔をして %%新しい知識の吸収、発見が進まないということがあるように思えます。 %% %%知識の程度で自分が劣っているとか、勝っているとか思うことはやめるように %%してください。問題に対峙する時の態度、それ自体が自信につながってまた %%社会においても評価の対象となるものではないでしょうか。 %%END_COMMENT %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page %bgrad 100 100 24 0 1 "darkblue" "black" Free Softwareと日本語化の背景 趣味や仕事(含む研究)で興味のあるソフトウェアを作成 複数の人間がメールなどで連絡 企業も注目 (ビジネスとしてのFree Software) 好き勝手に改造可能 欧米で作られるソフトウェアの特徴 アルファベットを前提としたプログラミング 日本語などアジア圏の言語は文字数が多い 欧米:表音文字 アジア:表意(象形)文字 kinput2のような文字入力システムに未対応 メニュー等の静的部分の日本語化は本質ではない %fore "yellow" 特別な処理をしなければ日本語が扱えない場合が多い %%BEGIN_COMMENT %%ここから具体的はDiaというものについての説明になります。 %% %%Free Softwareという言葉が最近はいろいろなメディアで取り上げられています。 %%「無料」という意味と同時に、興味に応じてソフトウェアを作成するということから %%「自由」という意味もまた含んでいます。「自由」が力となっていくつかの %%Free Softwareはかなりの勢いで開発が行なわれています。Diaはそういう流れの %%中にあるソフトウェアの一つです。 %% %%また日本語化というものは英文メッセージの和訳というものも含まれますが %%ここではもう少し幅広い意味を含んでいます。和訳が難しいと感じるとしたら %%ここでいう日本語化は同程度、あるいはもう少し容易だと感じています。 %%END_COMMENT %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page %bgrad 100 100 24 0 1 "darkblue" "black" ダイアグラム作成ツール Dia %CENTER %image "EMBEDDIR/prog0lec-usecase.eps" 0 50 40 0 %image "EMBEDDIR/prog0lec-class.eps" 0 50 40 0 %%BEGIN_COMMENT %%これはdiaで作成したダイアグラム(図)をEPS形式で保存したものです。 %%END_COMMENT %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page %bgrad 100 100 24 0 1 "darkblue" "black" 私はなぜDiaを日本語化したのか 研究で行なっていたUMLの図表を描くため Tgifでは作業の効率が悪かった 不十分な日本語化に不満を感じた C言語を使った本格的なプログラミングをしたかった Java Ruby Perl %fore "yellow" 趣味と研究両方の欲求を満たす方法 %%BEGIN_COMMENT %%研究で必要なプログラムがたまたま日本語を扱えなかったので日本語化を %%してみようと思ったのですが、それ以外にも理由はいくつかあります。 %%一つはすでに行なわれていた日本語化に改良する余地があったこと。 %%それにC言語を使ってプログラミングがどれくらいできるのか試してみたかったのです。 %% %%また不満があるから自分で取り除くというのは良いスタンスだと思います。他の %%プログラムを探すという作業も必要ですが、必要だから自分で作るというのは %%どれくらいの労力で完成するのかを見積る良い訓練にもなります。途方もない %%時間を使ってしまっては研究が進みませんから。 %%END_COMMENT %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page %bgrad 100 100 24 0 1 "darkblue" "black" Dia概要 (dia-0.85) Windows用ソフトウェア、Visioを強く意識 様々なダイアグラム(図表)を描くプログラム ダイアグラムの種類 UML フローチャート ネットワーク図 (簡単な)電子回路図 XMLによるシンプルな構造と拡張性 新しいシンボルの追加が可能 経緯 2000年1月12日 三岩さんが最初の日本語化版を公開 (fj.sources.d) 2000年1月22日 dia-0.83の日本語版を公開 (同上) 2000年3月20日 dia-0.84の日本語版を公開 (同上,Gnome-ML) 2000年5月20日 dia-0.85の日本語版を開発中 %%BEGIN_COMMENT %%Diaの特徴と簡単な略歴をまとめてみました。 %% %%Diaの日本語化を行なったのは私が始めてではありません。ここにあるように %%みついわさんという方が最初に行なってそれをfj.sources.dに投稿されました。 %%私の作業はみついわさんの作業の上に成り立っています。 %%END_COMMENT %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page %bgrad 100 100 24 0 1 "darkblue" "black" Dia vs. Tgif tgifは高機能なドローイングツール 完成されたツール tgifは様々な曲線を描くためのツール 様々な曲線を描くための機能が豊富 diaは基本的な機能を持つ図表作成ツール 開発途中のツール 設計図を描くためのツール 特定の設計図を描くためのシンボルが豊富 %%BEGIN_COMMENT %%tgifとdiaの比較は両方とも曲線を描く機能を持っているという意味で行ないました。 %%tgifは既に完成している曲線作画ソフトウェアなので明かに高機能で、diaは %%その一部の機能を使ってさらに専門的に特化した機能を持っているのでより %%狭い分野をターゲットにしているという違いがあります。 %%END_COMMENT %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page %bgrad 100 100 24 0 1 "darkblue" "black" diaの問題点と日本語化 漢字を含む画像の保存時の問題 EPS形式、PNG形式での保存 %CENTER %image "EMBEDDIR/prog0lec-japanese-ok.eps" 0 30 18 0 %image "EMBEDDIR/prog0lec-japanese-bad.eps" 0 30 18 0 %LEFT 文字列操作での問題 文字を消すために日本語のための処理が必要 文字列で文字間の移動に日本語のための処理が必要 解決策のための予備知識 漢字1文字はアルファベット2文字分の情報量が必要 漢字を1文字消すためにはアルファベット2文字分 %%BEGIN_COMMENT %%最初は漢字の表示できない下の状態から上の状態する事が目標でした。 %%その次に文字を消したりすること(編集)ができるようにしていきました。 %%END_COMMENT %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page %bgrad 100 100 24 0 1 "darkblue" "black" 日本語が処理できないdiaの解決策 其の一 文字を含む画像が作成できない アルファベットだけでなく漢字も画像に含まれるように修正 文字を消すと半分だけ消える アルファベット一文字消す動作を二回するように修正 文字間を移動すると半分だけ移動 アルファベット二文字分移動するように修正 %%BEGIN_COMMENT %%日本語化をするための問題点とその解決方法です。 %% %%単純に漢字を編集できるようにするといっても、上のようにいくつかの %%ステップを別々のものとして解決する必要がありました。こうしたバグを %%一つ一つ解決して日本語化を行ないます。 %%END_COMMENT %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page %bgrad 100 100 24 0 1 "darkblue" "black" 日本語が処理できないdiaの解決策 其の二 できない事のリスト毎にプログラミング Dia全体の行数は10万行弱 理解する必要のある部分は1万行程度 最終的にC言語で1000行以上の変更 gdb(デバッガ)を使った問題個所の発見 diffによる差分形式でのパッチ配布 %fore "yellow" 地味な作業の繰り返しで解決 %%BEGIN_COMMENT %%一般的に一人のプログラマーが管理できるプログラムの限界は10万行と言われて %%います。それでも簡単に書けるのは1万行程度までだろうと経験からいわれています。 %%1000行という数字は繰り返しが含まれていることを考えると、 %%卒研などのレベルよりも簡単な部類にはいるでしょう。 %% %%自分でプログラムを改良することに興味がある場合には %% プログラミングでは 'gdb' 'gcc' 'mule' %% 変更したファイルには 'diff' や 'patch' %%などのプログラムについて少し練習しておくと良いでしょう。 %%END_COMMENT %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page %bgrad 100 100 24 0 1 "darkblue" "black" dia日本語化公開後の反響 News Group(fj.sources.d)への投稿 UNIX Magazine 4,6月号で紹介 メールで間違いや足りない点などの指摘 仕事でUMLのダイアグラムを書く人達からのメール 同じような不満を持つ人たちへの貢献 Windows上でのVisioは高価 無償で配布 仕事で使うUNIX上で配布 %%BEGIN_COMMENT %%バグの報告をすることで、そのソフトウェアの開発に参加することができます。 %%プログラムを改造することだけが貢献ではない事を誤解しないでください。 %%END_COMMENT %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page %bgrad 100 100 24 0 1 "darkblue" "black" 授業とはあまり関係ないが重要なこと プログラム(情報源)の確保 メーリングリスト(ML)から情報を入手 ftpサーバーからプログラムを入手 webサーバー 〃 プログラムの配布 元のプログラムとの差分を作成 プログラムの開発 デバッガー(gdb)の操作方法 コミュニティの存在 各分野のMLに参加 Newsの様々なグループの記事を講読 GNU (Free Software Foundation) Free Softwareという言葉の意味 無料よりは自由 %%BEGIN_COMMENT %%最後になったのでいくつか興味のありそうなキーワードを並べておきます。 %%プログラマを目指す人には、この大学の設備を活用して非常にレベルの高い %%学習をする機会があります。News, Webなどのサービスを利用してこれらの %%情報を得て十分に学習してください。 %% %%これからの学生生活を通してあふれる情報の中から必要な知識を得るための %%方法を学ぶわけですが、常に自分の手持ちの情報源を増やせるように心がけて %%ください。muleだけでも"M-x info"と打てばどれだけの本よりもずっと詳しい %%プログラミングについての知識を増やすことができるはずです。 %%END_COMMENT %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page %bgrad 100 100 24 0 1 "darkblue" "black" 関係のありそうなページ Dia http://www.lysator.liu.se/~alla/dia/dia.html Dia日本語版 http://www2.famille.ne.jp/~mituiwa/#dia http://www.u-aizu.ac.jp/~m5031201/dia/ Dia日本語版を紹介してくれたページ http://www.on.cs.keio.ac.jp/~yasu/jp_link.html http://www.linux.or.jp/link/editor.html XML http://db-www.aist-nara.ac.jp/xml/ UML http://www.rational.co.jp/uml/index.html Gtk+ http://www.gtk.org/ Gnome http://www.gnome.org/ GNU (FSF) http://www.gnu.org/ %%BEGIN_COMMENT %%DiaといくつのキーワードにそったページのURLを載せたつもりです。 %%まだまだ書き足りないURLもたくさんあります。興味があれば見てください。 %% %%今回のプレゼンテーションにあたり参照した文献です。 %% ・http://www.mew.org/mgp/ %% プレゼンテーションソフトウェア %% ・http://www.lysator.liu.se/~alla/dia/dia.html %% Diaの公式ホームページ %% ・http://www.gnome.org/gnome-office/ %% Gnome Office公式ホームページ %%END_COMMENT %embed "prog0lec-usecase.eps.gz" M'XL("%!Q0SD W!R;V
IFRS)L=+84BVK;1+D,-P=+L>>W6%F=R6QA'Y, "L(<@_0@X&TZ*U
M>NBO* KTU'.!OC,[^T52LBPK %D;MH;OUSS/^S&S%/GH5R>G.WN!'+.=MNO!
MX E6))26R7#T-@",[N ,/!J08EA[&!U_\#*YR
M\@#.&Z4J/8,! 9"4+&]\(*(M+0?=7_=\_3< 1;[ZP\WMP5FD)OQ@$/3@\N;V
MC5V05Z_NA)'\%*9:1&S99T$D&$K/-6=&Z5.X$ SFO6!\6 F%2B^808N[60&?
M%RG & ;#T\/CT]$ !KV>]?G&6BY97N#Z+8M3,16ALSR%?M K,==:\-1XZ8W2
M1C-A4/Y:%6DDTOBU>CB%'OX;G(RA/QJCZH;%/$<7%L5CD=YR4V1X<9E&C>6Y
M2A+TG)-O@ :I,A&?_NX+\G_B.<]8R('RAU"R!.AWA3(\FDB@:9%,N,Y%G *-
ME)1, \VX#C&Q0%F"RYRED;?0(IX90C.F>2KY%!%NZ<2(SBTB_X!26>1 0ZP/
M SI;9C.>.J]"H:=
MHG/8JO@@#$CJ_Z:5N%[9WI6R6B6Q73X,@2$XNP,,/!A08EAZ&!]\R3.X*LD#
M.&^4JO0,!@1 4K*\\8&(MK0<=G_=\_7? !3XX@_7-WMGL9KPO6$0POCZYI5=
MD! HO?@JE52
MXH _(BG=:$E>:W=M*9:59/\.0V (CCW 8 > )"Y+3[65%\AY'R.G'/,$Z1D,
M"( $M?JAJLA4Y+(]Z/^OI[LQ(*A77UY<[H]\.6;[G98+IQ>7;_3">?7J(T\%
M.X+?__'/?^]W\/I8,9I*=00GG,*UVQKV"B*7T0E-4?;C-(-OL@A@")WN4:]W
MU#F CNMJ:V^TYHPF&:[?T2#B$^X9S2-HM]Q;WEO]Q*A6F
M)F JQ+D[%LBBU@2U(K0:!+5!T-(4U6G"G=:#