ksino's diary

覚えたことを忘れないように、小さなことでも書いていく。

Selenideでclickに失敗するのを回避

Selenideで↓のようにclickを実行しようとすると、失敗するケースがありました。

$(By.id("id1")).click();

sendKeysを試したらうまくいきました。

$(By.id("id1")).sendKeys(Keys.ENTER);

原因はきちんと追っていないのですが、、、id1に紐づくのがsubmitボタンではなく、onclickでXMLHttpRequest.send()とかやってるとダメみたいでした。

実践 Selenium WebDriver

実践 Selenium WebDriver

組み込みのSQLiteを利用する

createの例

import sqlite3

connection = sqlite3.connect('test.db') # 無い場合は新規作成される
cursor = connection.cursor()
cursor.execute('create table kokyaku (id int, name varchar(64))')
connection.commit()
connection.close()

insertの例

import sqlite3

connection = sqlite3.connect('test.db')
cursor = connection.cursor()

kokyaku_data = [
    (1, 'ペガ'),
    (2, 'ドラコ'),
    (3, 'グリ'),
]

for kokyaku in kokyaku_data:
    cursor.execute('insert into kokyaku values (?, ?)', kokyaku)
connection.commit()

connection.close()

selectの例

import sqlite3

connection = sqlite3.connect('test.db')
cursor = connection.cursor()

for row in cursor.execute('select * from kokyaku'):
    print(row)

connection.close()

ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD の除去

Eclipseに導入したSpotBugsで、「インスタンスメソッドからstaticフィールドへの書き込み」がエラー検知されました。↓こんなコードです。

public class WriteStatic {

	private static String s;
	
	public void method(String value) {
		s = value;
	}
}

f:id:ksino:20200508233252p:plain

諸事情によりソースは修正できないため、このルールを除外しようと思いました。
SpotBugsの設定([Preferences]-[Java]-[SpotBugs])の、[ディテクター構成]を眺めても、該当しそうな項目がない…ということで、一つ一つしらみつぶしに調べたのでメモです。

結論としては[ディテクターID]が「UnreadFields」のチェックを外せばよいようです。
正直、関連がよくわかりませんでした。。。
f:id:ksino:20200508233311p:plain

JavaScriptメモ(随時更新)

変数はletで宣言すべき

varは古い機能である。

let a;
文字列と数値の演算

"+"だけが文字列として演算される。

console.log("12" + 3); // "123"
console.log("12" - 3); // 9
console.log("12" * 3); // 36
console.log("12" / 3); // 4

書籍「みんなのJava」を読みました

書籍「みんなのJava OpenJDKから始まる大変革期!」を読みました。
Javaを使い始めて20年以上が経ちますが、ここ数年の大きな変革にはついていけてなかったので、大変参考になりました。
今後も定期的にこのような本が出ると嬉しいですね。。

Baldur's Gate: Enhanced Editionの画面が小さい場合の対処

問題

SteamのセールでBaldur's Gate: Enhanced Editionを買いました。
store.steampowered.com
喜び勇んで起動すると、画面が小さい。。。
f:id:ksino:20200426001626j:plain
ディスプレイ中央部に小さく表示され、余白が黒くなっています。
これでは辛いので対処方法を調べました。

設定ファイルの修正

まずは設定ファイルを修正します。
ゲームを一旦終了し、以下のファイルをテキストエディタで編集します。(編集前にはバックアップを取っておきましょう)

C:\Users\<ユーザ名>\Documents\Baldur's Gate - Enhanced Edition\Baldur.lua

画面解像度の設定を探します。(導入環境によって、設定値は異なるかもしれません)

SetPrivateProfileString('Window','Full Screen','1')
SetPrivateProfileString('Window','y','92')
SetPrivateProfileString('Window','x','388')
SetPrivateProfileString('Window','w','1398')
SetPrivateProfileString('Window','h','868')

自身の環境に合わせて修正します。

SetPrivateProfileString('Window','Full Screen','1')
SetPrivateProfileString('Window','y','0') -- 画面表示位置(y)
SetPrivateProfileString('Window','x','0') -- 画面表示位置(x)
SetPrivateProfileString('Window','w','1920') -- 画面の横幅
SetPrivateProfileString('Window','h','1080') -- 画面の高さ

ゲーム内での設定

ゲームを起動し、以下の設定を行います。
1.「グラフィック」をクリックします。
f:id:ksino:20200426002606j:plain
2.「ユーザーインターフェイスの調整」を有効にし、「完了」をクリックします。
f:id:ksino:20200426002749j:plain

設定変更後

上記設定を変更することで、ゲーム画面をディスプレイいっぱいまで大きく表示することができました。
f:id:ksino:20200426002956j:plain
横方向がディスプレイいっぱいまで広がっていないですが、、、これは当時のディスプレイと今のディスプレイの縦横比の問題の気がする。

財布を買い替えました

2年ほど、アブラサスの小さい財布を使っていました。

非常にコンパクトで、気に入っています。
お札を入れると変なクセはついちゃいますが、最近はほぼキャッシュレスでお札を入れることもないので、あまりデメリットには感じていませんでした。

ただ、、、金属ホックがあるので、ズボンのポケットに入れたときに、ズボンの生地を痛めてしまうんですよね。
それが気になっており、金属不使用の薄い財布に乗り換えてみようかと。

最初に興味を持ったのは↓です。

ただ、サイズを見るとちょっと大きい。
というわけで、小銭入れを諦めて、HUKUROの「お札入れ -smart-」にしました。

アブラサスの小さい財布に比べると大きくなりますが、我慢できないほどではない。
小銭は入らなくなるけど、キャッシュレスな昨今ではめったにつかわない。(お釣りを受け取ったときは、、、一時的にポケットに放り込んで我慢)
なんといっても、金属部品不使用!

しばらく使ってみます。

ちなみに、お札を折って入れる前提であれば、もう少しコンパクトで安価な「お札入れ -compact-」もありますね。
お値段も安いし、これはこれで良さそう。お札を折らずに入れられる点を取るか、コンパクトな点を取るか、ですね。