Monday 31 December 2018

大晦日

Micro C も動いたので、これから加藤食堂に飲みにでます〜

まぁ、 stage 1 (Mac上で作ったmc09のアセンブラ)と stage 2 (OS-9上でコンパイルしたアセンブラ)に少し差があるが... 気のせいということにしておこう。

Sunday 30 December 2018

野人の会

なんで、そんな名前のなのかは知らないんですが... 鴨澤さんちに集まってピザを作って食べながらプレゼンするというイベントです。

  沖縄の生物文化

森などの生態系の大切さを人とのつながりで理解していこうと言うお話。割と簡単に破壊されてしまって元には戻らない。一方で森とともに生活していた人も年をとりつつある。

  ピザの作り方

柴田出版の本を読めと言うだけ覚えました。作らないと食べられないからな。

  10分で弾けるように三線

いや、僕は覚えゲーは苦手なので... 苦手と思っているだけだとは思うんだけど。

  指の位置

をマークしてある三線が良かったです。

  クイズの作り方

回答を限定しないといけないのが面白いらしいです。実際のクイズが盛り上がる感じ。

その他、いろいろ...

Saturday 29 December 2018

年末

奥様は風邪で死んでるようです。気温が結構変わったからな。といっても16度なんですけど。いや、16度寒いし。

昼間、Ingress して、大学に行って、勝手なプログラミングしてといういつもと変わらない感じ。

  OSの採点しないといけないんだけど

今日は学生とラズパイ用のx.v6を少しいじりましたが、

  ラズパイの種類によって結構違う
  qemu arm にもいろんな種類が
  みんな勝手に変更してる

というわけなので楽しそうです。まぁ、でも実機で動かないとつまらないからな。

1/9-14 は東京と伊東にいるはずです。

Friday 28 December 2018

研究室のテレビが

縦線が一本。最初は短かったんですが、結局、上からしたまで。5年たってないので、ちょっと早いかなあ。

山田研では65inch安く買ったなんて話が出てるので買い換えもありかな。

もっとも、プログラミングにつかう分には差し支えありません。


https://seeker-s-eye.blogspot.com/2014/06/65inch-programming.html

Thursday 27 December 2018

今年は...

実家になるべく顔出すみたいなことをしましたが、お金がかかっただけでした。

Automaton やったりとか gcc 復活させたりと、いろいろやったけど...

  Microware OS-9 が楽しかった

かな。また、少しいじってます。

  入力のecho backの問題をなおしました

細かい... 竹岡さんのところにmohta さんの micro C のソースがあるので、それを OS-9 用になおそうかと。それほど難しくないはずですが...

言語処理系は実はライブラリが面倒なんだよな。そういえば、

  TL/1 という pascal like な compiler

が ASCII に載っていたっけ。これはたぶん実家に行けばソースコードあるんじゃないかな。

https://flexonsbd.blogspot.com/2018/05/microc.html

Tuesday 25 December 2018

前田のゆいレール駅

駅自体はかなりできているですが、周辺の道路とか橋とかがまだまだ。どうも人手不足で開業が延びるらしいです。

大学から古島、あるいは首里の駅まではかなり遠いし、途中の坂田交差点、大平インターはかなり混むし。駅ができれば

  かなり便利なはずです

ただし、琉大病院の移転もあるので、そこの跡地に何かできない限りは、それ以上の延伸はなさそう。琉大まで来ればいいのにね。

例の通り、V字反転なコースなのであんまり早くはなさそうですけどね。

駅に合わせて25/125/97/56のバスがどうなるかは未知数。そういえば浦添の海上道路にはバスは通るのかな。

バスはさっさと自動運転になって欲しい感じ。

Monday 24 December 2018

プチエトワール

去年もそうだったんですが、今年もプチエトワールにしました。こういうお店が近所にあるのは素晴らしい。といっても、22日だったんですけどね。
まぁ、別にクリスマスに思い入れがあるわけではないから。

良いお店は通わないと。

普段もふらっとお昼に行ったりします。嘉数高台の奥だけど、Ingress のポータルもあるし。歩いていくのは僕だけだろうな。

ルビーチョコのデザートですね。

Sunday 23 December 2018

CbC clang bug

最適化(-O)すると tail call しないというバグが発覚していたんですが... (普通、逆だろ〜)

LLVM IR を -emit-llvm で出力させてみると、tail call が付いてない。ってことは、clang 側かぁ。

CodeGenFunction::EmitCall を読むわけですが、

   Call->TailCall()

で flag が立ってない。なんですが、

  -O でない時にも立ってない

あれ? もしかして、誰も TailCall を立ててない? じゃぁ、なんで、今まで出ていたわけ?

Call->setTailCallKind(llvm::CallInst::TCK_Tail);

で立てるようにしたら治ったんですが、どういうこと!?

おそらく、

   CC = llvm::CallingConv::Fast;

で、Tail Call が出るようになっていたが、最適化がかかってる時には Tail Call しないように治したんじゃないかなぁ。
いや、局所変数のアドレス取ったりしなければ Tail Call してたし。いろいろ謎です。

でも、治ってうれしい。GCC 側には問題はないらしい。

Saturday 22 December 2018

クリスマスツリー

この手のものには特に思い入れはないですが。なんか電池で点灯するものらしいです。

昨日は Context Free Grammer を Agda で書くのにはまってました。いろいろやってみたが、

  Non terminal にGrammer を Node の二重のリストで登録すると良いらしい

という割と「え〜、そんなの?」という感じが良いらしい。Agda は List を使うと負けっぽい感じがするんですが、

  Grammer は有限の順序のある規則の集合
  規則はノードの列

ということなので、素直に順序のあるListで構成するのが良いわけですね。

Friday 21 December 2018

授業は終わったのでのんびり中

つまんない講習会の後に上原高台の方でお昼ご飯にしようと思ったんですが、

  そばの美波のあとが、支那そば屋

になってました。あっさり系のかんすいな麺。他に雲呑麺と担々麺があるらしい。

ちらっと、さっさとつぶれたあっさり塩ラーメンお店を思い出しましたが、まぁ、頑張って欲しいところ。

美波のそばも悪くはなかったんだが、なかなか難しいんでしょうね。

Thursday 20 December 2018

琉大spam来てなくてさびしい

たぶん、u-ryukyu なaddressに対して学籍番号で爆撃したんだと思う。自分のは学籍番号なschemeからは外れてるので来ない。
いや、*.eve にしかけたみたいなので、そっちを見れば見つかるかも。わざわざ見にはいかないが...
B4/院生も研究室なアカウントには来てないんじゃないかな。ie な人は ie なメアドなので来てないかも。

まぁ、学籍番号なメアドやめろって意見があるのは知ってるけど、どうせspamはやってくるわけだし。うちはGMailなので、
GMailのspam filterがいろいろ弾いているんじゃないかと想像します。

https://twitter.com/brd_onze/status/1075628105992089600

Wednesday 19 December 2018

年内の授業は終わり〜

そういえば、TreeVNC の改良したいのだが...

  VNCサーバ側を切ると TreeVNC root が暴走する

ってバグが取れてないんだよな。エラーダイアログがでないように治した時にしくじったはず。

できれば学生と一緒に治したいんだが、なかなかなぁ。

Tuesday 18 December 2018

GMail の spam 検索とOSのレポート

OSの採点の季節なんですけどね。学生のレポートがGMail のspamに落ちってるってのが良くある。

まぁ、そもそも、この時期になって「メール届いてません」みたいなのをやるってのがダメなんだけど。

左側のfolderにspam folderがあったんだけど、それがなくなってる。その代わり、

  検索オプションに「spam & inbox から探す」という選択ができた

みたいです。ふーん。

まぁ、確かにOSの課題は多いんだけど、別にたいした難しさじゃない。やればよいだけだけど。でも、

  なんか、やりたくない気分

になるものなんだよな。僕は面白いと思った課題を出しているけど、それの面白さをわからない人もいる。でも、

  取りあえず手を動かしてみる

どう動かせばいいかわからないなら、

  誰かと一緒にやる

ってのが良いと思うけどね。まぁ、この分野、向いてない人は向いてないし。せっかくの大学生活なんだから、

  楽しんで欲しい

と思うんだけどね。今日は Docker の課題をやってました。これで年内のOSの授業は終わり。採点頑張ろう。

Monday 17 December 2018

ガチャなスーファミ

あのクラッシクなスーファミは

  カセットが差せない

という致命的な欠点があったんですが、こっちはカセット付き。サテラビューも付いてるらしい。

Sunday 16 December 2018

バスとIngress

まぁ、犬の散歩なので、大学の行き帰りに寄り道的な感じです。バークレーズで昼飯くって、Bear of Titans によろうと思ったら、

  目の前でバスがブ〜

あぁ、まぁ、歩いていけよと思わなくもなかったんですが、仕方ないので25番で中部商業まで。そこから琉大へのバスは30分後なので、まぁ、歩くか。

で、帰りは我如古ボウルのポータル取るかで大学から歩いたんですが、我如古で

  目の前でバスがブ〜

くそ〜 まぁ、15分くらい次が来そうだったんですが、15分あれば家まで着くか。

そんなこんなで、結構、歩いております。CFはあんまり取れなかったが、キーをこまめに集めるゲームなので。

Saturday 15 December 2018

Hoare Logic

逐次なプログラムの検証です。割と簡単で、

  {Pre} Command {Post}

という感じで、Command を実行すると、Pre condition が Post condtion になるっていうだけですね。

Loop の時には、

  {Invariant} Loop {Invariant}

で入り口と出口が等しければ大丈夫。まぁ、Invariant 見つけるのめんどくさいとかいう話はあるけど、

  ちゃんと動いているなら、なんかあるだろ

という感じらしいです。

Agda で書いた人も多いらしく、いろいろ見つかるらしいんですが、いかんせん Hoare Logic が古色蒼然なので、

  プログラムの記述法が古くさい、いわゆる While Program

まぁ、While Program でなんでも書けるんだけどさ。

でも、本で読んだり、頭で理解したりしていることと、

  実際に証明を書き下す

ことには結構ギャップがある。やっぱり、やってみないとね。

Axiom : Cond -> PrimComm -> Cond -> Set
Axiom pre comm post = ∀ (env : Env) → (pre env) ⇒ ( post (comm env)) ≡ true

こんな感じらしいです。これの鎖みたいなのをプログラムに対して書いて、で、この値の式をせこせこ証明していくわけね。

なんか細かい自然数論の証明がたくさん出てくるけど、そこくらい自動的にやってくれないかな...

http://www.cr.ie.u-ryukyu.ac.jp/hg/Members/ryokka/HoareLogic/file/tip/whileTestPrim.agda

Thursday 13 December 2018

ハンサムなような気がする

今年は、カリフが亡くなった年だったな。思い出すのは良いことばかり。思い出には臭いも痛みもないから。

犬猫は人に飼われて生きるわけなので、それを引き受けるのも楽しいことだと思います。

Wednesday 12 December 2018

Programming 4

授業的には、まだ、一ヶ月あるわけですが、大詰め。1月に Game Jam 頑張って終わりなんですが、今年も割と面白かったです。

  ネットラジオのアプリをずーっと書いてる人
  Unityのゲームをひたすら書いている人
  AIベースなソフトウェア開発支援の大風呂敷を広げてる人

みたいな感じでした。Unity ゲーム組は近年良くある「この程度やればいいですよね」的に最小限しかやらない感じで、

  もうちょっと、チャレンジングにやってもらえないかな

という感じ。日本の Game Jam は、そういうこじんまりしたのが多い。入門編みたいになってる。ゲーム自体でも開発手法でもいいから

  何か新しいもの入れて

という感じですね。

大風呂敷はいろいろ図とかマインドマップとか書いてきてくれて面白い。そこまで広げるなら、

  論文にして、まとめて見たら?

やっぱり文章にするとはっきりするものだから。正直に何がどうつながるのか良くわからないところもあったんだけど、

  広げるところまで広げていいよ

とも思います。例題もかねて、アプリ作ってといったら、それなりに動くものを持ってきていたので、まぁ、よいかな。

Tuesday 11 December 2018

宜野湾武虎消滅

我如古ヒジャーガー(沖縄に良くある砂岩層の井戸)のポータルのと我如古ボウルの間にあって便利だったんですけどね。

武虎は、まぁ、普通に美味しいラーメンだったけど。なぜ、激まずな永大安と赤道ラーメンが残るのか理解できないです。

一つは夜遅くまでやってるからかなぁ。

仕方なく吉牛まで歩いたんですが、吉牛の味は、もう僕とは合わないな。昔の色の薄いペラペラの牛丼と豚丼が懐かしいです。

-

Monday 10 December 2018

TE-97

パナソニックの蛍光管タイマーですね。さらに10年使ってしまいました。これは、

  池袋の東武デパートの現品販売

で買ったはずです。当時はデパートの家電売り場が楽しかった。サザンの歌のブランニューデーの元ネタは東武デパートのキャンペーンです。

割と先進的な人がいたらしく、

  PET-2001 が触れるように置いてあった
  Korg のPolyphonic や Moog Synthesizer も

電源同期式なので精度は十分。タイマーとしてもう8使ってませんが、ソニーのスカパーチューナーの調子が悪い時に、

  一日一回チューナーの電源を1分切る

のに使ってました。これを使って、

  FMで放送されたクイーンのアルバムをエアチェック

とかやっていたはずです。

ニキシー管もいいけど、蛍光管もいいよね?

https://seeker-s-eye.blogspot.com/2008/01/panasonic-audio-timer-te-97_20.html

Sunday 9 December 2018

MoarVMの非決定的実行

Java Kuche でも内職していたわけですが、

  Perl6 の byte code を実行する MoarVM の動作が決定的でない

自分たちが修正したなら、まぁ、そこだろと思うんですが、元のもあれらしい。

  生成するbyte codeがそもそも同じにならない

read eval loop のdebugとかやってるので、そもそも通るコードが多い。いや、つまり

  それだけ動くくらいほとんど動いてはいる

わけなんですけどね。

Address ramdomization (ASLR) を停めてもだめなので、malloc 側かも...

Hash (連想配列)絡みででる気もするので、良くわからないです。

script の実行自体は決定的なのでわざと入れてるのかも。でも、CbC側は

  read eval loop で呼ぶべきコードが呼ばれてない

ので問題ありです。いろいろ大変〜 なんなのこれ〜

Saturday 8 December 2018

Java Kuche 勉強会

Java Kuche 、別に Java にこだわらないんですが、今回は

  正統的にJavaのご紹介

他にもBlock chainとかもあったんですけどね。

割と、

  Java ちゃんと Open だから!

という感じでした。extractJ とかで、Cの*.hをJavaのclassにできるそうです。

GraalVM で Java は違うものになるとか懇親会では話されてました。

桜庭さんとは久しぶりな感じ。

学生にも来て欲しいんだけどな〜 なかなか。

Friday 7 December 2018

ほとんどウニ

な、カップヌードルらしいです。この系列、

  割とねっとり系のアミノ酸でごまかす

みたいな感じみたい。

怪しいオレンジ色のものが入ってます。味ですか? まぁ、カップヌードルよりは濃い目くらい。ウニ6%とか書いてあるけど。

Thursday 6 December 2018

MBP trouble

まだOSは High Sierra だったりするんですが(GCCがコンパイルできない問題と戦いたくない...)

  溜まってたSoftware Updateをかけたら Update の途中で freeze

30分ぐらい待ってだめなので、

  電源長押しからリブート → Update 失敗

なんか private に書けないとかのlogが。

まぁ、いつもの手順で、

  Safe boot → freeze
  リカバリモードのからのdisk check → 完了 → リブート → Update 失敗

複数のUpdateを溜めたのがいけなかったか。

この前の不調の時に

  リカバリからのOS再インストールでも設定は飛ばない

というのを知っていたので、ここで再インストールを決断。

  特に問題なく再インストールされて
  Update二回

で、元に戻りました。リカバリはCommand R押しながらBootですね。

Wednesday 5 December 2018

Echofon trouble

iPhone のtwitter app ですが、昨晩、アクセスできなくなって、そこそこ阿鼻叫喚でした。

1:07AM 認証ループに入ってしまうようになる

echofon で検索すると他の人もそう

    twitter側の認証トークンの削除とかでは治らず

1:55AM echofon の公式アカウントに

We're very sorry for the current issues with Echofon. We are
investigating and working to restore functionality of the app
as quickly as possible. We deeply apologize for this inconvenience
and thank you for your patience

で、諦めてさっさと寝るのではなくて、しらばく、公式appの方を使うことに。(被favとかを見るのはそっちしかない)

寝て起きてみたら治ってました。

7:28AM

We have resolved the API access issues with Echofon and the
app should now be working again. We apologize again for the
inconvenience and appreciate your support and patience. Thank
you!!

広告を切るには有料にしないといけないアプリなんですが、iPhoneのもっとも初期の頃からのアプリの一つで
そこそこユーザはいるらしい。(日本だと35位くらい) Twitterific とかいう名前でした。

最初の頃からのシンプルな表示が良いので気に入ってます。ということは10年使っているってことだな。
復旧して良かったです。

Twitterの設定をいじっていたら「位置を高精度で取得する」みたいなオプションが。お前か...

https://seeker-s-eye.blogspot.com/2011/12/twitter-client-on-iphone.html

Tuesday 4 December 2018

MSG on Playstation Classic

いや、なんか買って研究室にもってきてくれる学生がいるので...

  Metal Gear Solid から

1998なので9.11以前の話なんだよな。もちろん、SDなわけで、

  ポリゴンボケボケ

でも、それとは関係なくMGSだから面白いんだよな。

M2のこの忙しい時期に7時間でクリアしていたようです。僕も最初と最後が見れたので満足。

MSG2もあって(Xbox One でのHD remake)、そっちもちょっとだけみました。こっちは覚えてないが見覚えはある程度。

綺麗だけど、ゲーム的にはほとんど同じ。

そういえば、PS3のMGS4は、まだクリアしてないのだった。もっとも、最近はゲームに集中する根性がないな。

Monday 3 December 2018

金曜日から酒抜きで

結構、11月が連チャンモードだったので。週末飲まないのは珍しいかな? 飲まなくても平気な人ではあります。

特に沖縄に来てからは「ビールじゃなくて泡盛」な人だったんですが、Mou で夕ご飯の時にはビールになるので、ここ数年はビール党。

でもビールは身体にはきつい感じですね。立食とかだとめんどくて最初から最後までビールみたいなこともします。要するに、

  酒のみなので、酒の種類は問わない

感じです。まぁ、でも、

  いつもの所でいつもの菊の露ブラウン

が一番良いかな。

Sunday 2 December 2018

スゴ音上映

ボヘミアンラプソディー、北谷のスゴ音上映も観てきました。

  スクリーンの前にでかいスピーカーが鎮座ましまし

まぁ、どんどんブンブンですね。それだけです。ですが、

  楽しいです〜

そんなにうるさく感じなかったし。

Saturday 1 December 2018

Builder 黒

このメダルの次の実績系メダルはミッション頑張らない限りは当分ないみたいです。メダルはそれほど思い入れがあるわけでもないけど。

授業もそういうのを入れるゲーミングというのがあるのは知ってるけどあんまりやってません。

Google+ と Hangout がなくなるらしく、Ingress 専用に使っていたサービスが二つともなくなるのはなんか寂しいかな。

Thursday 29 November 2018

そろそろ11月も終わり

今月は無謀に予定を詰め込みすぎていて、疲れ果てていたような気が.. いや、

  飲み疲れていたような

気もします。まぁ、でも一段落。といっても、これからが卒論修論の本番ですけど。そういえば、

  12月のB3の研究室配属後にカレーパーティー

がいつものようにあるはずです。学生は「また、二回やるんですか」とか言ってますが、年二回くらいはやりたいとは思ってます。

12/8 がJava Küche Day ですね。

https://java-kuche.doorkeeper.jp/events/82737

1月のプロシンには顔出す予定です。

3月は、また、東京で Ingress Anomaly か。行きたいような気がする〜

Wednesday 28 November 2018

量子計算機

なんか、一年生が「量子計算機について聞きたい」とかで研究室に。いや、まぁ、数学物理興味あるし、一応、理学部卒ではあるんだけど。

 「ふーん、量子計算機やりたいの?」

まぁ、まだ、一年生だからな〜 いろいろ調べてみれば。今年の一年生は、妙にアクティブで、いろんなイベントに参加したりしているので面白いです。

この前、産総研のアナログイジングマシンとか見せてもらったしな。自分の知ってる範囲で説明しはしましたが、手元に教科書があるわけでもないので、若干、away 感。

量子計算機は実現できたことは素晴らしいけど、今の計算機に勝つのはまだまだ難しいかも。でも、

 なんか、ブレークスルーあるかも知れないし

みたいな空想科学的な話もしました。取りあえず、

  微積と線形代数必須だから、そっち勉強してね
  量子力学はちゃんと計算問題解いてね

ですね。いや、C環とか特殊関数とかリー群とか回転群とかその先もいろいろあったりするが... 確か理学部でやってる先生がいたような〜

Tuesday 27 November 2018

OSの課題

WordPress のサーバ内での 具体的なAPIを図示しろっていう課題を出しているんですが、

  Web serverとかApplication serverとかDiskとかの構成図

を書いて「ここを結ぶ矢印に具体的なAPIが対応するので、それを示すDocumetのURLを示す」だけなんですけどね。

僕が板書した図を写してくるだけ。おいおい。

  具体的なAPI

ってのがわからないってのは面白い。ls を opendir で実装とかその後でもやってるのだけど、それと関係あるとかは思わないものなんだろうな。

Linux の Kernel source は今回もいろいろ変わっていて、

  Kernel やってる人はファイルを移動するのが好き

なみたいです。Intel64とi386でシステムコールの表の番号が違うとか頭おかしいんじゃないのかな。結局、write は 4番らしいんですけど。

でも、去年作った Kernel debug 用のansible script はちゃんと動いているようです。うれしい。

Monday 26 November 2018

Red Zone

Perl6のMoarVMと格闘しているわけですが、微妙に動かなくて。

_cbc_next:
LFB0:
pushq %rbp
LCFI0:
movq %rsp, %rbp
LCFI1:
movq %rdi, -24(%rbp)
movq -24(%rbp), %rax
movq 8(%rax), %rax

stack の上をアクセスしてるのでこれかと思ったんですが、調べていくと...

frame->stack_pointer_offset -= frame->red_zone_size;

がだめだったらしいんですが、red zone ってなんだよ。

The 128-byte area beyond the location pointed to by %rsp is
considered to be reserved and shall not be modified by signal
or interrupt handlers. Therefore, functions may use this area
for temporary data that is not needed across function calls.

え〜 というわけで、どうも、stack の上の領域は 128 byte までアクセスして良いらしい。

-mno-red-zone

を gcc に付ければ禁止されるらしい。 つまり、バグはここではないらしいです。

どうも、ほとんど動いていて、学生は GC 関連なんじゃないかとか言ってるんですが、まぁ、そういう可能性も。



-

Sunday 25 November 2018

GHC 読み会

土曜日の休みをはさんで、また朝から。

  type.hs と typecheck.hs

ここで型推論、つまり、Unificationしてるわけですが...

  occur check 大変だから、近似で

とか書いてある。つまり、ループチェックとかはしないみたい。結構、たくさんコメントがあって、

  sound とか complete

とかいろいろ言い訳が。Functor a => とか型 class とかもあって、type family とか大変らしいです。

午後は、コード生成読むか〜 で、

  compiler/nativeGen/X86/CodeGen.hs

なんですが、ここにはどうも、

  Cmm Procedure / Data からのコード生成

しか書いてないらしい。Cmm ってなんだ?

compiler/cmm

を見ると、

CmmLex.x CmmParse.y

え? まさか、C minus minus ? なるほどね。どうも、C minus minus (Cの下位言語で正確な型を持つもの)を中間形式として使っていうらしいです。

生成されるコードは、

  case 文に来る変数が値があるかどうかをチェックして、なければclosueを返す
  あれば下位3bitで分類して分岐
  必要なデータ構造をallocateして
  次の関数に飛ぶか
  GC関連の部分に戻る

みたいな感じで生成されるみたい。Stg から Cmm の生成部分を読むとだいたいつながるみたい。

今回もコンパイラを誰もbuildできなくて、実際のコンパイラのトレースできなかったのはちょっと残念だったかな。

まぁ、また、トライすればいいか。

Saturday 24 November 2018

琉大情報工学科一期生20周年

昨日ですけどね。10周年も2008/11/24にやっているらしいです。が、blog には書かなかったらしい。書かないとダメじゃん。

理論的には、以降の学年が10/20周年を毎年やるみたいになるはずですが、そんなことにはならず。つまり、こんなことをしているのは、

  一期生だけ

らしいです。僕は彼らが3年次の時から琉大に来たはずなので「僕のOSの授業は受けてない」世代ですね。一期生は試行錯誤いろいろくらってるからなぁ。

2008年にはIXY 10を使っていたらしい。今回はデジカメは持参せず。

いつものように「大学で何を教えたらいい?」と聞きましたが「質問できるような人にして欲しい」おお、なるほどね。良い視点だな。

忙しい年齢だし、ほとんどは本土で活躍していたり。沖縄にいる人は運良くそういう仕事の人だけだな。このためにわざわざ沖縄に来るかと言うとどうかな。

来てくれた人たちどうもありがとう…

Friday 23 November 2018

GHC 読み会

結局、コンパイラのソースをガンガン読んでく感じに。

ghc/compiler/parser/Parser.x
ghc/compiler/parser/Lexer.k

かな? Happy と Alex のパーサ生成器と字句解析器ですね。

だいたい、

 data を定義して、それが実装する型classのmethodを書いていく
 それを使って関数を書いていく

感じ。さすがに Monad も慣れて

hoge a : x -> y -> Huga a

とか書いてあったら Huga って Monad だから

hoge a x y = do {
z <- ...
y <- ...
; ...
return H z
}

みたいに do 文で書かれるってわけですね。

main の下に HscMain ってのがあり、そこで compiler の要素を順々に呼ぶようです。

deSugar して Core に変換して、それから最適化して、LLVMなりにコンパイルすると。

続きは、日曜日です。

Thursday 22 November 2018

コタ

うちの猫ですが小太郎らしいんですが由来は知らないです。そこそこ良いお年なんだが12kgもあったらしいけど、最近は7kg。

まぁ、カリの晩年そこそこ大変だったから、コタのストレスもそこそこあったんだろうな。

なんか糖尿気味らしく、糖尿対策ようのカリカリにしたら結構気に入ったらしく。前のダイエット用のは猫跨ぎしてたからな。

相変わらず踏まれるのは好きなようです。

Wednesday 21 November 2018

Haskellコンパイラ読み会

いつもの授業のコンパイラ読み会です。 今回は11/23-25で。と思ったんですが、土曜日をLTに当てられしまったので土曜日はお休みです。お題は

  Haskell (とAgda)

です。前回敗れ去った時(2014/12)に読んだスライドは復習しました。

http://www.scs.stanford.edu/11au-cs240h/notes/ghc-slides.html

それによると、

  Syntax suger などを除いて Haskell Core に変換される
  let で変数を通して項が共有される
  allocate は let、reduction は case で実行される
  primitive type は eager に実行される

ということですね。

Haskell は debugger よりは tracer を使うらしいので、今回はそういう方針です。

金曜日(休日)と日曜日の10時から18時(お昼休みあり)に、工学部1号館321教室でやってます。

前回も、それなりに頑張ってはいたみたいだな。

  http://www.cr.ie.u-ryukyu.ac.jp/~game/pukiwiki/index.php?ghc

Tuesday 20 November 2018

若おかみ

東京から戻る飛行機が午後だったのですが、

  東武練馬で9:40から

ってのがあったので観てきました。

世の中には馬鹿ばっかり出てくる話と馬鹿があまり出てこない話とあるわけですが、後者のタイプ。

現実の世の中はどうかなぁ。

ピンフリ頑張りすぎ。小学生っぽく、もっと力抜いていこうぜ。

泣かせ方があざといかな。未来のミライの方が身近な感じ。

https://www.waka-okami.jp/movie/

Monday 19 November 2018

オトメ

根津、言問通りの中華です。院生時代からお世話になってます。2006年にも一回寄ってるらしい。

今回はJPHACKSを抜け出してお昼に寄ってきました。メニューは、いつもの

  五目焼きそば

ほぼ同じ構成だな。

大学院時代よりも味が落ちてがっかり的な時期もあったんですが、

  まぁ、こんなもんじゃないか?

割と流行ってるみたい。

ちなみに、東大よりにあるもう一件のラーメン屋さんも生き残ってるみたい。そっちは何故か

  タンメン+小チャーハン

を愛用してました。そんなことするから博士でデブったのだが。それとVIPチョコを牛乳にとかした奴ね。

あの頃は楽しかったな。

Sunday 18 November 2018

JPHACKS 2018

この前あった沖縄のJPHACKSの全国大会ですね。東大浅野地区の武田ビルなので、昔懐かしい感じ。

うちの学生たちがポスター持ってきてないとかいうので「しょうがないなぁ」という感じで、そのビルの藤田先生に頼んでプロジェクタを借りてきました。藤田先生、ありがとうございました。

2日間のHackの続きみたいな感じなわけですが、そこそこ形にしてきてくれてました。いや、別に

  大人にへつらう必要ないし

と思うけど。好きなもの作ってくれれれば。実際にサービスや商品に持ってくにはさらに長い道が。

プレゼンも最近の学生はセンス良く仕上げてくれてます。会場のネット環境はまあダメだよ。何組かはやられてましたが、動画のデモが安牌かな。

プレゼンよりも後で聞いた話の方が興味深い。あのドーム型はベビーカーの部品だとか。shell の予測入力的なツールは Electron で書かれていて、VS Code もElectron で書かれているとか。いろいろ楽しかったです。

竹内先生にも会えましたが、まぁ、伊東でも会いますし。

1位にならないと意味がないとかは文系の世界の話で、この手のものは審査員による評価とか順位付けとかは関係ないな。それは

* 市場が決める

ってのがIT系っぽいと思います。

https://2018.jphacks.com/information/jphacks-award-finalists/

Saturday 17 November 2018

言語処理系勉強会

発表してきました。CbCの話とAgda で Automatonを記述するいつもの話。なんか発表する人が足りない的な話だったので、
ちょうど東京にいるから。

なんか、CbC が検索に引っかからない的な話が。いや、githubかbitbucketかどっちかに上げた気がするんだが...

COBOLの話とかもあったんですが、

  発表の後の雑談の方が面白い説〜

割とプロシンと重なってない感じが面白かったかも。プロシンの宣伝もするべきだったか。

https://connpass.com/event/104863/

Friday 16 November 2018

Cluster Storage

どうしようかなあってところなわけですが... でOISTのVDIのところで見せてもらった

* Pure Storage (渋谷セルリアンタワー)
* Datrium (都立大学駅ノックス)

を見せてもらいました。

Pure StorageはFPGA acceratedなSAN nodeで、今までのSANの先に置けるので簡単な感じ。現状維持的で良い。
ライセンスが upgrade 込みみたいなのがあるのが売りみたいです。値段も妥当。

Datrium の方はHCI寄りで「SANではなくLAN上にソフトウェアでストレージを構築する」というので、

* わかりづらい

です。ハード的には

* サーバ上のSSDと、バックアップ的に使うNAS

なので、 安そうだと思ったんだけど定価は結構高い.. むぅ。

Datrium はCent OS/KVMでも動くらしい。独自のNFS server/clientを*ローカル*に建てて、そこに接続する方式。
ls で見えるので安心。でも、

* 分散ファイルシステムとして安定してるの?
* KVMのmigrationでの待ち合わせはどうするの?

の辺りがなぁ。データノードへの書き込みを待たないのが特徴らしく、サーバノード間での通信もあるらしく...

* 割と闇

ま、ちゃんと動いているなら文句ないんですけどね。あと、やっぱりCPUは結構食うらしい。最近はサーバ強力だから気にしない的な。

いっそ、

* ZFS cluster (RSF-1?)

で組んじゃうのが良いのかなぁ。

Thursday 15 November 2018

東大見学

情報基盤センタを見せてもらいました。琉大とは大学の規模が違うわけですが、

  まぁ、基本は同じ

ということで。iMac が並んでいるのがかっこいい。ネットは駒場から一旦本郷にいって、そこからIDSなどを経由してSINETにでるそうです。

IDSは snort と同じことしかしてくれないのに高いってのが持論なんだけど。

うちは学生にMBP買わせちゃってるので、もうデスクトップは入れないですけどね。

発電機はうらやましいと思いました。

まぁでも、こっちも中山雅也先生とか田中哲朗先生とかだったので、同窓会みたいな感じでもありました。

安藤さんありがとうございました。WAF入れた方がいいとかは考えておきます。

(しかし、ここ数日のイベントが全部朝からなので、疲れが溜まってるな...)

Tuesday 13 November 2018

ボヘンミアンラプソディー

観てきました。世代的にはどストライクなので、まぁ、観に行くでしょう。

批評家たちは酷評だったらしいけど、世代がピンポイントだからそんなもの。自分たちの世代の記録映画みたいなものだから。

フレディーはあんまり似てない。でも、ブライアンがくりそつ。

  Queen のコンサートは3rdが出た直後の武道館一回だけ

です。あー、良かったです。当時いろいろ聞いたクイーンの話とは少しずつ食い違うけど、それもいいかな。

北谷は爆音上映らしい。

91年のイギリスから戻る時がフレディの追悼コンサートの日で、飛行機の中でラジオで少し聞けました。

Innuendo がすごく良いアルバムだったのだが、歌詞の内容がなとか思っていて、あれだったのでショックだったな。

あの年はアシモフもなくなった。ミンスキーがネットニュースに追悼文を投げる、そんな年でした。

Monday 12 November 2018

アニーリングマシン

産総研-理研 第4回 量子技術イノベーションコアWorkshop
https://unit.aist.go.jp/rpd-eleman/rp-eleman/aist-riken_ws/place.html

どうも量子計算なはずだったけど、ネタ切れで物性系が大半にみたいな感じらしいです。

物性系は果てないからな〜 久しぶりに電子雲とかバンドとかそんな話を聞きました。

で、院の同窓生だった小池さんに見せてもらったのが

  CMOS論理回路とOPアンプで構成した2次元イジングマシン

マルチバイブレーターのメタステーブルを臨界状態に使った相転移マシンでアニーリングをやってるそうです。

将来的にはジョセフソン素子でやろうとか三次元でやろうとかあるらしいんですが、

  このマシンは市販のCMOSゲートとオペアンプ

なので極めて秋葉原っぽい〜 「遅いからLEDの点滅が見えるのでデモに向いている」確かに〜

アニーンリング部分はどうなってるのと聞いたら、そこは既にいろいろ研究されたものがあるんだってさ。

相転移した先が局所的最小な場合があるので、何回かやりなおす必要があるらしい。量子計算っぽい。

Sunday 11 November 2018

高校の同窓会

まめに準備してくれる人たちには頭が下がります。ドキュメンタリー映画を作ってきてくれた人も。良いできたった。

うちの世代はネットはぎりぎり上限ぐらいなんですが、MLでだいたい動いているみたいだけど、

  僕が送ったメールは届いてない

らしい。そういえば、Base64なしの直接UTF8で送りつけているので、Outlook とかでは読めないことがあるのだった。

Facebook に移行しているから困らないんですが全員ではないらしい。「友達申請がやまほどくるので怖くなってやめた」あ、そうですか。

来れなかった人、来なかった人にも思いをはせて、割とすぐに抜けてきました。最近は院長さまが多いみたい。そういう学校だったからなぁ。

当時の担任の先生も何人か来てくれて90歳の丈夫さを見れて素晴らしかったです。

男子校だから女性がいないのはしかたない。

Friday 9 November 2018

発掘話

東京は仕事もあるんですが、同窓会があるので、

  運動会の記録映画をなんとかしようかと。

なぜか紫組のが手元にある。音はないんですけどね。なにせ音無し8mm filmの時代のだから。いや、音あったはずなんだけどな〜

自分の橙組のはVHSのとか、Video CDにしたのとかあるんですが、もう少しましにできないのか? というわけで、かなり昔に、

  DV と DAT に記録して、さらにBD-REに落としたもの

ってのがあります。なのだが、

  音と絵は別

しかも、DVに落とす時に少し編集かけたらしく、音があってない。そういえば、

  もう少し歳取ったら iMovie で編集しよう

とか思っていたような... まぁ、十分に歳取ったからなぁ。というわけで、

  BD-REからm2tsとwavを発掘

そして、iMovie で編集してみました。昔の作業に比べる楽なんだけど、

  少し音声部分のデータた足りんな

適当に入れてごまかすか。ついでに、

  NGシーンが1時間分くらいあるみたい

なので、同窓会のお土産ぐらいにはなるはずです。本編の方はレコードの音入れちゃったのでだめなんだけど、音のない紫のとNGシーンのは、Youtubeに上げる予定です。

本編は著作権処理があるのか。面倒だけどなんとかなると思います。

iMovie に取り込む時に、動画と音声は細かく切り刻んでおかないとだめぽいな。まぁ、でも手抜きな感じで。

Thursday 8 November 2018

GCC debug 中

今までの Test プログラムは通ってるんだけど、新しいことをやると通らない... まぁ、良くある話なんですけどね。

間接 goto の間接の部分が複雑なだけなんだけど、

  stack pointer よりも小さいアドレスに局所変数が取られてる...

だいた動くが、たまに落ちる。singal とかかな。最適化かればなくなるはずなんだけど。いや、

  思い当たる所がありありです

が、今日はコード生成部分を調べてしまったので的外れだったみたい。

LLVM側も同じ感じなようなので、GCCが終わったらLLVMだな。毎年恒例ですね。

Wednesday 7 November 2018

Ingress Prime

βでもなんでもなかったので、ちょっとだけ様子見。この手のものは

  改良で良くなることはない

わけですが、Ingress も、まぁ、そんなもので。でも、

  運転しながらやられないようにした説

まぁ、そうかな。最初は「鍵が取れない〜」とかやってたんですが、

  グリフハックから、いつもの通り More できる

というのがわかったので、それは乗り切りました。が、まぁ、いろいろできが...

  Item が捨てづらい。捨てたあと一つの上のメニューに戻れ。
  メッセージが今見てるポータルの真上に。じゃまなんだよ。
  ポータルが近いとアイテム拾えない病が再発。

しかし、致命的なのが、

  リンクが遅い。CFができたのが文字だけで画面から確認できない。

いや、CFとかリンクって失敗することがあるかなぁ。通りすがりに作るのは難しくなったかも。まぁ、わざとだろうな。

この手の「見えないものを操作する感覚」は、想像力でplayしてるので余計なアニメーションとかはあまりインパクトないかも。

眼鏡でみたいかなとは思うんですけどね。でも、

  画面に常に所持アイテム数(いっぱいかどうか)が表示される
  画面を Intel map に近くできる

のはうれしいかも。Intel map と言っても狭いんですけどね。

Monday 5 November 2018

バスのタイミングの良い日

今日は那覇の松山公園で補給してから大学へ。県庁北口で目の前で98番に行かれてしまったんですが、

  まぁ、ゆいレールで追いつく可能性がほのかに

で、ゆいレールで古島までいったんですが、もちろん、間に合わず。しかし、

  やんばる急行バスが!

こいつは琉大前に停まるので、結局、置いてかれたバスよりも早く着きました。

帰りも8:25を乗り過ごしたんですが、

  中商業までタクルか

で中商業のバス停に来たら、うちの前に来る奴がすぐ来て良かったです。

Sunday 4 November 2018

parallel debug

自分で改造した MoarVM と元のMoarVMが同じように動くようにすれば良いわけですが、まぁ、いろいろバグる。

なので、実行したbyte codeの番号を gdb で表示するようにして、perl script 比較!

なんですが、最初に書いたのは「いいや、それぞれ配列に全部読み込んで...」とかやっていたんですが、

今度のテストプログラムは log が22万行になるらしく。じゃぁ、順々に読まないとダメだね〜

  while( $line !~ /= (\d+)/) { $line = <$fh>; }

とか書くわけですが、これだと抜ける時に not equal なので match が取れない。あぁ、まぁ、そうだよね。

じゃぁ、do while! いや、それ Perl にないし。じゃぁ、loop いや、そういう使い方じゃなくて...

結局、

  while( ! ($line =~ /= (\d+)/)) { $line = <$fh>; }

あぁ、疲れた〜

ちなみに違いは最初の20行目でした。そんなもん。

まだバグは取れてないみたい。がんばれ〜

Saturday 3 November 2018

Moar VM

Perl6 のRakudo実装の独自バイトコードマシンです。

CbCの例題としていじってるんですけどね。CbCは自前のコンパイラなので、そっちの方との相性が... しかも、

  macOSのMojaveにするとGCCがコンパイルできなくなるという問題があるらしく...

でも、取りあえず簡単な例題は動いたらしい。test もほとんどが通っているんですが、

  self build できない

まぁ、結構、大きいからなぁ。このレベルになると debug 結構大変。

gcc で生成したコードはlldbではソースコードデバッグできないとか。

最初の一歩という感じです。でも、担当しているB4は、そういうことがやりたかったのだと思うので、良いんじゃないかな。

Friday 2 November 2018

AWSなミーティング

次期システムな話ですね。今は、サクラインターネット使っているわけなんですが...

  GPUとか毎年アップデートするとかできないからクラウドが良いんじゃないの?

ってはあるかな。で、AWSの人に来てもらっていろいろ話を聞きました。が、

  AWS educate

ってのあるので、それで「だいたい無料(年$100分)ですむ」みたいな話が... でも、それだと

  次期システムに仕様で入れる意味がない

それで良いんですか? 大学事務全体をクラウドにするとか、そういう話と違うからな〜

取りあえず申し込んでみたんですが、Login できない...

  先生、申し込んだ後、審査があります

なんか勝手に作った大学名で申し込むとかがあるらしく。なるほど。さらに、

  SITNETとAWSを直結する方法がある

だけど、BGPを設定する必要があるらしい。それも

  別にお金がかかるわけではない

ので、おそらくうちの総情センタにpingして学情に頼んで設定とか、そんな感じらしいです。

と言うわけなので、いろいろ教えてもらって良かったです。が、そのAWS educateとSINETの話が進むのにはどれくらいかかるんだろう?

たぶん、

  さくらの方もなんか面白い話があるんじゃないかな〜

なのでさくらの社長を沖縄に呼び出すといいことあるんじゃないかなと考えてます。

Thursday 1 November 2018

11月の予定

11/10-19 東京の予定です。高校の同窓会とか、システム更新関係の打合せとか。

システム更新で参考になる大学どっかないかな〜

11/23 情報工学科一期生同窓会 これは沖縄

11/23-25 コンパイラ読み会 今回は Haskell と Agda です。321教室取らないと。

参加自由です。ネット配信するかどうかは...

Wednesday 31 October 2018

宜野湾のラーメン

丸嘉とあがりがなくなったので結構困ってるんですよ。

330赤道あたりに「横浜家系ラーメン」が。ばりかたと頼めば、まぁ、なんとか。太麺なのに。でもスープがなぁ... でも、Surl Mural という重要ポータルのそばなので、そういう意味で便利ではあります。

その少し那覇寄りの三竹寿があったところが変わったお店はいく前につぶれてしまって、でも、

  ラブメン

なるものに。煮干し系ですか。まぁ、悪くないかな。海苔がふりかけ的な感じ。

あとは沖国前のタカネ。図書館前の方は、もうあまり開いてないのかな。

我如古の武虎は、まぁ、いつもの感じですね。

一番餃子が昼閉まっているのが残念〜

Tuesday 30 October 2018

銀行名と振込

なんか昔から使ってきた銀行の名前が変わったらしく...

  振込が失敗してた

ログを見ないと失敗とわからない仕様らしく。

まぁ、銀行の名前が何回も変わったところも使っていたんですけどね。

いや、中はIDで管理してるはずだろ? あぁ、でも

  一つの銀行に二つのID

ってのに対応できなかったんだろうな。振込側は沖銀なので割とだめなシステムだからなぁ。

振込先を登録しなおしたら振込できました。

Monday 29 October 2018

Mojave

いや、まだ上げてなかったりするんですが... 既に廻りでいろいろ問題が...

  32bit support が落とされてる

のが鬼門らしいです。GCCが make できない。いや、OS9落とすとかPowerPC emulation 落とすとかと話が違うわけで...

  そもそも、なんでそんなことするの?

って感じではあるな。32bit x86 の拡張として64bitがあるので無理して落とす方が大変だと思うんですけどね。

で、いろいろやった挙句、起動できなくなった学生がいたり... 「セーフブートできません」おお、やるな。

えーと、

  Recovery mode で上げる(R押しながらboot)
  Diskutility を使って Macintosh HDをmount
  Terminal.app から、その中身を修正

という手順で治りました。まぁ、これが普通の手順だった頃もあったんですけどね。sigle user mode から / を rw mount しなおすとか。

Sunday 28 October 2018

JPHack 〆

ハッカソン自体はいろいろやっているので、慣れているんじゃないかなと。でも、マエケンは初めてだとかいってたな。

チームは4つで、

* 動画で筋トレをみんなで時間を共有しながらおこなうサービス

* GPAによる研究室配属をグラフで可視化するサービス

* お小遣い管理をスマートスピーカーでおこなう

* タスク管理ツール

という感じでした。高専生、B1からM2までいるので達成度はさまざまという感じですね。技術的には動画の処理とかスマートスピーカーとかグラフによる可視化とかが
面白かったかな。

動画を使ったマエケンのチームがプレゼンのスムースさもあって一つ抜けていた感じかも。

グラフによる可視化は、そこが肝だったはずなので、もう少しうまく説明できていればね。もっとも研究室配属は割と難しい問題なので、挑戦したのは偉いがそうそう簡単にはいかないです。

なんか運営の人のノリが文系なんですが。工学系そういう感じじゃないんだけどな。

発表時間が90秒。他の会場では10とか20とかあるらしく。その辺に合わせたのかも知れません。
今回は4チームだから10分ぐらいは取れたかも。

他の会場と違って沖縄のは「ゆるい」とか言われてました。そういうところです。

Saturday 27 October 2018

JPHACKS

321教室で順調に進んでいるようです。

うちは昔からプロジェクトベースだし、世の中的にも Hackathon 流行りだし。学生も慣れてる感じかな。

そして、ここにも

  一年次がたくさん

なんかすごいな。

大学で何を教えたら良いですかと聞いたら「既に知ってることを教える座学が... 仕方ないんですけど」みたいな話が。手を動かす感じか必要だな。

Friday 26 October 2018

歯医者さん

久しぶりに。 クリーニングなんですけどね。ハガキは随分前にもらったんだが、東京にいく直前で、戻ってきたら、なんかいろいろ忙しくて...

いや、忙しいったってたかは知れてるんですけどね。

下の歯の表面に傷が付いているような感触なんですが、問題ないですで片付けられました。まぁ、クリーニングでも特に引っかからなかったのでいいのかな。

少し歯の色がダメになってきた気もするのでホワイトニングしたい気もする。安直なのとかもあるみたい。

Wednesday 24 October 2018

プログラミング4

自分で勝手なプログラミングプロジェクトやっていいよという授業の後期版です。

他にもプロジェクトベースな授業はあるのだが、

  完全に制約なしで好き勝手なことやって良い

ってのはないらしく。まぁ、普通そう言うのは授業とは関係なくやるものだからな。

そんな感じでenPITとか他の実験とかと住み分けているみたい。

今年はホロレンズ中でドローン飛ばしたいとか、ネットラジオ作りたいとか、Unityのゲーム作りたいとかそんなのが来ているようです。

vTuber hackthon とかの話もしてました。あっちはあっちで面白いらしい。

Tuesday 23 October 2018

バスナビ

サイトが新しくなったってな話ですが、まぁ、いろいろひどい... まず、

  色が原色赤ベース

って、さぁ、学生がじゃないんだからぁ。まぁ、最近はYouTubeアプリとかもで原色赤だったりするからな。

アプリとWebと両方あるわけですが、新しい方の検索データがおかしいらしく、

  我如古とか下りしか出ない

しかも、選択肢で出た☆付き(おそらくバス停の意味)以外を選択すると「みつかりません」。何これ...

Webは常に位置情報を要求して「位置情報を取得できませんポップアップ」を無意味に連発。で、地図からバス停を選択するのがましかというと...

  上りと下りとが隣接していると片方だけしか押せない

拡大して上り下りを推測して押す感じ。

  使ってないだろ〜

まぁ、いつものバス停が表示されるなら良いわけですが、

  Webサービス内のブックマーク

があるらしい。これが、

  入力枠内でポップアップメニューから選択する

使えない... しかも、時刻表と接近情報とを別々にマークする必要があるらしい。

接近情側はブラウザのブックマークできるようにReSTにはなってます。まぁ、それで使えないことはないかなぁ。

しかし、20分待ち以上のバスが表示されないので路線一つずつ検索は相変わらずだな。

もっと使って楽しくなるくらいのUIにして欲しいよ。これでもないよりはましではあるんだが...

Monday 22 October 2018

スカパーアンテナ

まぁ、一応治しました。でも、

  隙間ケーブルはすでに逝かれていた

あ〜ぁ。まぁ、いいかと一回線減らしました。最近、そんなに観てないし。あと、

  向きがずいぶん違う

30度くらい違う感じ。おかしいなぁ。もかすると違う衛星拾ってるかも。ただしく映ってはいるんですが。スカパーは結構衛星持っているらしく。

その二つで少し時間がかかりました。それに、Skype の画像通信が根性なくて、すぐに切れてしまう。

もう一度、やられたら、なんか別な方法考えるべきだな。おそらくは、そのままやめてしまうんじゃないかと。

Sunday 21 October 2018

Recursion Prime

Ingress のevent で、通常の都市でのポータル合戦の他に、

  10/20 13:00 JST から 10/21 8:00 JST

まで全世界でCF増やした方が勝ち的なものがあったんですね。全世界なのでご近所ポータルCFは、まぁ、誤差なんですが...

昨日の夜は普天間とか嘉数とかでささやかなCFを増やしてました。

朝、起きてIntel Mapを見ると、緑が沖縄を覆うBAF。まぁ、来るよね。でも、なんか

  今壊しに向かってますw

なコメントが。宮古島ですけど。TLC (中部リンクカッターズ(株))さすがだな〜 与那国島でもいろいろやっていたらしい。

結局、8時直前に解除。それとは別の中国、西アジア、アフリカの青の巨大CFがあり、Anomaly のカウントを even にまで持ち込んだみたいです。

CFのMUカウントは人口にも寄るので大きなのを作れば良いと言うわけでもなく。沖縄のガードリンクでの本島/台湾の防御とかが重要。

その戦いの跡が緑と青のリンクなわけだね。今回は沖縄本島の local intel score は捨ててとかいう感じだったかも。

久しぶりに青の意地を見た感じ。担当者、作戦成功おめでとうございます。

Saturday 20 October 2018

またアノーマリーで

Ingress ですね。台湾で開催だったようです。青はやっぱりいつもの感じだったんですけどね。リチャージで参加は手抜きだが、まぁ、いいか。

でも、朝までのCF合戦みたいなのもあるらしく。いや別に沖縄内部で争ってもなぁ。

いや、外のBAFの争いはいろいろあるんじゃないですかね〜 他人事〜

とは言いながら、沖縄だからそういうことからは逃げられないんだよね。担当者頑張れ〜

Friday 19 October 2018

55/56番のバス

まぁ、風邪はあんまりひどくはないので、

  Ingress で無謀な寄り道はしない

ぐらいにしてます。(普段は5kmぐらいの寄り道はするので...)

で、バスIngressなわけですが、この55/56は結構面白い。大平から前田経由は良いんだけど、そこから330沿いのビア缶そばまで廻る。

ただし、そこで終了。いくつかは、真栄原まで来るんですけどね。割と本数あるし、便利なポータルが取れます。あそことかあそことか。

ビア缶からは330のローソン経由で大学までいけるんですが、

  体調良くないので図書館でお休み

昔は図書館結構好きだったけど、最近はあまり使わないな。いや、Ingress のポータルとしては良く使ってます。

Thursday 18 October 2018

nomatch found

zsh で、

alias re='rm #* *~ #.* .*~ *.dvi *.log *.blg *.bak *.swp;'

とかいうのを使っていたんですが、これが失敗するんですよ。 no match found とかいって。

要らないファイルを消すわけで、毎回手で打ったりすると危ないわけで alias に。いつからか動かなくなった。

つまり、.*~ とかがないと展開失敗でコマンドは実行されないらしい。まぁ、気持ちはわかる。

ググってみると、いつもの StackOverflow ではなくて、stackexchange とかいうのが引っかかった。

   setopt +o nomatch

とやれと。なるほど。

   alias re='(setopt +o nomatch; rm -f .*~ *~ *.dvi *.log *.blg *.bak *.swp *.agdai)'

こんな感じですかね?

11月はいろいろありますが、11/10-11/19 は東京の予定です。

https://unix.stackexchange.com/questions/310540/how-to-get-rid-of-no-match-found-when-running-rm

Wednesday 17 October 2018

ADATA

USB-C にもUSBにも刺さる奴ですね。Amazonのカートに引っかかっていて注文されていなかったらしい。最近、注文を復活しました。

USBメモリ差すのにアダプタがいるってのがMBPのダサいところなんだよな。

使う機会はいつくるのか?!

- ADATA

Tuesday 16 October 2018

ちょっと風邪っぴき

鼻風邪っぽい。まぁ、定期便な気もしますけどね。鼻水が長引くパターンだな。

昨日は、blogger 側の調子が悪く、投稿できなくて。blogger側はメール経由なんですが、メールはでていっている。何回かテスト。

で、しばらくしてみたら、

  同じものがたくさん投稿されている

う、どっかに詰まっていたか。まぁ、コンパネから消せば良いだけなんですけどね。停まる可能性はいろいろですが...

Facebook 側は例のAPIからの投稿禁止で手動投稿中です。Web経由で投稿するようにしようかな。

-

Monday 15 October 2018

ジャングル

沖縄、日差しも強いし、雨も良く降るしで...

  放っておくと、ジャングル

いや、うちの前の道なんですけどね。

つい二ヶ月前かなんかに除草していたような気がするんだがな。

もっとも、うちの前はかなが強力な除草剤をまいたらしく、何にも生えてないんですけどね。

人類が衰退すると、アンコール・ワットのように、あっという間に草木に埋もれてしまうんだろうな〜

Sunday 14 October 2018

シュタインズゲート・ゼロ

終わったのは大分前だったけど。 ついでに、録画していた劇場版

  負荷領域のデジャヴ

の方も観ました。2013年か。スカパーのおまけに付いてくる一ヶ月だけWOWOWで録画したものだな。でも、その時には見てない。そんなもの。

ゼロも劇場版も、本編の設定に沿った話なので、安心して観れる感じ。

ゼロは、同じところをぐるぐる廻っている頃の行き詰まった感じを拡大したものだけど、そのいじめられている感じがあんまりなくて。少し残念だったかな。

劇場版は、紅莉栖の泣きが結構良かったです。Re:ゼロでもそうだったけど「どこまで落ちるか」的なところがある。ちゃんと落とさないと。

道具立て的には劇場版の「結局、自分はどの時間線にいるべきなのか」という問題意識は面白かった。

負荷領域のデジャヴ

Friday 12 October 2018

Ingress Hacker Medal

歩きで沖縄だとやっぱり稼げなくて... ようやっとといったところです。

次のメダルはBuilderかな。1,2ヶ月後ってところですかね。

もう少し、Mission 頑張りたいけど、なかなか。

Ingress は手を抜くようになったので、やっぱり水泳を再開したいかな。

Thursday 11 October 2018

一番餃子

真栄原の大将のあとにできた中華料理屋さんです。栄町市場にある店の姉妹店みたい。なんか、こう、

  ジャンクな夕食ですませたい

時ってあるじゃないですか。そういう時には、

  餃子とビール

ですよね。僕は水餃子派です。日本は焼き餃子流行ってるみたいだが、水餃子でしょう。

ここは、あと、

  クミン炒め

がいくつか。

  辛く〜

と頼むのと、料理長のテンションが上がるようです。

良いお店なので、みんなで行こう〜 (良いお店には行かないと)

  https://tabelog.com/okinawa/A4703/A470404/47021861/

Tuesday 9 October 2018

猫と扇風機

なぜか、扇風機の台座がお気に入りらしく。

  電源が入っている方が良いらしい

理由は不明です。おかげで、風力最大になったり切れてしまったり。

カリは布団の方が気に入っていたので、猫に寄るらしい。

Sunday 7 October 2018

CCC

Cartesian Closed Category ですね。名前からしてかっこいいじゃないですか。

  Hom A a 1 ≅ {*}
  Hom A c (a × b) ≅ (Hom A c a ) × ( Hom A c b )
  Hom A a (c ^ b) ≅ Hom A (a × b) c

とか書いてあるな。これって何? ってあたりからやるようです。

いや、先にやること他にあるはずなんだけど。

たぶん、これが型付きλ計算のモデルになるとかやるはずだな。M2の時にもλ計算の分厚い本で読んだような気がするが、あの時は良くわかってなかったな。

Friday 5 October 2018

台風はたいしたことなかった

のですが、まだ、強風圏の中を学校に。まぁ、これくらい沖縄の普通ですけどね。

教室が名嘉村先生とバッティングしてるとかいろいろありましたが、なんか、名嘉村先生に頼み事があったんだけど、なんだったかな。

  思い出せない〜

学科Webの英語の部分が落とされてるので名嘉村先生の留学生に手伝って欲しいって話はしたんですが、それ以外になんかあったんだけどな。なんだったかな。

なんか授業関連だったような... あ、思い出した。

  学科の Astah のライセンスはどうなってるの?

だった。UMLお絵描きツールのAstahの community edition がなくなちゃったんだよな。他にもUMLの図は書くのはあるので、なんでも良いんですけどね。

Astah は制約が強いのと「選択してから設置」というダメUIなのがね。学生もOmniGraffleを使うことが多いようです。でも、

  その制約がUMLの勉強になる

ところがあるからなぁ。手元のライセンスは切れてるな。アカデミックのサイトライセンス安いとは思うんだけど、国立大学の貧乏さはそれを上回ってきたので...

Thursday 4 October 2018

また、台風

プランター出さなければ良かった...

しかも、明日の午後の授業までには抜けてしまいそうだし。

まぁ、家でお休みしてます。

Wednesday 3 October 2018

Linker script

なんか、学生が30日OSやってて、qemu 経由で gdb で debug したいと。x.v6 でいいじゃんと思わなくもないんですが...

じゃぁ、elf 形式で kenrel 作ってやって、qemu の debug mode 使えば? ってことなんですけどね。つうことは、

  elf 形式用のlink script を書く

ってことだよな。a.out でいいんじゃないか説もあるんだけど。30日OSは、フロッピィbootで書いてるらしい。

  qemu -kernel kennel.elf

でいくかと思ったんですが、なんかだめ。そうですか。

  でも、floppy 上の IPL のアセンブラと Linker script を合わせればいいんでしょ?

なんか地獄のように合わないぞ〜 でも . = 0xd030 ; とかなんとか書いて、gdb 側でentry point 確認して的な。でも、やっぱりずれてるので、

  面倒くさいので、ずれてるentryをそのままIPLに書いた

いや、でも、gdbからの disass は合ってる。意味わからん...

でも、それでも、IPLから飛んだ先の int 0x10 ( VGA deviceの初期化) で飛んでるようです。おそらく、スタックの初期化にしくじってるな。

Tuesday 2 October 2018

冷房室外機

いや、だから、屋上に物置いちゃダメだって... 多分、当たったのはこいつなのではないかと。

おかげで事務室が冷房なしに。まぁ、でも、

  少し涼しくなった時期なので

もっとも、また、暑くなるかもな。11月までは。事務には扇風機を届けておきました。

Monday 1 October 2018

スカパーのアンテナ

くそ〜また飛ばされた。どうしましょうねぇ。アンテナ自体は1万円くらいなんですが...

  また飛ぶとわかっているものを設置するのはありあえない

今後、こういう台風は増えると思うんだよね。温暖化の影響説も。あるSFだと超音速な風速の台風が赤道を一周するようになるとか。

やめてCSにしちゃうという手も。BS生きてるので、それがおそらくは簡単。CSのチャンネルも増えたし。

マストは生きてるし、BSアンテナは耐えてるので、スカパーのアンテナの欠陥だとは思うんですよ。定格の60m/sないってことね。

なので、パラボラを補強すると言う手もあるかな。

  テザーを設置する
  パラボラに穴を開けて風圧を逃す

くらいかなぁ。ハンドドリル一つあれば可能だな。

やめちゃうのが一番簡単なんだけど、なんだかんだ長く使ってきたからなぁ。もっとも、最近は、

  Closed Caption ではなく画面焼きこみの字幕で消せない
  アニメはBS11でいいじゃん?
  どうせ観ない
  ねっとでいいだろ?

的なところがあって要らない説も。

Sunday 30 September 2018

台風過ぎました

なんか土曜の朝8時には停電してしまって。復帰は今日の15時だったみたいです。13時から16時までは目の中にいました。

ベランダに奥様のプランターがたくさんあったんですが、全部、中に入れたのでベランダには何もなくて平和。前は折りたたみテーブルかなんかを
残してしまってうるさい目にあいましたが。

まだ、アンテナは確認してないけど、そんなわけなので割と無事だったようです。プランターも外に出したし。

まぁ、冷蔵庫の中は全滅ですけどね。火曜日にまとめて捨てるんだな。

Friday 28 September 2018

台風の準備

久しぶりに風速70m直撃らしく... 2012/9以来かな? しかも、この手のってしばらく居座ったりするからな。でも、沖縄を過ぎれば高速になるらしいです。

というわけなので、ベランダのプランターをお片づけ。新聞取ってないから新聞紙がないのがな。蔦みたいなのもあったが、ぜんぶひっぺがし。ま、しかたないですね。

あとはインスタント食品シリーズか。停電するとやっかいですけどね。最近は停電は少ないが。でも、2012は停電したはず。

MBPの電源がないが、まぁ、切れたら、MacBook Air 使えば良いか。

Thursday 27 September 2018

Agda trouble

Agda version 2.5.4.1 にあげたわけだけど、なんか、いくつか通らない証明が... 前にもそういうのあったんですが、

  その時には、証明の方がおかしかった

引っかかったのは、monad から applicative を導くと言う奴で、Sets が絡んでいるので、いろいろ大変な奴... あらら。

赤が出ると type conflict なので完全に失敗してしまうわけなんですが、さすがに、そうはならないけど、

  黄色くなる

これは、微妙なんですが、型の衝突はないが、

  項が等しいと判断するのに十分に変数の値が代入されてない

みたいな感じらしいです。でも、証明は繋がってないのでダメ。だいたい、変数の対応を推論しきてれないことが多いので、
暗黙の変数({x}みたいな)を明示してやると通ることが多い。

多いわけですが、一度証明が通っているので、それほど簡単ではなく...

(λ r →

とか書いてるところを

(λ (r : ((b → c) → _ ) * (b → c) ) →

と書いたらなおったところが。う、うーん。

もう一ヶ所は、読みやすくするために、同値な項だけど形が違うものを書いていたりするんですが、

  それを取り除いたら黄色が消えた

なるほど? 余計なことするなと。

最後のが苦労したんですが、

  Product が builtin になったらしい

なんかλかなんかで定義されていたのに。それで、

  normalized term の形がずれた

具体的には、項をまたがった Product の reduciton をやってくれなくなったみたい。変形して、そばに合わせてみたいな感じで逃げられました。

この手の微妙なのが Agda はなぁ。まぁ、学生が扱うにはそんなものは出てこないはずなんですけどね。

いやいや、今頃は、もっと他にやることあるだろ〜

http://www.cr.ie.u-ryukyu.ac.jp/hg/Members/kono/Proof/category/rev/06388660995b

Tuesday 25 September 2018

JPHacks 説明会

沖縄は10/27-28だそうです。

割となんでもありな感じな Hackathon かな?

村上さんには、割と好き勝手をいいましたが、いつものことなので、気にせずにお願いします。

https://2018.jphacks.com

(今日は、Excel とか書かされたので、ちょっと逃避して圏論の例題解いてました...)

Monday 24 September 2018

お休みな日

ラーメン食って、大学にいたら、飲みに来いメールが来ていたので、琉大のそばの行きつけの店がいいといったんですが、

 到着のメッセージを見落として1時間放置でごめんなさい

でした。いろんな話が聞けて楽しかったです。

明日も飲みに行くことは決定なみたい。よろしくお願いします。

Sunday 23 September 2018

今日のIngress

あと30分頑張れば閉じられたが、また、明日〜

今日のハイライトは、どちらかというと北上原公民館を取りにいったことかな。

Saturday 22 September 2018

サンダーバード秘密基地

買いませんでしたが。祖母に言えば買ってくれたとは思うけど。替わりに、

  0-X 号

は買ってもらいました。映画見ると「たる〜い」話でな〜

下面に車輪が付けられるようになっていてゼンマイで動くのだったかな? それ用の穴が子供心に「これなんとかならないの?!」

今だったらパテなりで埋めるわけですけどね。さっさと壊して捨てられてしまったはずですが、先頭の着陸船部分はだいぶ残っていたはずです。

ジェットモグラ号が砂場で役に立たないと言う経験が工学者には大切だと思います。

Friday 21 September 2018

OSで使う言語 Java 10

まぁ、C はやるんですけどね。

すでに Java 10 という話。なんか、最新のしかサポートしなくなったらしく、しかも、

  Java 9 から微妙

という感じなので、ついていくのにしんどくなってるところです。それに、

  古くさい

ってのもあるね。こういう

Hoge hoge = new Hoge();

みたいに同じことを何回も書く言語はダサい気もするし。

golang もいいかなと思うんですが、

  OSのAPIを学ぶには、少しずれてないか?

ってあたりがな。速度的にはJavaの方が上なみたいです。速度が重要なわけでもないですが。

C#にすると、Unity と連結するので便利ではあるんですけどね。

Haskell/Prolog 辺りは別な授業でやってるし、OSとの相性はよろしくない。

OSでメモリ管理やる一方で、GC base の言語ってのもずれてる感覚あるんだよな。Apacheのpoolみたいなのが良いとは思わないんだけど。

ま、とりあずは、今年は Java 10 な予定です。

Thursday 20 September 2018

High Performance VDI Conference 2018

補講は学生に任せて行ってきました。学生が来ればタダ飯食えるのに。もっともOISTは遠いけど。

VDIと言いつつ、なんかストレージの話ばっかり。

*  Pure Storage

NAND Flash のコントローラをFPGAで独自実装して高速なSAN node。重複検出してくれるが'売りらしい。
SANの先に繋げるだけなので検証容易。でも、これ次世代不揮発メモリが出たらどうするの?

*  Datrium

SSDを仮想ディスクとして使うLAN baseなstorage node。プレゼンではなんなのかさっぱりわからず。
ブースに聞きにいってようやっとわかりました。これはくせがありそう。CentOSでまともに動くかどうか。
でも、SAN無しですむのは良い。

Pure Storageの人と「SANなしでNASだけで構成する手もあるよね」みたいな話もしてました。

いずれにせよ、検証機もらって動かしてみてからだな。Datrium はSSD手に入れないと評価できないらしい。

https://www.highperformancevdi.com/ja/

Wednesday 19 September 2018

ペアプロ

OSの授業は課題37個ぐらいで、最近の標準からすると多いのかも知れないけど、OSのインストールとかDockerでの実験とかなので、

  まぁ、やればできるでしょ

的なものですが、適性はあると思うんだ。

  Javaのtestをgradleに記述して、Jenkins でチェック

とか、やってみると、間違える可能性が無限にあって、結構ハマる。これを乗り越える根性が.... そういうところを避けるように課題を
作ることは可能ですけど、

  実際のプログラミングとかは、そんなものの塊

だったりするので、避けるのは少し違う気がする。

でも、いかんせん補講受けに来るぐらいの学生なので、そういうレベルともまた違う。

  1時間たっても最初の課題を出さない

ちなみに最初の課題は「教科書から10個、英英辞書を使って単語を引く」ってやつなんですけどね。何故出さない。それは不思議なことなんだけど。

ADHDとかいろいろ言い訳はあるし、やる気の問題と切り捨てても良いんだけど... 今回は、

  じゃぁ、二人一組にするから、そことここと一緒にやって!

ってのをやってみました。10人ぐらいしかいないんだけど、一人一人ぽつんと座っていたりするんだよ。TAが全員に付くわけにもいかないし。

既に10個とか提出している人も何人かいるので、そういう人に付いて提出すれば楽勝なはずです。

聞いてみると「助かりました」みたいなことを言ってる人が何人か。それでも、結局、別々にやっている人たちが何組か。いろいろ面白いな。

あさってまでですが、なんとか乗り越えて欲しいです。

Tuesday 18 September 2018

OSの補講

補講と言っても「出席してれば単位はもらえる」とかではないので、

  課題の手伝いをしてくれるTAがいる4日間

っていうだけですけどね。

でも、この時期だと、10月から始まるOSの授業の課題のチェックに使えるので便利。さっそく、

  Fedora 28 では去年の ansible script は動かない

と言う技を出していたようです。どうも、firewalld と mysql-python が Python3 に変わったらしい。

https://ie.u-ryukyu.ac.jp/hg/y17/index.cgi/home/hg/y17/k178572/ansible/

20年たっても迷惑をかける Python 3 ってわけですな。これからしばらくそういうのが続くかも。

Monday 17 September 2018

トップを狙え2

こっちもなんとか。「努力と根性とかじゃないから」はいはい。別物であることはわかりました。

が、盛り上げ方はそんな感じですね。

2003年なので15年前か。手元の録画は2014のだな。ずいぶん寝かせたもんだ。

Sunday 16 September 2018

カフェユニゾン

普天間でいご通りのカフェですが、

  なんか、途中から隣でうるさいバンドの演奏が...

100円割引してもらいました。

多少うるさいのは平気だが、低音の漏れがな〜

Saturday 15 September 2018

シュタインズゲート

アニメのゼロの方もようやっと盛り上がってきた感じですが、元の方をようやっとクリア。達成度75%ぐらいだけど、これくらいでいいや。

16時間ぐらいだったかな。それなりに楽しめました。アニメの方が飛ばしモードだったからなあ。ゲームの方が達成感あるし。

タイムマシンものですが、三種類くらい出てきます。

  携帯メールで38byteの通信
  記憶を転送
  人間を転送できるもの

最初のだけで押し通せよと思わなくもなかった。もちろん、J.P.ホーガンのパクりなわけですが、特許とかと違うからな。芸術と言うのは模倣し模倣されながら進歩していくものだからさ。

SciFi なのだから科学設定に突っ込むよりは、指定されたルールの整合性を楽しめば良い。なんだが、それができない人もいるでしょう。絶対音感と相対音感とかとにてるかも。

設定で面白いのは「12TBの人間の記憶データをブラックホールで38byteに圧縮して送る」ってところだな。12TBのエントロピーはどこにいったというわけだけど、

  圧縮というよりtiny URLみたいなもんじゃね?

実際の12TBのデータは未来の可能性の中に埋もれているので、そこから発掘するためのキーみたいなものなのかも。ファインマンラジオの一種か? ま、設定だし〜

平行宇宙であって平行宇宙でない的な話だけど、この辺の処理はタイムスケープがやっぱり秀でてるかなぁ。それも一つの設定でしかないんですけどね。

Friday 14 September 2018

やっぱり、物理ループだったらしい

やっぱり cisco の log の見方を復習しないとだめだな〜

flapping しているlogが「別なスイッチ」あ、そうですか。

spannning tree がうまく動いてないってこともあるんだけど、これくらいだと今は「調子が悪い」くらいですんでしまうのか...

いろいろ勉強になります。

Thursday 13 September 2018

スイッチトラブル

一応、CCNP の途中までは勉強したんですけどね。高須さんの講演のあと、上に行ったら、

  スイッチがおかしいです

え〜 なんか、

  フロアスイッチが次々に落ちる

という症状らしい。なので、停まっているのに接続に行ったんですが...

  もう動いてます

え? Cisco のSwitchの脆弱性が出ていて、それ関連かと思ったんですが、Virus関係だったら復活するのは変。

で、メインスイッチの show logging を見てもらったら、

  flapping between port 22 and port 23

とか言ってる。で、それがいろんなポートで起きてるらしく。それが原因らしい。なんだ? メインスイッチのポートのランプは

  全部同時に点滅

なので、ループかなと思いました。なので、

  順番にポートを落として、停まったらそこなんじゃね?

Spannning tree 動かしてないのは良くある話だからなぁ。なんですが、

  全部落としても、停まらない

残りは、数十パケット/秒くらい。うーん、これくらいだとスイッチの管理パケット程度だな。

show span-tree 見てみると、一応、なんか動いているっぽい。

で、ポートを元に戻してみると、ランプは相変わらず同時点滅なんですが、

  なんか、快適に動いているんですが...

なんだぁ? show logging には fapping は現れず。

これだと、ちょっと僕の手には追えないかもぁ。スイッチの問題な可能性もなくはないです。3850 x 3 stack っていう構成だからなぁ。

IOSのupdateもした方がいいから、いずれにせよ、サポートに連絡かな。

Wednesday 12 September 2018

高須さんの深のお話

深圳の熱気が伝わってくる感じで面白かったです。

ハードウェアを作るのに、日本だと一億円、深圳だと500万円的な。

中国の中では良いが、世界に売ろうとすると「特許たくさん取ってクロスライセンス」とかやり始めるらしい。

大衆創業万衆創新というのを中国政府が推進してる

などなど〜

参加した学生が少ないのが残念だな。深圳にハードウェアを発注する授業とかやりたい気がする。

https://www.facebook.com/events/2206294419606775/

Tuesday 11 September 2018

Agda と格闘中

同じ所廻っているような気がする〜

やっぱりドキュメント読まないと。

https://agda.readthedocs.io/en/v2.5.4.1/language/with-abstraction.html

と思ったら、今使っているのは2.5.2なので既に古いらしく。2.5.3 からとか書いてあって。

まぁでも、

  brew update
  brew upgrade agda

ですむから簡単ですよね。と思ったら、

  illegal byte code

はぁ? ちょっと困りましたが、

  ~/.agda/libraries

に library の場所が、そのまま書いてあるのか。これを

  /usr/local/Cellar/agda/2.5.4.1/lib/agda/standard-library.agda-lib

に修正しろと。そう、brew upgrade agda が表示してました。

ω automaton で n 番目みたいなのを証明しにいくわけなんだけど、こっちは n, n-1, n-2 ... 1, 0 と推論するんだが、
ω automaton の計算の方は 0, 1, 2 と進んでいく。その辺が、うまく揃わなくって。

まぁ、そのうち、なんとかなるでしょう...

Monday 10 September 2018

Java Kuche Agile 勉強会

土曜日の話ですけどね。Agile は

  理解はできるが習得は難しい

というものらしく。何回か講演もあったし本読んだりもしましたが、なかなか。

大学の研究室だと学生のテーマは一人一人別々だったりするから、少し状況が違う感じ。

でも、アプリやフレームワーク作ったり、あるいはGCC/LLVMをいじる時には意識してはいます。

今回は、ゲーム二つ

  紙飛行機をたくさん作る
  コインの操作のタスクの粒度を変える

みたいなのがあって楽しかった。自分でやってみて数字がでるので説得力がある。

この数字で評価するというのもAgileの一つの柱なわけですが、プロジェクト全体を単一の数字で計ってしまうとダメな方向にいってしまうらしい。

最近流行りのTEAL組織の話もちょっとだけ出てきました。まだ、本読んでる最中ですが、この手の本の通例で、うさんくさく始まるんだよな... 読みきれるのか?

飲み会の方でもいろんな話が聞けて楽しかった。専門用語よりも、もう少しざっくばらんな感じでお願いします。

プログラミング能力の基準として「三ヶ月三千行ちゃんと動く」みたいなのを使っているんですが、行数は古いんじゃないかとか言われました。じゃぁ、これに変わるものは何かな。何かいいものあります?

Sunday 9 September 2018

トップを狙え

なんか、3やるって話があるんですね。2、まだ観てない。なので、1から復習しました。2はまだ(しつこい)。

いや、面白いほど、

  まったく憶えてない

最後のシーンは、いろなところで引用されるので憶えているわけなんですが。こんな話だったけ。つうか、こんなに乳首でるアニメだったっけ?

シャトルはサンダーバード型なデザインで、ワープエンジンはヤマト型と。三角形なのはスターウォーズの影響と。わかりやすい。

話の広げ方とか父の使い方とか王道だしな。

憶えてないのは前回観たのが20年前だからではないかと。何回か録画しなおしてるはずだけど、毎回観るようなことはしなかったみたいだな。

インターステラーでもブラックホールネタを使ってましたが、まぁ、そういう設定だってだけでさ。Sci-fi のSciは「お約束な科学」なので。

背景のポスターネタが面白いので、見直す人はそこを中心に見ると良いかも。借金返すためのOVAだったみたいだけど、作る方が楽しんでるのが良いね。

https://amzn.to/2QhAbee

Friday 7 September 2018

Casio FX602P

学生の頃、良く使っていたプログラム電卓FX502Pの後継機ですね。iAppにエミュレータがあります。

エミュレータのプログラムのsave/loadが良くわからなかったんですが、本来はdropbox経由でなんとかするものだったらしい。
mode 3 にして、save とか load とかのボタンはあるんですけどね。
でも、dropboxのAPI変更で動かなくなった。なるほど。

なんですが、

  液晶の部分をタップするとSettingにいけて、
  そこのFilesにプログラムがある

なんだ、そこかぁ。で、そこの i ボタンから、

  メールで自分に送れる

おお、なるほど? そうすると、

  *.pf

というバイナリストリームと、HTMLなListが得られるという方式らしいです。

で、それをメールでiPhoneに送りつけると、エミュレータで開けることができる。はいはい。

というわけで、プログラムのやりとりができるようになったみたい。

バイナリストリームは割と簡単な構造なはず。アセンブラ書くのも難しくないはずです。昔、Prologで途中まで書いたような記憶があるが。

FX806Pは232Cが付いていたので、そこからプログラムを抜き出していたはず。それで書いたものも、どっかにあるはずだが...

PROGRAM LIST
*** P0
x=0
MAC
LBL9
AC
5
MinF

% xd.pl 20235.2.octet-stream
file size 000000f8
00000000 400e0000 00000000 006c8e29 fa1bf10c
00000010 b7674361 8a5c4362 5a0b0a0a 5e688a8a
00000020 43b18a5c 43b25a0b 0a0a5eb8 8a20785d

Thursday 6 September 2018

バスと Java Kuche イベント

台風の次は地震ですか... 沖縄は平常運転です。

9/8に イベントあるんだ。見落としてました。えーと、この場所は... 宜野湾バイパスのあっち側ですか。28のバスの数本が通るかな。タクシーかな。

道はいろいろできるんですが、バスの路線が追いついてなくて。今年できた海上道路にバスが通るようになるのはいつだろう?

琉大も90が何本か琉大経由になってくれると良いんですけどね。中部商業はバスのすれ違いは厳しいが。

Wednesday 5 September 2018

日本酒試飲会

日本酒強いん会、日本酒死因会? まぁ、間違ってはないない気もするが...

那覇のサンパレス球陽館でした。サンかぶってるんだけど。酒造さんがだいたい二つずつ持ってきているが、

  二千円で10回分のチケット

なので、全部は飲めないわけですけどね。カナとだいたい「これどう?」みたいな感じだったので二倍は試せたはずです。つうか、

  試飲会なんだから、いっぱい注ぐのはやめて

でも楽しかったです。黒龍、〆張鶴、貴とかの有名所から、「埼玉のローカルな米の銘柄なので知らないと思うんですけど」みたいなものまで。

お酒強い女性は独特なオーラがあって面白いな。

Tuesday 4 September 2018

復旧作業続き〜

やっぱり、朝、9:20ぐらいに再度書き換えられてました。どうも、

  theme/*/functions.php

に実行すると、theme/*/functions.phpをすべて書き換えるコードが入っていて。scan-dir とかする極悪さ。

それは一応落としたんだけど、

  theme/*/functions.php

のmodeが 666 。いろいろやられているっぽいです。

また、明日まで様子見だな。

また、少しイベントがあるようなので、少しアナウンスしないと。もっとも、

  学生は夏休みで大学はすかすか

なんですけどね。

Monday 3 September 2018

復旧作業

昨日は三人でワイン4本空けたらしく。飲みすぎで気持ち悪かったけど二日酔いはないみたいです。

学科のWebサーバは、まだ、点検中。

  yum update してない

ダメじゃん。

  maria db が10.1 ( 最新は10.3)

ダメじゃん。

worcpress plug in の方は authenticity check でチェックしましたが、

  そもそも、admin check をskipするコードがかなり昔から入っていた

って、ダメじゃん。

で、vuls でcheckするわけですが、

  vuls のCVE指摘が減らない

ってダメじゃん。

というわけで、もう少し時間がかかりそうです...

Friday 31 August 2018

学科のWebがやられました

7月末に WordPress のtop pageをrenewal した時に、どうもダメなテーマを入れてしまったのではないかと。学生は経験浅いから攻撃される前の数日に roll back とかするわけですが、だいたい、やられたのと実際の稼働には時間差があるものなので無駄ですね。適当に直しただけでは、元に戻されてしまうというオマケ付き。

東京にいる間は手だししにくかったんですが、戻ってきたので一通りみました。theme のcheckerで2個ぐらい引っかかっていて。vuls でも PHP 関係の脆弱性が。PHP/WordPress 辺りはサボるとテキメンだからなぁ。

plugin なので組織的に書き換えられてしまう。root kit の検出はできなかったので root までは突破されてないようですが。この規模の侵入は珍しい。うちで良くやられてたのは学生の放置していたサーバに入られて、DDoSとかだったんですけどね。

refererを見ていて「googleから検索した時だけ変なURLを見せる」というもので、普通にURLからアクセスするだけではバレないという仕組み。変なURLは、もちろんトロイの木馬というそういうもののようです。

まだ、復旧には時間かかりそう。

Thursday 30 August 2018

というわけで沖縄

行きは遅い便しか取れなくてキャンセル待ちで一つ早くしてもらいました。JALは一時期それができなかったんだよな。システムの関係だったらしいです。

帰りは特に急がないので。ペンギンハイウェイ観たいかなと思ったが根性と時間が合いませんでした。

明日は学科のシステムのお守りをしているはずです。いったいぜんたいどうなっているのか〜

Wednesday 29 August 2018

ダブルヘッダー

昨日は昼と夜と集まりました。楽しい時間をありがとうございました。

  昼は飲まなかった (えらい)

新宿三井ビルのシズラーですが、お昼、予約取ってなくて失敗したかなと思いましたが、

  特に問題なく、すぐ入れました

一応、平日だからな。いや、でも、そこそこ混んではいました。

シズラーはサラダバーのみと言うのが良いと思うのだが、ちょっと肉が足りないというのが罠かな。

3時ぐらいまでいて、一旦、実家に戻って、お休みしてから、今度は銀座に。

長崎料理で「茶碗蒸しと混ぜご飯」。茶碗蒸しがでかい。バケツプリンみたい。

  皿うどん

が美味しかったです。懐かしい味。

その後は「七曲署」というバーに。国産酒しか置いてないバーですか。なるほど。刑事ものの小物がたくさんあって面白かったです。

  手錠とかサングラスとか

銀座の綺麗なお姉さんたちも通りでたくさんみたな。東京少し景気良い感じ?

Tuesday 28 August 2018

Turing Machine

Automaton の続きですね。automaton にstack(つまりリスト)を二つ足して。割と簡単に掛けたんですが、

  プログラムの方法がわからない

アセンブラよりもひどいからなぁ。で、ググって、1が続いているのを反対側に倍にするってのを書いてみました。しかし、

  Turing Machine のdebugって結構最低

なので、一ステップずつ実行するように書き直したわけですが、ようやっと動いたら

  15 step / 5 min

おいおい。なんとかならんのと思ったんですが、1 step 実行用に挟んでいたProductをはずして tail call で書いたら

  15 step は瞬時

になりました。ふーん。Agdaいろいろあるな。なんですが、

  ここから、Universatl turing machineはかなり遠い

らしい。Turing は構成してみせたらしいんですが、ググっても見当たらないぞ。

たぶんテープ増やして、可変長の状態記述と可変長の状態レジスタを作るんじゃないかな。まぁ、構成して見せたところでどうなるものでもないんですが。

ちなみに、普通の計算機はメモリ有限なのでTMではテープなしでシミュレーションできます。

もう少し Universality が自明なプログラミング機械とかないのかな。

このスライドが結構面白かった。

http://tinyurl.com/yc9ob6to

Monday 27 August 2018

iPhone update

兄妹喧嘩で投げられてしまって。ばっちり割れたのでWebからGenius Barに予約したら銀座12:30に。

早いなと思いながら兄妹喧嘩でぼろぼろになったスーツをクリーニングに出したら「ダブル洗いですね」あ、そうですか。そこで、まさかの

  名前書き間違いで書き直し

ああーっと、というわけで、Genius Bar 到着は12:40でキャンセル再予約に。くそ〜 でも、割とすぐに見てもらえました。さっさと交換。一回目。

で、そばのほげ珈琲店で設定していくわけですが、

  restore は完了したが、SIMが認識しない

え、プロファイル入れれば良いんだろなんですが、ぜんぜんだめ。

東京のWifi事情の悪さは加速しているので、あきらめて、Apple store へ。

結局、すったもんだで、交換になったんですが、そこで設定していくと、

  iij mineo ではないですよ? いや、iij mio ですが

mineo と mio は違う? え、何言ってるの? というわけで、

  iij mio に iij mineo の profile を入れていたのが原因だったらしい

しまった。まぁ、Genius のお兄ちゃんと二人ですったもんだしてこれなので、

  人って馬鹿だよな

とうわけなんですが、mio と mineo はやめて。いや、mio で検索したはずなんだけどな〜

「ま、動いて良かった」いろいろすみません。

4/30までいるので、もう一度投げられるかどうかは5分5分だな。まぁ、あまり挑発しないように心がけます。

Sunday 26 August 2018

いつもの習志野

母の妹の入っている施設ですね。車で連れていってもらいました。この暑さだったので助かりました。

前回、訪問した時よりは、こちらを認識してくれたみたい。でも、急速に衰えたな。もう、あまり歩くこともないみたい。車椅子でした。

でも、それでも4人姉妹だから、会いに行くのが大切だと思います。たとえ、向こうがもうわからなくなってしまっても。

一つは、その方が介護してくれる人たちに報いることになると思う。一つは自己満足だろうな。成美おばさんにはいろいろお世話になったし。

顔を見せるとちょっと涙ぐんでました。少し言葉も出ました。「おかしくない」だったかな? うまく言葉がでないのがまどろっこしいのかも。おしゃべりな人だっただけに。

Saturday 25 August 2018

オートマトンの続き

subset construction かなりはまっていて、木で明示的に状態を記録していく方法で、一応、書けたんですが

  まったく動く気がせず

で、すべての状態の組合せに対して次の状態の組合せを生成する関数を作れば良いんじゃないか? と思いついていて、それで書き直したら朝飯前に終わりました。

状態の組合せって、状態の集合Qからtrue/falseへの写像だから、

   Q → Bool

これでいいわけね。NFAは、

  record NAutomaton ( Q : Set ) ( Σ : Set )
      : Set where
    field
       nδ : Q → Σ → List Q
       sid : Q → ℕ
       nstart : Q
       nend : Q → Bool

なので、生成するDFAの状態遷移は

   (Q → Bool) → Σ → (Q → Bool)

こんな感じ。なので、

  δconv : { Q : Set } { Σ : Set } { n : ℕ } → FiniteSet Q n → 
    ( nδ : Q → Σ → List Q ) → (Q → Bool) → Σ → (Q → Bool)

を書けば良いというわけ。Q は有限だから ℕ に対応するというのを使って、

  exists N ( λ r → list2sbst N (nδ r i) q )

なんか一行で書けるのか。

なんとなく実装よりに木とかリストとか使ってしまうけど、関数で書いていく方が Agda 向きならしい。

まだ、いろいろやることありますが、だいたいこの方向でいけそう。そろそろシラバス書かないとな。

regex からの変換も書き終わった。 あとは、

  regex の拡張とバックトラック
  ω automaton ( 停止しないオートマトン)
  CTL (computation tree logic) を使ったモデル検査
  characteristic function
  push/down
  2 stack automaton ( = turing machine)
  turing machine の停止性
  P と NP

ぐらいまでやる予定です。

Friday 24 August 2018

巨神計画

なんと下巻を沖縄に忘れてしまって送ってもらったり。

巨大ロボット発掘ものです。いや、イデオンくさい。そういう話です。三部作の第一部らしく、

  まったく完結しません

イデオンだと一話までしか行ってないくらいか?

全編、インタビュー形式でしかも、

  回答者が真面目に回答しない

ので、まぁ、読みづらいですよ。水増しともいうのではないか? 既に二部は出てるみたいなので英語で読むか? 巨神計画

Thursday 23 August 2018

洗濯

実家の洗濯は

  乾燥機なしの洗濯機

まぁ、でも脱水まではやってくれるので。Ingress だと一日二回着替えたりするからな〜

ヘルパーさんも洗濯してくれるので、まぁ、特に問題なく。

二階への階段の途中に干されているので、二階から干すのが楽。部屋干しなのは良いですね。

外に出て干すだけでも暑いし。

Wednesday 22 August 2018

21日の飲み会

米国帰りのうちの学科のOGとかが参加してくれたりして楽しかったです。飲みっぷりが変わってない...

今回はそこここで獺祭島耕作を見るなぁ。ピンチをチャンスに変える的なところが素晴らしい。

新橋 正味亭尾和 でしたが「料理がおまかせ」で、最後に「カレー食べます?」みたいな。そういう面倒くさくないの超素晴らしいです。

28日も飲み会する予定なので、可能な人は教えてくれれば invite します。場所まだ決めてないけど。

https://www.facebook.com/shomitei/

Tuesday 21 August 2018

未来のミライ

学生にも何人かミライちゃんがいたような。ちょっと涙と感動はもういいよって気分だし、ポスターの絵はあんまりな二匹目のドジョウ狙いだしで、あんまり気がすすまなかったんですが、

  ジルバップ見れるぞ

みたいなレスをもらったので。いや別にバブルラジカセ興味ないし。

でも予想よりは面白かった。自分も妹一人ですが、年子なので、赤ん坊の頃はそんなに憶えてないですが、まぁ、あんなものでした。人よりは子供頃のことを憶えいる方です。

父のバイクの後ろに「捕まってろ」で乗せてもらったことがある。母は激怒していたらしいけど。何にも見えませんでしたが。

特に子供に思い入れないのは、子供の頃の記憶のせいもあるな。子供の頃が楽しいとかは後から作られた記憶でしょ?

箱根の道の途中の側溝で遊んだ記憶がある。何にもないけど、楽しかったことは憶えてるな。写真とかで強化された記憶とかもあると思う。

今の子供は、自分の子供の頃の動画とかがたくさんあるから、子供の頃のことを良く憶えているようになるのかな。

Monday 20 August 2018

forth

sbc09 に付いていたので。stack base の言語で、PostScript の先祖です。Moore が作ったもの。Stack base ってのは Java のbyte codeも同じ。Javaの先祖でもあるな。

compiler 込みな言語かつ、自身の書き換えが可能な「最初の reflective な言語」です。実装もcompact。天文所とかでマイクロコンピュータでの望遠鏡制御とかに使われていたらしい。

  1 1 + .

が「1と1を足して表示する」。日本語と同じってわけですね。1 1 で二つ1をstackにpushして、+ でstack top に2が入り、それを . で表示します。Java のbyte codeもこんな感じ。

:でプログラムに名前を付けて、それが辞書に登録されます。この辺はPostScriptがそのままパクった。

おそるべきことにアセンブラのソースコードそのものもforthとして記述できる。

  CODE KEY ( --- c)
   JSR 0
   CLRA
   STD ,--S
   NEXT
  END-CODE

とかが書いてあって、これをそのままforthのcross assembblerがバイナリに変更して、forth interpreterそのものを作るってわけ。

ところが、出力コードは

  JMP [,Y++]

とかの塊なので、os9用にPICにするのは不可能。なので、前田さんが言ってたように level 2 で64k 確保して動かす方式を使ってみました。

sbc09 のIO routineって、address 0 からなのな。その辺を設定して S rec format の forth kernel をloadする感じ。

実際に実行してみると、ほとんどは stack のお手玉をやってる感じでくそ遅そう。JIT compiler でもあれば。もちろん、8bit CPUでは無理ですが。

  x=0f9d y=8000 u=1d55 s=7bfc a=1c b=1b cc=80 dp=00 pc=155C: BD 04 0C    JSR     $040C
  x=0f9d y=8000 u=1d55 s=7bfa a=1c b=1b cc=80 dp=00 pc=040C: EF A3     STU     ,--Y
  x=0f9d y=7ffe u=1d55 s=7bfa a=1c b=1b cc=80 dp=00 pc=040E: EE E1     LDU     ,S++
  x=0f9d y=7ffe u=155f s=7bfc a=1c b=1b cc=80 dp=00 pc=0410: 37 80     PULU    PC
  x=0f9d y=7ffe u=1561 s=7bfc a=1c b=1b cc=80 dp=00 pc=14D6: BD 04 0A    JSR     $040A
  x=0f9d y=7ffe u=1561 s=7bfa a=1c b=1b cc=80 dp=00 pc=040A: 37 80     PULU    PC
  x=0f9d y=7ffe u=1563 s=7bfa a=1c b=1b cc=80 dp=00 pc=07D1: EC F4     LDD     [,S]
  x=0f9d y=7ffe u=1563 s=7bfa a=1d b=55 cc=80 dp=00 pc=07D3: ED E4     STD     ,S
  x=0f9d y=7ffe u=1563 s=7bfa a=1d b=55 cc=80 dp=00 pc=07D5: 37 80     PULU    PC
  x=0f9d y=7ffe u=1565 s=7bfa a=1d b=55 cc=80 dp=00 pc=0523: EC E1     LDD     ,S++
  x=0f9d y=7ffe u=1565 s=7bfc a=1d b=55 cc=80 dp=00 pc=0525: ED A3     STD     ,--Y
  x=0f9d y=7ffc u=1565 s=7bfc a=1d b=55 cc=80 dp=00 pc=0527: 37 80     PULU    PC
  x=0f9d y=7ffc u=1567 s=7bfc a=1d b=55 cc=80 dp=00 pc=054E: 1F 40     TFR     S,D
  x=0f9d y=7ffc u=1567 s=7bfc a=7b b=fc cc=80 dp=00 pc=0550: ED E3     STD     ,--S

入力行の処理の辺りで手間取りましたが、久しぶりにS record入力とかを書いたのが面白かった。

forthの実装は、もう少し調べてみるかな。

  OS9:sbc09 ../../../examples_forth/kernel09
  Welcome to Forth
  sbc09 ../../../examples_forth/kernel09
  Error -13 sbc09
  Welcome to Forth
  : OUTMATH      \ Output a mathematical calculation

    ." We will now calculate: (2 + 3) * 5" CR

    2 3 + 5 *

    ." This equals: " . CR ;
  OK
  OUTMATH
  We will now calculate: (2 + 3) * 5
  This equals: 25
  OK
  2 3 + 5 *
  OK
  .
  25 OK

Saturday 18 August 2018

お腹の調子

実家だとヘルパーさんがご飯作ってくれるんですが、これが微妙に危ない。僕はほか弁でも「他の人は全然平気なのに自分だけお腹壊す」人なので...

特に生野菜危ないんだよな。湯通しして欲しいとか思ったりしますが。キャベツの千切りとか危ないと思ったんだよな。というわけなので金曜日はお腹の調子が悪くて寒気があったので、少し熱があったかも。こういう時には、

  お風呂が意外に良い

そうなのか? まぁ、風呂入ってしばらく寝てたらだいぶ回復しました。お腹の調子が悪い時には、白湯とかで水分取って寝てるしかないんだよな。

起きたらヘルパーさんが帰ってしまっていて。夜はなんか飲みに来いと言われているのだが、母に「ご飯食べた? 」と聞くと「食べにいく? 」。おっと、ヘルパーさんには夜でけかますと言ったんだけどな。

でも、なんかお汁出てるし、なんか食べたんだろうなとは思ったんですが、仕方ないので一緒に近所の中華料理屋へ。どうせお腹の調子は悪いので、そんなに食べない。が

  ビールは頼みました

で、それから飲みに出たわけですが、帰る頃にはだいぶ良くなっていました。

  やっぱりアルコール消毒偉大だ

Thursday 16 August 2018

東京のIngress

隙間を塗って50位以内に入ったりしてました。お盆なので東京は空いてて良い感じ。事前に聞いたほどは暑くないし。

千川から水道橋までのミッションを見つけたので、それをやってみました。実家の前を通るので、そこで一時中断的な。

  小石川は緑

ってのを発見したので、たまに荒らしに行くことにしよう。実家の辺りは割と青いです。

Niantic はポケモンの方にサーバと人を割いてる感じかな。まあ、過疎ってもしつこくユーザが残るのがソシャゲだから。

ランニングで息が切れるのは嫌いなんだけど、歩くのは割と好きなので性に合ってるかも。

Wednesday 15 August 2018

Automaton

後期の授業用に、Automaton を Agda で書いてたりするんですが... まぁ、割と簡単に書けるんだけど、

  簡単なものはな

先に進んでいくと、どうしても複雑になってしまって。

  DFA
  NFA
  Regular Expression
  εNFA
  subset construction

で一通りなはずです。これだと、Agda でやるからわかりやすいってわけでもないな。まぁ、だいたいそんなものなんだけど。

εNFA は複数の状態を何もなくても渡り歩くε遷移ってのがあるんだけど、正規表現からAutomatonに変換するのにad-hocに使うものなのね。

前に書いた時には、もちろんε遷移とか使わないで書くのでそれが当然だと思っていたんですが、そうすると、かなり複雑になる。と言っても、倍は違わないんだが。

ε遷移は遷移する状態で閉包を作ってしまえば良くて、それは状態の集合なので、subset construction にはほとんど影響がないらしいです。

ただ、思ったより複雑なので、Regular Expressionが生成する文字列を変換したεNFAが受け付ける証明とかは結構でかそうだな。

  http://www.cr.ie.u-ryukyu.ac.jp/hg/Members/kono/Proof/automaton/

Tuesday 14 August 2018

人のネットワーク上の知識

人のネットワークの形により、全体の知識の共有の様子が変わると言う話。

  結合度の高い集団が頑固になる
  集団の中で何は多数かを見間違えることがある

とか面白いです。田舎に新参者が行った時とか、廻りの言ってることや多数意見が間違って見えるとか、そんな
体験がある人はなんとなくわかると思うけど。

こういうのを利用している人たちもいるのだろうし、なんとなく知っていて「みんながやってるから」みたいなのを信用してない人もいるのでしょうね。

実際の状況はもっと複雑でしょうけど。

https://ncase.me/crowds/ja.html

Monday 13 August 2018

QNAP disk 3

なんか、6月辺りからぴーぴー鳴くようになって。HDD側を入れ替えようとしたん3ですが....

  QNAPはUSB外付けは2TBまでしか認識しない

なんだそれ。まだ、そんな問題あるのか。おかげで、QNAPに閉じて中身を吸い出せない。仕方ないので、

  iMac側に 4TB HDDをつないで、そちらにコピー
  QNAP側のDisk 3を入れ替えて初期化
  iMac側から書き戻し

という手順で。で、発見したんですが、

  iMac 側は inode が大きくなっらしく、inode をほとんど消費しない

なので、書き戻しは倍くらい速い感じでした。QNAP外付けUSBに関してはググって格闘して敗れ去っている人がいるのは見つけました。

ところが、

  また、Disk 3 が外れてる

だって,コピーしたばっかりでしょ? というわけなので、QNAP側の筐体の不具合の可能性が高いかも。困ったものだな。

もっとも、こんなこともあろうかと、QNAPは別筐体を手に入れてコピーしたわけですけどね。2016からなので、ちょっと故障は早いか。まぁ、こんなものか。

詳細は沖縄に戻ってからかな。少し戻るのは遅くなりそうです。

Sunday 12 August 2018

カメラを止めるな

ロサ会館で観てきました。まさかの舞台挨拶があってうれしかったです。うわさを上回る面白さでした。

  ゾンビ映画嫌いなんだけど

高校時代に運動会の記録映画を撮ったのを思い出す感じ。旬のうちに観に行くものでしょう。もう一回観に行かないとな。

しばらく東京ですがおとなしくしているはずです。それほど暑くない感じ。

Thursday 9 August 2018

ガンプラ

研究室のM2がガンプラおたく(といっても彼はいろんなもののおたくなんだけど)なので、

  デンドロビウム作ろうぜ

という話をしていたんですが、今日は買いに行ってみました。が、

  普天間の島模型
  浦添のYAMADA電気
  漫画倉庫

と探したが見つからず。ここはAmazonしかないかな〜

東京から持って帰れる大きさではないんだよな〜

Wednesday 8 August 2018

Position Independent Code

技術的にはまだ生きていて、macOS はPICが採用されてます。PICの方が10%-20%遅いとか言われた時期もあるのだが、どうなのかな。macOSだと、

  関数の先頭でPIC用のアドレスをPCから取得するコード(x86はPC offsetできない)
  リンクするshared libraryをlinkするためのstab

みたいなのが入っていて結構重い印象。64bit時代なんだから、もっとましな技術ないのかな。Linuxの絶対番地なリンクもクソではあるんだが。

MC6809とOS9は同時に開発されたのでPIC関係の連携は素晴らしい。

  1byte addressなDP(direct page)がDP registerで移動可能
  定数はPC相対で取れる
  大域変数はU registerで要求した分用意される(DPと同じ)

となっているので、

  STA <$20

みたいなコードがそのままでPICになります。なので、

  LDB $FF80
  LDX #$FF09

みたいな絶対アドレス参照なものは、

  LDB <$80
  LEAX 9,U

とかで置き換えれば良いだけ。むしろコードは小さくなるので速度的なペナルティもない。

つまり、MC6809でPICでないのは「MC6800/8080からの移植でさぼっている」だけってことね。GAME09もbuffer関係の数ヶ所だった。
buffer end の一つあとみたいなのが入っていたので、それを考えるのがめんどくさかったのだろうな。

  CMPX #buffer-1

みたいなコードだと CMPX Y とかないので面倒。いやだから、

  LEAX buffer-1,U
STX <buff_1

とかしておけば、

  CMPX <buf_1

とできる。でも、あの頃はメモリの1 byteは血の一滴だったからな。DP領域256byteしかないし。その辺を嫌がったのかも。

UをUser stackに使うとかするからいけなくて、Uを大域変数用に使えば楽勝だったはずです。(が、LISP09は、それだとレジスタが足りなくなるのかも)

と言いながら、os9 自体のoverheadが結構大きくて、8/16bitな real-time OSでは遅い方らしいです。

Tuesday 7 August 2018

GAME09

発掘してきた GAME09 はだいたい動きました。そのまま動かすのは簡単なんだけど、

  os9上で動かすでしょ?

なのだが、relocatable でないところがある。input line buffer とか stack / user stack の位置とか。

disassemblerがROLをRORと出したり、jump tableの計算を間違えてたりとか、細かい問題があって少し時間がかかりました。

GAME09はVTLの焼き直しなわけですが、
https://www.mztn.org/rvtl/rvtl.html

  実行中の行番号が仮想レジスタ中にある

そもそも、A-Zの一文字の変数がメモリアドレスに決め打ち、つまり、26個のレジスタがあるような感じ。

disassemble sourceなので変数マップが良くわからなくて,その辺で少し苦労したようです。

あとはソースのload/save機構を付ければ良いだけだ。まぁ、でもやるとしてもゆっくりで。

% src/v09c -rom src/os9/os9v2.rom -v src/os9/level2
NitrOS-9/6809 Level 2 V1.0.1
Unknown Machine
(C) 2014 The NitrOS-9 Project

http://www.nitros9.org
Shell

OS9:/v0/game09

*READY
:1000 "ADDRESS=" A=? A=A,A+$40
:1010 ??=A C=0,7 " " ?$=A:C) @=C+1
:1020 / @=A+8
:1030 #=1
:

*READY
:#=1
ADDRESS=:$800
0800 00 00 00 00 00 00 00 00
0808 00 00 00 00 00 00 00 00
0810 00 00 00 00 00 00 00 00
0818 00 00 00 00 00 00 00 00
0820 00 00 00 00 00 00 00 00
0828 00 00 00 00 00 00 00 00
0830 00 00 00 00 00 00 00 00
0838 00 00 00 00 00 00 00 00
0840 00 00 00 00 00 00 00 00
ADDRESS=:$600
0600 0A 25 03 C1 10 39 1C FE
0608 39 17 FD C1 C6 3A 17 00
0610 69 9E 9C 0D 8C 26 0F DC
0618 88 10 2B FA 35 17 FE 59
0620 C6 20 E7 1F 8D 54 8D 55
0628 C1 08 27 38 C1 0D 25 F6
0630 27 12 C1 18 27 D3 E7 80
0638 9C A2 26 EA 30 1F C6 08
0640 8D 38 20 E2 0D 8C 26 0F
ADDRESS=:

?6 1000 "ADDRESS=" A=? A=A,A+$40
*READY
:\SY

OS9:

Sunday 5 August 2018

GAME09

といわけなので、発掘したGAME09のbinaryをdisasmして、os9 のmoduleに。

と思ったら、若干、relocatable でないところがあるのか。そういえば、そんなようなことがあったような。てーげーに直して...

http://www.nitros9.org
Shell
OS9:/v0/game09
*READY
:10 "test"

prompt まではでたが、ちゃんとは動かないな。

ちなみに、GAMEを動かしたいだけなら、

https://www.mztn.org/rvtl/rvtl32.html

ってのがあるようですね。

Saturday 4 August 2018

発掘できたもの

Flex9 は全滅だったんですが、

  DOSを使えるようになる前にTrack/Sectorをひかえて使ってたやつ
  FM8のOS9をコピったやつ

は読めました。Microware OS9のoriginalは読めず。

でも、結構変で、256byteのうち半分は重複。しかし、25sector目だけは重複しないと言う妙な読み方に。Perlで適当に治しましたが。

で、

  当時のROM image (GAME09と自前のドライバ群、Ralph09 monitor)
  GAMEで書いたassembler/disassembler
  GAMEソース形式の拡張部分のasmソース
  Flex09のbootとdriver
  細かいGAME09のutility
  FM8なOS9 lv1のsystem disk

辺りが取れたみたい。

Flex09のが9読めればROM imageのソースとかAssist09のソースが手に入るのだが、まぁ、仕方ないかな。

これで当時の環境をOS9上に再現するとかできるはずだけど... ま、あまり意味はないけど。

Friday 3 August 2018

floppy 読めた

なんのことはなく、

  8inch FDのdrive 2を使ったらdski$で読めました

どうもdrive 1ではだめらしい。壊してしまったかも。

dski$は片面だと3引数で、sector は1からで、cylinderは0かららしいです。

転送するのに一枚40分みたい。9600 baudでhexdumpだからな〜

Wednesday 1 August 2018

N88 Basic 続き

結論的にいうと敗れ去りました。

Keyspan と特製ケーブルでN88 Basicに繋げて、

  N88側では、
    run "menu" からメモリスイッチで232Cを9600に設定
    load "com:n81ns"
  macOS 側では
    nkf -c diskbios.bas| jerm -b 9600 -f none /dev/cu.KeySerial1

で、以下のプログラムをloadして実行。で、8inch floppyにアクセスして、field に読み込むまではできました。

が、値はすべてゼロ。どうも、1Sを読む方法はないみたいだな。FDC叩けばいくかも知れんが、そうなると結構めんどうな。

いや、これでも十分面倒だったし〜 (最後の999は、loadをfailさせて終了させるため)


10 '
20 ' call disk bois
30 clear ,&H7D00
40 def seg=&H7D00
50 diskbios=0
55 max=&h0
60 '
70 for adr=max to max+&h4a
80 read byte : poke adr,byte
90 next adr
100'
110'
120'
125 open "test.dat" as #1
130 field #1, 255 as d$,1 as e$
140 '; call $buf,length,mode,selen+cyl,head+sec
150 dv%=2
160 cl%=0
170 h%=0
180 s%=0
190 ax%=&H3610+dv% : ' mode
200 bx%=128 : ' length
210 cx%=0*256+cl%
220 dx%=h%*256+s%
230 call diskbios(dx%,cx%,bx%,ax%,d$)
240 print "return=",hex$(ax%)
245 ot$=""
250 for i=1 to len(d$)
260 ot$=ot$+hex$(asc(mid$(d$,i,1)))+" "
270 if (i mod 16=0) then print ot$ : ot$ = ""
290 next i
295 print ot$
300'
310 data &H8B,&H77,&H12 :' mov si, [bx+18]
320 data &H8E,&HC6 :' mov es, si
330 data &H8B,&H77,&H10 :' mov si, [bx+16]
340 data &H26,&H8B,&H14 :' mov dx, [es:si] ; head + sector
350 data &H8B,&H77,&H0E :' mov si, [bx+14]
360 data &H8E,&HC6 :' mov es, si
370 data &H8B,&H77,&H0C :' mov si, [bx+12]
380 data &H26,&H8B,&H0C :' mov cx, [es:si] ; sector len + cynlinder
390 data &H8B,&H77,&H06 :' mov si, [bx+6] ; ax
400 data &H8E,&HC6 :' mov es, si
410 data &H8B,&H77,&H04 :' mov si, [bx+4]
420 data &H26,&H8B,&H04 :' mov ax, [es:si] ; mode
430 data &H56 :' push si
440 data &H06 :' push es
450 data &H8B,&H77,&H02 :' mov si, [bx+2]
460 data &H8E,&HC6 :' mov es, si
470 data &H8B,&H37 :' mov si, [bx]
480 data &H26,&H8B,&H2C :' mov bp, [es:si] ; pointer to strincg descriptor
490 data &H8B,&H6E,&H02 :' mov bp, [bp+2] ; string offset
500 data &H8B,&H77,&H0A :' mov si, [bx+10] ; bx
510 data &H8E,&HC6 :' mov es, si
520 data &H8B,&H77,&H08 :' mov si, [bx+8]
530 data &H26,&H8B,&H1C :' mov bx, [es:si] ; length
540 data &HBE,&H60,&H00 :' mov si, 60H ; defseg &60H
550 data &H8E,&HC6 :' mov es, si
560 data &HCD,&H1B :' int 1bh
570 data &H25,&HFF,&H00 :' and ax, 0FFH
580 data &H07 :' pop es
590 data &H5E :' pop si
600 data &H26,&H89,&H04 :' mov [es:si],ax ; result
610 data &HCF :' iret
999


http://island.geocities.jp/cklouch/column/pc98bas/bios/disk.htm

Tuesday 31 July 2018

前期の授業は終了

研究室のクーラーも治りました

隙間ケーブルも配線しました

ついでにウルトラマンタイマーのブザーの磁石が外れていたのも治しました (この間、落とした)

まだ少し仕事はあるが、8/10 ぐらいから二週間は東京にいるようです

その後は、OSの補講かなんかをやってるかも知れません

いや、なんか暑いです

Monday 30 July 2018

Floppy disk のsalvage

なんか、昔作った汎用の232C cable を研究室で発掘したので、

  PC9801 で昔の8inch floppy 読んでみるか!

ってことで立ち上げたんですが...

  MSDOS 3.3 が立ち上がる

そういえば、ROM baseな MSDOSが付いてる時代だったっけ。

でも、それではそんなにできることはないので、N88 Basic な5inch floppyがあるので、そっちから。ネット上のリファレンスを見ると、

  D$=DSKI$(3,1,1,1)

う、懐い。なのだが、

  アクセスはするが読めません〜

その辺にあった2DDな8inchだと読める。128byte/sectorな1Sは読めんのか。そうか。さらにググってみると、

  読めない時には、disk bios を使う

え、8086のアセンブラってこと? いや、まぁ、書きまくっていた時期はありましたけど。Basic からpokeは嫌だな。

そういえば、MSDOSのdebugからアセンブルできるんじゃなかったっけ!? と思いましたが、

  ROMなMSDOSにはdebug commandはありませんでした

くそ〜 まぁ、でも大したものではなく、int 1bh を読み出せば良いだけらしいです。それを読み出す basic のusr関数を書けば良いだけだな。おそらく20byteくらい。間違えると basic が飛びますが。

http://island.geocities.jp/cklouch/column/pc98bas/bios/disk.htm

まぁ、続きをやるかどうかは謎だな。

Sunday 29 July 2018

今の季節のingress

昼間は暑いから夕方からと考えたんですが、

  日差しはましだが、汗はかく

まあ、そうだよなぁ。スーツで廻るってのもやってはしまうんですが、どろどろになっちゃうのがな。一度戻ってシャワー浴びてから大学ってのが良さそう。そうしろよ。

この前買ったバッテリーは予想通りケーブルが逝かれました。まぁ、そんなもんだよなぁ。

取りあえず、予定通り、普天間の反対側のキーは取れたのでいいか。

Saturday 28 July 2018

Ingress 札幌 Anomaly

まあ、いかなかったんですけどね。琉大でリチャージ会があるので、そちらに参加しました。

戦況に貢献できたとは思えないですが、100万ぐらいはリチャージしました。あまりLPC貯めれなかったので、だいぶめんぐんでもらいました。ありがとうございました。

だいたい、いつもの通りだったのですが、負けは構造的な問題だとも思うのでしかたないかなぁ。青の参加者が劇的に増えるとかでもあれば。

Friday 27 July 2018

シス管打ち上げ

まだ、試験期間中なんだけどいいのか?

学科Webは妙にactiveな1年次のおかげで更新されたんですが、いろいろ問題が。特に、

  英語のページどうした

なんか、クリスティーナとかと一緒に頑張ってた時期から後、放置だったらしく...

まぁ、なんとかしまししょう。

Thursday 26 July 2018

ハッカソン〜

一回だけ参加したことあります。このscript がその結果だな。mh から command line でfacebook に投稿すると言う

  自分に取ってはすっばらしく便利なツール

です。そういえば、この前、動かなくなった時には助けてくれてありがとうございました。Token の有効期限とかなかなか見えなくて。

まぁ、でも、

  基本、もくもくとプログラミングする

イベントなわけですよ。差し入れとかあったりしますが。

自分的には「ねぇ、ねぇ、どんな調子?」みたいに聞いて廻るのも好きなんですが、なかなかね〜

と、いいながら、今月のos9 level 2も、ハッカソンみたいなものだったよな。

学生と一緒にやる時には65inch displayを使ってますが、最近、目の調子がそんなに良いわけじゃないからなぁ。その65inch TVも

  なんか、一本黒い縦線が...

えぇ。まぁ、実害ないから当分我慢するか。

Wednesday 25 July 2018

50's cafe

なんか嘉数に open してました。11時から21時まで開いてるらしいです。(その場所、微妙なんだけど。割とだめなお店が続いたので...)

いまどき、50's ですかぁ? ってことはターゲットは70代? アメリカ人の50'sへのあこがれに共感できていたものって、Back to the future とか? エルビスとか好きな世代がいるのは確かだけど。

もちろん,僕も1950は知らない。いや、ぎりぎり生まれてはいたんだけど。でも日本の50/60年代って豊かな時代ってのとは違うからなぁ。貧乏で煙草臭い時代ね。

日本のバブルって80年代後半だったので、その辺とかが面白いんじゃないかとも思いますが...

まぁ、そのうち入ってみよう。

Monday 23 July 2018

隙間を通す奴

結局、スカパーが逝かれたのは、サッシの隙間を通すアンテナケーブルアダプタみたいな奴だったんですが、

  台風があるから、やっぱり、あった方が良い

ということで、 ベスト電気に。でも、

  4千円?

ちょっと高くない? Amazon で探すと2千円らしい。送料考えると同じようなものか。いや、そういう値段設定なのかな。

数年すると、また壊れるでしょうけど。

Sunday 22 July 2018

OS9 level 2 vrbf 完了

os9 側から Unix file system を直接見れる仮想RBFを書いたので、これで os9 disk image 抜きで上げられるように。ついでに dir -e も。

RBFにはdir -e用のundocumented system call (FDINF)てのがあって、それでfile descriptor(Unixのとは関係ない os9 のファイルの情報を格納するセクタ)にアクセスしてきます。なので、そのセクタを stat とかから作ってやれば良い。なのだが、LSN(logical sector number)でアクセスされる。さらに、os9 はcurrent directory (work/execの二つ)をLSNで管理してる。つまり、

  directoryのLSN(24bit)を仮想RBF側で覚えておいてやらないとだめ

inode番号使えば良いのだが、最近のinode番号って無駄に長いのね。でも下位3byteで良いらしい。ちゃんと管理するとあれなんだけど、でも、shell とか dir commadが動いている間だけつじつまが合えば良いと考えて、FIFOな辞書でいいや的な感じですませました。 まぁ、だめな方法なんだけど。

これで、level2 のcommandも一通り動かせました。mfree が変だったけど。Coco は512kbyte memoryかと思っていたんだが、実は2MBあるらしく、そこをなんとかするべきらしい。まあ、別にいいかな。

最後は、clock moduleをdebugして、ちゃんと時刻が表示できたり、時分割で並列実行できたりするのを確認しました。無駄にloopするコマンド作って裏で動かしました。

Sysgo から os9 F$STime すると clock module がリンクされるので、そこで timer start してやれば良いらしい。タイマー割り込み IRQ/FIRQからは自分のos9 system mode で動かすルーチンを登録、ルーチン側では最後に os9 の time slice routine である D.Clock を呼び出してやる方式。

  L00AE  leax ClockIRQ1,pcr
       stx  <D.SvcIRQ
       jmp  [D.XIRQ]  Chain through Kernel to continue IRQ handling
  ClockIRQ1
       jmp  [>D.Clock]

この方法だと、割り込み内で処理するものは少なくてすむわけね。これを発見するのには少し時間がかかったが...

これでだいたい終了かな。実機持っていた81年ぐらいにやるべきだったとは思うけど、あの頃は他にやることたくさんあったからなぁ。(いまでもそうですが..)

  OS9:loop & loop & loop & loop & loop &
  &003
  &004
  &005
  &006
  &007

  OS9:proc

   ID Prnt User Pty Age Tsk Status Signal  Module  I/O Paths
  ___ ____ ____ ___ ___ ___ _______ __ __ _________ __________________
   1  0  0 255 255  00 s    0 00 System  <TERM >TERM >>TERM
   2  1  0 128 134  00 s    0 00 Shell   <TERM >TERM >>TERM
   3  2  0 128 132  02      0 00 Loop   <TERM >TERM >>TERM
   4  2  0 128 131  03      0 00 Loop   <TERM >TERM >>TERM
   5  2  0 128 130  04      0 00 Loop   <TERM >TERM >>TERM
   6  2  0 128 129  05      0 00 Loop   <TERM >TERM >>TERM
   7  2  0 128 128  06      0 00 Loop   <TERM >TERM >>TERM
   8  2  0 128 133  07 s    0 00 Proc   <TERM >TERM >>TERM

  OS9:proc

   ID Prnt User Pty Age Tsk Status Signal  Module  I/O Paths
  ___ ____ ____ ___ ___ ___ _______ __ __ _________ __________________
   1  0  0 255 255  00 s    0 00 System  <TERM >TERM >>TERM
   2  1  0 128 134  00 s    0 00 Shell   <TERM >TERM >>TERM
   3  2  0 128 132  02      0 00 Loop   <TERM >TERM >>TERM
   4  2  0 128 131  03      0 00 Loop   <TERM >TERM >>TERM
   5  2  0 128 130  04      0 00 Loop   <TERM >TERM >>TERM
   6  2  0 128 129  05      0 00 Loop   <TERM >TERM >>TERM
   7  2  0 128 128  06      0 00 Loop   <TERM >TERM >>TERM
   8  2  0 128 133  07 s    0 00 Proc   <TERM >TERM >>TERM

  OS9:proc

   ID Prnt User Pty Age Tsk Status Signal  Module  I/O Paths
  ___ ____ ____ ___ ___ ___ _______ __ __ _________ __________________
   1  0  0 255 255  00 s    0 00 System  <TERM >TERM >>TERM
   2  1  0 128 128  00 s    0 00 Shell   <TERM >TERM >>TERM
   8  2  0 128 128  02 s    0 00 Proc   <TERM >TERM >>TERM

Saturday 21 July 2018

台風〜

直撃でしたが、全然たいしたことありませんでした。

学生部屋の冷房修理の日だったけど、来てくれたのかな。いや、この台風で4Fのビルのベランダの作業はいやだが。

とか言ってたら、家のネットが繋がらない。

  モデムのランプが全滅

何もしてないのに〜 *何もしてないのに*〜 いきなり〜

で、台風の中、沖縄ケーブルのサービスの人を読んだのですが...

  ACアダプタが逝ってます

だったようです。まぁ、家の中をあら探しすれば替わりのACアダプタぐらいあったような気もするが、ここはサービスに頼むところでしょう。

os9 level2 も仮想RBF、だいたい動きました。あと残ってるのは clock ぐらいか。

Thursday 19 July 2018

Software Update

うっとうしい〜 ダウンロードして、設定して、その後で、

  切り替えますか?

と聞いてくるものなんじゃないのかなあ。昔と違って、ストレージ容量とかメモリ容量とかたくさんあるわけだし。

でも、OS Xでも、

  くそ遅くなった

と思ったら、

  mdほげが動作中

なんてのがあるからな〜 計算機、速くなったようで、ぜんぜん速くなってない。しかも、

  最近、PCは絶賛値上げ中

な感じだし。MBPとかiMac とか気軽に買えない感じ。昔が、バブルだっただけだけど。超円高の頃のMBP安い〜って感じはもうないなぁ。

Wednesday 18 July 2018

スカパー修理完了

歳食って早く起きるようになったので... 「朝の涼しいうちに治そう」って、沖縄は朝も大して涼しくはないんですけどね。日差しが楽。

なんだが、ぜんぜん、動かない。なんか、ちらっと入ることがある。線外した時のような気がする。が、お休みにして夕方から再開。真っ昼間にやると日差しが危ない。結局、

  サッシからの引込線がやられてるらしい

そこかぁ。外して調整するとピクと来た〜 ここまで来れば。で、引込線を繋げてみるとやっぱりダメ。そこだったらしいです。一度、ダメになるとBDレコーダ側で再設定する必要があるらしい。

終わりと思ったら、JCSAT4は良いんだが、JSSAT3 が入らない。くそ〜 もうネジ締めちゃったのに。でも、仕方ないので再調整。結果的には前よりもアンテナレベルはあがったので'良しと言うことで。

お椀の方にもヒビが入っていたので交換時だったと思います。設置説明書には「テープまくな」とある。まぁ、シロートだからな〜

Skypeでテレビの画面を写して屋上でiPhoneで見る方式ですが、最近のSkypeは自動着信あるのね。昔の自動着信AppleScriptは動かなくなってました。2012の時には無線だとだめで携帯回線でやった記憶がありますが、無線も11nになって少しは入るようになったみたい。明かり窓のところからWifiの電波が屋上に漏れてるみたいだな。

Tuesday 17 July 2018

OS9 level 2

os9 のコードは教育用に公開されているらしいんですが、それを修正している人たちがいるらしく...

   http://hg.code.sf.net/p/nitros9/code

それはアセンブラソースなので、7/12に動いていやつを、それに合わせて動かそうと思うわけですが、

  sbc09 (https://github.com/6809/sbc09) のA09の機能が全然足りない

という問題があって。まぁ、これよりまともな6809用のアセンブラはいくらでもあったんですが、こいつは琉大のコンパイラの授業で最初に使ったりしたので。

ところが、A09のできが悪いのと、自分が適当に入れた機能拡張がバグりまくったので、結構、苦労しました。が、まぁ、なんとか動きました。

  https://github.com/shinji-kono/sbc09.git の os9lv2 branch

に置きました。

level1 は boot で要求した領域にあるmoduleは落とさないようになっているんですが、ROMに割り当ててbootでは適当にサイズ0を返したら、ROM上のmoduleをunlikするという技を出されて動かなかったみたい。boot を呼び出さなければそういうことは起きない。ChgDir するとDisk driverがunlinkされるとか謎な状況が面白かったです。

level2 の方は「アセンブラのラベルが一つだけ狂う」とかのバグが面白すぎた。mac OS の lldb のwatch pointが壊れているせいで sudo gdb の方を使って直しました。label の構造体をpointerで指していたらコピーベースのinsert sortで実装されていて指した先がずれると言うもの。hash で書けよと思うが、自分もhashを知ったのは大学4年だったり。

Tandy/RadioShack のEmulator だとMAMEがあるらしいんですが、どうもMMUに対応してないっぽい。

学生部屋のクーラーは今週末に治るらしいので、それまで、もう少しいじろうかと思ってます。

Monday 16 July 2018

1日休み

オープンキャンパスも終わったので、日曜日はお休みしてました。って、それが普通か。

いや、まだ、OS9 と格闘してたんだけど。主にダメなアセンブラをダメに修正したツケを払ってます。あと、もう少しかな。

Friday 13 July 2018

明日はオープンキャンパス

まぁ、例年のことなので。来る学生も、

  「先生が行けといったので」

的なところがあり、いる学生に聞いても、

  「自分はいきませんでした」

とかなので、まぁ、そんなようなイベントらしいです。それよりも、

  学科のWebがちゃんとしているかどうか

の方が大きい気もする。

まぁ、学生たちが大学生活を楽しんでいる様子が伝わればいいかな。

Thursday 12 July 2018

os9 level 2 done!

なんか、月曜日に Shell prompt 見たので「楽勝!」と思ったんですが、その後、

  何にも動かない状態に...

アセンブラの処理のまずさとかいろいろ直すんだが、どうにもこうにも動かない。まぁ、

  OSの最初からトレースしてチェックしていく

しかないんですけどね。まぁ、それが勉強になるので酔いんですけど。

  0. osp1 の起動、vector の設定
  1. RAMのチェック
  2. 直後にあるとされるROM上の os9 module の登録(F$Modul)
  3. boot module の実行
  4. os9p2,p3,p4 の実行
  5. SysGo の fork (Unixのinit相当、init module はメモリ構成用)
  6. F$NProc (exit に相当するのかな?) で、Sysgoに移行
  7. Sysgo が /Term と /D0 を開けて
  8. Shell を fork

という手順らしいです。

5 の fork はユーザモードで実行されるのだが、そこででたらめなアドレスに戻ってしまう。で、わかったのだが、

  0xa000-0xcffff までを一時的にMMUでpage切り替えして stack のcopyとかをやってる
  が、そこに、まさに今動いているTaskのsystem call stack がある

だめじゃん。で、しばらく寝てたらわかったんですが、

  そこは、どうも、Boot 時にmoduleをloadしているべきところらしい

つまり、控え目にBoot時のメモリを要求したのが間違いだったらしい。でも、

  0xa000を越えて要求すると死ぬ

つまり、boot module の大きさが4kとはっきり決まっているらしいです。そういうコードがos9p1にハードコードされてる。つまり、

月曜日に「Boot時のメモリを要求を2kbyteにけちった」から、まったく動かなくなったということだったらしいです。あっそ。そこに気づいたら、即座に動きました。

ディスクが読めないこと自体は、バッファをMMUで変換するのを忘れたからでした。これは、本来なら月曜日に動いているべきものだったな。

まぁ、そんなもの。

    https://github.com/shinji-kono/sbc09/tree/os9lv2

まだ、clock 接続してないけど、もういいかな。

  % sh run29.sh
   OS-9 LEVEL TWO VR. 03.00.02
     COPYRIGHT 1988 BY
    MICROWARE SYSTEMS CORP.
    LICENSED TO TANDY CORP.
    ALL RIGHTS RESERVED.


  Shell

  OS9:/d1/cmds/basic09

        BASIC09
  COPYRIGHT 1980 BY MOTOROLA INC.
   AND MICROWARE SYSTEMS CORP.
    REPRODUCED UNDER LICENSE
     TO DRAGON DATA LTD.
    ALL RIGHTS RESERVED.

  Basic09
  Ready
  B:

Wednesday 11 July 2018

OS9 level 2

まぁ、大方の予想通り、はまっております。

  たの〜し〜

アンテナは昼間の暑い時にやる気はしないが、酔っ払ってる時には危ないからなぁ。

Tuesday 10 July 2018

台風8号(まりあ)

暴風圏には入らなかったのでバスは運行中。ってことは授業もあるということで。

  結構、しっかりした台風でビル周辺だと風に向かって歩けないくらい

でした。局所的には風速20mは出ていたんじゃなかろうか。

アンテナは届いたので、また、あれをやらないといかん。もっとも、アンテナ不良と決まったわけでもないんですけどね。ケーブルな可能性もまだある。

Monday 9 July 2018

OS9 level 2, lldb, gdb

OS9 Level 2 はMMUの実装もできて、Shellが起動するところまではいきました。が、

D1C5: 0D 06     TST     <$06
D1C7: F6 0C 07    LDB     $0C07
D1CA: 0F 0E     CLR     <$0E
D1CC: 07 18     ASR     <$18
D1CE: 16 07 30    LBRA    $D901
v09>c
OS-9 LEVEL TWO VR. 03.00.02
   COPYRIGHT 1988 BY
  MICROWARE SYSTEMS CORP.
  LICENSED TO TANDY CORP.
  ALL RIGHTS RESERVED.


Shell

OS9:

しかし、Diskにアクセスできない

  OS9:dir /d0
  Error #221

ぶう。Disk driver の初期化に来てないから、なんかで蹴られているんだろうな。Level 1は動いているのでいけそうなものなんですが。

SBC09 ってのをEmulatorに使っているんですが、ちょっとダメだったかも。アセンブラもエミュレータもバグが多くて。まぁ、動いたから良いんだけど。

で、こいつは signalを使って traceに入れるんですが...

  lldb が signal を食ってしまう

そういうの制御するのがありそうなものなんだけど。外からシグナル送ると少しなんとかなるみたいだが、まぁ、だめぽ。

あと、lldb が core を読んでくれない。

    (lldb) target create --arch=mips32-pc-linux "app_mips.elf" --core "core_mips"

こんな感じで triple を指定してやると良いらしいが、

  the specified architecture 'x86_64-apple-darwin17.6.0' is not compatible with 'x86_64-apple-macosx'

つまり、lldb がサポートしてるのは、darwin17.6.0 で、吐かれた core の方はmacosxなのでだめらしい。ググった感じではだめっぽいです。

そんなこんなで、

  じゃぁ、gdb 使うか

となったんですが、例の

  SIPで、code sign がどうとか

で、csrutil disable とか、いろいろやったんですが、

  gdb 8.1 は、High Sierra ではバグで動かないから、8.0.1 を使え

で、しかも、code signしてもダメで、8.0.1 を

  sudo gdb

すると動くと言うことがわかりました。さすが、OS X 、SIP で超安全。

  root で gdb でデバッグ

とか、超安心で素晴らしいです。

OS9 level 2 の disk は RBF からオープンに来るらしいので、少し苦労しそうだな。見当付かない感じ。os9 I$Open から trace かな。Leve1 でも似たようなことはやったから。まぁ、なんとか。

Sunday 8 July 2018

カリフ

享年17才だそうです。数日前には食卓に飛びのって、塩ピーナッツのん瓶をひっくり返そうとかやってたんだけどな。

金曜日の朝に「今日は食欲ないみたい」とか言ってたら、夕方には、そのいつものカーテンの裏で冷たくなってました。17才だから、超おじいちゃんで、何が悪いとかってわけでもなく、全体的にやせてたからなぁ。糖尿病とか便秘とか肝臓とかいろいろあった割には、いじきたなさだけは最後までという感じでした。

紅茶の牛乳を狙って、目を離した隙に食卓に飛びのってミルクピッチャーに顔を突っ込むってのが得意技だったみたいです。

無駄に頭の良い猫で、キャットタワーから落ちた後はキャットタワーには登らなくなってたりとか。沖縄と東京も何回か往復したり。お医者さんにいくとまな板の鯉で、超おとなしく、看護婦さんには受けが良かったらしいです。

返ってくると出迎えて「早く、カリカリでないものを出せ」というそんな猫でした。長年ありがとう。

小太郎の方は順調にデブになってるみたいです。

Friday 6 July 2018

ハリーズ

久しぶりに学生たちと、ハリーズ。

Take out にする前は、だいたいお店で食べていたんですけどね。

今回は、どこからか指令が下ったらしく、学生たちと一緒に行くことに。

激辛が前よりも辛くなったと言う評判です。そうかな?

15年前に比べると、だいぶ値上げされた感じだけど、日本の飲食店は安すぎるので、これぐらいがちょうど良いと思います。

https://www.instagram.com/hallyscafe5232/

Thursday 5 July 2018

スカパーのアンテナがやられたみたい

自分で設置したから、接続のところとか手抜きだからな〜 ショートとか言ってるので、接続部だろうとは思うんですが。

また、台風が来るらしいので、なおすのは少しさぼろうかな。

Wednesday 4 July 2018

ハンソロ

奥様と別々に観てきました。

  面白い映画は一人で観る
  それほど面白くない映画は観ない

だっけか。

チューバッカ、いい奴だな〜 ヒロインも、ああいうの良いね。

マーベル観るのとあまり変わらない気もするけど、マーベルはもういいや感。

Tuesday 3 July 2018

MBP修理完了

どうせ、何もしてくれないだろうと思ってたら...

  交換しました

メッセージがついて戻ってきました。偉い! Applecare ギリギリだったので交換してくれたのはうれしいです。最近、Apple のサポートはがっかりなことが多かったのですが、これは素晴らしいです。症状確認しましたとあったが、再現しないと思っていたんだがな〜

システムもそのままだったので「本当に交換されたの?」的なことは妻に言われましたが、良く見ると液晶の端のゴムっぽい部分が新しいみたい。

まぁ、2011なMacBook Air でも十分便利と言うのも発見でしたけど。

Monday 2 July 2018

OS9の続き

MBPは即座に送り返されたようなので、やっぱり、なにもしてくれなかった感じ。まぁ、再現しない症状に何かする義理もないものな。

OS9は結局、disk driverまで書いてしまいました。残りはMMUとlevel 2だが、Tandy Cocoに合わせれば良いのだが、まぁ、別にいいかな。そのうち気が向けば。

HDD emulation 自体は簡単だけど、OS9側と辻褄合わせるのがな。久しぶりに6809書いたので、結構間違えた。

結局、自分で書いたドライバまでOS9 kernelをtraceする羽目になったので、だいぶ中が読めました。module link してメモリ用意して初期化ルーチン呼び出すだけだけど。moduleを認識させるのを乗り切れば。

結局、家から持ってきたFDとかROM dumpは使わずに動かしてしまった。そんなもの。

このdisk imageに落ちてるBasic09はなぜが動かない。メモリが足りないらしいです。

  % ./v09 -rom os9/os9d.rom -l 0xc000 -0 os9/disk1.dsk
   OS-9 LEVEL ONE  VERSION 1.2
  Shell

  OS9:dir /d0

   Directory of /d0 00:00:00
  OS9Boot      CMDS      SYS
  DEFS        startup     NITROS9

  OS9:/d0/cmds/basic09
  ERROR #207

  OS9:/d0/cmds/mfree

   Address pages
  --------- -----
   B00-5CFF  82
  B900-B9FF  1

  Total pages free = 83
  Graphics Memory Not Allocated

  OS9:/d0/cmds/free /d0

  "NitrOS-9/6309 Level 1" created on: 2018/04/07
  Capacity: 2,880 sectors (1-sector clusters)
  1,018 free sectors, largest block 1,018 sectors

Sunday 1 July 2018

OS9

ROMにmoduleそのまま載せて shell を起動して mdir するところまで動きました。あとやるとすると、

  Basic09 動かす
  Timer emulation を入れてconcurentに動かす
  Floppy Disk読んで仮想なドライバ書いて動かす
  MMUまで書いて level2 まで動かす

あたりでしょうけど、やらないかも知れないです。

  A09 に OS9 用のコマンドを入れた (mod/emod/ifp1/os9)
  mod はCRCを生成するように
  module をファイルにまとめて配置する makerom プログラム

まで書いて動かしたんですが、

  EmulatorのV09は有無を言わせずTimer割り込みする作り

実行途中でいきなり暴走してて何かと思ったよ。 で、まず、それを切ることから。でも、ぜんぜん動かないので、

  V09 に disassemble/trace/dump/break

などを結局全部実装してしまったので、80年代の自作PCのmonitorでプログラムしてる気分を満喫しました。

その辺に落ちてた os9 のmoduleを表示するプログラムが結構ひどくて、それで通った大丈夫ってのは全部間違いで、OS9 側で蹴られてた。if (crc[0]=crc1) とか書いてあって、0でなければok表示するとかひどすぎる...

OS9 のアセンブラのmod は、ORGを強制的に0に設定するってのを見落としてて driver entry へのオフセットがずれていたってのが、最後のバグだったかな。

OS9のkernelでは hash とか使わずに固定なmodule テーブルを頭から全部コードが。マイコン時代はそれが合理的だったんだよな。

CRC生成自体はOS9 kernelに含まれてないのか。当時、その辺りがネックだったが、今は拾ってこれるからね。CRCチェックを切って実装するのが楽だったんじゃないかな。

  % ./v09 -l 0xd000 -rom os9/os9.rom -nt
  x=0000 y=0000 u=0000 s=0000 a=00 b=00 cc=00 pc=F876: 8E 00 20    LDX     #$0020
  v09>?
   s [count] one step trace
   n     step over
   f     finish this call (until stack pop)
   b [adr]  set break point
   l     break point list
   d [n]   delte break point list
   c [count] continue;
   x [adr]  dump
   xi [adr]  disassemble
   L file  start log to file
   S file  set input file
   X exit
   q exit
   U file  upload from srecord file
   D file  download to srecord file
   R do reset
   h,? print this
  v09>n
   OS-9 LEVEL ONE  VERSION 1.2
  COPYRIGHT 1980 BY MOTOROLA INC.
   AND MICROWARE SYSTEMS CORP.
    REPRODUCED UNDER LICENSE
     TO DRAGON DATA LTD.
     ALL RIGHTS RESERVED.


  Shell

  OS9:mdir

   Module directory at 00:00:00
  Shell    Init    Mdir    SysGo    IOMan
  SCF     TERM    PTY     OS9p2    OS9


  OS9:x=cf80 y=0222 u=07b2 s=07b0 a=f4 b=f0 cc=f8 pc=FA96: E7 C4     STB     ,U
  v09>xi
  FA96: E7 C4     STB     ,U
  FA98: 84 0F     ANDA    #$0F
  FA9A: AA C4     ORA     ,U
  FA9C: A7 C4     STA     ,U
  FA9E: 39       RTS 
  FA9F: 53       COMB
  FAA0: C6 D0     LDB     #$D0