不定期戯言

戻る

« | 2019 | Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec | »

2019.10.29 (Tue)

PyPENやらWaPENやらアップデート

・勤務校に非常勤講師として勤務していただいている井上氏から,PyPENやWaPENについての改善点とかバグ報告をいただいている。PyPENではPythonのコードを出力すべきだというアイディアにはすぐ乗っかった。その後,3学期のテキストについて検証を進める中で,けっこう致命的なバグ報告をいただいた。これはソースにも「手抜き(?)」とコメントがあったところで,その通り手抜きだったのできちんと処理をするコードに書き換えて事なきを得た。彼女には感謝あるのみ。

コメント(1)

53連続ぶるんw wrote at 2019-10-31 10:57:

井上氏のこと男性だと思ってた。

コメント投稿

日本語の文字が入っていないものは受け付けません。URL欄は使わないでください。

Name:
URL (NEVER USE):
Comments:

トラックバック(0)

トラックバック用URL: https://watayan.net/blosxom.cgi/informatics/201910290001.trackback

2019.10.13 (Sun)

PyPENからPythonのコードを吐く

・本校に来てくれている非常勤講師のI氏の提案により,PyPENで作ったプログラムをPythonに書き直したものを出力できるようにした。これをコピペしてPythonに食わせれば実際に動くということで。

・あっという間に奥村先生から「改行なし出力の処理を忘れてる」とツッコミが入ったので,大急ぎで修正。

コメント(1)

おしりいじり虫 wrote at 2019-10-21 09:03:

それは大変でしたね。お疲れ様です。

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

トラックバック(0)

トラックバックの受付は終了しました。

2019.10.04 (Fri)

体育祭

・今年も腕がよく日焼けした。

・クラス対抗リレーで教員チームの一人として走る…はずだったのだが,一人半周走るところを一周しちゃった人がいたりして,出る機会を失ってしまった。生徒はかなり期待していたようなので申し訳ない。

コメント(1)

むぎまるのパンツの生地の一部 wrote at 2019-10-21 08:56:

ジュポップピュルルルルルル

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

トラックバック(0)

トラックバックの受付は終了しました。

2019.09.24 (Tue)

愛高情研第1回研究会

・まあいろいろあって,自分の見通しの甘さに腹が立つ。言ってても仕方ないので,次のことを考えよう。

コメント(1)

三又又三 wrote at 2019-10-21 08:52:

人生は冒険や!!

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

トラックバック(0)

トラックバックの受付は終了しました。

2019.09.21 (Sat)

夏イベント

・丙提督として何とか最後までやりきった。強力な友軍ありがとう。バケツが3つしか残っていないので,これからまた資源とバケツを貯めなくては。増えた艦娘は報酬艦だけだった…最近こんな感じかな。

コメント(0)

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

トラックバック(0)

トラックバックの受付は終了しました。

愛校祭

・教員企画をやるというのでOKしたところ,実は参加するのが私だけだったという…まるで第1回の「クリスマスの約束」みたいだ。

・そんなわけで20分ほど弾き語ってみた。曲目は「Buddha's song(Godiego)」「その時はじめて(Off Course)」「MARCH(原田真二)」「川べりの家(松崎ナオ)」「スローバラード(RCサクセション)」ということで。「サザンカ(SEKAI NO OWARI)」も少し練習してはいたが,無意識に指が動くところまではいけてないので自重した。MARCHはカラオケに入ってないので,まともに歌うのはこれが初めて(1カポはやりにくいので,原調E♭から半音下げた)。初めて聴いたときからずっと好きな歌だ。

・盛り上げてくれる生徒がいたおかげで,とても楽しくやれた。ありがとう。久しぶりに熱くなったなあ…ステージってこんなだったか。

コメント(0)

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

トラックバック(0)

トラックバックの受付は終了しました。

2019.09.18 (Wed)

全高情研打ち合わせ

・東京から事務局の人にも来てもらって,会場となる県立大学で打ち合わせ。いよいよだなあという気がしてくる。

コメント(0)

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

トラックバック(0)

トラックバックの受付は終了しました。

2019.09.17 (Tue)

チャペルでのお話

・勤務校では学年別に週1回チャペル礼拝があって,そのときに学年会の一人がスピーチをする。今日は私の当番…ということで,タケカワユキヒデの「Hard World」という歌に出てくる「ソドムとゴモラ」が何なのかを探した当時の話をした。

・当時はインターネットの商用利用はなく,ましてやgoogleなんてなかった。そんなわけで頼れるのは図書館くらいだった。ギリシア・ローマ神話は中学のときにだいぶはまって読んでいたので,その中に出てくるものではなさそうだと見当はついていた。そうじゃなくてカタカナ言葉で多くの人に通じるもの…ということで推理して聖書にたどり着いたのだったと思う。創世記のわりと早い部分にでてくるエピソードなので,読んで見つけるには大して手間もかからなかった。というかそこまではちゃんと読み進めたので,ノアの方舟とかロトの妻の話はしっかり印象に残っている。

今だったらgoogleやWikipediaで一発で見つかるような話だが,それを誰かがまとめたものでなく,おおもとの文書にあたれたことが良かったと思う。インターネットの検索で開くのは小さい「窓」だ(精度が上がるほど狭くなる)。本はそんなに照準をしぼれないから,余計なものまで目に入る。そういう,一見古臭い方法の良さを見失わないようにしたい。アイディアというのは既存要素の組み合わせなのだから,多くの「ひっかかり」を含む読み方ができる方がいいと思うのだ。

・というような話をした。

コメント(0)

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

トラックバック(0)

トラックバックの受付は終了しました。

2019.09.01 (Sun)

WaPEN,PyPENのバグとり

・どうして今までこのバグに気が付かなかったかな。単項演算子である「でない」と「-」がうまく働いていなかった。それらを使わないでプログラムを書いていたせいだということなのだが…。

気がついたのは,配列が等しいかをイコール一発で比べられるようにした一方,ノットイコールにはそれを採用していなかった件。そのデバッグ中にやったテストの中で,「A=Bでない」が正しく働かなかったことに気がついたということだった。

・それはそれでいいのだが,変数のスコープについては奥村先生から難しい指摘をいただいている。たとえばPythonでは

for i in range(5):
    for i in range(3):
        print(i)

が二重ループになって15回の表示をして止まるのだが,PyPENで同じことをやろうとすると1行目と2行目のiの区別がつかなくて無限ループになるというのだ。WaPENもPyPENも変数のスコープは関数の外と中ということでしか制御していない。うーん,どうしたものか。

コメント(2)

watayan wrote at 2019-09-01 22:00:

for i in range(5): print(i)
のあとで
print(i)
が5にならず4になるというあたりになにかヒントがありそうな気がしなくもない。enumerateつけても最後の番号で止まるし。

おまんかすくりこ wrote at 2019-09-26 11:10:

参考になります。

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

トラックバック(0)

トラックバックの受付は終了しました。

2019.08.28 (Wed)

PyPENの改良

・PyPENを開発し始めてから約2週間,だいぶいい感じになってきたと思っている。最近の変更はこんな感じかな:

  • 行番号表示ライブラリをjQuery LinedTextAreaからbcralnit.jsに変更(Macでの表示が正常になるように)
  • プログラム入力エリアでtabやbackspaceによって空白を4つずつ操作するようにした。
  • エラーメッセージの日本語化&単純化
  • 整数,実数,文字列,真偽にキャストする関数の追加
  • 変数宣言不要モードをデフォルトにした。それに合わせて,変数が型に縛られないようにした。
  • 「改行する」命令の追加(今までは,「」を表示する,だった)
  • プログラム入力エリアに,空白4つに対応する印を置いてみた(まだうまくはいってない)

こうしてみると,いろいろ追加したいものもでてくる。たとえば配列へのpushとか,for i in 〜っぽい構文とかやりたいんだけど,どんな表現にすると自然なのかうまく思いつかない。

コメント(0)

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

トラックバック(0)

トラックバックの受付は終了しました。

2019.08.19 (Mon)

SSS2019

・今年は合宿形式ではないということが作用したのか,過去最大の人数とのこと。私はWaPENの改良について発表したが,やっぱりこうして発表してみるとありがたい意見をいただけるものだ。DNCLの考案者である竹内先生にまでコメントをいただけるとは…。そんなわけで,これからじっくりと実装していこうと思う。

・しかし,発表以外のタイミングではPyPENについてのいろんな提案をいただいた。まだ開発し始めて1週間程度なのだが…。

コメント(0)

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

トラックバック(0)

トラックバックの受付は終了しました。

2019.08.16 (Fri)

PyPENリリース

・WaPENの文法をPythonっぽくしたPyPENのだいたいの形ができたのでリリースした。とりあえず私のサイトでサンプルとか見てもらうとわかるかと思う。

コメント(0)

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

トラックバック(0)

トラックバックの受付は終了しました。

2019.08.11 (Sun)

全高情研全国大会(和歌山大会)

・前日入りして,準備の様子から見せてもらおうと思っていたのだが,Google mapの言うとおりに歩いていったら山の中に誘導されて,てっぺんまで行ったけど入り口はなかった…。そんなわけで到着した頃には袋詰めとか終わってしまっていた。

・私の発表は2日目なので,初日はLTだけ。2秒間隔でスライドを回し続け,それをバックにしゃべるという腹づもりだったのだが,やっぱり焦るものでうまくしゃべれなかった。

・教育懇談会では愛知のメンバが集まって,相談したり挨拶したり。

・自分の発表はなんとなく普通にできたように思う。発表資料はいつものところに置いておく。

コメント(0)

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

トラックバック(0)

トラックバックの受付は終了しました。

2019.08.04 (Sun)

Microsoft Teachers Cafe @Nagoya

・ということでマイクロソフト中部へ。我々はPythonの紹介をするということで,それぞれのパートを担当。状況を見た結果,私の分もコードはコピペで実行してもらうことにした。詳しいコードを読んでもらうのは後日ということでいいだろうということで。

・かなりリハーサルはしたつもりなのだが,それでもトラブルは起きるものだ。「私がサーバやりますから,みなさんはクライアントの方のプログラムを実行してください」と言ったのに,サーバのプログラムを実行してしまう人が大量にいたりとか。

コメント(0)

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

トラックバック(0)

トラックバックの受付は終了しました。

2019.07.29 (Mon)

WaPENの配列の比較

・WaPENで,配列の値が等しいかどうかを調べられるようにした。以前サイコロを60回振って各目の出た回数を表示するプログラムを作らせたとき,全部10になるまでループを回すように書いた生徒がいるのだが,それはこの配列の比較ができてなかったのでうまく動かなかったのだ。これでようやく彼の作ったプログラムが正当化できる。

コメント(3)

わたやん wrote at 2019-07-29 20:40:

こんなプログラムです…というのを作ってたらバグが1つ見つかったのでついでに直した。

整数 a[5],b,c,n
n←0
繰り返し,
|a←[0,0,0,0,0,0]
|n←n+1
|b を 1 から 60 まで 1 ずつ増やしながら,
||c←random(5)
||a[c]←a[c]+1
|を繰り返す
|nとaを表示する
を, a=[10,10,10,10,10,10] になるまで実行する

のぐー wrote at 2019-08-01 11:41:

比較だけ?
代入とか加減乗除とか全部(明示的ループ組まずに)書けると便利だと昔から思っているが。
もっとも二次元配列の掛け算は単純な要素どうしの掛け算と解釈すべきかそれとも線形代数的な行列の掛け算と解釈すべきかとかモンダイある気もするが。

わたやん wrote at 2019-08-01 11:48:

PythonのnumpyやRのベクトルみたいな感じの計算ですよね。それはどうするか正直悩みました。今後考えてみます。

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

トラックバック(0)

トラックバックの受付は終了しました。

2019.07.28 (Sun)

WaPEN Toolsのインストーラ

・サンプルプログラムのファイルsample.jsを生成するMakeSampleと,自動採点用問題・解答ファイルanswer.jsを生成するMakeAnswerの公開作業。ソースはGitHubにあげてあるからいいとして,問題はWindows用のバイナリだ(Mac用はどうしよう…)。そんなわけで理音伊織氏の電子書籍「インストーラを作ろう!」を参考に作ってみる。更新のことを考えるとオンライン版にした方がよさげなので,かなり参考になった。本当はメンテナンスツールへのショートカットもほしいのだが,これは今後の課題。

コメント(0)

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

トラックバック(0)

トラックバックの受付は終了しました。

2019.07.25 (Thu)

markdown

・githubに新しいレポジトリを登録してREADME.mdを書きつつ思う。生徒に教えるんだったら,htmlよりもmarkdownの方がいいなあ。

コメント(0)

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

トラックバック(0)

トラックバックの受付は終了しました。

2019.07.24 (Wed)

たまにはWordで仕事する

・Windowsについてはずぶの素人である私とて,たまにはWordで文書を作ったりする。仕上げに文書のページを複製して宛名だけ変えようと思った。ページのテキストをまるっとコピペすればいいだけなのだが,いくらなんでもページの複製くらい探せばあるだろう(もちろん差し込み印刷が一番まっとうな筋であることには間違いない)。そう思ってぐぐってみた。Microsoft Officeのサポートページにちゃんと書いてあった。さすがである。

  • 1.コピーするページの先頭にカーソルを置きます。
  • 2.カーソルをクリックして、コピーするページの最後までドラッグします。
  • 3.キーボードの Ctrl キーと C キーを押します。

…ちょっと待て。

コメント(3)

のぐー wrote at 2019-08-01 11:44:

>…ちょっと待て。
ctrl+Aで全選択が書いてないとかそういう話?
それとももっと別の意味が?

わたやん wrote at 2019-08-01 11:50:

Ctrl+Aだと全ページになっちゃうかと。途中の1ページだけコピーしたいのでした。

わたやん wrote at 2019-08-01 11:57:

けっきょくページの上から下までを手動で指定するんかい,みたいなツッコミをしたかったのです。

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

トラックバック(0)

トラックバックの受付は終了しました。

2019.07.16 (Tue)

MIEE Cafe

・MIEEというのをやってみている。マイクロソフト認定教育イノベータ(Microsoft Innovative Educator Experts)ということなのだが,私は普段使いの環境からしてWindowsじゃなかったりもするのでちょっとはずれてる気もする。でもMSは懐が広いからきっと大丈夫だろう。最近の開発はVS Code使ってるし,WaPENもIEでさえ動くように頑張ってるし。

8月4日(日)に愛知のメンバが中心になって「Micrpsoft Teachers Cafe @Nagoya」というイベントを実施する。詳細は申し込みページを参照いただきたい。私はPythonの話をちょこっとやる予定だけど,自分のやってないことをやってる人がいろいろやるのが楽しみではある。

コメント(2)

勝沼奈緒実 wrote at 2019-07-17 21:41:

「Micrpsoft Teachers Cafe @Nagoya」p→oではないですか?

わたやん wrote at 2019-07-17 21:59:

いかにも。その通りです。ありがとう。

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

トラックバック(0)

トラックバックの受付は終了しました。

期日前投票

・21日の日中は名古屋にいないので,期日前投票をしてきた。少しも待たされることなく,あっけなく終了。今まで私が投票した政党が勝ったことは一度もないんじゃないかな。政権交代あっただろうって?あったけど,上記した通りです。はい。もちろん又吉イエス様に投票したとかそういうことではありません。

コメント(0)

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

トラックバック(0)

トラックバックの受付は終了しました。

2019.07.13 (Sat)

LIVE

・娘に誘われてライブに。「この人はきっとお父さんの好みだから」と言われたのだが…。

・前半の人は言葉に迫力があって,どんどん押してくる。後半の人は…確かに私の好みだ。どうして娘はそれがわかったのだろう。家でも休日に好きなCDかけてるのを聞くくらいで,私がギター弾いたり歌ったりするのを聞いたわけでもないのに。

・終わってから彼をつかまえて「Todd好きですよね」とか話したり。

コメント(0)

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

トラックバック(0)

トラックバックの受付は終了しました。

2019.07.05 (Fri)

期末テスト

・期末テスト最終日に情報のテスト。語群から選ぶだけの問題でも,かなり出来が悪い。というか,いい人と悪い人の差が極端。

・情報で出てくる言葉って,聞いたことあるけど正確な意味を知らないとかそういうのが多いのは確か。それを知ってる言葉にするのがこの授業の役割だと思っていたところがあるのだけど,まだ力不足だなあ。

コメント(0)

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

トラックバック(0)

トラックバックの受付は終了しました。

2019.06.28 (Fri)

いそがしいそがし

・なんか忙しい。艦これに集中できなかったのもそういうこと。今が忙しいというのは8月が忙しいということで…これについてはいろいろ決まってからはっきりさせたい。

コメント(0)

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

トラックバック(0)

トラックバックの受付は終了しました。

艦これ春イベント

・気がついたら終わっていた。一応丁提督として最後までは進めたので,うちの鎮守府には新たにColorado,G.Garibaldi,大東,八条,早波がやってきた。バケツはなんとか持ったのだけど,燃料やボーキサイトがちょっと危ないレベルまでいってしまった。実はそこらへんを少し回復させようと,遠征とか出したところでイベントが終わってしまったのだった。

コメント(0)

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

トラックバック(0)

トラックバックの受付は終了しました。

2019.06.19 (Wed)

ケータイ新調

・UQモバイルの機種変更でGalaxy A30に乗り換え。なんかすごく縦に長いディスプレイだ。まあそのうち慣れるだろう。アプリの移行ということで手間取るかと思ったが,初期設定のときにデータがコピーされたようで案外楽に終わった。唯一困ったのはモバイルSuicaで,コピーされたデータを見て機種変更前の本体と勘違いされてしまったことだ。アプリの情報表示画面から保持しているデータの削除を行ってなんとか引き継げたのだが。

コメント(1)

わたやん wrote at 2019-06-19 18:59:

LINEのトークも移行しておければよかったのだけど,後の祭り。

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

トラックバック(0)

トラックバックの受付は終了しました。

2019.06.05 (Wed)

フロントエンドもくもく会

・前回はvue.jsの勉強をしたが,今日はWaPENの変数確認機能を実装する。「変数を確認する」でそこから見えている全変数の値を表示するというものだ。PENにあった変数表示画面がないことが不満だという意見に対しては,これで答えになると思う。

・毎度恒例になっているWaPENの進捗報告で,自動採点機能について話した。問題は正解がスクリプトの中に直に書かれていることで…というと,「ハッシュで答え合わせするってのはどう?」というアイディアをもらった。answer.jsもsample.js同様,GUIプログラムで生成することを考えているので(目下開発中),これはアリだと思う。

コメント(0)

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

トラックバック(0)

トラックバックの受付は終了しました。

2019.05.24 (Fri)

WaPEN周りの開発

・競技プログラミングみたいにいくつかのテストケースを実行させてみる機能を開発中。だいたいできるようにはなっているが,タイムオーバーをどうやって実装しようかとか考えている。

・サンプルプログラムを書いておくsample.jsを生成するプログラムを作成。もともとPerlのスクリプトは入れてあるのだが,Windowsユーザの多くはPerlなんてインストールしてないだろうからそれでは良くない。GUIにして,実行環境がLinux,Windows,Mac OSにできるような…ということで久しぶりにQtを使って書いてみた。ファイルを指定してつなぐだけなのでほぼ1日で完成。

・このあたりを充実させることで,使い勝手が良くなることを期待してみる。あちこちにインストールして使ってもらえるようになるために。

コメント(1)

キュアピース wrote at 2019-06-03 09:20:

戯言待ってるぞ❤

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

トラックバック(0)

トラックバックの受付は終了しました。

2019.05.20 (Mon)

結婚30周年

・ということでまったりする。

コメント(1)

ぶりゅりゅりゅりゅりゅ wrote at 2019-05-27 08:51:

おめでとうございます

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

トラックバック(0)

トラックバックの受付は終了しました。

2019.05.18 (Sat)

情報教育の参照基準

・情報教育の参照基準についてのシンポジウムがあるということで東京大学へ。ちょうど大学祭をやっているようで,盛り上がっている。メモをとっていたが,人の発言だったかそこから自分が考えたことだったかわからなくなってしまっている。とりあえず列挙しておく:

  • 高校数学にはうまいごまかしの手段があるのだから,すべてをきっちり扱うばかりでなく新しいごまかしの技術を求めてもいい。
  • 高校生が理屈をわかっていないから実体験をすべきだということには賛成だが,数学についても同様でないのか?ただ答えを書けるだけで。
  • エビデンスがないと優先順位をあげられない。そのためには評価についての研究が必要。
  • 社会人力としての情報教育内容の精査が必要。
  • CSはリテラシの上に立つもの。たとえばオフィスソフトをきちんと教える保証がないことは問題ではないか。

コメント(1)

東方 wrote at 2019-06-10 11:02:

ごまかしは草

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

トラックバック(0)

トラックバックの受付は終了しました。

2019.05.08 (Wed)

フロントエンドもくもく会

・今日はSoftware Designの懸賞であたったVue.jsの本を読む…つもりだったのだが,ちょっと確認してみようとさわったWaPENに致命的なバグが見つかったのでまずそれの修正から。さっそくGitHubに反映しておく。

・Vue.jsは初めて触ってみたのだけど,データをいじるとそれが即時に反映されてなんだか面白い。こういうの使うとあっちやこっちを直し忘れみたいなこともなく,ページが間違いなく作れるのかな。

コメント(1)

6741 wrote at 2019-05-09 11:22:

コメントなくて草

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

トラックバック(0)

トラックバックの受付は終了しました。

2019.05.06 (Mon)

連休

・この連休は勉強をしようと決めていた。そんなわけで,だいぶPythonのコードを書いた気がする。「ゼロから作るDeep Learning」を読み返したら前よりかなりわかるようになった気がする。しかしこれで書いたプログラムで大きい処理をすると,CPUを偏った使い方するのね…システムモニタで見てると100%でずっと頑張ってるやつが固定されてて,なんか不平等な状態が続く。別の本で有名なライブラリ使って作業したときは忙しさが分散していたので,なんだか面白かった。

コメント(0)

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

トラックバック(0)

トラックバックの受付は終了しました。

2019.04.30 (Tue)

平成

・テレビなんかはもう平成最終日に関する特集ばかり。私が平成について思うことと言えば…大学を出て就職・結婚したのが平成元年だから,思い入れがなくはない。平成の30年が社会人としての30年だった。さて,明日から次の令和時代。仕事の方も,次の時代をまかせる人にまかせていかなくてはいけないなあ。

コメント(0)

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

トラックバック(0)

トラックバックの受付は終了しました。

指が…

・この連休は滞っていた勉強を進めようということで,本を読みながらサンプルプログラムを打ち込んで実験したりしている。初日は張り切りすぎて,指が痛かった。普段は指のことを少しは気にしつつタイプしているから大丈夫なんだけど,考える方に頭が行ってしまうと指への気遣いがまったくできなくて,つい強めにキーを叩いてしまう。早く今のキーボードに慣れなくては。

コメント(0)

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

トラックバック(0)

トラックバックの受付は終了しました。

2019.04.27 (Sat)

WaPEN 1.0.0

・ほんとは連休前なのだけど,WaPENにかなり大きく手を入れた。関数の途中で入力をすることもできるようになったし,とりあえずここで一段落かな,ということでバージョン番号を1.0.0にしてみた。

・問題はフローチャートをどうするかだなあ。関数や手続きを使うような段階であればそんなのいらないだろう…というのは言い訳で,実は「手続きを抜ける」や「値を返す」をどのように表現したらいいかわからないからだ。端子にそれを書いておけばいいような気もするのだけど,いずれにしても複数画面用意するあたりで実装が大変だ。そんなわけで最初に述べた言い訳を使いたい気持ち。グラフィカルなアプローチということでいえばBlocklyPENとかあるわけだし。

コメント(0)

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

トラックバック(0)

トラックバックの受付は終了しました。

2019.04.13 (Sat)

トニー・ブザン他界

・Facebookで彼がなくなったことを知った。マインドマップの祖である彼から直接教えをいただいた友人の投稿によって。

・私自身は平凡に自分のためにマインドマップを描いているだけだが,これによって視点の広がることを実感した。最近はペースが落ちているが…。

コメント(0)

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

トラックバック(0)

トラックバックの受付は終了しました。

2019.04.03 (Wed)

Hello WorldとMakefileの間

・TypeScript勉強会の最後の討論で少し発言した話を整理してみる。

・大抵の言語を勉強するとき,とりあえずはHello Worldから始めることになる。しかし,一つのプロダクトを作ろうとした場合には,複数のソースファイルに整理したりとか,いろんな設定を整えたりとかいった作業が必要になる。たとえばC言語ならMakefileを書かなくちゃ,みたいな。そのHello WorldとMakefileの間のギャップをどうやって越えるのがいいんだろう。

・私はわりとガリガリ書くことが苦にならないので,Hello Worldにどんどん毛をはやして一つのプロダクトに仕上げていくことがある。実際PenFlowchartやWaPENなんかはそれに近い作り方をしてきた。そう言うやり方だと,実はみんなうまいやり方で楽をしてるのに,それを知らずに手癖で面倒なことをやっている場面がいくらかあるような気がしてしまう。C#なんかだとVisual Studioに任せてしまうので,最初から適当な雛形の上で作業するのだけど,その違いは一体何なんだろう…そのギャップをどうやって越えるのがいいんだろう。

・一応はネットでいろいろ検索してみるわけだが,「正統な方法」があるならそれを最初に試したい。もちろんいろんな流派があるのはわかっているが,だったらそれぞれの方法で,なぜそれが正統だと考えるのかを知りたい。

・高校の授業でやるのはHello Worldに毛が生えた程度のものになるのだけど,だからといってその先を知らなくていいということにはならないと思うのだ。

コメント(3)

中西通雄 wrote at 2019-04-05 13:24:

私どもの情報科学部3年の授業の中で、make のことも教えています。
2つのソースファイルから1つの実行モジュールを作るという簡単な例を unix 環境でやります。

まずは、1ファイルずつコンパイルしてオブジェクトを作り、リンクする。コマンドを3つ打つのはめんどうだよねぇ。

次に、シェルスクリプトをもちいて(いわゆるバッチファイル的に)、2つのコンパイルと1つのリンク命令を書く。楽になったけれど、無駄があるよね。
(なお、この過程で chmod +x がわからない/忘れている 学生多し(涙))

さらに、makefile を使ってみる。touchコマンドで最新講習日時を変更してやってみる。

こんな具合です。正統な流儀って何でしょうねぇ。

わたやん wrote at 2019-04-05 19:02:

中西先生,ありがとうございます。
「1つずつコンパイル」してから「リンク」する手順の方が本当は楽でいいやん,って思うのはある程度大きいものを作るようにならないと実感としてはわからない気がしています。そうなるといちいちMakefile作るとかの方がめんどくさいじゃん,という思いを説き伏せるために必要なのはもっとファイルが増えたりしたときのことを想像する力なのかなとか。

わたやん wrote at 2019-04-05 19:04:

そういうのを教えてもらう機会のある学生さんは幸せだと,我が身を振り返って思ったりもします。

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

トラックバック(0)

トラックバックの受付は終了しました。

TypeScript勉強会

・名古屋フロントエンド勉強会が表題の勉強会をやるということで参加。私にとってはレベルの高い話が多かったが,自分の作業のために参考になる話がいくつかあった。いきなりLint使うのはハードル高いし,いきなりTypeScriptに移行するのも同様なので,とりあえずということでJSDocをきちんと書いてみることにした。そうするとそこにきちんと書けないくらい忘れてしまってることがあるのが明らかになって,なかなかいい。

コメント(0)

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

トラックバック(0)

トラックバックの受付は終了しました。

2019.03.30 (Sat)

ふたたびモバイルフレンドリーテスト

・その後追伸が来て,あるページが「テキストが小さすぎて読めません」とのことだった。そのページというのはブログの2011年のページなのだが…1年分チェックしろということなんだろうか。ざくっと見てみたが,該当箇所がよくわからない。PREでコードとか出しているところの文字は確かに小さいが,そのことなんだろうか。あるいは,amazonへのリンクが切れまくってることに関連するんだろうか。

コメント(1)

わたやん wrote at 2019-04-01 19:17:

PRE要素の文字が小さいのを少し直してみた。さて,どうなるだろう…

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

トラックバック(0)

トラックバックの受付は終了しました。

2019.03.28 (Thu)

はじめてのプログラミング

・表題のイベントを見学させていただくということで,京コンピュータのある理化学研究所まで在来線の旅。会場案内が地図でなく「改札を出て右に曲がり…」みたいな説明だったのでわかりやすかった。ちょうど欠席する生徒がいるとのことで,私も端末を1つ貸していただいて参加することになった。

・前半のプログラミング入門は,わりと普通な内容。よくはまる注意点はだいたい押さえている感じ。説明の一部で自分の授業に取り入れたいものはあった。

・後半のシミュレーションは,ざくっと言ってしまうとランダムウォークで再会するには片方が止まっているのと両方が動いているのとどちらが有利かという題材。参加生徒の多くは何らかのプログラミングを経験している者がほとんどだったようで,Pythonは初めてという人が多いのだろうけど,わりとさくさくすすんでいった。問題の大きさの設定とか,モデル設定の微妙な気遣いとか,展開の仕方とか,非常に参考になるものだった。これはどこかで活かしたいなあ。

・最後に京コンピュータの見学。やはりそういうのが好きな子が多いようで,いろいろな質問があがった。私自身もだいぶ興奮していたように思う。

京コンピュータの前で自撮り

コメント(0)

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

トラックバック(0)

トラックバックの受付は終了しました。

2019.03.24 (Sun)

モバイルフレンドリー

・ふと自分のサイトを検索してみたら,「このサイトはモバイルフレンドリーではありません」と表示されていた。何のことかと思って詳しく見てみたら「クリック可能な要素どうしが近すぎます」ということらしい。なるほど,トップページはUL LIで各コンテンツへのリンクを並べているのだけど,これのことを言っているのだろう。軽いからいいかと思ってこうしてきたのだけど,今はモバイルファーストで考えなくちゃいけないのかな…。適当にデザインとか考えてみるか。

コメント(1)

わたやん wrote at 2019-03-25 19:03:

結局デザインをいじらずに,DLのDTとDDを使って間隔を空けるだけにしてしまった。

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

トラックバック(0)

トラックバックの受付は終了しました。

2019.03.23 (Sat)

WaPENの改良

・関数内で入力が使えないことについてはだいぶ根本的に手を入れなくてはいけない気がするので,現状のままでブランチをマージしてリリースすることにした。他にも微妙にあちこちいじってる。入力でいちいち窓を開かないようにしたとか,lengthを配列にも使えるようにしたとか。マニュアルも少しだけ見やすくしてみた。

コメント(0)

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

トラックバック(0)

トラックバックの受付は終了しました。

2019.03.17 (Sun)

読みやすい本

・最近読んだ2冊の本は読むのにやたらと時間と労力がかかった。繰り返しが多くて,そのたびに前と違ったことを言ってるのか気になったりして。それらを読み終えたところで別の人(橋本治)の本を読むとこちらはすらすらいける。ずいぶん違うもんだなあ。

コメント(0)

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

トラックバック(0)

トラックバックの受付は終了しました。

2019.03.16 (Sat)

情報処理学会全国大会

・というわけで3日間福岡大学へ。特に最終日の中高生ポスターセッションは楽しかった。機械学習とかに手を出してるのもあったり,レベルが高かったのも要因の一つだが,それぞれ考えたことをせいいっぱい話してくれるのが良かった。

コメント(0)

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

トラックバック(0)

トラックバックの受付は終了しました。

2019.03.12 (Tue)

WaPENのマニュアル

・どうにかWaPENのマニュアルのようなものを作りかけてみた。どうして私が作るものはこうも無骨なものになってしまうのか。いや,もちろん装飾とかレイアウトとかまだ全然考えてないから,そういうのが実装されていないのは当然だ。そうでなくて,それがないままでも別にいいじゃんって思ってしまうところが問題なのだ。たぶん。

コメント(0)

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

トラックバック(0)

トラックバックの受付は終了しました。

2019.03.07 (Thu)

学年末テスト

・「そうだ,教員免許更新講習でやった『ガチャ』のシミュレーションを出題しよう」と思ったが,実は去年それに似た問題を出題していたのでボツ。

整数 a[9],b,c,d
a←{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回くらいで揃うこともある。これはなかなか射幸心を煽るものだと実感した。

コメント(0)

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

トラックバック(0)

トラックバックの受付は終了しました。

2019.02.28 (Thu)

過去の発表資料の整理

・過去の発表資料のページを一新。ファイルを追加するときに手作業でHTMLファイルを更新していたのを,Pythonのスクリプトで更新するように変更した。文書情報は別途用意することになるのだが,自動出力することでフォーマットが確実に統一される。ついでに表示順を新しいものが上にくるように変更した。

・情報処理学会関係の論文は著作者のサイトでなら公開できるという規定があるからいいのだが,日本情報科教育学会についてはどうなんだろう。著作権譲渡の手続きもしていないので,公開してもよさそうな気がするんだけど,いまいち自信がないのでとりあえず現状のままにしておく。

コメント(0)

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

トラックバック(0)

トラックバックの受付は終了しました。

2019.02.15 (Fri)

愛高情研第2回研究会

・研究会を本校でやり,私が研究授業をやるということで緊張しまくり。私の場合,緊張すると話し方とかが緩くなるのだが,今回もその例にもれず。

・内容は「数学の問題をプログラミングで解いてみよう」というもの。普通だったら素因数分解とかユークリッドの互除法とか使うところを,ループをぶん回して答えを出す活動を通じて,ループを使うことになれていってほしいというのが狙い。生徒の感想をみると,難しかったというのと簡単だったというのが分かれている。思うに,数学の問題を読み取ること自体ができていない者がいるんじゃないかな。それができていれば,何をすればいいかは示された例にならえばいいので,それほど難しいことではないと思う。参加いただいた先生方には,WaPENが好評であったように思われる。

コメント(0)

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

トラックバック(0)

トラックバックの受付は終了しました。

2019.02.09 (Sat)

スクレイピング

・最近『Pythonによるスクレイピング&機械学習』(クジラ飛行机著,ソシム)を読んでいる。題材として自分のサイトを使ってみたりする。たとえば過去の発表資料のページからタイトルを取得してみたり,このページのコンテンツをまとめてダウンロードしてみたり。今まで無駄にタイトルや日付をSPAN要素にしてCLASS名をつけていたのだけど,それが功を奏した感じだ。そうしてみると,このあたりも自動生成するようにしたいなあ。

・最近のサイトは自動生成される部分が多いから,要素を指定して値を取得するのはやりやすいような気がする。少なくとも手書きのサイトよりは。

コメント(0)

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

トラックバック(0)

トラックバックの受付は終了しました。

2019.01.29 (Tue)

橋本治死去

・久しぶりにマストドンに繋いでみたら,橋本治がなくなったという投稿が流れてきた。「桃尻娘」からはじまって,主にエッセイ的なものを十数冊読んだが(有吉佐和子の本を何冊か読んだのも彼の影響),そもそも彼を知ったのは編み物からなんだな。学生時代,編み物に手を出そうと(かぎ針は子供の頃にやっていたので,棒針がやりたかった)適当に買った本の最初のページで,彼のインタビュー記事が紹介されていた。途方もなく細かい編み込みをしたセーターの写真があって,なんとなく憧れたものだった。編み込みってドット絵というかデジタルに通じるものがあるから気に入ったのかな。

・文芸的な方面でのコメントはたくさんあると思うので,全然違う話で書いてみた。彼が有吉佐和子に書いた追悼文にならって,「いつまでもお元気で」と見送りたい。

コメント(0)

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

トラックバック(0)

トラックバックの受付は終了しました。

2019.01.23 (Wed)

出席番号の変わり目で改ページ

・マージした表で明らかにおかしいところを直して,出席番号順にソートして印刷…したいのだけど,改ページを入れまくらなければいけない。Excelだったらわかるんだけど,LibreOffice Calcだとどうしていいのかわからない。あちこち検索して,改ページがあるかどうかが調べられることはわかったけど,それを設定する方法がわからない。結局Option VBASupport 1を指定してExcelと同じ書き方をすることでなんとかなった。なんとなく負けた気持ち。

・(追記)「IsStartOfNewPageプロパティでいける」とのコメントをいただいた。確かにプロパティだから,値をセットしてもいいんだよな。そんなわけでこんなコードでうまくいった。Col=3は,キーになる列がD列だからということ。

 Sub Main
  Col= 3
  Doc =ThisComponent
  Sheet = Doc.Sheets(0)
  pre = Sheet.GetCellByPosition(Col, 1).Value
  r = 2
  Do
    Row = Sheet.Rows(r)
    Cell = Sheet.GetCellByPosition(Col,r)
    if Cell.Value <> pre then
      pre = Cell.Value
      Row.IsStartOfNewPage = True
    Else
      Row.IsStartOfNewPage = False
    End if
    r = r + 1
  Loop While pre<>0
End Sub

コメント(2)

参考まで wrote at 2019-01-23 21:46:

LibreOffice Basicならば
LibreOffice macro IsStartOfNewPage
で検索

わたやん wrote at 2019-01-23 22:16:

あ,そうか。あれはプロパティだからbooleanな値をセットしてやればいいんですね。検証して追記します。ありがとうございます。

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

トラックバック(0)

トラックバックの受付は終了しました。

2019.01.19 (Sat)

表の結合

・生徒のLT大会が終わったので,評価シートをマージしなくてはいけない。LibreOffice calcの表をそのまま全員分貼り合わせればいいのだが,こんなの手作業でやりたくない。最近Pythonを勉強中なので,それを使ってざくっとコードを書いてみた。odfpyモジュールを使ってみたが,肝心の表読み出しのところが少し面倒だった。

import pathlib
from odf import number,text,table,opendocument

doc = opendocument.OpenDocumentSpreadsheet()
tbl = table.Table(name="評価シート")

p = pathlib.Path(".")

for f in p.glob("2018*.ods"):
    d = opendocument.load(str(f))
    tables = d.spreadsheet.getElementsByType(table.Table)
    for t in tables:
        for r in t.getElementsByType(table.TableRow):
            row = table.TableRow()
            tbl.addElement(row)
            for c in r.getElementsByType(table.TableCell):
                cells = 1
                repeat = c.getAttribute("numbercolumnsrepeated")
                vt = c.getAttribute("valuetype")
                if repeat:
                    cells = int(repeat)
                while cells > 0:
                    cell = table.TableCell(value=c, valuetype=vt)
                    cell.addElement(text.P(text=c))
                    row.addElement(cell)
                    cells -= 1

doc.spreadsheet.addElement(tbl)
doc.save("merge",True)

(こっそり修正)

コメント(0)

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

トラックバック(0)

トラックバックの受付は終了しました。

2019.01.14 (Mon)

WaPENの関数呼び出し

・関数呼び出しが今ひとつうまくいかない。とりあえずadd_functionブランチの方では関数呼び出しができるようにはなったけど,ステップ実行や関数内での入力ができないまま。このあたりはうまく整理すればなんとかなるような気はするのだが…。setZeroTimeoutを使わずに別な方法を使えばいいんだろうか。

コメント(0)

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

トラックバック(0)

トラックバックの受付は終了しました。

2019.01.13 (Sun)

丁提督

・艦これの冬イベントは丙で行こうと思っていたが,E-3で諦めて途中から丁に切り替えて終了。報酬艦である峯雲と日進の他は浜波と占守が来てくれたから,掘りはもういいや。

コメント(0)

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

トラックバック(0)

トラックバックの受付は終了しました。

2019.01.07 (Mon)

なんとか回復

・年が明けて,1日か2日あたりから腹具合が良くなかった。ときどき熱っぽかったりもして。そんなわけでごちそうにあまり手を伸ばせず…昨日1日たっぷり寝てたおかげでだいぶ回復した。体重もちょっと減ったけど,すぐ戻るんだろうなあ。

コメント(0)

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

トラックバック(0)

トラックバックの受付は終了しました。