2020年2月12日放送東大王難問オセロ

外来語に関する難読漢字

来路花 サルビア 木栓 コルク 白楊樹 ポプラ 拿林雀 カナリア 鳩琴 オカリナ 食單 メニュー
卓子 テーブル 乾酪 チーズ 硝子 ガラス 手巾 ハンカチ 鳳梨 パイナップル 糖酒 ラム
茫栗 マンゴスチン 排球 バレーボール     型録 カタログ 番紅花 サフラン
獅子女 スフィンクス 熊猫 パンダ     甘蕉 バナナ 大提琴 チェロ
自鳴琴 オルゴール 円舞曲 ワルツ 洋袴 ズボン 送球 ハンドボール 長尾驢 カンガルー 小酒 リキュール
鶏蛋糕 カステラ インチ 果蜜 シロップ 手風琴 アコーディオン センチメートル 嗩呐 チャルメラ

ffmpegでm3u8ファイル変換時のエラー対応

ffmpegでm3u8を普通のファイルへ変換する際に、以下のエラーが発生した。

[hls @ 0x560cb61609c0] Filename extension of 'xxxxx.key' is not a common multimedia extension, blocked for security reasons.
If you wish to override this adjust allowed_extensions, you can set it to 'ALL' to allow all 

 ファイルの中身にはxxxxx.keyに関する記述は下記のように書かれている。

 #EXT-X-KEY:METHOD=AES-128,URI="xxxxx.key",IV=0x??????????????????????

 該当の行は使用されていないかは不明なため、いろいろffmpegのオプションを調べた。下記のサイトに解決法が書かれている。

http live streaming - ffmpeg how to allow a file extension - Stack Overflow

ffmpegのコマンドで下記のように実行すればよい。

ffmpeg -allowed_extensions ALL -i input.m3u8 -c copy output.ts 

普通のコマンドと異なり、ffmpegではオプションの順番にこだわってるようで、オプションの順番が違うとうまく動かないようだ。

podmanコマンドのエラー対象法

Fedora 31からdockerが使えなくなった。その替り、podmanを使用するように推奨されている。しかし、podmanコマンドを実行すると、以下のエラーになった。

Error: could not get runtime: open /proc/23155/ns/user: no such file or directory

23155というプロセスIDについて心当たりがないが、いろいろ調べたら、以下のファイルに記述されていることが判明

/run/user/$UID/libpod/pause.pid

該当のファイルを削除したら、解決した。

Fedora 31のgnuplotで日本語が入っているグラフを作成する

gnuplotでグラフを作ってみたが、日本語を入れるのに苦労したので、その手順の記録である。

1.Ghostscript での日本語対応

/usr/share/ghostscript/Resource/Init/cidfmap を編集し、以下の行を追加(要root権限

/Ryumin-Light << /FileType /TrueType /Path (/usr/share/fonts/ipa-ex-mincho/ipaexm.ttf) /CSI [(Japan1) 6] >> ;
/GothicBBB-Medium << /FileType /TrueType /Path (/usr/share/fonts/ipa-ex-gothic/ipaexg.ttf) /CSI [(Japan1) 6] >> ;

前提として、ipa-ex-mincho-fonts(/usr/share/fonts/ipa-ex-mincho/ipaexm.ttf 提供)とipa-ex-gothic-fonts(/usr/share/fonts/ipa-ex-gothic/ipaexg.ttf 提供)のパッケージが必要である。

 

2.以下のepsを生成するスクリプトファイルを用意する

 % test.plot

set terminal postscript enhanced color "GothicBBB-Medium-UniJIS-UTF8-H"
set output 'test.eps'

set grid #グリッドon

set xlabel "X軸"
set ylabel "Y軸"

plot sin(x) title 'サイン', cos(x) title 'コサイン'

 

3.以下のコマンドを実行して、test.epsを生成する

$ gnuplot test.plot

 生成したファイルはevinceかatrilコマンドから確認できる。イメージは以下である。

f:id:hanaokaiwa:20200206172916p:plain

生成した結果ファイル

 

Fedora 31でuptex環境を設定

久しぶりにlatex関係の情報を調べたら、ptexの拡張であるuptexを知った。早速設定してみた。

Fedora 31ではtexliveのパッケージがあるため、特に追加インストールがなくてもコンパイル、PDF変換ができるが、なぜか付属のxdviでは日本語を表示させることができないため、pxdviを導入する必要がある。

1.以下のサイトからpxdvi.tar.xz、pxdvi.x86_64-linux.tar.xz  をダウンロードし、解凍しておく。

https://texlive.texjp.org/current/tltexjp/archive/

 

2.以下のようにファイルをローカルにインストールする。(->の後ろはインストール後のフルパス)

(ちなみに、Linuxのインストールでは

install -m インストール後のファイルモード 元ファイルのフルパス インストール先のフルパス

のコマンドで実施可能(要root権限))

2-1) pxdvi.tar.xz の解凍ファイル

texmf-dist/xdvi/xdvi-ptex.map.sample  -> /usr/share/texlive/texmf-dist/xdvi/xdvi-ptex.map.sample

texmf-dist/xdvi/pxdvi.cfg  -> /usr/share/texlive/exmf-dist/xdvi/pxdvi.cfg

texmf-dist/fonts/map/pxdvi/xdvi-ptex.map -> /usr/share/texlive/texmf-dist/fonts/map/pxdvi/xdvi-ptex.map

2-2)  pxdvi.x86_64-linux.tar.xz の解凍ファイル

bin/x86_64-linux/pxdvi -> /usr/share/texlive/bin/pxdvi

bin/x86_64-linux/pxdvi-xaw -> /usr/share/texlive/bin/pxdvi-xaw

 

3.以下のような追加作業を実施する(要root権限

3-1) texmf.cnf リンク作成

ln -s /etc/texlive/web2c/texmf.cnf /usr/share/texlive/bin/

3-2) /usr/share/texlive/bin/pxdvi を修正(最後の行を変更)

変更前:

exec pxdvi-xaw $NAMEOPT ${1+"$@"}

変更後:

exec $(dirname $0)/pxdvi-xaw $NAMEOPT ${1+"$@"}

3-3) xdvi-ptex.map ファイルの修正

/usr/share/texlive/texmf-dist/fonts/map/pxdvi/xdvi-ptex.map に以下の行を追加(/usr/share/texlive/texmf-dist/fonts/map/dvipdfmx/updmap/kanjix.map から取得)

% uptex-ko-baekmuk.map
uphygt-h UniKS-UTF16-H dotum.ttf %!PS Baekmuk-Dotum
uphygt-v UniKS-UTF16-V dotum.ttf %!PS Baekmuk-Dotum
uphysmjm-h UniKS-UTF16-H batang.ttf %!PS Baekmuk-Batang
uphysmjm-v UniKS-UTF16-V batang.ttf %!PS Baekmuk-Batang
% uptex-sc-arphic.map
upstht-h UniGB-UTF16-H gkai00mp.ttf %!PS GBZenKai-Medium
upstht-v UniGB-UTF16-V gkai00mp.ttf %!PS GBZenKai-Medium
upstsl-h UniGB-UTF16-H gbsn00lp.ttf %!PS BousungEG-Light-GB
upstsl-v UniGB-UTF16-V gbsn00lp.ttf %!PS BousungEG-Light-GB
% uptex-tc-arphic.map
upmhm-h UniCNS-UTF16-H bkai00mp.ttf %!PS ZenKai-Medium
upmhm-v UniCNS-UTF16-V bkai00mp.ttf %!PS ZenKai-Medium
upmsl-h UniCNS-UTF16-H bsmi00lp.ttf %!PS ShanHeiSun-Light
upmsl-v UniCNS-UTF16-V bsmi00lp.ttf %!PS ShanHeiSun-Light

3-4) mktexlsrを実行

sudo mktexlsr

必ずroot権限で実行

 

4.以下の追加設定を実施(root権限不要)

4-1) xdvi スクリプトを追加

~/bin/xdvi を追加し、実行権限を付ける。中身は以下のようにする。

#! /bin/sh

/usr/share/texlive/bin/pxdvi "$@"

4-2) .bashrc を編集して、以下の行を追加

export TEXMF=/usr/share/texlive/

 

5.動作確認

5-1) helloj.tex (一番基本なtexファイル)

以下の内容をUTF-8エンコーディングで保存する。

\documentclass{ujarticle}
\begin{document}

こんにちは, \TeX!

\end{document}

以下のコマンドを実行する。

# texコンパイル

uplatex helloj

# dviファイルの表示

xdvi helloj

pxdviの画面

pxdviの画面

# PDFファイル作成
dvipdfmx helloj

# PDFファイルを表示(好きなPDFビューワーを使う)

atril helloj.pdf

atrilの画面

atrilの画面

5-2) cjk.texhttps://texwiki.texjp.org/?upTeX%2CupLaTeX#p5e56276 にあるCJKサンプルファイル)

以下の内容をUTF-8エンコーディングで保存する。

\documentclass{ujarticle}
% CJK fontの設定
\DeclareFontFamily{JT2}{jpnrm}{}
\DeclareFontFamily{JY2}{jpnrm}{}
\DeclareFontFamily{JT2}{schrm}{}
\DeclareFontFamily{JY2}{schrm}{}
\DeclareFontFamily{JT2}{tchrm}{}
\DeclareFontFamily{JY2}{tchrm}{}
\DeclareFontFamily{JT2}{korrm}{}
\DeclareFontFamily{JY2}{korrm}{}
\DeclareFontShape{JT2}{jpnrm}{m}{n}{<->s*[0.962216]upjpnrm-h}{}
\DeclareFontShape{JY2}{jpnrm}{m}{n}{<->s*[0.962216]upjpnrm-h}{}
\DeclareFontShape{JT2}{schrm}{m}{n}{<->s*[0.962216]upschrm-h}{}
\DeclareFontShape{JY2}{schrm}{m}{n}{<->s*[0.962216]upschrm-h}{}
\DeclareFontShape{JT2}{tchrm}{m}{n}{<->s*[0.962216]uptchrm-h}{}
\DeclareFontShape{JY2}{tchrm}{m}{n}{<->s*[0.962216]uptchrm-h}{}
\DeclareFontShape{JT2}{korrm}{m}{n}{<->s*[0.962216]upkorrm-h}{}
\DeclareFontShape{JY2}{korrm}{m}{n}{<->s*[0.962216]upkorrm-h}{}
\DeclareFontShape{JT2}{jpnrm}{bx}{n}{<->ssub*jpnrm/m/n}{}
\DeclareFontShape{JY2}{jpnrm}{bx}{n}{<->ssub*jpnrm/m/n}{}
\DeclareFontShape{JT2}{schrm}{bx}{n}{<->ssub*schrm/m/n}{}
\DeclareFontShape{JY2}{schrm}{bx}{n}{<->ssub*schrm/m/n}{}
\DeclareFontShape{JT2}{tchrm}{bx}{n}{<->ssub*tchrm/m/n}{}
\DeclareFontShape{JY2}{tchrm}{bx}{n}{<->ssub*tchrm/m/n}{}
\DeclareFontShape{JT2}{korrm}{bx}{n}{<->ssub*korrm/m/n}{}
\DeclareFontShape{JY2}{korrm}{bx}{n}{<->ssub*korrm/m/n}{}
\DeclareRobustCommand\jpnrm{\kanjifamily{jpnrm}\selectfont}
\DeclareRobustCommand\schrm{\kanjifamily{schrm}\selectfont}
\DeclareRobustCommand\tchrm{\kanjifamily{tchrm}\selectfont}
\DeclareRobustCommand\korrm{\kanjifamily{korrm}\selectfont}
\begin{document}
\section{日本語}
\jpnrm
すべての人間は、生まれながらにして自由であり、かつ、尊厳と権利とについて平等である。
人間は、理性と良心とを授けられており、互いに同胞の精神をもって行動しなければならない。
\section{中国語・簡体字 {\schrm 简体中文}}
{\schrm
人人生而自由,在尊严和权利上一律平等。
他们赋有理性和良心,并应以兄弟关系的精神相对待。
}
\section{中国語・繁体字 {\tchrm 繁體中文}}
{\tchrm
人人生而自由,在尊嚴和權利上一律平等。
他們賦有理性和良心,並應以兄弟關係的精神相對待。
}
\section{韓国語 {\korrm 한국어}}
{\korrm
\xkanjiskip=.1zw plus 1pt minus 1pt
모든 인간은 태어날 때부터 자유로우며 그 존엄과 권리에 있어 동등하다.
인간은 천부적으로 이성과 양심을 부여받았으며 서로 형제애의 정신으로 행동하여야 한다.
}
\end{document}

以下のコマンドを実行する。

# texコンパイル

uplatex cjk

# dviファイルの表示

xdvi cjk

pxdviの画面

pxdviの画面

# PDFファイル作成
dvipdfmx cjk

# PDFファイルを表示(好きなPDFビューワーを使う)

atril cjk.pdf

atrilの画面

atrilの画面

Db2でALTER TABLE後のエラー対応

Db2でALTER TABLEを実施した。そして、該当のテーブルに更新処理を行おうとするとき、以下のエラーが発生される。

Internal Exception: com.ibm.db2.jcc.am.SqlException: Operation not allowed for reason code "7" on table "スキーマ.テーブル名".. SQLCODE=-668, SQLSTATE=57016, DRIVER=4.17.29
Error Code: -668 

インターネットでいろいろ調べたが、以下のサイトには回答が書かれている。

[DB2 LUW] REORGペンディングの回復方法

単に、

db2 reorg table スキーマ.テーブル名

を実行すればよい。

 

pwgenでランダムパスワードを生成

ランダムパスワードを生成するため、以下のコマンドを実行すればよい。

pwgen -Bsy パスワードのサイズ 生成するパスワード数

それぞれの意味は以下:

-B 間違いやすい文字("l"と"1"など)を使用しない

-s 完全にランダムなパスワードを生成する

-y 生成されたパスワードに符号を含める

ただし、使用する符号を指定することができないため、使用しない符号のみ指定することができる。以下のオプションではすべての符号を指定しなくなるため、そのまま実行すると「Error: No symbols left in the valid set」とのエラーになってしまう。

-r "\'\"@?^&*()\`:~;:[]{}.,\\\/\|\!=#+><\$%-_"

必要に応じて使える符号を上記オプションから削除していくと、使用する符号の指定と同じ結果が得られる。