Lazy Diary @ Hatena Blog

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

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.buildWithField0(AST.java:383)
        at lombok.core.AST.buildWithField(AST.java:284)
        at lombok.javac.JavacAST.drill(JavacAST.java:357)
        at lombok.javac.JavacAST.buildStatementOrExpression(JavacAST.java:323)
        at lombok.javac.JavacAST.buildTree(JavacAST.java:183)
        at lombok.javac.JavacAST.buildTree(JavacAST.java:66)
        at lombok.core.AST.buildWithField0(AST.java:386)
        at lombok.core.AST.buildWithField(AST.java:284)
        at lombok.javac.JavacAST.drill(JavacAST.java:357)
  • You can compile this class with javac BeanWithSoManyFields.java -classpath c:\opt\pleiades\eclipse\lombok.jar if you had removed a field.

  • You can also increase the stack size of javac with -J-Xss option like javac BeanWithSoManyFields.java -J-Xss1025K -classpath c:\opt\pleiades\eclipse\lombok.jar.

  • @EqualsAndHashCode, @Getter, and @Setter do not cause StackOverflowError with this source.

  • Compiler embedded in Eclipse (ECJ) does not cause StackOverflowError with this source.

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

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

www.kantei.go.jp

世界最先端IT国家創造宣言にあった「文字情報基盤の活用」は、各府省のデジタル・ガバメント中長期計画においては「JIS X 0213の採用」という形で表現されているようです。

ただ、デジタル・ガバメント中長期計画は各府省で決めている内容なので、JIS X 0213について書くか書かないかは府省によって異なります。そこで、JIS X 0213に関する記述があるかの表を作ってみました。

府省の記載順は、首相官邸「デジタル・ガバメント実行計画について」のページにある表の順に沿っています。

令和2年3月31日時点でデジタル・ガバメント中長期計画にJIS X 0213の記述があるのは

で、23府省中6府省(26%)でした。

府省 令和2年3月31日時点 平成30年6月29日時点
内閣官房
内閣法制局
人事院
内閣府
宮内庁
公正取引委員会
警察庁
個人情報保護委員会
カジノ管理委員会
金融庁
消費者庁
復興庁
総務省
法務省
外務省
財務省
文部科学省
厚生労働省
農林水産省
経済産業省
国土交通省
環境省
防衛省
合計 6/23府省(26%) 5/22府省(23%)

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

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

  • initはsystemdではなく、MSが作ったinitが使われる。systemctlは使えない。init.d以下には伝統的なシェルスクリプトが入っている。
  • snapdが動いていないので、snapパッケージのインストールはできない。snapコマンドはあるが、以下のよにエラーになる。
$ sudo snap install powershell-preview --classic
error: cannot communicate with server: Post http://localhost/v2/snaps/powershell-preview: dial unix /run/snapd.socket: connect: no such file or directory
  • NICの名前も伝統的なeth0。「enp0s3」のような命名規則ではない。

  • WindowsのC:は/mnt/c/以下にデフォルトでマウントされる。そのため、何も考えずにmlocateするとWindowsのファイルまでlocate DBに入ってしまう。 /etc/updatedb.conf の PRUNEPATHS に /mnt を追加すること。

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

政府CIOポータルでは、日本の官公庁・地方自治体向け情報システムを開発する際に参照すべき標準ガイドライン群を公開しています。

その中に「政府情報システムにおけるサポート終了等技術への対応に関する技術レポート」という資料が公開されていて、別添資料として「サポート終了等技術リスト」というファイルがあります。

このファイルに載っている技術は「利用を継続した場合のデメリットがあるから、政府が自分の所のシステムで使うのはやめろと言っている」と言えるわけです。

内容的にはActiveXの代替技術ってHTML5なんだっけ(どっちかと言うとHBOとかNative ClientとかXBAPとかでは?)とか、いろいろ突っ込みどころはあります。ただ、Internet Explorerは「サポート終了等技術リストにも入っていますし、IEには対応しなくていいですよね!」と言えるわけで、けっこう便利に使えるのではないかと思います。

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

日本政府の情報システムに関する方針としては、2013年に「世界最先端IT国家創造宣言」が決定されてから、世界最先端IT国家創造宣言・官民データ活用推進基本計画(2017年)→世界最先端デジタル国家創造宣言・官民データ活用推進基本計画(2018年)といった変遷を経て、現在は「世界最先端デジタル国家創造宣言・官民データ活用推進基本計画の変更について」が首相官邸のウェブサイトで公開されています。

どの文書もタイトルはよく似ているんだけど、実は内容はちょいちょい変わっていて、たとえば2015年時点の世界最先端IT国家創造宣言では「国際標準に適合した文字情報基盤を活用することを原則とする」とか書いてあったのに、2019年時点の世界最先端デジタル国家創造宣言・官民データ活用推進基本計画ではそれが外されちゃってるから、「文字情報基盤とか別に使わなくていいんじゃん」みたいに読めてしまったりします。適宜、古い版も参照する必要があるってことですね。

で、2019年の「世界最先端デジタル国家創造宣言・官民データ活用推進基本計画の変更について」なんだけど、変な記述があって、p.2に「1990年代後半に0.2Ghz程度だったCPUの処理速度は2015年に31.5Ghzとなっている」とか書いてある。31.5GHzのCPUって何ぞ?