2017-01-01から1年間の記事一覧

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

テキストをコピーするのがものすごく簡単になる Google Chrome / Firefox 用ブラウザ拡張機能を作りました! Copy Text with Alt+Click この拡張機能を導入後は、Alt + Click でテキストをコピーできるようになります! 範囲選択も Ctrl + C を押す必要もあ…

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

JJUG CCC 2017 Fall に行ってきました! 今回は自分好みな「普段使ってるアレ、深掘りするとこうなってるんだぜ」的なセッションをいろいろ聞けて大満足でした。 印象に残っているのが「DBのTCPプロトコルとJDBC / yohei yamana さん」。 「かっちりした Pos…

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

11月18日(土) に開催されるJJUG CCC 2017 Fall の「時間別」&「カテゴリ別」タイムテーブル(セッション一覧)が欲しかったので、前回同様にページを作りました! JJUG CCC 2017 Fall - Timetable (非公式) 今回の改良点はお気に入りボタンがわかりやすくな…

Java9 で String クラスがリファクタリングされていました。(replace メソッド編)

前々からこの実装はどうなの!?と言われていた String クラスの CharSequence を引数に取る replace メソッド。 これがついに Java 9 でリファクタリングされていました! 今まであった問題 String クラスの replace (CharSequence target, CharSequence re…

Java9 でも String クラスがリファクタリングされていました (JEP 254: Compact Strings 編)

本日、ついに JavaSE 9 がリリースされました! そこで、かねてから噂になっていた JEP 254: Compact Strings がどのように実装されているのか調べてみました。 Compact Strings の概要 これまで String クラスや StringBuilder クラスなどの内部では、文字…

Java 6, 7 の API ドキュメントを開いた時に、自動で Java 8 のドキュメントにリダイレクトしてくれるツール "JavaAPI-Redirector" を作りました!

たまに検索エンジンなどからリンクを辿って Java API ドキュメント (Javadoc) のページを開くと、古い Java 6 や Java 7 のページが表示されて (´・ω・`) となることがあります。 自分は Java 8 の API ドキュメントが見たいのに…。 そんなときに、自動で J…

Duke 画像の再配布ページを作りました

かつて https://duke.kenai.com/ で配布されていた Duke の画像を再配布するページを作りました! Redistribution of Duke images これは何? Java のマスコットキャラクター "Duke" の画像は、これまで https://duke.kenai.com/ で BSDライセンスのもと配布…

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

JJUG CCC 2017 Spring に行ってきました!(感想をあとで書く)さて、まだ公式で公開されていなかったので、残念ながら時間がかぶってしまって参加できなかったセッションもあったので、あとで読むために現時点で発表者の方が公開されている資料一覧をまとめ…

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

5月20日(土) に開催されるJJUG CCC 2017 Spring の「時間別」タイムテーブル(セッション一覧)が欲しかったので、前回同様にページを作りました! JJUG CCC 2017 Spring - Timetable (非公式) 新機能「お気に入り登録」 今回から「セッションのお気に入り登…

パソコンのディスクアクセスランプがずっと点きっぱなしになってるときの調査方法

「なんかパソコンが遅いと思ったら、ディスクのアクセスランプがずっと点きっぱなしになってる…。なんでー!?」というときがたまによくあります。 そんなときの調査方法です。 ディスクアクセス原因の調査方法 まずは Process Monitor をダウンロードして起…

各言語での「翌月1日」の求め方

C# で「翌月1日」の DateTime を作るのに、こんなコードを書いてしまいました。 DateTime today = DateTime.Today; DateTime nextMonth = new DateTime(today.Year, today.Month + 1, 1); 結果、12月1日になったら new DateTime(2017, 13, 1) となってしまい…

main メソッドは private クラスに書いても動く?

static なメンバー・クラス*1は、以下のように "private" として宣言できます。 この時、"java Main$Internal" と打ってこの private クラス内の main メソッドを起動できるのでしょうか。 class Main{ private static class Internal{ public static void m…

64bit 版の Windows に Java 1.1 をインストールする

誰得な気がしなくもないですが。 Java 1.1 は、いまでも Oracle Java Archive からダウンロードできます。 Java Archive Downloads - Java SE 1.1 しかし、これを 64bit 版の Windows にインストールしようとすると、インストーラの一部が 16bit アプリケー…

Java API の規模がどれだけ大きくなったか気になったので、コード行数を確認してみました

Java API は、バージョンが上がるごとにどんどん大きくなっています。 でも、「大きくなった」といってもピンとこなかったので、目安としてコード行数を確認してみました。 Java API のコード行数 調べた結果がこちら。 バージョン コード行数 jdk1.1.8 63,4…

C# で、変数に代入したかどうかで値が変わってしまう不思議なコード

C#

この前の Java で NaN や Infinity を int にキャストしたときの値 を C# でやってみたら、面白い挙動になったのでメモ。 C# で NaN や Infinity を int にキャストしたときの値 C# で NaN や Infinity を int にキャストしてみたところ、結果はいずれも "0"…

Java で、NaN や Infinity を int にキャストしたときの値

NaN や Infinity を int にキャストなんて普通はしないと思うのですが、やってみたらこうなりました。 (int)Double.NaN == 0 (int)Double.POSITIVE_INFINITY == Integer.MAX_VALUE (int)Double.NEGATIVE_INIFINITY == Integer.MIN_VALUE public static void …