まだで来てないんですが、
Missing character: There is no ⊔ (U+2294) in font IPAExMincho:mode=node;script
問題はこれで、要するに ⊔ の glyph が IPAExMincho にはないらしい。で、フォントを探すわけですが、
High Sierra では Font の扱いが変わったらしく、TeXLive から OSX のSystem Font にはアクセスできない
あ、そうですか。でも、
もうすぐでる TeXLive 2018は、付属のパッケージとして用意される
らしいです。つまり,今は動かない。
TeXLive のfontは、
/usr/local/texlive/2017/texmf-dist/fonts/opentype
とかにあり、これを(どうにかして) /Application/Font Book.app で読み込むと、表示できます。このサンプルに ⊔ を paste すると、そのフォントがglyphをもってるかどうかわかる。
STIX Math とかには入っているんですが、
\setmainfont{STIX Math}
とかしても変わってくれない。
Missing character: There is no ⊔ (U+2294) in font IPAExMincho:mode=node;script
のまま。日本語フォントの方は、 \setjmainfont で変えるとかある。ということは、⊔ が日本語として認識されているっぽい。
⊔ を欧文フォントで表示する方法はググり切れませんでした。まぁ、TeXLive 2018 で解決するのかも。
LuaLaTeX の環境持ってる人が、⊔ の表示を試してくれるとうれしいかも。
わかりました
\ltjsetparameter{jacharrange={-3}}
とすれば良いらしい。これで、 ⊔ が欧文フォントになるらしい。default は +3。
http://tinyurl.com/yadpzugj
Monday, 30 April 2018
Sunday, 29 April 2018
Saturday, 28 April 2018
LuaTex
Agda の記号で、platex ではでないものがいくつか。そういえば、Atton が論文書いてたはずだけど、と思って見てみると、
agda のUnicodeを TeX のコマンドに置き換える ruby script
なるほど。そうくるですか。それで問題なく動いたんですが、ググってみると、
XeTeX とか LuaTeX なら Unicode がそのまま使える
まぁ、そうだよな。(実際にググると、Atton のとか、自分のとかが引っかかるわけですが...)
で、動かすんですが、
\documentclass[techrep]{ipsjpapers}
を、
\documentclass[ltechrep]{ipsjpapers}
として、package をいくつか入れ替えれば動きました。
なのだが、やっぱり、
Set (m ⊔ n)
の m と n の間の U みたいな奴がでない。log を見ると、
Missing character: There is no ⊔ (U+2294) in font IPAExMincho:mode=node;script
あ、そうですか。フォントの問題らしいです。フォントを切り替えるには、
\setmainfont{DejaVu Sans}
とかするらしいが、やっぱりでないな。
LuaLaTeX は、直接、PDFを吐くのが良いですが、少し遅い気がするのは気のせいか。
agda のUnicodeを TeX のコマンドに置き換える ruby script
なるほど。そうくるですか。それで問題なく動いたんですが、ググってみると、
XeTeX とか LuaTeX なら Unicode がそのまま使える
まぁ、そうだよな。(実際にググると、Atton のとか、自分のとかが引っかかるわけですが...)
で、動かすんですが、
\documentclass[techrep]{ipsjpapers}
を、
\documentclass[ltechrep]{ipsjpapers}
として、package をいくつか入れ替えれば動きました。
なのだが、やっぱり、
Set (m ⊔ n)
の m と n の間の U みたいな奴がでない。log を見ると、
Missing character: There is no ⊔ (U+2294) in font IPAExMincho:mode=node;script
あ、そうですか。フォントの問題らしいです。フォントを切り替えるには、
\setmainfont{DejaVu Sans}
とかするらしいが、やっぱりでないな。
LuaLaTeX は、直接、PDFを吐くのが良いですが、少し遅い気がするのは気のせいか。
Friday, 27 April 2018
バッテリー
Thursday, 26 April 2018
沖縄電子
なんか学生が USB3 の端子が足りないとか言ってるので、
じゃぁ、買いに行こう
で、沖縄電子に行ったんですが、あそこはPC部品屋さんではないのだった。GoodWill に行くのが正しかったらしい。
なんか、でも微妙に違う感じだな。
Volume がない
バリコンはあったけど。もうVolumeって意味ないよね。ロータリエンコーダだよな。直接デジタル入力するとすれば。学生が買ってきた、
Switchのあれ
ですね。学生たちは、
スイッチ
とかにひかれていたみたいです。LED付きが1200円するとか驚いていた。LEDなければ200円だけど。
これを箱に付けるには、ドリルで穴開けてリーマーで広げるみたいな話をしたんですが、
リーマーはあるが、ドリルが見当たらない
いや、あったかも。もっとも、うちの4Fの研究室にいけばボール盤あるはずだから。
といっても、これやりたいとかいうと「ありません」とか言われる今日この頃。この前探してなかったのは、Oリングだった。
自分の実家あった、なんでもできるマイコン開発室の方が便利だったな...
じゃぁ、買いに行こう
で、沖縄電子に行ったんですが、あそこはPC部品屋さんではないのだった。GoodWill に行くのが正しかったらしい。
なんか、でも微妙に違う感じだな。
Volume がない
バリコンはあったけど。もうVolumeって意味ないよね。ロータリエンコーダだよな。直接デジタル入力するとすれば。学生が買ってきた、
Switchのあれ
ですね。学生たちは、
スイッチ
とかにひかれていたみたいです。LED付きが1200円するとか驚いていた。LEDなければ200円だけど。
これを箱に付けるには、ドリルで穴開けてリーマーで広げるみたいな話をしたんですが、
リーマーはあるが、ドリルが見当たらない
いや、あったかも。もっとも、うちの4Fの研究室にいけばボール盤あるはずだから。
といっても、これやりたいとかいうと「ありません」とか言われる今日この頃。この前探してなかったのは、Oリングだった。
自分の実家あった、なんでもできるマイコン開発室の方が便利だったな...
Wednesday, 25 April 2018
最近ヘリがうるさい
Tuesday, 24 April 2018
Haskell
授業で教えるわけですが、いまいち、なっとくできないのが、
関数を表示できない
derived show でないdataを表示できない
こと。どっちも項なんだから表示できるべきだよね。なぜ、できない。
*Main> let f x = x
*Main> f
<interactive>:28:1: error:
No instance for (Show (a0 -> a0)) arising from a use of `print'
(maybe you haven't applied a function to enough arguments?)
In a stmt of an interactive GHCi command: print it
関数はアセンブラに変換されてはいるわけですが、元の項をとっておけば良いだけなの
で、まったく納得できないです。
絶対、わざとだろ。
Haskell は boot strap に既に Haskell が必要ですが、それがなかったらどうするのっ
て辺りも気になってます。
Prolog は .ql があれば、まぁ、なんとか。Haskell には boot strap 用の interprete
r とかあるんだろうか。
個体発生は系統発生を繰り返すべきだろ〜
関数を表示できない
derived show でないdataを表示できない
こと。どっちも項なんだから表示できるべきだよね。なぜ、できない。
*Main> let f x = x
*Main> f
<interactive>:28:1: error:
No instance for (Show (a0 -> a0)) arising from a use of `print'
(maybe you haven't applied a function to enough arguments?)
In a stmt of an interactive GHCi command: print it
関数はアセンブラに変換されてはいるわけですが、元の項をとっておけば良いだけなの
で、まったく納得できないです。
絶対、わざとだろ。
Haskell は boot strap に既に Haskell が必要ですが、それがなかったらどうするのっ
て辺りも気になってます。
Prolog は .ql があれば、まぁ、なんとか。Haskell には boot strap 用の interprete
r とかあるんだろうか。
個体発生は系統発生を繰り返すべきだろ〜
Monday, 23 April 2018
論文書いてます〜
もっと早く書けよとも思うが、この時期はな〜
学生には卒論でやったことは発表してもらいたいと思いますが、いろいろだからな。B3で研究室割り当てなので、B4で発表ってのも普通にあるんですが、今年はそこまでいかず。
ホテル側からは懇親会代上げたいとか言われていて、ちょっと困ってます。全体から見れば対した金額ではないんだけど、懇親会代って個人にひっかぶるものだからなぁ。ホテル側はその金閣を追求してなんかうれしいんだろうか? まぁ、めんどくさくなったら、那覇に戻せば良いだけだな。
毎年やってるものだけど、沖縄に人呼んで、自分にまったくメリットなくて、むしろ、ホテルにお金取られるという楽しい仕事です。いや、わりとそういうの好きだよ。
少なくとも学生旅費考えなくて良い学会があるのはうれしい。
学生には卒論でやったことは発表してもらいたいと思いますが、いろいろだからな。B3で研究室割り当てなので、B4で発表ってのも普通にあるんですが、今年はそこまでいかず。
ホテル側からは懇親会代上げたいとか言われていて、ちょっと困ってます。全体から見れば対した金額ではないんだけど、懇親会代って個人にひっかぶるものだからなぁ。ホテル側はその金閣を追求してなんかうれしいんだろうか? まぁ、めんどくさくなったら、那覇に戻せば良いだけだな。
毎年やってるものだけど、沖縄に人呼んで、自分にまったくメリットなくて、むしろ、ホテルにお金取られるという楽しい仕事です。いや、わりとそういうの好きだよ。
少なくとも学生旅費考えなくて良い学会があるのはうれしい。
Sunday, 22 April 2018
チョコレート
Saturday, 21 April 2018
ご褒美ポータルな日
Friday, 20 April 2018
不織布とBDメディア
なんか、去年あたり Goodwill でいつも使っているElecomの48枚箱が売ってなくて。と思ったら、
BD用のを新しく売ってる
どうも「不織布が細かくなりました」みたいに書いてあります。
ググってみると、
不織布の模様がBDメディアに転写されて読めなくなった
なんて話が。2009年あたりから使ってるわけなんだけど、この前もチェックしたが得に不都合はないんだけど。そもそも、縦置きの箱で転写するほどの圧力がかかるはずないし。
というと別に不織布でも大丈夫みたいな話も。どうも、
溶剤が残ってる不織布だとだめ
とかいう情報もあったり。
新しい不織布は,まぁ、確かに少し凸凹は少ない気がするが、
そんなに差があるとは思えず〜
なので、昔から使ってるのはそのままでいいか。全部箱を買い換えたりするとメーカの思うツボ的な。
check と言うのはたまに重複したもの取り除いたりしてると順番が狂うので、箱に入ってるのをplaylistだけ読み出して html な目次にするってのをやってたりするからですね。
そもそもコピ1とかでバックアップを制限するから問題になるんだろとも思います。
あぁでも場所食ってきたんだよな。そろそろテラバイトなメディアでないの?
エレコム BD ファイルケース http://amzn.asia/cDv3rzo
BD用のを新しく売ってる
どうも「不織布が細かくなりました」みたいに書いてあります。
ググってみると、
不織布の模様がBDメディアに転写されて読めなくなった
なんて話が。2009年あたりから使ってるわけなんだけど、この前もチェックしたが得に不都合はないんだけど。そもそも、縦置きの箱で転写するほどの圧力がかかるはずないし。
というと別に不織布でも大丈夫みたいな話も。どうも、
溶剤が残ってる不織布だとだめ
とかいう情報もあったり。
新しい不織布は,まぁ、確かに少し凸凹は少ない気がするが、
そんなに差があるとは思えず〜
なので、昔から使ってるのはそのままでいいか。全部箱を買い換えたりするとメーカの思うツボ的な。
check と言うのはたまに重複したもの取り除いたりしてると順番が狂うので、箱に入ってるのをplaylistだけ読み出して html な目次にするってのをやってたりするからですね。
そもそもコピ1とかでバックアップを制限するから問題になるんだろとも思います。
あぁでも場所食ってきたんだよな。そろそろテラバイトなメディアでないの?
エレコム BD ファイルケース http://amzn.asia/cDv3rzo
Thursday, 19 April 2018
Open Source Conference のネタ
まぁ、毎年、ネタがないなか出してるんですけどね。
年末からLLVM/GCCやってたので、それでも出そうかなあ。それは x.v6 用にやってたので、それでもいいかな。
Agda やったり、TreeVNCやったり、去年は、
cmake で聴衆一人をやらかしたり
ふむふむ。そういえば、
Java9 の jigsaw と格闘
ってのもやったな。やぶれさりましたが。
締切り 4/23 らしいので、もう少し考えます。
年末からLLVM/GCCやってたので、それでも出そうかなあ。それは x.v6 用にやってたので、それでもいいかな。
Agda やったり、TreeVNCやったり、去年は、
cmake で聴衆一人をやらかしたり
ふむふむ。そういえば、
Java9 の jigsaw と格闘
ってのもやったな。やぶれさりましたが。
締切り 4/23 らしいので、もう少し考えます。
Wednesday, 18 April 2018
Prolog
去年もblogで書いてるんですが、授業で教えた方が良いよなってことで1講義使ってるんですが、
去年真面目に書きすぎた
らしく、ちょっと難しすぎたんじゃないのか? と反省気味です。まぁ、時間内には収まるんだが...
たぶん、節形式は命題論理の範囲内で扱って、面倒くさい部分はリンクで外に出して、
シーケント代数部分の例題
を入れるようにすると良いかな。
去年真面目に書きすぎた
らしく、ちょっと難しすぎたんじゃないのか? と反省気味です。まぁ、時間内には収まるんだが...
たぶん、節形式は命題論理の範囲内で扱って、面倒くさい部分はリンクで外に出して、
シーケント代数部分の例題
を入れるようにすると良いかな。
Tuesday, 17 April 2018
Blog の勧め
自衛隊の日報が話題になってますが、
Blog は読み返すと面白い
学生とかだと、そもそも書く練習をあまりしてない。なので、とにかく書けと。Twitter で意味不明なことをたくさん書くのも良いが、
読者は未来の自分
なんだよね。他人のブログは検索してみるくらい。なので、自分に向けて書く。
例えば、MBPの新規installした時に、
あのソフトはどうやってinstallした? 設定どうした?
とかは、blog に書いておけば一発です。
自分が面白いと思ったことを書き留めるわけなので、自分がもっとも面白いと思うらしいです。自衛隊の日報でもそうですが、
毎日ネタ探しするようになる
ということは、今日は何か面白いことあった? と考える。 あるいは、今日はなんか面白いことしよう(そしてblogに書こう)ということになります。これが結構いいと思う。
問題は Facebook は検索が実用的ではないということね。自分でサーバ建てて、そこで運用も良いけど、メンテも自分でするの? いや、やるけどさ。
自分は Blogger (Blogspot)
使ってます。Google のサービスだな。なので、Ingress 関係は Blogger から G+ に publish してます。
Facebook とBloggerへのMHからのscriptによる同時投稿なので、人に勧められる方法でない所が残念。でも、Blogger からの連携方法はいくつかあるらしい。 Facebook からはzipで引き上げて、bloggerにAtomでuploadするというのが可能なはずです。(二度とやりたいとは思わないが...)
まぁ、Facebook の検索性がくそなので、Blog としては役に立たないってことではあるんですけどね。むしろ、その検索性の低さに安心する人もいるのかも知れないけど...
Blog は読み返すと面白い
学生とかだと、そもそも書く練習をあまりしてない。なので、とにかく書けと。Twitter で意味不明なことをたくさん書くのも良いが、
読者は未来の自分
なんだよね。他人のブログは検索してみるくらい。なので、自分に向けて書く。
例えば、MBPの新規installした時に、
あのソフトはどうやってinstallした? 設定どうした?
とかは、blog に書いておけば一発です。
自分が面白いと思ったことを書き留めるわけなので、自分がもっとも面白いと思うらしいです。自衛隊の日報でもそうですが、
毎日ネタ探しするようになる
ということは、今日は何か面白いことあった? と考える。 あるいは、今日はなんか面白いことしよう(そしてblogに書こう)ということになります。これが結構いいと思う。
問題は Facebook は検索が実用的ではないということね。自分でサーバ建てて、そこで運用も良いけど、メンテも自分でするの? いや、やるけどさ。
自分は Blogger (Blogspot)
使ってます。Google のサービスだな。なので、Ingress 関係は Blogger から G+ に publish してます。
Facebook とBloggerへのMHからのscriptによる同時投稿なので、人に勧められる方法でない所が残念。でも、Blogger からの連携方法はいくつかあるらしい。 Facebook からはzipで引き上げて、bloggerにAtomでuploadするというのが可能なはずです。(二度とやりたいとは思わないが...)
まぁ、Facebook の検索性がくそなので、Blog としては役に立たないってことではあるんですけどね。むしろ、その検索性の低さに安心する人もいるのかも知れないけど...
Sunday, 15 April 2018
Docker and Kubernates
いろいろあって久しぶりにいじってますが。といっても、去年のOSの課題でもトラブってるので、そんな昔でもないか。
Dockerは何故か、
DBとWeb Serverを別コンテナで上げる
とかの信条があるらしく、細かいコンテナが沢山上がる。別に一緒にしても良いんですけどね。で、結局、
細かいコンテナをまとめて管理する
ってのが必要で、それが Kubernetes らしいです。複数のサーバ上のコンテナを管理できるらしい。
便利そうだけど、なんかいろいろめんどくさい。Ansible script ないの?
一昨年の Docker container をいじったら、
Failed to get D-Bus connection: No connection to service manager
とか言われる問題と少し格闘してました。/etc/rd 以下のscriptを起動すると勝手に sytemd が動くらしく、systemdが文句を言うらしい。
systemd また、お前か?!
という感じ。docker --privledged /sbin./init とかすれば回避できるのだそうです。ふーん。他にもいろいろ疑問はあるが... ここまでかな。
Dockerは何故か、
DBとWeb Serverを別コンテナで上げる
とかの信条があるらしく、細かいコンテナが沢山上がる。別に一緒にしても良いんですけどね。で、結局、
細かいコンテナをまとめて管理する
ってのが必要で、それが Kubernetes らしいです。複数のサーバ上のコンテナを管理できるらしい。
便利そうだけど、なんかいろいろめんどくさい。Ansible script ないの?
一昨年の Docker container をいじったら、
Failed to get D-Bus connection: No connection to service manager
とか言われる問題と少し格闘してました。/etc/rd 以下のscriptを起動すると勝手に sytemd が動くらしく、systemdが文句を言うらしい。
systemd また、お前か?!
という感じ。docker --privledged /sbin./init とかすれば回避できるのだそうです。ふーん。他にもいろいろ疑問はあるが... ここまでかな。
Saturday, 14 April 2018
新歓LT
いや、さぼったんですけどね。結構、賑やかだったようです。なんと去年は1年次が10人しか来なかったらしい。今年は、
ポスター貼りまくった
當間先生が紹介してくれた
とかがあって、30人参加だったそうです。良かったね。ちゃんとすれば来てくれるものさ。
新B4の一人は研究室の居心地が良いらしく割と来てくれてます(本当は4人だけど)。別にB4でなくても研究室くれば良いのにと思うが。 LTでも、
研究室の様子がわからない -> 行け!
なんてのがあったらしい。自分の研究に興味を持ってくれる人を歓迎しない先生はいないからさ。
自分も学部1年の頃から哲学の研究室に顔出してて楽しかったです。酒飲みな先生だったな〜
ポスター貼りまくった
當間先生が紹介してくれた
とかがあって、30人参加だったそうです。良かったね。ちゃんとすれば来てくれるものさ。
新B4の一人は研究室の居心地が良いらしく割と来てくれてます(本当は4人だけど)。別にB4でなくても研究室くれば良いのにと思うが。 LTでも、
研究室の様子がわからない -> 行け!
なんてのがあったらしい。自分の研究に興味を持ってくれる人を歓迎しない先生はいないからさ。
自分も学部1年の頃から哲学の研究室に顔出してて楽しかったです。酒飲みな先生だったな〜
Agda の否定
前にもやったことあるんですが、また、勉強中です。
http://seeker-s-eye.blogspot.jp/2017/03/agda.html
<,=,> の場合分けで、その計算型goto文を使うわけですが、
data Tri {a b c} (A : Set a) (B : Set b) (C : Set c) :
Set (a ⊔ b ⊔ c) where
tri< : ( a : A) (¬b : ¬ B) (¬c : ¬ C) → Tri A B C
tri≈ : (¬a : ¬ A) ( b : B) (¬c : ¬ C) → Tri A B C
tri> : (¬a : ¬ A) (¬b : ¬ B) ( c : C) → Tri A B C
なので、ばっちり否定が入っていて。こいつで、場合分けしたら、tri≈ なら、それ以外の場合は出てこないはずなんですが、場合分けは出てきてしまう。
checkEQ ( x y : ℕ ) -> ( eq : x ≡ y ) -> compare x y ≡ tri≈ _ _ _
checkEQ x y refl with compare x y
... | tri≈ _ refl _ = refl
... | tri> _ neq gt = ?
... | tri< lt neq _ = ?
みたいにしたいわけだけど。いや、 x ≡ y なんだから、tri> とかは出てこないはずだろ?
Agda での否定は、
¬ A = A -> ⊥
みたいに定義されていて、対偶 ( ¬ B -> ¬ A ) は、
( B -> ⊥ ) -> ( A -> ⊥ )
ならしい。つまり、 B -> ⊥ と A の二つの入力がある。A -> B があれば、B -> ⊥ から、三段論法で、A -> ⊥ がでる。つまり、
contraposition : (A -> B) -> ( B -> ⊥ ) -> ( A -> ⊥ )
contraposition f g x = g ( f x )
というわけ。この逆方向( ( ¬ B -> ¬ A ) -> ( A -> B ) ) は直観主義論理では証明できないらしいです。
そういえば、否定からはなんでも出てくるのあったなと思い出した。
⊥-elim : ⊥ -> _
あ、そうか。
... | tri> _ neq gt = ?
の neq の型は、( x ≡ y -> ⊥ ) なので、neq ( refl ) は ⊥ になる。そこから、これで生成してやればよいのか。
... | tri> _ neq gt = ⊥-elim (neq refl)
う、うーん。なんか、かっこわるいんだけど。こんなものかな。if 文みたいにできないのかな。
http://seeker-s-eye.blogspot.jp/2017/03/agda.html
<,=,> の場合分けで、その計算型goto文を使うわけですが、
data Tri {a b c} (A : Set a) (B : Set b) (C : Set c) :
Set (a ⊔ b ⊔ c) where
tri< : ( a : A) (¬b : ¬ B) (¬c : ¬ C) → Tri A B C
tri≈ : (¬a : ¬ A) ( b : B) (¬c : ¬ C) → Tri A B C
tri> : (¬a : ¬ A) (¬b : ¬ B) ( c : C) → Tri A B C
なので、ばっちり否定が入っていて。こいつで、場合分けしたら、tri≈ なら、それ以外の場合は出てこないはずなんですが、場合分けは出てきてしまう。
checkEQ ( x y : ℕ ) -> ( eq : x ≡ y ) -> compare x y ≡ tri≈ _ _ _
checkEQ x y refl with compare x y
... | tri≈ _ refl _ = refl
... | tri> _ neq gt = ?
... | tri< lt neq _ = ?
みたいにしたいわけだけど。いや、 x ≡ y なんだから、tri> とかは出てこないはずだろ?
Agda での否定は、
¬ A = A -> ⊥
みたいに定義されていて、対偶 ( ¬ B -> ¬ A ) は、
( B -> ⊥ ) -> ( A -> ⊥ )
ならしい。つまり、 B -> ⊥ と A の二つの入力がある。A -> B があれば、B -> ⊥ から、三段論法で、A -> ⊥ がでる。つまり、
contraposition : (A -> B) -> ( B -> ⊥ ) -> ( A -> ⊥ )
contraposition f g x = g ( f x )
というわけ。この逆方向( ( ¬ B -> ¬ A ) -> ( A -> B ) ) は直観主義論理では証明できないらしいです。
そういえば、否定からはなんでも出てくるのあったなと思い出した。
⊥-elim : ⊥ -> _
あ、そうか。
... | tri> _ neq gt = ?
の neq の型は、( x ≡ y -> ⊥ ) なので、neq ( refl ) は ⊥ になる。そこから、これで生成してやればよいのか。
... | tri> _ neq gt = ⊥-elim (neq refl)
う、うーん。なんか、かっこわるいんだけど。こんなものかな。if 文みたいにできないのかな。
Friday, 13 April 2018
OS研究会〜
5/21-22 (月火) です。去年と同じ、恩納村のホテルモントレーですね。例年ホテルパックを用意してくださいと頼むんですが、
いろいろ行き違いでアナウンスが遅れる
とかって、あまり利用されてないみたい。今年は、既にリンクを渡したので使ってもらえるといいな〜
http://www.ipsj.or.jp/sig/os/index.php?2018%C7%AF5%B7%EE%B8%A6%B5%E6%B2%F1
昔はジャンボツアーの人が頑張ってくれてたんですけどね。今回はJTB。ジャンボツアー使ってと少しねばったがだめでした。
というわけで、論文でっち上げ中です。間に合うかな〜
土曜日は、新歓LT大会があるらしい。そっちの方は毎年だいたいさぼってるみたい。まぁ、そうだよな〜 新学期と研究会となんとかとか重なるからな〜
いろいろ行き違いでアナウンスが遅れる
とかって、あまり利用されてないみたい。今年は、既にリンクを渡したので使ってもらえるといいな〜
http://www.ipsj.or.jp/sig/os/index.php?2018%C7%AF5%B7%EE%B8%A6%B5%E6%B2%F1
昔はジャンボツアーの人が頑張ってくれてたんですけどね。今回はJTB。ジャンボツアー使ってと少しねばったがだめでした。
というわけで、論文でっち上げ中です。間に合うかな〜
土曜日は、新歓LT大会があるらしい。そっちの方は毎年だいたいさぼってるみたい。まぁ、そうだよな〜 新学期と研究会となんとかとか重なるからな〜
Thursday, 12 April 2018
Facebook をさかのぼる
iPhone側はフリックでしか戻れないんですが、Web 側には年度タブが付いてるのを発見。2008年からですが、最初は twitter 連携だったらしい。しかし、
2008年のtweetが多すぎてトレース不能
だぁぁぁ。Blog 連携は2010/12からだったようです。そこで twitter を流すのをやめたようですね。そこでも、ちょっと多いな。一番書いていた時期かも。
Blog 連携は最初はノートに blog を接続するだけ。それで自動的に Facebook にコピーしてくれていた。あれは便利だったのに〜
メール一通送ると、mixi と blog と Facebook に全部同時に投稿される
という素晴らしいシステムだったのに。 しかし、2011には連携は廃止。そこからは script 経由で Blog と連携させてます(めんどくさ)。
おそるべきことに、Setting から 今までの Facebook 投稿を全部 download することが可能らしい。mixi の時には外部ツール使ったのだが。まぁ、Blogger あるから、使わないとは
思うんですが。
なので、Facebook の検索で困っている人は download して、検索できるblogに入れてしまうのが良いかも。いや、普通の人はやらないか。いや、
Blog って読み返すと楽しい
です。さすがにネットニュースは読み返す気にはならないだが...
2008年のtweetが多すぎてトレース不能
だぁぁぁ。Blog 連携は2010/12からだったようです。そこで twitter を流すのをやめたようですね。そこでも、ちょっと多いな。一番書いていた時期かも。
Blog 連携は最初はノートに blog を接続するだけ。それで自動的に Facebook にコピーしてくれていた。あれは便利だったのに〜
メール一通送ると、mixi と blog と Facebook に全部同時に投稿される
という素晴らしいシステムだったのに。 しかし、2011には連携は廃止。そこからは script 経由で Blog と連携させてます(めんどくさ)。
おそるべきことに、Setting から 今までの Facebook 投稿を全部 download することが可能らしい。mixi の時には外部ツール使ったのだが。まぁ、Blogger あるから、使わないとは
思うんですが。
なので、Facebook の検索で困っている人は download して、検索できるblogに入れてしまうのが良いかも。いや、普通の人はやらないか。いや、
Blog って読み返すと楽しい
です。さすがにネットニュースは読み返す気にはならないだが...
Wednesday, 11 April 2018
自分の部屋
学生がなんか去年買った Displayを余らせていたので、自分の部屋に持ってきたので、偽HDからだいぶ解像度があがりました。といっても、
サーバな Mac Mini
なので、Display 使うとかほとんどないんですけどね。
だいたい、学生に「ディスプレイ買うから、好きなの見積り取って」というわけなんですが、
妙に小さい奴
安くて大きいが、ちょっとだめな奴
とかを選んでくることが多くてなぁ。今回のはどうなんだろう?
ついでに、蛍光灯を交換。ほとんど切れてて、薄暗くて困ってた。なんと8本? 例の長い奴だが、それようのLEDもあるらしい。でも、それを買う予算はないっぽい。長期的にはLEDなんだろうけど。
でも、僕がいるうちは、これで持つんじゃないか?
サーバな Mac Mini
なので、Display 使うとかほとんどないんですけどね。
だいたい、学生に「ディスプレイ買うから、好きなの見積り取って」というわけなんですが、
妙に小さい奴
安くて大きいが、ちょっとだめな奴
とかを選んでくることが多くてなぁ。今回のはどうなんだろう?
ついでに、蛍光灯を交換。ほとんど切れてて、薄暗くて困ってた。なんと8本? 例の長い奴だが、それようのLEDもあるらしい。でも、それを買う予算はないっぽい。長期的にはLEDなんだろうけど。
でも、僕がいるうちは、これで持つんじゃないか?
Tuesday, 10 April 2018
facebook 10年
らしいです。なんか、生成されたムービーみたいなのが来てたが、スマホだったので見損ねました。もう二度と見れないだろうな。残念なことです... イイネぐらいしておけば良かった。
blog を見てみると確かに2008/6/19になんか書いてる。
http://seeker-s-eye.blogspot.jp/2008/06/facebook.html
登録はもう少し前ってことですね。Notes で blog 連携できて、早めに連携したはずなので、2008年辺りから結構書き込みはあったんじゃないかな。
FriendFeed って書いてあるけど、まだ、あるのかな。twitter 連携とともにさっさと切ったと思います。僕が facebook で twitter したら社会の迷惑だろう。日記のネタにも困るし。
mixi は劇的な移行が起きるかもしれなくて、それでも、しつこくユーザは残るとか書いてあって、その通りになっているのが笑えます。
twitter も facebook も広告が残念になりつつあるからな〜 そろそろ分散型のSNSの出番なはずだが、マストドンどうなった...
blog を見てみると確かに2008/6/19になんか書いてる。
http://seeker-s-eye.blogspot.jp/2008/06/facebook.html
登録はもう少し前ってことですね。Notes で blog 連携できて、早めに連携したはずなので、2008年辺りから結構書き込みはあったんじゃないかな。
FriendFeed って書いてあるけど、まだ、あるのかな。twitter 連携とともにさっさと切ったと思います。僕が facebook で twitter したら社会の迷惑だろう。日記のネタにも困るし。
mixi は劇的な移行が起きるかもしれなくて、それでも、しつこくユーザは残るとか書いてあって、その通りになっているのが笑えます。
twitter も facebook も広告が残念になりつつあるからな〜 そろそろ分散型のSNSの出番なはずだが、マストドンどうなった...
Monday, 9 April 2018
ソースコード読み会
とかいうと、Martin Nilsson が「書き会しましょう」っていうんだよな。
修士の授業でやってるんですが、今年は x.v6 と qemu 読もうかという気になってます。学生たちの希望を聞くと、
Pandas, OpenCV
あぁ、そういうライブラリ系ね。また、自分が使うんだろうけど。読んで面白いどうかは。Pandas は Python 系らしい。
Mattermost という golang で書かれた Messeging system があるらしい。
Emacs/LaTeX という話も出たんですが、ちょっと古すぎか。TeX は文芸的プログラミング本があるので面白いんですが、
いかんせん、マクロプロセッサってのが絶望的に古い
Emacs は、
undump する時に使う malloc のAPIを glib が廃止する
って問題があって、undump できなくなる説が... あれはどうなったんだ? TeXも undump 使っていたんですが、割と早めに自力でメモリdumpする方向に書き換えられました。
Linux kernel と言うのも出たんですが、
最近のLinux kernelは最適化しないと動かない
最適化するとソースコードデバッグできない
という問題が。
どうも、最近の人たちは
ソースコードデバッグしない
みたいんだよね。おそらく、log と test が通る所までなおして、それで終わりみたいな感じか。どこを通るのかわかれば良いと言えばそうなんだけど。
log control とかも難しいんですけどね。Haskell とか log 書き出すと動作が変わるし。透過性ってのは観測によらずに結果が同じってことだったんじゃないのかよと思うが、まぁ、並行処理だとそうもいかず。
名前が出て準備ができるものは読む方針ですが、Microsoft Office? うーむ、Libbre Office でもいいけど、ちょっと気が重い。
修士の授業でやってるんですが、今年は x.v6 と qemu 読もうかという気になってます。学生たちの希望を聞くと、
Pandas, OpenCV
あぁ、そういうライブラリ系ね。また、自分が使うんだろうけど。読んで面白いどうかは。Pandas は Python 系らしい。
Mattermost という golang で書かれた Messeging system があるらしい。
Emacs/LaTeX という話も出たんですが、ちょっと古すぎか。TeX は文芸的プログラミング本があるので面白いんですが、
いかんせん、マクロプロセッサってのが絶望的に古い
Emacs は、
undump する時に使う malloc のAPIを glib が廃止する
って問題があって、undump できなくなる説が... あれはどうなったんだ? TeXも undump 使っていたんですが、割と早めに自力でメモリdumpする方向に書き換えられました。
Linux kernel と言うのも出たんですが、
最近のLinux kernelは最適化しないと動かない
最適化するとソースコードデバッグできない
という問題が。
どうも、最近の人たちは
ソースコードデバッグしない
みたいんだよね。おそらく、log と test が通る所までなおして、それで終わりみたいな感じか。どこを通るのかわかれば良いと言えばそうなんだけど。
log control とかも難しいんですけどね。Haskell とか log 書き出すと動作が変わるし。透過性ってのは観測によらずに結果が同じってことだったんじゃないのかよと思うが、まぁ、並行処理だとそうもいかず。
名前が出て準備ができるものは読む方針ですが、Microsoft Office? うーむ、Libbre Office でもいいけど、ちょっと気が重い。
Sunday, 8 April 2018
バーガーベア
Saturday, 7 April 2018
x.v6 読み会
新しい4年次も来たので、x.v6 を読み直し。GCC 版でも clang 版でも動くし、もう何回も読んだので楽勝だ。
なんだけど、新しい clang 版だけ ls の出力がおかしい。えーと、
x.v6 ってユーザプログラムのデバッグってどうやるの?
kernel は trace できるんですけど、ユーザプログラムが停められるのは fork / exec からだし。で、fork 読んだのですが、
page table を copy して、proc を複製するだけ
あぁ、まぁ、そうだよな。exec 読まないと。exec は、
プログラム load して、page table を作って切り替えるだけ
あれ? あ、そうか。kernel から user space に戻るところを読まないと。trapret ですね。ARM では SVC mode (supervisor mode) から抜けて return するだけらしい。
ということは、
(1) ユーザプログラムが最初に呼ぶ system call にbreak point をかける
(2) 走らせて、shell からユーザプログラムを起動すると、gdb でそのsystem callが捕まる
(3) trapret に break point をかけて、continue
(4) trapret で、p *proc して、ターゲットのユーザプログラムかどうかをチェックする
(5) そこから stepi していくと、ユーザプログラムに到達
(6) この時点でユーザプログラムに break point がかけられるようになる
これで,良いらしい。ただし、ソースコードデバッグはできませんが。アセンブラ読めるから大丈夫。
いろいろ調べた所、printf が動いてないらしい。読んでみると「引数のアドレスを取って、それをincrementして」とかやってる。
なんと、それでgcc と古いclangは動くのですが、新しいclangでは動かない。いや、clang で arm で動く方がおかしいだろ。そういうの尊重していたのか。 結局、stdarg ( va_arg とか使う奴) に書き換えたら治りました。なるほどね。
なんだけど、新しい clang 版だけ ls の出力がおかしい。えーと、
x.v6 ってユーザプログラムのデバッグってどうやるの?
kernel は trace できるんですけど、ユーザプログラムが停められるのは fork / exec からだし。で、fork 読んだのですが、
page table を copy して、proc を複製するだけ
あぁ、まぁ、そうだよな。exec 読まないと。exec は、
プログラム load して、page table を作って切り替えるだけ
あれ? あ、そうか。kernel から user space に戻るところを読まないと。trapret ですね。ARM では SVC mode (supervisor mode) から抜けて return するだけらしい。
ということは、
(1) ユーザプログラムが最初に呼ぶ system call にbreak point をかける
(2) 走らせて、shell からユーザプログラムを起動すると、gdb でそのsystem callが捕まる
(3) trapret に break point をかけて、continue
(4) trapret で、p *proc して、ターゲットのユーザプログラムかどうかをチェックする
(5) そこから stepi していくと、ユーザプログラムに到達
(6) この時点でユーザプログラムに break point がかけられるようになる
これで,良いらしい。ただし、ソースコードデバッグはできませんが。アセンブラ読めるから大丈夫。
いろいろ調べた所、printf が動いてないらしい。読んでみると「引数のアドレスを取って、それをincrementして」とかやってる。
なんと、それでgcc と古いclangは動くのですが、新しいclangでは動かない。いや、clang で arm で動く方がおかしいだろ。そういうの尊重していたのか。 結局、stdarg ( va_arg とか使う奴) に書き換えたら治りました。なるほどね。
Monday, 2 April 2018
Inbox
Google のメーラですね。Gmail では昔から使っていたんですが、
学科のでも使えます
っていつからだよ〜
iPhone アプリも軽快で良いんですが、
複数アカウントは手動で巡回
だめじゃん。まあでも現状ではベストかな。MHも使ってますけどね。
MHも inbox 使うので、絶対、MH使いが設計したものだと思ってます。
学科のでも使えます
っていつからだよ〜
iPhone アプリも軽快で良いんですが、
複数アカウントは手動で巡回
だめじゃん。まあでも現状ではベストかな。MHも使ってますけどね。
MHも inbox 使うので、絶対、MH使いが設計したものだと思ってます。
Sunday, 1 April 2018
GCC側
CbCを GCC 4.5 から GCC 8.0 に上げたんですが、なかなかCbCのテストが通らず。LLVMに乗り換えてから、GCCはもういいやと思っていたんですが、やっぱり欲しくなったので。
卒論が片付いてから始めたんですが、LLVM側はわりとすぐにすんだのだけど、GCCが、
最適化すると、tail call をさぼる
という症状が出ていて。今まで最適化の部分は避けてたのですが、まぁ、やるしかない。inline で展開する時に、tail call のflagが落とされしまうらしい。
cfgexpand.c かと見当付けたんですが、そこで無理にtail call flag を付けると internal compile error 。うーん。
GCC はさまざまなdump file を生成できるので、それをやったのですが、
どのpassで変化しているのかがわからない
なんだけど、そのpass名を表示するoptionもあった。
-fdump-passes
で、結局、ipa-inline.c だってのがわかったんですが、そこから治し方がわからない。
なのですが、カタンの日に、なんか学生が「できました」とか言ってる。おお、すごい。なんか、ssa 形式の下に vdef ってのがあって、そこに tail call flag が付いているとだめらしい。なので、そこにflagがあったら、展開しないという方法で良いらしいです。詳しい分析は、また、後でだな。
GCC/LLVMをいじる時には、なるべく学生と一緒にやってるわけだけど、学生が自力でいじれるようになれるのは素晴らしい。まぁ、そうなったころに卒業/修了してしまうわけですけどね。どっかの企業は、それに文句つけるらしいが、うちは、技術付けさせて、さっさと卒業させるのが仕事だからな。
家でLLVMの修正を勝手にやってきてしまう学生もいたんですが、ちょっと残念だったかな。もっと、いろいろできたと思う。
3月中に片付けるとか言ってたんですが、ちゃんと3月中にできたのは素晴らしい。
卒論が片付いてから始めたんですが、LLVM側はわりとすぐにすんだのだけど、GCCが、
最適化すると、tail call をさぼる
という症状が出ていて。今まで最適化の部分は避けてたのですが、まぁ、やるしかない。inline で展開する時に、tail call のflagが落とされしまうらしい。
cfgexpand.c かと見当付けたんですが、そこで無理にtail call flag を付けると internal compile error 。うーん。
GCC はさまざまなdump file を生成できるので、それをやったのですが、
どのpassで変化しているのかがわからない
なんだけど、そのpass名を表示するoptionもあった。
-fdump-passes
で、結局、ipa-inline.c だってのがわかったんですが、そこから治し方がわからない。
なのですが、カタンの日に、なんか学生が「できました」とか言ってる。おお、すごい。なんか、ssa 形式の下に vdef ってのがあって、そこに tail call flag が付いているとだめらしい。なので、そこにflagがあったら、展開しないという方法で良いらしいです。詳しい分析は、また、後でだな。
GCC/LLVMをいじる時には、なるべく学生と一緒にやってるわけだけど、学生が自力でいじれるようになれるのは素晴らしい。まぁ、そうなったころに卒業/修了してしまうわけですけどね。どっかの企業は、それに文句つけるらしいが、うちは、技術付けさせて、さっさと卒業させるのが仕事だからな。
家でLLVMの修正を勝手にやってきてしまう学生もいたんですが、ちょっと残念だったかな。もっと、いろいろできたと思う。
3月中に片付けるとか言ってたんですが、ちゃんと3月中にできたのは素晴らしい。
Subscribe to:
Posts (Atom)