sironekotoroの日記

Perl で楽をしたい

続・はじめてのPerl 第2版 第15章〜17章 & 一週間でマスターするJavaScript for Win & Mac

タイトル長い

  • 「続・はじめてのPerl」の15、16章はオブジェクト指向ネタで、blogにまとめを書くほどの余裕なく、理解力もなく・・・
  • ただ、普段使っているcpanmのモジュール達がオブジェクト指向の仕組みで作られているんだなぁ、ってのはわかった。
    • もちろん全部ではないけど
  • 今は理解しよう、とは思わず何かのときに思い出せるようにしよう、という程度の気持ちで読んでる

  • なお、17章に関しては以下のページの説明の方がよっぽど分かりやすかった
    [Exporter - 関数のエクスポート / Perlモジュール徹底解説 - サンプルコードによるPerl入門] (http://d.hatena.ne.jp/perlcodesample/20100426/1270894115)

一週間でマスターするJavaScript for Win & Mac

  • 会社の同僚さんから5年近く借りっ放しになってた本を発掘(酷い
  • しかも、借りただけで何もしていなかったので、この際やってみる
    • sublime textでjavascript実行できるように、npm入れたり、node入れたり
    • おかげでだいぶ快適にコーディングできたけど、まだまだ最適化できる気がする
    • メソッドが大文字小文字混じってるのが嫌だなー
      • この辺りを自動修正してくれる何かがありそう
  • 昔やりたくて、でも知識もなくてできなかったことがJavaScriptであっさり出来て感慨深い。
    • フレーム分割したページのうち、片方のページのリンクをクリックすると、もう片方のページ内容が更新される、というもの。
    • やっぱり知識は力
  • この本は終わったんで、次の本(これは自分の本)「Head Firest JavaScript」に着手。

そんなこんなで

  • 以前から作りたかったものを作った
  • 仕事で使うあるページを開くと、IPアドレスが記載されている部分がある。そのIP アドレスをnslookupで逆引きした結果を同じ画面に出したい

  • あるページを開くと:userscriptつかう

  • IPアドレス記載部の特定:getElementsbyTagName
  • nslookup:Google Public DNSで解決させたかったので、PerlのMojolicious Liteでlocalhost:3000/nslookup/202.238.95.24とアクセスすると、Net::Nslookupの結果(この場合はso-net)を表示するだけのページを作る
  • SuperAgent.jsを用いて、2.で取得したIPアドレスで3.にアクセスし、逆引き結果を取得する
  • jQueryのページ書き換えでIPアドレス部の横に逆引き結果を表示する

  • ハマったところ

    • Net::Nslookupをcpanmでインストールしたらテストでこける。
      • どうも、テスト最中にboston.comってところを名前解決するも、そのIPアドレスがテスト当時からかわったらしくて、そこでエラー
      • --forceの力でインストール
    • jQueryからmojolicious(localhost)にアクセスして、IPアドレスからドメイン名に変換
      • cross domainの制約に引っかかる
      • ajaxでそれを回避・・・!出来ず。技術力の問題。
      • jquery.xdomainajax.js使う!
        - 外部サイトだとget成功するのに、localhostだとだめ?なんで?
        - yahoo.comのAPIで内部でJSONP化してた。そりゃlocalhostに手出しできねーわ
        - SuperAgent.js で解決。すばらしい!
        
  • 今後の課題

    • Net::Nslookup以外にも名前解決系のモジュールいっぱいあることに気づくのが遅かった
    • スクリプトぺたぺたなので、ちゃんと理解して動かしたい
    • ページの中でぐにぐに要素やボタンが動くと楽しい
    • mojoliciousからはJSONPで返すようにして、ajaxで受け取れるようにしたい