gotin blog

Whatever gotin wanna write

よくわからないけど

街つくってみた。 http://gotin.myminicity.com/ 何がどうなるんだか。

javascriptで正規表現使うとき、RegExpのインスタンスを前もって作っておくってことをしてもしなくても大差なさそう、Firefoxの場合。

with(DEF()){ function reg1(str){ str.replace(/abc/g, ""); } var regexp = new RegExp("abc", "g") function reg2(str){ str.replace(regexp, ""); } function test(){ var TIMES= 100000; var timer = new Timer(); var target = "abcabcabcabc"; timer.…

無名関数と実行効率の話へのチャレンジ

function style2prop(str) { return str.replace(/-[a-z]/g, function(str) { return str.charAt(1).toUpperCase(); }); } 「無名関数ってこういうところに使うんですね」と太郎君が感心していると、そこにちょうど通りかかったのが、Javascriptの実行効率に…

割り算 by bit演算メモ

bit演算なんてもう何年もやっておらず、ふと練習したメモ。 var LEFTBIT = 1 << 30; function divide(n, div){ var t = 0; var result = 0; var mbit = LEFTBIT; while(mbit > 0){ result = result << 1; t = t << 1; var x = n & mbit; t += x ? 1:0; var t…

ランダム並び替えの方法が間違ってたのでどれほど間違ってたのかを可視化してみた

ちょっと引っ張り過ぎなんですが。 comma separationのテスト結果をGoogle Char APIをつかってグラフ表示してみた - さらさら宇宙忍法帖 ↑このグラフを書くとき、ボタンを押すたびに評価の順番をランダムに変えて、 順番による影響がなるべくでないようにし…

テキストエリアの文字カウンタ ユーザスクリプト

もうすでにあるに違いないんですが、ついうっかりつくってしまいました。 せっかくなので載せておきます。 ↓こちらです。 text_counter.user.js 最初は 文字カウント これ↑をオートでカウントするスクリプトを作ったんですが、 それならどのテキストエリアで…

comma separationのテスト結果をGoogle Char APIをつかってグラフ表示してみた

comma separation by javascript - さらさら宇宙忍法帖 ↑これを実行して即グラフ表示するページをGoogle Chart APIを使って作ってみました。 (というかGoogle Chart APIを試してみたかっただけ) javascriptをここで実行させるのが手間だったのでここでは結…

comma separation by javascript

suVeneのあれ: [JavaScript]数値を3桁ごとに区切る これ↑を見かけたので試してみました。 最初に結論を書いておくと、やっぱり iandeth. - javascriptで数値をカンマ区切り文字列に変換する関数メモ ↑これ速いですね。 僕が考えたものも載せてありますが、速…

twitter_liteをextensionにしてサイドバーで使えるようにしてみました

Firefoxの拡張機能の作り方・いじり方も知っておきたいと思って、 とりあえずかつて作ったTwitterクライアントGreasemonkeyユーザスクリプトを サイドバーで使えるようになるような拡張機能を作ってみました。こちら↓です。 twitter_lite.xpi flockでも動作…

GM_xmlhttpRequestで同期処理っぽく書く方法の検討

追記 Deferredチェーン、非同期処理の逐次実行 - oct inaodu ↑ここで解説されてるDeferredチェーンが数分で考えたgotin方式なんかより全然洗練されてますね。多段になるように改造すれば同じような感じになるんかな。。 本文 JavaScript tailcall... - 冬通…

javascriptのクロージャのおさらいメモ

var funcs = [[],[],[],[]]; for(var i=0;i<3;i++){ // グローバルのiを参照 funcs[0].push(function(){return i;}); // function内のxを参照 funcs[1].push((function(){ var x = i; return function(){return x;}; })()); // function内のiを参照(引数で…

test

うおそういうことかぁ。こうやってentryのURLかえれるのね。って前にどこかでやり方みてたような。 あとちょっと反省 もうちょっと調べたり深く考えて書くようにしよう。 数秒とか数分じゃ焦りすぎ。

JavaScriptの基本的なことっぽいけど今日初めて気づいたことメモ

function Animal(){} Animal.prototype = { bark:function(){return "wooo";} }; function Human(){} Human.prototype = new Animal; var gotin = new Human(); console.log(gotin.bark()); // "wooo" Human.prototype.bark = function(){ return Animal.pro…

gmacsにご要望をいただいた

参考になるのかすら当てになりませんが、ソレが動いたとしても本当に役に立つのか分からない無理難題を押し付。。。コメントに答えて、書くことに。 gmacsの具体的に気になったところとか。 - himadatenodeの日記 とってもうれしいことにgmacsに対するご要望…

シュワルツ変換

Schwartzian transform - Wikipedia, the free encyclopedia sort処理時にsort関数に比較関数を渡すような場合に、比較関数内で計算量がかかるような処理をしている場合、それはsort前に全要素に対して先にやっておいたほうがいいよね、それで比較関数内では…

deep cloneを僕も考えてみた

追記 Dateはmutableなのでcloneするときはちゃんとコピーしてあげないといけない気がしてきたのでそのように修正。 Boolean、Number、String、RegExpはimmutableだからまぁそのまま返せばいいよねと。ん?というかそもそもdeep cloneって基本は全部cloneつく…

なぜ生htmlタグ名が欲しかったか

Firebug に一行追記して右クリックで XPath をコピペ出来るようにする。 - IT戦記 ↑こちらでも紹介(活用)されているfirebugなどの実装がある、javascriptによる指定した要素のxpathを取得する機能が非常に便利なんですが、サーバ上などのブラウザ以外の場…

ノードの実際のタグ名をとる方法の検討の続き

ノードの実際のタグ名をとる方法の検討 - さらさら宇宙忍法帖 ↑これの続き。 javascriptで生HTMLはどうにもとれそうもないので仕方なくXMLHttpRequestで持ってきてなんとかすることにしてみた。 でもこれだとロードの度に異なるコンテンツを返すような動的生…

ノードの実際のタグ名をとる方法の検討

var getTagName = (function(){ var dummy = document.createElement("div"); return function(node){ node.parentNode.insertBefore(dummy, node); dummy.appendChild(node); var tagName = dummy.innerHTML.match(/<([a-zA-Z]*)/)[1]; dummy.parentNode.in…

みいらとりがみいらいになる

LeopardにはWord of the Dayというスクリーンセーバがあります。 Dictionaryというアプリケーションが持つ辞書にある言葉を画面に流れるように表示して、たまに流れる言葉をストップさせて辞書に載っているその言葉の読みと意味を表示してくれる、というもの…

karaoke.user.jsのHTML::Featureもどきを使ったものに、AutoPagerizeのSITE INFOを使った処理も入れてみました

HTML::FeatureはAutoPagerizeのSITE_INFOがないときに使うって感じにすれば、というよりも、SITE_INFOを活用した方が本文抽出系userscriptは良い気がした。とりあえずkaraokeあたりに実装して試してみようかな。 gotin (HTML::FeatureはAutoPagerizeのSITE_I…

SBMCommentsViewerでlivedoorクリップからの取得ができていなかった問題への対策

# livedoor clipのページがdiv、ul、liを使うように変わったみたいですね。それで取得処理がうまくいかないようになったようです。修正版を作ってみたのはいいんですが、今回はコメント欄では書ききれないぐらいの修正量になってしまったので修正したソース…

レパード

leopardはレオパードじゃなくてレパードと書いた方が英語の発音に近い。 ずっとずっとレオパードだと思っていたので分かった瞬間は恥ずかしくて仕方なかったです。 ちなみに発音を聞きたい場合はgoo辞書あたりで調べるとよいと思います。他にもあると思いま…

HTML::Featureをまねしてみた

HTML::Feature - 重要部分を抽出するモジュール - - ダウンロードたけし(寅年)の日記 ↑こちらで紹介されていたCPANのモジュールでHTMLの重要部分が抽出できるとのことで、ちょっとまねしてみました。 といっても記事に書かれていたアルゴリズムとソースを…

Leopard入れて一瞬焦ったこと

zsh起動時にエラーをはいてた。 OSかえたらそういうこともあるのかなぁ、ぐらいにのんきに考えてソースとってきてコンパイルしなおしたらいいかぁ、と思ったら今度はcコンパイラがうまく動かない。 え、じゃぁもしかしてg++*1とかも動かないのか?と思ったら…

はてなダイアリー編集画面にライブプレビュー機能をつけるGreasemonkeyスクリプトを修正(中)

はてなダイアリー編集画面にライブプレビュー機能をつけるGreasemonkeyスクリプト - さらさら宇宙忍法帖 ↑これを修正中です。 こちら↓に修正途中で一部不具合には対策できた版を置いてあります. hateda_preview.user.jsMMLで遊ぶのにライブプレビュー機能が…

はてブとdel.icio.usに同時ブックマークするときについでにtwitterに投稿するGreasemonkeyスクリプトの投稿後のアニメーションをもう少し邪魔にならない感じにしました

追記 投稿後のアニメーション処理にバグがあって右下にゴミが残ってしまう問題を修正しました。 最新版をご利用ください。 投稿後のアニメーション、重すぎるんじゃボケ。もっとあっさりせいよ。だいたい画面全部を覆ってて邪魔なんだよアホ。 構想メモ - さ…

構想メモ

はてブとdel.icio.usに同時ブックマークするときについでにtwitterに投稿するGreasemonkeyスクリプト - さらさら宇宙忍法帖 ↑これの投稿後のアニメーション、重すぎるんじゃボケ。もっとあっさりせいよ。だいたい画面全部を覆ってて邪魔なんだよアホ。いや、…

カラオケガイドチックなアニメーションをさせるGreasemonkeyスクリプト

次は「HTMLのままカラオケガイドチックなアニメーションをする」にトライです。むずかしそ。あ、それができたら、切り出しとかやらなくても、素のHTMLにたいしてもガイドアニメーションを適用できるってことになるな。 続 DOMいじりのれんしゅう - さらさら…

text_viewer.user.jsにアニメーション機能もつけてみた

次は「HTMLのままカラオケガイドチックなアニメーションをする」にトライです。むずかしそ。あ、それができたら、切り出しとかやらなくても、素のHTMLにたいしてもガイドアニメーションを適用できるってことになるな。 続 DOMいじりのれんしゅう - さらさら…