2021年8月31日火曜日

Fcitx5

Debian 11 (bullseye) の KDEの日本語入力を Fcitx5 + mozcにした。

Fcitix5から「インプットのメソッドを設定」
または、アプリケーション→設定→Fcitx5設定。

「入力メソッドを追加」でmozcを指定できなかった。

原因は、[+ 追加]ボタンがない?


ボタンが枠外に表示されてるのに気づかなかっただけ。ウィンドウの枠幅を広げればちゃんとある。


mozcを選んで、[+ 追加]、[適用]、[OK]で設定完了。

環境とディスプレイ設定の関係で起きたらしい。KDE Kdialogの仕様変更もちょくちょく。

Debian bullseye KDEでの Fcitx5 + mozcの設定まとめ。
・不要な日本語入力設定は削除
・sudo apt install --install-recommends fcitx5 fcitx5-mozc kde-config-fcitx5
・im-config (アプリケーション→設定→入力メソッド)で Fcitx5を選択
・再起動
・インプットのメソッドを設定でmozcを追加。

2021年8月27日金曜日

Wayland

Debian GNU/Linux 11 bullseye が発表された。
手抜きで、sources.listを書き換えただけで busterから upgrade。 
何度か、update, upgradeを繰り返して問題なく使えるようになった。
 
waylandが日本語入力も含めて使えるようになった。 
 
 注
 ・KDEを使用してるので、正確には plasma-wayland
 ・日本語は fcitx5 + mozc
 ・パッケージ管理のsynapticはwaylandでは動かない
 
いまグラフィックは、Xorg, waylandどっちで動いてるの?

plasmawaylandの場合
$ echo $XDG_SESSION_TYPE
x11
wayland
bash: x11: コマンドが見つかりません

Xorgの場合
$  echo $XDG_SESSION_TYPE
x11

plasmawaylandの場合
$ echo $DESKTOP_SESSION
plasmawayland
 
Xorgの場合
$ echo $DESKTOP_SESSION
plasma
 
plasmawaylandの場合
$ loginctl show-session "$XDG_SESSION_ID" -p Type
Type=wayland
 
Xorgの場合
$  loginctl show-session "$XDG_SESSION_ID" -p Type
Type=x11
 
環境変数から読み取れるようで、
plasmawaylandの場合
$ env | grep -i wayland
DESKTOP_SESSION=plasmawayland
XDG_SESSION_TYPE=wayland
WAYLAND_DISPLAY=wayland-0
QT_WAYLAND_FORCE_DPI=96

Xorgの場合
$ env | grep -i wayland
... (Xだと何も返らない)
$ env | grep -i DESKTOP_SESSION
DESKTOP_SESSION=plasma

Gnomeだと
$ gnome-wayland
ubuntu-wayland  .... 
となるらしい。

2021年7月8日木曜日

バクラウ

・2019年、ブラジル・フランス映画。映画のタイトル「バクラウ」は架空の村の名前。bacurau = nightjar = ヨタカ(鳥)のことらしい。

・出だしのブラジルの形がヘン。OESTE DE PERNAMBUCO, DAQUI A ALGUNS ANOS... (ペルナンブコ州 西部, 今から数年後)となってる。近未来、不詳の場所の話。ペルナンブコ州はブラジルの大西洋に突き出た部分で、河川の支流が多くデルタ湿地(映画では乾燥地帯)。かつての奴隷港レシフェが最大都市。レシフェから、ほぼ赤道直下のアマゾンの河口一体までは、上流アンデス麓と同じく首狩り族がいたとされる地域(パラ州カヤポ族など)。

・伏線、MUSEU HISTORICO DE BACURAU = 村の伝統美術館。

・(架空の都市)セラ・ヴェルデの市長立候補トニージュニアが雇ったと思われるマンハント参加者の内紛犠牲はアメリカ大陸人(混血)。

・村人は幻覚剤を使用。

・地域ごとの祭りも中止・・・で飾っていたスポンサーの垂れ幕「快乐的房子」には、ビキニ姿のアジア人体形オネーチャン。直訳では Happy House。ブラジル女性たちのボリュームからすれば「お痩せさん」。

・・・以上、メモ。

2021年6月11日金曜日

neo4jの拡張プラグイン apoc.export.csv.query の例2

sample.csv を cypher-shell で読んで、田中さんの友達グループ Tanaka_G.csvを出力する。

sample.csv
id,name,add,job,relation
a001,田中,東広島,販売,a002
a002,山本,北広島,販売,a003
a003,佐藤,久留米,飲食,a001
a004,山崎,,建設,a002
a005,村上,東久留米,販売,a002
a006,広田,南大東島,醸造,a001

$ sudo neo4j start
$ cypher-shell -u XXXXX -p XXXX

//sample.csvからノードを作成
neo4j@neo4j> LOAD CSV WITH HEADERS FROM 'file:///sample.csv' AS row
             MERGE (p:Person{ID:coalesce(row.id,"Unknown"), NAME:coalesce(row.name,"Unknown"),ADD:coalesce(row.add,"Unknown"), JOB:coalesce(row.job,"Unknown"), REL:coalesce(row.relation,"Unknown")});

//リレーションシップの作成
neo4j@neo4j> load csv with headers from "file:///sample.csv" as row
             match (p1:Person{ID:row.id})
             match (p2:Person{ID:row.relation})
             merge (p1)-[r:Know]->(p2);
0 rows available after 262 ms, consumed after another 0 ms
Created 6 relationshi

// 田中さんグループ Tanaka_G.csv への出力。[:Know]の'*'はrelation shipが続く限り全部。
neo4j@neo4j> with "match (a{NAME:'田中'})-[:Know*]->(b)
             return b.NAME as name, b.ADD as address" as Friends
             call apoc.export.csv.query(Friends, "Tanaka_G.csv",{})
             yield file     // これをしないと
             return file;   // returnが無いエラー
+----------------+
| file           |
+----------------+
| "Tanaka_G.csv" |
+----------------+

1 row available after 21 ms, consumed after another 8 ms

別のターミナルから出力ファイルを見てみる
$ cat Tanaka_G.csv
"name","address"
"山本","北広島"
"佐藤","久留米"
"田中","東広島"
neo4j@neo4j> match (n) detach delete n;
neo4j@neo4j>:quit
$ sudo neo4j stop

---------------------
neo4jブラウザで同じことをやってみる。

// systemctlからneo4jを起動すると、起動表示はなくなる。
$ systemctl start neo4j
ブラウザから localhost:7474 Username:XXXXX Password:XXXXX

nao4j$ LOAD CSV WITH HEADERS FROM 'file:///sample.csv' AS row
       MERGE (p:Person{ID:coalesce(row.id,"Unknown"), NAME:coalesce(row.name,"Unknown"),ADD:coalesce(row.add,"Unknown"), JOB:coalesce(row.job,"Unknown"), REL:coalesce(row.relation,"Unknown")}); // Ctrl+Enter

neo4j$ LOAD CSV WITH HEADERS FROM "file:///sample.csv" AS row
       MATCH (p1:Person{ID:row.id})
       MATCH (p2:Person{ID:row.relation})
       MERGE (p1)-[r:Know]->(p2);  // Ctrl+Enter

// 本題とはちがうけどGraph表示
// neo4j$ MATCH (p1)-[r:Know]->(p2) RETURN p1,r,p2;


neo4j$ MATCH (a{NAME:'田中'})-[r:Know*]->(b) RETURN b.NAME AS name, b.ADD AS address; // Enter
ここで、[ Export CSV ]をクリック

// 本題とはちがうけどGraph表示
// neo4j$ MATCH (a{NAME:'田中'})-[r:Know*]->(b) RETURN a,r,b;
 
ターミナルから出力ファイルを見てみる
$ cat export.csv
name,address
山本,北広島
佐藤,久留米
田中,東広島
neo4j$ MATCH (n) DETACH DELETE n;
Clear local data
$ systemctl stop neo4j

以上、素人の個人的実験でした。

2021年6月10日木曜日

neo4jの拡張プラグイン apoc.export.csv.query の例1

sample.csv を cypher-shell で読んで、ADD(住所)が'広島'の人の名前を result.csvに出力する。

sample.csv
id,name,add,job,relation
a001,田中,東広島,販売,a002
a002,山本,北広島,販売,a003
a003,佐藤,久留米,飲食,a001
a004,山崎,,建設,a002
a005,村上,東久留米,販売,a002
a006,広田,南大東島,醸造,a001
 
$ sudo neo4j start
$ cypher-shell -u neo4j -p XXXX

// coalesce(a,"b") は、セルがaならaを返す。なければ文字列bを返す
neo4j@neo4j> LOAD CSV WITH HEADERS FROM 'file:///sample.csv' AS row
             MERGE (p:Person{ID:coalesce(row.id,"Unknown"), NAME:coalesce(row.name,"Unknown"),ADD:coalesce(row.add,"Unknown"), JOB:coalesce(row.job,"Unknown"), REL:coalesce(row.relation,"Unknown")});

neo4j@neo4j> call apoc.export.csv.query("match (a:Person) where a.ADD contains '広島' return a.NAME, a.ADD", "result.csv", {});
+-------------------------------------------------------------------------------------------------------------------------------------+
| file         | source               | format | nodes | relationships | properties | time | rows | batchSize | batches | done | data |
+-------------------------------------------------------------------------------------------------------------------------------------+
| "result.csv" | "statement: cols(2)" | "csv"  | 0     | 0             | 4          | 1    | 2    | 20000     | 1       | TRUE | NULL |
+-------------------------------------------------------------------------------------------------------------------------------------+

1 row available after 23 ms, consumed after another 63 ms
別ターミナルからファイルを見てみる
$ cat /var/lib/neo4j/import/result.csv
"a.NAME","a.ADD"
"田中","東広島"
"山本","北広島"
neo4j@neo4j> match (n) detach delete n;
neo4j@neo4j>:quit
$ sudo neo4j stop // 終了
===========================================
同じ例を neo4jブラウザでやってみる

$ sudo neo4j start
ブラウザ localhost:7474 Username: XXXXX Pssword:XXXXXX

neo4j$ LOAD CSV WITH HEADERS FROM 'file:///sample.csv' AS row
       MERGE (p:Person{ID:coalesce(row.id,"Unknown"), NAME:coalesce(row.name,"Unknown"),ADD:coalesce(row.add,"Unknown"), JOB:coalesce(row.job,"Unknown"), REL:coalesce(row.relation,"Unknown")}); //Ctrl+Enter

neo4j$ MATCH (a:Person) WHERE a.ADD CONTAINS '広島' RETURN a.NAME, a.ADD; //Enter
上のバーから Expor CSV をクリック

出力をターミナルから見てみる
$ cat export.csv
a.NAME,a.ADD
田中,東広島
山本,北広島
$ MATCH (n) DETACH DELETE n; してneo4j 左の赤っぽいアイコンで終了。$ sudo neo4j stop
 
===========================
結局、文字列指定のダブルクォートの差以外は、同じ結果でした。
以上、まるっきり素人の私には、いろいろ覚えなくてもいい方を選ぶ。
 
環境 Debian 10, neo4j 4.2.7 community 版, Cypher-Shell 4.2.7

2021年6月9日水曜日

neo4jの拡張プラグイン apocの設定

動機:
neo4jで検索したリレーションやノードは'TEXT'としてコピペはできるけど、ファイルとして出力したい → 'apoc'という拡張プラグインで csv出力できるらしい。

環境:
Debian 10, neo4j 4.2.7 community 版, Cypher-Shell 4.2.7

設定:
neo4j community インストール済ならば、/var/lib/neo4j/labs/apoc-4.2.0.4-core.jar がすでに入っている。ただし同 README.txt記述の設定と export設定が必要。

(neo4j サーバが動いてない状態で)
1) $ sudo cp /var/lib/neo4j/labs/apoc-4.2.0.4-core.jar /var/lib/neo4j/plugins/
2) /etc/neo4j/neo4j.conf 262行目あたりに追記
  dbms.security.procedures.unrestricted=apoc.*
3) /etc/neo4j/neo4j.conf 最後辺りに追記
  apoc.export.file.enabled=true
  apoc.import.file.enabled=true

chown neo4j:neo4j apoc-4.2.0.4-core.jar
chmod 755 apoc-4.2.0.4-core.jar
の手順記事もあった。やらなくても動いた。

動作確認:
$ sudo neo4j start // neo4jサーバ起動
$ cypher-shell -u neo4j -p XXXX //cypher-shell起動
neo4j@neo4j> return apoc.version();  //⇠neo4jブラウザからでも可
+----------------+
| apoc.version() |
+----------------+
| "4.2.0.4"      |
+----------------+   // 受け付けるっぽい
neo4j@neo4j> merge (a:Person{name:'Yamada', age:tointeger(30), address:'Yamanashi'}); //ノード作成して実験
neo4j@neo4j> call apoc.export.csv.all("out_node.csv", {}); //⇠neo4jブラウザからでも可 out_node.csvに出力
別ターミナルから デフォルト import先の /var/lib/neo4j/import を見てみる。
(neo4j.confで import先を変更してる場合は、そちらに出力される)
$ ls -l /var/lib/neo4j/import/out_node.csv
-rw-r--r-- 1 root root out_node.csv
$ cat out_node.csv
"_id","_labels","address","age","name","_start","_end","_type"
"0",":Person","Yamanashi","30","Yamada",,,       // なんか OKみたい

neo4j@neo4j> match (n) detach delete n; // 以上、クリーニング
neo4j@neo4j> :exit    // cypher-shell終了
$ sudo neo4j stop     // neo4jサーバ停止

まとめ:
CALL apoc.export.csv.all("出力ファイル名.csv", {}); が得られた。
他に apoc.export.csv.query というプロシージャもある。

出力ファイル先 import を /etc/neo4j/neo4j.confのdbms.directories.import=/var/lib/neo4j/import を /home/USER/...などに変更してる場合、出力.csvが rootでしかrwできないのは不便かも...どこで変えるんだろう?
 
本末転倒
apoc設定しなくても、neo4jブラウザの場合、returnで返すようなコードの場合は、右上のバーから csv, json, png, svg でファイルが保存できる。

 


2021年5月29日土曜日

Cypher-shellと neo4j browser

概要
cypher-shellとneo4jブラウザはどういう関係か?試してみる。

手順
a). cypher-shellでノード"のび太"を作る。
b). ブラウザで"のび太"を見てみる。次にブラウザでノード"のび太"を消す。
c). cypher-shellでノードが消えたかどうか確認してみる。

作業
a).
 1 neo4j サーバを起動。ターミナルから、
 $ sudo neo4j start
 ($ systemctl start neo4j ... $ sudo systemctl stop neo4j の起動/終了でも可)

 2 cypher-shellをターミナルからユーザ名とパスワード付きで起動。ノード"のび太"を作る。
 $ cypher-shell -u neo4j -p PASSWORD
 ...
 neo4j@neo4j> merge (a:Person{name:"のび太"});

b).
 3 ブラウザ立ち上げてURLにlocalhost:7474。上記2と同じユーザ名とパスワードを入力してneo4j-browserを起動して、ノード"のび太"を見てみる

 neo4j$ match (a:Person) return a; 

╒══════════════╕ 
│"a"           │
╞══════════════╡
│{"name":"のび太"}│
└──────────────┘


 Textでも Graphでも 表示されている。

 4 次に、ノード"のび太"をneo4jブラウザで削除
 neo4j$ MATCH (a:Person) DELETE a;

c).
 5 cypher-shell側から消えたかどうか確認してみる。
 ターミナルのcypher-shellで
 neo4j@neo4j> match (a:Person) return a;
 +---+
 | a |
 +---+
 +---+
 ちゃんと消えてる。

 6 終了
 ブラウザ側、左サイドバーの[(赤い) Browser Sync]→ Clear local data → Clear local data →最初のユーザ名/パスワード入力画面になったらブラウザを閉じる。
 次に、cypher-shell側。neo4j@neo4j> :exit で終了。忘れずに、$ sudo neo4j stop

------
環境は、
$ lsb_release -d
Description:    Debian GNU/Linux 10 (buster)
 
neo4j community版
$ cypher-shell --version
Cypher-Shell 4.2.7

$ neo4j --version
neo4j 4.2.7
------

2021年4月24日土曜日

neo4jメモ

 OS関係: Debian 10 (buster), KDE, plasmashell, neo4j version 4.2.5 community 版

neo4j ブラウザでの使い方

使用可能なブラウザ

Neo4jにはブラウザが必要。使えるブラウザは Edge, Chrome, Firefox。Chrome系の iron, Firefox系の Waterfox classicでも動いた。

  • 入力の仕方 Enterキー
    入力欄 neo4j$ Enterキーの仕方。

    • 1行パターン
    コード [Enter]
    • 複数行パターン
    コード [Shift+Enter] 続きコード [Enter] ...... [Enter] コード終了 実行 [Ctrl+Enter]

    エラーが出たら、その上に表示される入力ソースを訂正して [Ctrl+Enter]

Hello world! と表示するだけの例

(1個のノードのバリューを表示するだけ)

1. ターミナルで systemctl start neo4j → ルートパスワード または、sudo neo4j start → ユーザパスワード。neo4jはサービスで動いてるのでターミナルは閉じても開きっぱなしでもかまわない。 2. ブラウザを起動。アドレス欄に "http://localhost:7474/" と入力。 3. Usernameと Password (初期値は neo4j, neo4j or 自分の設定ワード)。初めてのときはpasswordを変更しないとログインできない。 4. 入力欄 neo4j$ に CREATE (p:Smile{message:"Hello \n world!"}) /// [Shift+Enter] RETURN p /// [Ctrl+Enter] 5. 終了。左サイドウインドの下の方の赤いアイコン→Clear local data→Clear local data→ログイン画面に戻ったらブラウザを終了。 6. ターミナルで、systemctl stop neo4j → ルートパスワード または sudo neo4j stop → ユーザパスワード

素人の雑感

  • グラフ表示が出なかったら、左の"Graph"アイコンをクリック (OSによって上記 \nは、\r\nかも)。

  • 上の例なら、全部小文字でも構わない。任意に付けたラベル(上のSmile)は、大文字と小文字は別の要素になる。(入力は cypher-shellに渡してるだけ?)

  • createで作ったノードは間違って入力したものもどんどん貯まる。上の例言えば MATCH (p) RETURN p とすれば間違い入力分も表示する。MATCH (p) DELETE p で消せる。MATCH (n) RETURN n ならその他も全て表示。まとめて全部消すには MATCH (n) DETACH DELETE n

  • ブラウザにコードのコピペできないとき
    ネット上のコードサンプルや、テキストで書いたコードをブラウザのコード欄 'neo4j$ 'にマウス右ボタンでコピー、左ボタンでペーストできない場合、 3or5ボタンマウスなら真ん中ボタンでペーストするとうまく行くことがある。

  • ノード(グラフの○、デフォルトで300)が増えると一気に処理が遅くなる (総当り的?)。この手のソフトはマルチコアでもCore 1コしか使わないので、早いクロックのCPUが向いてる。 バージョンアップでマルチコアで処理するようになった。

  • 試しに自治体の Covid19情報から、感染の経路をたどってみた (濃厚接触者不明と2次で経路が途絶えたものを除くノード5600程)。(関連 graphviz)


2021年4月19日月曜日

Debian 10にneo4jをインストール

neo4j バージョン4.2 community 版をインストール。

java 11 が必要なので $ java --version で openjdk 11 を確認。

Community版 Enterprise版の違い
A Closer Look at Neo4j Editions
https://neo4j.com/subscriptions/#editions
 
1) インストール
neo4j docsの‘1.2. Add the repository’ から、

    $ wget -O - https://debian.neo4j.com/neotechnology.gpg.key | sudo apt-key add - echo 'deb https://debian.neo4j.com stable 4.2' | sudo tee -a /etc/apt/sources.list.d/neo4j.list
    $ sudo apt-get update
    ///
    $ sudo apt install neo4j

    $ neo4j --version
    neo4j 4.2.5                    ⇠インストールされたバージョン
    /// install 完了

2) 設定
基本的な設定は、/etc/neo4/neo4j.conf で行う。
 
「WARNING: Max 1024 open files allowed, minimum of 40000 recommended. See the Neo4j manual.」の対策。
 $ systemctl start neo4j で動かす場合
    /usr/lib/systemd/system/neo4j.service
    [Service]
    LimitNOFILE=60000      ⇠こうなってた

 $ sudo neo4j start で動かす場合
    /etc/systemd/user.conf
    [Manager]
    DefaultLimitNOFILE=60000       ⇠ 変更

3) ディレクト $ sudo neo4j start 時に表示される
 Directories in use:
  home:         /var/lib/neo4j
  config:       /etc/neo4j
  logs:         /var/log/neo4j
  plugins:      /var/lib/neo4j/plugins
  import:       /var/lib/neo4j/import
  data:         /var/lib/neo4j/data
  certificates: /var/lib/neo4j/certificates
  run:          /var/run/neo4j

import先の変更は、/etc/neo4j/neo4j.conf の22行目
dbms.directories.import=/var/lib/neo4j/import を変更してやる。日本語ディレクトリ名は通らない。

上記環境)
Debian GNU/Linux 10 (buster), KDE Plasma 5.14.5, KDE Frameworks 5.54.0, QT 5.11.3


2021年4月5日月曜日

Markdown note

マークダウン.md --- title: Markdown note ---

1. Markdown

単純化したなマークアップ。HTMLの最小機能版。 マークダウンによる基本記述は、Markdown: Syntax:https://daringfireball.net/projects/markdown/syntax 実際は拡張されたmarkdownが多種ある。GitHub Flavored Markdown GFM がメジャーだと言われている。

1.1. マークダウンの表示とエディタ

基本的にはテキストエディタでさえあればマークダウンの記述は可能。拡張子は決まってない。mdの場合がほとんど。原則、html で表示する (RFC7763)。

1.1.1. Debian(debファイル)

debパッケージでインストール可能なエディタ兼プレビュー。

  • ghostwriter : サイドウィンドウに結果表示。
    ホーム https://wereturtle.github.io/ghostwriter/
    Debian buster では ghostwriter v1.7.4、latestは v1.8.1
    Debianで最新にmake してみた。ダウンロード先 source code。v1.7.4→v1.8.1にしたらテーブルの最後の行が閉じるようになった。

    $ sudo apt install g++ qt5-default qtbase5-dev libqt5svg5-dev qtmultimedia5-dev qtwebengine5-dev libhunspell-dev pkg-config libqt5concurrent5 qttools5-dev-tools $ cd <your_ghostwriter_folder_location> $ qmake $ make # make install // デフォルトインストール先 /usr/local/bin/

別途、pandoc, discount, cmarkがインストールされていると、Sundown, Pandoc, Pandoc CommonMark, Pandoc GitHub-flavored Markdown, Pandoc PHP Markdown Extra, Pandoc MultiMarkdown, Pandoc Strict, Discount, cmark 型で各種エクスポートできる。

  • ReText : ソースとプレビュー表示。
    本来の Markdownに近い。Block codeは整形してくれない。

上記2つは、簡単にmarkdownをプレビュー見ながら入力して、html, pdf に出力できる。

  • code : マイクロソフトの汎用テキストエディタ Visual studio code。Debianのパッケージ名は code。

1.1.2. Remarkable

  • REMARLABLE https://remarkableapp.github.io/i かなり拡張されているので、他ではプレビューできないかも。Debian busterにremarkable_1.87_all.deb を入れようとしたら、gir1.2-webkit-3.0にダウングレードの必要があったので諦めた。

1.1.3. Typora

  • flatpakのflathubsnap 上で Typora をインストールする方法がある。

  • T for Linux に binary file Typora-linux-x64.tar.gz がある。

  • 直接 Typora からインストール。

    例 $ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys BA300B7755AFCFAE $ sudo add-apt-repository 'deb https://typora.io ./linux/ ' $ sudo apt-get update $ sudo apt-get install typora

1.1.4. Boostnote

  • Boost Noteに debファイルがある。GitHubのアカウントが必要。cloudサービス。有料版と無料版(100M)

1.1.5. Joplin

  • Joplin。クラウドサービス。debはないけどLinux インストール.sh

1.1.6. Atom

  • ATOM に debファイル。

1.1.7. Visual Stuido Code

Microsoftのテキストエディタ(略 VScode)。本家 Visual Studio Code

  • Debian の synapticsや aptでは、codeというパッケージ名をインストール。

  • 起動するには、

    • ファイル.mdを右クリック→アプリケーションで開く→Visual Studio Code
    • スタート→すべてのアプリケーション→ユーティリティー→Text Editor
  • メニューの日本語化

    2通りの方法

    1. メニューバー: View → Command Palette を開いて Configure Display Language で検索 → Install additional languages から Japanese Language Pack for Visual Studio Code をinstall して Restart Now

    2. 左サイドバーの田の字の欠けたアイコンをクリック → japanese で検索 → Japanese Language Pack for Visual Studio Code : install して Restart Now

  • プレビューを開いた状態で起動させる
    マークダウンファイル(md)を開くたびに右上のアイコンでプレビューオープンするのが面倒なら、拡張機能を利用して自動オープンにする。
    メニューバー→表示→拡張機能→ (検索) 'auto-open' : Auto-Open Markdown Preview をインストール

  • TOC table of contents 拡張機能使用時の問題
    VScodeの「EOL end of line 行末」が autoになっていると失敗する。linuxだと $ echo "" | od -c で行末確認できる。使用OSに従って unix系やOSXは \n、Windows系 \r\nにする。左下の歯車マークの設定から検索で'eol'で検索して変更。

  • MarkdownをHTMLで出力
    拡張機能インストールで対応。markdown-pdfや vscode-pandocなど

  • 目次 TOC table of contents
    #〜### H1〜H3で目次を作る。拡張機能 Markdown Toc (章番号の自動化も可能だけど内部参照と辻褄あわなくなったりする)、Markdown Preview Enhanced など。pandocでもTOC作成可能。

1.1.8. 番外

  • Kate : モードの切り替えでプログラミング入力に対応するKDEのテキストエディタ。kpartsplugin と KMarkdownWebViewPart でMarkdownのプレビュー可能なはずだけど現状では無理っぽい。 Katebuildで pandoc等のコマンドを通してmarkdown→htmlは可能 https://azaharblanca.blogspot.com/2021/04/kde-kate-md-html.html

  • Okular : okular-extra-backends (と kpartsplugin)を入れると、Markdown(.md)が読める (Kateから呼び出せるらしい)ので、HTMLにエクスポートできる。
    参考 https://www.maketecheasier.com/convert-markdown-to-html-in-kate-text-editor/

  • vim エディタを使用してる場合。vim-voomのインストールでmarkdownのアウトラインが表示できる。

1.2. Markdownの HTML出力

1.2.1. markdown, mmark, marked コマンド

  • Debianでは、markdownパッケージをインストールするとターミナルから markdownコマンドで md形式のファイルを html出力できる。

    例 $ markdown sample.md > sample.html

    <body>の中身だけの sample.htmlが出来る。 詳細は man markdown。

    他に mmarkや node-marked (コマンドとしては marked) や pandocなど。

1.2.2. pandoc

  • pandocは、多くのテキストファイル形式を別形式に変換する。markdown→htmlも可能。

    md→htmlの例. -s standalone <head><body>html全体を作成 $ pandoc -s sample.md -o sample.html toc : table of contents 目次作成 $ pandoc -s --toc sample.md -o sample.html GitHub-flavored Markdown(gfm)タイプのhtml出力。 $ pandoc -s -r gfm sample.md -w html -o sample.html

    templateを入れることで、さらに拡張整形ができる。
    例えば https://github.com/jgm/pandoc/wiki/User-contributed-templates > HTML > Easy Pandoc Templates の clean_menu.html を使う場合、 ~/.pandoc/templates/ を作成してここにclean_menu.htmlを置いて、

    # templateの使用例 $ pandoc -s --toc --template=clean_menu.html sample.md -o sample.html

以上
Debian buster, KDE, plasmashell, VScode + Markdown TOC + Markdown PDF で試した個人的なメモ



2021年4月1日木曜日

KDE Kateで md->htmlの例

環境 : Debian buster, KDE, plasmashell, Kate 18.08.0

概要 : Kateで作成したり開いた Markdownファイルを、Katebuildで pandocを使って html出力する。

準備 : 簡単なマークダウン sample.mdを作っておく。pandocはインストールしておく。

手順 :
0. (しなくてもいい) Kate > 設定(S) > Kateを設定(C) > 開く/保存 Open/Save > モードとファイルタイプ : ファイルタイプ [Markup/Markdown]。MIMEタイプ: 右端のアイコンをクリックして[☑markdown]にする。


1. Kateでsample.mdを開き、Kate > 設定(S) > Kateを設定(C) > プラグイン Plugin > ビルドプラグイン Build Plugin[x] [OK]。すると、メニュー Menu に[ビルド/Build(B)]項目が現れる。


2. メニュー > ビルド(B) > Build Default Target
Kateの下に窓が出る。[ターゲットの設定]|Active target-set[ ] |Comman/Target Working Directory/Command|と [出力]という2つのタブがある。空白なら"Active target-set:"の右の方にある+の隣をクリック。T: Target Set、"ビルド:make, クリーン:make clean, 設定:cmake -DCMAKE_..., ConfigClean" が現れる(これはデフォルト値)。


"ビルド"をダブルクリック後"MD to HTML"に変更。
"make"もダブルクリックして削除後 "pandoc -r markdown -w html -o %f.html %f"に変更して☑。以降の3行は必要ないので、+の横端のゴミ箱マークで削除。


ゴミ箱列の☑マークをクリックすると、[出力]タブに切り替わって"Make result: ビルドが問題なく完了しました"と表示。sample.md をpandocで処理して、同じディレクトリにsample.md.htmlができているはず。これで設定終了。

使用法 : Kste > ビルド(B) > Build Default Targetで、pandocを使い md -> htmlに変換できる。

その他 :
- 表示(V) > ツールビュー(V) > □ビルド出力を表示から窓を非表示にできる。
- 設定(S) > ショートカット(H)を設定から"katebuild, Build Default Target"にショートカットを設定できる。
- pandoc 以外に markdown, mmark, cmark, marked などでも可能。

上記 pandocオプション :
-r (read) markdown - マークダウンとして読んで
-w (write) html - htmlで書く
-o (out) %f - %fは現在のファイル名 で出力

2021年3月21日日曜日

Visible bell

システム設定とターミナルと bel(Visible bell)の関係

環境
Debian buster, KDE, plasmashell
シェルは bash : $ echo $0 /bin/bash
beep コマンドインストール : $ sudo apt install beep

bel = visible bell は、M/Bのコネクタに繋がれている小さな円筒形のブザー。ビッ、ブッと鳴る。音がデカイのでテープで穴を塞いでいる。

 

System bell on

KDE システム設定 > アクセシビリティ > ベル : ☑ システムベルを使う

command xterm  konsole
tput bel sound non
echo ^G sound non
echo -e '\a' sound non
echo -e '\007' sound non
beep -f440 -r2 -l50 sound sound

^G : Ctrl v Ctrl g 


System bell off

KDE システム設定 > アクセシビリティ > ベル : □ システムベルを使う

command xterm  konsole
tput bel non non
echo ^G non non
echo -e '\a' non non
echo -e '\007' non non
beep -f440 -r2 -l50 sound sound

konsole では echoは鳴らない。 konsoleで $ xterm -e "echo -e '\a'; sleep 1"とすれば鳴る。

Xサーバとの関係

Visible bell mini-Howto: http://archive.linux.or.jp/JF/JFdocs/Visual-Bell/applications.html



以上
Visual studio code でマークダウンのメモ.md、拡張機能 Markdown PDFからのHTML出力を貼り付けてみました。

2021年3月17日水曜日

2021年3月10日水曜日

okular で Markdown 表示

KDEの okularMarkdownの表示。
Debian10 (buster) :
インストール要 : okular, libokular5core8, kpartsplugin, okular-extra-backends

okularからマークダウンの ファイル.md 開けば okularのエクスポートで、テキスト, PDF, Open Document text, HTML への出力が可能。HTMLは DOCTYPEが"-//W3C//DTD HTML 4.0//EN"になっていた。

okular-markdown
メニューバー : 設定(S)→バックエンドを設定(C) に Markdown : Markdown Backend Configuration が追加された。

... 実はテキストエディタ Kateから okularをプレビュアーとして利用できるらしい。
Kateからは、KMarkdownWebViewPart でもマークダウンをプレビューできるらしい。
どちらもうまくいかなかった。
Kateからpandocを通してmarkdown to html は成功  https://azaharblanca.blogspot.com/2021/04/kde-kate-md-html.html

今の所、Visual Studio Codeが便利。

2021年2月12日金曜日

Waterfox classicの検索エンジン

 ネットブラウザ Firefox派生版 Waterfox classicの検索エンジンに'Yahoo JAPAN'を追加。(環境 Debian buster)


1)
Waterfoxから'Add custom search engine'を検索。
addons.mozillal.org/firefox/addon で見つかるアドオンを追加。

2)
Add custom search engine の設定例
NAME : Yahoo! Japan
Search URL : https://search.yahoo.co.jp/search?p=%s
Icon : 入力せずに [Browse]をクリック。右にY!がでる(かも)。
[Add custom serch engine]で設定終了。

3)
設定→検索 : 検索エンジン から'Yahoo!Japan'を確認。
 

検索バーの虫眼鏡ウインドウにもYahoo!Japanがあるはず。
(ウチではY!アイコンは反映されず、灰色虫眼鏡のまま)
設定→検索→既定の検索エンジン の指定も可能。
うまくいったら、Add custom search engine アドオンは削除してもいい。

2021年1月28日木曜日

カササギ or カチガラス

鳴き声に特徴があるので気づくことがたまにあるけど、春から晩秋にかけては見かけない。
 


2021年1月26日火曜日

LibreOffice Calc コマンド

Debian GNU/Linux 10 (buster)にて

・バージョン
$ libreoffice7.0 --version
LibreOffice 7.0.3.1 ...略

・ods(Open Document Spreadsheets)のファイルを開く
$ libreoffice7.0 --calc infile.ods
$ libreoffice7.0 --calc -o infile.ods
ちなみに、csv(Comma Separated Values)のファイルを開いてみると、
     $ libreoffice7.0 --calc -o infile.csv
立ち上がり時に「テキストのインポート」ウィンドウが現れて、文字コーディング、言語、初めの行、区切りオプション、フィールド、区切り文字・・・の確認[OK]後、calcが立ち上がる。

・csv ファイルを開く(上記のような確認なしに)
$ libreoffice7.0 --calc -o --infilter=ods:44,34,0 infile.csv
csvにはソフトや言語によって差異があるのであるので、--infilter=以下にコンマで区切ってオプション毎に数字を指定する。すべて書かなくてもいい。上記例ではオプション3つ。自分のPC上ではうまくいってる。
 (0) ods: ods形式に変換。
    大小文字可。(ods→csvの場合、--infilter=csv: ... infile.ods)
 (1) フィールドの区切り 44
    , コンマcomma区切りなら44と書く。タブなら9。; セミコロンsemicolonなら59。
 (2) 区切り文字 34
    " ダブルクォートなら34。' シングルクォートなら39。
 (3) 言語 0
    0はシステムの設定に依存。UTF-8なら76とする。
 
フィルター infilter のオプション説明(英)

・csv→ods にファイル変換してしまう (GUIは開かない)
$ libreoffice7.0 --calc --convert-to ods --infilter=ods:44,34,76 infile.csv
変換ファイルは、カレントディレクトリに infile.ods で出力される。--outdir output_dir で出力先ディレクトリの指定も可能。

とりあえず、ここまで。

2021年1月25日月曜日

2021年1月20日水曜日

ハイフン,ダッシュ,マイナスごとき一文字を16進数で表示

Libreoffice calc 等で意味なく穴埋めに使われるハイフン類を xxdで表示してみた。

    -    半ハイフンマイナス     2d
    ‐   全ハイフン         e28090
    ―   全角ダッシュ       e28095
    −    全ハイフンマイナス e28892
    -   全角マイナス       efbc8d
    ー   全角の長音         e383bc
    一   全角漢字イチ       e4b880

xxd はファイルを16進数でダンプするコマンド。

    $  echo -n '―' | xxd -p
    e28095

echo に -n を付けないと最後に改行の'0a'も表示される。

    $ echo 'ー' | xxd -p
    e383bc0a

表計算の1セルをダッシュもどきで埋めている例はありふれてます。
テキスト処理では、困るので消してしまいます。

$ sed 's/[-|‐|―|−|-|ー|一]//g' ...
 
同じ例
$ sed 's/[\x2d|\xe2\x80\x90|\xe2\x80\x90\xe2\x80\x95|\xe2\x88\x92|\xef\xbc\x8d|\xe3\x83\xbc|\xe4\xb8\x80]//g' ...

注意: 
10-9=1 → 109=1、一歩目→歩目、パート→パト ...
(実際の処理では s/\t[-‐―−-ー]/\t/g としてます。)
スペースの半|全混在、括弧の半|全混在、セル内の不必要な改行...
 
[きっかけ]
なんの役にも立たないけど、covid19の自治体公表データをグラフ化してみた。ハイフンが消えない例があったので調べると「全角の長音」でした・・・
 

自治体の関連WEBコピペ→テキストにしてsed処理→LibreOffice calcでチェックして項目選択後csv出力→awkでgraphviz用dotファイルに変更→xdot(Dot Viewer)で表示。
情報保護、自治体・保健所の表現・規定違いもあり、2,3世代の感染経路までが限度。

Debian GNU/Linux $ echo $LANG ja_JP.UTF-8   にて、以上素人の個人メモ
(自治体から、githubからyarnやdockerを使ったポータルサイト支援利用手段はあるようですが、ナンノコトヤラワカリマセン)