WaPENの改良
関数内で入力が使えないことについてはだいぶ根本的に手を入れなくてはいけない気がするので, 現状のままでブランチをマージしてリリースすることにした。 他にも微妙にあちこちいじってる。 入力でいちいち窓を開かないようにしたとか, lengthを配列にも使えるようにしたとか。 マニュアルも少しだけ見やすくしてみた。
関数内で入力が使えないことについてはだいぶ根本的に手を入れなくてはいけない気がするので, 現状のままでブランチをマージしてリリースすることにした。 他にも微妙にあちこちいじってる。 入力でいちいち窓を開かないようにしたとか, lengthを配列にも使えるようにしたとか。 マニュアルも少しだけ見やすくしてみた。
最近読んだ2冊の本は読むのにやたらと時間と労力がかかった。 繰り返しが多くて,そのたびに前と違ったことを言ってるのか気になったりして。 それらを読み終えたところで別の人(橋本治)の本を読むとこちらはすらすらいける。 ずいぶん違うもんだなあ。
というわけで3日間福岡大学へ。 特に最終日の中高生ポスターセッションは楽しかった。 機械学習とかに手を出してるのもあったり,レベルが高かったのも要因の一つだが, それぞれ考えたことをせいいっぱい話してくれるのが良かった。
どうにかWaPENのマニュアルのようなものを作りかけてみた。 どうして私が作るものはこうも無骨なものになってしまうのか。 いや,もちろん装飾とかレイアウトとかまだ全然考えてないから, そういうのが実装されていないのは当然だ。 そうでなくて,それがないままでも別にいいじゃんって思ってしまうところが問題なのだ。たぶん。
「そうだ,教員免許更新講習でやった『ガチャ』のシミュレーションを出題しよう」 と思ったが,実は去年それに似た問題を出題していたのでボツ。
整数 a[9],b,c,da←{0,0,0,0,0,0,0,0,0,0}b←0繰り返し,|b←b+1|c←random(9)|a[c]←a[c]+1|aを表示する|d←1|cを0から9まで1ずつ増やしながら,||もしa[c]=0ならば|||d←0||を実行する|を繰り返すをd=1になるまで繰り返すbを表示するといった感じで,今年はレアアイテムを作るところを問題にしようと思っていたのだった。 cが0だったらもう1回引き直すとか,c←(random(99)+10)/11にするとか, そんな風に。
レアアイテムを作ると,コンプリートにかかる回数にすごく幅が出る。 上の例だとアイテム0が1%で他が11%になるわけだが, 200回くらいかかることもあれば20回くらいで揃うこともある。 これはなかなか射幸心を煽るものだと実感した。
過去の発表資料 のページを一新。 ファイルを追加するときに手作業でHTMLファイルを更新していたのを, Pythonのスクリプトで更新するように変更した。 文書情報は別途用意することになるのだが, 自動出力することでフォーマットが確実に統一される。 ついでに表示順を新しいものが上にくるように変更した。
情報処理学会関係の論文は著作者のサイトでなら公開できるという規定があるからいいのだが, 日本情報科教育学会についてはどうなんだろう。 著作権譲渡の手続きもしていないので, 公開してもよさそうな気がするんだけど, いまいち自信がないのでとりあえず現状のままにしておく。
研究会を本校でやり,私が研究授業をやるということで緊張しまくり。 私の場合,緊張すると話し方とかが緩くなるのだが, 今回もその例にもれず。
内容は「数学の問題をプログラミングで解いてみよう」というもの。 普通だったら素因数分解とかユークリッドの互除法とか使うところを, ループをぶん回して答えを出す活動を通じて, ループを使うことになれていってほしいというのが狙い。 生徒の感想をみると,難しかったというのと簡単だったというのが分かれている。 思うに,数学の問題を読み取ること自体ができていない者がいるんじゃないかな。 それができていれば,何をすればいいかは示された例にならえばいいので, それほど難しいことではないと思う。 参加いただいた先生方には,WaPENが好評であったように思われる。
最近『Pythonによるスクレイピング&機械学習』(クジラ飛行机著,ソシム)を 読んでいる。題材として自分のサイトを使ってみたりする。 たとえば 過去の発表資料のページ からタイトルを取得してみたり,このページのコンテンツをまとめてダウンロードしてみたり。 今まで無駄にタイトルや日付をSPAN要素にしてCLASS名をつけていたのだけど, それが功を奏した感じだ。 そうしてみると,このあたりも自動生成するようにしたいなあ。
最近のサイトは自動生成される部分が多いから, 要素を指定して値を取得するのはやりやすいような気がする。 少なくとも手書きのサイトよりは。
久しぶりにマストドンに繋いでみたら, 橋本治がなくなったという投稿が流れてきた。 「桃尻娘」からはじまって, 主にエッセイ的なものを十数冊読んだが (有吉佐和子の本を何冊か読んだのも彼の影響), そもそも彼を知ったのは編み物からなんだな。 学生時代,編み物に手を出そうと(かぎ針は子供の頃にやっていたので, 棒針がやりたかった)適当に買った本の最初のページで, 彼のインタビュー記事が紹介されていた。 途方もなく細かい編み込みをしたセーターの写真があって, なんとなく憧れたものだった。 編み込みってドット絵というかデジタルに通じるものがあるから気に入ったのかな。
文芸的な方面でのコメントはたくさんあると思うので, 全然違う話で書いてみた。 彼が有吉佐和子に書いた追悼文にならって, 「いつまでもお元気で」と見送りたい。
マージした表で明らかにおかしいところを直して,
出席番号順にソートして印刷…したいのだけど,
改ページを入れまくらなければいけない。
Excelだったらわかるんだけど,
LibreOffice Calcだとどうしていいのかわからない。
あちこち検索して,改ページがあるかどうかが調べられることはわかったけど,
それを設定する方法がわからない。
結局
Option VBASupport 1を指定してExcelと同じ書き方をすることでなんとかなった。
なんとなく負けた気持ち。
(追記)「IsStartOfNewPageプロパティでいける」とのコメントをいただいた。 確かにプロパティだから,値をセットしてもいいんだよな。 そんなわけでこんなコードでうまくいった。 Col=3は,キーになる列がD列だからということ。
Sub MainCol= 3Doc =ThisComponentSheet = Doc.Sheets(0)pre = Sheet.GetCellByPosition(Col, 1).Valuer = 2DoRow = Sheet.Rows(r)Cell = Sheet.GetCellByPosition(Col,r)if Cell.Value <> pre thenpre = Cell.ValueRow.IsStartOfNewPage = TrueElseRow.IsStartOfNewPage = FalseEnd ifr = r + 1Loop While pre<>0End Sub