こんな感じの単純な SQL を Ruby と Go それぞれで流したら、なぜか Go の方が遅くなりました。 特に text が長いと遅い…。 SELECT id , text FROM example 使っているライブラリは、ruby-oci8, go-oci8。 原因 原因は、それぞれのライブラリのパラメータの…
JJUG CCC 2019 Spring に行ってきました! 今回はレガシーコード改善のヒントになるネタがないかなーといろいろ話を聞いてきました。弊社の Java、古くなっているものがいくつかあって、それを少しでも楽にしたいというのがモチベーションです。 毎回思うの…
5月18日(土) に開催される JJUG CCC 2019 Spring 、そのスマートフォン用タイムテーブル(セッション一覧)が欲しかったので、作りました! JJUG CCC 2019 Spring タイムテーブル 公式ページのビルドして圧縮された Vue ファイルを手作業でハックして作った…
JavaScript の split メソッドを使ったら「あれ?」となったのでメモ。 一般的な spilt メソッド Java, C#, Ruby, Perl の split メソッドは、第二引数に limit を指定できます。 これを指定すると分割回数が制限されます。 (下記の例だと、文字列を2つに分…
新しい Windows 7 の PC を使おうとしたら Internet Explorer (IE) しか入っていませんでした。 しかし、私は IE が嫌いなので、Firefox を使いたいです。 そこで、Firefox ダウンロードしようと思い…、そこで気づきました。 Windows 7 で Firefox を使おう…
JJUG CCC 2018 Fall に行ってきました!今回、興味のあるディープな JVM の話とかアーキテクチャ設計をたくさん聞けて、個人的にはとてもテンションが上がりました! 「Deep dive into instanceof」のように、HotSpot VM の深い話を知れたり。仕事で役に立つ…
Arrays.asList(T... a) というメソッドについてググると、「このメソッドで返ってくる List は、add や remove ができないので注意しましょう」ということが良く書かれています。 でも、「なぜできないのか?」という点については書かれていないことが多いの…
2019年3月末で、ジオシティーズが閉鎖されることが決まりました。 これはつまり、過去のいろんな歴史的サイトも消えてしまうということ。 そうなる前に、ジオシティーズのデータを保存して置く方法をまとめました。 サイト全体をローカルに保存する まず、Wg…
Oracle JDK の場合 図にまとめてみました。 こうしてみると、サポート期間5~6年って結構長いなーと思います。 First Release Date Final Public Release Date Final Public Release Version Java 1.3 2000年5月8日 2006年12月 Java 1.3.1 Update 20 Java 1.…
JJUG CCC 2018 Spring に行ってきました! 実は、仕事では最近 Java から離れているのですが*1、それでも CCC (クロスコミュニティカンファレンス)と銘打ってるだけあってやっぱり参考になる話がいろいろありました。 特に、同じ業界の方も登壇されていて…
.com や .jp などのトップレベルドメイン(ドメイン名の一番右側の部分)っていくつあるのか気になったので調べてみました。 トップレベルドメインのリスト IANA (Internet Assigned Numbers Authority) のページに載っていました。 IANA — Root Zone Databa…
Java は、バージョン 10 以降タイムベースリリースに変わりました。 それに合わせて、バージョン表記がまた変わったので概要をまとめました。*1 詳細は JEP 322: Time-Based Release Versioning を参照。 バージョン番号 $FEATURE.$INTERIM.$UPDATE.$PATCH …
タブをいくつも開いていると幅が狭くなってしまい、タブのタイトルが読めなくなることがよくあります。 そういうときに、アクティブなタブだけ幅が広くなっていると読めるのになるなーと思ったので、ハックしてみました。 設定方法 about:support を開く*1 …
今日リリースされた Firefox 58 で、Shift + マウスホイールで横スクロールができないという有名な16年物のバグ (?) が修正されました。ただ、もともと Windows 版 Firefox では Shift + マウスホイールは「戻る/進む」に割り当てられていました。これが、上…
テキストをコピーするのがものすごく簡単になる Google Chrome / Firefox 用ブラウザ拡張機能を作りました! Copy Text with Alt+Click この拡張機能を導入後は、Alt + Click でテキストをコピーできるようになります! 範囲選択も Ctrl + C を押す必要もあ…
JJUG CCC 2017 Fall に行ってきました! 今回は自分好みな「普段使ってるアレ、深掘りするとこうなってるんだぜ」的なセッションをいろいろ聞けて大満足でした。 印象に残っているのが「DBのTCPプロトコルとJDBC / yohei yamana さん」。 「かっちりした Pos…
11月18日(土) に開催されるJJUG CCC 2017 Fall の「時間別」&「カテゴリ別」タイムテーブル(セッション一覧)が欲しかったので、前回同様にページを作りました! JJUG CCC 2017 Fall - Timetable (非公式) 今回の改良点はお気に入りボタンがわかりやすくな…
前々からこの実装はどうなの!?と言われていた String クラスの CharSequence を引数に取る replace メソッド。 これがついに Java 9 でリファクタリングされていました! 今まであった問題 String クラスの replace (CharSequence target, CharSequence re…
本日、ついに JavaSE 9 がリリースされました! そこで、かねてから噂になっていた JEP 254: Compact Strings がどのように実装されているのか調べてみました。 Compact Strings の概要 これまで String クラスや StringBuilder クラスなどの内部では、文字…
たまに検索エンジンなどからリンクを辿って Java API ドキュメント (Javadoc) のページを開くと、古い Java 6 や Java 7 のページが表示されて (´・ω・`) となることがあります。 自分は Java 8 の API ドキュメントが見たいのに…。 そんなときに、自動で J…
かつて https://duke.kenai.com/ で配布されていた Duke の画像を再配布するページを作りました! Redistribution of Duke images これは何? Java のマスコットキャラクター "Duke" の画像は、これまで https://duke.kenai.com/ で BSDライセンスのもと配布…
JJUG CCC 2017 Spring に行ってきました!(感想をあとで書く)さて、まだ公式で公開されていなかったので、残念ながら時間がかぶってしまって参加できなかったセッションもあったので、あとで読むために現時点で発表者の方が公開されている資料一覧をまとめ…
5月20日(土) に開催されるJJUG CCC 2017 Spring の「時間別」タイムテーブル(セッション一覧)が欲しかったので、前回同様にページを作りました! JJUG CCC 2017 Spring - Timetable (非公式) 新機能「お気に入り登録」 今回から「セッションのお気に入り登…
「なんかパソコンが遅いと思ったら、ディスクのアクセスランプがずっと点きっぱなしになってる…。なんでー!?」というときがたまによくあります。 そんなときの調査方法です。 ディスクアクセス原因の調査方法 まずは Process Monitor をダウンロードして起…
C# で「翌月1日」の DateTime を作るのに、こんなコードを書いてしまいました。 DateTime today = DateTime.Today; DateTime nextMonth = new DateTime(today.Year, today.Month + 1, 1); 結果、12月1日になったら new DateTime(2017, 13, 1) となってしまい…
static なメンバー・クラス*1は、以下のように "private" として宣言できます。 この時、"java Main$Internal" と打ってこの private クラス内の main メソッドを起動できるのでしょうか。 class Main{ private static class Internal{ public static void m…
誰得な気がしなくもないですが。 Java 1.1 は、いまでも Oracle Java Archive からダウンロードできます。 Java Archive Downloads - Java SE 1.1 しかし、これを 64bit 版の Windows にインストールしようとすると、インストーラの一部が 16bit アプリケー…
Java API は、バージョンが上がるごとにどんどん大きくなっています。 でも、「大きくなった」といってもピンとこなかったので、目安としてコード行数を確認してみました。 Java API のコード行数 調べた結果がこちら。 バージョン コード行数 jdk1.1.8 63,4…
この前の Java で NaN や Infinity を int にキャストしたときの値 を C# でやってみたら、面白い挙動になったのでメモ。 C# で NaN や Infinity を int にキャストしたときの値 C# で NaN や Infinity を int にキャストしてみたところ、結果はいずれも "0"…
NaN や Infinity を int にキャストなんて普通はしないと思うのですが、やってみたらこうなりました。 (int)Double.NaN == 0 (int)Double.POSITIVE_INFINITY == Integer.MAX_VALUE (int)Double.NEGATIVE_INIFINITY == Integer.MIN_VALUE public static void …