2020年7月22日水曜日
2020年7月21日火曜日
Ubuntuが動かなくなる
BeelinkS1にいれておいたUbuntuをUPDATEしたら起動しなくなってしまった。
rescueモードもだめで、インストールしなおしているうちに、イラッとしてきて——40GのハードディスクにいれておいたFreeBSDと交換した。Ubuntu用に使っていたSSDはかなり熱くなっていた。
これが原因とは思えないが、BeelinkS1の熱の溜り方は半端なさすぎる。
今後はハードディスク一択にしておこう。
別に何かに使うわけじゃないのだけど。
2020年7月20日月曜日
第29週
ステーキのことを思いついて以来、自炊を復活させた。
昔はわりと自炊していたのだけど、最近はスーパーの生野菜を買ってきてツナ缶で食べる、というような生活をしていた。バターコーヒーとカロリーメイトとか。弁当とか。
ただ、自炊といっても炒め物ばかりだけど。
豚肉のカレー炒めトマト添え pic.twitter.com/hLWYk2hf7X
— 山田 (@yamada1961) July 14, 2020
豚肉と茄子と玉ねぎの味噌蒸し pic.twitter.com/YkvemG1DYZ
— 山田 (@yamada1961) July 15, 2020
シャケのバターソテーともやしと茄子の和え物 pic.twitter.com/69VGb1RSK7
— 山田 (@yamada1961) July 16, 2020
カツオのたたき、もやし、チキンステーキ、じゃがいもの味噌汁 pic.twitter.com/RIKg8YMbXm
— 山田 (@yamada1961) July 17, 2020
味付け玉子とツナ、玉ねぎ、じゃがいも、人参、ピーマンの炒めもの pic.twitter.com/Wiwkoflogn
— 山田 (@yamada1961) July 18, 2020
玉ねぎのオムレツに鶏肉、人参、玉ねぎ、ピーマンのナンプラー炒め pic.twitter.com/lTY4dM9Xkw
— 山田 (@yamada1961) July 19, 2020
2020年7月15日水曜日
FEN
ひさしぶりに車を運転した。
iPadを持ちこむの忘れてしまった。おかげで音楽がない。しかたないのでラジオをつけた。そういえば、昔、よくFENを聞いていた。今はどうなっているのだろう。米軍の放送だからなくなったということはないだろうが。
AMに切り替えると、ちゃんと登録されていて英語がばらばらと流れてきた。
なつかしい。
そんな経験をした日の夜、インターネットラジオを聞いていてふと、FENのことを思い出した。
インターネットで聞けないかな?
ググってみると、そういうアプリがあることが判明。名前がAFN Pacificにかわっている——そういえば、そういうニュースを見た記憶がある。ずいぶん以前のことだけど。さっそくダウンロードした。
——いいわぁ。
2020年7月14日火曜日
2020年7月13日月曜日
ステーキ
——ステーキってもしかしたら料理的にすごく簡単なんじゃないか?
ただの焼き肉にすぎないし。使う調味料も塩と胡椒というところだろう。
今まで自炊してみたことはなかったけれど。
スーパーでアメリカ産のステーキ肉を買ってきた。
ざっくりと手順をググる。
- 水気をとる。
- 片方の面に刻みをいれ、塩、胡椒をかける。
- その面を下にして強火のフライパンで焼く。
- 塩、胡椒をかける。
- ひっくり返す。
- 焼く。
それだけ。
味はまあまあだった。ちょっと塩をかけすぎた。
2020年7月2日木曜日
2020年6月29日月曜日
超音波洗浄機
「決してマネしないでください。」を読んでいたらワインに醤油を少量たらし、超音波洗浄機で攪拌すると、味に深みがでるという話がでてきた。おおっ、たしかに超音波洗浄機は攪拌機として使えるんだな、と思って欲しくなった。酒は飲まないひとなのだけど。
調べてみると、買えない値段じゃない。
思ったより小さい。
眼鏡を洗って次にコーヒーカップを洗浄してみた。
たしかにきれいになっているような気がする。
眼鏡など、煙のようなものがでているし——これが人の脂とかの汚れなんだろうな。
ほかにいろんなものを洗浄しようと手ぐすねをひいていたのだけれど 1、洗浄しているときの音にうちの娘——猫がビビって超警戒モードにはいる。たぶん人間の耳には聞こえない音が響いているのだろう。
しかもおれ自身も気分が悪くなってくる。頭痛がする。
これはだめだ。
——返品した。
Footnotes:
野菜とか。
2020年6月26日金曜日
2020年6月25日木曜日
2020年6月24日水曜日
余命
余命は次の年になれば、1年未満、減少するはずだ。
つまり余命からもとまる死ぬ年は年を経るごとにすこしずつ、延びる。
これは別に不思議でもなんでもなく、死んでしまった人間は算入されないからだ。
いわゆる生存者バイアスというやつ。
表のように、60歳の余命は23.84歳なので、83.84歳までだけど、85歳まで生き延びてしまったら、91.35歳までが余命となる。
何が問題か。
死ぬ歳を85と、設定するわけにはいかない、ということだ。
ただ、年齢間の差分は縮まっているので、まぁ、90歳前後には死ぬだろう。というか、死んで欲しい。苦しまずに。
| 年齢 | 余命 | 差分 |
|---|---|---|
| 90 | 4.33 | 2.02 |
| 85 | 6.35 | 2.71 |
| 80 | 9.06 | 3.23 |
| 75 | 12.29 | 3.55 |
| 70 | 15.84 | 3.86 |
| 65 | 19.70 | 4.14 |
| 60 | 23.84 | 4.37 |
| 55 | 28.21 | 4.53 |
| 50 | 32.74 |
2020年6月23日火曜日
2020年6月22日月曜日
2020年6月18日木曜日
2020年6月17日水曜日
リタイヤ後の費用
リタイア後の年間にかかるお金を250万と見積っているのは根拠のないことじゃない。
というのも今までの人生の中で何度も働いていない時期があってそのとき、そのくらいかかっていたのだ。つまり経験則。ちなみに競馬の負けはふくまれていない。あれは費用ではなく、収益に計上していた。
内訳はこんな感じだった 1。
| 家賃 | 37.09% |
| 自動車 | 20.70% |
| 食費 | 12.95% |
| 税金 | 11.40% |
| 生活費 | 4.25% |
| 電話 | 3.32% |
| その他 | 10.30% |
働いていないのなら自動車を持つなよ、という話だな。今さらながら反省だ。もっと若いころに反省しておけよ、ということもふくめて。
税金があるのは無収入でも地方税とか、国民健康保険がかかるからだ。
やはり家賃が大きい。
別に身分不相応なところに住んでいたわけじゃないからこんなもんだろう。
これを減らすのがリタイア後の当面の目標になるか……。
2020年6月16日火曜日
2020年6月15日月曜日
2020年6月11日木曜日
2020年6月10日水曜日
適当に生きてきたツケを適当に払う
老後のことを今さら、考えてもしかたないのだけれど。
そもそもこの年まで生きるとは思ってなかった。十代のころには二十前に、死ぬと信じていたし、二十代にはまさか、三十まで生きることはないだろう、と。
なので適当に生きていたら、四十もこえて、いまや六十目前じゃないか。
しまった。
もしかしたらおれは死なないんじゃないか?
なーんも考えてないぞ。
とりあえず、あと何年ある?
厚生労働省の平均余命の 資料を見ると、きっちりした区切りにはいないが、だいたい24、5年というところ。
25年。——予想以上に長い。
仮に年間の生活費が250万すると、6250万円……。
あるかっ、そんな金。
だいたい、25年も何をするというんだ。好奇心も体力も脳みそも衰えたこの状態で。
ひたすら茫漠とした無為の日々になるだろう——いや、待てよ。それも悪くないかも。
今までも無為な日々だったわけだし。
結局、どんな死に方をするのか、わからないのが問題なんだよなぁ。
痛みと苦しみのない死に方を望んだとしてもそうなるとはかぎらないし。
そうなると、今までどおり、いきあたりばったり。
適当。
そうなる。
2020年6月8日月曜日
2020年6月5日金曜日
2020年6月4日木曜日
ミルク泡立て器、ミルクフォーマーあるいはクリーマー
デイヴ・アスプリー「シリコンバレー式 自分を変える最強の食事」にバターコーヒーをつくるときにはブレンダーを使えとある。クリーミーになる、と。
面倒なので、水筒にいれて振って代替としていたのだけれど、ふと世間を見回してみると、ミルクフォーマーなる泡立て器があることを知った。クリーマーともいうらしい。
購入した。
使った。
うおおっ、すげー、泡立つ。
なるほど、クリーミーだ。
ただ油断するとあたりにバターコーヒーを撒き散らしてしまう。
2020年6月3日水曜日
2020年6月1日月曜日
2020年5月の上位アクセス記事
2020年5月30日土曜日
2020年5月22日金曜日
笠井潔「新版 テロルの現象学――観念批判論序説」(3)
「補論 68年ラディカリズムの運命——『テロルの現象学』以後三十年」を読んでこれは「例外社会」だな、ということはわかったのだけれど、すぐにもしかしたら自分は「例外社会」を誤読しているんじゃないか、と不安になった。これは「例外社会」を読み直すしか、ないなぁ。
とくに「コントロール社会」については。
これは新しい世界の局面——ジョージ・オーウェル「1984年」の監視社会とはちがう世界の到来ではないか、と思っていたのだけど、本論の「新版 テロルの現象学――観念批判論序説」を読んだあと、待てよ、と思い直した。笠井潔は明確に述べていない(と思う)けれど、もしかしたら「コントール社会」というのは「共同観念」と把えることもできるんじゃないか、と。
そうすると、外部を隠蔽しつづけ、累積しつづける「自己観念」は——。
そもそも「科学」もまた、外部を隠蔽する「自己観念」にすぎないのではないか 1。
不思議として体験される外部が法則化され、内化される。それで外部はコントロール可能なものと認識されることになる——ただ、科学自体はそのことに自覚的なのかもしれない。カール・ポパーの哲学のように。
Footnotes:
いや「共同観念」なのか?
2020年5月21日木曜日
笠井潔「新版 テロルの現象学――観念批判論序説」(2)
今回、読み返して一番、驚いたのは——どうでもいいことなのだが——、浅田彰の「構造と力」からの引用があったことだった。えっ、まさか、書き加えたの? と思って1984年版をひっぱりだして確認してしまった。
頭の中で次のような時系列になっていたらしい。
- 笠井潔「テロルの現象学」出版
- 浅田彰「構造と力」出版
- 笠井潔「《戯れ》という制度」出版
「《戯れ》という制度」の中でポストモダン——浅田彰を批判していた(と思う 1)ので、なんとなく、「テロルの現象学」が上梓されたあとに、「構造と力」がきっかけで日本のポストモダンの隆盛が起きた、と思っていたのだ。考えてみると、「テロルの現象学」は1984年の出版なのだから80年代に起きたポストモダンとは充分に同時期だったんだ…… 2。
そもそも赤塚不二夫がたしか「 赤塚不二夫のキャスター」で浅田彰の「構造と力」をパロったときはまだ、「テロルの現象学」を読んでなかったんだよな 3。まったく浅田彰を認識していなかったんだろうけど(今もだけど)。だいたい浅田彰を認識したのは笠井潔の評論を経由してあのときのはあれはあれか、と気づいただけだしなぁ。
2020年5月20日水曜日
笠井潔「新版 テロルの現象学――観念批判論序説」(1)
たしか、出版されてすぐに購入したはずだからもう7年 1になる。
どんだけ積読んだよ、という話だけど、ひとつには新版じゃない「テロルの現象学」は読了済みだったということもある。同じ作品社からでていた本——真っ赤な本だ。新版だからといって内容が変わったわけでもないし——あとがきには文章を多少、読み易くしただけ、とある——、なぜ、購入したか、というと、書き下ろしの補論が読みたくてだったのだけれど、そちらも途中で挫折してすっかり積読してしまった。
ようやく読了できた。
実は一度読んだ本を読み返すことはほとんど、しない人なのだけれど、これだけはいつか読み返そうと思っていた。なぜか、というと、よく理解できなかったから。読み終えたときに、今、理解していることはたぶんこの本のごく一部で、しかも正しく理解していないかもな、と。
それから笠井潔の評論本を読みつづけてようやくくりかえされるさまざまな断片からなんとなく、「テロルの現象学」の内容がうすぼんやりとわかったような気になっていた。今回、再読してそれがすべてひっくり返されるということはさすがになかったけれど、やはり理解不足を痛感した。
今だにまだ、ちゃんと理解し切れてないような予感はあるけれど。
いつか、再々読できれば、いいな。
すくなくともドストエフスキィの「カラマーゾフの兄弟」を読んでから。
Footnotes:
奥付には2013年とある。
2020年5月19日火曜日
if文に隠蔽される処理
たとえば、変数の値によって関数の呼び出しをかえるような処理は、普通のプログラミング言語だと
if(変数A == 999){ 処理関数(1); } else { 処理関数(2); }
みたいな書き方をする。
もちろん、Lisp系でも同じような書き方ができるけれど
( if (= 変数A 999)
(処理関数 1)
(処理関数 2))
こんな書き方もできる。
(処理関数 ( if (= 変数A 999)
1
2))
後者の方が見易いような気がする。というのも
(処理A)
( if (条件)
(処理B 1)
(処理B 2))
(処理C)
となっていると、if文の中に処理がほんのわずかに隠されて処理の流れが見づらなるような。
(処理A)
(処理B ( if (条件)
1
2))
(処理C)
ね?
2020年5月18日月曜日
mapcarとloop
elispを独習しはじめたころ、おおっ、と感動したのは「mapcar」の存在だった。
何を感動したのか、というと、それがループ処理だった、ということ。よくあるバグにループの脱出条件のミスって永久ループしてしまう、というのがあるけれど、これならかならず、終了するじゃないか。なので最初のころ書いたコードは「mapcar」だらけになってしまった。
ところがある日、そのコードを読み返していて気づいた。
——読みづらい。
「mapcar」の引数は
(mapcar 処理 リストを生成する処理)
となっているので、処理の順番という意味ではうしろから読み解かなくていけないのだ。
それが脳みそに余計な負荷をかけている。
もちろんすぐにloopマクロの存在に気づいて、今ではloopマクロを使いまくりなのだけど。
( loop for x in リストを生成する処理
collect 処理)
こちらの方が「リストを生成する処理」「処理」と読んでいけるのでものすごく楽。
今や「mapcar」はワンラインで書けるサイズでないと、書く気がしない、という。
2020年5月2日土曜日
2020年4月の上位アクセス記事
2020年5月1日金曜日
or
ぱらぱらとEmacsのライブラリの中身を眺めていたら次のようなコードをぶち当たった。
(goto-char ( or point1 point2))
もちろんこのままじゃないけれど。
わかるよ。point1か、point2が設定されているところへカーソルを移動する。うん。
あんまりあっさり書けてしまっていたのでひっくり返ってしまった。
2020年4月30日木曜日
二画面分割を左右分割から上下分割へ切り替える
Dell 27 MonitorになってからEmacsを左右二画面分割して使うことが多くなった。
横長だからだけど、それでも時々、上下二分割にしたいことがある。しかも左右二分割した画面を、上下に切り替えたい。そんなコマンドはないものか、と探してみたけれど、見つけることができなかった。いちいちCtrl+x,1で全画面化して二分割して……ああ、面倒臭い。
つくる。
適当に配置をrotateさせるのでたぶん、4回、呼び出すと、元の位置に戻るはず。
それにしてもダサいな、このコード……。
2020年4月22日水曜日
MacBook AirとHDMI接続とUSB-C Digital AV Multiportアダプタ
MacBook Air (Retina, 13-inch, 2019)を購入したのが、今年のはじめだからもう四ヶ月になる。
ずっと苦しんでいた。
何がって?
Dell 27 MonitorとのHDMI接続してあるモニタの表示である。
よく瞬断するのだ。画面がブラックアウトする。とくに立ち上げ時はひどく、何度もくりかえした末、ブラックアウトしたままになってしまう。 USB-C Digital AV Multiportアダプタをつついたり、HDMIのケーブルのかるく揺さぶったりすると、治る——治るというか、治るまでくりかしているだけなのだが——。
これがものすごいストレスだ。
VGA接続に換えようか、と思ったけれど、Amazon Primeビデオとか、視聴するにはHDMI接続は必須なのだ。
まいった。だいたい、VGA接続にしてもアダプタが原因の予感があるので同じ事象が起きるような気がする。
ケーブルを換えてもだめだし、他の機器では起きない。MacBook AirとUSB-C Digital AV Multiportアダプタの組み合わせのときのみ起きる。モニタのスリープ設定とか、スクリーンセイバーが影響しているか、とすべてオフにしてもだめだった。
事象がはっきりしないし、ググっても同じような事象が見つからなかったので 1——Appleに苦情を伝える方法もわからず——、我慢していたのだけれど。
実は電波干渉をずっと疑っていた。
というのも近くをバイクが走り抜けたときや、隣の部屋で電灯を切ったときによく発生していたからだ。
USB-C Digital AV Multiportアダプタには何か、電子回路が内蔵されているらしく、使っていると熱をもってくる——それが、ノイズでリセットが発生しているのではないか? 2
立ち上げ時によく起きるのはDell 27 Monitorが発している電波 3と干渉しているのではないか?
そこでアルミホイルで覆ってみた。
がっつり発生頻度が減った。
ただ、それでもまだ、起きる。もしかしたらケーブルがノイズをひろっているのかも。
でもケーブルを換えても症状はかわらなかったんだよなぁ。
ふとAppleTVのケーブルに交換してみることを思いつく。このケーブルはけっこう、高級らしく、端子が金色に輝いている。
で、交換したらまったく起きなくなった。
ありゃあ、なんてことだ。原因はケーブルか。
そういえば、使っていたケーブルはRaspberry Piのキットに付属してきたものでいかにも安っぽかったのだった。
まぁ、念のためにアルミホイルに覆ったままだけど。
2020年4月20日月曜日
COVID-19 CORONAVIRUS PANDEMIC
パンデミック宣言されるすこし前ぐらいに、致死率は武漢の情報から2%ぐらいだという記事を見た記憶があるのだけど。
WHOのテドロス・アダノム・ゲブレイェスス(Tedros Adhanom Ghebreyesus)事務局長はスイス・ジュネーブでインターネットを通じ行った記者会見で、「われわれは新型コロナウイルス感染症(COVID-19)が急速に拡大すること、致死率が2009年のインフルエンザのパンデミックよりも10倍高いことを把握している」と述べた。
具体的にどれくらいなのか、さっぱりわからん。
なので こちらからデータをひろってみる。「April 19, 2020 04:01」のデータ。
| 国 | 感染者数 | 死者数 | 率(%) |
|---|---|---|---|
| World | 2,289,508 | 157,539 | 6.9 |
| 中国 | 82,719 | 4,632 | 5.6 |
| イタリア | 175,925 | 23,227 | 13.2 |
| 日本 | 9,795 | 154 | 1.6 |
| 韓国 | 10,653 | 232 | 2.2 |
| アメリカ | 716,883 | 37,659 | 5.3 |
| 英国 | 114,217 | 15,464 | 13.5 |
死者数 ÷ 感染者数 × 100 で計算(小数点第2位で四捨五入)
5〜8%、という感じなのかなぁ。英国の13.5%は意外だった。イアリアの13.2%は医療崩壊寸前までいったはずだから納得なのだけど。
というか、日本と韓国が低すぎてちょっと不安になる。これから死者数が増えるのか、たんに感染者数が偽陽性か、なにかで多くカウントされてしまっているのか……。きっと前者なんだろうな……。
追記:これは案外、逆で韓国の数値が一番、実体に近いのかも、という気がしてきた。重篤患者を優先的に検査をしていれば、当然、致死率は大きくなるだろうから。
2020年4月12日日曜日
Emacsでscheme(Script-Fu)を
いちおう、schemeとしてGaucheをインストールしてあるのだけど、elispやslimeが使えるCommonLispにくらべていまいち、使っていなかった。schemeでしか、できないことが見当たらなくて。call/ccぐらいかなぁ。じゃ、いいや、という。
待てよ。
Gimpがあるじゃないか 1。
Emacsから使えるならおもしろいんじゃないか。
Gimp modeに載っているgimpmodeや、gimp-shell.elを試してみたのだけれど。
ところが気づいてしまった。
MacのGimpは Split Viewが使えない。
こんな感じの使い方を想定していたのに。
+-------------+------------+ | | | | | | | Gimp | Emacs | | | | | | | | | | +-------------+------------+
一気に冷めてしまった。
Footnotes:
GimpのScript-Fuはscheme。
2020年4月2日木曜日
2020年3月の上位アクセス記事
2020年4月1日水曜日
2020年3月10日火曜日
数独プログラム
「 あらゆる数独パズルを解く」はPeter Norvigなのに、Pythonで書かれている。
じゃあというわけでelispで書いてみた。
(2) ある値に対し、ユニットの中で置ける場所が1つしかないなら、その値をそこに置く。
は、うまく動かなかったのでコメントアウトしているけど。
それでも「 あらゆる数独パズルを解く」のページの問題はいちおう解けたからだいじょうぶだと思うけど。
まぁ、よいか。
( defun test () ( progn (sudoku-init) (sudoku-set " . . 5 |3 . . |. . . 8 . . |. . . |. 2 . . 7 . |. 1 . |5 . . ------+------+------ 4 . . |. . 5 |3 . . . 1 . |. 7 . |. . 6 . . 3 |2 . . |. 8 . ------+------+------ . 6 . |5 . . |. . 9 . . 4 |. . . |. 3 . . . . |. . 9 |7 . . ") (sudoku-solve) (sudoku-print))) (benchmark 1 '(test)) | 1 4 5 | 3 2 7 | 6 9 8 | | 8 3 9 | 6 5 4 | 1 2 7 | | 6 7 2 | 9 1 8 | 5 4 3 | |-------+-------+-------| | 4 9 6 | 1 8 5 | 3 7 2 | | 2 1 8 | 4 7 3 | 9 5 6 | | 7 5 3 | 2 9 6 | 4 8 1 | |-------+-------+-------| | 3 6 7 | 5 4 2 | 8 1 9 | | 9 8 4 | 7 6 1 | 2 3 5 | | 5 2 1 | 8 3 9 | 7 6 4 | "Elapsed time: 0.179490s (0.093774s in 1 GCs)"
ベンチマークもそこそこ。
2020年3月6日金曜日
dash.el(2)
たとえば、(1 2 3)と(4 5 6)を組み合わせたい。
((1 . 4) (2 . 4) (3 . 4) (1 . 5) (2 . 5) (3 . 5) (1 . 6) (2 . 6) (3 . 6))
みたいな感じに。
そこで
( defun y-combination-of-list (list1 list2) "list1の要素とlist2の要素を組み合わせた結果をconsして出力する。" ( loop for x in list1 collect ( loop for y in list2 collect (cons x y))))
というのをでっちあげた。でもこれだと結果は
(((1 . 4) (1 . 5) (1 . 6)) ((2 . 4) (2 . 5) (2 . 6)) ((3 . 4) (3 . 5) (3 . 6)))
という風になってしまう。
これを入れ子のリストではなく、フラットなリストにしたい。
それで「 dash.el」の「-flatten」が必要だったのだけど。
(-flatten '(((1 . 4) (1 . 5) (1 . 6)) ((2 . 4) (2 . 5) (2 . 6)) ((3 . 4) (3 . 5) (3 . 6)))) ((1 . 4) (1 . 5) (1 . 6) (2 . 4) (2 . 5) (2 . 6) (3 . 4) (3 . 5) (3 . 6))
よくよく考えたら「dash.el」に、そもそもそんな関数があるんじゃないか? つらつら「 https://github.com/magnars/dash.el#functions」を見ていたら。
(-table-flat 'cons '(1 2 3) '(4 5 6)) ((1 . 4) (2 . 4) (3 . 4) (1 . 5) (2 . 5) (3 . 5) (1 . 6) (2 . 6) (3 . 6))
あった。
2020年3月5日木曜日
dash.el
どのパッケージがきっかけでインストールされたのか、わからないけれど、「dash.el」がインストールされている。
;;; dash.el --- A modern list library for Emacs
だそうだ。
「-flatten」というのがあってお気に入り。
(-flatten '((1 2 3)(4 5 6))) (1 2 3 4 5 6)
で、素の ABCLを使っていて「flatten」が必要になった。
「alexandria」をインストールすれば、いいんだろうが、諸事情というものがある。
「dash.el」の「-flatten」が使えないもんだろうか。
「–map」「–mapcat」「-mapcat」「-flatten」を喰わせてみたところ。
(-flatten '((1 2 3)(4 5 6))) (1 2 3 4 5 6)
動いた。
2020年3月3日火曜日
async.el
helmをインストールすると、もれなくasync.elがついてくる。
Emacsの非同期ライブラリである。
バックグラウンドでEmacsをもうひとつ、立ち上げてそちらで処理させる、というもの。
( setq wrk (async-start ( lambda () 222))) -- 割愛 -- (async-get wrk) 222
システムモニタを立ち上げておくと、Emacsがもうひとつ、起動されるのがわかる。
100個とか、無理だろうけど 1。
( setq wrk ( loop for x from 1 to 10 collect (async-start `( lambda () ,x)))) -- 割愛 -- ( loop for x in wrk collect (async-get x)) (1 2 3 4 5 6 7 8 9 10)
カンマを使えば、変数の中身を展開できるけど、さすがにクロージャーでデータを渡すのは無理だろうなぁ。別プロセスだもんなぁ。スレッドならできるのだろうけど。
——と思ったけれど、やってみたらできた。
驚いた。
( setq lexical-binding t) t ( defun wrk (x) ( lambda() x)) wrk ( setq wrk ( loop for x from 1 to 10 collect (async-start (wrk x)))) -- 割愛 -- ( loop for x in wrk collect (async-get x)) (1 2 3 4 5 6 7 8 9 10)
なんで?
(wrk 1) (closure ((x . 1) t) nil x)
ああ、クロージャーはリストに展開されるんだ。
なるほど。それならpipe渡しでも可能だ。あれ? ということはelispだからできるってこと?
ほえぇ。elispはあなどれない。
Footnotes:
Emacs for Windowsでは10個でエラーになった。
2020年3月2日月曜日
2020年2月の上位アクセス記事
2020年2月28日金曜日
slime-transpose-lists
たとえば
((1 2 3) (4 5 6) (7 8 9))
を
((1 4 7) (2 5 8) (3 6 9))
という風に縦横を変換したい。
パッと考えて二重ループで……とごちゃごちゃ考えたのだけれど、面倒臭い。きっとどこかにありそうだ。elisp、CommonLisp関連でググってもなかなか、見つからず、きっと名前に「tranpose」が入っているにちがいない、と考えてEmacsの「describe-function」で見つけた。
(slime-transpose-lists LIST-OF-LISTS) Not documented.
まさにこれ。ソースを見たら
( defun slime-transpose-lists (list-of-lists) ( let ((ncols (length (car list-of-lists)))) ( cl-loop for col-index below ncols collect ( cl-loop for row in list-of-lists collect (elt row col-index)))))
やはり二重ループ。
それでもLispだとたったこれだけの行数で書ける。
というか、簡単に書けてしまうから標準でなかったのかも。
2020年2月27日木曜日
(file-expand-wildcards "**/*.*")
ああ、知らなかっただよ。
(file-expand-wildcards "**/*.*")
で、カレントディレクトリの下のファイルが全部、取得できるとは。
eshellの「**/*.*」はこれは使っているんだろうなぁ。
今さら気づくおれ。
2020年2月24日月曜日
2020年2月22日(土):検見川浜:晴れ
1 Sail:CORE 5.7(NEIL PRYDE) Board:NG ACP 260 Fin:9.5inch
| -No- | 時刻 | 時間 | 帆走距離 | 最高速 | 平均時速 | P% |
|---|---|---|---|---|---|---|
| 1 | 11:49-11:57 | 8分 | 1.1km | 29.59km/h | 8.23km/h | 25.62 |
| 2 | 12:28-12:36 | 8分 | 1.0km | 34.76km/h | 7.73km/h | 14.77 |
| 3 | 12:46-12:56 | 9分 | 1.1km | 16.94km/h | 6.84km/h | 0.56 |
| 4 | 13:22-13:35 | 13分 | 1.3km | 22.09km/h | 5.73km/h | 3.24 |
total 39分 4.5km 6.9km/h
夜中のうちにきちんとカメラの充電をしておいたのにハウジングを忘れてしまった。
何をやっておるのか。
海ほたる16m/sなのに、検見川は思ったよりも風が入っていない。沖合いに白波が見えるのだが。これでは最大サイズのセイルをだしても走らなそうだ。ここはやはり南総まで下るべきだったのだろうか。
しかし、午後には風があがるだろうし、昨年に引き続き、いきなり4.7コンディションかぁ。
とりあえず、目の前のコンディションにあわせて最大サイズのセイルをチョイスした。5.7である。
体力がない自覚はあるのでかなり緊張して海へ出た。死なないように、と。
毎年、体力の心配をしているけれど、今年は今までで一番、体力がない——三ヶ月絶対安静で入院していたときよりもない。あのときは退院して1週間ぐらいにそれなりに体力は回復した。今年はだめだ。
案の定、一往復しただけで突っ伏して喉が痛くなるほど、ゼーハーしてしまった。
たまたま、風に当たったらしく、プレーニングしたけれど。
大休止して二本目。
これもプレーニングできた。沈したけれど。
三本目はほとんど、走らず。沖で沈して溺れかける。水面に浮かんでいる状態で深呼吸できず、酸欠になりかける。気を失なうか、と思った。去年も同じだったなぁ。
ふたたび、風が上がってきたような気がしたけれど、出艇してみると、そんなことはなく、ふたたび、溺れかける。いかんじゃないか。
なんか、午前中よりも風がない。
夕方、吹き上がるパターンかな?
でもまぁ、今日は終わりでいいか。
2020年2月12日水曜日
2020年2月10日月曜日
elispでqueueもどき
もしかしたら。
threadとmutexの組み合わせたらキューっぽいことができるんじゃないだろうか?
( let ((lexical-binding t) (w (make-mutex))) (mutex-lock w) ( loop for x from 1 to 10 collect (make-thread ( let ((y x)) ( lambda() ( with-mutex w (insert (number-to-string y) " \n")))))) (mutex-unlock w)) nil 3 4 5 6 7 8 9 10 1 2
処理順序は保証されていないけど、キューっぽいよな、これ。
うん。
2020年2月4日火曜日
Ubuntuでの「ssh -Y」
正月にUbuntuをいじっているときに気づいたのだけれど。
ssh -Y
が使えた。
きっとUbuntu Serverだからだろう、と思っていたのだけど、「Ubuntu 18.04.3 LTS」で試してみたら使えるようになっていた。以前、使えなかったのは何だったんだろう。
とても助かるけれど、それなら 机の上にBeelinkS1をもってくることはなかったなぁ。
2020年2月3日月曜日
2020年1月の上位アクセス記事
2020年1月31日金曜日
CD/DVD
終活、というわけではないのだけど、CD/DVDを処分しはじめた。
かつてハードディスクにはいり切らなくなったデータをCD/DVDへ焼きだしていたのである。当時のハードディスクは1Gとか、2Gとかそんなものでいい気になって保存していた。二十枚近くある。
それでもこれだけのデータが今の——一世代前のだけど——、ハードディスクに納まってしまう。いったいあの日々はなんだったんだろう。
しかも今はそもそもハードディスクに保存すること自体、なくなった。
ネットがあるから。
考えてみれば、かつてはフロッピィディスクが山ほどあったんだよな。処分してしまったけれど。DOS時代の遺物だ。データをフロッピィディスクへ吐き出していた。ハードディスクの容量が20Mで、むちゃくちゃ、大容量だと思っていた時代。
そういえば、山ほどあったカセットテープも捨ててしまった。
引っ越しで捨てざろう得なかったのだけど。
かつてレンタルレコード店というものがあったのだ。まだ、CDもなく、ビデオテープも存在しなかったころ。ウォークマンが時代をつくった時代。
そのあとに買い集めたビデオテープもすでに手元にはない。音楽CDもそうだ。iPhoneにいれてしまったので手元にもっておく意味がなくなってしまった……。
思えば、あの日々はなんだったんだろう。
それぞれの日々ではそれなりに一生懸命だったはずなのに。
いろんなものを手元に残そうとしていたのに。
今や何も残っていない。
2020年1月30日木曜日
128Gがふっ飛んで右往左往
不安はもろもろあったのだけれど、BeelinkS1の 内蔵ディスクを128Gにした。
それでようやく重い腰をあげて 本格的に使おうか、と26Gもあるファイルをscpでコピーしていたら突然、動かなくなった。sudoも効かない。何? 何? 何が起きたの?
何が起きているのか、さっぱりわからず、いろいろやってみていたら——あれ? ホームディレクトリが空っぽになっている。
ZFSがまた、ぶっ壊れた。
ところが翌日になると、うまく動いた。
また、熱ダレだったか、と思って使っていると、ふたたび、おかしくなった。
やはりだめだ。
とりあえずBeelinkS1はWindows10として使うか。
でもhome editionなのでRDPが使えない。
クライアントとして使うしかない。しかたないのでマシン本体を机の上にもってきた。これがほんとのデスクトップ。なんちゃって。でももしかしたら使えるかもしれないので、FreeBSDをいれていたSSDにフォーマットをかけた。
20GのDドライブができた。
——?
128Gじゃない。
何度、見直してみても20G。やりなおしても20G。ほんとうに壊れてしまっていたらしい。
しかたがない。
問題はWindows10とMacのやりとりだ。
もちろんネット的にはつながる。けれど、26Gなんて馬鹿でかいファイルの転送はさすがに時間がかかりすぎるので外部記憶装置が必要だ。
昔、使っていたお立ち台をひっぱりだす。
160Gのハードディスクを突っ込んでNTFSでフォーマット。
これでMacとWindows10でやりとりできるはずだ。
Macにつなげて試した——ところがreadonlyだった。書きこめない。昔、読み書きができたように思っていたのだけど。どうやらかんちがいだったらしい。うーん、これはこまった。これじゃ、Windows10からMacへの一方通行しかできないじゃないか。今、やりたいのは逆方向のMacからWindows10なのだが。
なのでexFATでフォーマットしなおした。
これなら両方で読み書きできる。
FreeBSDのSSDを納めていたスロットにはもうひとつ余っている128GのSSDをいれた。
これはNTFSでフォーマットしてDドライブとして使うことにした。
ほか、いろいろと設定をしているうちに、Macから操作ができないことに嫌になって、思わず、以前いれた Ubuntuをインストールしてしまった。128GのSSDに。
UbuntuならVNCでMac上に表示できるからMacから操作できる。
いちいちディスプレイをスイッチする必要がなくなる。
いい考えだと思ったのだけれど、UbuntuはexFATを認識してくれなかった…… 1。
それで頭に来てお立ち台のハードディスクをNTFSでフォーマットしなおしてしまった。
UbuntuはNTFSを読み書きできるけど、Macはreadonlyなんだから、元の黙阿弥ではないか。
——なんでおれは後戻りのできない性格なんだろう……。
でも勝算はなくもなかった。
Windows10はできないけれど、UbuntuはHFS+を読めるのである。readonlyだとしても。
当然、MacはHFS+を読み書きできる。
実はお立ち台はもう一台あってそれは現役でMac用に使用中。フォーマットはHFS+。
2台あるお立ち台はいずれもMac、Ubuntu間では一方通行だけど、互い違いなのでデータの往復が可能なのである。
ちょっと面倒ではあるけれど。
Footnotes:
きっと方法はあるのだろうけど、FreeBSDなら一生懸命探すのにUbuntuだと、見当らない、というだけであきらめてしまう。よくない傾向だ。
2020年1月29日水曜日
めも VirtualBox
BeelinkS1のFreeBSDにVirtualBoxを「pkg install」した。
installしたときに、設定方法が表示されたのでその通りにやれば、よかったのだけど、ゲストOSにメモリが1Gしか、割り当てることができなくて死んだ。
Message from virtualbox-ose-5.2.34:
–
VirtualBox was installed.You need to load the vboxdrv kernel module via /boot/loader.conf:
vboxdrv_load="YES"
You also have to add all users to your vboxusers group in order to use vbox.
% pw groupmod vboxusers -m jerry
Reboot the machine to load the needed kernel modules.
Bridging Support:
===============For bridged networking please add the following line to your /etc/rc.conf:
vboxnet_enable="YES"
USB Support:
==========For USB support your user needs to be in the operator group and needs read
and write permissions to the USB device.% pw groupmod operator -m jerry
Add the following to /etc/devfs.rules (create if it doesn't exist):
[system=10]
add path 'usb/*' mode 0660 group operatorTo load these new rule add the following to /etc/rc.conf:
devfs_system_ruleset="system"
Then restart devfs to load the new rules:
% /etc/rc.d/devfs restart
Troubleshooting:
==============Running VirtualBox as non-root user may fail with a fatal error
NS_ERROR_FACTORY_NOT_REGISTERED. In this case delete tmp.vbox-*-ipc file.If you experience "Network: write Failed: Cannot allocate memory" errors
try to increase net.graph.maxdata in /boot/loader.confIf you are using AIO, then increase these limits (PR#168298):
vfs.aio.max_buf_aio=8192
vfs.aio.max_aio_queue_per_proc=65536
vfs.aio.max_aio_per_proc=8192
vfs.aio.max_aio_queue=65536
To check if AIO is used use: kldstat -v | grep aioCheck wiki page for known issues and troubleshooting:
http://wiki.freebsd.org/VirtualBoxPlease report any problems to emulation@. Thanks!
$
2020年1月28日火曜日
flet(2)
cl-fletがあれば、レキシカルスコープとあわせてコードを分離できるじゃないか。「use」できないけれど、簡単なパッケージみたいなもんだよなぁ。よろこんで多用していたら——。
あれ? 再帰呼び出しができない。ふうん、「cl-labels」を使え、ということらしいな。
FUNC is defined only within FORM, not BODY, so you can’t write
recursive function definitions. Use ‘cl-labels’ for that. See
info node ‘(cl) Function Bindings’ for details.
ふむ。
2020年1月27日月曜日
Org-mode:(org-element-context)
Org-modeでカレント行のTAGを取得したいことがあって自前でいろいろやっていたんだけれど。
(org-element-context)
で取得できることに気づいた。
こりゃあ、いい。
2020年1月24日金曜日
Org-mode:(org-edit-special)
Org-modeは高機能だということは知っていたけど——だから知らない機能がけっこうあって。
たとえば、よくソースの断片をメモしているのだけれど。
#+BEGIN_SRC elisp (messge "ERROR") #+END_SRC
Org-modeの中だと、メジャーモードの機能が使えないので、別のところで修正してカット&ペーストでもってきたりしていた。
ところが「Ctrl+'」とやると、別バッファで開いてくれる。そのうえ、指定したモードにしてくれる。上の例だと「elisp-mode」 1になる。
これの何がいいのか、というと、SRCで指定しているモードは、Emacsのメジャーモードならなんでもいいはずなので、picture-modeとか、指定できるのだ。SRCの外だと、書いたpictureは勝手に整形されてしまうからこれは重宝する。
SRCの中に置いておいて修正するときは「Ctrl+'」とやるわけ。
#+BEGIN_SRC picture
-------+
|
<=====+
#+END_SRC
もちろん、Org-modeも指定できるわけで無意味だけど、それはそれでおもしろい。
Footnotes:
正確には(emacs-lisp-mode)。
2020年1月23日木曜日
helm (2)
helmが好きだ。
これがあるだけでEmacsから離れられない。最近は自前のものまでカスタマイズする始末。
たとえば、業務系のプログラム開発の現場だと、設計書はExcelで書かれていたりする。ファイル名にプログラムIDと機能名をつけたりしてね。プログラムIDは8桁のコードだったりして、けっこう泣ける。
今時? とか、思うのだけれど、下っ端がいってもかわるものではなく——。
プログラムIDがでてくるたびに一覧を探し出して、検索して機能名を調べたりするわけだ。
——めんどくさっ。
なのでhelmにぶち込んだ。
Emacsを立ち上げるときに設計書のフォルダを検索して生成したファイル一覧をhelmの「:sources」にする。ファイル一覧をプログラムIDと機能名の一覧にするわけだ。それをhelm検索する。
これでプログラムIDをいれるだけで(中途半端でも可) 1、機能名がわかる。逆に機能名からプログラムIDも引ける。
それをプロジェクトごとにつくってやると、なんと簡単な自前のデータベースができあがった。
一覧をメンテナンスする必要がないところが、これのいいところ。
「:preselect」でExcelで表示するようにしておけば、必要なときに設計書の参照もできる 2。
そうやってつくった複数の 3helmのデータベースをひとつのhelmのコマンドにまとめておけば、横断的に検索することもできる 4。すばらしい。
でもおかげでプログラムIDを全然、覚え切れない。
2020年1月22日水曜日
loopマクロ
たとえば、あるlistの中から奇数だけを抽出したい、というとき。
wrk (1 2 3 4 5 6 7 8 9 10) (loop for x in wrk collect (when (oddp x) x)) (1 nil 3 nil 5 nil 7 nil 9 nil)
こうやると、nilがまじってしまう。このケースだと、remove-ifを使えば、いいのだけの話なのだけど——loopマクロでこんな風にしていた。
(loop for x in wrk append (when (oddp x) (list x))) (1 3 5 7 9)
なんかいまいちだなぁ。
なんとこうできるのだった。
(loop for x in wrk
when (oddp x)
collect x)
(1 3 5 7 9)
すげえな、loopマクロ。
2020年1月21日火曜日
format
listのデータをformatで整形するの面倒臭いなぁ。carとnthとか、使うのはなんか、ちがうような気がする。
CommonLispのformatのように簡単にできないものか。
ん〜、もしかしたらapplyでいけるかも。
(apply #'format "%s %s %s" '( "A" "B" "C")) "A B C"
いけた。すばらしい。
2020年1月20日月曜日
2020年1月17日金曜日
GNU Screen
- sshでリモートサーバに入る。
- 作業する。
- sshを切る。
このあと、ふたたび、リモートサーバに入って、2.に接続して作業を続けたい 1。
それには「 emacs –daemon」を使っていたのだけど、RaspberryPiでrebuildしていたらメモリ不足でemacsごと、落ちてしまった。バッファをずっと溜め込んでいるだろうからなぁ……。たしか、 GNU Screenで同じことができたはず。
RaspberryPiにインストールした。
- sshでリモートサーバに入る。
- screenを立ち上げる。
- 作業する。
- Ctrl-a dでscreenからデタッチ。
- sshを切る。
このあと、
- sshでリモートサーバに入る。
- screen -r
これで前回デタッチされたscreenにアタッチされる。
ただ、キーアサインがCtrl-aなのがなぁ…… 2。
2020年1月16日木曜日
RaspberryPiのFreeBSDをrebuild
RaspberryPiのFreeBSDはバイナリアップデートがサポートされていない。
パッチが公開されたとき、ソースからビルドしなおすことになるのだけど、今までやってみたことがないので試してみることにした。
いわゆるmake world。
「 ソースを用いた FreeBSD のアップデート」にあるとおりにやっていく。
まずはソースをもってくる。これだけでも大変だった。でもsvnで管理されているから次からは差分アップデートになるはず。
次は「make -j4 buildworld」——。
延々、コンパイルが走ったあと、落ちる 1。
何度も試しあと、ようやく原因がわかる。メモリ不足だった。out of swapとか、なんとか。
swapファイルを3Gにしてもだめだったのでそこであきらめた。
最終的に「-j」指定なしでなんとか、終了した。
次に「make buildkernel」——。
落ちる。なんで? 「-j」なしなのに。ディスク容量をチェックしてみたら今までに見たことのない「-1G」という表示。なんじゃ、それ。いずれにしても32GのSDカードではリビルドするのに足りないらしい。「/usr/obj」の下が18Gもあった。
無理か。
色々、考えてUSDで外付けのハードディスクをマウントする。「/mnt」——そこへ中身を移動して「/usr/src」と「/usr/obj」のシンボリックリンクを張る。ところが、「make buildkernel」は継続できたのに「make installworld」に失敗してしまった。
しかたなく、「make buildworld」からリトライ。
成功。
「make buildkernel」成功。
「make installworld」成功。
今にしても思えば、「/mnt」にマウントするのではなく、「/usr/obj」にマウントしてもよかった。
「/usr/src」は差分アップデート用に残しておきたいので。
まぁ、リビルトができることはわかっただけでも収穫。
日単位で時間はかかったけど。
Footnotes:
最初、「-j」なしでやっていたのだけど、あまりにも時間がかかるので「-j4」でやっていた。
2020年1月15日水曜日
押井守監督「スカイ・クロラ」
2020年1月14日火曜日
2020年1月11日土曜日
USB-C Digital AV Multiportアダプタ
MacBook Air 13にはUSB-Cのポートがふたつしか、ついていない。
片方を電源コネクタにつなぐと、残りのポートはひとつだけ。HDMIをつないで クラムシェルモードにしたらほかのUSB機器はどうすればいいんだ?
というわけで「USB-C Digital AV Multiportアダプタ」なるものを購入した。
+- USB-C(メス)
|
USB-C --+- HDMI
(オス) |
+- USB
となっている。これでUSB-Cを電源につないでしまって残り一個になっても安心だ。USBポートがあるし、アダプタのUSB-Cにつないでデイジーチェーンにすれば、さらに拡張できるだろう。Apple、いい商売しているな。
と……。
あれ?
ちょっと待て。
もしかしたらアダプタのUSB-Cに電源をつなげることができるんじゃないか?
充電できるんじゃないか?
試してみたらできた。
つまりアダプタ一個で、充電しながらHDMIが使えるということだ。消費するのはMacのUSB-Cひとつだけ。それでクラムシェルモードにできるということ。
2020年1月10日金曜日
2020年1月9日木曜日
RaspberryPiをUbuntu Server(元旦からあかんかった)
FreeBSDが動くので、RaspberryPiをサーバにできるな、と思っていたのだけれど、どうもPostgreSQLがへんだ。普通に動いているように見えて配列のカラムを全部、NULLにしようとすると、エラーになる。BeelinkS1で動かしているFreeBSDではだいじょうぶなのだが——。Google先生でもヒットしないし、PostgreSQLのバージョンのちがいせいでもなさそうだ。 Raspbianでもちゃんと動くし。
うーん、配列のカラムを全部、NULLにしなければ、問題なさそうなのだけれど、するんだよなぁ。今あるやつ。
しかたないのでUbuntu Serverにでもするか、と元旦からインストールしていた。
Ubuntu Serverには——。
・SBCLもあるし。
・オンボードのwifiも使えるし。
・ssh -Yも使えたし。
・64bitだし。
よくわからんからたどたどと試行錯誤しながらインストールしていったのだけど。
ところが、なぜか、使っている途中でネットワーク——wifiが切れる。
どうも ここの事象と同じっぽい気がするのだけれど、解決しない。切れる。
あかんわー。
あきらめだわー。
元旦が一日、無駄になったわー。
2020年1月8日水曜日
ノートパソコン・ヒストリー
今までどんなノートブックパソコン——昔はラップトップといっていたよね——を使ってきたんだっけ。
そもそもSun Microsystemsの20万もしたラップトップ・ワークステーション 1が欲しかったんだよねぇ。ただし、あれはキャリーバックがなければ、運べない代物だったし、何に使えば、いいんだ、という話で、結局、購入しなかった。
| 購入日付 | 名前 | 備考 |
|---|---|---|
| l990-05-12 | OASYS/ラップトップ | ワープロ |
| 1993-02-24 | dynabook SS001 | フロッピィディスクが二台使えると画期的だった |
| 1995-01-09 | HP200LX | いわずと知れた名機 |
| 1997-08-18 | Libretto30 | |
| 2001-01-21 | ThinkPad iSersies1124 | |
| 2006-11-24 | ThinkPad X60 | |
| 2014-12-06 | MacBook Air (11-inch, Early 2014) | |
| 2020-01-05 | MacBook Air (Retina, 13-inch, 2019) |
OASYSとHP200LXはノートブックパソコンとはいえないけれど、それらをのぞくとだいたい5年周期で買い替えている。 ThinkPad X60は例外だけれど。だとすると、今回の MacBook Airの買い換えはそういう時期だったんだなぁ。
実は1990年ごろにもらいもののPowerBook 5300CSを所有していたけれど、まったく使えない代物で、しかも2kgごえ。PCカードをアウンマウントできない、という個人的には最低のマシンだった。 40Gのハードディスクはその遺物だ。
こうやってみると、この30年間の変遷が感じられて感慨深い。
2020年1月7日火曜日
MacBook Air (Retina, 13-inch, 2019)
「 とても後悔している」わりに、モノが到着すると、現金なもので。
思ったよりも筐体の大きさは先代とあまりかわらず。重さは——やはり重かったけれど。スペック値で300gほど。
ただ、五年も使っていると、けっこう傷ついていることに気づく。
さすがに新品と比べると一目瞭然。
これなら買い替えてよかったかな、という気になった。内蔵ディスプレイもRetinaなのでクリアなことだし。外付けのDELLのディスプレイよりも。
到着直後、すぐに移行アシスタントと使って環境を移行したのだけれど、うっかりソフトウェアアップデートをかけてしまった。OSがCatelinaに。元々、Catelinaだったのかもしれないのだが。それに気づかないほど、うっかりとアップデートしてしまった。
結果、Emacs、VirtualBoxが動かなくなる。
なんかDocumentsフォルダの下を読みこめないのだ。
Emacsにフルアクセス権を与えてもだめで、なぜ? ——謎。
何度か、移行をくりかえしたけれど、だめ。
しかたないので先代のフルバックアップからごっそりMacBookAir13にインストール。OSはデグレートしてMojaveに——まぁ、中身まんま、先代なのだからこれなら動くわけだ。
基本的には買い替えてよかったな、なのだけれど、二点ほど違和感が。
ひとつ、蓋が開けづらい。MacBookAirがデビューしたときには指一本で蓋が開くことが売りだったのに——むずい。ふたつ、キーボードの打鍵が硬くて浅い。馴れなのかもしれないが。指の腹でなでるようにしないといけないんだろうな、これは。
ただ11インチがMacのノートパソコンのラインナップから消えたのはわかるような気がした。実物に触れると。サイズ的にはほとんどかわらないのに、ディスプレイは広いし、きれい、となると。
2020年1月5日日曜日
MacBook Air 13インチを購入
MacBook Air 13インチを買ってしまった。
まだまだ、手持ちの MacBook Airは使えるというのに。外付け ディスプレイをつないで映画も観れるし、全然、現役だ。バッテリーがすこしへたりはじめているけど、最近は電源で使用することが多いので問題はない。
なのに。
なのにどーしてー。
不満は買った当時から失敗したと思っていた内蔵ディスクの容量不足だけだったのに。
それなのにMacBook Air 13インチには次のデメリットがある。
また、Windowsのノートブックへ戻すことも考えていたのだけれど、今は完全にAppleのエコシステムにからめとられてしまっているので、しばらくはむずかしい。とくにトラックパッドの動きはMacに軍配が上がりすぎる。
購入金額から考えていっそ、MacBook Airではなく、上位互換のMacBook Proという線も考えたのだけれど、Touch Barがなぁ、あれ、何に使うの? クラムモードではそもそも不要じゃないか。
というわけでMacBook Air 13インチを購入した。
とても後悔している。ただしこれはいつものこと。
2020年1月3日金曜日
2020年1月1日水曜日
2019年12月31日火曜日
bootしなくなった
内蔵ディスクをSSDに換装してすぐにbootしなくなった。
あれ?
どうやら内蔵ディスクをbootディスクと認識していないようだ。おかしいなぁ。もしかしたらパーティションの拡張をしたときになんか、やっちゃったのかなぁ 1。
とりあえず、bootコードをぶちこむ。
gpart bootcode -p /boot/boot1.efifat -i 1 ada0
2019年12月30日月曜日
40G=>128Gへ
Beelink S1のディスクは いろいろあってハードディスクにしていたのだけれど、容量が40Gしかない。やはり128Gある、SSDに交換しよう。どうすれば、いいかな……。
FreeBSDのインストールUSBからBeelink S1を立ち上げて、ddコマンドで40Gの中身を丸ごとコピーすることにした。内蔵ディスクの40Gから 「ORICO USB3.0 HDDスタンド」へ接続した128Gへ。
dd if=/dev/ada0 of=/dev/da0 bs=1m
内蔵ディスクをSSDに取り替えてboot。
立ち上がった。ZFSは勝手に空きを使ってくれるんだよね……と思っていたらあれ?
$ df -h df -h Filesystem Size Used Avail Capacity Mounted on zroot/ROOT/default 26G 7.0G 19G 27% / devfs 1.0K 1.0K 0B 100% /dev zroot/var/mail 19G 200K 19G 0% /var/mail zroot/var/audit 19G 88K 19G 0% /var/audit zroot/usr/ports 20G 696M 19G 3% /usr/ports zroot/usr/home 20G 318M 19G 2% /usr/home zroot/usr/src 19G 88K 19G 0% /usr/src zroot/tmp 19G 6.4M 19G 0% /tmp zroot 19G 88K 19G 0% /zroot zroot/var/crash 20G 614M 19G 3% /var/crash zroot/var/log 19G 700K 19G 0% /var/log zroot/var/tmp 19G 88K 19G 0% /var/tmp $
40Gしか認識してねえ。
zpool online -e zroot /dev/ada0p4
でもだめで、
$ zfs list zfs list NAME USED AVAIL REFER MOUNTPOINT zroot 14.7G 19.2G 88K /zroot zroot/ROOT 11.5G 19.2G 88K none zroot/ROOT/default 11.5G 19.2G 6.95G / zroot/tmp 10.3M 19.2G 6.39M /tmp zroot/usr 2.47G 19.2G 88K /usr zroot/usr/home 1.78G 19.2G 318M /usr/home zroot/usr/ports 706M 19.2G 696M /usr/ports zroot/usr/src 144K 19.2G 88K /usr/src zroot/var 624M 19.2G 88K /var zroot/var/audit 144K 19.2G 88K /var/audit zroot/var/crash 615M 19.2G 614M /var/crash zroot/var/log 6.36M 19.2G 700K /var/log zroot/var/mail 2.18M 19.2G 200K /var/mail zroot/var/tmp 496K 19.2G 88K /var/tmp $
認識してくれない。うーむ。
$ gpart show ada0
gpart show ada0
=> 40 78140080 ada0 GPT (119G)
40 409600 1 efi (200M)
409640 1024 2 freebsd-boot (512K)
410664 984 - free - (492K)
411648 4194304 3 freebsd-swap (2.0G)
4605952 73533440 4 freebsd-zfs (35G)
78139392 728 - free - (364K)
gpartで見てみると、なるほど。ada0は119Gあるのに、zfsの領域を35Gしか、認識していない。これか。調べてみると、gpartにはresizeというサブコマンドがある。こうか?
$ sudo gpart resize -i 4 ada0
sudo gpart resize -i 4 ada0
ada0p4 resized
$ gpart show ada0
gpart show ada0
=> 40 250069600 ada0 GPT (119G)
40 409600 1 efi (200M)
409640 1024 2 freebsd-boot (512K)
410664 984 - free - (492K)
411648 4194304 3 freebsd-swap (2.0G)
4605952 245463688 4 freebsd-zfs (117G)
うまくいった。
けれど、これだけではまだ、足りなくてZFSの方で認識してくれてなかった。なのであらためて。
zpool online -e zroot /dev/ada0p4
$ zfs list zfs list NAME USED AVAIL REFER MOUNTPOINT zroot 14.6G 98.7G 88K /zroot zroot/ROOT 11.5G 98.7G 88K none zroot/ROOT/default 11.5G 98.7G 6.96G / zroot/tmp 10.4M 98.7G 6.39M /tmp zroot/usr 2.46G 98.7G 88K /usr zroot/usr/home 1.77G 98.7G 315M /usr/home zroot/usr/ports 706M 98.7G 696M /usr/ports zroot/usr/src 144K 98.7G 88K /usr/src zroot/var 624M 98.7G 88K /var zroot/var/audit 144K 98.7G 88K /var/audit zroot/var/crash 615M 98.7G 614M /var/crash zroot/var/log 6.39M 98.7G 720K /var/log zroot/var/mail 2.09M 98.7G 200K /var/mail zroot/var/tmp 504K 98.7G 88K /var/tmp $
いきましたね。よかったよかった 1。
Footnotes:
実はいつか、わからないけどbootコードを壊してしまっていたのだった。
2019年12月25日水曜日
2019年12月14日土曜日
(org-table-transpose-table-at-point)
org-modeの「org-table-convert-region」で表に変換するとき、よく縦横変換したいことがある。自前で状況に特化した簡単なコードを書いていたんだけど、org-table.elにそんなfunctionがないはずがない。本気で探してみたらあった。
(org-table-transpose-table-at-point)
まんまの*Help*がでてきた。
org-table-transpose-table-at-point is an interactive compiled Lisp function in ‘org-table.el’. (org-table-transpose-table-at-point) Transpose Org table at point and eliminate hlines. So a table like | 1 | 2 | 4 | 5 | |---+---+---+---| | a | b | c | d | | e | f | g | h | will be transposed as | 1 | a | e | | 2 | b | f | | 4 | c | g | | 5 | d | h | Note that horizontal lines disappear. [back]























