タグ

ブックマーク / amachang.hatenablog.com (22)

  • 早速 Go 言語を試してみる! - IT戦記

    はじめに Google から新プログラミング言語 The Go Programming Language が発表されましたね! というわけで、さっそく試してみたいと思います。 環境は Mac OS X 10.6 インストール さっそくインストール Getting Started - The Go Programming Language を見ながら 環境の準備 ディレクトリを作る amacbook% cd ~ amacbook% mkdir go amacbook% mkdir bin環境変数の設定をする。~/.zshrc に以下を追加 # Go 用 export GOROOT=$HOME/go export GOOS=darwin export GOARCH=amd64 export GOBIN=$HOME/bin export PATH=$GOBIN:$PATH Mercurial を

    早速 Go 言語を試してみる! - IT戦記
  • Firefox 拡張を jQuery で書く! Jetpack を使ってみた。 - IT戦記

    はじめに JavaScript が書ければ、誰でも簡単に Firefox の拡張が書けてしまう。しかも、もれなく jQuery が付いて来る! というものを Mozilla Labs がリリースしたみたいですね。 https://jetpack.mozillalabs.com/ というわけで 少し触ってみました Jetpack Feature の書き方 Jetpack で書く Firefox 拡張を「Jetpack Feature」といいます。 これは、以下の 2 つのものを用意すれば誰でも簡単に公開することが出来ます。 JavaScript ファイル 公開用 HTML ファイル JavaScript ファイル JavaScript ファイルには、 Jetpack Feature のアプリケーションコードを書きます。 (function() { Jetpack.statusBar.appe

    Firefox 拡張を jQuery で書く! Jetpack を使ってみた。 - IT戦記
  • for 文と無名関数のイディオム - IT戦記

    id:cho45 がチョロっと書いたコードが話題になっている 冬通りに消え行く制服ガールは✖夢物語にリアルを求めない。 - subtech このような書き方は、自分もたまにする。 というわけで、この書き方をする利点を以下の順に解説して見る。 単純な for 文の問題点 with 文を使った解決方法と、その微妙な問題点 無名関数を使った解決方法 単純な for 文の問題点 まずは、以下の HTML に対して <ul> <li>hoge</li> <li>fuga</li> <li>piyo</li> </ul> 以下の JavaScript を実行して var list = document.querySelectorAll('ul > li'); for (var i = 0, len = list.length; i < len; i++) { var node = list[i]; v

    for 文と無名関数のイディオム - IT戦記
  • Terminal.app を軽くする方法 - IT戦記

    プログラマの人は ずっとターミナル開きっぱなしって人多いですよね? Mac の場合 Terminal.app というターミナルがデフォルトで ついていて、それを開きっぱなしって人が多いんじゃないでしょうか。 問題点 Terminal.app をデフォルトの設定のまま使ってると問題点がある。 何か別の作業をした後に、久しぶりに Terminal.app をアクティブにすると、固まるのだ。 実はこれ、毎回相当ダメージを受ける。 で、解決策が分かった スクロールバッファを小さくすればいい。 なんとデフォルトの設定では無制限にスクロールバッファを保存する設定になっているのだ。 たまたま cat したファイルがものすごい容量だったなんてことよくあることなのに>< それが、全部スワップに入ってしまう。 スクロールバッファを小さくする方法 右上のメニューから「ターミナル」→「環境設定」→「設定」→「ウィ

    Terminal.app を軽くする方法 - IT戦記
  • Safari4 と IE8 で実装された DOM Storage とは何か - IT戦記

    はじめに 皆様 JavaScript のスピード競争が激化し、 ECMAScript 3.1 の仕様の策定が進むなど、激動の JavaScript 時代をいかがお過ごしでしょうか。 さて今日は、今、ちまたで大ブレイクの兆しを見せている DOM Storage という仕様を紹介したいと思います。 DOM Storage とは何か まず、 DOM Storage とはどんなものなのでしょうか。 とても簡単に言ってしまえば、とてもたくさんのデータが保存できてサーバーに自動で送られない Cookie みたいなものです。 さらに、 Cookie とは違って JavaScript からとても扱い易く作られています。 では、この DOMStorage の具体的なソースコードを見てみましょう。 <!DOCTYPE html> <html> <head><title>DOMStorage の使い方</tit

    Safari4 と IE8 で実装された DOM Storage とは何か - IT戦記
  • JavaScript 1.8 では無名関数が書きやすくなる。 - IT戦記

    以下のブログで JavaScript 1.8 の新文法が紹介されています。 http://ejohn.org/blog/javascript-18-progress/ MDC の資料 -> http://developer.mozilla.org/en/docs/New_in_JavaScript_1.8 その中でも無名関数についての新文法が楽しいので紹介します。 // 関数の中に文が一つでその評価値を return してるような関数は function(x) { return x * x } // 以下のように書ける function(x) x * x たとえば [1, 2, 3, 4, 5].filter(function(x) x < 3); // [1, 2] element.addEventListener('click', function(e) e.stopPropargat

    JavaScript 1.8 では無名関数が書きやすくなる。 - IT戦記
  • DOM 2 Style の JavaScript オブジェクト - IT戦記

    CSS のデータを扱う JavaScript を書きたくて作った いろいろと使えそうなので晒しておきます まだ、インタフェースだけですよ>< var JSCSS = {}; // http://www.w3.org/TR/DOM-Level-2-Style/stylesheets.html#StyleSheets-StyleSheet JSCSS.StyleSheet = function(type, disabled, ownerNode, parentStyleSheet, href, title, media) { this.type = type; this.disabled = disabled; this.ownerNode = ownerNode; this.parentStyleSheet = parentStyleSheet; this.href = href; this

    DOM 2 Style の JavaScript オブジェクト - IT戦記
  • XPathGraph がすごい件と、XPath で出来ることのヒント - IT戦記

    XPathGraph とは http://xpath.kayac.com/ URL と XPath を指定すると一日に一回その URL をスクレイピングして XPath 式が示す値をグラフにしてくれる!という画期的なサービスです。 例えば、 URL と XPath を指定するだけで以下のようなグラフが作れてしまいます。 当に楽しいことが出来そうでワクワクしてます! でも まだ XPath を登録している人が意外と少ないので、「ひょっとして、このサービスの使いどころが分からないのかなあ。」と思いました。 というわけで XPath で出来ることのヒントを少し紹介したいと思います。 足し算、引き算、かけ算、割り算 XPath では普通に数値の演算ができます。 たとえば、 //div[@class=counter] で取得してきた div 要素が 1000 という数値を持っていたとすると 2 *

    XPathGraph がすごい件と、XPath で出来ることのヒント - IT戦記
  • IE8 で実装された Selectors API とは何か? - IT戦記

    はじめに IE8 には Selectors API という新しい仕様が実装されました。 ということで、今後 DOM 操作 API の主流になるであろう Selectors API についてまとめておきます。 Selectors API が使えるブラウザ 2008 年 3 月 6 日現在の一覧 WebKit Build Archives | WebKit (開発版の Safari) Windows | Official Site for Microsoft Windows 10 Home & Pro OS, laptops, PCs, tablets & more (IE8 の Beta 版) Selectors API とは Selectors API とは W3C で定義された仕様です。詳細に関してはこちらをどうぞ 簡単に説明すると getElementsByTagName や getE

    IE8 で実装された Selectors API とは何か? - IT戦記
  • display: table-cell を使ったマルチカラムレイアウト - IT戦記

    Acid2 Test で IE8 が display: table-cell をきちんとレンダリングするということが分かったので。 IE8 が普及する(笑)のを 5 年くらい先取りして display: table-cell によるマルチカラムレイアウトを書いてみました。 リンクは以下です。 http://amachang.art-code.org/tablecell/ 今のところ Opera 9+、Safari 2+、 Firefox 2+ で正常にレンダリングされることを確認しました。 ポイント ソースを見て分かるように HTMLCSS もめちゃめちゃシンプルです。 ポイントは display: table-cell の要素が兄弟要素の高さに併せて間延びするところでしょう。 これで、何カラムだろうとお手のものです。

    display: table-cell を使ったマルチカラムレイアウト - IT戦記
  • jQuery の $(function) が ready イベント発生後だと動かない問題の解決法 - IT戦記

    ready にまつわる「ややこしい問題」で 川崎さんが困っているようなので、 [jQuery] $(function)はonload後には効かない Kawanet Blog II/ウェブリブログ 解決方法を書きます 実は (たぶん)その「ややこしい問題」のために用意されている関数が jQuery にはある jQuery.event.special.ready.setup() /* または */ $.event.special.ready.setup() 試したことはないけど。たぶん上の関数を ready イベント前(ロードされる前)に呼び出してあげると、その「ややこしい問題」を解決できる 関数名が長いけど $(function(){}) のようにダミー関数を空呼びするよりは奇麗かなあ?

    jQuery の $(function) が ready イベント発生後だと動かない問題の解決法 - IT戦記
  • Firefox の拡張機能をふとした時に手元でチョコチョコいじれるようにしとくと楽しい - IT戦記

    この記事で Firebug ハッキング Tips を纏めたい Firebug に一行追記して右クリックで XPath をコピペ出来るようにする。 - IT戦記 とか言ってたけどその前に、 僕は Firebug だけじゃなくて、 だいたいの拡張機能で、簡単に「チョコチョコいじれる化」というのをしてるのでそれを書いてみます。 チョコチョコいじれる化とは jar ファイルを解凍しておいてすぐ書き換えられるようにしとくこと。 「チョコチョコいじれる化」しとくと気付いたときにちょっと JS や XML や CSS を追加するだけで、いろいろ改造できて楽しい。 「でも、 Firefox が壊れる可能性があるじゃん><」って? チッチッチ、ナンセンスだよメーン そんなの拡張機能のディレクトリを削除しちゃえば元通りさ Don't be scared! iKnow!で英語。ちょっとの努力で、大きな成果を。

    Firefox の拡張機能をふとした時に手元でチョコチョコいじれるようにしとくと楽しい - IT戦記
    vv_boow_vv
    vv_boow_vv 2007/11/30
    これで、 拡張機能内の JS とかを書き換えられまくります!これなんてフリーダム!
  • Firebug に一行追記して右クリックで XPath をコピペ出来るようにする。 - IT戦記

    この XPath 使いたい>< って思うことよくありませんか? サイト見てて、あ、このボタンにグリモンであんな機能やこんな機能付けたい><!って思うこととかありますよね! そんなときに、いちいち要素の位置とか考えずに右クリックで XPath をコピペできたら嬉しいですよね>< ってことで 作ってみた イメージはこんな感じです。 これをクリックすると、右クリックされた要素の XPath がクリップボードにコピーされます。 この機能を Firebug に実装する手順 1. Firefox のプロファイルディレクトリに行く 環境 プロファイルディレクトリ WinVista C:\Users\[ユーザ名]\AppData\Roaming\Mozilla\Firefox\Profiles\[ランダムな文字].default\ WinXP C:\Documents and Settings\[ユーザ名

    Firebug に一行追記して右クリックで XPath をコピペ出来るようにする。 - IT戦記
  • とてもシンプルに自分自身が属する script 要素を取得 - IT戦記

    グローバル領域に以下の一行を書く <script> var currentScript = (function (e) { if(e.nodeName.toLowerCase() == 'script') return e; return arguments.callee(e.lastChild) })(document); alert(currentScript); </script>こうすることで、currentScript はこの script 要素を指す。 いちおう説明 DOM は構築されるときに、上から順番に構築される。そして、script タグがあると、 script 要素を構築したあとに、スクリプトを実行する。 つまり、スクリプトが実行されたとき script 要素は今まさに作られたばかりであり、それよりも後ろの要素が存在しない。さらにこの script 要素を含むすべての要

    とてもシンプルに自分自身が属する script 要素を取得 - IT戦記
    vv_boow_vv
    vv_boow_vv 2007/11/24
    スクリプトが実行されたとき script 要素は作られたばかりでありそれよりも後ろの要素が存在しない。さらにこの script 要素を含むすべての要素が 今まさに構築中の状態で document から lastChild をたどって行けばたどり着く。
  • IT戦記 - arguments を直接的に配列化

    Own Properties は同じだからプロトタイプだけ入れ替える (Firefox Only) id:cheesepie:20070129:1170012588 を見ていて思いつきました。 arguments.__proto__ = Array.prototype; ちなみにクロスブラウザなやり方 3 つ // 1 for(var i = 0, args = []; i < arguments.length; i ++) args[i] = arguments[i]; // 2 arguments = Array.apply(null, arguments); // 注意: コメント欄参照 // 3 for(var n in Array.prototype) arguments[n] = Array.prototype[n]; 別に配列化しなくても配列の関数は使えます 配列のプロトタイ

    IT戦記 - arguments を直接的に配列化
  • JavaScript の配列と連想配列の違い - IT戦記

    id:cheesepie:20070131:1170172709 最近は、こういう風に JavaScript を勉強する人が増えていてとても嬉しいです ^^ id:cheesepie さん頑張ってください! で、ちょっと配列と連想配列の使いかたが違うようなので、エントリーを書こうと思いました。おせっかいだったらすみません>< ! やっぱり、このへんが JavaScript の難しいところのひとつなのだろうか。 ということで、 JavaScript の配列と連想配列の違い いってみよおー 連想配列とは JavaScript では連想配列は一番シンプルなオブジェクトのことである。つまり、すべてのオブジェクトは連想配列である。 以下のすべての連想配列はまったく同じものである。 // 1 var obj = { hoge: 'hoge' }; // 2 var obj = { 'hoge': 'h

    JavaScript の配列と連想配列の違い - IT戦記
  • XPath は jQuery や Prototype.js と競合する技術ではなく、むしろ共存する技術です - IT戦記

    昨日のエントリのブクマやコメントで jQuery からの移行がめんどう 時代は jQuery のようなコメントがありました。 これらのコメントから おそらく、「XPath が jQuery や YUI、Prototype.js、Dojo、MochiKit などの汎用 JS ライブラリと競合する」と思ってる方が多いのかなと思いました。 結論 XPath は汎用 JS ライブラリとは競合する技術ではなく、共存する技術だと僕は考えています。 理由 汎用的な JS のライブラリには、大きく以下のような機能があります。 DOM ツリー上の要素やノードを取得する DOM に新しい要素やノード、属性、プロパティ、イベントなどを追加する その他、クロスブラウザとか それに対して XPath が提供するのは DOM ツリー上の要素やノードを取得する というシンプルな機能だけです。 つまり、 XPath は汎

    XPath は jQuery や Prototype.js と競合する技術ではなく、むしろ共存する技術です - IT戦記
    vv_boow_vv
    vv_boow_vv 2007/11/13
     今、 jQuery や Prototype.js にどういう風に XPath を組み込んで(バインディングして)使うのがキレイかを考えています。
  • JavaScript-XPath をリリースしました!さあ、あなたも XPath を使おう!(解説付き) - IT戦記

    JavaScript-XPath とは JavaScript-XPath は、 DOM 3 XPath を実装していないブラウザに対して、実用的な速度で動作する DOM 3 XPath のエンジンを追加します。 一言で乱暴に言ってしまえば、どのブラウザでも document.evaluate って関数で XPath 使えるようになるよ!ってことです。 以下が公式サイトになります。 http://coderepos.org/share/wiki/JavaScript-XPath DOM 3 XPath ってなんなの!? めっちゃ簡単(で、ちょっとだけ適当)なDOM 3 XPath の説明をします><。 JavaScript でよく使う document.getElementById や document.getElementsByTagName って関数ありますよね? DOM 3 XPath

    JavaScript-XPath をリリースしました!さあ、あなたも XPath を使おう!(解説付き) - IT戦記
  • for 文を setTimeout に変換する - IT戦記

    for 文で 100 項目とか 1000 項目とかあるテストケースを処理するとブラウザが固まる。 こんなダイアログが表示されます。 ということで for 文を setTimeout や setInterval に変換する事で定期的にブラウザに処理を戻すことができる。 // ここでは console.log のところでログを取ってますが // 通常は処理が入ります。 for (var i = 0; i < 3; i ++) { console.log('a' + i); } /* * 結果 * a0 * a1 * a2 */ これをまず while 文に変換 var i = 0; while (true) { if (!(i < 3)) break; console.log('a' + i); i ++; } /* * 結果 * a0 * a1 * a2 */ で、 setTimeout に

    for 文を setTimeout に変換する - IT戦記
  • IT戦記 - 複雑で重くなった JavaScript を超高速化する方法3

    8 ヶ月前に setInterval 書き換えのネタで作ったやつ id:amachang:20060104:1136344836 id:amachang:20060114:1137243389 ふと ちょっと設計変えたらすごく速くなる気がして、作り替えてみた。 でも、作ってみたら clearInterval がちょっとだけ速くなったけど、正直そこまで変わらなかった。 でも、設計はきれいになったと思うので公開します。 ダウンロード http://sample.ecmascript.jp/setInterval/setInterval03.js 以前のもファイル化した 最初の失敗作(utf-8だから適当にエンコードして使ってください) 次に作ったやつ、実績はこっちのがある(utf-8だから適当にエンコードして使ってください) 使いかた すべてのスクリプトより前に読み込む <script src

    IT戦記 - 複雑で重くなった JavaScript を超高速化する方法3