Linux(ubuntu)でスクリーンショット

$ gnome-screenshot -a --file=foobar.png
** Message: 09:15:57.065: Unable to select area using GNOME Shell's builtin screenshot interface, resorting to fallback X11.

と出るが一応、選択指定エリアを指定したpngに保存できる。 -wだとカレントウィンドウになるが、コマンドラインから指定するとterminalになるわけで。。。 キーバインドとかの指定は以下のサイトのようにできそう。

https://www.gsenjyounoai.com/2020/05/UbuntuScreenShot.html

WSL2上のLinux(Ubuntu)にJava8, Eclipse, Pleiadesを入れてみた

WSL2のLinux(Ubuntu)にEclipse,Pleiadesプラグインを入れてみた。ただし、 Java8が欲しかったのでEclipseはPhotonをOpenJDK-8をインストールした。

OpenJDKをインストール

$ apt-cache search openjdk
  インストールパッケージを確認する。
$ sudo apt-get update
$ sudo apt -y install openjdk-8-jdk

Eclipseのインストール

Eclipse本家のDownloadサイトの「Donwload Packages」

https://www.eclipse.org/downloads/packages/

から「MORE DOWNLOADS」で「Older Versions」を選択、「Photon」を選択 「R Packages」を選択

https://www.eclipse.org/downloads/packages/release/photon/r

で、「Eclipse IDE for Java EE Developers」の「Linux x86_64」を選択

$ cd /home
$ sudo zcat Downloadしたディレクトリ/eclipse-jee-photon-R-linux-gtk-x86_64.tar.gz | tar xvof -

Pleiadesプラグイン

そもそもWindowsとかならここのAll in Oneパッケージで済むところだが Linuxプラグインのみで、JDK, Eclipseをインストールしてプラグインをあてるという流れのようだ。

https://mergedoc.osdn.jp/

Pleiadesプラグイン・ダウンロード」のLinuxjava-8対応版はこちら」をクリック。

ダウンロード後、以下を実行。

$ cd /home/eclipse
$ sudo unzip Downloadしたディレクトリ/pleiades_20210507.zip
$ vi eclipse.ini
最終行に以下を追加(/home/eclipseはEclipseをインストールしたディレクトリ名)
-javaagent:/home/eclipse/plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar

/home/eclipse/eclipseを起動

「起動時に常に「ようこそ」を表示」のチェックははずす。
「起動時に常に「ようこそ」を表示」のチェックははずす。

「ウィンドウ」の「設定」から「Java」「インストール済みのJRE」のインストール済みのJREを確認。
「ウィンドウ」の「設定」から「Java」「インストール済みのJRE」のインストール済みのJREを確認。

「ウィンドウ」の「設定」から「Java」「コンパイラー」のJDK準拠レベルを確認。
「ウィンドウ」の「設定」から「Java」「コンパイラー」のJDK準拠レベルを確認。

「ウィンドウ」の「設定」から「一般」「ワークスペース」のテキスト・ファイル・エンコードを確認。
「ウィンドウ」の「設定」から「一般」「ワークスペース」のテキスト・ファイル・エンコードを確認。

参考サイト

https://www.kkaneko.jp/tools/ubuntu/linux_eclipse.html

Oracle パッケージのコンパイル

パッケージボディをcreate or replace package bodyで入れ替えたりしていると 自動的にコンパイルしてくれてprocedure/functionが使用できていたものが、急にエラーで使えなかったりすることがあった。 この原因を突き止めたいのだが、とりあえず手動でコンパイルすると使えるようになる。

-- PACKAGE/PACKAGE BODY両方
SQL> ALTER PACKAGE パッケージ名 COMPILE;
-- PACKAGEのみ
SQL> ALTER PACKAGE パッケージ名 COMPILE PACKAGE;
-- PACKAGE BODYのみ
SQL> ALTER PACKAGE パッケージ名 COMPILE BODY;

参考は以下。

プロシージャのコンパイル

[PL/SQL] ストアドを再コンパイルする

SQL*Plusで 空行(空白行)があるとcreate tableがエラー

知らなかったよ、こんな仕様。

-- create-table.sql
CREATE TABLE TEST (
    ID VARCHAR2(8) NOT NULL PRIMARY KEY,
    NAME VARCHAR2(255),
    OTHER VARCHAR2(255)

)
-- 5行目が空行
SQL> @create-table.sql
SP2-0042: 不明なコマンドです(")")。行の残りは無視されました・
    OTHER VARCHAR2(255)
*
行4でエラーが発生しました。:
ORA-00907: 右カッコがありません。
SQL>

set sqlblanklines onを行うといいらしいが、これをデフォルトししてよ。 参考サイトは以下。

https://jialu.hatenadiary.org/entry/20100525/1274753614

https://www.sint.co.jp/siob_bbs/bbs_disp.asp?åcurrent_page=1&disp_mode=1&message_id=2181

正規表現の先読み・後読みを使ってうまく検索

正規表現の先読み・後読みを使うと例えば「直前にABがないCD」というような検索ができる。

直前にABがないCD(後読みの例)

(?<!MY)CD

直後にEFがあるCD(先読みの例)

CD(?=EF)

先読み、後読みって。。。

訳し方が悪すぎらしい。後読みは「look behind」で直後を見ろってこと。 先読みは「look ahead」で直前を見ろってこと。

正規表現 意味
(?=regex) regexがある直前を見ろ
(?!regex) regexが無い直前を見ろ
(?<=regex) regexがある直後を見ろ
(?<!regex) regexが無い直後を見ろ

となる。言語の違いなんだろうね。参考サイトは以下。

こんどこそわかる(肯|否)定(先|後)読み

[コラム] 正規表現の先読み/後読みは、どう考えても名前が悪いので、呼称禁止令を出してルックと気軽に呼んでみませんか。

Oracleでとりあえずデータセーブ

データだけをセーブして元テーブルを(完全)削除。

CREATE TABLE TABLE_FOO_SV AS SELECT * FROM TABLE_FOO;
DROP TABLE TABLE_FOO PURGE;

TABLE_FOOのKEYやINDEXなどを削除してテーブル再作成するときなど。