2007-01-01から1年間の記事一覧

配列足し算いろいろ

普通に for Array.prototype.sum_for = function() { var r = 0; for(var i = 0, l = this.length; i < l; i++) { r += this[i]; } return r; } while pop Array.prototype.sum_while = function() { var r = 0; var f; while(f = this.pop()) { r += f; } r…

del.icio.us の links for がうざいので消去するよ @ livedoor Reader

blog のフィードに del.icio.us にブックマークしたものをまぜて配信する人がいるけど鬱陶しいので消去してみるよ。 // ==UserScript== // @name ldr filter feed from del.icio.us // @namespace http://opera.higeorange.com/ // @include http://reader.l…

"del.icio.usのポストページを俺仕様にするユーザスクリプト" の別アプローチ

del.icio.usのポストページを俺仕様にするユーザスクリプト - #june29jp の別アプローチ tabindex を使ってみる。 tab を押したときのフォーカス順を tags -> notes -> save にしただけ。 // ==UserScript== // @name delicious Post Costomize // @namespac…

誰が使うんだろうかこれ?

function $$(sel) { var self = this; var type = /^#(\w+)$|^\/\/(.*?)$|^\.(\w+)$|^(\w+)$/; sel.replace(type, function($0, $1, $2, $3, $4) { if($1) { self.elm = []; self.elm.push(document.getElementById(sel.replace('#', ''))) } else if($2) { …

innerHTML

HTMLタグ が Firefox -> 小文字で。 Opera, Konqueror -> 大文字で。 Konqueror って document.evaluate ないのか…。

JavaScript第5版読書会#1

http://cotocoto.jp/event/2880 に参加してきた。 気になったコード js> "hoge".charAt(1) o js> "hoge"[1] o // 実装によってはうごかないらしい。 new String() vs. String() js> typeof("hoge") string js> typeof(String("hoge")) string js> typeof(new…

for + setTimeout

10まで を数える。 for(var i = 1; i <= 10; i++) { setTimeout(function() { print(i); }, i * 1000); } いっけん間違ってなさそうだけど 11 しか表示されない。タイムアウト後はすでにループを抜けて i は 11 になってるため。 for(var i = 1; i <= 10; i+…

今日買ったもの

探偵ガリレオ (文春文庫)作者:圭吾, 東野文藝春秋Amazon予知夢 (文春文庫)作者:圭吾, 東野文藝春秋Amazonウェブ時代をゆく ─いかに働き、いかに学ぶか (ちくま新書)作者:梅田 望夫筑摩書房AmazonPerfume 〜Complete Best〜 (DVD付)アーティスト:Perfume徳間…

Skype for Linux Video サポート

こっちも video サポート(謎 ついに来ました。使うかどうかは別としてうれしい限りです。 うかれて試そうとしたら写らない…。設定画面でテストしただけだから実際の通話では使えるのかも、試してもいいよという奇特なかたがいらっしゃいましたら skype ID: …

Ajax オブジェクトを自作

Twippera で使うために Ajax オブジェクトを自作していたが、タイムアウト処理がうまくいかず…。 "JavaScript 第5版" に参考になるコードが載っていたので作り直した。 var Ajax = {}; Ajax.request = function(url, callback, options) { var xhr = new XM…

Twitter コミュニケーション・バイブル

twitterコミュニケーション・バイブル作者:菊地 芳枝秀和システムAmazon lomo さんから頂きました。家宝にします。 P.115, 116 に私が作った Twippera が掲載されています。

3桁ごとに区切る

Number.prototype.split3 = function() { var r = ""; var t = this.toString().split('.'); var s = t[0].split("").reverse(); var a = t[1]; for(var i = 0; i < s.length; i++) { if(i % 3 == 0 && i != 0 && s[i] != "-") { r = s[i] + "," + r } else …

preview.del.icio.us が使えるようになったよ

preview に応募していたの完全に忘れていた。 感想 検索が速くなった。といっても前が遅すぎたので普通のレベルになったという程度。 Opera でむちゃくちゃもっさり。 Firefox では普通。 おーこれは新しいっていう機能が見当たらない。

Ubuntu 7.10 を入れた

アップデートマネージャで入れてみる。ダウンロードからインストールまでで半日くらいかかった。 気づいた点 フォントとかテーマとかがまとまった。

定数

@spidermonkey var a = 1; Object.watch.apply(this, ["a", function(p, o, n) { return o; }]); print(a); // 1 a = 2; print(a); // 1 a++ print(a); // 1 a = "hoge" print(a); // 1 お、できた。と思ったら const a = 1; でよかったみたい。 上のコード…

Web Forms2.0 Validation

http://higeorange.com/tmp/testWebForms20-2.html validity オブジェクトあたりを。 element.validity.typeMismatch を調べると type が "url", "e-mail" なんかのときにとても便利だ。 pattern を記述しなくても正しいかどうかを判定できる。 もちろん pat…

Web Forms 2.0 がすごい。

いまさら気づいた。Twippera でも実は使っているというのに…。 http://higeorange.com/tmp/testWebForms20.html Opera で試してね。 参照 WF2 demo - validation

ある数からある数までの配列をつくるの高速化

1 から 10 までの配列は [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] となるがこれを普通に作った場合。 Number.prototype.to = function(e) { for(var i = this, r = []; i <= e; i++) { r.push(i); } return r; } (1).to(100) // 1 から 100 までの配列 たぶん高速化…

再帰足し算

Array.prototype.sum = function() { if(this.length == 1) return this[0]; return this.pop() + arguments.callee.apply(this); } alert([1, 2, 3, 4, 5, 6, 7, 8, 9, 10].sum()); // 55 追記 配列が大きくて再帰しすぎると "too much recursion" とエラー…

無名関数の繰り返し with タイムアウト

(function() { // 処理 setTimeout(arguments.callee, 1000) })() 引数を取る場合 : 0 から順に数字を表示してみる (function(c) { var self = arguments.callee; document.body.innerHTML = c setTimeout(function() { self(++c) }, 1000) })(0)

タスクリスト×はてなスター

以下アイデア。 Twippera の タスクリストを check*pad で管理しているわけだが。*1 この各項目に対してはてなスターで評価できるようになればいいと思った。 別にはてなスターじゃなくてもいいけど。 もっとオープンなタスク管理サービスを使えばいいかなと…

お手軽テンプレート

vim

HTMLを書くときにDOCTYPE とか どの文章でも同じ構造(html, head, body) といちいちかくのはめんどくさい。 そこで html ファイルを新しく作ったときに自動でその辺を挿入してくれると便利だ。 まず, テンプレートファイルを用意 <html lang="ja"> <head> </head></html>

編集中のファイルをブラウザで開く

vim

vimrc に、 nmap ,o :!opera %:p<CR> nmap ,f :!firefox %:p<CR> ずっと悩んでいたものが解決した。 参考 中國機械設備工程股份有限公司</cr></cr>

getElementsByTagName で返ってくるもの

"document.getelementsByTagname('*')" で 返ってくるものは Opera, Konqueror だと "NodeList", Firefox だと "HTMLCollection" のようだ。あんまり変わらないけどね。

キーイベント追加 2

// KeyBinds.js // Author: Higeorange // Licence: MIT var KeyBinds = function(elm, k) { this.elm = elm; this.keybind = {}; for(var t in k) { this.add(t, k[t]); } }; KeyBinds.prototype.expand = function(key) { var keycode; var m = null var s…

キーイベント追加

var KeyBind = {}; KeyBind.add = function(elm, key, func) { var keycode; var m = null; var sp = { "Up" : 38, "Down" : 40, "Right" : 39, "Left" : 37 } if(key) { key.replace(/^(([CSA])-)?(\w+)$/, function($0, $1, $2, $3) { if($2) { m = ({ C :…

配列にプロパティ & メソッドを持たせる。

var Hoge = [1,3]; Hoge.fuga = "foobar" Hoge.print = function(a) { print(this + ":" + this.length); } Hoge.print(); // 1,3:2 Hoge.push(3); Hoge.print(); // 1,3,3:3 Hoge.push(4); Hoge.print(); // 1,3,3,4:4 print(Hoge.fuga) // foobar 配列はオ…

アホなミス

["H", "o", "g", "e"].pop().join(””) // pop() で配列が返ると思い込む。 ["F", "u", "g"].push("a").join("") // push() で配列が返ると思い込む。 こうするるよ。 Array.prototype._pop = function() { this.pop(); return this; } Array.prototype._shif…

コーディングスタイル

var Person = { name : "higeorange", getName: function() { alert(this.name); } } var Person = {}; Person.name = "higeorange"; Person.getName = function() { alert(this.name); }; どっちが見やすい?

今日買った本

ワープする宇宙 5次元時空の謎を解く作者:リサ・ランドールNHK出版Amazon さてどこまで読み進められるか。