タグ

ブックマーク / zentoo.hatenablog.com (7)

  • なんとかScriptがあと何個出てこようとあなたがブラウザ上でまともに動くコードを書けるようにならないワケ - 愛と勇気と缶ビール

    JavaScriptよく分からないです><と言っている人はだいたい以下の要素のうち自分が何を理解していないのか分かっていないしそれら個別の要素についてちゃんと勉強する気もないのでJavaScriptにtranslateされる言語が今後いかに増えようともブラウザ上でまともなコードを書けるようになる確率は低いと思われます。(現在のブラウザ/JavaScriptのアーキテクチャその他に根的な変化があるような場合を除く) JavaScript言語そのものを理解していない -> これがある程度AltJS言語で解決される JSがブラウザ上でどういう風に実行されるかを理解していない DOMを理解していない ブラウザにおけるEvent Modelを理解していない 僕はそもそも古参のJavaScripterではないしJavaScripterを名乗るのはおこがましいレベルの人間だと思っていますが、古参のJa

    なんとかScriptがあと何個出てこようとあなたがブラウザ上でまともに動くコードを書けるようにならないワケ - 愛と勇気と缶ビール
    advblog
    advblog 2013/01/28
  • Linux KernelのLinked Listの実装が面白い件 - 愛と勇気と缶ビール

    最近、Robert Love先生のを暇な時にダラーと読んでいたりするわけですが、それの中にLinux Kernel内部で使われているLinked Listの実装が書いてあって面白かったので共有。 まず、Linked Listの一個一個のエントリを表すstructを定義します。 struct list_head { struct list_head *next, *prev; }; いやいやいやいや。いかにC力の低い僕でも流石にこれはあきません。騙されませんよ。前後のエントリへのポインタは確かにあるけれども、これにはデータを指すためのポインタがないじゃないの。おじいちゃんまたデータ忘れてきちゃったの?いやあねえ。 おじいちゃんは言った。「それはお前の短見というものじゃ。このLinked Listは以下のコードのようにデータ構造に埋め込んで使うものなんじゃよ。」そしてそれは正しかった。 st

    Linux KernelのLinked Listの実装が面白い件 - 愛と勇気と缶ビール
    advblog
    advblog 2012/12/12
  • Maintainable JavaScriptにみる、コンテキストとアプリケーションロジックの分離 - 愛と勇気と缶ビール

    個人的なこと 読書はいわゆる自己投資?にあたるものなのでケチるもんじゃないよなあ、とは思いつつも可能なら安い値段でより大きなリターンを得たいよねー、ということで最近はOreillyの半額セールに目を光らせるようになりました。英語は「拾い読み」がし辛いという欠点があるのですが、まぁ、安いし、全てのにちゃんと訳が出るわけでもないので、ええかなぁと。 そんなわけで "Maintainable JavaScript" というを読んでいたのですが、その中のEvent Handlingについての章が「おお、これこれ」という感じだったのでちょっと紹介。 Maintainable Event Handling jQuery覚えたぜ!って感じの人がとりあえずコードを書くと、だいたいこんな感じになりますね。ちなみに、これは別にjQueryがどうとかいう話ではなくて、質的には生DOMでも他のライブラリでも

    Maintainable JavaScriptにみる、コンテキストとアプリケーションロジックの分離 - 愛と勇気と缶ビール
    advblog
    advblog 2012/09/01
  • DOMContentLoadedに引っ掛けて初期化を行う外部スクリプトを、DOMが出来てからアレアレする - 愛と勇気と缶ビール

    だいたい以下のような感じでうまくいくんじゃないかと思うけど、ちゃんとした検証はしてないので。WebKitでしかみてませんし。 引数のtargetはwindowやdocument, scriptはsrcが設定されたscript elementだと思いねえ。 (※イベントハンドラ内でevt.targetとかを参照するようなヤツはこれだとダメです) function hijackDOMLoaded(target, script) { var orig = target.addEventListener, callbacks = []; target.addEventListener = function(type, cb, useCapture) { if ( type === "DOMContentLoaded" ) { callbacks.push(cb); } else { orig.ca

    DOMContentLoadedに引っ掛けて初期化を行う外部スクリプトを、DOMが出来てからアレアレする - 愛と勇気と缶ビール
    advblog
    advblog 2012/08/12
  • 本当はそれなりに面倒くさいJavaScriptとhistoryとAjaxのお話 - 愛と勇気と缶ビール

    口上 historyとAjaxといえば、JavaScriptからある程度任意でhistoryのエントリをpushできるhistory.pushStateとか、history.replaceStateは既に大分有名になった感がある。 素晴らしい未来では、全てのブラウザにpushStateが乗っていて「location.hashを使ったAjax遷移が許されるのは10年前のブラウザまでだよねー」というハッピーな世界が実現するのだろう。が、今現在ではまだpushStateに対応していないブラウザのシェアも多く、Ajaxによる擬似画面遷移をモリモリ行うようなサイトではpushStateのある環境、ない環境の両方を考慮してやる必要がある。 (ちなみに、要件によっては「pushStateがないブラウザは通常の遷移で我慢しろ!」という割り切りも全然ありだと思う) 先に言っておくと、この記事は長いです。 環

    本当はそれなりに面倒くさいJavaScriptとhistoryとAjaxのお話 - 愛と勇気と缶ビール
    advblog
    advblog 2011/11/01
  • やったーJavaScriptの動くMySQLできたよー - 愛と勇気と缶ビール

    ※ネタです ※UDFです Mysql 5.1 Plugin Development 作者: Andrew Hutchings,Sergei Golubchik出版社/メーカー: Packt Publishing発売日: 2010/08/30メディア: ペーパーバック購入: 1人 クリック: 45回この商品を含むブログ (2件) を見る しばらく積ん読していたこのをちょっと眺めてみたら、MySQLのUDFって簡単に作れるんだなー、と思った && そういやV8ってライブラリとして簡単にリンクできるはずだな、と思い出した ので、ついカッとなって作った。 http://github.com/zentooo/mysqludf-jseval UDFうんぬn ほとんど↑のの受け売りになるけど、一応MySQLのUDFについて備忘録代わりに軽く紹介しておくと UDFを追加する場合、MySQLの再コンパイ

    やったーJavaScriptの動くMySQLできたよー - 愛と勇気と缶ビール
    advblog
    advblog 2011/09/26
  • JavaScriptのお勉強をするときの話(環境構築編) - 愛と勇気と缶ビール

    この記事は、JavaScriptを勉強して可能なら使えるようになりたいけど、どこからやっていいかよくわからない、という昔の僕みたいな人のためのガイドです。ちなみにいささかCUI寄りです。 初めに断っておきたいのは、僕が多少なりとも真面目にJavaScriptを勉強し始めたのは10ヶ月ほど前のことなので、いわゆるマスター的なヨーダでも何でもなく、未だ途上の何たらだということです。 開発環境を用意する JavaScript入門、みたいな紙媒体やWeb上の記事には、「JavaScriptは基的にはブラウザ上で動く言語なので、特別な実行環境を用意する必要はありません!楽勝ですね!」みたいなことがよく書いてあるのですが、アホか、という話です。 ブラウザ上で動かす(場合が多い)言語であるからこそ、むしろ実行はめんどくさいです。 「ワイはとにかくDOMが操作できればええんや!言語仕様とかどうでもええわ

    JavaScriptのお勉強をするときの話(環境構築編) - 愛と勇気と缶ビール
    advblog
    advblog 2011/05/17
  • 1