不定期戯言

戻る

2021.12.27 (Mon)

神奈川県情報科実践事例報告会

・今年もオンデマンドで発表させていただいた。PyPENを改良したりといった話はあちこちでしているのだけど,それでどんな授業をしてきたかという話はしていないのでこの機会に。

コメント(0)

コメントの受付は終了しました。

2021.12.20 (Mon)

解説動画

・3学期の解説動画をまとめ撮り。テキスト全部の解説を撮り終えた。あとは授業やりながら追加が必要だと感じたところを補っていけば良さそうだ。動画の時間の総計は2時間半か…これが長いのか短いのかはよくわからない。

コメント(0)

コメントの受付は終了しました。

2021.12.17 (Fri)

年末

・今年の授業が終わった。といいつつ,頭にあるのは3学期の授業準備だったりする。次年度準備は絶対に時間とかを持っていかれるから,それ以外のことは早く済ませてしまいたい。テキストの印刷して,解説動画作って…

コメント(0)

コメントの受付は終了しました。

2021.12.06 (Mon)

KASHMIR by 山羊

・大学生のときに同じサークルで活動していた山羊というバンドのCDが届いた。通しで聞いてみると,自分がこのバンドを好きだったのだなあということを改めて感じる。プログレっぽい要素が好きなのは,小学生のときにGodiegoの音に触れたあたりから来ているような気がする。35年前のこれをやりきらないと次に行けないとのことだが,私も30年前からの曲を仕上げないと次に行けないのかもしれない。

facebookのページからCD販売のページに飛べるようだ。

コメント(0)

コメントの受付は終了しました。

2021.12.05 (Sun)

CE162

・例によってWaPEN,PyPENの話。問題では省略されている初期化部分に対応すべく,開発した事柄について発表させていただいた。今年と来年の高2はPyPENで授業をするのだけど,来年の高1からはPyPENを本当に踏み台にしてPythonとかに行きたいなあという気がしている。楽しみだ。その上でPyPENがPythonに向かうときのアンチョコになってほしいと思う。

コメント(0)

コメントの受付は終了しました。

2021.11.28 (Sun)

艦これイベント

・丙提督としてやることはやった。報酬艦のScamp以外に昭南と第四号海防艦が来てくれたのでいい感じである。明日から修学旅行なので,ちょうどいいところで区切りがついた。

コメント(0)

コメントの受付は終了しました。

脱サラちゃん

・「脱サラちゃんは癒されたい」のtwitter連載が終わったようだ。この話のBGMには,PANTA「16人格」の「ふたりじゃいられない」を推したい。まさにゲン太さんがこれを歌っているように思える。

コメント(0)

コメントの受付は終了しました。

2021.10.15 (Fri)

ムスカ風に

・読める,読めるぞ!(ルーペの倍率は40倍です)

コメント(2)

のぐー wrote at 2021-10-18 09:24:

誤植があったらタイヘンそうです。

わたやん wrote at 2021-10-18 10:50:

正誤表もらっても,直せないですね。

コメントの受付は終了しました。

2021.10.10 (Sun)

WaPEN復活

・最近PyPENの方にばかり手を入れていて,WaPENがすっかりほったらかしになっていた。そこで一念発起して,PyPENから逆に実装できるところをWaPENに移植してみた。SSS2021のときに中西通雄先生に「DNCLの仕様書が新しくなってる」と指摘していただいたことも踏まえて,割り算の記号などはそれに合わせてみた。まだ動作確認は甘いが,ある程度動くようにはなっている。しかし過去との互換性はさっぱり切り捨てることにした。

・主な変更点は次のあたりか:

  • 変数宣言をできなくした。変数自体は型をもたない。
  • 入力では型を指定するようにした。「aに整数を入力する」など。
  • PyPENの構文は適当に取り込んでいる。「6個の0」などで配列の初期化はできる。
  • 識別子の全角英数を半角にするかどうか,グラフィック命令の英語/日本語,自動採点の表示/非表示だけを設定項目として残した。

マニュアルがまだ全然直せていないなあ…。いずれそのうちとか言っているとまたほったらかしになるから,早めにやるか。

・GitHubは更新したが,自分のサイトのはまだ直せていない。

コメント(0)

コメントの受付は終了しました。

2021.10.03 (Sun)

キミのミライ発見

・キミのミライ発見で,全高情研での発表をとりあげていただいた。自分がしゃべったことが文字になるのは気恥ずかしいところがまだある。

コメント(0)

コメントの受付は終了しました。

2021.10.01 (Fri)

再セットアップ

・いろいろ思うところやらしくじるところやらがあって,ノートPCの再セットアップ。ディレクトリ構成もこの際ということで整理した。okularのパッチは以前書いたものの行数を変えれば…いや,文字の表示位置がおかしいな。また直さなきゃだめか。もっと根本的にやりたいところだなあ。

・IMをどれにするのがいいのかも迷いどころ。fcitxが今風なのかなとは思うけど,何かで不都合があったような気がする…。でもその内容が思い出せない。

コメント(0)

コメントの受付は終了しました。

2021.09.13 (Mon)

LDAP

・生徒がメールを外からiPadで送受信できるようにする話。どうせパスワード忘れが頻発するので,moodleで作った授業用サイトに全員を登録して,パスワード変更を外部からでもできるようにする。こういったことができるのも,アカウント管理を自前でやっているからだと思う。

コメント(0)

コメントの受付は終了しました。

2021.09.11 (Sat)

twitterデビューから14年

・どうやらtwitterで初めてつぶやいてから14年たったらしい。この日付ではあるが,どの9.11とも関係ない。

コメント(0)

コメントの受付は終了しました。

2021.09.10 (Fri)

Linux-Fake-Background-Wabcam

・前に送ったpatchをrevertする旨の連絡をいただいた。作者として本来こうしたいという方向と違ってしまうということらしい。そういうことであれば十分納得できる話だ。わざわざ連絡をくださったことが嬉しい。お礼に直し忘れたところを指摘するパッチを送っておいた。自分のところでやりたいことは運用でなんとかできる。

・ソフトウェアを公開で作るということは,こういう調整役をやるということでもあるということだ。

コメント(0)

コメントの受付は終了しました。

2021.09.05 (Sun)

Face Depixelizer

・最近Face Depixelizerというのが流行っているようだ。写真のモザイクを取り去るというのが本来の目的らしいが,CGからどんな顔が「生成」されるかというネタで大喜利状態になっているようだ。そこで私もいつものアイコンから画像を生成してみた。これは…できすぎではないかな。もともとギザギザな画像だからそれがモザイクっぽく処理されたのだろうか。

アイコンを変換した画

コメント(0)

コメントの受付は終了しました。

2021.08.29 (Sun)

SSS2021

・今年もオンライン。座長をなんとか終えたあと,自分の発表。「DNCL2(仮称)の学習環境の実装に関する考察」というタイトルで,DNCLの過去を振り返りつつ,DNCL2(仮称)の学習環境に思いを巡らす…というはずだったのだが,やはりPyPENをどうしようかという話になってしまうのだった。

・発表するとやはりいろいろなご意見をいただけるのがありがたい。DNCLの仕様書と呼ばれるものがアップデートされていたことを見落としていたのは確かに手落ちだった(ご指摘感謝>中西通雄先生)。また「このような擬似言語を使った教育は他国で行われているのか」という観点は確かに教務深い。

コメント(0)

コメントの受付は終了しました。

2021.08.22 (Sun)

PyPENに構文追加

・今回やったのは

  • 配列に整数をかけることで繰り返しを表すことにした
  • 「aの要素bについて繰り返す」の構文

かな。SSS2021の原稿を書いた時点ではこれらはなかったのだけど,勢い余って実装してしまった。

コメント(0)

コメントの受付は終了しました。

2021.08.19 (Thu)

ワクチン2回目接種

・ファイザー社のワクチン2回目の接種完了。6時間ほど経ったが,そのあたりの筋肉が少し痛いという程度。しかし時間が経ってからいろいろ出てくるというケースもあるようなので,様子を見よう。

コメント(0)

コメントの受付は終了しました。

2021.08.15 (Sun)

教員免許状更新講習

・今年もオンラインで講師を務めたわけだが,全員がマイクミュートという状況でしゃべるのがこんなに怖いとは思わなかった(昨年度は人数が少なかったからビデオもつけていて反応が見られた)。自分が話したことが伝わっているのかどうかわからない。オンデマンド用に動画撮影しているときには,反応がないのが当たり前だからそんなことは感じなかったのだが…。

・今回はOBSを使って,クロマキー合成で背景を抜いて,画面の上に乗っかってしゃべってみた。なんだかLinux-Fake-Background-Webcamで自分がよく消されてしまうように思う。これは調整したほうがよさそうだ。

・実はこの講習に先立ってPyPENの入力支援ボタンにすごく些細な変更を加えた。分岐やループのブロックを示す空白を,入力支援ボタンでは入れないことにしたのだ。というのも,その前の行でEnterを押せば自動的にインデントが入るようになっているのだから,予めスペースが入っていると操作の直行性がなんだか悪くなるように思われたからだ。

コメント(0)

コメントの受付は終了しました。

2021.08.10 (Tue)

全高情研全国大会(大阪大会)

・今回もオンデマンド発表。公開されている動画は全部一通り目を通した。リアルタイムとちがって見逃す心配がないので,実はこの方がお得かなとか思ったりもする。もちろんリアルタイムだと質疑とかでライブなところはあるのだけど。

コメント(0)

コメントの受付は終了しました。

2021.08.03 (Tue)

PyPENのエディタ

・PyPENにはURLにcode=…でコードを入力した状態で開くという機能があるが,これをするとカーソル位置の計算がおかしくなるのが気になっていたので修正。先月末に行った修正とこれで,だいたい不満に思っていたところは解決したように思う。

コメント(0)

コメントの受付は終了しました。

2021.07.29 (Thu)

ワクチン

・新型コロナのワクチンを接種。今のところ注射したその場所周辺が若干痛む程度でしかないのだが,どんな副反応が出るんだろう。一応用心のために鎮痛解熱剤は昨日のうちに買っておいた。

コメント(0)

コメントの受付は終了しました。

PyPENエディタ方面の修正

・昨日までの3日,学校で情報の講座をやってそこでPyPENを使っていたのだが,使い勝手の点で気になる部分が出てきたので修正。たとえば入力支援ボタンを使うとエディタ部分がスクロールしてしまうこととか,右クリックメニューを変更しなくちゃとか,要するに日本語変換を一切必要とせずにプログラミングできるようにする修正を行った。よくある全角半角の混乱が防げるんじゃないかなと思っている。

・しかし,たとえばイコールを入力するために「いこーる」を変換するという面倒なことをやる生徒って実際いるわけで,そりゃケータイでやろうと思ったらそれがけっこう手っ取り早いんだからしょうがないわなとは思うものの,何とかしたいことではある。

コメント(0)

コメントの受付は終了しました。

2021.07.22 (Thu)

クロマキー合成

・全高情研のオンデマンド発表の動画を撮るにあたって,クロマキー合成用の緑布を買ってみた。さっそくセットしてOBSのフィルタを使ってみたが,なんかいまいち。背景が抜けるのは抜けるんだけど,若干のノイズが残る。これって背景にも光あててきれいな緑にしないとうまくいかないのかな。

・そんなわけでこの背景を使うことは諦めて,いつもZoomで背景合成に使っているLinux-Fake-Background-Webcamで背景を緑一色の画像にして,それをOBSのクロマキーフィルタに通してみたらきれいに背景が抜けた。

・そのLinux-Fake-Background-Webcamがかなり変化していることにも気づいた。Pythonのスクリプト一発になったようなので扱いは楽になっているはずなのだが,自作の背景切り替えプログラムがうまく対応させられない。これまではSIGINTを送ると背景切り替えしていたのだが,pause/unpauseの切り替えになってunpauseのときに画像を切り替えるということになったようだ。さて,どうやって対応しようかな。

コメント(0)

コメントの受付は終了しました。

2021.07.19 (Mon)

PyPEN仕様変更&デバグ

・代入を「=」,等値比較演算子を「==」に限定することにした。また比較演算子もa<b<cみたいなのをOKにした。それに伴い,マニュアルやサンプルプログラムを修正。また,配列や辞書に不具合があったのでこれも修正。とりあえず落ち着いたかなという感じ。

コメント(0)

コメントの受付は終了しました。

2021.07.18 (Sun)

地区合同勉強会

・久しぶりにオフラインな勉強会。講師は青山学院大学の伊藤一成教授。共通テストのサンプル問題を中心に話を伺ったが,問題を解く上での視点の違いについて考えさせられた。たとえばプログラミングの問題で,私は書く立場で考えるのだが生徒の多くは読む立場からの視点ではないかということだ。これは目からウロコ。プログラムを書く人になる場合はともかくとして,使う立場であれば多くの場合は読めればいいのだし。

コメント(0)

コメントの受付は終了しました。

2021.07.15 (Thu)

MRTG

・職場の生徒LANのトラフィックがどうにもならない。MRTGを入れて観察すると,12.5MB/sあたりでサチっている様子。これっと要するに100Mbpsだよな…ということでギガハブを調達してもらって入れ替えたら,嘘のように改善した。といっても12.5MB/sを超え続けているわけではなくて,一瞬超えた気はするけどその後はもっと低いレベルで上下している。まあ,ダメだったときの様子はおよそ想像はつくのでよしとしよう。

コメント(0)

コメントの受付は終了しました。

2021.07.01 (Thu)

万年筆

・同僚が万年筆のことを楽しげに語っているのに触発されて,preppy以外の万年筆を買ってみることにした。インクは青墨を使い続けたいのでセーラーのプロフィットスタンダードを選択。ペン先は14金で値段も手頃,名入れもしてもらえるということであっさり決定。手帳で使うので細字。

コメント(0)

コメントの受付は終了しました。

2021.06.24 (Thu)

生徒のiPad

・生徒に購入してもらうiPadが届いた。といっても試験前だから本格運用は7月かな。Wi-Fiの具合とかいろいろ気になるが…どうなるだろう。

コメント(0)

コメントの受付は終了しました。

2021.06.19 (Sat)

艦これ春イベント

・最後のステージの最後のゲージで根負けして丁提督になったが,なんとか終了。今回増えたのはNorthampton,桃,照月,有明,石垣,屋代,伊203,Honoluluであった。これで明日は仕事に専念できる。掘りなんてとてもじゃないけどできない。

コメント(0)

コメントの受付は終了しました。

2021.06.09 (Wed)

PyPENをDNCL2にもっと寄せるか

・Pythonではa<b<cのように比較演算子を続けることができる。Cでもエラーにはならないが,それはa<bかつb<cとは違う意味になるので初心者には厳しい。とりあえずPyPENもそれに合わせた変更ができることは確認したが,これをリリースするかどうかは悩みどころだなあ。

・今のところ代入は「←」で比較は「=」を標準にしているが,それぞれ「=」や「==」でも書けるようになっている。どちらを標準にするか,あるいは前者を廃止して後者のみにしてもいいのではないかと言ったことで悩んでいる。というのは,共通テストのサンプル問題が後者になっていて,DNCLの後継(仮称DNCL2)はそちらになるのではないかという話があるからだ。今まで作ったものを書き換えなくてはいけなくなるわけだが,それでも変更するメリットがあるのかもしれない。これはかなり大きい変更になるからオプション扱いは難しい…いや,パーサを2つ用意しておいて使い分ければいいのか?それはそれで動作確認が大変だが…。

コメント(0)

コメントの受付は終了しました。

2021.05.31 (Mon)

おまいら15年前何してたよ

・Twitterで#おまいら15年前何してたよというタグをみかけたので,15年前のブログを読み返してみた(このブログは2003年から始まっている)。いやぁ,いろいろあるわ。鬱病がだいぶアレだったり,文鳥を飼い始めたり,東京に行ってPENを使うことに決めたり,C#使い始めたり,マインドマップの本を図書館に入れてもらったり,SSSに初参加したり,Syd Barrettが亡くなったり…なんと言っても本をけっこう読んでいた。最近は本を積むことに何の罪悪感も感じなくなってるなあ。

・情報という教科が始まったばかりで,あちこち右往左往していた。そして随分発言がトゲトゲしていた。鬱病のことも影響しているだろうけど,今とは別のいろいろなことを抱えていたからなあ。

コメント(0)

コメントの受付は終了しました。

2021.05.25 (Tue)

PyPENで「〜個の〜」の副産物

・某解説動画を作っていたら,代入に「=」を使うとエラーになる部分があった。てっきり「代入の定義から間違って削っちゃったかな」と思って「←」に変更してやり過ごしたのだが,調べてみるとそういう事実はない。エラーになるのは「a=9個の0」というように「〜個の〜」を使っているところで,結局「〜個の〜」を演算子扱いしていることにより,「=」の結合規則(nonassoc)の影響を受けてしまったということらしい。「←」は演算子扱いしていないのでその影響は受けない。

・「=」などの比較演算子をnonassocにしているのは,たとえば「a==b==c」が「a==(b==c)」と解釈されて,「エラーにならないけど思ったのと違う挙動をする(Cっぽい感じ)」ことを避けて「エラーにする」ためだ。しかしPythonでは「a<b<c」のような比較が認められているのだから,それに合わせて「a==b==c」を「a==bかつb==c」というように解釈するのも一つの解決になる。そういう感じの比較クラスを作ってしまえば解決するような気がするのだが,どうしたものか。DNCL2ではこのあたりどういう扱いになるんだろう。

・そもそもは「=」が代入にも比較にも使えるとしてしまったことに原因があるので,比較は「==」でないとダメ,とするのもまた一つの解決になる。でもそれだとDNCL2と挙動が違ってしまう。

・もう一つ解決方法があって,「=」などの比較演算子よりも「〜個の〜」の優先順位を上げて,「a=4個のx=y」のような比較演算を使うときは「a=4個の(x=y)」というようにカッコを強制するというものだ。それなりに悪くない気はするが,「a=4個の1+2」にはカッコがいらないのだからちょっと気分が悪い。

コメント(0)

コメントの受付は終了しました。

2021.05.22 (Sat)

高等学校「情報」実践事例集

・文科省から出された表題の事例集の中から,プログラミングに関するものを紹介する動画を作って再生リストにしてみた。例によって一発撮りで細かい編集はしていないので,動画としての出来はよろしくないが,それはそれ。

コメント(0)

コメントの受付は終了しました。

2021.05.20 (Thu)

結婚32周年

・そんなわけで娘たちもアラs

コメント(0)

コメントの受付は終了しました。

2021.05.19 (Wed)

PyPEN大改造

・文科省のサイトで高等学校「情報」実践事例集が公開されたので,プログラミングのところをPyPENで実装してみようと思った。元ネタがPyPENのものは問題ないのだが,ライフゲームについてはなぜかうまくいかない。これは明らかにPyPENのバグなわけで…しかも先日気になっていたところと同じところに根がありそう。そんなわけで間に合わせ的にやってる前処理関数を全部廃止して,その代わりにマメにするべき処理をスタックに積むようにしてみた。これでだいぶ見通しは良くなったはず。なお,ライフゲームのプログラムはこんな感じ。たぶん実践事例集のプログラムは盤面初期化のときのhとwが逆になってる。

コメント(0)

コメントの受付は終了しました。

2021.05.08 (Sat)

小江戸らぐ

・「小江戸らぐ5月のオフな集まり」というオンラインの勉強会に参加させていただいた。「オフ」というところに突っ込んではいけない。半年ぶり2回目になるということで,okularに強引なパッチを書いた件について発表した。フォントに関する情報を真っ当に得る方法があるはずなのに…という話で,もっと調査の幅を広げたほうがいいのかもしれないという意見があった。私が調べたのはpopplerのコードそのものについてだが,そもそもKDEやQtではそのあたりをどのように処理しているのかというところから見ていくとよさげであろうと。気長にやるかな。

コメント(0)

コメントの受付は終了しました。

2021.04.25 (Sun)

vokoscreenNG

・解説動画を撮ろうと思って準備したが,vokoscreenNGが起動しない。仕方ないのでOBS Studioで録画したが,すっきりしない。

・ソースを追いかけても,QMediaPlayerのコンストラクタ内部で落ちているのでどうしようもない。ライブラリ周りをしばらく調べて,intel-media-va-driverパッケージをintel-media-va-driver-non-freeに変えたら動くことがわかった。といっても環境依存な話だけど。

・(追記)録画したのを見直してみたら,Gromit-mpxで画面に手書きした分が記録されていなかった。OBS Studioだとソースの管理がしっかりしてるから,そこに描画されていない以上当然のことではあるのだが。そんなわけなので,今週の早いうちにvokoscreenNGで撮り直すことにする。

コメント(0)

コメントの受付は終了しました。

2021.04.21 (Wed)

スクールプランニングノートのカバー

・スクールプランニングノートも2年目,ということでノートカバーを買ってみたのだが,これがなかなかいい。東急ハンズで現物を見て選んだものなのだけど,メーカとか商品名とかは覚えていない。授業に行くときも会議に出るときもこれがお供。

コメント(0)

コメントの受付は終了しました。

画面への書き込みとペンタブレット

・情報教室ではプロジェクタで見せている教員画面をvncでも生徒に送っている。書き込んで説明したいときにはスクリーンを上げてホワイトボードを使っているのだが,反射したりとかいうこともあってあまり良くない。そんなわけで画面に書き込めるツールがないかと探して,Gromit-MPXを導入することにした。

・しかしマウスだと字が書きにくい。Linuxで使えるペンタブレットはないか…ということで調べてみると,XP-Penとかのが良さげらしい。そこで安いのを買ってみたが,わりといい感触だ。後で自分用のも買っておこう。驚いたのは,Gromit-MPXが筆圧を感知して線が太くなったりすることだ。

コメント(0)

コメントの受付は終了しました。

2021.04.11 (Sun)

今年度の環境

・LibreOfficeは7系が使いたいということで,ちょっと気が早いけど生徒の端末はBullseyeにした。いろいろ変わったけどまあそれも新鮮だ。しかし学校全体での動きもあるので,いくらかの部分はそれに合わせていこうと思う。Googleのアカウントを生徒に与えるということなので,Googleドキュメントをいくらか使っていければと思っている。それに合わせて授業スライドもGoogleスライドを使ってみることにした。過去の資産がそのまま使えないのは痛いが,どうせ毎年作り直してるんだし。moodleは例年の通り使っていく。

コメント(0)

コメントの受付は終了しました。

2021.04.04 (Sun)

《整数》個の《値》

・車の6ヶ月点検を待っている間に,PyPENに配列の初期化を導入しようと考えていた。「〜を〜で初期化する」としたいのだけど,配列の長さが指定できない。「〜個の〜で初期化する」として作りかけたのだけど,それだったらいっそ「〜個の〜」で配列を生成して,それを代入すればいいのではないかと考えた。そんなわけで実装してみた。

・しかし一つ問題がある。「a←10個のrandom()」とすると,全部同じ値になってしまうのだ。これを解決するには,あらゆる構文について値の評価をもっときちんと再帰的にやらなくてはいけない(はず)。それは大改造になるので,すぐには手をつけられない。しかしこれを直せば,いろんなことが簡単になるのだと想像する。

コメント(0)

コメントの受付は終了しました。

2021.03.29 (Mon)

KB5001649

・職場で使ってもらっているプログラムが,印刷のときに「汎用的なGDI+エラー」とかいうやつで止まってしまう。IDisposalなオブジェクトのDisposeを忘れていた件はかなりきっちり対応したはずなのだが。Fontを作っては壊ししているのがいけないのかと思って,できるだけ使い回せるようにキャッシュしておくことにしてみたがダメ。Fontの生成は数回で済んでいるんだから,Dispose忘れがあっても大したことにはならないはず。

・さらに検索を続けると,KB5001649で対応しているものの,インストールに失敗したりする例があるとのこと。なんとか我慢して問題を起こしているPCにインストールしてみたら,あっけなく印刷ジョブが終了した。あの悩んだ時間を返してくれ。

コメント(0)

コメントの受付は終了しました。

2021.03.28 (Sun)

popplerでのworkaround

・Annot::layoutTextから呼んでいるCharCodeToUnicode::mapToCharCodeの中で,Cmapから対応する番号を探しているのだけど,これでU+0020やU+3000が番号を返さなくて困っている様子。そこで適当にU+0020には1,U+3000には633を返してやることで,とりあえず空白はそれっぽく表示できるようになった。633という数は…無理やり探しあてた。いろいろ妙なところはあるけどまあ自分で使う分にはいいか。備忘録的にパッチを残しておく。

--- poppler-0.71.0.orig/poppler/Annot.cc
+++ poppler-0.71.0/poppler/Annot.cc
@@ -2668,7 +2668,22 @@ static GfxFont * createAnnotDrawFont(XRe
   Dict *fontDict = new Dict(xref);
   fontDict->add("BaseFont", Object(objName, fontname));
   fontDict->add("Subtype", Object(objName, "Type0"));
-  fontDict->add("Encoding", Object(objName, "WinAnsiEncoding"));
+  fontDict->add("Encoding", Object(objName, "Identity-H"));
+  Dict *subfontDict = new Dict(xref);
+  subfontDict->add("Subtype", Object(objName, "CIDFontType0"));
+  Dict *cidSystemInfo = new Dict(xref);
+  cidSystemInfo->add("Registry", Object(new GooString("Adobe")));
+  cidSystemInfo->add("Ordering", Object(new GooString("Japan1")));
+  subfontDict->add("CIDSystemInfo", Object(cidSystemInfo));
+  Array *widthArray = new Array(xref);
+  widthArray->add(Object(0));
+  widthArray->add(Object(632));
+  widthArray->add(Object(500));
+  subfontDict->add("W",Object(widthArray));
+  subfontDict->add("DW", Object(1000));
+  Array *descArray = new Array(xref);
+  descArray->add(Object(subfontDict));
+  fontDict->add("DescendantFonts", Object(descArray));
 
   Dict *fontsDict = new Dict(xref);
   fontsDict->add(resourceName, Object(fontDict));
@@ -2769,7 +2784,7 @@ void AnnotFreeText::generateFreeTextAppe
 
   // Set font state
   appearBuilder.setDrawColor(da.getFontColor(), true);
-  appearBuilder.appendf ("BT 1 0 0 1 {0:.2f} {1:.2f} Tm\n", textmargin, height - textmargin - da.getFontPtSize() * font->getDescent());
+  appearBuilder.appendf ("BT 1 0 0 1 {0:.2f} {1:.2f} Tm\n", textmargin, height - 2 * textmargin - da.getFontPtSize() * font->getDescent());
   appearBuilder.setTextFont(da.getFontName(), da.getFontPtSize());
 
   int i = 0;
--- poppler-0.71.0.orig/poppler/CharCodeToUnicode.cc
+++ poppler-0.71.0/poppler/CharCodeToUnicode.cc
@@ -616,6 +616,8 @@ int CharCodeToUnicode::mapToCharCode(Uni
         return 1;
       }
     }
+    if(*u == 0x0020){*c = 1; return 1;}
+    if(*u == 0x3000){*c = 633; return 1;}
     *c = 'x';
   } else {
     int i, j;

コメント(0)

コメントの受付は終了しました。

2021.03.26 (Fri)

popplerのソースと格闘

・13日に書いた,Okularの注釈(インラインテキスト)で日本語文字が表示できない件について探っている。原因はPopplerの方にあるのだろうと思われる。GfxFont::makeFontの中でGfx8BitFontでなくGfxCIDFontが呼び出されるためには,getFontTypeでfontCIDType0が帰らなくてはいけないのだが,そのためにはfontDictにいろいろ設定がなされていなくてはいけない。Annot.ccのcreateAnnotDrawFont内でfontDictを作っているが,これにはBaseFont,Subtype,Encodingしか設定されていない。しかしGfxFont::getFontTypeでfontCIDType0が返るためには,最低でもDescendantFontsを設定する必要がある(EncodingもIdentity-Hに変更)。

・以上のことで日本語文字は表示されるようになったが,英字の表示がおかしい。文字幅が日本語文字と同じになっている様子。Annot::layoutTextから呼んでいるGfxFont::getNextChar(から継承しているGfxCIDFont::getNextChar)がGfxCIDFont::widthsを参照しているのだが,これの設定はGfxCIDFontコンストラクタに渡されるfontDictから情報を得ている。結局fontDictに戻ってくるわけだ。フォントを指定すればfontDictが得られるような仕組みくらいないとおかしいんだけど,それがまだ見つけられない。

・そもそもこんなことになっているのは,AnnotFreeText::generateFreeTextAppearanceでGfxFont::makeFontを呼び出すことになっていて,そのときのfontDictはfontDictionaryから取り出されたもので,そのfontDictionaryはfontResoucesから取り出されたもので,そのfontResourcesはresDictから,そのresDictはresourceObjから,そのresouceObjはformからそれぞれ取り出されているのだけど,肝心のformがdocから取り出されたCatalogにあるはずなのに,それが見つからないのだ。コメントに「そんなときはてきとーにHelveticaにしとく」と書いてある通りになっていて,第一段落で書いたのはそのHelveticaを無理やり変更したという話。

・そんなわけでCatalogのコードを読む。Catalog::getFormではacroFormから生成されたFormが返されるので,acroFormについて調べることにする。Catalogコンストラクタの中で,acroFormはcatDictから取り出されており,catDictはxrefから取り出されている。あれ,acroFormがNullだ…詰んだ。

コメント(0)

コメントの受付は終了しました。

2021.03.19 (Fri)

情報処理学会全国大会

・一般セションでの発表は初めてだったりする。「Webブラウザ上のプログラミング学習環境PyPENを用いた授業の提案」ということで,資料はいつものところ。zoomの扱いには慣れていたつもりだったのだが,カメラをONにするのを忘れて講演に入ってしまったのが悔やまれる。

・やはり人前で発表すると,アイディアとかがもらえるのでありがたい。小さい課題もあれば大きい課題もあって,実現に近づけるのが楽しみである。私自身も他の人の発表に何件かコメントさせてもらったが,そういうものになっていたらいいな。

コメント(0)

コメントの受付は終了しました。

2021.03.13 (Sat)

CE159の発表を聞きながら

・wPENではブレークポイントを実装しているというが,行番号とかのところでは何も起きない。どうやってるんだろうと質問したら,ブレークポイントという命令を入れているのだという。なるほど,それはいいアイディアだ。そんなわけでPyPENにも「一時停止する」という命令を実装した。

コメント(0)

コメントの受付は終了しました。

poppler

・okularの注釈にあるインラインテキストで,フォントの設定が効いていない。さぐってみると,popplerのAnnotation関係のような気がしてきた。なんとか突き止められるといいな。

コメント(0)

コメントの受付は終了しました。

2021.03.10 (Wed)

モンテカルロ法でeの近似値

・[0,1)の一様乱数を1を超えるまで足す回数の平均値がeだということを奥村先生のツイートで教えてもらったので,PyPENでもやってみた。たしかにeっぽい値になることは確認できた。しかし整数を返すようになっているPyPENのrandom関数をわざわざ実数に戻すというのは,どう考えても二度手間だ。というのも,PyPENのrandom関数のもとになっているJavaScriptのMath.randomは最初に述べた[0,1)の一様関数で,それをわざわざ整数に変換しているからだ。そんなわけで,引数を入れずにrandom関数を呼び出したときにはMath.randomの値をそのまま出力するように変更した。プログラムはこんな感じからこんな感じに変わった。

コメント(0)

コメントの受付は終了しました。

2021.03.05 (Fri)

PyPENの改良(何度目だ)

・勤務校の講師のI氏から「《値》のところをカーソルで移動できるようにしたらどうか」と提案があった。なるほど,それができると生徒が間違ったところを消すことも少なくなるだろうし,キーボードでの操作にも慣れてくれるような気がする。そんなわけでCtrl+左右で移動できるようにしてみた。

・I氏は「提案するばかりで…」と言うのだが,そのおかげでいろいろ改良ができている。私は彼女を共同開発者だと考えている(一方的にだが)。

・ついでにループの「繰り返す」がない構文を標準にしてみた。というのは共通テストの試作問題が「増やしながら:」になっていたことに合わせてということでもあり,学年末テストでプログラムを手書きしていて面倒だと思ったからでもある。

コメント(0)

コメントの受付は終了しました。

2021.02.27 (Sat)

PyPENでWebフォント

・ふと思うところあって,M+フォントのスペース文字に小さい点を入れたものをWebフォント化してPyPENに導入してみた。どういう表示がわかりやすいのかイマイチ自信がないのだけど。

・「思うところ」というのはもなかこみフォントのことを思い出す機会があって,空白文字の個数をこれで解決すればいいかなと思った次第。全角空白をまだいじる必要があるかなとは思うけど,とりあえず公開。

コメント(0)

コメントの受付は終了しました。

2021.02.23 (Tue)

PyPENにCodeMirrorを導入

・PyPENのエディタ部分をCodeMirrorにしてみた。BackSpaceの効きがいまいちだけど,だいたい使えるレベルになったと思う。明日からの授業で生徒に披露するか,迷っている。試験問題作らないと…。

コメント(0)

コメントの受付は終了しました。

2021.02.21 (Sun)

機械学習・データサイエンス

・10時から17時までの講座。Colabを使っての実習。いろいろおもしろいことができるものだ。クジラ飛行机さんの本もなんとか最後まで読まなきゃな。

・

コメント(0)

コメントの受付は終了しました。

2021.02.20 (Sat)

日本情報科教育学会東海中部支部総会

・LEDテープを買ってしまった。遊べるかな。

・

コメント(0)

コメントの受付は終了しました。

2021.02.14 (Sun)

PyPENで変数確認

・授業をやっていて気になったところに手を付ける。実行ボタンを押して入力待ちになっているところで採点ボタンを押すと,入力回数を間違えてしまうことへの修正。また「変数確認」ボタンを追加。これでプログラムの中断とかステップ実行とかのときに変数の値を確認できる。これもCE158での学生さんの発表に刺激を受けてのものだ。

コメント(0)

コメントの受付は終了しました。

2021.02.08 (Mon)

休み明け

・先週は勤務校の入試ということで,生徒は出校させなかった。例年は入試の合間の日は授業だったのだが,今年は新型コロナの影響でそのようにしたということだ。一応課題として,テキストの問題をやって動画で答え合わせするように指示は出していた。しかし再生回数から見ると…あんまりやってないなあ。試験前にでもやってくれるといいのだが。

コメント(0)

コメントの受付は終了しました。

2021.01.31 (Sun)

結局「ひらくPCバッグ」に戻る

・「ひらくPCバッグ」を2年ほど愛用していたのだが,結局右肩に掛けることになるのがアレな気がして,新しくリュックを買ってみたのが今月上旬。しばらく使ってみたが,結局「ひらくPCバッグ」の良さを再認識することになった。開けたらすべての内容物にアクセスできるのがいい。普通のリュックだと底に埋もれてしまうのだ。そんなわけで週明けからまた「ひらくPCバッグ」に戻る。そのうちちゃんと洗ってやろうかな。

コメント(0)

コメントの受付は終了しました。

2021.01.30 (Sat)

ActivePerl(続)

・ActivePerlをやめてStrawberry Perlにしようかとも思ったが,なんだか悔しいのでもうちょっと粘る。手元でstateでごちゃごちゃやった分のモジュールがActiveState上のプロジェクト内にビルドされている感じなのかな。そっちにできているPerlのバイナリをインストールしたらちゃんとモジュールが使えたので,そんなに間違ってはいない気がするのだけど,本当にこれでいいのかは疑問。

コメント(0)

コメントの受付は終了しました。

2021.01.25 (Mon)

ActivePerl

・入試業務にPerlを使っていることを前に述べたが,新しいActive Perlでのモジュールのインストール方法がわからない。GUIのパッケージマネージャがなくなっている。CUIでいろいろやっているのだけど,なんだかうまくいかない。どうしたものか…。当面は古いPerlでしのいでみるが,ActiveStateには「32ビット版とか古いやつをActiveState Platformで使うのは有料」みたいなことが書いてあるので,27日の推薦入試が終わったら再度取り組むとしよう。

コメント(0)

コメントの受付は終了しました。

2021.01.22 (Fri)

職場PCがヤバい

・そろそろ入試時期なので,集計作業とかのためのPCの環境を整えたいのだが,なぜかOfficeの起動さえうまくいかない。いろいろまずそうなので再セットアップすることにする。このPCは必要最小限のソフトしか入れてないのだが,それでも素の状態から復旧するとなるとかなりの手間ではある。Windowsの大きいアップデートにも対応しなくてはいけないし。

・入試の作業は自作のC/Sと印刷ユーティリティとPerlでだいたい出来ているのだが,データの同期に使っているSubversionのこととか,SSHの鍵関係とか面倒だ。

コメント(0)

コメントの受付は終了しました。

2021.01.13 (Wed)

Youtube

・この3学期は授業の解説動画をYoutubeにあげておいて,授業用のmoodleからリンクしている。欠席したときとかに見てくれればということなのだが,プログラミングの内容だから端末が2つないと厳しい。でもこういう動画は作っておいて損になることはないだろう。

・1学期は勤務校のチャンネルで限定公開にしていたが,今回は自分のチャンネルで公開している。これは年末に神奈川県の事例発表会で勢いがついたからで,同じようなことが広まればいいなという思いもある。もちろんいわゆるYoutuberの人たちの動画とは比べ物にならないのだが,チョーク&トークが上達したのと同じようにこれも上達できるだろう。もちろん意識してそうしないといけないのは言うまでもないのだけど。

コメント(0)

コメントの受付は終了しました。

2021.01.12 (Tue)

PyPENでの授業開始

・3学期になってPyPENでの授業が始まった。PENを使っていたときからずっと感じるのだが,「入力支援ボタン」になかなか慣れてくれない生徒が一定数いる。これは述語が後ろに来る日本語の語順のせいかもしれないと思うのだが,どうなんだろうか。もちろん,どうであったとしても日本語の語順が変わるわけでもないのだが。多い間違いは出力の「〜を表示する」を「〜と表示する」とするもの。

・全角で記号とか変数とか数値を入力する生徒は多すぎて,半分諦めている。PyPENではそのあたりは内部的に半角に直しているのでエラーにならない。しかし気持ち悪い。

コメント(0)

コメントの受付は終了しました。

2021.01.02 (Sat)

LEUCHTTURM

・MOLESKINよりいくらか裏写りが少ないのと,ページ番号がついていることが気に入っているのだが,LOFTでもハンズでも扱いが縮小されている(A5版しか扱っていない)。ハンズの名駅店ではあるかもしれないとは言われたのだが,不確実なのもアレなのでamazonで注文。しかし黒しかないのは不満。伊東屋オンラインだと色がそろっているようなので,これからはそちらにしようかな。

・やっとロイヒトトゥルムという読み方を覚えた。

コメント(0)

コメントの受付は終了しました。

2021.01.01 (Fri)

PyPENの初hack

・年明けの初hackということで,PyPENに2つの修正を行った。

  • 「〜を表示する」「表示する(〜)」の両方が使えるようにした。
  • 多次元配列はa[b,c]でもa[b][c]でも扱えるようにした。
  • Tab, Shift+Tab, Backspaceの挙動をよくあるエディタに近づけた。ブロック単位でのインデントとか。

これでいくらか「ミッドナイト宣言」に近づいたように思う。

コメント(2)

じょに wrote at 2021-01-02 08:20:

PyPENサイコー!
某動画で、PyPENイチオシ紹介する予定です。
PyPENこそが標準なので、DNCL2の仕様が追加・変更になり次第、すぐに対応してね。

わたやん wrote at 2021-01-02 20:20:

兼宗先生が言った「僕たちは未来を作っているんだ」を心に刻んでいきたいです。

コメントの受付は終了しました。