Gobble up pudding

プログラミングの記事がメインのブログです。

MENU

Homebrew経由でPostgreSQL14をインストール


インストール直後何をすればいいのかよく忘れるのでメモ

前提条件

M1 Mac
シェルはbash
Homebrewをインストール済み
echo $SHELLで/bin/zshならzshです。 もし変えたい場合は先におまけから

インストール

Homebrew経由でPostgreSQL14をインストール

brew install postgresql@14

@の後ろがバージョン番号です。
あとは基本的にTerminalに表示されるまま
デフォルトがzshの場合はこれではなく表示される手順に従ってください。
ログイン時にパスを通す(bash)

(echo; echo 'eval "$(/opt/homebrew/bin/brew shellenv)"') >> ~/.bash_profile

現在のシェルでPATHを通す

eval "$(/opt/homebrew/bin/brew shellenv)"

サービスを起動する

brew services start postgresql@14  

サービスの一覧を確認する

brew services list

データベースの初期化をする

initdb --locale=C -E UTF-8 /opt/homebrew/var/postgresql@14

スーパーユーザ作成

createuser -P -s postgres

繋いでみる

createuser -P -s postgres

繋げたら\qで終了

パスワードを聞かれるようにする

vim /opt/homebrew/var/postgresql\@14/pg_hba.conf 

trustをmd5にする

# "local" is for Unix domain socket connections only
local   all             all                                     trust
# IPv4 local connections:
host    all             all             127.0.0.1/32            trust
# IPv6 local connections:
host    all             all             ::1/128                 trust
# "local" is for Unix domain socket connections only
local   all             all                                     md5
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5
brew services restart postgresql@14

おまけ bashをデフォルトにする方法+αの設定

chsh -s /bin/bash

vim ~/.bash_profile

HOST='\u@\h'
PS1="\[\033]0;$HOST\007\]"     # set window title
PS1="$PS1"'\n'                 # new line
PS1="$PS1"'\[\033[32m\]'       # change color
PS1="$PS1"'\u@\h '             # user@host<space>
PS1="$PS1"'\[\033[33m\]'       # change color
PS1="$PS1"'\w'                 # current working directory
PS1="$PS1"'\[\033[0m\]'        # change color
PS1="$PS1"'\n'                 # new line
PS1="$PS1"'$ '                 # prompt: always $

# "-F":ディレクトリに"/"を表示 / "-G"でディレクトリを色表示
alias ls='ls -FG'
alias ll='ls -alFG'

~/.bashrcでもいい。というか、本当はこっちが正しい。
本当に正しい .bashrc と .bash_profile の使ひ分け #Bash - Qiita

WindowsからMacへファイル共有をする

久々にWindowsのファイルをMac側に送りたいなとおもったらプチハマりしたのでメモ
どうせ次やるときにはまた忘れて同じハマりを繰り返すのだ。
いまどきCDやUSBのデバイスを使って転送するのもアレだし
わざわざこれだけのためにクラウドストレージ使うのもあほらしいし、
ローカルネットワーク内で何とかしたいと思ったときにはまりがちなやつ
Windows Defenderでも起こるかも。
Firewallに阻まれるのはよくあること。
この記事は最低限のネットワークの知識がない人には役立たないかもしれない。

環境

ファイル共有側

OS: Windows11
ウィルス対策ソフト: ESET

ファイル取りたい側

OS: macOS Ventura 13.5
ウィルス対策ソフト: ESET

とりあえず長ったらしいので

WindowsからMacへの共有方法はコチラの通り。Write権限は別に与えんでもいい。
WindowsとMacの間でファイル共有をする方法 | パソコン工房 NEXMAG
Windws Defenderかウィルス対策ソフトのファイヤーウォールをOFFってみれば解決すると思うよ!!

症状

DHCPでWi-FiでPCを複数台使っている(※一部固定IPはある)。
同じセグメントにいるのにMacからWindowsのフォルダが読めない。
うちではCIDR表記で192.168.3.0/24がデフォルトの設定になっている。

古き良きSMB、これは慣れてるからさすがにできるだろ、と思ったらできない。
わざわざWindows側でSMBを有効化してsmb://[IPアドレス]の形式でもアクセスできない。
そればかりかpingも通らない。 なぜか逆方向のWindowsからMacからのpingは通る(おいおいどういうことだよESETさんてばよ)。
といった状態だった。 ファイヤーウォール?ファイアウォール?Firewallが怪しくね?(表記どれが正しいの?) と思ったらやっぱりこれだった。

解決策

ここの手順をすれば基本的にWindowsのデフォルト設定で共有できます。 Mac側も何か設定があるとすればネットワーク関連の設定で
WINSの設定でワークグループがWORKGROUPになっていればOK
Macで「WINS」設定を変更する - Apple サポート (日本)
デフォルトで設定されてるはず。

どうせ共有なんて普段しないんだからESETのファイヤーウォールを一時的にOFFる
恒久的な対策はいつか書きます(たぶん)。

おまけ

Thunderbirdを移行したくてやった。
特にメッセージフィルタがアレなんで、あれをあれしてはこれ
Thunderbirdのメッセージフィルタを移行する #thunderbird - Qiita

SpotBugsの使い方とレポート化の手順

Javaで静的解析がお手軽にできるツールということでレポート化できんだっけ?というので調べたときのメモ

前提条件

Java 17環境(Java 8でも同じだと思うが)
Maven使用(Gradleの場合は末尾の参考サイトを)
Eclipse(英語版)のPleadesじゃないのを使ってる想定
自PCにMavenをインストールしてなくてmvnwを使っていて、
基本的にEclipseのGUIでbuild/installする前提
SpotBugsは4.8.3を使います

インストール

Help > Install new software
Work with:
https://spotbugs.github.io/eclipse/
Addを押しとく Name: SpotBugs
あとは選択してNext、agreeしてFinish

その後しばらくして経つと、trust selectedを選ぶ

そのあとEclipse再起動により
プロジェクト右クリックでSpotBugsが出てくるようになる
4.8.3が選ばれた。

設定

プロジェクト右クリック
プロパティでSpotBugsを選ぶ

Configure Workspace Settingsを押す
お好みですが、かなり緩い設定にしてます。
後述のプラグインで簡単に制御できるのは analysis effortMinimum confidence to reportです。

analysis effort: Default  
Reporter Configurationタブ  
Reported (visible) bug categories  
の欄のBad pricticeなどのチェックを全部入れる  
右側のMinimum confidence to report: Highにする  
あとはそのまま  

実行方法

右クリックによりFind Bugsで出せる
そうすると下部の(Problems(マーカー))に出てくる。どれが出したかは
TypeにSpotBugsと書いてあるのでそれで判別できる
Excelに貼り付けたい場合はこれをCtrl+Aでコピーしてコピペすればよい

HTMLレポート化

spot-bugs-maven-pluginの最新版は4.8.3であるようだ
1)pom.xmlのdependencyに以下を追加

    <dependencies>
            ...
        <dependency>
            <groupId>com.github.spotbugs</groupId>
            <artifactId>spotbugs-maven-plugin</artifactId>
            <version>4.8.3</version>
        </dependency>
    </dependencies>

注:環境によっては次の依存も追加しないといけないかもしれない

    <dependencies>
            ...
        <dependency>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-site-plugin</artifactId>
            <version>3.12.1</version>
        </dependency>
    </dependencies>

あと場合によってはmaven-site-pluginの依存するhttpcoreあたりも追加する必要があるかも。

2)pom.xmlのbuild.pluginsの中に下記を追加

    <build>
        <plugins>
            ...
            <plugin>
                <groupId>com.github.spotbugs</groupId>
                <artifactId>spotbugs-maven-plugin</artifactId>
                <version>4.3.0</version>
            </plugin>
        </plugins>
    </build>

3)pom.xmlのreporting.pluginsに下記の記載を追加

 <reporting>
        <plugins>
            <plugin>
                <groupId>com.github.spotbugs</groupId>
                <artifactId>spotbugs-maven-plugin</artifactId>
                <configuration>
                    <effort>Default</effort>
                    <threshold>High</threshold>
                    <xmlOutput>true</xmlOutput>
                </configuration>
            </plugin>
        </plugins>
    </reporting>

※かなり緩い設定にしています。これはEclipseのプラグインの設定画面の次にあたるっぽいです。   effort -> analysis effort threshold -> Minimum confidence to Report 設定を書かないとあらゆるものが出力されます(本来はそれで良いが)。 ちなみにカテゴリー(Bad Practice)の単位でしぼりたかったものの何故かできませんでした。 SpotBugs Mavenプラグインの使い方 — spotbugs 4.8.3 ドキュメント
ここにはその記載があるにもかかわらず。
あと公式サイトがeffortとthresholdに何がかけるのか書いてない気がしますのでそこがつらい。

EclipseでMaven Buildの実行を追加する

あとは
mvn compile site

mvnw compile site
でいいのだが、大人の事情でSSL関連のエラー出るよーとかで、
いろいろ解決がめんどくさいのでEclipseからやる方法
(※制限された環境かだと素直にMavenをインストールしてコマンドラインからやったほうが楽ですが)

プロジェクト右クリック > Run As > Run Configuration
Maven buildの欄に新規追加
Name SpotBugs
Base directory: ${project_loc:[プロジェクト名]}
Goals: compile site
Profiles: pom.xml
プロジェクト名は置き換えてください。

あとはRun
だいぶかかるのでしばらく待つ
Spring Bootのプロジェクトなんだけどごっそり全部落とされてダウンロード地獄
しばらくたつと
target/site配下にspotbugs.htmlが出力される
※要リフレッシュ

警告された例

Primitive boxed just to call toString in ... [Of Concern(16), High confidence]

Integer.valueOf(1).toString() → String.valueOf(1)かInteger.toString(1)
今回の場合は後者でいい...的な警告だった。 Bug descriptions — spotbugs 4.8.3 documentation

参考サイト

いまだにJava 8 備忘録 - SpotBugsの使い方 - ふるてつのぶろぐ

ブラウザで日本語入力がおかしくなる、うまく入力できなくなることがある

起こっていた問題

特にブラウザのアドレスバー上でGoogle検索をしようと日本語入力をしようとしたときに
まともに日本語が打てなくなる事象がたまに発生します。
ブラウザ以外のテキストエディタ上では特に問題になりません。

環境情報

ちなみに私の環境は以下です。※Mac macOS Ventura13.0のほうでもESETを使っていますがそちらはこの問題が起きてないです。

種別 ソフト バージョン
OS Windows 11 Pro 22H2
ブラウザ Google Chrome 119.0.6045.125
ウィルス対策ソフト ESET Internet Security 16.2.15.0

原因と思われるもの

何だろうと思い探るとESETで問題があると報告がありました。

文字の入力がおかしいです - Google Chrome コミュニティ

ただここで指摘されているバージョンと少し違います。
「キーボード保護」というのをONにすると(デフォルトではオン)
特にパスワードなどの入力で悪意のあるソフトウェアのキーロガーなどからキー入力を盗まれないように保護する機能があり、
ESET側で多分何らかのフックを妨害しているのかな?と推測します。
Windowsにはグローバルフックという何かの処理に割り込んで横取り処理をすることができます。

それであまり欧米人(というかほぼ日本人以外)にはなじみの薄いIMEの漢字変換を伴う
(日本人から見ても非常に複雑な)入力での(おそらくESET側での)不具合により妨害され
まともに入力できなくなるということなのでしょう。
※英語入力では問題になりせんでした。また、この不具合はESET側が悪いのかブラウザ側が悪いのかは外部の人間には判断がつきません。ESETは数あるウィルス対策ソフトの中でもいいものだと思っています(Windows Defenderでよくない?というのはありますが)。

対処方法

対処としては別途テキストエディタで入力したものをコピペする
もしくはあまり気が進みませんが、一時的にESETの「キーボード保護」を無効にすると発生しなくなると思います。
怪しいマルウェアが絶対に入ってないと言い切れるならOFFにしてもよいでしょう(ここにたどり着く人はある程度のリテラシーがあるはずなのでまず大丈夫だとは思いますが)。

ESETのメニューから
設定 > 詳細設定 > 保護 > ブラウザー保護
下部のセキュアブラウザーから「キーボード保護」があるのでOFFにします
検索窓が詳細設定にあるのでそこで検索してもよいです。