この日記は私的なものであり所属会社の見解とは無関係です。 GitHub: takahashikzn

Struts2のS2-032の要点

またOGNL絡みで脆弱性が出ました。ホントにこの機構は問題児ですね… とはいえOGNLはStruts2の根幹に関わる機能なので、OFFにすることは難しい。 「1アクション=1アクションクラス」派でない方にとっては、DMIを使えないのは死活問題になりかねません。 ち…

Thanks to @Annotations, @Progress is @Unstoppable! (@Annotationが進化を促進する!)

面白いサイトを見つけたので訳してみました。 http://www.annotatiomania.com/ 2000年に書いたコード private Collection employees; 2004年に書いたコード private Collection<Employee> employees; 2005年に書いたコード // 糞コンパイラが文句を言うため。後で修正</employee>…

Tomcat-8.5.0を試す

Tomcat-8.5.0-betaがリリースされています。 リリースノートによると、 The Apache Tomcat Project is proud to announce the release of version 8.5.0 of Apache Tomcat. Apache Tomcat 8.5.0 is intended to replace 8.0.x and includes new features pul…

Tomcat-8.0.32上でRhinoの初期化に失敗する問題を強引に解消する

Tomcat-8.0.32がリリースされています。 いつも通り、早速アップデートして試してみたのですがそもそもアプリが起動しなくなりました。 こんなエラーを吐きます。 Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range: 3 at j…

Chrome49でShadow DOMの属性セレクタが効かなくなった

CSS

だいぶ前に、日付入力フォームの"年"、"月"、"日"をShadow DOMを用いて消す方法を紹介しました。 http://takahashikzn.root42.jp/entry/20130715/1373865102 要するにこのように指定すればOKです。(※Lessです) ::-webkit-datetime-edit-year-field, ::-webki…

rawgit.comに接続できなくなった→githack.comに乗り換えた

githubで管理しているJSやCSSをそのままCDN的に使いたい場合、rawgit.comが便利です。 僕も個人用JenkinsのカスタムCSSをrawgit経由でホストしています。 しかしどうやら本日から、Chromeがrawgit.comを拒否するようになりました。こんな感じになります。 証…

jQuery-2.2.0をEnv.js上で動かすためにパッチを当てる

jQuery-2.2.0がリリースされています。 「まだjQueryで消耗してるの?」と言われそうですが、細かいDOM操作をするならjQueryは依然として非常に優れた選択肢です。 ウチはクローラーをJavaで書いたりしている都合上、jQueryをEnv.js上で動かしているのですが…

JSONにコメントを付けるなら空文字キーがオススメ

JSONを設定ファイルとして使うとき、コメントを付けたくなりますよね。 または、お決まりのコピーライトヘッダを入れるとか。 「JSON コメント」でググったところ、わざと同じキー名の値を宣言するというテクが使えるとありますが、実装依存なのであまり良く…

テーブルにカラムがない場合に、エンティティの属性を無かったことにする

とあるシステムにおいて、「エンティティの属性について、テーブルにカラムがある場合のみマッピングを行う」必要が出てきました。 要するに、 @Entity public class Sample { @Column private int foo; // テーブルにbarカラムがない場合は何もしない @Colu…

Jenkins 1.641 / Jenkins 1.625.3 からContent-Security-Policyが設定された

タイトル通りです。どうやらXSS脆弱性が見つかったようで、その対策とのこと。 https://wiki.jenkins-ci.org/display/SECURITY/Jenkins+Security+Advisory+2015-12-09 セキュリティが強化されるのは良いことですが、この変更によってかなり困った弊害が出て…

Eclipse 4.6 "Neon" M4リリース

M4がリリースされました。 http://www.eclipse.org/eclipse/news/4.6/M4/ 新機能一覧の全文翻訳は面倒くさいので無し。 毎年恒例のリリース日直前にまとめて書きます。 M4で気になった改善は以下の通りです。 起動の高速化 Startup time improvements Equino…

MariaDB Connector/Jの1.3.0以降でTIME型カラムの値が00:00のときにNULLになるバグ?

タイトルの通りです。 昨日はBOOLEAN型に関するバグを見つけましたが、今度はTIME型です。 00:00の値のときだけNULLになります。 原因はわかっていませんが、軽くデバッガで見てみたところ、当該カラムの値はサーバからのレスポンスがゼロバイト配列になって…

MariaDB Connector/Jの1.3.0以降でBOOLEANのカラムが常にtrueになるバグ?

ちょっと前にConnector/Jが1.3.0にアップデートされたのですが、とたんにTINYINT(1)のカラムの値を正しく取得できなくなりました。 MySQLはBOOLEANをTINYINT(1)の別名として扱います。アプリケーションから見たらこのカラムはBoolean型です。 で、Connector/…

SSH Tunnel ManagerのEl Capitan対応版がリリース

OSX

ウチはVPN代わりにSSHトンネルで外からのアクセスを受け付けています。 OSX ServerのVPNサーバは微妙にウチのニーズに合わなかったし、とは言え一からVPNサーバを(Linux等で)構築するのは面倒過ぎて死ぬ。 一方でSSHトンネルならSSHサーバを公開するだけ。 …

100万円超えThinkPad(15年ぶり二度目)

モバイルXeonというネタCPUを載せた変態ThinkPadが発売開始になりました。 この変態っぷりはW700以来じゃないでしょうか。 盛りまくった構成がこちらになります。堂々の100万円超え。 100万円を超えるThinkPadというと、ThinkPad770シリーズがありますね。 …

SpringとGroovyにも直列化オブジェクト脆弱性

昨日の記事の続きです。 昨日はcommons-collectionsについて、どのような仕組みで攻撃が成功しうるかを書きました。 しかしこの問題はcommons-collections限定ではなく、GroovyまたはSpringFrameworkのクラスをロードしている環境でも起こりえます。 攻撃が…

commons-collectionsのInvokerTransformer脆弱性について

2015-11-12 追記あり。「SpringとGroovyにも直列化オブジェクト脆弱性」も参照してください。 昨日からJava界隈で話題になっているcommons-collectionsの脆弱性について。 元ネタはこちら。 対応するチケットはこちら。 InvokerTransformerなんてクラスは初…

Chromeブラウザのグラフィックが壊れた

僕は実験用に、Parallels上でOSXの仮想マシンを使っているのですが、 先ほどChromeが自動更新された直後からマトモに使えなくなりました。こんな感じ。 念のためですがこれはヤフーのトップページです。 設定画面も何もかもがこんな感じなので、何の操作もで…

Magic Trackpad 2を買った

Mac

早速買いました。法人割引のおかげて少し安くなってますが、それでもかなり高価。旧モデルのほぼ2倍の1.4万とは… 旧モデルとの横幅の比較。新モデルのほうが広くて縦がスリムになってますね。これは改善点。 縦幅は狭くなってますが、タッチ可能領域は同一な…

はてなブログProにしてみた

ホスト名を変えました。そしてヘッダ・フッタが消えてすっきり。 おまけに広告も非表示に。 とはいえ、こんな技術ネタばかりのブログを見るような方はアドブロック標準装備でしょうけど。

typetoolsのパッチを送ったらPlay Frameworkの中の人から応援された

Git

ジェネリクスの型解決のためのライブラリは多々ありますが、最軽量級のライブラリであるtypetoolsを愛用しております。 http://github.com/jhalterman/typetools 特に、ラムダ式の型解決ができるのがウリです。 で、OracleJDK_1.8.0_51からラムダ式の型解決…

Eclipse 4.6 "Neon" M2リリース

M2がリリースされています。 このリリースからスプラッシュスクリーンに"Neon"と表示されるようになりました。 M2の新機能 http://www.eclipse.org/eclipse/news/4.6/M2/ バイナリファイルの検索 バイナリファイルを検索出来るようになりました。 ただし一致…

OGNL-3.1で、(!!"1") == false になって困った

OGNL-3.1がひっそりとリリースされているのですが、かなり困った仕様変更が入ってます。 foo || barが動かない 例えば、barが文字列型の値だとして、 foo.aMethod(bar || "default string") のようにして、barがnullなら"default string"を渡すようなコード…

es6-shim@0.33.1におけるNumberクラスの置換を無かったことにする

とりあえずes6-shimですよね。 というわけでRhino環境で使っている*1のですが、0.33.1から急にテストが通らなくなりました。 こんなエラーが出るようになった。 InternalError: Can't find method java.lang.Integer.valueOf() え?何事?と思って調べてみる…

Firefox41以降でアドオンの署名チェックを無効にする方法

Firefox41からアドオンの署名チェックが有効になりました。普通は問題ないのですが、野良アドオンを使っている場合に困ることが有ります。 具体的にはSeleniumIDEが動かなくなって大いに困りました。 対応状況 この件、GitHubでは既にissueが上がっています…

Eclipse4.6 "Neon"を使い始める

Eclipse4.6 Neonのマイルストーンビルド1がリリースされていたので早速インストールしました。 外見的には、バージョンが4.6になっている点以外は何も変わりません。スプラッシュも"Mars"と表示されたままです。 M1の新機能 http://www.eclipse.org/eclipse/…

ある教授曰く - 「遊び相手ならJava、結婚相手ならC」

みなさん大好き、プログラミング言語ランキング。 今回のこちらは、IEEEの集計なので権威?があることになるんですかね。 http://spectrum.ieee.org/computing/software/the-2015-top-ten-programming-languages 結果はいつも通りの言語が上位を独占している…

落語始めました

とある方の影響で落語を嗜むようになりました。 正直な話、これまでの人生で落語といえば笑点に出演する噺家さんくらいしか接点がなかった(※笑点自体は落語ではない)のですが、 マジメに取り組んでみるとコレがまた面白い。 落語って一人で全てを表現しな…

JaCoCo-Pluginはjacoco-0.7.5で動作しない

いつの間にかJenkinsのカバレッジレポートが動かなくなってしまっていました。 うーん何故だろう…と調べていると、JaCoCoプラグインのページにこんな記述が。 Unfortunately JaCoCo 0.7.5 breaks compatibility to previous binary formats of the jacoco.ex…

"No repository found containing"が発生した時の対処法

プラグインのアップデート時に”No repository found containing”が発生することがあります。 対応策をググってみると、 アップデートサイトのリロードを行え アップデートサイトのURLを一旦削除して追加しなおす とありますが、僕の場合はいずれもダメでした…