Lazy Diary @ Hatena Blog

PowerShell / Java / miscellaneous things about software development, Tips & Gochas. CC BY-SA 4.0/Apache License 2.0

JaCoCoのデータから行単位のbranch coverage (C1 coverage)は復元できない

JaCoCoはC1 Coverageが取れると言っておきながら実際に取れるのはC1(分岐網羅)でなくC2(条件網羅)という問題がある。 この問題に対して、JaCoCo組込みのReportGeneratorを改造するか、またはReportGeneratorを改造するかして、コードカバレッジのデータ…

Java用SSHクライアントライブラリの比較

背景 JavaによるOLTP処理の中で、「別サーバのauthorized_keysに指定されたコマンドをパスフレーズなしのSSH鍵でキックし、その戻り値を確認する」という処理を行いたい場合、外部コマンドとしてSSHを起動するのはいかにも手間がかかる。 そこで、Javaで実装…

タスク スケジューラからPowerShellを起動するとき-Commandオプションのパラメタをシングルクォートで囲んではいけない

前提 タスク スケジューラで作ったタスクで、操作に「プログラムの開始」でpowershell.exeを指定し、「引数の追加」で-Commandオプションと実行したいスクリプトを指定すれば、タスク スクリプトから任意のコマンドを実行できる。 参考: https://www.netspi.…

PowerShellはまり道

github.com この処理を書くときに久しぶりにいくつかはまったのでメモ。 .ps1ファイルの文字コードをBOMなしUTF-8にすると日本語コメントがあったときに誤動作する。たとえばAdd-Typeの後のヒアドキュメントが正しくヒアドキュメントと認識されずに単一行文…

PowerShellでHashSetのForEachメソッドを使う

$map = New-Object System.Collections.Generic.HashSet[string]; $map.Add("ABC") > $null $map | Get-Member とすると出てこないが、PowerShell ISEなどでオートコンプリートを使うとHashSetにForEach()というメソッドが生えていることが分かる。 このForE…

C argv[0] equivalent for Java

In C, you can get the name of the binary file called from the shell with argv[0]. In Java, it seems there is no obvious way to get the equivalent: the name of the class that has the entry-point main() class. I made three options, but none …

EDB EnterpriseとOracleの仮想環境での価格比較例ってないのかな

EnterpriseDB EDB Enterprise Plan*1は、仮想環境で使っても、データベースサーバに割り当てた仮想CPUコアのみが課金対象となる*2。 一方、Oracle Databaseを仮想環境上で使う場合、Oracle製品が稼働する物理サーバーの全てのプロセッサーがライセンスカウン…

ノーコードと一言で言ってもいろいろある

ノーコードと言われているツールの中にも、大きく分けてビジュアルプログラミング環境のようなものと、ETLツールとかに近いもの*1があり、それぞれどんな人を救いたいのか?が違うみたい。「ノーコードツールを使いたいんだけど」と言われたら、だれのために…

PowerShell上でgit diff中の日本語が文字化けするのを直す

前提条件 PowerShellから下のようにgit diffを実行する。 PS C:\git\checkstyle> Get-ChildItem -Recurse | Where-Object { $_.Name -like "messages_ja.properties" } | ForEach-Object { $_.FullName.substring(29) } | ForEach-Object { Write-Output "`n…

Quest For Glory: So You Want To Be A Hero Speedrun Commentary

Quest For Glory 1~5通しでのスピードランが実施されていたのだが、中でもQuest For Glory: So You Want To Be A Hero (EGA version)の解法(1分ちょっとでゲーム終了)が見事だったのでメモをまとめてみた。 youtu.be 1:55 最初にストレングスを40、マジッ…

間欠動作するアプリケーションむけActive Directoryアクセストークンの保存方法の検討

OutlookやSharePointのAPI、バックグラウンドのアプリケーションで使おうとするとすぐ管理者の同意が必要なPermissionを求めてくる。 たとえばバックグラウンドアプリから自分のOneDriveへファイルをアップロードしたい場合、Azure Active DirectoryでFiles.…

Quest for Glory Bingoの各マスの解法

「Quest for Glory」カテゴリー「Triple Bingo」クリアタイムは01:07:03でした!カオスなゲームでしたが全員見事に3ラインのビンゴに成功です!配信チャンネルはこちらhttps://t.co/eCuAyh99nF#Q4GHH2jp pic.twitter.com/lnVofnNs6s— JapaneseRestream (@Jap…

EPSON printers show × for JPEG files exported from LibreOffice

Problem Some EPSON printers have a USB port to print JPEG files stored in USB flash drives. When you store JPEG files exported from LibreOffice to USB flash drives, the printers (especially my EP-881AW) show × mark on the JPEG files. Cause…

各種ツールのJava 17への対応状況

Antには、コンパイル環境のJavaバージョンを判定・取得するJavaEnvUtilsというクラスがあるが、このクラスは最新の1.10.12でもJava 12までしか定義がない。 https://github.com/apache/ant/blob/master/src/main/org/apache/tools/ant/util/JavaEnvUtils.jav…

「デジタルディバイド」の用例収集

「デジタルディバイド」が「格差」の意味ではなく「機械オンチ」の言い換えに使われているのでは……?という事例をいくつか観測した。 株式会社ヘッドウォータースの事業計画資料にある「デジタルディバイド向けUI」 https://www.nikkei.com/markets/ir/irftp…

AltCoverでVB.NETのコードカバレッジが取れるか?

結論 OpenCoverがアーカイブモードに入ってしまった。後継として推されていたAltCoverでも、OpenCoverと同じように行単位のC1が取れそう。 手順 QuickStart Guideに記載の通り、テストケースの格納されているプロジェクト中でdotnet add package AltCoverす…

Pythonプログラム中からimport文レベルの依存関係ベースで不要なファイルを除外する

動機 ソースコード調査ツールの中には、調査対象となるソースコードのサイズで価格が決まるものがあります*1*2。そういったツールの利用価格を低く抑えるには、調査対象のソースツリーから不要なファイルはできるだけ除外したいところです。 米国大統領令でS…

情報処理安全確保支援士の共通講習・実践講習の受講要否を取得する

情報処理安全確保支援士は、1年に1度の共通講習(オンライン講習)と、3年に1度の実践講習(実践講習または特定講習)を受講する義務があります*1。この講習を受講するには3年間で14万円かかります*2。企業や組織に所属する情報処理安全確保支援士の場合、こ…

ツールごとのC1カバレッジ取得方法比較

Java ReportGeneratorでは、分岐カバー率50%を超える行は緑色で表示されてしまい、条件網羅を記録するJaCoCoのようなツールでは逆に表示が分かりにくいという問題があることが分かったので、JaCoCoはEclipseの画面をそのまま表示。 JaCoCoはバイトコード単位…

OpenCloverでC1カバレッジが取れるか?

結論 JaCoCoでは行単位のC1カバレッジが取れないのだ、OpenCloverでは行単位のC1カバレッジが取れそう。C1が100%実行されていないのに100%と表示されてしまうといった問題もなさそう。 手順 手元の環境ではなぜかEclipseでOpenCloverを使う手順が上手く動か…

OpenCoverでVB.NETのコードカバレッジが取れるか?

結論 OpenCover VB.NETとかでググってもぜんぜん事例が出てこないので心配になるが、OpenCoverでVB.NETのコードカバレッジも取れる。ちゃんと行単位でのC1 coverage(branch coverage, 分岐網羅)も取れる。Coverletと違って、C1が100%実行されていないのに1…

CoverletでVB.NETのコードカバレッジが取れるか?

結論 https://docs.microsoft.com/ja-jp/dotnet/core/testing/unit-testing-code-coverage では「Coverlet とは、C# 用のクロスプラットフォームのコード カバレッジ フレームワーク」と言っているが、実際にはCoverletでVB.NETのコードカバレッジも取れる。…

How to write records into .xlsx with OLEDB

satob.hatenablog.com satob.hatenablog.com So, how should you write records into .xlsx files with OLEDB? Requirement and Implementation You want to record some data into a .xlsx file with relational database style. In other words, you want …

How to insert a new row with datatype constraints by using Microsoft.ACE.OLEDB

satob.hatenablog.com You can make an Excel file (.xlsx) without Excel by using Microsoft.ACE.OLEDB, but the behavior of INSERT is also a little bit weird. The behavior changes according to the CREATE TABLE is executed in the same connectio…

How to create a new sheet with the desired name by using Microsoft.ACE.OLEDB

You can make an Excel file (.xlsx) without Excel by using Microsoft.ACE.OLEDB, but the behavior of CREATE TABLE is a little bit weird. The behavior changes according to the name of the sheet, suffix of the sheet name ($) in the CREATE TABL…

GitLabのビデオ会議・ビデオ通話のルール

GitLabは「民主主義的な会社でも、合意ドリブンな会社でもない*1」という前提のもとに立った前提なのでので、そうでない会社にどこまで当てはまるかは分からないけど、それでもフルリモート業務の先達として参考になるかと。 ちなみにGitLab社がabout.gitlab…

ソフトウェア開発工程ごとの工数比率

ソフトウェア開発工程ごとの工数比率のデータ。 1979年のNASAのデータで、設計20%、コーディングと単体テスト47.3%、システムテスト15%、受入テスト12%、その他5.7%。*1 1994年のNASAのデータで、設計23%、コーディング21%、テスト30%、その他26%。*2 *1:Mcg…

ソフトウェア再利用の割合に関する数値

ソフトウェア再利用の割合に関する数値で、参考文献が示されていたもの。 見た資料は以下。他にもあれば追加。 Jalender, B., A. Govardhan, and P. Premchand. "A PRAGMATIC APPROACH TO SOFTWARE REUSE." Journal of Theoretical & Applied Information Te…

各ブラウザがmaxlengthを指定したテキストボックスにサロゲートペアの文字を何文字入力できるか

<input type="text" maxlength="5">に対して、各文字をペーストしつづけてみた。 あ 𩸽 か゚ Chrome on Windows11 あああああ 𩸽𩸽 か゚か゚か Edge on Windows11 あああああ 𩸽𩸽 か゚か゚か Edge IE mode on Windows11 あああああ 𩸽𩸽𩸽𩸽𩸽 か゚か゚か Firefox on Windows11 あああああ 𩸽…

EdgeのIEモードはIEなのか?

Windows 11 Pro 21H2 (22000.282)で確認。 Microsoftは何と言っているか? 「従来のサイトには、Internet Explorer 11 (IE11) から Trident MSHTML エンジンを使用します」と言っている*1。IEモードはIE 11であると言える。 WindowsからIE 11をアンインスト…