トップレベルドメインっていくつあるの?

.com や .jp などのトップレベルドメインドメイン名の一番右側の部分)っていくつあるのか気になったので調べてみました。

トップレベルドメインのリスト

IANA (Internet Assigned Numbers Authority) のページに載っていました。
IANA — Root Zone Database


これによると、現在のトップレベルドメインなんと 1576 個。
(2018年3月23日現在)

内訳

分類 概要 個数
country-code 国別コード .jp / .uk / .eu 312
generic 汎用 .com / .gov / .mil 1235
generic-restricted 汎用(制限付き) .biz / .name / .pro 3
infrastructure インフラ .arpa 1
sponsored スポンサー .aero / .travel / .tel 14
test テスト .test / .テスト 11

なんか generic だけ異様に多いなと思ったら、言語別のドメインが含まれていたり、使われていないものも含まれているようです。
あとは、.hitachi (日立グループ).dell (DELL) のような企業ドメインなんかもここに含まれています。


追加履歴を見てみると、まだまだ増えて行っているようです。
Delegated Strings | ICANN New gTLDs


さすがに全部は覚えられない…。

Java 10 で変わる Java のバージョン表記

Java は、バージョン 10 以降タイムベースリリースに変わりました。
それに合わせて、バージョン表記がまた変わったので概要をまとめました。*1


詳細は JEP 322: Time-Based Release Versioning を参照。

バージョン番号

$FEATURE.$INTERIM.$UPDATE.$PATCH という4つの表記になります。
具体的には、 10.0.1.2 のような表記です。
Java 8 までの Update 〜 という表記はなくなりました)

意味 タイミング 次回予定 内容
$FEATURE 機能リリース 半年ごと 2018年3月 内容にかかわらず半年ごとにリリース
機能追加や互換性のない変更、機能の削除*2を含む
$INTERIM 中間リリース 予定なし - 互換性のあるバグ修正と機能強化*3
(標準APIの変更を含まない)
$UPDATE アップデートリリース 機能リリースの1ヶ月後、およびそれ以降3ヶ月ごと 2018年4月
2018年7月
セキュリティの修正
最新機能のバグ修正
$PATCH パッチリリース 必要時のみ - 重大な問題を解決するための最低限の修正

細かいルール

  • ある桁以降がすべて 0 なら、省略して表記する
    • 例: 11.0.0.0 → 11
    • 例: 11.0.2.0 → 11.0.2
  • $FEATURE, $INTERIM がインクリメントされた場合、それ以降の数字はリセットする
    • 例: 11.0.2 → 11.0.2.1 → 11.1 → 11.1.1
  • バージョン番号以降には、以下を付与する
    • プレリリース識別子(optional)
      • 例: 11.0.2-ea
    • ビルド番号
      • 例: 11.0.2+13
    • LTS などのオプション情報(optional)
      • 例: 11.0.2+13-LTS

プログラム上での取得

これらは、Runtime.Version クラスの各メソッドで取得できます。

jshell> Runtime.version().feature()
$1 ==> 10

jshell> Runtime.version().interim()
$2 ==> 0

jshell> Runtime.version().update()
$3 ==> 0

jshell> Runtime.version().patch()
$4 ==> 0

jshell> Runtime.version().pre()
$6 ==> Optional.empty

jshell> Runtime.version().build()
$5 ==> Optional[46]

jshell> Runtime.version().toString()
$7 ==> "10+46"

あるバージョンよりも新しいか?古いか?を確認するなら、上記で一つづつ比較するよりも compareTo メソッドで比較したほうが確実です。

jshell> Runtime.version().toString()
$1 ==> "10+46"

jshell> Runtime.version().compareTo(Runtime.Version.parse("10.0.1")) > 0
$2 ==> false

jshell> Runtime.version().compareTo(Runtime.Version.parse("9.0.1")) > 0
$3 ==> true

ただ、 Runtime.VersionJava 9 で追加されたクラスです。
もし、Java 8 以前にも対応する必要があるならば、システムプロパティ java.version から取得するしかないのでご注意ください。

jshell> System.getProperty("java.version")
$4 ==> "10"

ちなみに

「リリース日*4」「ベンダーバージョン」がシステムプロパティに追加されました。
Oracle JDK の場合、ベンダーバージョンは当初予定されていた リリース年.リリース月 という表記のままのようです。

jshell> System.getProperty("java.version.date")
$1 ==> "2018-03-20"

jshell> System.getProperty("java.vendor.version")
$2 ==> "18.3"

*1:とはいえ、Java 9 とほぼ一緒

*2:この場合、少なくとも1つ前の機能リリースで予告されます。

*3:JDK1.4.1, JDK1.4.2 のようなケースを想定しているそうです。

*4:正確には GA の日付。なので、Eary Access 版だと未来の日付になります。

Firefox で、アクティブなタブの幅を広くする方法


タブをいくつも開いていると幅が狭くなってしまい、タブのタイトルが読めなくなることがよくあります。
そういうときに、アクティブなタブだけ幅が広くなっていると読めるのになるなーと思ったので、ハックしてみました。

設定方法

  1. about:support を開く*1
  2. プロファイルフォルダーの「フォルダーを開く」をクリック
  3. 新規に chrome フォルダを作成
  4. chrome フォルダの中に、userChrome.cssを作成
  5. userChrome.cssに以下の設定を記載
  6. Firefox を再起動
.tabbrowser-tab[visuallyselected="true"]:not([pinned]) {
    min-width: 225px !important;
}

これで、アクティブなタブだけ幅が広くなります。
もとに戻すときは、userChrome.css を削除するだけでOK。

ホバー時にも幅を広げる設定

非アクティブなタブにマウスカーソルをあてたときにも、タブの幅が広くなるようにもできます。
使いにくく感じるときもありますので、お好みでどうぞ。

  1. userChrome.cssに以下を追記
.tabbrowser-tab:not([visuallyselected="true"]):not([pinned]):hover {
    min-width: 225px !important;
}

注意事項

Firefox のバージョンアップなどで動きがおかしくなったり、バグったりする可能性があります。
そのときは、userChrome.css を削除してください。

*1:ロケーションバー(URLの入力欄)に about:support と入力して Enter を押下

Firefox 58 でも、Shift + マウスホイールで「戻る/進む」をできるようにする方法

今日リリースされた Firefox 58 で、Shift + マウスホイールで横スクロールができないという有名な16年物のバグ (?) が修正されました。

ただ、もともと WindowsFirefox では Shift + マウスホイールは「戻る/進む」に割り当てられていました。これが、上記の対応によりできなくなりました。
自分はこれを使っていたので、超困ります…。


そこで調べてみたら、Alt + マウスホイールで同じことができるようになっているそうです。
(ただし、Alt を離すタイミングでメニューバーが出てきます)

もしくは、about:config で mousewheel.with_shift.action を 2 にすれば今までどおりの挙動に戻すことも可能
どーしても今までどおりがいいという人はこちらを試してみるのもありかと。

なんで挙動変えたの

Bug 143038 Make users can scroll contents horizontally with vertical wheel operation with a modifier r?smaug | Diff Viewer | Review Board
このコミットコメントによれば、Webアプリケーション開発者が macOS かどうかをチェックす必要がなくなる(もともと macOS だと、OS標準に合わせて Shift + マウスホイールの横スクロールに対応していた)こと、Chromium と同じ動作になることが理由だそうです。
ようするに、互換性を重視した結果ということ。

「Alt+Click」だけでテキストをコピーできるようにするブラウザ拡張機能を作りました。

テキストをコピーするのがものすごく簡単になる Google Chrome / Firefox 用ブラウザ拡張機能を作りました!

Copy Text with Alt+Click


この拡張機能を導入後は、Alt + Click でテキストをコピーできるようになります!
範囲選択も Ctrl + C を押す必要もありません!Alt + Click だけです!


Google Chrome用: Copy text with Alt-Click - Chrome ウェブストア
Firefox 用: Copy Text with Alt-Click – Firefox 向けアドオン

単機能ですが、自分自身ほぼ毎日使っているぐらい超便利な拡張機能です。
ぜひご利用ください!

JJUG CCC 2017 Fall ( #jjug_ccc ) - セッション資料の一覧

JJUG CCC 2017 Fall に行ってきました!


今回は自分好みな「普段使ってるアレ、深掘りするとこうなってるんだぜ」的なセッションをいろいろ聞けて大満足でした。


印象に残っているのが「DBのTCPプロトコルJDBC / yohei yamana さん」
「かっちりした PostgreSQL とやんちゃな MySQL という感じがする」という話があって、自分が普段使ってる印象がそのまま JDBC にも現れているんだなーと思いました。なかなかこういうものは深掘りできないので、面白い!と思ったところをポイント抑えて紹介してもらえたのは嬉しかったです。


あと、今回のメインセッションで唯一の難易度 ★★★ だった「CPUから見たG1GC / 数村憲治さん」
難しすぎて理解できていない*1ですが、なんでこうなるの!?という不可思議現象に迫るというお話は聞いていてワクワクしました。これを理解できるレベルまで、JVM のこともっと知りたいです…!


あとは業務関係で聞いたのが「Spring Security にできること・できないこと / opengl-8080 さん」
セッションでは、独自に作られていたサンプルで実際に Spring Security の有効・無効の動きを比較しながら丁寧に解説していただいたので、とてもスルスルと理解できました。実際に使用することになったら、今回のセッションで聞いたことがすぐに役に立ちそうです。ありがたや。



さて、最後にいつものを。
今回、残念ながら満席だったり時間がかぶってしまって参加できなかったセッションもあったので、あとで読むために現時点で発表者の方が公開されている資料一覧をまとめしました。*2
(あとで JJUG CCC 2017 Fall のページにもリンクが載るかもしれませんが、とりあえず自分の方で調べました)

追記:JJUGGitHub ページで公式な資料一覧が公開されました!
jjug-ccc/slides-articles-2017fall: JJUG CCC 2017 Fallの発表資料およびブログ記事まとめ

10:00-10:45

15:45-16:30

17:45-18:30

ちなみに

勉強会スライドbot (@tech_slideshare) を運用しています。
こちらには、JJUG CCC だけでなく他の勉強会の資料も流していますので、ぜひご利用ください!

*1:懇親会で他の人と話をしていて、色々誤解しまくっていたことを知りました…

*2:発表者のお名前は敬称略とさせていただきました。

今回も、JJUG CCC 2017 Fall の時間別タイムテーブル(セッション一覧)を作りました


11月18日(土) に開催されるJJUG CCC 2017 Fall「時間別」&「カテゴリ別」タイムテーブル(セッション一覧)が欲しかったので、前回同様にページを作りました!
JJUG CCC 2017 Fall - Timetable (非公式)
http://yujisoftware.github.io/jjug-ccc/2017-fall/

今回の改良点はお気に入りボタンがわかりやすくなったぐらいですが、時間があればさらに改良する予定です。

ぜひご利用ください!!