crayon-syntax-highlighterのインストール

 さて,コード例を追加するためにSyntax Highlighterを使いたいので,crayon-syntax-highlighterなるplug-inも入れてみた。

#include <stdio.h>

int main()
{
    printf("Hellow, World!\n");
    return 0;
}

 言語が混じっていてもいいらしいので,早速HTML&PHPの例をば。

<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
		<title>名簿データベース:データ削除・更新</title>
	</head>
<body>
<?php
	$dbname = "../../unix10/meibo.db";
	$table  = "meibo_table";

	$dsn = "sqlite:" . $dbname;

	try
	{
	    $connect = new PDO($dsn, null, null);
	}
	catch (PDOException $error)
	{
		echo '接続に失敗しました: ' . $error->getMessage();
		exit;
	}

	$sql = "select * from " . $table;
	$query_ret = $connect->query($sql);

	echo "<table>\n";
	while($data = $query_ret->fetch(PDO::FETCH_ASSOC))
	{
		echo "<tr>";
		echo "<td><form action=\"delete_exec.php\"><input type=\"submit\" value=\"削除\"><input type=\"hidden\" name=\"id\" value=\"" . $data['id'] . "\"></form></td> ";
		echo "<td><form action=\"update_exec.php\"><input type=\"submit\" value=\"更新\"><input type=\"hidden\" name=\"id\" value=\"" . $data['id'] . "\"><input type=\"hidden\" name=\"name\" value=\"" . $data['name'] . "\"><input type=\"hidden\" name=\"name_yomi\" value=\"" . $data['name_yomi'] . "\"></form></td>";

		echo "<td>id: " . $data['id'] . " name: " . $data['name'] . " name_yomi: " . $data['name_yomi'] . "</td>";
		echo "</tr>\n";
	}
	echo "</table>\n";

	unset($connect);
?>
	<a href="index.html">戻る</a>
</body>
</html>

を,なかなか賢い・・・ってそれはSyntax Highlighterのおかげなんだろう。

MathJaxのテスト

そーいや,数式を入れたいなーと思っていたところに,こういう解説を読んだので早速やってみた。

\[ (\exists x)F(x) \rightarrow G(x) \]

どうかしら? お,キレイキレイ。Computer Modernじゃなきゃもっといいのだが

Primary DNSの移行計画皮算用

 経費節約&クラウド環境適応練習のためにVPSを使うようにしている。つーことで,職場の卒研制作物展示用サーバ(cs-tklab.na-inet.jp)をさくらVPS(石狩リージョン)を使って立ち上げた。ついでにroundcubeも突っ込んだのでWebメールも使えて便利である。

 タマタマだが,今まで職場の学生制作物展示用として使っていたDynamic DNSが有料サービス移行を強行してくれたため,これもwebdesign.na-inet.jpへ移行。OCN+フレッツ光で接続している自腹(研究費だけど)回線+PPPoEマシンをポート転送して外部開放しているので,接続断の度に変更されるIPアドレスを登録し直せばならんのが面倒なところ。とりあえずPHPスクリプトで$_SERVER[‘remote_addr’]を表示する機能を作って手動登録をしているけど,nsupdateを使えばリモートからも自動的にupdateできるようだ。/etc/init.dとかcron-hourlyあたりにもう少し凝ったスクリプトを仕込んでおけば自動化できそうだが,まぁそんなに切れることはないのでしばらく放置プレイ。

 研究室サーバが起動したおかげで代替のna-inet.jp外部サーバも出来たことになり,これで本格的にメインのna-inet.jp(minerva.na-inet.jp)を移動する計画が発動できそうである。冗長性を確保するために,これはさくらじゃなくて今まで通りWebarena(NTTPC)にお願いすると共に,コストダウン(完全自腹なので)を図るためにVPSクラウドサービスを使いたいのだが,困ったことにSecondary DNSを引き受けてくれなくなるという。幸い,さくらVPSの方で登録できそうなので,これがうまくいくようなら

  1. Secondary DNSをさくらVPSへ移行(2014-05-11 完了)
  2. VPSクラウドサーバの起動とbindの稼働(2014-05-11 完了)
  3. Web, MySQL, Movabletype, WordPressの移行(2014-05-18 完了)
  4. Dovecot(POP3),Postfix(SMTP),mailmanの移行(2014-05-18 完了)
  5. Primary DNSの移行と同時に新旧minerva.na-inet.jp交代(2014-05-18 完了)
  6. しばらく様子を見て2週間後に旧minervaをダウン

の順で移行していけばよいのではないかと期待しているのだがどうでしょうね旦那。

 まぁこの手の移動はWebArena Suite Pro⇒Suite Pro2⇒Suite Pro3と繰り返しているので三度目の正直となるのだが,仕込みのサービスが増えてきて段々めんどくさくなってきている。Legacyをクラウドでも引き継げるのはいいのだが,定番サービスはも少し使いやすくなってくれませんかね,いっそ全部お任せしちゃいたいところですがどうですかGoogleの旦那? Computing Cloudは計算し続けると青天井で料金が上がっていくので胃がおかしくなりそうだった。当分はコストをにらみながら,実機サーバ vs VPSサービス vs 大規模クラウドの間で右往左往させられそうな末端エンドユーザーの一人なのであった。楽しみなのか苦しみなのか,分からんのう。

「できない」とはどういうことか(2)

 毎年年末この時期は卒業研究における論文部分の追い込みをかけている。本研究室の場合,7月には中間発表代わりにオープンキャンパスで来場者に卒研の報告をしてもらい,11月に〆,12月は論文書きに勤しみ,1月にA4用紙1枚に概要を執筆して発表練習を3回行い,2月中旬の卒業研究発表会に臨む,というスケジュールを組んでいる。今の職場に来て13年になるが,この形になったのはここ4~5年ぐらいである。学生間の意欲・学力・コミュ力の著しい乖離が進み,教師が尻を叩くだけでは何もできない・進まないダメ学生が少数ではあるけれど一定数出現するようになり,具体的なお手本とともにやるべきことを小まめに提示するこの形態になったのである。

 今「ダメ学生」と書いたが,それはつまりワシ自身がそういうダメ学生をダメのままにしている「ダメ教師」であることにも問題がある。それはそうなんだが,これでも着任以来,周りの優秀なる同僚の方々の指導法を参考にして改良を繰り返し,ダメ度は低下しているハズなのである。一応言い訳しておくけど,ワシの研究室は今のところストレートに4年で卒業した学生は全員進路が決まっている(一人留学したのがいたけど)のだから,第一希望の学生がほぼゼロの不人気研究室にしては大分マシな方なのである。まぁ人気がないということ自体がダメ教師であることを物語っている訳だが,「口うるさくてプログラミング学習を強要する短気な教師」という評判があるおかげで,それなりに覚悟してやってくる連中が多いのは良いことである。就職率が良いのもダメ教師の苦言をやり過ごす耐性が付くという効用が大きいのかもしれない。

 ワシの職場は小規模ド田舎大学の割には理工系ということもあって,全ての研究室でかなり真面目に卒業研究をさせている。ウチの場合,ま,理工学部の先生からは「卒業「制作」なんですね」と言われる程度の内容だけど,1年間かけてチマチマやらせるから,真面目に取り組めばそれなりのボリュームのあるソフトウェアにはなるのである。反面,学力的にワシの専門である数値計算のアカデミックな内容をやらせることは大方の学生には無理なので,ダメ学生の卒研に箔付けするためにワシが無理やりその手の内容を押し込んでやったりすることはある。予備知識の欠片もないダメ学生にそれをやらせようとなると最後は修羅場になったりするが,まぁ今のところ卒研発表でダメ出しされることもなく済んでいるから,努力は一応報われていると思うことにする。

 ・・・とまぁ,12年間色んな学生を見てきたが,大方の学生,不人気研究室でも7~8割は苦労しつつも普通に自力で卒業研究をこなしている。レベル的にこちらが妥協するようになったということを差し引いても,就職活動としっかり両立させて内定を取得し卒業していくのだから,教育の効果って大きいなとつくづく感じる。もちろんそれは学生個人の内在的な能力によるものであって,ダメ教師の指導のたまものでは決してない。

 で,少数のダメ学生だが,これをつぶさに見ているとダメな理由が段々わかってきて面白い。大学学部時代の某教員は「ダメ学生は味があって面白い」と言っていたが,その理由が最近分かってきた。こと,この温暖で機械産業に恵まれた静岡の地で育った連中は概してノホホンと高校時代を送ってきたため,「学習」というものを根本的に勘違いしているのである。彼らの多くは「学習」=「作業」だと思っているようで,作業に直結している「思考」がまるっきり抜けているのだ。
 一例をあげると,プログラミングの場合,お手本となるソースプログラムを打ち込むことはできても,そこで使われているテクニックを咀嚼して応用することがまるっきりできない。for文にしろif文にしろ,エッセンスを取り出して他の事例に適用する,ということを「考えもしない」のである。
 「学生なんて所詮そんなもんでしょ?」という指摘は正しいし,ワシもかつてはダメ学生だったから分かるのであるが,この場合,「考えもしない」の次元が違うのだ。やる気がなくて理解力が足りなくて出来ないのではなく,ソースプログラムの打ち込み「作業」そのものが彼らにとっての学習であって,作業を通じて行う「思考」,即ちスキルの習得がまるっきり行われていないのである。せいぜいキーボードの打ち込み練習と,穴埋め問題への脊髄反射的解答でしかないのだ。
 不真面目な学生だから? いや,不真面目なヤンキーなら作業そのものを忌避するのだが,ダメ学生の多くはそうではない。かなり真面目で彼らなりに努力しているのだ。しかしその努力は額に汗して行われる「作業」であって,「学習」とは言えないものなのだ。この事実を理解したワシは愕然としつつも,やらせるべきは「学習」なのだと気づき,卒研は大部分いや8割程度はお手本に依拠しつつも,残り2割は「学習の成果」になるように方向転換したのである。

 卒業研究で,ダメ学生もようやく自分の課題と1対1で向き合うことになり,否が応でも考えるようになる。あまつさえ,就職活動においても卒研内容を聞かれたりするから,どの程度自分が理解しているかも含めて説明をしなければならない。ここにきてようやく「学習」が始まるのである。だから,卒研を課していなかったら彼らは一生「学習」とは無縁だったのかなぁと考えてしまうのである。

 それにしても卒研まで学習しなくていいなんて,それ以前の講義では何をやっていたのか・・・と思うのだが,それについてはまた別稿で考えることにしたい。

「できない」とはどういうことか?(1)

 日々「できない」と格闘しているのがワシの現在の状況である。

 「できない」とはどういうことか? 齢40にもなれば「できない」ことだらけであることは悟っており,その中から「できない」を克服して,あるいは回避して,「できる」ことだけをやって人生過ごしていくことになる。

 「できない」は自分のことだけではない。ワシの場合,教師という仕事柄,学生の「できない」にも日々お付き合いしているのである。その結果,「できない」学生との付き合いを通じて,絶望の谷と歓喜の山の間を乱気流にもまれながらキリキリ舞いさせられている訳である。で,そーゆー状況の中で20年以上もお付き合いしてると,割とそういうのにも慣れてきて肩の力が抜けてきている。

 つーことで,自分の「できない」と,学生の「できない」の両方を割と客観視して見られるようになったかなぁ,と思う今日この頃であるので,折に触れてその諸々の「できない」を綴っていこうと思っているのである。

 つづく・・・かな?