Lazy Diary @ Hatena Blog

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

Entries from 2020-01-01 to 1 year

外部プロセスとしてシェルスクリプトを起動する方法

任意の処理系から外部プロセスとしてシェルスクリプトを起動したい場合、大きく以下の2つの方法が考えられます。 (1) shの引数にシェルスクリプトを指定する /bin/sh foobar.sh のように、shの引数にシェルスクリプトを指定して起動する。 shに与えるパラメ…

シェルスクリプトに渡す引数をサニタイズ

シェルスクリプトに渡した引数を、スクリプト中で単純に$@で参照すると、OSコマンドインジェクションを招くおそれがある。 $ cat sanitize4.sh #!/bin/bash ash -s <

Equivalent of native2ascii and native2ascii -reverse in CyberChef

CyberChef Unescape string is equivalent to native2ascii -reverse. CyberChef Escape string is almost equivalent to native2ascii. Escape level should be "Special chars". native2ascii never escape Escape single quotes, double quotes, or backt…

CPU goes 100% when you read .HAR file with ConvertFrom-JSON

Background In Chrome DevTools, you can export the contents in the Network tab into a JSON file (.HAR file). Chrome cannot export the contents of the spreadsheet in the Network tab into .csv or .xlsx format. If you want to get these content…

Overwriting existing file never change creation time in NTFS

Overwriting existing file like 1..10 > file.txt, 1..10 | Out-File file.txt, or 1..10 | Set-Content file.txt, never changes creation time in NTFS. You have to delete the file explicitly like rm file.txt; 1..10 > file.txt, or change creation…

テスト用HTTPスタブサーバに適したプログラム

以下の条件で、以下のページで挙げられているツールをながめてみた。 nordicapis.com ボディの内容がこのパターンにマッチしたらこの内容を返す、また別の内容にマッチしたらこの内容を返す……というテストができること HTTPヘッダも含めたレスポンスの内容を…

インターネット中継用衛星コンステレーションによるレイテンシ改善幅の見積

HFTをしている証券会社が、取引所までのhop数を減らすためにStarlinkを利用することを考えたとしよう。最大でどのくらいレイテンシを改善できるだろうか。計算合ってるかな? 光ファイバ中の光速と真空中の光速の差による改善幅 Starlinkのうち一番低い軌道…

Copy-Item doesn't have --no-clobber option

Context: cp(1) has -n or --no-clobber option. It makes cp not overwrite existing files. This option is useful when you copy only newly created files. Problem: In PowerShell, Copy-Item cmdlet doesn't have options equivalent to --no-clobber …

ルータ⇔PC間とルータ⇔ISP&インターネット間で速度計測

PC⇔ルータ間と、ルータ⇔ISP&インターネット間のどちらにボトルネックがあるのか調べる。 PC⇔ルータ間 PCとルータの両方にiPerf3を入れて計測する。 PC側 PS > .\iperf3.exe -s -i 5 -p 5001 -f m --------------------------------------------------------…

4Kモニタへの60Hz出力についての知見

USB3.1 Type-Cコネクタでも、ハードウェアレベルで画面出力には使えないことがある。4K60Hzだと12Gbps必要で、USB 3.1Gen2の10Gbpsでは追いつかない。USB Alt ModeのDisplayPortでも4Kでは30Hzになってしまう。4K 60Hzに追いつくにはThunderbolt 3(40Gbps)…

TFTPでファイルのリクエストがタイムアウトになる

背景 デバイスのブート時にイメージをTFTPで流しこみたい。 TFTPで通信する際、デバイスのIPアドレスは192.168.11.1、TFTPサーバは192.168.11.168で固定になっている。 TFTPサーバにはWindows 10上のPumpKINを使っている。 PumpKINの設定で、リクエスト・レ…

匿名加工情報の作成に使う鍵つきハッシュの鍵をPBKDF2で生成する

個人情報を含むデータをもとにプログラムのテストデータを作成する場合などには、データの匿名化が必要になります。個人情報保護委員会「個人情報の保護に関する法律についてのガイドライン(匿名加工情報編)」*1には、管理用IDなど特定の個人の識別に使え…

Microsoft Print to PDFで出力したPDFファイルが0バイトになる問題を回避する

大きなPDFファイルを複数に分割しようと思って、Adobe ReaderからMicrosoft Print to PDFへ印刷してみたんだけど、できあがるPDFファイルが0バイトで、正常に出力されない。 Wordでも同じ現象が起こったので、これはMicrosoft Print to PDFの問題かな?と思…

cmd.exeとPowerShellの起動速度

体感ではPowerShellの起動速度はcmd.exeと比べて明らかに遅いけれど、具体的にどの程度遅いのか確かめてみた。 OSはWindows 10 version 2004、CPUはIntel(R) Core(TM) i7-8750H CPU @ 2.20GHz(6コア12スレッド)です。 なお、処理に使うウィンドウはPowerSh…

ファイルをAESで暗号化したときに送信先とnonceを共有する方法

AESをECBモードで使っていたり、IVとして固定値を使っていたりするケースを避けるお手本として あるファイルをAESで暗号化し、ローカルマシンのストレージ上に保存しておく 暗号化したファイルをリモートマシンへ送付し、リモートマシンのストレージに保存す…

「解決済みの質問を削除する」風習の調査(があったらいいな)

Web上のQ&Aサイトでは、質問をした後、回答が得られて問題が解決したら、質問者が質問を削除してしまうというケースが見受けられる。 特に技術的なQ&Aサイトの場合は、同じ疑問を持ったり、同じ問題にぶつかった人が解決方法にたどりつく機会が減ってしまう…

非機能要件の安全率の事例収集

非機能要件の安全率として「どのくらいの安全率なら適切か」という値はありません *1 (研究もないように思います)。IPA 非機能要求グレード *2 の「04_項目一覧.pdf」では、性能目標値の「余裕率」として、1倍・1.2倍・1.5倍・2倍・3倍・10倍以上から選択…

How to add a JMS queue corresponding to jboss.naming.context.java.jboss.resources.xxx.yyy.zzz with jboss-cli

Context You are building a Java web application with JMS. You have added a reference to JMS queue with <res-ref-name>xxx/yyy/zzz</res-ref-name> in web.xml. You have changed the configuration file from standalone.xml to standalone-full.xml to use JMS module. You have a…

「基く」は「もとづく」か「もとずく」か

私(1981年生)は小学校か中学校かで「もとづく」が正しくて、「もとずく」は誤りだと習ったように思います。 ところが1955年(昭和30年)の第3期国語審議会では、「もとづく」か「もとずく」かは「原則を決めてもなおかつかたづかない」(吉田委員)ものと…

日本のSIer的なソフトウェア工学が必要とされる前提条件

以下のような前提条件が満たされると、日本のSIer的なソフトウェア工学の有用性が高くなるのかな?という想像。 解雇規制が強い(↔カリフォルニア州の雇用法。突然の解雇が合法 *1) 雇用の流動性が低い(↔エストニア等で高い。アメリカは中位で、日本は非常…

What is the difference of RFC 5322, RFC 821 and implementations of javax.mail.internet.InternetAddress ?

Test for RFC 5322: https://gist.github.com/satob/0dc003aefe020d5f1e9263bd7e173f9f (with regexp in http://www.din.or.jp/~ohzaki/mail_regex.htm#RFC) Test for RFC 821: https://gist.github.com/satob/8c5a42cf636732d81b850b58e8808eef (with regex…

メールアドレスのバリデーション方法

じゃぁメールアドレスのバリデーションってどうやったらいいのさ、という話。 satob.hatenablog.com もちろんバリデーションをした後には、メールアドレスの実在性確認のために実際にメールを送信します*1。その前段で、画面に表示したときにセキュリティ的…

What does "the syntax of RFC822" means in javax.mail.internet.InternetAddress ?

Javadoc of JavaMail API says InternetAddress class uses "the syntax of RFC822". https://javaee.github.io/javamail/docs/api/javax/mail/internet/InternetAddress.html Then how about actual implementation? Is it different from some other email…

How many fields does a class need to cause StackOverflowError with @ToString in Lombok

A: Around 568 (But sometimes it could be compile) BeanWithSoManyFields.java · GitHub This class causes java.lang.StackOverflowError like this: java.lang.StackOverflowError at java.lang.reflect.Field.get(Field.java:393) at lombok.core.AST.b…

各府省のデジタル・ガバメント中長期計画におけるJIS X 0213の採用状況

日本では、平成29年に閣議決定された「世界最先端IT国家創造宣言・官民データ活用推進基本計画」を受けて、「デジタル・ガバメント推進方針」というものが定められており、各府省ではその内容を具体化した「デジタル・ガバメント中長期計画」というものを定…

VM上のUbuntuとWSL2上のUbuntuの違い

WSL2が入ったのでUbuntuを入れてみた。主にsystemdの不在に伴って、VM上のUbuntuとはいろいろと違いがある。常用のツールはWSL2で、systemdやら何やらシステム管理のお試しはVMWareでやるのがいいかな。 initはsystemdではなく、MSが作ったinitが使われる。s…

日本政府提供のサポート終了等技術リスト

政府CIOポータルでは、日本の官公庁・地方自治体向け情報システムを開発する際に参照すべき標準ガイドライン群を公開しています。 その中に「政府情報システムにおけるサポート終了等技術への対応に関する技術レポート」という資料が公開されていて、別添資…

世界最先端デジタル国家創造宣言・官民データ活用推進基本計画に書いてある「31.5GhzのCPU」

日本政府の情報システムに関する方針としては、2013年に「世界最先端IT国家創造宣言」が決定されてから、世界最先端IT国家創造宣言・官民データ活用推進基本計画(2017年)→世界最先端デジタル国家創造宣言・官民データ活用推進基本計画(2018年)といった変…

GDPRを遵守するためにアプリケーションに必要となる機能

あるシステムがEU域内の個人データを扱う場合、GDPRの遵守はシステムの運用主体が負うことになるわけだけれど、とはいえGDPRに対応するための機能自体がシステムに入ってないと問題になることは見えているので、機能要件に織り込んでおく必要があるわけです…

Read from .xlsx in PowerShell (x64) without using Excel

This article shows how to read .xlsx in PowerShell without Excel. In Windows 10 (x64), you will have to do additional work. You have to install Microsoft Access Database Engine 2010 Redistributable (AccessDatabaseEngine_X64.exe) when you u…