有機化学1の成績2026/02/19(木)
有機化学1の成績が確定しました。集計した結果を報告します。(前年度の結果はこちら)
前年度と比べると、平均点が2.8点、合格率が4ポイント下がりました。大まかに言うと、前期の有機化学基礎の成績分布をそのまま10点ぐらい左に動かしたような分布になっています。
ただ、中身を見ると、有機基礎と有機1の点数の間にはあまり相関がありませんでした。要は、有機基礎の点が高くても有機1の点が低い人がかなりいるし、その逆も成り立つ、という状況です。毎回調べているわけではないのですが、こんなに相関が低いことってある?と戸惑っているところです。
採点していて感じたのは、今回は「特定の単元を捨てている人がけっこう多いな」ということです。全体的にかなりできている人でも、1つの問題がまるまる白紙、というケースがわりとありました。解答時間が足りなかった、というのもあったようですが、全体的に消化不良を起こしているのかな、とも感じました。
今回はレポートに質問を書いてきた人もけっこう多かったし、講義中はわりと手応えはあったんですけど、なかなかうまくいかないものですね。ある程度内容をスリム化することも考えた方がいいかなとは思っています(少しずつ進めていますが)。ただ、やっぱり大学の化学科として譲れない一線はありますので、そこの兼ね合いをどうするか、考えていきたいと思います。
ChemRxivのデザイン変わった?2026/01/30(金)
卒研生たちの発表スライドをチェックしていて、修論を引用するところを ChemRxiv のプレプリントの引用に差し替えてもらおうとサイトを確認したところ、ページのデザインが変わっていてびっくりしました。いつから?
えらくすっきりしたモダンなデザインになりました。以前の、ちょっと無骨なデザインがわりと好きだったんですけどねえ。
少し見づらくなった気がします。"Published" の情報が雑誌名しかなくて、年・巻・ページを見ようとするとリンクを辿らないといけない。デザイン優先で機能が犠牲になってるんじゃないかなあ。最近のウェブサイトって、そういうデザインが増えてますよね。オシャレを優先すんなよ、と思うんですけど、考え方が古いんかなあ??
なお、この記事の最初に引用したのは、去年の11月に出した新作です。査読を通すことを考えなくてよければ、論文書くのって楽しいんですよね……でも査読通さないと研究を完成させたことにならないので、まあ今年は頑張ります(毎年言ってる)。
デジタルサイネージを作る2025/11/27(木)
ある事情で、デジタルサイネージ(っぽいもの)を作ることになりました。複数の画像を準備しておいて、自動で切り替えながら表示します。こんな感じです。(何を表示しているかは、ご想像にお任せします)
さくっと作れるだろう、と思っていたのですが、ファイルの内容を表示するところでつまづきました。掲示内容は PDF で用意してあるのですが、PDF の表示がどうも微妙です。ブラウザの中でいろいろ複雑なことをやっているようで、周りに枠がついたり、表示が少し遅れたりします。
今回の目的には、PDFの「文書」としての機能は不要です。そうすると、画像に変換して表示する方がよさそうです。そこで、ImageMagick を使って、288 dpi の PNG ファイルに変換しました。1個 150 KB ぐらいのサイズになってしまいますが、まあ今どきこの程度のサイズは許容範囲でしょう。ついでに、PDF ファイルの周りの空白も削除しました。
$ for i in *.pdf; do magick -density 288 $i -trim ${i/pdf/png}; done
表示の自動切り替えは、JavaScript の setTimeout 関数を使って実装します。このとき、CSS の transition 属性を使うと、「フェードアウト→フェードイン」という機能も実現できます。<html> の背景色を黒、<body> の背景色を白に設定して、通常は <body> が見えるようにしておきます。切り替えの時は、<body> の opacity を 0 にすると、<body> が消えて <html> の真っ黒な背景に変わりますが、このとき <body> に transition: 0.5s を指定しているため、0.5 秒かけて徐々に変化します。その後、表示内容を切り替えて、opacity を元に戻すと、また 0.5 秒かけて <body> の表示が復活します。
/* JavaScript */
/* スライドショー */
function onTimer() {
/* 次の画像 */
let v = nextImage();
/* body を徐々に消す */
body.classList.add("hide");
timerID = setTimeout(() => { /* 1.5秒後に呼び出す */
/* 表示する画像を切り替える */
let img = document.getElementById("img");
img.src = "images/" + encodeURIComponent(v) + ".png";
/* body を徐々に表示する */
body.classList.remove("hide");
timerID = setTimeout(onTimer, 30000);
}, 1500);
}
/* CSS */
html {
background-color:black;
}
body {
background-color:white;
margin:0;
padding:0;
transition: 0.5s;
}
body.hide {
opacity:0%;
}
今どきの学生さんなら、AI を使ったら一発でできるのかもしれません。私はAIコーディングを全く使えないので、すべて手書きです。AIコーディング覚えた方がいいのかなあ……それを勉強している間に手書きで書けてしまう気がするので、なかなか意欲が湧かないんですよね。本業とはまったく関係ないし(苦笑)
電気化学のシミュレーション:Python/ElectroKitty 2025/10/28(火)
だいぶ前に「電気化学のシミュレーション:Pythonを使ってみる」という記事を書きました。そこで紹介したコードは、シミュレーションの雰囲気をつかむには十分ですが、研究現場で使うとなると、コードの正当性が査読論文の形で公開されているパッケージを使いたいところです。探してみたら、見つかりました! 今年の4月に公開された論文です。"ElectroKitty: A Python Tool for Modeling Electrochemical Data Including Non-Langmuir Adsorption", O. Vodeb, P. F. B. D. Martins, D. Strmčnik, N. Hodnik, M. Gaberšček, ACS Electrochemistry 2025, 1, 1540-1544. https://doi.org/10.1021/acselectrochem.4c00218
ソースコードは GitHub にあります。https://github.com/RedrumKid/ElectroKitty/tree/master ……えーっと、Kitty ってもうちょっと可愛いイメージなんですが、まあいいか。
Python がインストール済みであれば、pip install electrokitty でインストールできます。使い方は下のようになります。(いちいち self がついているのは、Tkinter を使ったコードの一部を切り出したためです。気にしないでください。)
from electrokitty import ElectroKitty
...
# 初期化
self.mechanism = "E(1): a = b \n E(1): b = c"
# 電極反応の定義 [alpha, k0 [m/s], E0 [V]]
self.kinetic_constants = [[0.5, self.k0 * 1e-2, -0.99],
[0.5, self.k0 * 1e-2, -1.15]]
# 拡散係数 [m^2/s]
self.diffusion_constants = [self.diff * 1e-4, self.diff * 1e-4, self.diff * 1e-4]
# 初期濃度 [[吸着種 [mol/m^2]], [溶液種 [mol/m^3]]
self.initial_concentrations = [[], [self.bulk * 1e6, 0, 0]]
# 空間情報
# [格子点の間隔, 格子の全長, 溶媒の動粘度 [m^2/s], RDEの回転数 [Hz]]
# アセトニトリルの動粘度:粘度 (0.343 mPa•s)/密度 (0.786 g/cm^3) = 4.36e-7 m^2/s
self.spatial_information = [0.001, 20, 4.36e-7, 0]
# セル定数 [温度[K], 抵抗[ohm], 二重層容量[F/m^2], 電極面積[m^2]]
self.cell_constants = [293, 0, 0, 5e-4*5e-4*3.1416]
# 吸着
self.iso = []
# 電位
self.Ei = -0.2
self.E_switch = -1.5
self.rate = 0.1
self.nt = 1000
# シミュレーションオブジェクトを作成
self.ec = ElectroKitty(self.mechanism)
self.ec.V_potential(self.Ei, self.E_switch, self.rate, 0, 0, self.nt)
self.ec.create_simulation(self.kinetic_constants, self.cell_constants, self.diffusion_constants, self.iso, self.spatial_information, self.initial_concentrations, kinetic_model = "BV")
# シミュレーションを実行、描画
self.potential, self.current, _ = self.ec.simulate()
self.ax.plot(self.potential, self.current*1e6, "b")
単位系がすべて SI 単位なので、cm や L からの変換が必要なのと、溶媒の粘度を動粘度で指定するあたりが要注意です。上の設定で、計算は数秒で終了します。なかなかいい感じです。
化学・物質学科 体験実験講習会やります!2025/10/02(木)
オープンキャンパスの時にもご案内した通り、来年度から、応用化学科は材料機能工学科とともに「化学・物質学科」を立ち上げます。応用化学科は「化学・物質学科 応用化学専攻」になります。新学科スタートに伴う新企画として、体験実験講習会をやることになりました! 絶賛申込受付中です!(うわ、明日までやん……もっと早く書くべきだった……)
現在、鋭意準備を進めております。こういうイベントって、「最初にやる時」の準備が一番大変なんですよね。化学実験をほとんどやったことがない人もきっといるはずなので、そういう人でも一応の結果が出せる、という内容を考えています。準備中の様子をチラ見せします。
業界の中の人だと、この写真と企画のタイトルを見て、「ああ、なるほど、アレね」とにやついているかもしれません。いやあ、悪いけどさ、ソレじゃないんだな。もう一つチラ見せしようか。ほら、違うだろ?(業界の人しかわからない)
というわけで、他ではたぶんできない実験体験ができると思います。参加される方は、楽しみにお待ちください。



