上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

役に立ったらぽちっとよろしく。 人気ブログランキングへ

ひさびさの更新、ブックマークレット

古いブラウザ向けに作られたサイトはレイアウトが変になって読みたい部分に他の部分が重なってうがーってなる時がある。Web インスペクタみたいな開発者ご用達ツールを使えば要素の削除もできるけど、これはこれで結構手間だし、リロードしないと元に戻せないという素晴らしい罠がセットになっている。同じレイアウトのページが沢山あって一つ一つ読む場合なんか泣けてくる。そこで、ちょっと自作。

  1. clickAndHide (start)
  2. clickAndHide (stop)
  3. clickAndHide (restore)

使い方…

  1. 上のリンクを全てブックマーク (お気に入り) に登録
  2. レイアウトがおかしいページで start のブックマークをクリック
  3. ページ内の消えて欲しい部分をクリックすると消える
  4. 複数消せるのでどんどん消す。
  5. もうこれで十分と思ったら stop のブックマークをクリック
  6. 元に戻す場合は restore のブックマークをクリック

注1: IE9 や Chrome 等、最新のブラウザなら大概動くはずです。

注2: Flash 等で作られている部分は直接は消せませんがちょっと外側をクリックすると消えます。

Yahoo Japan なんかが実験しがいのある騒がしいコンテンツの充実したサイトです、笑。

す~っきり!

役に立ったらぽちっとよろしく。 人気ブログランキングへ

スポンサーサイト

昔の JSF、JSF1.2 の頃には、@ViewScoped がまだなく、おいらは同じ機能を自作してた。無かったのが不思議な位の機能なので、たぶん同じ事をしていた人も多いはず。で、ViewScoped がせっかく導入されたので、全部置き換えた。さよなら my code (涙)。。。

…けど、何か変。何故か c:if (JSTL) の test 属性の EL 式にビュースコープのマネージドビーンがあると、ポストバック時にも関わらず、新規作成される。…ぬ~、おいらは最近よく地雷を踏む、もしや、と思いまた検索してみると、Mojarra (GlassFish 同梱の JSF の参照実装) のバグだった。

で、どんなバグかと言うと、まず、Facelets で Partial State Saving が有効な場合に発生する。そして、ビューの再構築時に EL 式の評価が必要な属性で発生する。JSTL の属性や binding 属性がこれに該当する。例えば、c:if の test 属性は Restore View フェーズで動作し、下位コンポーネントの有無を決める。一方、JSF の rendered 属性はコンポーネントの表示の有無に関わるだけで、コンポーネントの有無自体には関わらない。そして、Partial State Saving の場合、ビューステートはテンプレートとの差分で保存されているので、復元時に最初にテンプレートを適用する構造上どうしても、一部の属性の評価がビュースコープのマネージドビーンの再構築より先に動いてしまう。結果、それらのビュースコープのマネージドビーンが、"無いので最初から作成します" という事になる。

しかし、最近本当によく地雷を踏んでしまう。まぁ、比較的新しい機能にすぐ飛びつくおいらの性格も悪いのだけど…。新機能を使って安全かどうかを確認するのに、プロジェクト毎の生還率 (バグに遭遇しなかった割合) を書いてて欲しい…と思った。で、本物の地雷原みたくドクロマークで表すとか。…ぬぉぉ~!周り全部ドクロマークじゃん!おぃおぃどうやって入ったんだよ!パラシュート部隊なんだよ俺は!!って事にならんように新技術の採用は慎重に、笑。

役に立ったらぽちっとよろしく。 人気ブログランキングへ

ひさびさに EclipseLink (2.2 nightly) を使っていたら、はまった。フィールドにアクセスしただけで NullPointerException が出る。しかも、その stackTracenull になっている。バイトコード変換が悪さをしてるっぽい。以前も書いたけどこれはホコ天で車にはねられるようなものだ。…以前まだ EclipseLink が TopLink だった頃、随分使ってたんだけど、このバグは初めて出会う気がする。で、EclipseLink の Bugzilla にバグですよ~と毎度の事ながら下手な英語で報告してみた。

すぐに Tom Ware さんなる方から返信があり、WONTFIX との事。WONTFIX ...??? どんな意味?と思って bugzilla のリンクを辿って調べると "バグだけど修正しない" ってな事らしい。そ、そうなの…あ、なるほど…即答だったし既出って事!? …早速、オートボクシングが関係しているらしいので、それを頼りに調べると、あったあった既に一年以上前にバグとして上がってる。で、さっきの Tom Ware さん曰く、将来直す!との事。それまでは文字通り手動ボクシング!が必要みたい。
ぬ~ん…真っ白な灰になるまでには治ってると助かる…。

バグの詳細
現状、EclipseLink はオートボクシングの部分がバイトコードウィービングの時点で誤って消されてしまう模様。つまり、this.value != 1this.value != Integer.valueOf(1) と自力で変換すると解決する (this は JPA の EntityBean, value はその Integer 型のフィールド)。

役に立ったらぽちっとよろしく。 人気ブログランキングへ

v3で解決されるみたいだけど、取り敢えず今はv2.1を使っているのでメモ。

[glassfish: Issue 3972] HttpServletResponse.encodeURL() unconditionally appends jsessionid if session is newly created

てか、これはさすがに、ちょい問題あるバグと思う…GlassFish に変えたら DoCoMo のユーザがみんなログイン出来なくなっちゃった…みたいになるわけだから…。


コメント頂きました。v2.1でも修正されているようです。

役に立ったらぽちっとよろしく。 人気ブログランキングへ

MySQL で 流れたクエリを見たりログを取るにはどうすれば?って話。

そもそも、以前会社で Microsoft SQL Server を使わされてた。で、それにはプロファイラ ってプログラムが同梱されてて、それを使えば出来た。Windows の [スタートメニュー] から [すべてのプログラム] と辿っていくだけで見つかるのでメチャ分かり易い所にある。 (とは言え会社では新人研修で習わないツールは皆使わないので意味無いけど…) で、MySQL でも当然出来るはず~と思って調べたら…なかなか出てこない。

どうも、 Enterprise 版なら分析ツールがついてくるらしいけど… Enterprize 版はお金の無い人は自力でビルドせなならん。で、金は無い!ビルド?ふん!根性はもっと無い!とふてくされていたら……発見!…運はあったみたい!

my.iniファイルの [mysqld] の後に mysqld を立ち上げる時に渡すパラメタを書けるのかな?なので、そこに log って一行を書き込めば、--log が渡され、machinename.logが MySQL のどっかのフォルダに出来るみたい。めでたし、めでたし。ちなみに、MySQL のマニュアルによると、このログはクエリがサーバに到着した時点で記録する、で、その他にも更新が完了する直前に書き込むバイナリログなんてのもある。なるほど…。


てか、そもそもなんでこんなにSQLのログ取りを熱心にしてたかというと、Glassfish で JDBC レルムによる認証を試してたんだけど、何故か認証されない。Glassfish はデータベースの管理者にすらパスワードを分からなくする MD5 等を使ったパスワードの照合をサポートするので、もしかしてその機能を殺せてないのか??とか思ったりして、流れてる SQL を調べようって事になったわけ…。

で、結局、調べて見たらユーザ名が違ってた、、、dummy と dumy。今時、パソコン初心者でも自分のユーザ名は忘れない…。なんにせよ、今は happy を haapy と間違えた知り合いを笑えない…。

役に立ったらぽちっとよろしく。 人気ブログランキングへ

Copyright © ふらふら技術者の日記 All Rights Reserved.
Powered by FC2 Blog
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。