Lazy Diary @ Hatena Blog

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

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

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

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

非機能要件の安全率として「どのくらいの安全率なら適切か」という値はありません(研究もないように思います)。 Qiitaの記事*1にあるように、1.2~1.5というのが感覚値ではありますが、これといった根拠はありません。 そこで、政府機関・自治体・各種団体…

リテラルと定数と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…

pgbenchでINSERT中心のトランザクションのTPSをできるだけ高くする

動機 DBのチューニング方法なんかの書籍を見てみても、性能向上方法として語られているのはSELECTのチューニングが主で、INSERTに関する記載はあまり見当たりませんでした。ですが、大量のデバイスから飛んできたデータをMQTTやらHTTPやらで受けて、それを生…

常用漢字表を新旧漢字変換の根拠資料に使う場合の制約

文化庁の出している常用漢字表 *1 には康煕字典体と常用漢字の対応が記載されている。ただ詳しく調べてみたら、対応の記載自体に以下のようなコーナーケースがあるみたい。 「著しい差異のないものは省」かれているので「頬⇄頰」のような対応は記載がない。 …

You cannot set CPU affinity of PostgreSQL instance started through pg_ctl with Start-Process and Process.ProcessorAffinity

Background: In Windows, you can set the CPU affinity of an user process with Start-Process PowerShell cmdlet and System.Diagnostics.Process.ProcessorAffinity property like this: $app = Start-Process -FilePath C:\Windows\System32\mspaint.ex…

An error in pgbench: invalid command in command "setrandom"

Background: I tried to run the following transaction script on pgbench contained in PostgreSQL 12: \set nbranches 1 * :scale \set ntellers 10 * :scale \set naccounts 100000 * :scale \setrandom aid 1 :naccounts \setrandom bid 1 :nbranches \…

RDBMSに対する考えかた(レコード内での整合性)

一般的なエンタープライズアプリケーションアーキテクチャの考えかたでは、 RDBMSの1レコードはそのまま現実世界の状態をモデル化したもの 画面に表示されているデータの内容と、DB上のデータとは整合しているべき レコードを更新するということは(たとえ部…

HDMI接続の外部モニタで色がおかしい

症状 PCと外部モニタをHDMIで接続した際、写真のように外部モニタの色がおかしくなる。 色がおかしい場合の表示(HDMI接続) 黒で表示されるはずの箇所が緑色で、白で表示されるはずの箇所が紫色で表示される。 OSDの色は問題なく表示されるので、パネルの異…

「外字」の示す範囲の認識の多様性

このエントリ、いったい誰をターゲットにした内容なんだろうな?というのが第一印象です。 blogs.windows.com 「お前のところのIMEが外字を入力させてるんじゃないか、いい加減にしろ」って言う人、絶対にいると思うんだよなぁ。 あるシステムの設計者に「こ…

Rethinking Productivity in Software Engineering Part I: ​Introduction to Productivity

Now I am reading Caitlin Sadowski, Thomas Zimmermann "Rethinking Productivity in Software Engineering", Apress, 2019. Rethinking Productivity in Software Engineering発売日: 2019/05/08メディア: ペーパーバック Now I have read through Part I:…