Friday 31 May 2019

OS研究会最終日

最盛期は70人とか参加者がいたんですけどね。懇親会、

  40人で予約

火曜日の段階で14人、えー。じゃぁ、20人でお願いします。

  増えて21人

うーん、ま、いいか。さらに二人増えました。うーん、ま、いいか。

  二人キャンセル

で、結局、21人に。ま、そんなものです。学生やすくした分、少し大人のが高い。

天久の辺りは3時間飲み放題3千円なんてのがあるんですが、今回は「いつものぱいかじ」それも悪くないかな。

琉装なお嬢さんがたと三線というのは嫌いじゃないです。飲み放題4300円。

沖縄の研究会なので

  OSってなんなのかとか、いい加減に議論したい

でもいいかな。発表で緊張していた学生もいるようですが、

  気軽な感じでお願いします

大学だと特に

  研究を楽しんで欲しい

かな〜

Thursday 30 May 2019

OS研究会〜

毎年のですが、今年はIT創造館。Webから予約できるので便利。うっかり自分の名前で申し込んでしまって怒られましたが、

  そちらでやってもらって良いんですよ?

まぁ、あんまり関係ないはず。そっちでなんとかしてくれ〜

会場では「Macのdisplay adaptor が〜」、そう、Macって4種類くらいあるんだよな。だから、

  Tree VNC で画面切り替え

が良いんですが、あんまり安定してない。でも、

  Wifi Multicast を含む改良中

なんですけどね。でも、サボり気味でOS研究会には間に合いませんでした。圧縮を含む Blocking は難しい。

8bit CPU の時代から Blocking 書きまくってますが、今でも難しいな。

お昼は、近くのサンヴァンサンにしました。

Wednesday 29 May 2019

学生たちの発表

うちは基本的にWeb Slide でやってもらってます。JavaScript / HTML で書くわけですね。

  ごみなパワポは会社からでいいよ

綺麗な写真のスライドを作っている人にどうやってるんですかと聞いたことがあるんですが、

  素材を買ってます

まぁ、そこまでやらなくてもいいかな。Atton が書いてくれた

  Markdown から Web Slide を生成

がうちの標準です。自分は自分の自作の使っていたんだけど、

  授業では、スライドではなく普通のWeb Page

を使ってます。

  区切るの面倒くさい...

実際、学生の発表資料だと、

  上二行だけで、残りは真っ白

ってのが... 見る人のことを考えてないし、スライドの見栄えとかどうでも良い感が出てて良い感じ。

普通のWeb Pageだとそういうのないし、上下スクロールで自在に行き来できるし。

Web Slide だと、Slide Share とかと致命的に相性が悪いんですが、

  140 page の Slide

とかよりは普通のWeb Pageにして欲しいと思う。Slide Share 自体がダメな感じ。

http://www.cr.ie.u-ryukyu.ac.jp/hg/Members/atton/slideshow-s6cr/

Monday 27 May 2019

週末はOS研究会

今週はOS研究会。ちょっとだめなのもあるけど、まぁなんとかなるかなぁ。

懇親会はいつものぱいかじ本店。何件かあるので間違えないようにお願いします。おもろまち側です。

  懇親会申し込みも忘れずに

場所は、IT創造館ですが、サンバンサンの裏なんだよな。よれるとよいですが...

http://www.ipsj.or.jp/sig/os/index.php?2019%C7%AF5%B7%EE%B8%A6%B5%E6%B2%F1

Sunday 26 May 2019

qemu 読み会最終日

今日は qemu-system-arm で Rasbian Linux を立ち上げて、それを gdb で追う方針で。

  Hide [12:12 PM]
  tlb_flush (cpu=0x555556877070) at /home/syster_clown/src/qemu-4.0.0/accel/tcg/cputlb.c:348
  #1 0x0000555555a42604 in dacr_write (env=0x55555687f330, ri=0x55555689b260, value=81)
    at /home/syster_clown/src/qemu-4.0.0/target/arm/helper.c:527

ってのがあったので、見てると memset で16kbyte clear するだけ。え〜なにそれ。


  for (int work = cf; work ; work &= work - 1) ...

ってのがあったんですが、

  0001001100001 work
  0001001100000 work-1
  0001001100000 &
  0001001011111 -1
  0001001000000 &

という3わけで、下から 1 のbit があるところを0にしていくループだそうです。

  for (int work = 1; work < 0x10 ; work <<= - 1)
   if ( cf & work ) {
    ...

でも良いんじゃないか説。

どうも、/dev/kvm を開けて、Linux kernel と連携するらしい。なので、

  /dev/kvm の mmap に qemu の host 側のPTE を置くみたいな方式

らしい。今回はここまでだけど、Linux kernel の virt/kvm も読む必要があるみたい。

でも、そこは qemu/kvm がやってくれるので、cpu emulation では PTE 書いて tlb_flush すれば良いだけみたい。

VMの研究が流行ったのは2000年代でググるとBitVisorとかが引っかかって懐かしいです。

Saturday 25 May 2019

QEMU 読み会

QEMU は以下のVMの中で作られていて、誰でも gdb で trace できます。

なぜか ARM emulation を読むことに。I/O で止めれば良いんじゃないかと思ったんですが、write とかで停まらない。

  QEMU はARMをX86に変換して実行されて
  system call もそのまま system call に変換される

な、なるほど。今日はユーザモードの方を読むことに。

#0 disas_arm_insn (s=0x7fffffffd3e0, insn=3852271616) at /home/syster_clown/src/qemu-4.0.0/target/arm/translate.c:9180
#1 0x000055555569cc7b in arm_tr_translate_insn (dcbase=0x7fffffffd3e0, cpu=0x555557a94f30)
  at /home/syster_clown/src/qemu-4.0.0/target/arm/translate.c:13483
#2 0x00005555556200eb in translator_loop (ops=0x5555559d8ba0 <arm_translator_ops>, db=0x7fffffffd3e0, cpu=0x555557a94f30,
  tb=0x555555a77040 <static_code_gen_buffer+2272>) at /home/syster_clown/src/qemu-4.0.0/accel/tcg/translator.c:107
#3 0x000055555569d3e4 in gen_intermediate_code (cpu=0x555557a94f30, tb=0x555555a77040 <static_code_gen_buffer+2272>)
  at /home/syster_clown/src/qemu-4.0.0/target/arm/translate.c:13772
#4 0x000055555561e699 in tb_gen_code (cpu=0x555557a94f30, pc=415056, cs_base=0, flags=128, cflags=-16777216)
  at /home/syster_clown/src/qemu-4.0.0/accel/tcg/translate-all.c:1723
#5 0x000055555561bbbe in tb_find (cpu=0x555557a94f30, last_tb=0x0, tb_exit=0, cf_mask=0)
  at /home/syster_clown/src/qemu-4.0.0/accel/tcg/cpu-exec.c:407
#6 0x000055555561c328 in cpu_exec (cpu=0x555557a94f30) at /home/syster_clown/src/qemu-4.0.0/accel/tcg/cpu-exec.c:728
#7 0x000055555565bcf6 in cpu_loop (env=0x555557a9d1f0) at /home/syster_clown/src/qemu-4.0.0/linux-user/arm/cpu_loop.c:218
#8 0x000055555562a725 in main (argc=2, argv=0x7fffffffdea8, envp=0x7fffffffdec0)
  at /home/syster_clown/src/qemu-4.0.0/linux-user/main.c:819

disas_arm_insn で QEMU の中間コード(TCG tiny code generator)に変換します。TB (translation buffer) で管理されてる。

これを、host (この場合はx86)に変換します。

#0 tcg_reg_alloc_op (s=0x555555a5d640 <tcg_init_ctx>, op=0x555557b697e0) at /home/syster_clown/src/qemu-4.0.0/tcg/tcg.c:3471
#1 0x00005555555db4f0 in tcg_gen_code (s=0x555555a5d640 <tcg_init_ctx>, tb=0x555555a77040 <static_code_gen_buffer+2272>)
  at /home/syster_clown/src/qemu-4.0.0/tcg/tcg.c:3981
#2 0x000055555561e733 in tb_gen_code (cpu=0x555557a94f10, pc=415056, cs_base=0, flags=128, cflags=-16777216)
  at /home/syster_clown/src/qemu-4.0.0/accel/tcg/translate-all.c:1751
#3 0x000055555561bbbe in tb_find (cpu=0x555557a94f10, last_tb=0x0, tb_exit=0, cf_mask=0)
  at /home/syster_clown/src/qemu-4.0.0/accel/tcg/cpu-exec.c:407
#4 0x000055555561c328 in cpu_exec (cpu=0x555557a94f10) at /home/syster_clown/src/qemu-4.0.0/accel/tcg/cpu-exec.c:728
#5 0x000055555565bcf6 in cpu_loop (env=0x555557a9d1d0) at /home/syster_clown/src/qemu-4.0.0/linux-user/arm/cpu_loop.c:218
#6 0x000055555562a725 in main (argc=2, argv=0x7fffffffde78,

tcg_reg_alloc_op とかで、s->code_ptr に書出してます。

(gdb) x/20i s->code_ptr - 20
  0x555555a77240 <static_code_gen_buffer+2784>: mov  -0x28(%rbp),%ebx
  0x555555a77243 <static_code_gen_buffer+2787>: test  %ebx,%ebx
  0x555555a77245 <static_code_gen_buffer+2789>: jl   0x555555a7724b <static_code_gen_buffer+2795>
  0x555555a7724b <static_code_gen_buffer+2795>: mov  0x34(%rbp),%ebx
  0x555555a7724e <static_code_gen_buffer+2798>: add  $0xfffffff8,%ebx
  0x555555a77251 <static_code_gen_buffer+2801>: mov  %ebx,%r12d
  0x555555a77254 <static_code_gen_buffer+2804>: add  %al,(%rax)
  0x555555a77256 <static_code_gen_buffer+2806>: add  %al,(%rax

名前のセンスの良い「昔風のANSI-C」で書かれていて超読みやすい。コメントは少なめ。やってることは簡単だし。しかし、

  translate.c は1万4千行

です。明日は paging / TLB を読みたいが...

VM image はここ。2GB くらい。

http://ie.u-ryukyu.ac.jp/~k198584/srcread.vdi

Friday 24 May 2019

ソースコード読み会

明日明後日、朝から読んでいるはずです。

今回は、QEMU 読もうかと思ってます。でも、

  tmux
  Docker

と言う話も。

QEMU読める docker image 作ろうと言うのもやったらしいですが、だめだったっぽい。VM ではできたらしい。

QEMU はバイナリ変換するので、結構楽しそうです。VMの研究が流行ったのは20年前くらい? 日の丸VMもあったはずだが...

6809のバイナリ変換書いてみたい。x86_64の速度で動く6809とか面白い気がする。

Docker 少し読んだのですが、単にAPIを叩くだけの golang だからなぁ。 もっとも使い方忘れてる。

  docker build .
  docker image ls
docker start image-id

ここで、「sleep 1000とか終わらないコマンドをDockerScript に入れておく」

すると、

docker exec container-id /bin/bash

で接続できると。しかし、死んだ後もcontainer-idは残るので

docker rm `docker ps -a -q`

で消せと。このまったく便利でないものなんとかならんのかな。

Docker 側は go なので go の debugger を使うわけですが、

dvr で golang を debug できるが、debbug build が必要
  debug build してない

ってことが判明。いろいろやったんですが、

  Moby という名前に変わってる
  build は docker 内部で行われるらしい

しかし、

  Docker Script が動かない

FROMの前にコマンドがあると動かないとか、FROM .. AS ... が動かないとか。

もしかして、Docker が古い? Fedora の最新でやってるらしいんですが確かに古い。が、

  dnf で docker-ce を読もうとすると sync failed

あ、そ。この前日に準備ができてないことが判明するって毎年のことではあるが、ちょっと残念かな。

まぁ、QEMUが読めればいいかな。

Wednesday 22 May 2019

あがり

宜野湾のあがりは久茂地に引っ越したわけですが、あんまりチェックしてませんでした。が、

  松山公園の近くの西鉄リゾートイン那覇1グラーノ

に入っていると。ってことは、

  マテキの斜め向かい?

全部入りがデフォルトになったみたいですが、いつものあがりでした。レストランなのでかなり居心地は良いです。

どっちかっていうと宜野湾復活して欲しいがな〜 ちょっとホテル値段だったかな。

松山公園は青のファームというよりは「ファームになりたがっている場所」みたいな感じですが、

  あがりのついでにファームの補強

とかどうでしょう?

Monday 20 May 2019

沖縄オープンラボラトリスペシャリスト育成プログラム

この手のプロジェクト駆動な教育はうちでは20年前からやってるわけですが、ちょっとパイの奪い合い的なところもあるかな。

〆切5/27ですが、絶賛募集中なようです。7月から12月中になんか作ると言う感じ。

長田研が熱心でシス管関係の人が行っていて割と好評だったようです。SDN中心だったこともあるみたいだけど、まぁ、なんでもありらしい。

なんとメンターの人が大学に来てくれるらしいので「どっか遠くにいかないとだめ」ってことがないのが素晴らしい。隣の新棟でやるそうです。

自分的には課題のSDS(Software Defined Storage)をやりたいような気もするが「自分がやるのではない」からな。

工学部でもうち以外の別なコースの学生とかにも裾野を広げると良いと思いますが...

  先生のコネ

的な問題が。まぁ、そうですよね。うちは、1年後期暇だってのが定評なので、1年次がいいかも。そうすると、

  OSの課題のモティベーションも上がる

でしょう。きっと。

https://www.okinawaopenlabs.or.jp

Sunday 19 May 2019

工学部1号館の自販機

一階のピロティに自販機が登場しました。だから何とお思いでしょうが…

  今まで20年間そこに自販機がなかった

のは某先生が反対していたかららしいです。めでたいです。サークル棟とかローソンまで暑い中歩かなくてすむからな。

もっとも、水の方を愛用してますけどね。

どっちかっていうと学内に大戸屋作って欲しい。スタバは要らないから。

Saturday 18 May 2019

PyCon 沖縄

会場琉大なので。少し狭かったかな〜 聞きたかったような気がしていた Docker とか、Language Server とかをスキップしてしまいましたが、面白かったかな。

Python だと、少し言い訳しながらな感じなのが、むしろ居心地良いのかも。

並列処理の話でも、いきなり「GIL が...」みたいな言い訳が入る。20年前に解決しておけよ的な。

Zope まだ生きてるのかとか、いろいろ驚く話が。フラスコ面白そうだったかな。

https://kyushu.pycon.jp/2019/

Friday 17 May 2019

3分で blog を書くのは無理

まぁ、生存確認的に。

今日は誤爆しないように気をつけよう。

Thursday 16 May 2019

卒業生はたまには大学に来てください

卒業後1,2年は知ってる後輩もいるんだけど、時間が経っちゃうとね。でも、先生はいるし。いなくても、

  大学は学ぶだけではなくコネを作るところもであるから

会社にとっても人材確保につながるかも知れないし。

今いる学生にとってもいろいろ刺激にはなると思うんだ。

昔は事務に菓子折りがあって「大学行くならこれを持っていきなさい」ってのがあったみたいです。

Wednesday 15 May 2019

ひさしぶりにプチエトワール

お昼二千円。なるべく行こうとは思っているんですが、

  4月の前半は風邪で死んでた

のでいけませんでした。その奥にあった、

  50's Cafe

は閉店してました。まぁ、仕方ないかな〜

良い店はやっぱり通わないと。特にこういう場所だと。まぁ、それだけ復活したと言うことか。

パンはスープに合わせて出してと言おうと思ってなかなか言えないな。 

https://hitosara.com/0006072086/

Tuesday 14 May 2019

ZF集合論

これも、そのうちやろうと思ってたんですが、なんとなく手を付けてしまいました。Agda で書くわけですが、

  ZFって、なんでもかんでも集合で型とかない

おいおい。しかも一階述語論理なので∀とか∃とかが出まくりで良くわからない。Agda に慣れすぎたかも。

  Agda の集合は型があるので a : A と b : B を a : A ∪ B とかすることはできない

Stackoverflow にも「AgdaのSetは、集合論のSetとは別もの」とか書いてある。まぁ、Type だよね。本来は。

なので、方針的には

  Agda のrecord ZFで、ZFSet と演算子∋, ∪, ⊆などを定義する
  record IsZFで、ZFの公理を定義する
  その時に∃xは関数で置き換える

例えば

   ZFSet : Set n
   _∋_ : ( A x : ZFSet ) → Set m
   _≈_ : ( A B : ZFSet ) → Set m
   ∅ : ZFSet

こんな感じ。正則の公理、

   ∀ x ( x ≠ ∅ → ∃ y ∈ x ( y ∩ x = ∅ ) )

は、

   minimul : ZFSet → ZFSet
   regularity : ∀( x : ZFSet ) → ¬ (x ≈ ∅) → ( minimul x ∈ x ∧ ( minimul x ∩ x ≈ ∅ ) )

と関数にわけます。

あとは、このrecordを満たすモデルを作ればよい。本によると、順序数(Ordinal)を作って、それから関数で部分集合を作り、それを
構成可能集合とする。とあるな。Ordinal は自然数の二重ループみたいな data で良いんじゃないかな。関数で部分集合とるのは
Agda は得意。

構成可能集合まではできたが、これからZF record を作るのは大変そう。まだ、できるかどうかわからないな。

あと、( y ∈ x ) ∨ ( ¬ y ∈ x ) なのを使うみたいなんだけど、直観主義論理な Agda だとそれは使えないんだけど。どーするの?

しばらく楽しめそうです。

  http://www.cr.ie.u-ryukyu.ac.jp/hg/Members/kono/Proof/ZF-in-agda/file/tip/zf.agda

Monday 13 May 2019

ファイルが読めない

なんか、

  % /bin/ls -le /Users/kono/Pictures/Photos/DSC00746-1.JPG
  -rw----r-- 2 kono staff 1835008 Dec 8 2011 /Users/kono/Pictures/Photos/DSC00746-1.JPG
  % more !$
  % more /Users/kono/Pictures/Photos/DSC00746-1.JPG
  /Users/kono/Pictures/Photos/DSC00746-1.JPG: Permission denied

まぁ、確かに別なユーザから読んでるんだけど。でも、o+r 出てるんだけどな。HFS ですが、なんだっけ...

  ls -le で出ないから ACL じゃない
  chflags は、Permission deined にはならない

あぁ、なんかあったような気がするけど、思い出せない〜 

まぁ、自分の方から読めるので ssh しなおせば良いだけですが。

Sunday 12 May 2019

Photos.app .HEIC trouble

Photos.app の苦労は iPhone の方だけではなかったようです。Photos.app の読み込んだ写真の大半が重複。Info を見てみると、

  IMG_2127.HEIC

なんだこれ。どうも、アップルの発明した新フォーマットを勝手に default に設定するらしい。写真の追加パスは複数あり、その複数で JPG だったり HEIC だったり。

MBPへの転送時の重複排除は HEIC と JPG の中でしか行われないで重複するらしい。見ないふりしてきたので7千枚溜まってる。ぐう。

今までの手順は、

  Smart Album で .HEIC だけの Album を作る
  全選択する
  メインのPhotoにいき、そこから削除

だったんですが、Photoにいくと選択が切れてしまう。Smart Album からの削除メニューは出ない。ううむ。

じゃぁ、AppleScript から select してやれば良いと思ったんですが、

  昔あった、select command は削除された

らしいです。つまり、AppleScript から selection に追加することはできない。selectionを参照することはできますが、

  なんと写真の削除も Photos の辞書から削除

まあね。AppleScript support は Photos.app を作っているプログラマには荷が重いんでしょう。

じゃぁ、

  外から勝手に削除すれば良いんじゃね?

と思ったんだが、一つ削除したところ、

  Photos.app は気づかずに表示。はぁ?

edit with とかで初めてエラーが出る感じ。昔はDB修復みたいなメニューあったんだけど、削除されてしまったらしい。

これは、 自作Scriptで 2018/06/2018-06-19 とかにリンクするのがあるので、そこにリンクして削除かららの再読み込みかと思ったんですが...

  Smart album から選択して、control-click すると削除メニューがでる

というのが判明しました。ただし、control-click すると選択数は600に減らされるけど。でも、

  それを10回やるなら、7千回よりは許せる

で、もちろん、それだけではゴミ箱に入ったまま。でも、Recently Deletedd Item には No Item としか出ない。

  そこであきらめないで、delete button を押すと、7千枚削除します

と出るようです。ふん。任務完了だな。

iPhotoLink.pl でリンクして終わりと思ったら、その中にまだ .HEIC が。しつこい。まだ、残っているかと思ったら、

  どうも、まだ.HEICがある時に一回 script を走らせた

みたいですね。2千枚だが、こんどは 

  find ~/Pictures/Photos/Masters -name '*.HEIC' | perl -nle unlink

で終わり。簡単.はい、ご苦労様でした。

Saturday 11 May 2019

iPhone の写真とPapers3

Papers3 は論文管理ソフトですが、いろいろ問題が。どっかに買収されてしまったらしいのですが、まだ、動いていはいます。

課金されないはずだが、時間の問題かもなぁ。

Dropbox base の同期が用意されてるんですが、

  Dropbox 嫌いなんだよ

Google drive も使えるらしいけど、iPhoneからは使えない。でも、Wifi 経由の local共有はできる。3GBもないのでそれでいいかな。

設定していたんですが、前回、iPhoneを割った時になくなったらしいです。

で、Storage 見てみると写真が19GBくらい食ってる。おかしいなぁ。Mac 側からたまに取り込んで消してるはずなんだけど。

いや、Photo Stream で同期しているので、読み込みは必要ないはずなんだけど。いずれにせよ、

  消す必要がある

なので、面倒くさいけど iPhone 側から手動で3700くらい削除することに。2016 ぐらいからあるな。

これは Photo Stream が切った方が良いかもな。iCloud Photos も悪いとは思わないんですけどね。

さらに、ゴミ箱から消すという作業が必要で、それに5分くらいかかっていたようです。ダメな奴。

論文の方の同期は、まだ、終わらんな。Google drive とかで自分で組んでしまった方が安全かも知れん。

  Cloud 信用できなさすぎる

この手のものは学会が提供するべきものなんじゃないの? 学生には ACM Digital Library 使えっていいますけどね。

Friday 10 May 2019

授業録画システム

システム更新の一環です。どうも今まで使っていた会社は撤退するらしく、

https://www.photronmandesolutions.co.jp/education/products/spiderrec.html

というものを紹介してもらいました。

前から天井に監視カメラがあって「そこ知ってると見れる」的なところから始まって、岡崎先生の要望で入れた感じ。

まぁ、僕は割と授業軽視で「自分で課題やってなんぼだろ」と思うわけですが、課題をやってみせる所で録画欲しいと感じる学生はいるらしい。

もちろん、欠席してもあとで見れるというメリットが大きいと思うんですけどね。ところが、

  電気電子の先生から横槍が入って、322教室からは録画システムは撤去

公開するかどうかは個々の先生がリンクを公開するかどうかで選択できるらしいんですが、

  まかりならん

という先生がいたらしいです。古色蒼然な電気電子っぽい。うちの学科で占有している321教室は全部録画されてます。

なんですが、当の岡崎先生に聞いたところ、

  やっぱり学生に録ってもらうのが良いので使ってません

あららら。當間先生が使ってくれているんですが、他に使ってくれている先生はいないらしい。あららら。

要求する質と、提供する先生の方の意識の問題だな。音声がなぁ。質問する学生の音とか拾うの難しい。

画面は記録されるのですが板書はぎりぎり見えるかなくらい。

でも、そんなに高いシステムでもないので、使ってくれる先生一人でもいれば入れて良いかな。もしかすると、

  Spider Rec が素晴らしく良くて岡崎先生にも使ってもらえる

かもしれないし... たぶん、営業さんに来てもらえると思うので、いろいろ突っ込めるはずです。

Thursday 9 May 2019

数学のフォント

まぁ、読めなくても困らないのではあるが、気になる。Graph を表す文字らしいんですけど、

  X エックスですよね?!

どうも TeX で

\mathfrak{ABC}

ってやると出るらしい。どっかに、そのフォントがあるはずなんだが。ttf とか otf とかいろいろあって、このMBPにも
いろいろ載っているらしいんですが、

  そのフォントファイルがどこにあるかわからない

lualatex は入れてあるので、動かしては見て、表示はできました。

/usr/local/texlive/2017/texmf-dist/fonts/opentype/public/lm-math/latinmodern-math.otf
/usr/local/texlive/2017/texmf-dist/fonts/opentype/public/lm/lmroman10-italic.otf
/usr/local/texlive/2017/texmf-dist/fonts/opentype/public/lm/lmroman10-regular.otf
/usr/local/texlive/2017/texmf-dist/fonts/opentype/public/lm/lmroman12-bold.otf

この辺らしいが、見れないぞ。やっぱり、FontForge ?


\documentclass{article}
\usepackage{xfrac,unicode-math}
\defaultfontfeatures{Scale=MatchLowercase}

%% Load 10 math fonts; 1 of them with and without some "stylistic sets"
\setmathfont{Latin Modern Math}[version=lm]
\setmathfont{XITS Math}[version=xits]
\setmathfont{Stix Math}[version=stix]
%\setmathfont{Stix Two Math}[version=stix2] % https://github.com/stipub/stixfonts/
%\setmathfont{Stix Two Math}[StylisticSet={1,2,8}, version=stix2_128]
\setmathfont{TeX Gyre Termes Math}[version=termes]
% \setmathfont{Cambria Math}[version=cambria]
\setmathfont{TeX Gyre Pagella Math}[version=pagella]
\setmathfont{Asana Math}[version=asana]
\setmathfont{Libertinus Math}[version=libertinus]
\setmathfont{TeX Gyre DejaVu Math}[version=dejavu]
%%\setmathfont{Neo Euler}[version=euler] % status: "abandoned"

\setlength\parindent{0pt} % just for this example
\newcommand{\abc}{abcdefghijklmnopqrstuvwxyz}
\newcommand{\ligs}{\ ff fi fl ffi ffl}
\newcommand{\abctextrm}{Text roman: \abc\ligs}
\newcommand{\abctextit}{Text italic: \ \ \textit{\abc\ligs}}
\newcommand{\abcmathit}{Math italic: \ $\abc$}
\newcommand{\formulas}{%
$\displaystyle
\int_{0}^{1}\! x^{2}\,\mathrm{d}x = \sfrac{1}{3}
\qquad
\sum_{k=0}^{\infty} \frac{1}{k^{2}}=\frac{\pi^{2}}{6}
\qquad
\mathcal{ABC}\ \mathfrak{ABC}\ \mathbb{CNQR}$}
\newcommand{\doall}{\abctextrm\par\abctextit\par\abcmathit\par\formulas}

\begin{document}

%% Latin Modern (the default on most systems)
\setmainfont{Latin Modern Roman}
\mathversion{lm}
\section*{Latin Modern Roman, Latin Modern Math}
\doall

\end{document}

Wednesday 8 May 2019

ハリーズのカレー

だいたい、17時に頼んで取りに行くパターンだったんですが、ここ一ヶ月くらいは,既に閉まってるパターン。

しょうがないので,早めに研究室にいって16時に発注してみました。間に合ったですが、ネーネーひとりだったようで、少し時間がかかったようです。

でも、おかげで,ゼミは18時からちゃんと始まった。これが正しいらしい。

Tuesday 7 May 2019

hgweb trouble

なんか,hg にある昔のソースを見ようとしたら、一部,見れない〜 hg clone したら、.DS_Store がないとか。もしかすると、頭に来てfind で消したかも。

そもそも、.DS_Store を hg add する奴は死ね的なところはあるわけですけどね。hg add がなんでも add してしまうのがいけない。

いろいろ調べたが、再構成するのが良いらしい。 ~/.hgrc に

  [extensions]
  hgext.convert=

を足して、

  hg convert --config convert.hg.ignoreerrors=True BAD FIX

してやれば Ok 。hgweb の日付が変わってしまうが。

ところが、

  brew upgrade mercurial

したら、hgweb が internal error。なんだよ。この忙しい時に〜 apache の error.log には

  ImportError: No module named mercurial: /var/www/cgi-hg/index.cgi

あっそ。5.0 になったので、昔のを消されてしまったらしい。cgi-hg が参照する python がどれかは、/usr/bin/env python とか書いてあるので環境変数によるのか?

が、

  import sys
  sys.path.insert(0, "/usr/local/Cellar/mercurial/5.0/lib/python2.7/site-packages")

で良いらしい。ただし、これだと、brew upgrade mercurial するたびに、ここを書き直す羽目になる。だめじゃん。pip install で mercurial を入れるべきかも知れん。

さらに、hgweb の日付表示が、2 month ago とかに。それ、誰もうれしくないから。これを日付表示にするには、

   /usr/local/Cellar/mercurial/5.0/lib/python2.7/site-packages/mercurial/templates/static/mercurial.js

を修正する必要があり、 function process_dates(parentSelector)で

  if (delta > (scales.day)){
    return shortDate(once);
  }

としてやれば良いようです。

しかし、最近のGoogleはほんとにダメ。だめな結果しか返ってこない。誰でも知りたいようなことなら検索しないんだよ。

Monday 6 May 2019

ちょっと磨いてみました

ハサミの先でごりごりと。あと接点回復剤。

ピコピコ言うのは少し収まったかな。

Sunday 5 May 2019

Netflix Ultraman

結局、あんまり見てない Netflix ですが、Ultraman だけは見ようかなと。

60になったハヤタ隊員と、その息子という導入は

  ハヤタ隊員って、もう少し年上ではなかったか?

とは思うのですが面白かったです。モロボシダンは高校生相手に性格の悪さを発揮するし。

ウルトラマンというよりはアイアンマンで、割と重い感じ。ウルトラマンは水的な軽さがあった。

エヴァも巨大化した割に軽くて、

  実はすかすかなんじゃないか?

と思うんですが、巨大化するのかな。

Saturday 4 May 2019

Abaddon Prime

高雄のAnormalyの

 Recharge event

ですね。恒例化しているのは素晴らしい。関係者ありがとうございます。

青の負けっぷりもいつものことですが、みんなでお菓子を食べながら、Plsp の配信を聞きながら...

朝、少し寄り道して Lv10 まで上げました。さすがに Lv11 は時間かかるかな。この前のリンクイベントとかAP倍とかあったから少し楽でした。

半年でLv16くらいが目標かも。そしたら、また Recursion か?

Friday 3 May 2019

レモン麺

宜野湾の330沿いのラーメン屋さんはほぼ全滅的な感じなんですが、赤道のラブメンが頑張ってるかも。なんかie OBがいました。

あがりとまる嘉が移転、武虎三竹寿横浜家系は閉店、永大安と赤道ラーメンはだめだめ、バークレーズのラーメンはとんかつに。

ラーメンフェスタの時にはなんか盛り上がったんだけどな。小麦粉の値上げと人手不足が効いてるみたい。

Wednesday 1 May 2019

Lightning cable

なんか、1年持たないように設計されているんじゃないかろうかってくらい。

必ず端子がはがれちゃうんだよな。

Firewire → 変な横長の → Lightning

ですが、Lightning の時には「なんで micro USBにしないんだよ」と横槍がはいったらしい。

これで、USB C になったりすると、残念度が増しますが、またダメな端子が追加される予感。