VirtualBox Guest Additions のアップデート

よく分かっていなかったので、アップデート方法をメモしておく。

デスクトップの上部に「Virtualbox Guest Additions update available」と言うようなメッセージが表示されたら、以下の手順でアップデートする。
(1)デスクトップ上の「VBoc_GAs_XXXX」(XXXX:バージョン番号)をダブルクリック

(2)autorun.sh の実行

以上

ナンクロにはまる(4)検索

SQL に精通していない私にとり、「くり121」のような検索(slelect)でも何とかなるだろうとボンヤリと考えていたが、調べてみると SQL で出来るのは精々「くり___」まで。
「くり」を含む5文字の単語検索は SQL で出来ても、「121」の部分は自力で対応せざるを得ないようだ。

年の所為か妙案が全く浮かばない。
華麗なロジックを諦め、捻り出したのが超ダサい
全文字総当たり方式
つまり、
(p1) 「くり___」で得られた結果の集合から配列Aを作る。
(p2) 1 の部分に「あ~ん」+ 「-(カナ長音)」、2 の部分に「1 以外の文字」
を割り当てた文字列aを作る(実際には、「く」と「り」を除く必要がある)。
(p3) 「くり+a」が配列Aに存在するかチェックする。
(p4) 存在した「くり+a」だけで配列Bを作成すれば「くり121」に絞り込める。
という次第。
ダサいが確実、でも処理時間 & 処理方式が・・・
ということで、無い知恵を絞り考え出したのが以下の改善策。

検索文字数の絞り込み

(1) 変数の「1と2」に該当するのは、「くり___」で得られた文字の範囲に限られる。
(2) その中に「く」と「り」が含まれていれば、既に使用済みなのでそれを削除する。
この集合をCとする。
(3) 上記(p2)の「あ~ん」+ 「-(カナ長音)」に代え、集合Cを使用すれば、検索する
文字数を減らすことが可能ではないか。
この方式以外に名案が思い浮かばないのでこれに決定。
配列A内の全単語を一文字ずつに分解し、重複する文字を削除して文字集合Cを作るのは
それ程難しくはない。

存在チェック

(p3)の存在チェック処理方式は、「正規表現」の一択のみ!
その汚いロジックを見られたくないのでサーバサイド(PHP)でやることに!

正規表現パターンの生成と絞り込み

① 「1→あ」の場合、「くり121」から正規表現のパターン
/’くりあ[^あ]あ’/
を生成する。

  • preg_replace(/’1’/, ‘あ’, ‘くり121’) → くりあ2あ
  • preg_replace(/’2’/, ‘[^あ]’, ‘くりあ2あ’) → くりあ[^あ]あ

② このパターンを配列Aとマッチング
preg.match(/’くりあ[^あ]あ’/, 配列A[n])

処理に関しては、方式のみでこれ以上の深入りは避けようと思います。
完成品はナンクロ単語検索をご覧ください。

ナンクロにはまる(3)辞書

ナンクロ用の単語辞書作成手順を以下に示します。
辞書には次の2つを使用することにしました。
(1)豚辞書(第12版)……. ①
(2)SKK辞書(SKK-JISYO.L)..②
豚辞書(第14版)が最新らしいが、現在は公開していないらしく入手できませんでした。
版を重ねている分、14版の方が単語数が多いのだろうと推測できるので、その少ない分をSKK辞書から追加しようとの作戦です。

SKK辞書を使用するに当たり、次の変更を加えています。
(1)動詞の活用形部分等は不要なため、先頭から英字単語までの全体を削除
(2)かな部分に “>” や “#” を含むものを削除
(3)拗促音「ぁぃぅぇぉっゃゅょ」を「あいうえおつやゆよ」に変換

この ①、② からcsvファイル(1フィールドの単純なプレーンテキストファイル)を作成し、sqlite3 にインポートしました。
この DB 操作には、「DB Browser(SQLite)」がお勧めです。

このデータを公開するには、著作権上問題なしとはしないので公開は控えます。
個人的にプログラミングの練習に必要な方は、コメントを残してください。
対応を検討します(2019年内のみ)。

ナンクロにはまる(2)

「ナンクロかな/漢字単語検索」を使ってみて、
(1)どのような辞書を使い
(2)それをどのように検索しているのか
との、疑問が湧いてくる。
病院内では如何ともし難い。スマホはあっても金食い虫で、基本スマホは
使用禁止にしていたので、退院後自宅での課題とした。
以下は、自宅で調査した内容です。

辞書

「ナンクロかな/漢字単語検索」で使用している辞書は次の2種類。
(1)豚辞書(第14版)
(2)SKK辞書
豚辞書(第14版)は、現在は公開されてない(2019/8/20現在)ようです。第12版は Vector
から入手できます。
SKK辞書は、上のリンクを辿ればダウンロード可能です。
なお、SKK辞書は通常の辞書ですので、拗促音(ぁぃぅぇぉっゃゅょ)を大文字に変換
しないと、豚辞書との整合性が取れない点に注意する必要があります。

検索方法

SQLでどうにかなるかなと思いきや、検索したい未知のかな文字に指定できるのは
“%” か “_”(アンダーバー)のみ。
例え単語用の辞書をRDBに作成したとしても、「くり121」を検索するには、

これが限界。
プログラムで対応せざるを得ないことに漸く気付くも、ロジックが・・・・

ナンクロ用単語辞書作成
ナンクロ用単語検索

ナンクロにはまる(1)

6/末から7/30までの長期間にわたり、病気治療のため入院を余儀なくされた。
この病、痛くも痒くもないので病院内なら移動は自由(点滴棒と一緒なら)。
余りに退屈なので、1階にあるコンビニを覗くとクロスワードパズルや
ナンプレ(数独)などの雑誌がたくさん並んでいる中で選んだのが「ナンクロ」。

部屋に戻り、内容を見てビックリ。
クロスワードのようなヒントはなく、わずかなカナ文字が数個指定されている
のみで、残り30字程度の文字をそのわずかなヒントから類推して、マスの中に
指定された番号にそれを埋め完成させるというもの。

これはなかなか難解で、入院後半の退屈さを十分紛らわせてもらいました。

単語がどうしても類推できなかったら、
「ナンクロかな/漢字単語検索」
というサイトもあるのでご参考までに。

blogdownへの道(6):終

GitHubのブログを公開

いよいよ最終回です。
次の手順で、アップしたブログを公開してみます。

  1. GitHub にアップした my_blog を開き、”setting” タブを選択します。
    図 6-1 公開手順 初期画面
  2. 表示された画面を、下方にスクロールし “GitHub Pages” というタイトルを探します。
    その中の、”Source” の下にある “None” と表示されたプルダウンをクリックします。
    そのプルダウンから、”master branch/docs folder” を選択します。
    図 6-2 ソース選択
  3. この操作で、公開サイトのリンクが先程の “Source” のすぐ上に表示されます。
    図 6-3 公開サイト

以上の結果、表示されたのがこの画面!

図 6-4 残念な結果

CSS、画像、Post 等々全然無視されている!
何故だ?!

(追記)
アップロード時に、Hugo のテーマと css や JavaScript が ./docs に正しくアーカイブされていないのが原因と思われます。
そのため

を実行すると、docs フォルダが作成され、その下にサイトの公開に必要なものがすべてアーカイブされます。
その結果、
図 6-5 最終結果
このように、正常に表示されるようになりました。
【前に:blogdownへの道(5)】

Anaconda環境へのPycharmインストール

【発生した問題点】

インストールした Anaconda 環境下で Pycharm が動作しない。

【環境】

  1. OS : windows 10
  2. Anaconda3-2018-12(64bit版)
  3. pycharm-community-2018.3.3

【状況の整理】

  1. Pycharm: File->Settings->Project python->Project Interpreter には
    「~/Anaconda3/python.exe」を設定済み
  2. Pycharm アイコンから起動した場合、import した numpy などのパッケージがエラーになる
  3. Anaconda Prompt のコマンドラインから起動すると、この現象が発生せず正常に動作する
  4. idle も同様に、コマンドプロンプトから起動すると import でエラーになるが、Anaconda Prompt から起動した場合はエラーにならない
  5. 【対策】

    「Anaconda Prompt と Command Prompt で動作が異なるのは、Path の設定に違いがあるのでは」との推測のもとに、以下により双方の Path 情報をファイルに出力して比較してみた。

    その結果、Anaconda Prompt 側から得られた Path には、次の 6つが追加されているのが判明した。

    この 6 種のパスを、環境変数の Path に設定し Python を起動したところ問題なく実行できるようになった。
    (なお、Anaconda3\Library\usr\bin と Anaconda3\bin は存在しないので指定不要かと思われる。 )

    パソコンを新しくして、悩み続けた1か月。
    漸く Pycharm が動くようになった。
    目出度し!

Graphviz 周りの用語

色々な単語が出てくるので、整理しておく。

用語 内容
diagrammeR R におけるグラフ(Graphviz)描画のためのパッケージ
grViz diagrammeR のグラフ描画用の関数。Graphvizにはない @@ 等の機能が追加されている。
Graphviz グラフ描画の本家本元。
dot グラフ記述用の言語。dot 自体は有向グラフ描画用。他に無向グラフ用に NEATO などもある。
viz.js JavaScrit 用のライブラリ。
full.render.js JavaScrit 用のライブラリ。V 2.0 より前はviz.jsだけをインクルードするだけだったが、V 2.0 からはこのライブラリもインクルードしなければならない。

Viz.js – HTMLでGraphviz

前置きはさておき、ここでは「Viz.js」の使用方法を例を持って示していきます。

【js ライブラリの取得】

GitHubから、

  • full.render.js
  • viz.js

をダウンロードして、好みの場所に配置します。

【実行サンプル】

viz-examplesscript-tagをクリックしてディレクトリを開き、その中のno-worker.htmlを開らいてソースコードをコピーします。それを、テキストエディタに貼付け、保存します。

ここでは、「01-original.html」として保存しました。
これを実行すれば、次の様なグラフが表示されるハズです。

【改善 その1】

グラフ記述部分(以下「Dot」)「digraph { a -> b; }」を外出しにします。

更に、(1) を次のように書き換えて見ます。
残念ながら「SyntaxError: ” string literal contains an unescaped line break」
Dot内に「改行」が使えない模様。

【改善 その2】

複雑な Dot を記述する時に、改行やタブが使えないようでは話になりません。
そこで、新たな改善策。

script タグ内に Dot を単独で定義するようにしました。
それを HTML ソースとして入力すれば、改行や余分なスペースが無視されることを利用しています。
これで、Dot 内でも改行が使用できるようになりました。

【改善 その3】

ここまで来ると、Dot を外部ファイルにしたくなるのは当然の成り行き。
ついでに、jQuery と Bootstrap も導入し DOM の操作や style の改善をしておきましょう。

【サンプル集】

  1. Cluster
  2. Data Struct
  3. Crazy
  4. multi_layout

Ubuntu 18.04 にTeXlive2018をインストール

LaTeX のインストールについては、apt-get による様々な方法が説明されています。しかし、何れの方法をとっても、RStudio において R Markdown を PDF に変換できないのです。何かが足りないようではあるのですが、その何かが分からない。エラーログが、もう少しユーザフレンドリーであったらな~

そこで、最も確実なインストール方法として TeX Live ホームページの手順に従うことにしたものです。

手順

  1. インストーラのダウンロード
  2. インストーラによる TeXlive のインストール
  3. シンボリックリンクの作成

1.インストーラのダウンロード

TeX Live ホームページに行き、”download” をクリックする。

遷移したページの中から、「install-tl-unx.tar.gz (3mb)」をクリックしてダウンロードする。

ダウンロードしたファイルを解凍します。

2.インストーラによる TeXlive のインストール

TeXlive のインストールは、次のコマンドを実行するだけです。

これを実行すると、ズラズラとメッセージが表示され、最後に次のメッセージが表示され、待ち状態になります。

ここで、「i」を入力して、Enter キーを押下するとインストールが始まります。
時間はかかりますが、操作が単純で余分なことをせずにフルインストールができるのが、素晴らしい点です。

3.シンボリックリンクの作成

インストールが完了したら、”/usr/local/bin”以下にシンボリックリンクを作成します。

(注):「2018」の部分は、TeXLive のリリースバージョン(年)毎に異なります。
これにてTeXliveのインストールは完了です。

動作確認

(1) TeX 文書

次の文書を、”sample.tex” として保存します。

端末から、次のコマンドを入力し、PDF 文書が作成されるかを確認します。

(2) R Markdown

RStudio から次の R Markdown を入力し、knit します。

「mainfont」は、自分の環境に合わせ変更してください。日本語フォントを指定しないと、日本語部分が削除され「2018712」と表示されます。

latex_engine について

latex_engine: lualatex としても latex_engine: xelatex としても、問題なく動作しました。
しかし、これを指定しないとエラーで動作が停止しますので、必ず指定してください。

(参考サイト)

  1. TeX Live 2018 のインストール
  2. Ubuntu 14.04 LTSにTeXlive2015をインストール

-以上-