Lazy Diary @ Hatena Blog

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

ルータ⇔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の問題かな?と思…

最近のWindows Server付属のIISで無理矢理匿名認証っぽいことをする

Windows Serverの特定バージョン以降だとIISでWebDAVの匿名認証が使えないという話。下記ページだと「IIS 7+」でdeprecatedだと書いてある。比較的最近の記事(2019年)だけど、IIS 7.0ってWindows Server 2008に付属のバージョンだぞ? techcommunity.micro…

cmd.exeとPowerShellの起動速度

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

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

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

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

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

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

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

リテラルと定数とEnumとOTLTとResourceと……の使いわけ

プログラム中で変更可能なパラメータ(メッセージ、設定値、エラーコードなど)は、その記述方法を工夫することで、ソースコードの可読性やアプリケーション保守の容易性を向上させることができます。 一方で、大規模なチームでアプリケーション開発を行う場…

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に対応するための機能が入ってないと問題になることは見えているので、提案書の段階で必要な機能は機能要件に織り込んでおく…

組織内でのAPI認証にOAuth2 Client Credential flowを使うメリット募集

内閣官房が政府CIOポータルで公開してる標準ガイドライン群では、APIテクニカルガイドブックで、API認証をする際は「APIキー又はOpenID Connect」による認証を推奨しています。 ただ、調達の受注者としては「政府CIOポータルで推奨されている方式に従いまし…

ID生成方法の評価観点(主にエンタープライズアプリケーションの視点から)

発端 https://www.asahi.com/articles/ASN5N5VR4N5NULFA01F.htmlwww.asahi.com こんな話がありました。 アプリの開発者に対して「こうやってIDを採番したら、処理が競合したときにIDが重複しますよ」という説明をしたときに、「そんなことが起こる確率は低い…

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…

Launch PowerShell process in non-default culture (locale)

In PowerShell on Windows 10, you cannot change the current culture (locale) with chcp command. If you want to launch a new PowerShell process in another culture, once run cmd.exe from PowerShell, execute chcp, and launch powershell.exe fro…