プラグイン集

無料ブログはココログ
2022年10月
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31          

サンプルJS

  • ユーロバカ一代の締切
    ・・・初期化中・・・

パソコン・インターネット

2022年10月23日 (日)

markdown preview enhanced でページ番号を出す

atom エディタの markdown-themeable-pdf が使えなくなって、markdown-preview-enhanced 拡張を使っていたが、
問題がある。PDF化した時にページ番号が出ない事だ。

業務報告書であれば10ページ未満なので、わざわざページ番号を振らなくても何とかなった。

今回は、16ページを超えてきたのでページ番号が欲しい。

markdown-preview-enhanced の puppeteer を使ってPDFファイルを作っているので、
どうにかページ番号を付けられないか調べた。

フッターを設定することで、ページ番号を付加できるらしい。

---
puppeteer:
displayHeaderFooter: true
headerTemplate: "<div style=\"font-size: 11px; margin-left: 1cm ; left ;\"> コンパイル日時: <span class='date'></span></div>"
footerTemplate: "<div style=\"font-size: 11px; margin: 0 auto; \"> <span class='pageNumber'></span>/<span class='totalPages'></span></div>"
---

を、作成しているMarkdownファイルの先頭に書くことで、 markdown-preview-enhanced が良きに計らってくれる。

---で囲まれた部分が、カスタムを書くためのYAML定義領域。

puppeteer: が puppeteer に処理依頼を出す。

displayHeaderFooter: true でヘッダーフッターを有効化する。ヘッダーだけ、フッターだけ有効化することはできないようだ。

headerTemplate: "" の中にヘッダー定義を書く。不要であれば<dvi></dvi>だけでよい。
今回は、コンパイル日時: <コンパイル時刻>が左寄せで入るようにしている。

footerTemplate: "" の中にフッター定義を書く。ページ番号/総ページ数 が中央に出るようにしている。

ヘッダーもフッターも<div style=""でスタイル指定しないと、見えないレベルで処理されてしまう。

使える設定は、Puppeteer によると、

  • date ( 日付 )
  • title ( ドキュメント ファイル名 )
  • url ( ドキュメントの保存パス )
  • pageNumber ( 現在ページ番号 )
  • totalPages ( 全てのページ数 )

が使えるようだ。これだけじゃわからん場合は、ここ の上から1/3付近の表に書いてある。

「コンパイル日時:」とリテラル値を入れたように、文字の直書きも可能。
やる気があるのであれば、会社のロゴとか班のロゴとか入れられるのでは?

Markdownファイルに直書きではなく、設定ファイルに入れる方法までは分かっていない。

 

2022年5月29日 (日)

VScode、Atom エディタのポータブル化

VSCode の場合、公式サイトの解説に沿って作ればいいので簡単。

  1. VSCode の ZIP 版をダウンロードする
  2. ZIPを展開する
  3. Code.exe のあるフォルダーに data フォルダーを作る
  4. data フォルダーの下に tmp フォルダーを作る
  5. VSCode を起動して、好きな拡張を入れる

以上。

これで、Windows にインストールした VSCode とは別環境の VSCode 環境が作れる。

Windows に入れたのはコーディング用、 ポータブル版は、Markdown・ReStructuredText・Mermaid.js のドキュメント作成用と割り切って使うことができる。
拡張同士の衝突を気にしなくて済むようになる。

VSCode の Markdown・ReStructuredText・Mermaid.js を扱う拡張リストをメモしておく。
VSCode を起動して、メニューの「表示」 、 「ターミナル」を選んで、起動した端末に、

> code --list-extensions

と入力すると、拡張の一覧が得られる。インストールした拡張は以下の通り。

  • bierner.markdown-mermaid
  • bpruitt-goddard.mermaid-markdown-syntax-highlighting
  • csholmq.excel-to-markdown-table
  • lextudio.restructuredtext
  • MS-CEINTL.vscode-language-pack-ja
  • mushan.vscode-paste-image
  • tomoyukim.vscode-mermaid-editor
  • trond-snekvik.simple-rst
  • yzane.markdown-pdf
  • yzhang.markdown-all-in-one

※ Markdown PDF は v1.4.4 では、Mermaid.js をレンダリングしてくれなかったので、
 v1.4.3 にダウングレードしてインストールしている。

面倒臭いのは、Atom の方。

Atom エディタ の場合。

  1. Github から Atom の ZIP 版をダウンロードする
  2. ZIP を フォルダーの下に解凍するモードで解凍する
  3. Atom.exe を見つける
  4. Atom.exe の1つ上のフォルダーに戻り、 .atom フォルダーを作る
    ※ Atom.exe と同じフォルダーに .atom フォルダーを作っても意味がない
    ※※ Windows で.ドットから始まるフォルダーを作る場合は、ドットで挟む。例: .remilia. でフォルダーを作ると
    .remilia と言うフォルダーができる
  5. Atom を起動する
  6. 設定から Japanese-menu をインストールする
  7. C:\Users\自分\.atom\ に packages ができていない事を確認する
    残念ながら、 C:\Users\自分\.atom\  にインストールされた場合は、2.からやり直し。
  8. C:\Users\自分\.atom\ に最低限のファイル以外出来ていなければ、ATOMのGUIからプラグインをインストールする
  9. プラグインのバージョン問題でコマンドラインからプラグインをインストールするときは、環境変数を設定してからコマンドでインストールする
    > set ATOM_HOME=ATOMのZIP展開先\.atom 
    > cd /d ATOMのZIP展開先\Atom_x64\resources\cli
    > echo %ATOM_HOME%  ※ 動作確認、 ATOMのZIP展開先\.atom が表示されること
    > apm install auto-encoding
    > apm install markdown-preview-enhanced@0.19.1
  10. ATOM 再起動して、コマンドラインから入れたプラグインを反映する
  11. プラグインが反映されていることを確認したら、ATOMを閉じる
  12. C:\Users\自分\.atom や C:\Users\自分\AppData\ 以下の3フォルダーにある .atom フォルダーを全て消す
  13. ATOM を起動して、プラグインがあることを確認する。無ければ2.からやり直し
  14. 自動更新を無効化する
  15. markdown-preview-enhanced のインストールが終わったら、 ATOM 内蔵の markdown-preview を無効化する
  16. 一通り使えるか確認する

VSCode と比べて3倍ぐらいの工程数が必要。コマンドプロンプトを動かすのも面倒。
ATOM は切り分け環境を作るのも面倒臭いわ。

ATOM エディタの Markdown・ReStructuredText・Mermaid.js を扱う拡張リストをメモしておく。
9. の準備をする。( .atom のフォルダーを示した環境変数、 ATOM_HOME を用意する。
cd で apm コマンドがあるディレクトリに移動する。 )

> apm list --installed --bare > 適当なフォルダーのファイル名

と入力すると、パッケージの一覧が得られる。インストールした拡張は以下の通り。

  • atom-dark-syntax@0.29.1
  • atom-dark-ui@0.53.3
  • atom-light-syntax@0.29.1
  • atom-light-ui@0.46.3
  • base16-tomorrow-dark-theme@1.6.0
  • base16-tomorrow-light-theme@1.6.0
  • one-dark-ui@1.12.5
  • one-light-ui@1.12.5
  • one-dark-syntax@1.8.4
  • one-light-syntax@1.8.4
  • solarized-dark-syntax@1.3.0
  • solarized-light-syntax@1.3.0
  • about@1.9.1
  • archive-view@0.66.0
  • autocomplete-atom-api@0.10.7
  • autocomplete-css@0.17.5
  • autocomplete-html@0.8.8
  • autocomplete-plus@2.42.4
  • autocomplete-snippets@1.12.1
  • autoflow@0.29.4
  • autosave@0.24.6
  • background-tips@0.28.0
  • bookmarks@0.46.0
  • bracket-matcher@0.92.0
  • command-palette@0.43.5
  • dalek@0.2.2
  • deprecation-cop@0.56.9
  • dev-live-reload@0.48.1
  • encoding-selector@0.23.9
  • exception-reporting@0.43.1
  • find-and-replace@0.219.8
  • fuzzy-finder@1.14.3
  • github@0.36.9
  • git-diff@1.3.9
  • go-to-line@0.33.0
  • grammar-selector@0.50.1
  • image-view@0.64.0
  • incompatible-packages@0.27.3
  • keybinding-resolver@0.39.1
  • line-ending-selector@0.7.7
  • link@0.31.6
  • markdown-preview@0.160.2
  • metrics@1.8.1
  • notifications@0.72.1
  • open-on-github@1.3.2
  • package-generator@1.3.0
  • settings-view@0.261.8
  • snippets@1.5.1
  • spell-check@0.77.1
  • status-bar@1.8.17
  • styleguide@0.49.12
  • symbols-view@0.118.4
  • tabs@0.110.2
  • timecop@0.36.2
  • tree-view@0.229.1
  • update-package-dependencies@0.13.1
  • welcome@0.36.9
  • whitespace@0.37.8
  • wrap-guide@0.41.0
  • language-c@0.60.19
  • language-clojure@0.22.8
  • language-coffee-script@0.50.0
  • language-csharp@1.1.0
  • language-css@0.45.1
  • language-gfm@0.90.8
  • language-git@0.19.1
  • language-go@0.47.2
  • language-html@0.53.1
  • language-hyperlink@0.17.1
  • language-java@0.32.1
  • language-javascript@0.134.1
  • language-json@1.0.5
  • language-less@0.34.3
  • language-make@0.23.0
  • language-mustache@0.14.5
  • language-objective-c@0.16.0
  • language-perl@0.38.1
  • language-php@0.47.0
  • language-property-list@0.9.1
  • language-python@0.53.6
  • language-ruby@0.72.23
  • language-ruby-on-rails@0.25.3
  • language-rust-bundled@0.1.0
  • language-sass@0.62.1
  • language-shellscript@0.28.2
  • language-source@0.9.0
  • language-sql@0.25.10
  • language-text@0.7.4
  • language-todo@0.29.4
  • language-toml@0.20.0
  • language-typescript@0.6.3
  • language-xml@0.35.3
  • language-yaml@0.32.0
  • atom-mermaid@3.7.1
  • auto-encoding@0.7.2
  • japanese-menu@1.15.0
  • language-mermaid@0.6.0
  • language-restructuredtext@1.1.2
  • markdown-preview-enhanced@0.19.1
  • markdown-scroll-sync@2.1.2
  • markdown-to-pdf@0.1.1
  • pdf-view-plus@1.11.0
  • rst-preview-pandoc@0.1.12

※markdown-preview-enhanced は v0.19.2 だと Mermaid.js をレンダリングしてくれないので、
v0.19.1 にダウングレードしている。

パッケージ多いな・・・。いや、メモだともっと少ないはず。

  • Atom-mermaid
  • Auto-encoding
  • Japanese-menu
  • Languge-mermaid
  • Markdown-preview-enhanced
  • Markdown-scroll-sync
  • Markdown-to-pdf ( Markdown-Themeable-pdf の代わり。 Markdown-Themeable-pdf の作者はもう ATOM エディタは使ってないってさ。 )
  • Pdf-view-plus

とりあえず、考えるべきプラグインはこれだけ。だいぶ楽になる。

以上。VSCode と ATOM エディタのポータブル版の作り方でした。
ATOM の呪縛から逃れて、 VSCode でいいんじゃないかと思うが、
1本化すると裏切られるのがITの世界。
ATOM と言うプランBを用意しておくのも無駄なコストでは無いと信じたい。

2022年5月 8日 (日)

RockyLinux 8.5 で Mozc をコンパイル

前回は、CentOS7.4 で Mozc をコンパイルしたが、
今回は、 RockyLinux 8.5 で Mozc に UT第2世代辞書を入れた。

EPEL から スペックRPM を取ってきて、 cpio で展開の流れまでは、前回と同じ。
root 権限対応もソースのコメントアウト部分は変更なし。

前回分からないと言った、UT第2世代辞書との結合は実は簡単だった。
公式サイトの説明の通り、解凍して得られた、「 mozcdic-ut-日付.txt 」を
Mozc ソースの ./src/data/dictionary_oss/dictionary00.txt に追記してあげる。
心配であれば、 Mozc ソースの ./src/data/dictionary_oss/dictionary00.txt をバックアップしてから、
追記すればよい。

残りは、 Mozc をコンパイルしてあげる。
rpmbuild コマンドで頑張るのも変わらず。
コンパイルが終わったら、 yum install ./*.rpm でまとめて入れてあげる。
再起動して、設定から日本語入力に Mozc を追加すると、 UT第2世代辞書 を足した Mozc が使えるようになる。
西木野真姫や花鳥玲愛が一発で変換できるようなって気持ちいい。

※ UT第2世代辞書は、 Neologd の内容を内包しているとのこと。
Neologd は週1のペースで更新されていると言う。
だからファイル名に日付が入ってると思われる。

疑問点、Mozc のシステム辞書?は、追記した dictionary00.txt から dictionary09.txt まであるのだが、
どれが何の役割をしているのかが分からない。
よみがなと漢字表記
「 しまむらうづき 1916 1916 7668 島村卯月 」
の間の数字って何だろう?前との接続コスト、後ろとの接続コスト、単語本体のコストかしら?

UT第2世代辞書、公式サイトの通りUT第2世代辞書自体の更新や、
Rubyのプログラミング技術があれば、単語の情報源を追加できるし、
単語まとめサイトの情報を増やすこともできるだろう。

まとめ

UT第2世代辞書自体の追加は、 tar.bz2 ファイルを取ってきて、
Mozc の dictionary00.txt に追記すればよいと言う事が分かった。
しかし、Mozc のシステム辞書の作りや追加方法についてはよく分からないまま。

2022年1月 8日 (土)

CentOS7.4 で mozc のコンパイル

mozc とは、ザックリ言えばGoogle 日本語入力からGoogle検索で寄せられる膨大な語彙データを引いてオープンソース化もの。

CentOSであれば、EPELレポジトリに登録されているので、EPELを使えるようにしておけば、
# yum install mozc ibus-mozc
で入る。

このままでは、雑魚IMEなので、新語に強い Neologd を足したり、 地名・駅名・人名を足したUT2辞書を加えた、
mozc-neologd-ut2 もあるが、 CentOS での挑戦者が皆無で情報が無い。
変態玄人( 誉め言葉 )御用達のArchなら使えるらしいが、万年素人の私には無理だ。

しかし、EPELから入れた mozc は、最強ユーザー全知全能神の ROOT では使えない。
ソースのコメントをザックリ言えば、「rootで動かすのは危ないから。」とのこと。
う~んお断りだね。私は、 root で動かしたい。
オープンソースの利点、ソースコードの改変が出来て野良ビルドができる。
早速 git clone したが、 Ubuntu 20.04 + Docker 環境でビルドするらしい。
ネイティブが良ければGYPビルド。GYPビルドってなんぞや? -> Google のビルドプラットフォームらしいぞ。
う~ん分からん。

そんなところで閃いた。
せや、EPEL のソースRPM取ってきて、当該部分を書き換えてリビルドすれば確実や。

同じ事をと思いついた前任者は5年以上前に居るが、2016年の情報では古すぎる。
CentOS6での挑戦はCentOSが終わった今では参考にならない。

EPEL の国内ミラーサーバーをHTTPで参照する。
http://ftp.riken.jp/Linux/fedora/epel/7/SRPMS/Packages/m/
有ったあった、 mozc-2.17.2322.102-1.el7.src.rpm 、 ibus-mozc はこれをビルドすれば生成されるようだ。

では早速、ディレクトリを掘って展開。epel_mozc って名前のフォルダーを作った。
# rpm2cpio ./mozc-2.17.2322.102-1.el7.src.rpm | cpio -vid
コマンドでRPMを普通のファイル群に戻す。
# mv mozc-2.17.2322.102-1.el7.src.rpm ..
で元のソースRPMは退避しておく。
どうやら、 mozc-2.17.2322.102.tar.bz2 が mozc のソースコード本体のようだ。
1つ上のディレクトリに、作業用のディレクトリ mozc-main を掘る。
そして、mozc の bz2ファイルを解凍する。
# tar xvfj mozc-2.17.2322.102.tar.bz2 -C ../mozc-main/
# cd ../mozc-main/base/
# vim run_level.cc
270行目ぐらいにから始まる、getuid() 、 geteuid() システムコールでユーザIDを取得して、
RunLevel::DENY を返している if 文をコメントアウトで無効化する。
大学生時代に勉強しておいてよかったC言語。
書き換えた結果を下に記す。

#else  // OS_WIN
if (type == SERVER || type == RENDERER) {
//if (::geteuid() == 0) {
// This process is started by root, or the executable is setuid to root.
// TODO(yusukes): It would be better to add 'SAFE' run-level which
// prohibits all mutable operations to local resources and return the
// level after calling chroot("/somewhere/safe"), setgid("nogroup"),
// and setuid("nobody") here. This is because many novice Linux users
// tend to login to their desktop as root.
//return RunLevel::DENY;
//}

//if (::getuid() == 0) {
// The executable is setuided to non-root and is started by root user?
// This is unexpected. Returns DENY.
//return RunLevel::DENY;
//}
return RunLevel::NORMAL;
}
// type is 'CLIENT'
//if (::geteuid() == 0 || ::getuid() == 0) {
// When mozc.so is loaded into a privileged process, deny clients to use
// dictionary_tool and config_dialog.
//return RunLevel::DENY;
//}
return RunLevel::NORMAL;
#endif // OS_WIN

このコードを保存する。

終わったら、元の tar.bz2 ファイルを作る。
# cd ..
# tar cvfj ../mozc-2.17.2322.102.tar.bz2.2 *
# cd ..
念のためアーカイブファイルを比較する。
# chmod 664 mozc-2.17.2322.102.tar.bz2.2
tarに詳細を要求するvがあると細かすぎるので、vオプションは外す。
# tar tfj mozc-2.17.2322.102.tar.bz2 2>&1 > 1.txt
# tar tfj mozc-2.17.2322.102.tar.bz2.2 2>&1 > 2.txt
# diff 1.txt 2.txt
ファイルの並び順以外は一致している事。ファイルの並び順が若干違う。
ゴミ掃除をして、新しく作った、mozc-2.17.2322.102.tar.bz2.2 をもとの mozc-2.17.2322.102.tar.bz2 にリネームして置き換える。
# rm 1.txt 2.txt
# rm mozc-2.17.2322.102.tar.bz2
# mv mozc-2.17.2322.102.tar.bz2.2 mozc-2.17.2322.102.tar.bz2
# cp mozc-2.17.2322.102.tar.bz2 ./epel_mozc
# cd ./epel_mozc
ここで喜んで、 # rpmbuild -ba --clean mozc.spec を実行するとSPECが合わないとかで怒られた気がする。
せや、tar.gz なら -ta オプションでコンパイルできたはずやと閃く。
# tar cvfz ../mozc-2.17.2322.102-1.el7.src.tar.gz * 
# rpmbuild -ta mozc-2.17.2322.102-1.el7.src.tar.gz
今度は、辞書のZIPが無いとかで怒られた気がする。
# mv mozc-2.17.2322.102-1.el7.src.tar.gz ./epel_mozc/
# cd ./epel_mozc/
# rpmbuild -ta mozc-2.17.2322.102-1.el7.src.tar.gz
( # rpmbuild -tb mozc-2.17.2322.102-1.el7.src.tar.gz )でもコンパイルできた。
# ls ~/rpmbuild/RPMS/x86_64/
ビルドしたRPMファイルが3個出来ている。mozc、ibus-mozc、mozc-debuginfo の3個だったかと。
# ls ~/rpmbuild/SRPMS/
新しいソースRPMファイルができている。

ビルド段階で、依存ライブラリが無いと言われる場合は、以下のパッケージを入れる。
CentOS BASE、 UPDATE 、EPEL レポジトリで大体揃う。
# yum install --enablerepo=epel protobuf-devel protobuf-c qt-devel zinnia-devel gtk2-devel clang ninja-build gyp ibus-devel emacs xemacs xemacs-packages-extra
必要パッケージがいっぱいあるが、全部入れる。

最後に mozc 本体を入れる。
# cd ~/rpmbuild/RPMS/x86_64/
# yum install --enablerepo=epel *.rpm

これで、 mozc がインストールできただろうか。別な作業を全部保存してから、
# shutdown -r now 
で再起動を掛けてみよう。

GNOME にログインしようと1文字打つとGNOMEの最初に戻されたではないか?
CentOS7.9 が出ているきょうび、 CentOS7.4は古すぎるのでXと入力ドライバが対応できないのだ。
CentOS7.4 を捨てて、 CentOS7.9 にして良ければ、 # yum -y update --enablerepo=epel 、 # yum -y upgrade --enablerepo=epel 、をパッケージが無くなるまで繰り返せば動く。
どのパッケージが古くて問題を起こしているかまでは特定していない。
# yum update ibus* で動く気もしないでもないが・・・。
あっ、駄目だ。これだけだと、 Gnome-Terminal がクラッシュして起動しなくなる。
# yum update gunome-terminal* とシェルも更新してあげないと。
やっぱり、全上げしかないか。

CentOS の設定 Region& Language 、 input source 、 + ボタンから mozc を追加してする。
Mozc
rootユーザーでは勝手に閉じてしまう、 mozc setting が開くようになった。

どうだろうか。猛烈に面倒ではないだろうか。
Neologd や UT2 対応して CentOS7.4 最強の mozc を作りたかったが、またも心が折れた。
ここまで頑張るより、WindowsのクライアントにGoogle日本語入力を入れて、
テキストエディタで文章を書き、scpした方が絶対に早い。

コンパイル済のPRMファイルはどこかって?
ブログに貼るには重すぎるので、置いてないぜ。
Dropbox もそろそろ空きが無いし。

----

2022年5月26日追記。
RockyLinuxでのトライアルに記載した通り、OSDNからmozcdic-ut-日付.tar.bz2をダウンロードして、解凍する。
解凍したディレクトリ内にある、mozcdic-ut-日付.txt を Mozc ソース内のdata/dictionary_oss/dictionary00.txtに追記する。
Mozc ソースをtar.bz2で固め直す。
~/rpmbuild/ 以下を全部消して、rpmdev-setuptree コマンドでディレクトリを作り直す。
mozc-2.17.2322.102-1.el7.src.rpm を解凍して得られたデータを~/rpmbuild/SOURCES/に入れる。
root起動やUT第2世代辞書をマージして、bz2に固め直したMozcを~/rpmbuild/SOURCES/に入れて、古いmozcソースを上書きする。
カレントディレクトリを~/rpmbuild/SOURCES/に移動して、
# rpmbuild -ba --clean ./mozc.spec 
を実行する。今度は、rpmとsrpmの両方が問題なく生成できた。

~/rpmbuild/RPMS/x86-64/ に作られたMozcのRPMをyumでインストールする。
既存のmozcがあるので yum reinstall で入れた。
設定の地域と言語のキーボード設定からmozcを一度削除する。
マシンを再起動する。
GNOME にログインして、設定の地域と言語のキーボード設定からmozcを追加する。
適当なエディタで試し打ちする。島村卯月も鷺沢文香も花鳥玲愛も一撃で変換できる。

Neologd の辞書が新しくなるたびにRPM作る気は無いが、漢字変換が猛烈に楽になった。

2021年11月20日 (土)

共有プリンタが使えない件

うちも、Windows Update による、共有プリンタが使えない問題にあたった。

最初に表示されたエラーメッセージは、「印刷ジョブを開始できませんでした。」

良く案内されるのが、プリンタの電源入れなおせ、プリンタのUSBプラグ入れなおせ、
プリンタがつながっているコンピュータを再起動しろ、ルーターを再起動しろ、クライアントを再起動しろ。
はい、全く解決できず、プリンタ買い換えろに行きつくわけです。

意味のないトラブルシュートって困りますね。
印刷機メーカーですら、この有り様。

ずるいですが、Windows Update の性でプリンタが使えなくなったと騒がれていることを知っていました。
Windows Update の不具合を確認する際にいくつかのサイトを比較して読むのですが、
そのうちの1つのサイトにトラブルシュートが載っています。

1. プリンターの再インストール

これやったら、プリンターに接続できませんでした 0x0000003a が表示されるようになった。
うちのプリンター気が付いたら10年以上前のだから仕方ないね。

KBのアンインストールはあまりしたくないので、Win32spl.dll の入れ替えに進む。

2. Win32spl.dll の入れ替え

トラブルシュートに載っている通りに実行する。
注意事項としては、 Print Spooler サービスが動いていると、 Win32spl.dll の置き換えができない。
ファイルを置き換えた後は、Print Spooler サービスを再起動すればいいらしいが、
念のためパソコンを再起動した。
さっきは、プリンターに接続できませんでした 0x0000003a になったが、あっさりプリンターのインストールが終わり、
印刷ができるようになった。

当然、プリンターがつながっている方のホストで印刷する手を考えた。
画像はそれで印刷できたが、PDFのNページアップが目的通りできなかったので、
結局プリンターを入れなおした方が早いと考えた。
ホストPCはインターネットに出られないLANで、Windows Update も満足に入れてられてなく、
Acrobat Reader DC のスタンドアロンインストーラーが実行終了できないくらいだ。
2015までバージョンを落としたら、Acrobat入ったけど・・・。

旧Acrobatのインストールとクライアントの Win32spl.dll の入れ替え、
わずかに Win32spl.dll の方が早く終わった。
次にこういう事は起こらないで欲しいが、ホスト側でもPDF印刷できるようになったので、
トラブル時でも事務処理が早く終わるようになるだろう。

一応、印刷機メーカーの肩を持っておくと、エラーコード番号は違うが、注意喚起はしている。

2021年10月23日 (土)

Fire TV Stick 4K Max をつなぐ

Fire HD 8 Plus の画面をテレビに映そうとググったら、 Fire TV が要るらしい。

・・・だったらタブレットの画面を転送せず、そのまま Fire TV で講習会のビデオ見ればいいんじゃないかと思い、

Fire TV を探し始めた。
HD画質まででいいなら Fire TV 、 4k なら Fire TV 4k を選べばいいらしい。
んで、表題の通り、 4k は 4K MAX に進化して、お古となった4kがたたき売りされているらしい。

安い方で十分って聞くが、私は新しい方が好きなので、新しい 4k MAX を買った。
説明によると、解像度が 4k 出なくてもいいらしいし。

ついでにこれも買っておけのハードウェアを調べると、有線LANカードと放熱板が上がっていた。
場合によっては、 Fire TV はダウンするくらい熱を持つとのこと。
手元の外付けにした mSATA SSD は、放熱板を両面に取り付けて、割と冷えているので、放熱板も買う事にした。
電子部品は熱いの困るし。SDRしているUSBワンセグチューナー、あなたのことよ。

届いたので開封。
Dsc_0383
一通り揃ってるね。欠品は無いね。( マニュアルを写真に入れ忘れたよ。 )
Dsc_0384
放熱板を左右に少しずらして上下に付けた感じ。あぁ、いいですね。

テレビに取り付けて・・・、映りませんでした。
ググった所、電源ケーブルになっているUSBケーブルを抜いて、
ゆっくり10秒数えてからもう一度USBアダプタを電源に刺して、Fire TV を強制再起動しろとのこと。
これで9割は直る。直らない1割は初期不良らしい。

本当に映ったわ。Fire TVの後にテレビの電源を入れちゃダメらしい。
テレビの電源が入った状態で、 Fire TV の電源を入れないとダメらしい。

webサイト見ながら、初期設定を実施する。
何とかホーム画面?と思しき所に到達する。

webサイトを巡回して、広告や追跡OFFのプライバシー設定をする。
実名が表示される、ホスト名も変更した。はて、次はどうすればいいんだ?

「 Fire TV マニュアル 」で検索かけても碌なの出ない。

取り敢えず、 Youtube の限定公開動画が見たいので、Youtube アプリを入れた。
あれ?URLの指定ができない。検索で見つからないのは対応できないらしい。

ブラウザからURLを入力して見られるらしい。
Silk をインストールする。Youtube の URL を入力すると、確かに表示された。
では、 watch?v= 以降のパラメーターの入力を・・・できないだと!!最初から打ち直しだと。
アルファベットだけだが、大文字・小文字・記号をリモコンのカーソルボタンポチポチして、
⌒°( ^ω^)°⌒ がんばルビィするのはつら過ぎる。
Bluetooth キーボードとマウス買う事にした。Fire HD につないでもいいし。

東急カレンダー2022を買いに行く ときに Bluetooth のキーボードとマウスを買った。
それから1週間、やっと作業できるようになったので、Bluetooth のキーボードとマウスを Fire TV につなぐ。
ついでに、 FireHD にもつなぐ。

Fire HD はあっさりつながった。 Fire TV はマウスの識別がうまくいかなかった。
やり直したらつながった。

Fire TV 、マウスカーソル出ないのなんで?
しかも効くのは戻るボタンぐらい。

ついでに、Fire HD にインストールした Fire TV のリモコンを接続した。
リモコンも普通につながったが Fire HD ( タブレット ) で Fire TV ( スティックPC ) の制御?となんか複雑な気分だった。

念のため Fire TV を再起動して( 今度は、ブツ切りではなく、メニューから再起動したよ。 )、
さぁ、 Silk を起動・・・のしかたどうやるんだっけと試行錯誤して、 Silk を起動した。

文字が・・・、打ちにくい。日本語キーボードの刻印どおりに打てない。
これは、仮想マシンの設定しくじった時と同じ、US配列になっている。
一言で言って、くそら面倒臭い。しかし、リモコンでカーソル移動しながら大文字・小文字を切り替えるよりは、はるかに楽ちん。

URLは、打ち間違いしても最初から打ち直すコストは下がった。

Youtubeアプリで使用感を見る。

Youtube の検索窓から日本語で検索・・・、キーボードからはできないのである。
ローマ字入力して、候補に上がった日本語を選ぶしかない。
パソコンから比べたら不便だ。しかし、リモコンからカーソル移動してポチポチするよりよっぽど楽である。

取り敢えず、ドラクエのBGMが再生できたので、これくらいでやめておく。

ーー

Fire HD に戻ってキーボードとマウスを使う。
Fire TV のキーボード設定調べている途中で、 Fire HD は設定項目あるよと言う事は分かっている。
日本語配列と言うか、アジア配列になるらしい。

おぉ、これは快適に打てるぞ。マウスで、youtube の画質変更も簡単だ。

そもそも、Fire HD のスクリーンキーボードで入力するのが手タルかったので、
Bluetooth キーボードとマウスを買おうと思って、機会をうかがっていた。
ちょうどいい口実ができたので、ポンと買ったが、Fire HD で問題なく使えて、
Fire TV でも無いよりマシレベルで使えるのでこれは買ってよかった。

残念な点は、キー配列が HHKB 配列ではなく、 JIS 配列なことだけど。

ーー

Fire TV は、細かいカスタム性は発展途上で実用段階ではないが、
パッケージに書いてあるサービスをテレビて使うと言う事に絞れば、
及第点の製品だろう。

 

2021年11月06日追記:

FireHD -> FireTV のURLのコピペ。
大文字・小文字が区別されず、すべて小文字で送信されるらしい。
YoutubeのURLは大文字・小文字を区別するので、再生できない動画や別の動画に飛ばされる。

FireTVにBluetoothキーボードつないで、打ち直すしかない。
youtu.be/までの入力省略しかできないようだ。
使い込むほど残念さが目立ってくる。

2021年8月28日 (土)

msys2のpacmanがdescなんてファイル無いと言った時の対応

8月の2週目ぐらいに、Visual Studio のアップデートと pacman -Syuu やっていたら、
コンピュータがブルースクリーンで落ちた。

Visual Studioの更新は問題なくできたが、msys2 の pacman が openssl/desc が
無くて更新できないとエラーメッセージが表示されるようになった。

https://bbs.archlinux.org/viewtopic.php?id=220552 
によると「空の当該ファイル作れば動くよ」と言う事なので、 touch コマンドで、desc と files を作る。

pacman -S openssl が確かに通るようになったが、コンフリクトのエラーをするようになった。

pacman -S openssl --overwrite=* を付けることで、openssl の強制更新が終わった。
※ pacman -S --force という例をよく見かけるが、
--force は、正しくないオプションと怒られて、動作しない。

pacman -Syuu を実行すると動作するようになり、
2回目にはアップデートするパッケージは無いというメッセージが出るようになったので、
これでやっと直ったことになる。よかったよかった。

2021年7月10日 (土)

ゲーム業界行けなかった私から言える事。

https://twitter.com/gamemakerdiary/status/1413185724849954817 への回答を書きたいと思う。

今のステータスは、見栄で月収12万円(年収140万円)のIT派遣です。

目的は何でしょう?

ゲーム会社に入ることが目的であれば、そういうゲーム業界用の就活エージェントを付けてしまうのが良いのではないでしょうか。
金があるのであれば、ゲーム会社を買収して取締役になると言う手段もあります。

作りたいゲームがあるから、ゲーム会社に入るのでしょうか?
例えば、ドラクエの新作を俺が作りたいからスクエニに入りたいとか、
マリオ作りたいから任天堂に入りたいとか。

ごめんなさい。この手のルートは知らないです。
自分の知人は誰一人この手の成功者が居ません。

作りたいゲームがあってその実現のためにゲーム会社に入りたいと言う事でしょうか。
確かにゲーム会社はゲーム制作ノウハウの塊なので、入れてしまえば特急コースなのは間違いないと思いますが・・・。

引用RTなどで言われている通り猛烈に困難です。私もダメでした。

以下は、ゲーム会社に入らず私的にゲームを作る前提で記載します。

ーーー

Unity で自分の作品がほぼリリース段階で、

  • ゲームエンジンは有利にならない
  • C言語やるべき
  • 論理をまず勉強すべき

といろいろな情報が入ってきて混乱しているとのことですね?

派遣先の上司の言葉を引用すれば「道具に魅了されいるんじゃねぇ。全部目的を叶えるための手段やぞ。ゴールとちゃう。」です。

冒頭に言った通り、あなたの「目的」はなんですか?
ゲームを作りたいと言う一言はダメです。それでは、情報商材屋のボタン押したら動く、ゲームもどきのカモにされて終わりです。

欲しい回答としては、

  • スマホで動くドラクエウォークのアイマス版が欲しい
  • 高性能パソコンで動かす、飛行機運転ゲームが欲しい
  • ノートパソコンのwebカメラで、超リアル遊戯王をやりたい

と言った、具体的な話です。個人のゲーム制作と言う目的を実現できれば、
UnityだろうがCとDirectX( これはWindowsパソコンゲーム向け )だろう、Linux+Java( 例:Java版Minecraft )だろうが、構わないのです。

なので、上司の「道具に魅了されいるんじゃねぇ。」と言う事です。
出口のデバイスをはっきりさせて、何をどうしたいかを決めることが必要です。

では何をやればよいか、個人的の見解としては「自分の好きなことやる」です。
大学生とのことですが、物理・数学の単位を積極的に取っているでしょうか?
正直言うと、楽と言われる文系科目に逃げているのではないですか?

私は、線形代数と行列は頑張りましたが、統計学は逃げました。
そうしたら、仕事で機械学習のプログラム組んでと言われました。
機械学習は統計学をバリバリ使うので、高い壁ができてしまいましたと。

何が言いたいかと言うと、モチベーションを維持するために、好きなことをやればよいが、
いずれ、論理の壁が立ちはだかることになる。と言う事です。

リアル遊戯王でカード背面から正面にひっくり返したり、カードのキャラクターを3Dで召喚すると言った事であれば、
Unityの機能で十分対応できるでしょう。

一方で、飛行機運転のシミュレーターで、俺のソフトはこれが売りなんだという特別な計算が必要であれば、
物理方程式を自力でプログラムする必要があります。
マリオのような2D移動であれば、ボタン押している間一定の速度で移動でも、あまり問題になりません。
飛行機運転ゲームで飛行機が一定の速度でしか動けないの出れば、問題になります。

理論をどれくらい使うかは、目的とするゲーム制作の内容に依存すると言う事です。
簡単な1次元方程式で済む場合もありますし、行列・微積分を駆使する面倒な方程式を解かせる場合もあります。

自分のソフトを作ってみると、ガックガクの動作でゲームなんてとても言えないと言う事もあります。
そうなったら、より動作の速いC言語やC++、CPUのマルチスレッド機能や、
さらに踏み込んだCPUの拡張命令のSSE、AVXの利用に踏み切ることに成ります。

つまり、必要になったらC言語なり理論なりは勉強すればいいんです。

勉強が苦手なのに理論やC言語ばっかりやったら、心折れて挫折します。
目標に近づいている実感を持てる、「好きなこと」をやる方が続きます。

ーーー

まとめ

目的は何ですか?

Unityにしろ、C言語にしろ、理論にしろ、ただのゲーム作りのための道具です。

目的を達成するのに必要ならばやる。不要ならば、自分の欲しいことをやればいいんです。

以上。

2021年3月16日 (火)

uBlacklist で無益なサイトを非表示にする。

先日、書くネタ無くて、削除対策を上げたばかりなのに、ネタが降ってくるとは。

ヘスティア様(神様)も適当っすね。

それはさておき、中身はすっからかんの癖にSEO( 検索エンジンチューニング )だけは、
精度がよくて、検索結果の1ページ目がゴミサイトで埋まっていることはないだろうか。

そういうサイトを非表示にする拡張が、 uBlacklist だ。
Google Chrome の他、炎狐にも対応しているらしい。先生、Vivaldiは?

説明書は、qiita を見てくれとのこと。悪名高きQitaっすか・・・。
ザックリとした仕組みは、正規表現で一致したサイトを非表示にしているとのこと。

んで、プログラミング向けの設定が、以下の引用らしい。

んで、記載内容は、「

*://techacademy.jp/*
*://udemy.banesse.co.jp/*
*://(www.)?udemy.com/*
*://dev.classmethod.jp/*
*://www.sejuku.net/*

」の5行を、uBlacklist -> オプション -> 一般にコピペ。
Ublocklist
反映した絵が上の図。

Tiwtter情報によると、これで綺麗になるとのこと。

ではこれで使ってみようか。

2020年12月 6日 (日)

TPファンコントロールの日本語化

Windows10 化した Thinkpad X230 の不満の解消の続きである。

  • タスクバーにバッテリーの%表示が出ない

Windows7 の時は、タスクバーにバッテリーのアイコンに、残電力が%表示で出ていたが、
Windows10 になったらなくなってしまった。

これの解決は、マイクロソフトのストアから、Lenovo Vantage をダウンロードすると解決する。

その際に、 Lenovo.Vantage.ServiceSetup.exe もインストールする必要がある。

インストールが終わると、この通り、タスクバーのバッテリーアイコンが復活する。
Taskbar_battery
いいね。素晴らしい。

これも問題点があって、Windows7 の時は、ここをダブルクリックすることで、電源やパフォーマンスの設定に行けた。
省電力マネージャーのBasicモードのみLenovo Turbo Boost+という、ファンを全開にして強制空冷して、
Core i7 などに乗っていた、ターボブーストの時間を引き延ばす機能があった。

自分は、CPUが熱っちちになるので、ターボブーストはOFFにしていた。
Lenovo Turbo Boost+を逆手にとって、低負荷時にファンを高回転させて、CPU温度を下げていた。

  • ファンコントロールしたい

Windows10 でもこれがしたいと思って探していたら、TPFanControl というソフトで、ファンのコントロールができることを知った。
ここによると、2015年に開発を終了していて、基本的にWindows XP世代のものらしいが、使えるものは使わせてもらう。
残念ながら、日本語訳のサイトはリンクが切れている。

執念で探した日本語訳が載っているサイトはこちら。じつは、帰宅後30分ぐらいかけて1週間毎日機械翻訳していた。
iniファイルは、英語とドイツ語(Google翻訳の判定)の併記だった。
悔しいので、ここにも、翻訳したiniファイルを貼っておく。

ダウンロード - tpfancontrol_ja.ini

尚、設定はデフォルト値のままである。

そして、表示(ウインドウ)が英語なのが嫌だ~。resource_hackerで変換を試みたが、
長い行が折り返されると、自動で次の行になってしまい、コンパイルエラーで作業ができなかった。
代替のXNResourceEditorで、書き換えることができたが、反映できずに消えた。
原因は、UACでProgram Files以下のバイナリを直接書き換えてた性。

何度も書き換えなおして、無事に反映できた。
Tpfanctrl

やっぱり日本語がいいね。翻訳は、ほぼ機械翻訳頼みだから怪しいよ。

成果品:

ダウンロード - tpfancontrol_jp_patch.exe

ダウンロード - tpfancontrol_jp.exe

上が、WDiffで作ったパッチファイル。
下が、tcfancontrolのバイナリをXNResourceEditorで書き換えたもの。
いやぁ~、疲れたが、個人的には満足だ。

尚、Thinkpadのファンが壊れてしまった。モーターの軸は回転するが、滑ってしまい羽がモーターの軸の回転に追い付かなくなった。
この問題も今日、ファンを取り換えて直った。
ネジが一本余ってしまったが、まぁ、仕方ないか。次壊れたら、やっぱり買い替えだよなぁ・・・。

ーー

MTC-to-DenD はあまり進んでいないが、まぁ、一つやりたいことを実現して片付いたのは気持ちがいい。

お約束:
このページに乗っているiniや実行ファイルを使った結果については、
いかなる場合においても、完全にダウンロード者の自己責任であり、
執筆者及び、掲載サイトの物が責任を負う必要はないものとする。
自分で判断がつかない者の使用を禁ずる。

より以前の記事一覧