不定期戯言2

戻る

検索条件:24ページ

2021/04/25(Sun)

vokoscreenNG

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

ソースを追いかけても,QMediaPlayerのコンストラクタ内部で落ちているのでどうしようもない。 ライブラリ周りをしばらく調べて,

といっても環境依存な話だけど。

(追記)録画したのを見直してみたら,

OBS Studioだとソースの管理がしっかりしてるから, そこに描画されていない以上当然のことではあるのだが。 そんなわけなので,今週の早いうちにvokoscreenNGで撮り直すことにする。

2021/04/21(Wed)

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

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

しかしマウスだと字が書きにくい。

そこで安いのを買ってみたが,わりといい感触だ。 後で自分用のも買っておこう。

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

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

2021/04/11(Sun)

今年度の環境

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

2021/04/04(Sun)

《整数》個の《値》

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

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

2021/03/29(Mon)

KB5001649

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

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

2021/03/28(Sun)

popplerでのworkaround

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

Dict *fontDict = new Dict(xref);

+ Dict *subfontDict = new Dict(xref);

+ Dict *cidSystemInfo = new Dict(xref);

+ Array *widthArray = new Array(xref);

+ Array *descArray = new Array(xref);

Dict *fontsDict = new Dict(xref);

// Set font state appearBuilder.setDrawColor(da.getFontColor(), true);

appearBuilder.setTextFont(da.getFontName(), da.getFontPtSize()); int i = 0;

return 1; } } + if(*u == 0x0020){*c = 1; return 1;} + if(*u == 0x3000){*c = 633; return 1;} *c = 'x'; } else { int i, j;

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を設定する必要がある

以上のことで日本語文字は表示されるようになったが, 英字の表示がおかしい。 文字幅が日本語文字と同じになっている様子。 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だ…詰んだ。

2021/03/19(Fri)

情報処理学会全国大会

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

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

2021/03/13(Sat)

poppler

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