"美文章"に惹かれし者達の集い

それは年の瀬のある日の出来事です。
13名もの人がSkypeに集結し、組版処理ソフトウェア"TeX"について熱く語り合う一時があった。
ー主に、TeXの美しさにに魅了された、"高専生"によって。


去る12月30日、年越し遠隔TeX勉強会初音もきゅ(@Michael_800)氏の進行の下に開催されました。
TeXというのは、日の有名なDonald Ervin Knuth先生の開発した組版処理ソフトウェアです。
何でも計算機学では名の通ったKnuth先生が、自著を出版する際に、既存の組版の汚さに不満を持ち作ったというだけあり、その出力の美しさには目を見張るものがあります。
私もコンピュータでのレポート書きの解禁された今年4月以降、レポートと呼ばれる文章はすべてTeXで書いてきました。
それもまた、TeXの織りなす組版の美しさに魅了されてのことでした。
(どこかのMicr○S○ftという会社のW○rdとかいう製品は、その汚いフォント、手間暇かけないと綺麗に整わないレイアウト、そして扱いづらい参照機能など、美しい文章を作るのには一苦労をするのです)

ところで、高専生の勉強会といえば高専カンファレンスが有名ですが、かくいう私も3年前に高専カンファレンス in 四国を開催しました。
8月末に四国でカンファやらないの?とTwitterで言っていたところ、「お前がやれよ」と言われたのでやることに。
その時はりちゃさんうらかた先生などにアドバイスを頂きながら、基本的に一人で突っ走っていました。
開催が近くなると、学内の方にポスターを描いていただいたり、発表者集めに協力していただくなど、多くの方にご支援を頂きました。

今回、部活の後輩の言い出した勉強会ということで、当時の心境を思いだして、出来る限りのサポートはしようと思いました。
何ができるか考えた結果、主にアップローダの提供という形で支援させて頂くことに。
ということで、今回は勉強会の感想とアップローダの制作秘話についてです。

勉強会の反省と感想

今回の勉強会では、各自で作業しつつ分からない点をお互いに尋ねるといった感じのスタイルで実施されました。
そのため、今回は卒論のテンプレを作ろう!という目標で開始しました。
(学科で配布されているテンプレがWordのものしかないのです)
ただ、それでは面白く無いので、最初の自己紹介で


みかんを5個食べる、という目標を立ててスタート。

卒論のテンプレ作成は、「二重線の引き方がわからない」「文字数ってどう数えたらいいんだろう」などと言った壁が立ちはだかり、1日かけた結果当初の目標は果たせず、「進捗ダメです」に終わってしまいました。
しかし、LuaLaTeXというものに触れてみたり、マクロを改修したりと、いろんなことにtry and errorできたので、いい経験になりました。

一方、みかんを食べるという進捗


当初の予定をはるかに上回る14個(進捗報告では13個と言いましたが、発表中にもう一つ消化したので)になりました。
皆さん「進捗ダメです」ばかりだったので、一人くらい「進捗いいです!」と言いたかったのです(

アップローダの制作秘話

実はこっちが本題。
f:id:yviscuit:20131231010148p:plain
(今回作成したアップローダ。)

このアップローダですが、PHP+MySQLの環境で作成しました。
元々、12月頭の時点ではGitやRedmineを組み合わせて作れたらいいな、と思っていたのですが、現実にはそれらをリンクさせるための知識習得が追いつかず、また12月14,15日の総合文化祭のためのプログラム改修に追われる日々とその後の体調不良で時間の確保が厳しい日々。
結局、割と普通のアップローダに収まってしまいました。

さて、そのアップローダのデータベース設計を始めたのが12月24日の夜のこと。
今回、参加者は1人を除いて全員がTwitterを使っていたので、アップロードにはTwitterを用いた認証を掛けることにし、クリスマスを使って、アップローダとしての最低機能を実装しました。
その頃はまだローカルのLinux環境でApache+PHP+MySQLで動かしていました。
しかし、27日の夕方、突如アップローダにファイルを上げたいと初音もきゅ氏からDMが。
まだアップローダとして最低機能しかなく、Twitter認証もなんとなく動いてる程度で、バグ検証が全く出来ていない中、即効でVPSにnginx+PHP+MySQLの環境を立てデプロイ。
案の定、幾つかのバグに見舞われたわけですが、なんとかやりくりしてその時はやり過ごしました。

f:id:yviscuit:20131231010935p:plain
(実は存在したユーザ毎のファイル一覧ページ。殆ど使われてなさそうでしたが........)

その後、バグ改修を行いつつユーザ毎のファイル管理やTwitterプロフィール参照を次々と実装。
そして前日29日には、Twitterを利用してない参加者のために、OAuthのtokenとtoken_secretの代わりに適当なIDとパスワードをDBにぶち込んで利用できるように小細工をしたりもしました。
27日以降、機能実装のたびに本番環境で検証していたので、既に本番用データのある中DBを直接操作したりとずいぶん危険な開発をやっていました。
本番一発でカラムの追加などもやっていましたし、割とぎりぎりの開発をやっていたなーと思います。

あとは今回、久しぶりにHTML5+CSS3のコードを書いたので、レイアウトをCSSで作るのに随分苦労しました。
全然慣れていないので、なんとかしないと.......と思うのですが。

勉強会は、交流会。

主催者の初音もきゅ氏もブログで述べていますが、今回は交流会の趣旨も強かったように感じました。
だから「進捗ダメです」でいいわけです。

しかし、もっと広い目線で見た時の話です。
どの勉強会を取っても、基本的には"交流会"であると言っても過言ではないのかな、と思います。
そこにあるのは、人と人との"繋がり"です。
だからこそ懇親会がある勉強会が多いですし、勉強会を通じて"コネクションを得る"というのは大きな目的だと思います。

今回の勉強会は、Skypeを使ったものでしたが、その目的は大方果たせたと思います。
一方で、今回あまり交流できなかった方がいたのも事実。
しかし、繋がりは得られたので、今後もっと関わっていけたらな、と思います。

参加者の皆さん、お疲れ様でした。
参加させていただき、ありがとうございます。