タグ

ブックマーク / shogo4405.hatenadiary.com (15)

  • イーモバイルによるインフラ構築 - Thousand Years

    去る12月08日(土)にインフラ要因としてKanasan.JS#2に参加させていただきました。そのときネットワーク環境構築したのでその際のメモです。 必要なもの ノートパソコン イーモバイル 無線LAN親機(バッファロー) 有線LAN1。 有線LANについては当日忘れてしまったのでKanasanにお借りしました。ありがとうございました。次の機会は忘れないようにいたします。 パソコンのルータ化 【イーモバイルユーティリティ】→【設定】→【ダイヤルアップ設定】を選びます。 ダイヤルアップ接続先に【emb.ne.jp】をクリックして【編集】をクリック。 【編集】をクリックすると以下のような画面出てくるので【詳細設定】をクリック あとは【共有】タブから【ネットワークのほかのユーザーに、…】にチェックを入れる 以上がイーモバイル用の共通設定。あとはパソコンがDHCP機能が入っていないルータと想定し

    イーモバイルによるインフラ構築 - Thousand Years
  • object=clone(object); - Thousand Years

    世の中にはdeep cloneの需要がある 僕もある。某ライブラリで実装せにゃならない。スマートな方法は思いつかず。永遠ループでまわしつづけています。この前見つけたネタのエントリ。 404 Blog Not Found:javascript - お伺い - Object.prototype.clone() http://la.ma.la/blog/diary_200711270645.htm clone関数を使ったときの挙動 clone関数を使うと分身(shogo4406)が変わってもオリジナル(shogo4405)には変化がない。ただ、オリジナル(shogo4405)が変化すると分身(shogo4406)も一緒に変身してしまうので用途によっては困る。 shogo4405 = { name:'shogo4405', age:22 }; shogo4406 = clone(shogo4405

    object=clone(object); - Thousand Years
  • kana.js - Thousand Years

    最新版はこちら http://code.google.com/p/kanaxs/ はじめに 平仮名を片仮名にしたり。半角英数字を全角英数字にしたり。全角カタカナを半角カタカナに変換するJavaScriptです。String.prototypeを拡張していますのでString.prototype拡張が嫌いな方はPHPのmb_convert_kana相当もあるのでそちらをご利用ください。 利用できるようになるメソッド kana.js メソッド 説明 String#toZenkakuCase() 半角英数字を全角英数字に変換します。 String#toHankakuCase() 全角英数字を半角英数字に変換します。 String#toKatakanaCase() 平仮名を片仮名に変換します。 String#toHirakanaCase() 片仮名を平仮名に変換します。 String#toZenk

    kana.js - Thousand Years
  • 僕が使うJavaScriptの小技集 - Thousand Years

    小技じゃないよ小枝だよというCMがあった気がしますが…僕がよく使うJavaScriptの小技集です。数は少ないです。偉大なJavaScriptハカーさんはどんな小技持ってるんだろう?気になります。この記事を偶然みてくれたJavaScriptのハカーさんも小技集公開して欲しい!なんて勝手に思ったり…。 文字列を繰り返す n個の文字(今回は#)を繰り返す場合はwhile使ってループ組むよりもこっちを利用します。 Array(n + 1).join("#"); // n -> 5 なら ###### 文字列を文字の配列にする Hello World!!を[H][e][l][l][o][ ][W][o][r][l][d][!][!]に分解するってことです。JavaScriptでよく字句解析するコードを書くので1文字1文字に分解してもらうとうれしい人です。charAtよりも高速ですし。教えていただ方

    僕が使うJavaScriptの小技集 - Thousand Years
  • Pluginオブジェクトまわりについて - Thousand Years

    JSmartyにはテンプレート関係のAPI(assignやdisplay)以外にも色々なオブジェクトを用意しているのですがその中のPluginオブジェクトの紹介。テンプレートエンジンとしての機能を利用しなくても以下のように活用できます。 便利な使い方 JavaScriptでsprintfしたい!あとグローバル領域を汚したくないし…っていうときに使えます。JSmarty.jsをコールするとグローバル領域は基的にJSmartyしか増えません。 <script src="JSmarty.js"></script> (function() { // 注意:初回呼出はSAJAXで呼出すので時間がかかる。 // 2回目以降はキャッシュ呼び出しています。 var sprintf = JSmarty.Plugin.getFunction('php.sprintf'); alert(sprintf("%0

    Pluginオブジェクトまわりについて - Thousand Years
  • HTMLElement Prototyping 2007 - Thousand Years

    HTMLElement Prototypingとは? divやspanなどのHTML要素に独自メソッドを追加する為のprototype拡張の手法です。これを応用するとIEやOperaで採用されているinsertAdjacentHTMLfxで利用できるようにしたりSafariで利用できるようになります。 各ブラウザ毎に実装が異なる場合があるのでクロスブラウザ用としてまとめエントリしておきます。 // prototype拡張前は当然以下はエラー document.getElementById('foo').foo(); // prototype拡張後は実行される。 HTMLElement.prototype.foo = function(){ alert('foo'); }; document.getElementById('foo').foo(); // alert('foo'); HTM

    HTMLElement Prototyping 2007 - Thousand Years
  • JavaScriptでUndoRedoするためのなにか - Thousand Years

    方法論? ふとJavaScriptでUndoRedo機構がエレガントにつくれないかと思ってなんかごさごさやっていたんですがそれっぽいものができたのでアプローチをポスト。UndoRedo機構つくる為の方法論としていくつか考えてみました。 前やったことの逆算。次やることの計算(右に3px動かす。左に3px動かす。) DOMのプロパティtop:50pxとかleft:50pxとか保存して頑張る。(prop1 = { top: 50, left :50px}, prop2 = {top: 25, left : 25}) 現在の状態のDOMを保存(キャッシュ)しておき状態を復元する。 とまぁ。すぐ思い浮かぶのは1,2くらい(1と2のパターンはやれなくもないけど凄いめんどう。)今回は3のアプローチ。 element.cloneNode(flag) JavaScriptでアニメーションするにしろ新しくHT

    JavaScriptでUndoRedoするためのなにか - Thousand Years
  • document.writeハック - Thousand Years

    ハックその1 document.write = function() { var arg = []; var scripts = document.scripts; for(var i=0,f=arguments.length;i<f;i++){ arg[i] = arguments[i]; }; scripts[scripts.length-1].insertAdjacentHTML('beforeBegin', arg.join('')); }; 効用 上記ハックを実施するとdocument.createElement('script')で動的にscript要素を追加してもdocument.writeされる。補足ですが、document.createElement('script')で動的にscript要素を追加してもやはりdocument.scriptsの最後に追加されます。つまり、

    document.writeハック - Thousand Years
  • 文字列連結を素早くするオブジェクト - Thousand Years

    JavaScriptの文字列連結はすればするほど長くなればなるほど重くなるっていうのは有名な話でどうしても何回も連結せざるを得ない状況(テンプレート処理)では以下のような俺オブジェクトを使って対処してきました。 ただ人間欲が出てくると replace したいとか length 取得したいよ...と思い、自分で実装する必要が出ていました。ただ String.prototype が継承できるのを思い出し作り直したのが以下のもの。 function Buffer() { var k = -1, b = []; this.append = function() { for(var i=0,f=arguments.length;i<f;i++) { if(!arguments[i]){ return; }; b[++k] = arguments[i]; }; }; function toString

    文字列連結を素早くするオブジェクト - Thousand Years
  • JavaScript継承パターンまとめ - Thousand Years

    プロトタイプ function Animal(){}; Animal.prototype = { sleep : function(){}, walk : function(){ alert('noshi, noshi') } }; function Human(){}; Human.prototype = new Animal(); new Human().walk(); // noshi, noshi もっともポピュラだと思われる。 変型プロトタイプ Human.prototype.__proto__ = Animal.prototype; new Human().walk(); // noshi, noshi ほとんどのIEを除くJavaScript処理系で実行可能。裏ワザちっく。 エクステンド /** * extend function * @param {Object} s su

    JavaScript継承パターンまとめ - Thousand Years
  • 文字列連結の動作速度の検証 - Thousand Years

    Java6ではJavaScriptを利用できるのは言うまでもないのですがファイルを読込む場合にはjava.langのStringBuilderを利用したら早いか、+=の連結がいいか。自前でつくったほうがいいかの検証。 var text = ''; var buf, BufferedReader = java.io.BufferedReader; var fis, FileInputStream = java.io.FileInputStream; var isr, InputStreamReader = java.io.InputStreamReader; try { fis = new FileInputStream("foo.txt"); isr = new InputStreamReader(fis); buf = new BufferedReader(isr); while(buf

    文字列連結の動作速度の検証 - Thousand Years
  • innerHTMLでscriptする - Thousand Years

    innerHTMLにscriptを代入しても評価されず無視されるのはIEの仕様なのでいいとしてその回避策。最近、昔あの方法で出来たんだけどいつの間にかできなくなってるコードが出てきている気がします(気のせいにしておこう)。 以下は一般的な動かないコード。 <div id="foo"></div> <script type="text/javascript"> document.getElementById('foo').innerHTML = "<script type='text/javascript'>alert('動かない')<"+"/script>"; </script> 以下は動くコード。 <div id="foo"></div> <script type="text/javascript"> document.getElementById('foo').innerHTML =

    innerHTMLでscriptする - Thousand Years
  • script要素のtextプロパティ - Thousand Years

    http://d.hatena.ne.jp/brazil/20061105/1162722198 http://rails.office.drecom.jp/takiuchi/archive/100 の中で記述されているscript要素にinnerHTML突っ込んでもうまく作動しない件。僕のIE6でもできないのでMSの月例更新で仕様変更になったのかと勝手に想像しています。ただその代替手段として...以下のようにtextプロパティを利用できます。既存のscript要素にtext設定しただけでalertされます。…これってXMLHttpRequestした後にeval必要ないですね。 <script id="foo"></script> <script> foo.text = "alert(1)"; foo.text = "alert(2)"; </script>innerHTMLはMSIEの独

    script要素のtextプロパティ - Thousand Years
  • DOMのエレメントのスタイル属性を取得するコード - Thousand Years

    昔DIV要素のwidthやheightをスタイルシートで定義してそのdocument.getElementById('foo').style.widthとか取得できなくて(当然ですが…)悩んでいました。別件で同じようなことする必要でてきて書き直しましたのでポスト。 DOMのエレメントのスタイル属性を取得するコード /** * エレメントに適用されているスタイル属性を取得する。 * * background-color式を利用するかbackgroundColor式を利用するかでかわってくるので、 * お好みに合わせて下のコメントをはずしてください。 * 上のコメントをはずすとbackgroundColor式 * 下のコメントをはずすとbackground-color式 * * @ToDo 各ブラウザ毎の判別あまいので後で書直す。 * @params {String} id ElementのI

    DOMのエレメントのスタイル属性を取得するコード - Thousand Years
  • TrimQueryの調べ - Thousand Years

    アブストラクト TrimQueryはTrimPathプロジェクトにおけるJSONデータをSQL構文で操作可能にするライブラリである。基SQL SyntaxはSELECT ... FROM、WHERE clauses、GROUP BY、HAVINGなど基的なものからself joins、LIMITなど利用可能。ライセンスはGNU Public License version 2である。 API関係 TrimQueryのコール(環境により異なります) TrimPath.makeQueryLang ( tableColumnDefinitions ) メソッドはtableColumnDefinitionsをコンパイルしselectStatementObjectを返すメソッドです。tableColumnDefinitionsは次のような例になります。(注:SQLでいう所のテーブルスキーマのよ

    TrimQueryの調べ - Thousand Years
    k_37to
    k_37to 2006/11/03
    JSONをSQLライクに扱う
  • 1