ひとつ前のエントリ id:naoya:20070924:1190653790 では Linux のコンテキストスイッチにおける、主にハードウェアコンテキストの退避/復帰の処理を追ってみました。その中で カーネルスタック (switch_to() 内で pushl %ebp とかして値が積まれるスタック)とはそのときの実行コンテキストに紐づくカーネルプロセススタックという理解でよいか。 という疑問がもやもや湧いて出てきました。ここ数日 はじめて読む486―32ビットコンピュータをやさしく語る を読んでいたのですが、その中にこの疑問への答えへの入り口が載っていまして、そこを糸口に調べてみました。で、結果としては 答え: 良い でした。 x86 は特権レベルの移行と連動してスタックポインタを切り替える仕組みを持っています。Linux の場合モードはカーネルモード(特権レベル0) とユーザーモード
チラシの裏程度ですけども。 なんでJSONPってものが生まれたのか考えてみました。(※1)と(※2)と(※3)が肝の部分です。 サーバから非同期で情報を取ってくる手段として、Ajaxではサンドボックス*1が効いていて美味しくない。 ↓ <script>タグなら、クロスドメインでもJavaScriptを呼び出せるよ! ↓ でも、<script>タグだとonLoadされたときにしかリクエスト飛ばない・・・ ↓ 動的にaddChild()で<script>タグを吐けばいいね!(※1) ↓ ところで、JSONを<script>タグで取り込んでも、変数とかに入れないと利用出来ないじゃん? ↓ しかも、<script>タグで取り込むだけだと、データ取り込みの完了を知ることができないじゃんか ↓ <script>タグでinclude完了後に、ハンドラが呼ばれてそこにデータが飛んでくれば全て解決。 ↓ J
JavaScript(JS)の勉強を始めて最初にひっかかったのは整数の挙動です. JSでは整数は内部64bit浮動小数として扱われますが,論理演算をするときに限り符号つき32bit整数に変換されます. C++プログラマからすると,「符号つき」が曲者です. たとえばJSでは x = 0xee6b28004;/* =4e9 */ は正の整数 x == 4000000000であるため,uint32相当と思いがちです.しかしその場合, x &= 0xffffffff; とした瞬間にxは「符号つき」と扱われ, x == -294967296; と負の整数になってしまうことを忘れてしまうかもしれません. また,JSで厳密に扱える整数の最大値は 0x20000000000000 = 9007199254740992; ですが,これを1 << 53として作ろうとすると,32bitでラップアラウンドするため
キーが押され続けたときの挙動 keydown について。 Firefox では押している間中リスナの関数が実行されるのに対して、Opera ではキーが押された一回のみ。 keypress では両者共通して実行され続ける。 デフォルトイベントの制御・抑止 両ブラウザで共通させるためには keypress を用いる。 document.addEventListener( 'keypress', function(e){ e.preventDefault(); }, false); これで Opera であっても、例えば vim のように Ctrl + r を redo とするようなアプリケーションが作れる。ただし Alt + f などでは、ブラウザデフォルトのメニューが開かれてしまう。一方、 Firefox では Alt 押しながら f といった操作も制御可能。ただし前述のように、この場合は押
「ウェブリブログ」は 2023年1月31日 をもちましてサービス提供を終了いたしました。 2004年3月のサービス開始より19年近くもの間、沢山の皆さまにご愛用いただきましたことを心よりお礼申し上げます。今後とも、BIGLOBEをご愛顧賜りますよう、よろしくお願い申し上げます。 ※引っ越し先ブログへのリダイレクトサービスは2024年1月31日で終了いたしました。 BIGLOBEのサービス一覧
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く