サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
TGS2024
se35over.seesaa.net
30歳からまじめにIT業界で働きだしたフロントエンドエンジニアになりたいJavaプログラマ。 あたらしいブログはこちらです。 http://blog.mitsuruog.info/ canvasやっている人には常識なんだろうが晒しておく。 やりたかったことは、canvasのwidthとheightを共に200pxにして、中に100px×100pxの図形を描くこと。 下の画像を見て欲しいのだが、右のcanvasでは描画した図形が縦に伸びてしまった。 まず左の実装(canvasタグに直接widthとheightを指定する)を見て欲しい。 次に、右の実装(cssでcanvasタグにwidthとheightを指定する)を見て欲しい。 左右の実装の違いはwidthとheightをどこで指定するかという点であるが、こんなにも結果が異なるとは正直驚いた。 これはcanvasのデフォルトのサイズが300p
NULL が悪いとされる理由は、一般的に以下の5点によります。 SQL の作成にあたり、人間の直観に反する3値論理を考慮せねばならない。 IS NULL、IS NOT NULL を指定する場合、インデックスが参照されないためパフォーマンスが悪い。 四則演算または SQL 関数の引数に NULL が含まれると「NULL の伝播」が起こる。 SQL の結果を受け取るホスト言語において、NULL の組み込み方が標準化されていない。 通常の列の値と違って、NULL は行のどこかに余分なビットを持つことで実装されている。そのため記憶領域を圧迫したり、検索パフォーマンスを悪化させる。 達人に学ぶ SQL徹底指南書より 1.は3値論理という聞きなれない単語が出てきたが、 要するに通常のプログラミング言語では論理値がtrueかfalseの2つなのに対し、 データベースの世界ではNULLを加えて3つとなると
submitボタンを連打された場合、2重登録防止などの目的で2回目以降のイベントを無効にしたいことはよくある事なのだが、最近実装した際に少しハマッたのでいろいろ調べてみた。 まず以前よく書いていたコードで、onClick時に「return false;」するとイベントが無効になる。 (後ほど重要になってくるのだが、これは「DOMレベル0」の書き方) 最近はHTMLの中にjavascriptを書くことを避けるようになってきたので、下のサンプルのようにjavascript内でDOM要素を取得してイベントリスナーを設定する方法が主流となってきた。 (後ほど重要になってくるのだが、これは「DOMレベル2」の書き方) javascriptのコードは次のようになっている。 ます、初めの方に書いてある「LISTENER」変数の部分は、イベントリスナ登録をクロスブラウザ対応する際のお決まりパターンだ。詳し
Java界隈では結構有名な話らしが、私はつい先日職場の同僚に指摘されて初めて知った事実。 SimpleDateFormatを使用する箇所でいちいちnewするものどうかと思い、final staticで使いまわしていたところ、実はスレッドセーフではないので、マルチスレッド下で実行すると計算結果が違ってくるという恐ろしい話。 初め聞いた時はにわかに信じられず(だってfinal staticで使いまわすような機能なので・・・) SimpleDateFormatのソースコードを眺めていると、スーパークラスのDateFormatにCalendar型の「calendar」というクラス変数を持っていて、SimpleDateFormatのformat()とparse()の中で豪快に上書きしているではないか! これは残念なことと思い、マルチスレッド下で問題を再現させるコードを書いてみた。 Task.java
Seleniumをしばらく使っていてまず「イケてる!」と思った機能は、テストを実行しながら同時に画面キャプチャを取得できる機能だった。 (しかも縦に長い画面はスクロールしてキャプチャしてくれる!) UI側は頻繁に変更入る部分なので、エビデンスとしての利用だけではなく、画像を設計書や顧客への資料に貼り付けたりと結構重宝した。 (しかも縦に長い画面はスクロールしてキャプチャしてくれる!2回目w) Seleniumでキャプチャを取得する方法は大きく2つある。 1つはSeleniumIDEでブラウザのキャプチャを直接取得する方法(1)で、もう1つはSelenium WebDriverを介してブラウザのキャプチャを取得する方法(2)だ。 それぞれ長所と短所があるので用途に応じて使い分けると良いだろう。 (1)SeleniumIDEでブラウザのキャプチャを直接取得する方法 SeleniumIDEにて「
node.jsのイベント駆動を感じたくてsocket.ioを使ってチャットアプリを作ってみた。 ただのチャットだと面白くないので、socket.ioのネームスペース機能を使ってチャットルームを作って、サーバにputされたメッセージが全員にpushされないようにしてみた。 mitsurog node.js rabo コードの方はこんな感じで書いてみた。 index.html Socket.io ChatDemo Room1 Room2 put messages(room1) *Timezone GMT /* * 中略 */ 31,32行目がサーバとの接続している箇所で、URLの「/room1」「/room2」がネームスペースとなる。 また46~50行目がサーバにメッセージをputするイベントハンドラ。60行目が実際にputしている箇所だ。 server.js var io = require
このページを最初にブックマークしてみませんか?
『mitsuruogの日記』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く