Hatena::ブログ(Diary)

hig3の言い忘れたこと書き間違えたこと RSSフィード

2012-05-23 Wednesday

[]Moodle 1.9の課題(高度なファイルアップロード)アクティビティで, 教員がレスポンスファイルをアップロードしたのに学生から見えない

アップロードしたとしても, 教員が評点を選択するか, フィードバックを書くかして保存しないかぎり, «評価したことにならない»ためか(確かに最終更新日時(教員)も記録されないし, 評点が更新に変化することもない), 学生からはレスポンスファイルが見えない.

[]Response files invisible for students in the assignment activity, advanced uploading of files of Moodle 1.9

To make them visible, it is necessary to save a feed back text or a grade in addition to uploading the response files.

2012-05-19 Saturday

[][]エクスポートされたMoodle評定データの文字化け

Moodle 1.9から評定データをCSV形式でexportしたものを, Mac Office 2011のExcelで開くと文字化けする. これは, CSV形式のファイルがUTF-8だからで, 何かでShift JISに変換してから開けばよい. それが面倒なら, CSVにはUTF-8対応のアプリケーションを対応づけしておく, あるいはそのような「アプリケーションから開く…」ようにすればいい. そのようなアプリケーションの一例として, LibreOffice(のCalc)がある.

[][]Garbled Moodle gradebook data exported as CSV

They are encoded in UTF-8. Use LibreOffice Calc instead of Mac Office 2011 Excel to open such CSV files.

2012-04-07 Saturday

[]Google Groups によるMailing Listは階層化できない(?)

Google Groups (Googleグループ)は公開の/閉じた掲示板やMLを提供するサービス.

Google Groups によるMLは階層構成にすることはできるか? すなわち, Agumi at googlegroups.com, Bgumi at googlegroups.com というMLにそれぞれ学生を登録し, Ichinen at googlegroups.com には, Agumi, Bgumi を登録して, 個々の学生は登録しない, のような運用.

MLやMailの運用をやったことのある人にはわかるだろうが, 上のような構成は正しく動作すれば便利だが, 不吉なことを多く含んでいる. 実際, Google Groups では, 参加者追加の際に @googlegroups.com なアドレスが一律に拒否されるので, 上のような階層構成は不可能になっている.

しかし, 転送アドレスを間にはさんで, Google Groups をだますことはできないか? Ichinen には, {A,B}gumi at forwardingonly.com を登録し, これらをそれぞれ, {A,B}gumi at googlegroups.com のalias (転送設定) にしておけばどう? @googlegroups.com は参加者として追加できないという禁止にはかからないはず.

試したところ, これで一時的には意図した階層構成が実現できるものの, 数日後?数通後?からは, Ichinen へのメールが {A,B}gumi at forwardingonly.com に送信されなくなる{A,B}gumi at googlegroups.com で受信処理されなくなる. おそらく, Google Groups が各グループに届くメールを監視していて, 実はGroupから別のGroupへの送信が行われていることを推測して, 送信をdisableしたものと思われる受信しても無視するようになったものと思われる.

Google Groups for Business は Google Apps に備わる拡張版の? Groups だが, これは, 説明によると親子関係のGroupをサポートするとある(それは会社で使うなら部のGroup, 課のGroup とかなかったらだめでしょう). これが共有のためのユーザ集合だけの話なのか, MLに階層関係を作れるのか, 未検証.

[]No hierarchical structures in the Google Groups mailing list service

It is prohibited to add an @googlegroups.com address as a member of other Google Groups. Even if one introduces a intervening forwarding address (not @googlegroups), an @googlegroups address cannot receive e-mail deliveries from other google groups mailing list. Perhaps they automatically spot the forwarding behavior by watching the similarity of messages.

[]Google Groups のMLの通番は一意ではない

MLサーバでSubjectに[ML-name:00197]のように通し番号を挿入するということがよく行われる. Re: がついたらどうする? とか, Subjectを改変するのはよいのか? のような議論があるが, Google Groups のこの機能について衝撃の事実.

  • Webインターフェースでは, サーバが直近につけた通し番号は表示されない. どうもデータとしてサーバ側に保持されていない(メールとしてが送られるときだけ付加される)らしい. 直近に, という意味は, 以前につけた通番が返信のSubject のRe: 以降に残ってサーバに送られてきたなら, それは Subject だからもちろん保持されるということ.
  • メールに付加される通し番号は, 送信先によって異なる(その受信者の加入後の通し番号)らしい

このような通し番号はローカルに整理するときには依然として役立つが, 以前のメールを参照しつつ議論するときには大混乱を引き起こしそう. 議論はWebインターフェースでやれってことですね.

[]The sequential number in the subject of google groups e-mail delivery is receiver-dependent

The sequential number represents the number of e-mail deliveries he or she has received since he or she joined the group. It is not displaye on the web interface.

2012-04-04 Wednesday

[][][][]FinkTeX Liveの dvipdfmx で日本語フォントPDFに埋め込む設定

OS X 10.7.3, 10.6.8, Fink 0.32.4.1, texlive-0.20110705-103, dvipdfmx-20110311, an extended version of dvipdfm-0.13.2c で検証.

dvipdfmx は default では日本語フォントを埋め込まない設定になっている.

そのたびに指定する方法

/sw/share/texmf/fonts/map/dvipdfm に ptex-noEmbed.map, ptex-kozuka.map などの見るからに機能が想像可能なmapファイル群が置かれている(そして/sw/etc/texmf-config/web2c/updmap.cfgでptex-noEmbed.mapが選択されている)ので,

% dvipdfmx -f ptex-kozuka.map file.dvi

などとすると, ptex-kozuka.map が上書きロードされて, 小塚フォントが埋め込みされる.

ただし, これらのファイル内で記述された名前でフォントファイルがtexmf tree下に存在することが前提. よくありそうな, ヒラギノを使う設定では, /System/Library 内にある .otf が, HiraKakuPro-W3.otf などの名前でsymbolic linkされている必要があるが, これらは /sw/share/texmf/fonts/opentype/appleotf の下にすでに作られていた. 手でこれらを作った場合には,

% sudo mktexlsr

が必要.

Default で埋め込むようにする方法

% dvipdfmx file.dvi

だけで埋め込まれるようにしたい場合, /sw/etc/texmf-config/web2c/updmap.cfg を編集し(いちばん下に見るからにわかるマクロ定義がある. ただ, このファイルはupgradeのたびにdefaultに戻るから, 直接編集するなと書いてある), そのあと

% sudo updmap-sys

することで, /sw/var/lib/texmf/fonts/map/dvipdfm/updmap/kanjix.map などを更新する.

[][][][]How to embed Japanese fonts at generating a PDF file with dvipdfmx included in TeX Live package of Fink

Edit /sw/etc/texmf-config/web2c/updmap.cfg and sudo updmap-sys.

2012-03-31 Saturday

[][][]DebianPHP で UUID を生成する2つの方法

Ubuntuの場合の英語での解説はWeb上にたくさんあるけど, Debian について日本語で書いてもいいかな.

UUID=Universally Unique Identifierは, (確率的に)一意性が保証される文字列(を毎回ランダムに返す仕組み). ディスクのラベルや, git のコミットの名前に使われている.

PHPでは標準ではサポートされていないが, package を導入することで使う方法が2つある. この2つはOSSP(後者)とそうでないもの(前者)の2つの« 異なる »実装だと思うんだけど正しいだろうか. ちなみに Debian package uuid に含まれる コマンドラインツール uuid というのもあるけど, これは libossp-uuid を使っているので, 後者の実装.

なお, 両者に出てくる uuid_create 関数はたまたま名前が衝突しただけ. 引数も異なる.

PECL package uuid に含まれる uuid_create 関数

http://pecl.php.net/package/uuid

準備

PECLを使うために, Debian packages php-pear と php5-dev が必要.

pecl install uuid

する(Debian packages libuuid, uuid-dev やこれらが依存するものが必要). さらに, php.iniに extension=uuid.so を加える.

使用

例えば, UUID V4なら

$uuidstr=trim(uuid_create(UUID_TYPE_RANDOM));

Debian package php5-uuid に含まれるuuid_make, uuid_create, uuid_export 関数

http://packages.debian.org/lenny/php5-uuid

準備

Debian packages php5-uuid, libossp-uuid-dev やこれらが依存するものが必要.

使用

例えば, UUID V4なら

uuid_create(&$context);
uuid_make($context, UUID_MAKE_V4);
uuid_export($context, UUID_FMT_STR, &$uuid);
$uuidstr=trim($uuid);

[][][]Two ways to generate UUIDs on Debian with PHP

  • uuid_create in uuid in PECL (which depends on php5-dev, uuid-dev packages etc)
  • uuid_create, uuid_make, uuid_export provided by php5-uuid and libossp-uuid-dev etc)

2012-03-24 Saturday

[]再送 Resend をサボートするメールクライアント / メーラ

Resent-To, Resent-Cc, Resent-Date などがつく再送のことです. これらの情報を表示できるかどうかは問題にしてなくて, 再送, Resend というアクションが行えるかどうか.

Gmail/Wanderlust を主に使ってましたが, これが理由で, またMewにもどろうかという気に.

検索上達

2009年時点だけどかなり網羅的なリストを発見

ResendingMailWithHeaders - Spamassassin Wiki http://wiki.apache.org/spamassassin/ResendingMailWithHeaders

Redirect とか "Resent-Cc" くらいで検索するとよかった. Resent-To とかって普通の文章の中にもでてきちゃうから.

なぜいまResend?

人に対応したメールアドレス 個人@gmail.com を使っているとしましょう. しかし, 複数のプロジェクトに関係するメールを読み書きします. 個々のプロジェクトは来年になったらそれぞれ別の人に引き継ぎます. どうやってメール全部を引き渡すか? あるいは, 関係するメールをその年の関係者が見られるようにするか?

例えば project1@googlegroups.com などを作り, 場合によっては, 個人+project1@google.com からの転送も設定して, 「project1関係はこのgroup / address に送って/Bccに加えて」 とお願いしてまわればいいわけです. そして, 来年になったらgroupの管理者/メンバーを変更すればいい. それでも, 個人@gmail.com に project1 のメールを送ってきちゃう人はいるわけです. そんなときに, ただの転送で絶対だめってわけじゃないけど, project1@googlegroups.com に再送 Resend すると, だれもが完璧にgroupを使いこなしたかのようなスレッドが記録されるでしょ.

これって再送 Resend の正しい使い方?

[]mail clients that support Resend/Redirect preserving mail headers.

An updated list in 2012.

2012-03-16 Friday

[][][][]Movable Type または はてなダイアリー から Evernote への変換

やったこと

非公開はてなダイアリーを, Movable Type形式, Evernote XMLを経由してEvernoteにbatch importするPython scriptを書いた.

http://www.a.math.ryukoku.ac.jp/~hig/projects/mt2en/

余り役に立たない経緯の説明

他の人に見せない日記をブログの非公開モードを使って書くことがある. どの計算機(や携帯)でも書けるし, 読めるから. まあインターネット接続が必要だけど.

id:hig3 は 2006年くらいからはてなグループ http://g.hatena.ne.jp の有料の1人モードで日記を書いていた. はてなグループだと, 自分専用のキーワードを作れる. これをWiki的に使おうかと思ったのでダイアリーでなくグループを選んだ. しかし, 意外にキーワードの機能を使わないことがわかってきたので, 2009年にはてなダイアリー http://d.hatena.ne.jp/ の無料プライベートモードに移行した. 移行は容易で, データ管理から, はてな形式(XML)でエクスポート, インポートすればよかった(キーワードをたくさん作っていたら問題だったろう)

2010年からは, それまでのはてなダイアリーは更新を停止して, Evernote http://www.evernote.com で日記を書くようになった. どこでも読み書きでき, インターネット接続がなくてもある程度のことができるのでまあハッピー. しかし問題は, 過去の日記から検索しようとすると, はてなEvernoteの2箇所を検索する必要があるということだった. Chrome の Web Clipper なら Web検索とEvernote内検索を同時にできるが, インターネット接続があるとしても非公開のはてなダイアリーGoogleはindexしていないのだから解決になっていない.

どうすればいいか. はてなダイアリーのデータをぜんぶEvernoteに放り込んで一元化すればいいだけのこと.

採用しなかった作戦

採用した作戦

Evernote Desktop は専用のアーカイブ形式, Evernote Markup Language, Evernote XML などと書かれているものをインポートできる. そこで, はてなダイアリーから何らかの形式(Movable Type形式 id:hatenadiary:20060418:1145327633をここでは選んだ)でエクスポートしたものをEvernote XMLに変換すればいいということ. 画像は, img要素の指している先をGETしてエンコードしてXMLに含めるのが正しいが, そこまでは気合いをいれないことにしておく.

作ったツール

http://www.a.math.ryukoku.ac.jp/~hig/projects/mt2en/

[][][][]Exporting from Movable Type, converting the data with a python script, and then importing into Evernote

http://www.a.math.ryukoku.ac.jp/~hig/projects/mt2en/ might help.

最新コメント一覧