2020年11月29日日曜日

達人プログラマー

プログラマーではないけれど第2版を購入。2016年にでた新装版から60ページくらい増。各項目、新装版だと英文も書かれていたけど(例: 猫がソースコードを食べちゃった => The Cat Ate My Source Code) これが無くなった。各章の英文は健在。

まえがきには、3分の1は全く新たな書き下ろしである旨書かれている。目次見る限りは後半がより変わっているかんじ。前、かなりざっと読んだきり読み返していなかった新装版で、この部分ふるいな?と記憶にあった3章の「ソースコード管理」は「バージョン管理」になってた。広義の SCCS という用語はこの書籍で初めてみたのだ。チャレンジのところで RCS や CVS を〜〜のところは訳註で Git お勧めだよ、と。第2版には特定の VCS の名称は書かれずにバージョン管理使おうやでと。

2版はちゃんと読もう。

2020年11月23日月曜日

メッセージキュー再訪

某クラウドで RabbitMQ が発表されていた

https://aws.amazon.com/jp/about-aws/whats-new/2020/11/announcing-amazon-mq-rabbitmq/

昔の職場では SQS や EC2 上に入れた RabbitMQ をつかっていたなと思い出し、当時はこんなのをみたりしていた

Message Queue Evaluation Notes http://wiki.secondlife.com/wiki/Message_Queue_Evaluation_Notes

その数年後何かきっかけでメッセージキューのこの記事をみたり。https://postd.cc/dissecting-message-queues/

postd.cc の翻訳記事は以前ちょいちょい見ていたけど担当者いなくなったのかもはや更新されていないな。


ところでメッセージキューの歴史ってばどんなんだろうと wikipedia 見るも、あまりよく分からない。 https://ja.wikipedia.org/wiki/%E3%83%A1%E3%83%83%E3%82%BB%E3%83%BC%E3%82%B8%E3%82%AD%E3%83%A5%E3%83%BC

歴史的には、メッセージキューはプロプライエタリな閉鎖的プロトコルとして使われ始めたもので、そのために異なるOSやプログラミング言語を含めた環境の構築が制限されていた。 

うーん、その歴史的なのが知りたいところ。

 

メッセージキューをより遍在的にする初期の試みとして、サン・マイクロシステムズJMS仕様があり、JavaによってクライアントAPIを抽象化して異機種間接続を可能にしていた。これによりJavaを使えばメッセージキューのプロバイダーを切り替え可能となっており、SQLによってデータベースの切り替えが可能になったのと似ている。しかし実際にはメッセージキューの技法やシナリオは非常に多様であり、JMSが常に有効というわけではない。

その JMS は 2001年からと。上の概要のところ見ると80年代初期には〜〜とはある。

 

VxWorksやQNXといったリアルタイムオペレーティングシステム (RTOS) では、メッセージキューを主要なプロセス間通信機構やスレッド間通信機構として採用している。これらの場合、リアルタイム性が重視されるため、メッセージキューとCPUスケジューリングが密に関連している。1980年代初期には、VRTX や pSOS+ といった RTOS でメッセージキューを使ったスレッド間通信機構が使われ始めた。 

組み込み系な方(かた)だと詳しいのかもしれないな。

QNX のサイトにそれらしいドキュメントあり。歴史的なものはわからない。

Message queues http://www.qnx.com/developers/docs/7.0.0/#com.qnx.doc.neutrino.user_guide/topic/limits_Mqueue.html

POSIX Message Queues: Two Implementations http://www.qnx.com/developers/docs/7.0.0/#com.qnx.doc.neutrino.technotes/topic/managing_mq_mqueue.html

POSIX 1003.1 と。 https://ja.wikipedia.org/wiki/POSIX_1003.1b

[サンプルプログラム] のとこに記載の企業見てみると RTOS 屋さん。RedHawk Linux 。

https://www.concurrent-rt.co.jp/products/redhawk-linux/

 

Solaris には System V メッセージキューというのがある(あった?)らしい。

https://docs.oracle.com/cd/E19683-01/816-3961/6ma74f435/index.html 


2020年11月22日日曜日

パタヘネヘネパタ

パタヘネ: コンピュータの構成と設計 ハードウェアとソフトウェアのインターフェース

ヘネパタ: コンピュータアーキテクチャ 定量的アプローチ

名著と言われるこれらをどちらも、これまで一ページも読んだことがない。

パタヘネ第5版 https://www.amazon.co.jp/dp/B01M5FMGDL/

ヘネパタ第6版 https://www.amazon.co.jp/dp/4434264001/

とどちらも原書の現時点での最新版の訳書はありつつも、どうもパタヘネは MIPS, ARM, RISC-V とあるようだ。


2013-10 MIPS EDITION FIFTH EDITION https://www.amazon.co.jp/dp/0124077269/ 

2016-03 ARM EDITION https://www.amazon.co.jp/dp/0128017333/ 

2017-04 RISC-V EDITION https://www.amazon.co.jp/dp/0128122757/ 

2020-11 MIPS EDITION SIXTH EDITION https://www.amazon.co.jp/dp/0128201096/

2021-01 RISC-V EDITION SECOND EDITION https://www.amazon.co.jp/dp/0128203315/

ページ数は上から順に 800ページ, 720ページ, 696ページ, 832ページ, 688ページ とさまざま。どういう点から差が出ているんだろう。

elsevier のサイトみると出てる版は25%オフで、今後出る版は20%オフで買える。新版20%オフなのは早期購入割なんだろうか。

MIPS Edition 5th Edition https://www.elsevier.com/books/computer-organization-and-design-mips-edition/patterson/978-0-12-407726-3

MIPS Editon 6th Edition https://www.elsevier.com/books/computer-organization-and-design-mips-edition/patterson/978-0-12-820109-1 

RISC-V Edition 1st Edition  https://www.elsevier.com/books/computer-organization-and-design-risc-v-edition/patterson/978-0-12-812275-4

RISC-V Edition 2nd Edition https://www.elsevier.com/books/computer-organization-and-design-risc-v-edition/patterson/978-0-12-820331-6 

版数から「パタヘネ第5版」が 2013年の MIPS EDITION FIFTH EDITION の訳書という理解でいいのかなとプレビューで原書の ISBN 確認できたので見てみると、978-0124077263 で合ってる。日本語版パタヘネ第6版が1年後くらいに日経BPから出ると睨んでいていいのかしら。

ARM, RISC-V の訳書は存在が確認できないもの、昨今のARM熱から今後でるのかな。再来年には原書 ARM EDITION SECOND EDITION はでるのかもしれない。

ふとMIPS 社のサイト見に行くと、証明書期限切れて1ヶ月以上たっていて、うーん。。

2018年には wave computing ということに買収されてたようだけども、その後中国の会社に売却、RISC-V をサポートと https://news.mynavi.jp/article/20201111-1482718/

R3000 はおおいに成功したと書かれておりなんとも盛者必衰。昔、PSで使われているということでRシリーズの存在を知ったな。https://ja.wikipedia.org/wiki/R3000#%E6%8E%A1%E7%94%A8%E4%BE%8B

この記事面白いなぁ https://news.mynavi.jp/article/semicon-155/  


ググってでてきたのをコピペ

http://natu.txt-nifty.com/natsutan/2008/01/post_0982.html

http://blog.kimuradb.com/?eid=877527

https://www.slideshare.net/HiroakiHata2/ss-78851530/14

https://zenezenwakaran.hatenablog.com/entry/2019/04/03/182507

https://type.jp/et/feature/10263/

ヘネパタ翻訳の裏側がちょっと見えるスライド http://riscv-association.jp/wp-content/uploads/2019/10/RISC-V-Day2019.Nakajo.pdf

意味不明の文章ありヘネシーの弟子に問い合わせするも弟子も分からんとか面白い。翻訳の編集で編集者が趣向に走るとか、技術的学術的誤りなど苦労が。。6版で原著に信じられないバグって。

http://am.ics.keio.ac.jp/wp/caqa6th/


2020年11月21日土曜日

また手術

大袈裟なものではない。5年前にできたのが今度はヘソ近くにできたのだ。11月は予約いっぱいということで来月に切ってもらう。診てもらった皮膚科では5年前のと、ほくろと、今回で3度目の手術。それぞれ小さな範囲だけど背中、脇、腹と切られたことになる。20年くらい前は耳の裏にできてかなり腫れ、切開直後はクラッとして危なかった。

 

粉瘤何度かできたり、一方「いぼ」も何年かおきにできてるなぁ。

https://www.daiichisankyo-hc.co.jp/site_hifuken/symptom/ibo/ 

子どもに多くみられ、キズがつきやすい手足や、アトピー性皮膚炎の子どもの場合では、引っ掻くことが多いひじわきの下などにもよくできます。

子どもに多く・・!

人生最初のイボは10代前半の頃、右の足の裏にできた。何年かそのままにしてたのだけど、徐々にでかくなったか何かで医者に診てもらったのだった。診てもらった時は20代になってたと思う。治療は液体窒素をジュジュッと患部に噴射。そのイボはそれなりの大きさだったのでキレイになるまでかなりの期間を要した。そういうのもあってイボは「小さいのができてるっぽいな?!」という時点でさっさと皮膚科で診てもらうのがおすすめ。小さくても液体窒素ジュジュっは十分痛いのだ。 もし大きいと通院回数は増え、大変。足の裏にできたのは10代前半のそれが最初で今のところ再びできてはいない。その後は手、指にできるばかり。左手のひら、右手中指の先端。

今回粉瘤を診てもらうのと同時に左手の中指の付け根付近にできたイボも診てもらって、これはいつもの通り液体窒素ジュジュっとされた。そしてみるみるうちに見事な水ぶくれに。

皮膚、肌にいい栄養素ってなんだったか覚えていないので調べておこう。。

 

2020年11月18日水曜日

ssd の使用っぷり

いつからか coconutBattery を使っている。2018年には Plus ライセンス購入。

個人用のと仕事用の MBP で advanced view 見比べてみるとかなりの違いが。左の数値が個人用

Power On Hours  420, 1609

Lifetime used  1%, 22% 

Power Cycles  94, 4593

Data Read  12.15 TB, 211.89 TB

Data Written  9.39 TB, 192.51 TB

Manufacture date は 50日くらいの違い。仕事用のは swapfile が常時作られるのでその分の Read/Write も含まれていそう。。

2020年11月14日土曜日

macOS Big Sur (11.0) にした

前回 macOS Catalina (10.15) にした

$ sw_vers
ProductName:    macOS
ProductVersion:    11.0.1
BuildVersion:    20B29 

sw_vers,  Catalina までは 'Mac OS X' だったのが今頃 macOS に。 

beta から使ってた人には何を今更だろうが、アップグレード直後の感想は「まるいっ」すぐ慣れると思う。なんとなく、ダークモードじゃないと目が疲れる感があるような気はする。単に外付けディスプレイの調整の問題かもしれない。

メニューバーのバッテリー残量表示、何%かはクリックしないと確認できなくなった模様。追記)システム環境設定、[Dock とメニューバー] で変更可能。こっちかい!


MacPorts はまだ入れ直していないので、現状以下の通り

$ port
Error: Current platform "darwin 20" does not match expected platform "darwin 19"
Error: If you upgraded your OS, please follow the migration instructions: https://trac.macports.org/wiki/Migration
OS platform mismatch
    while executing
"mportinit ui_options global_options global_variations"
Error: /opt/local/bin/port: Failed to initialize MacPorts, OS platform mismatch

いつものように新バージョン待ち。

https://lists.macports.org/pipermail/macports-users/2020-November/048940.html

 

UB 再び

$ file /bin/ls
/bin/ls: Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit executable x86_64] [arm64e:Mach-O 64-bit executable arm64e]
/bin/ls (for architecture x86_64):    Mach-O 64-bit executable x86_64
/bin/ls (for architecture arm64e):    Mach-O 64-bit executable arm64e


一度再起動して、起動音が復活したことに気づく。音は、ぶぉぉーんという感じ。それはいいとして、起動に時間かかるようになったのはなぜだろう。なかなかバーが進まない。クリーンインストールの機運高まる。(追記)SMC リセットPRAM リセットしたらマシになった。

 

VMware Fusion は Nested-VM できなくなった。「この仮想マシンでハイパーバイザーアプリケーションを有効にする」オプション、チェック入れていると起動しない↓


 

「この仮想マシンでコードプロファイリングアプリケーションを有効にする」もダメ↓


 

Windows 10 で Hyper-V ちょびっとお試し程度で使っていただけだったので特に差し支えなし。本内容は VMware サイトにあり。"This is a known issue.
Currently, there is no resolution." と。

Limitations of nested virtualization on Fusion on Mac OS 11.0 or later (80785) https://kb.vmware.com/s/article/80785

必要な人にとっては Big Sur にアップグレードできないね。

Big Sur 対応時の様子はここに書かれていた。Big Changes のところ https://blogs.vmware.com/teamfusion/2020/07/fusion-big-sur-tech-preview.html


追記

ほか OS 上の何かをゴソゴソと見て回ると vm.swapfileprefix が /System/Volumes/VM/swapfile にかわっていた。Catalina までは /private/var/vm/swapfile だった。

$ sysctl vm.swapfileprefix
vm.swapfileprefix: /System/Volumes/VM/swapfile

2020年11月8日日曜日

OpenBSD 6.6 -> 6.8

 たまにインストールだけしてそのまま放置をしている *BSD。OpenBSD は先月 6.8 が出てたので 6.6 から更新と man release みつつ進めるも、カーネルインストールして reboot するとダメだな。6.7 でも。

とりあえず元の /obsd であげて戻し。お作法変わったのか調べるか・・。今どきソースからビルドなんてするもんじゃないのかしら。おとなしく sysupgrade するのが良い?

追記: sysupgrade でもどうもダメ。ううむ。

追記2: 再度 sysupgrade したら今度は問題ない。これで 6.6 => 6.7。もう一度実行して 6.7 => 6.8 に。