Bashプロンプトを短縮して表示する

WSL2 ubuntu の bush プロンプトに意味もなく長く表示されるプロンプト。

この中の、ユーザ名@DESKTOP-EFS7USK(ホスト名)を非表示にして、もっと短く表示したいというのが私の願望。

これには、PS1(大文字であることに注意)という変数の設定値を変更する必要があるとのこと。
中々面倒な設定だが、何はさておき、次の文を “.bashrc” の末尾に追加すれば、ユーザ名@ホスト名を非表示にできる。

結果は、こんな感じ。

なお、「(base)」は python の仮想環境を表すもので、必要なのでそのまま残してある。

PS1の設定については、Qiitaに詳細な説明がある。

Ubuntu 22.04 インストールできず

Ubuntu 22.04 LTS が正式リリースされたというので、早速チャレンジしてみたのだが、問題ありありのこんこんちきだ。

仮想マシンの設定などの前準備はさておき、インストールから話をする。

まず最初に表示された次の画面左側で、「日本語」を選択する。

メニューが日本語に変わる。ここで、右側の「Ubuntuをインストール」でインストールを始めたのだが・・・

次の、「キーボードレイアウト」を設定で “Japanese” を選択したものの、ボタンが隠れてしまって、次の操作ができないのだ。どんな種類のボタンが幾つあって、どう並んでいるのかが分かれば、矢印キーやタブキーを使えばそれなりに対応もできるのだが、それが全く分からないのではもうお手上げ白旗降参するしかない。


しかし、退散しようにも、そのボタンすらないので、右上の電源ボタンで “Power off” 。が、反応なし。進退窮まるとは正にこのこと。もう最後の手段、「×」ボタンをクリック。幸いここにシャットダウンがあり、何とか無事に退却はできた。

どうも、日本語によるインストールが問題のようだ。
因みに、英語によるインストールの場合の「キーボードレイアウト」画面は、以下のように表示される。

この問題は、私固有のものなのだろうか。また、これを回避する手段はあるのだろうか(因みに、画面を広げても無駄)。

この原因は、日本語フォントにあるのは間違いないだろう。
日本語にこだわらなければ、英語のままインストールできるのだが、以後ずうっと英語とお付き合いするのも面倒なので、改善されるのを待つとしようかな。

Atx形式とSetext形式

Markdownにおいて、見出しの定義方法に2種類あることは知っていたものの、それにAtx形式とSetext形式と言う名称があることまでは知らなかった。
それぞれ、どのようなものかを例で示すと、以下のようなものになる。

Atx形式

Setext形式

見出し以外は?となると、Markdownには存在しない。
要するに、Markdownには見出しの定義に2種類の方法があるというだけの話だ。

ではなぜ、このテーマにしたかと言えば、その形式の名前に興味を持った為だ。
AtxとかSetextとか、何者?

Wikipedia(英語版)によれば、SetextとはStructure Enhanced Textの略で、軽量のマークアップ言語とのこと。
Atxについては、検索しても見つけることができなかったが、Setext同様、軽量のマークアップ言語であろうと想像できる。

GitHubとかCommonMarkとかの方言(フレーバ)ではなく、元々のMarkdownにこの2種類の記法がある理由は、これを開発する上で参考にしたのが、AtxやSetextではなかったのではないだろうか。

それにしても、軽量のマークアップ言語のなんと多いことか。

shinyapps.ioへのdeploy

shinyapps.ioへのアプリのデプロイ方法について、簡単にまとめておくことにする。

(1) shinyapps.ioへのログイン
Googleniにアカウントがあれば簡単にログインが可能。

 

(2) アカウント認証用のトークンとシークレット取得
ログイン後の画面で、アカウント認証用のトークンとシークレットを取得する。

 

この操作で、左側に表示されているコードのsecret部分に正しい認証キーが展開されたものが、クリップボードにコピーされる。
(3) アカウント認証
① rsconnect のインストール
インストールしていなければ、次によりインストールする。

② 認証処理
RStudioやRコンソールに、前の操作でコピーしたコードを貼り付け実行する。

以上で、アカウントが作成される。
いざ、デプロイ!

一番簡単なRStudiからのデプロイを行う。
(1) app.R を開く
手元にソースがなければ、このデモ用のコードを使うのも良いだろう。

(2) コードの実行
Run App でコードを実行する。

 

(3) 公開
表示されたウィンドウの Publish ボタンをクリックする。

 

この操作で、ダイアログが表示されるが、そこでも Publish ボタンをクリックする。
これで少々待てば、ブラウザが開きShinyが表示されるはず。

(追)
この例で表示される初期画面は、まるでバグが発生したような内容なので、Y軸に Price を指定してみると、それらしいグラフになる(下図参照)。

Ubuntu の起動ができない

久し振りにVirtualBoxからUbuntuを起動しようとしたら、下のような VirtualBox エラーが表示され起動できない。

私の手には負えないのでググって調べた結果、様々な状況で同じようなエラーが発生するようだ。
でも、共通するのは windows10 側の仮想マシンの設定にあるらしいことが徐々に分かってきた。どうも、これが設定されていると VirtualBox が実行できなくなるようだ。

仮想マシンが設定されているかどうかの確認

windows10 で

  • コントロールパネル→プログラム
  • 「プログラムと機能」を選択
  • 左側の「windows の機能の有効化または無効化」
  • 開かれたダイアログで「仮想マシンプラットフォーム」を確認

もし、これがチェックされていれば、仮想マシンが設定されていることになる。
その場合は、

  • チェックを外し「OK」をクリックする
  • 再起動

することにより仮想マシンを削除できる。

以上を行った結果、私の場合は正常にUbuntuが起動できるようになった。

POVO2.0 「接続できませんでした」の対処法

今日、スマホからインフルエンザの予防接種を予約しようと、
かかりつけの医院に電話をしたら
発信音もなく「接続できませんでした」とのご託宣。
「連絡帳」からの発信の所為かと、キーパッドから再度電話をしても状態変わらず。

念のため、自宅の固定電話に掛けてみると、問題なく自宅には繋がる。

医院の電話に問題あるのか?
固定電話から掛けてみる。
何事もなく繋がり、明日の接種予約を済ませる。

これは何か変だぞ!
市役所やら大病院やらに電話をしてみる。
いずこも発信音すら無く「接続できませんでした」となってしまう。

ここまでくると、スマホに問題があることは明白。
Povo 2.0 にしたばかりだし、eSIM への切り替えでインターネット接続ができず大慌てしたばかりだし・・・

キーワードを変えながら、漸く探し出したのが
POVO2.0「発信テスト」❝接続できませんでした❞の対処法、私の場合は簡単なことだった

要するに、eSIM に切り替えた場合は、内蔵されている SIM を取り外さないと
発信ができないとのこと。

全ては自分のミスではあるのだが、Povo1.0 -> Povo2.0 への契約変更は
年老いた私に取って中々ハードな作業だ。

StackEditがscroll syncしない

scroll sync とは、左の編集画面と右のプレビュー画面の同期のこと。
左の画面をスクロールすると、右の画面もそれに応じてスクロールする。
または、その逆で右スクロールに合わせて、左もスクロールすることを
いいます。

StackEdit では、その機能がデフォルトでサポートされていたはずだった
のが、全く機能していないことに最近気づいた。

StackEditのcroll syncについて、インターネットで検索しても情報は全くなし。
“Settings” を見ても、それらしき設定箇所は見当たらず。

更に、右サイドバー探していると “Reset application” と言う項目がある
ではないか!
「これだ!」と思い、ためらわずにプチッと。

確かに、リセットされました。
scroll sync も、元通り機能するようになりました。

そして、作成した数々の資料も跡かたなく!

StackEdit で作成した成果物は一体何処に保存されていたのでしょうか?
まさか、成果物までリセットされるとは思わなんだ。

やはり、バックアップはきっちり行っておくべきですね。

で、標題の原因は?
全く不明。
考えられるのは、作成資料が多くなり過ぎた事くらい、かな?

しかし、この確認のためVirtulBoxのUbuntu20.04の Googlw Cheome では
スクロールは同期していたなぁ。

結論。分からん!

追伸

な、な、何と。
今し方、StackEdit を開いたら削除されたはずの資料が全部復活してるではないか!
しかも、scroll sync も全く問題なく、左右が同期してスクロールしている。
まるで真夏の夜の怪談噺のような!

Markdownでコードブロックに3連のバッククォートを書く

Markdown では、複数行コードブロックは以下のように、3連のバッククォートで囲います。

そのブロックに3連のバッククォートを書く時は、4連のバッククォートを使い
4連のバッククォートを書く時には、5連のバッククォートを使います。
markdownの中でhtml記法を用いて書くことも可能です。
しかし、Markdownでは正しく表示されますが、Sphinx でhtmlに変換したところ
次のように、改行の無い1行の文になってしまったので、適切なやり方では
ないようです。

Honkit生成ページの先頭1行が・・・

stackEditで3種類のページを作成し、ローカルにダウンロードしてHonkitでhtmlを生成したところ、各ページの先頭1行の見出し(<h1>)が、単なる段落(<p>)として表示されるという問題が発生した。

2行目以降は全く問題がなく、先頭1行だけがダメで、Markdown構文の問題とかSUMMARY.mdの書き方が悪いのでは等々、いろいろ考え変更をしてみたものの全く状況は変わらない。
確認した状況を整理してみると、

  1. ページ先頭1行目の見出しが、単なるとして表示される
  2. 先頭1行を空行にして、見出しを2行目にすると正常に表示される
  3. 以前に作ったMarkdownを使うと正常に表示される

ここまで来て、漸く気付いたのがエンコーディングの問題。
どこかで読んだ記憶では、エンコードはUTF-8(BOMなし)でなければならない。

ファイルを直ぐに確認すると、なんとUTF-8(BOM)。BOMが付いている!
先頭1行がうまく表示されない理由は、これで説明がつく。
何ともお粗末。約1日の無駄作業でした。

SphinxでMarkdown

Sphinxにおけるデフォルトの言語は、reStructuredTextであるが、Markdownに比べ記法が複雑で改めてそれを覚えるのも面倒で、多少知識のあるhtmlを使った方が良い位である。
そこで、MarkdownをSphinxで使えないか調べてみた。
Sphinxの本家本元のドキュメントには、Markdownを使うための記述がある(Markdown参照)が、その具体的な使用方法はMySTに聞けとそっけない。
情報も少ないので、当該サイトの手順に則り作業を進める。
1. MyST のインストール

2. ドキュメントのソースの準備
適当なディレクトリを作成し、その中に次によりドキュメントのソースを作る。

3. conf.py の編集
conf.py に次の行を追加する。

以上で、準備は完了。

いざ、Get started with MyST in Sphinxを参考にページを作ろうと、

をmyfile.mdとして作ったものの、次のファイル名をどうするか?

説明は以下の通りであるが、英語力がないのか、技術力が不足しているのか理解ができない。

In the “main document” of your Sphinx project (the landing page of your Sphinx documentation), include myfile.md in a toctree directive so that it is included in your documentation:

概ね、Sphinxプロジェクトの「メインドキュメント」(Sphinxドキュメントのランディングページ)のtoctree ディレクティブに myfile.md を指定せよ言っていると思うが、ランディングページとは何者か???
このディレクティブは、rst(reStructuredTextの略)のものなので index.rst に記述しても、myfile.md は拡張子が違うので無視されてしまう。
index.mdとすると、markdownにディレクティブなどと言う概念がないので、”.. toctree::” は単なる文字列として扱われてしまうのみ。
そこでいろいろ調た結果分かったことは、Markdown 拡張版(?)の “MyST” を使用するということだった。
結論、index.md に次のように記述する。

これで、今日一日を棒に振ってしまった。

参考:https://coderefinery.github.io/sphinx-lesson/toctree/