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

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

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

それぞれの意味は以下:

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

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

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

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

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

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

Windows10で検索のときWebから検索しないように設定

インターネットでいろいろ調べたが、

How to disable Bing web search results in Windows 10 Start Menu

に答えが書かれている。

レジストリーの

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Search] 

 に「BingSearchEnabled」というDWORD型のキーを新規作成して、値を0にすればよい。

JPA使用中のいくつの問題点

JPAは使うべきではないと思われるできごとが発生した。

恥ずかしいながら、2013年にリリースされたJava EE 7を最近使い始めた。JPA2.1をIBM WebSphere Liberty Profile 19で動かしている。

JPQLではいろいろ苦戦していて、以下の問題に直面していた。

1.JPQLでHAVING文が使えない。

JOINを使用したJPQLで、

HAVING テーブルA.項目1 条件

と書かれたJPQLが正しく解析されない。最初は「項目1が見つからない」とのエラーが出たが、ようやく真相が分かるできごとが発生し、組み立てたSQLでは

HAVING テーブルB.項目1 条件

となっていた(たまたまテーブルAとテーブルB両方項目1という項目が存在し、SQLの組み立てまでエラーなくできた)。明らかなバッグだろう!!!

 

2.JOINを使用時、順番がおかしい。

SELECT XXXX

FROM テーブル1

INNER JOIN テーブル2 ON テーブル2の項目条件

LEFT OUTER JOIN テーブル3 ON テーブル2とテーブル3の項目条件 

 のJPQLを勝手に

SELECT XXXX

FROM テーブル1

LEFT OUTER JOIN テーブル3 ON テーブル2とテーブル3の項目条件 

,テーブル2 

WHERE テーブル2の項目条件

 に組み立てて、赤字の条件でSQLの解析エラーになっていた。仕方なくテーブル2のJOINをLEFT OUTER JOINに変えざるを得なかった。

 

3.数式を勝手に書き換えられた。(もうJPAをやめたい!)

SELECT A - B - SUM(C) FROM XXXX

と書いたJPQLの実行結果がおかしい。実際に組み立てたSQLを見ると、

SELECT A - ( B - SUM(C) ) FROM XXXX

となっていた!勝手に括弧を入れられていた!!!

もうJPAをやめたい!!!

gitでpushされていないすべてのcommitを取り消し

gitを使い始めたが、まだまだ慣れない。一回間違えてほかのブランチとマージしてしまったが、pushされる前のすべてのcommitを取り消したくて、インターネットでやり方をいろいろ探した。最終的にはこちらのサイトで回答が書かれている。

git reset - How to discard local commits in Git? - Stack Overflow

​git reset --hard origin/ブランチ名

 を実行すればよい。

Node.js コンソールから終了する

普段では使わないが、たまにNode.jsを実行すると、コンソールから終了できなくなってしまった。「exit」も「quit」も「/exit」も効かない。

Node.js: Exiting from the Node console

に終了する方法が書かれている。

process.exit()

.exit

 を実行ればよい。

Fedora 30にアップグレードした後、デフォルトKernelが設定できない問題

Fedora 30にアップグレードした後、デフォルトKernelが設定できない。grubbyコマンドで確認した結果は正しいのに、起動のときどうしてもFedora 29のときの古いKernelがデフォルトになっていた。

いろいろ調べたら、以下のURLに解決方法が書かれている。

1707621 – grub2 default boot after upgrade (fc29 -> fc30)

sudo grub2-install /dev/sda 

 を一回実行したら、なおった。