Feed on
Posts
Comments

Category Archive for 'JavaScript'

OPMLMaker4tumblr.user.js
ひどいバグを放置してました。すいません。 いまはちゃんと動きます。
内容はタイトル通りです。

These icons link to social bookmarking sites where readers can share and discover new web pages.

These icons link to social bookmarking sites where readers can share and discover new web pages.
  • hatena
  • livedoor
  • google
  • yahoo
  • del.icio.us
  • Digg

Read Full Post »

JavaScript 第5版
この本の読書会。本日読んだところはポップアップ窓やフレーム、ステータスバーの制御といったJavascriptの黒歴史と、DOMとCSS。
ソートの方法、アルゴリズム、IE6はクソで話が盛り上がる。この辺りは参加者のえらい人がまとめてくれるはず。というかソートの方法まとめてください。よろしくお願いします。
CSSはつい昨日までゴリゴリ書いていたので問題なし。 というかこの本Javascript本なのにやけにCSSがまとまってる。バットノウハウがまとまっている本よりこの本の方がいいかもと思えてきた。
IE6はクソの話とCSSの話でおととい完成したWebアプリ をIE6でチェックしていない事を思い出し、VMware経由でチェックしてみた。ややこしい事はしていないつもりだったのに、少々崩れていた。で帰宅して修正。これについては次に書く。
Kanasan最終日なのに懇親会には行けなかった。Kanasanが初めてJavaScript第5版じっくり読んだと言う言葉が印象的。今日の進行は37toさんでした。Kanasanさん今までの進行ご苦労様です。

These icons link to social bookmarking sites where readers can share and discover new web pages.

These icons link to social bookmarking sites where readers can share and discover new web pages.
  • hatena
  • livedoor
  • google
  • yahoo
  • del.icio.us
  • Digg

Read Full Post »

tumblrのfollowingとfollowersからOPMLを作成するGreasemonkeyを作ってみました。車輪の再発明が嫌いで、何か作ると四角い車輪を発明してしまう私としてはかなりいい出来で、自分のコードほぼ0です。$XとGreasemonkeyHacksのfeedcollector.user.jsと前ポストのkuさんのコメントがベースです。
使い方
http://www.tumblr.com/followingを開く
ツール>Greasemonkey>ユーザスクリプトコマンド>Show OPML
で別タブにOPMLが完成します。
ダウンロード
OPMLMaker4tumblr.user.js
[追記]V4に変わって使えなくなっていたので修正しました。
[追記2008/11/29]ひどいバグを報知してました修正済みです。

These icons link to social bookmarking sites where readers can share and discover new web pages.

These icons link to social bookmarking sites where readers can share and discover new web pages.
  • hatena
  • livedoor
  • google
  • yahoo
  • del.icio.us
  • Digg

Read Full Post »

GreaseMonkeyたすけて

www.tumblr.com/followingでのユーザーのRSSをheadタグに勝手に追加しようとしてます。
PLAIN TEXT
JAVASCRIPT:

var all = document.getElementsByTagName("div");

for(var i=0; i <all.length; i++){

  var element = all[i];

  if (element.className == "title"){

    var h = element.innerHTML.match(/["][^"]*["]/).toString();

    var t = element.innerHTML.match(/.*">([^<>]*)<\/a>.*/).toString();

    var link = document.createElement("link");

    link.rel  = "alternate";

    link.type = "application/rdf+xml";

    link.title = t;

    link.href = h + "rss";

    document.getElementsByTagName("head")[0].appendChild(link);

  }

}

なぜかうまくいきません。助けてください。

These icons [...]

These icons link to social bookmarking sites where readers can share and discover new web pages.
  • hatena
  • livedoor
  • google
  • yahoo
  • del.icio.us
  • Digg

Read Full Post »

前回の文章があまりにも解りにくいので再投稿。
Googleの検索結果にTumblrのFollowingしている人へのリンクを表示しなくするGreaseMonkeyです。
site:tumblr.com おっぱい
とかで新しいFollowingを探している人に便利です。すでにFollowingしている人へのリンクは表示されなくなります。
使い方

http://www.tumblr.com/following のページを表示します。
ツール>GreaseMonkey>ユーザスクリプトコマンド>Add Your Tumblr FollowingでFollowingを追加します。
googleの検索結果にFollowingへのリンクが表示されなくなります。

ダウンロードはこちら
nl4gr.user.js

These icons link to social bookmarking sites where readers can share and discover new web pages.

These icons link to social bookmarking sites where readers can share and discover new web pages.
  • hatena
  • livedoor
  • google
  • yahoo
  • del.icio.us
  • Digg

Read Full Post »

初めてのGreaseMonkey

JavaScriptの勉強をかねてはじめてGreaseMonkeyを作ってみました。
内容はGoogleの検索結果にリンクをつけないurlを登録できるというものです。 用途としてはtumblrのfollowする人を探す際にgoogleで「site:tumblr.com キーワード」をよく使うのですが、followしている人が増えてくると検索結果にはすでにfollowしてる人が表示されるのでそれらへのリンクを省くというのを意図してみました。
http://www.tumblr.com/followingのページでユーザースクリプトコマンド>Add Your Followingをすると、その人たちへのgoogle検索結果からのリンクは表示されなくなります。ゆくゆくは「http://b.hatena.ne.jp/entry/」とかの私にとってはスパムページもリンク削除できたりURLリストを簡単に編集できればと思っています。自分以外の人が使うことを考慮に入れたコードができれば、登録してみたいなぁ。
PLAIN TEXT
JAVASCRIPT:

// ==UserScript==

// @name           NL4GR

// @namespace      http://wwwaku.com/greasemonkey

// @description    add url for having no link of google result

// @include        http://www.google.*/*

// @include        http://www.tumblr.com/following

// ==/UserScript==

var a = document.getElementsByTagName('h2');

var nl4gr = GM_getValue("NL4GR").split(" ");

for (var i = 0; i <a.length; i++){

  var element [...]

These icons link to social bookmarking sites where readers can share and discover new web pages.
  • hatena
  • livedoor
  • google
  • yahoo
  • del.icio.us
  • Digg

Read Full Post »

初めてのJavaScript

いままで、bookmarkletとか、googlemapとかはいじって使えるものはつくったことがあるのですが、そういえばフルクラッチしたことがないとので、作ってみました。
内容はtumblrのすでにfollowingしているサイトをはぶいたgoogle用検索文を作ると言うものです。
PLAIN TEXT
JAVASCRIPT:

var all = document.getElementsByTagName("div");

var elements = "";

for(var i=0; i <all.length; i++){

  var element = all[i];

  if (element.className == "username"){

    var h = element.innerHTML.match(/["][^"]*["]/).toString().slice(8,-2);

    elements = elements + "-site:" + h + " ";

  }

}

alert("site:tumblr.com " + elements);

6行目あたりがかなり不細工な感じです。おまけに2000人弱 followingしているので、出てくる検索文がgoogle様に通用しないという代物でした。次はグリモンに挑戦したいと思っているのですが、グリモンって設定ファイルを読み込んでそれに応じて反応するみたいなことはできるのでしょうか?

These icons link to social bookmarking sites where readers can share and discover new [...]

These icons link to social bookmarking sites where readers can share and discover new web pages.
  • hatena
  • livedoor
  • google
  • yahoo
  • del.icio.us
  • Digg

Read Full Post »

Bookmarkletを比較

gelatoとtumblrとsoupのbookmarkletを比較してみた。
soupのものが70x70以上の画像のurlを渡しているのでいい感じ。
gelato
PLAIN TEXT
JavaScript:

var w;

setTimeout('w.focus()',100);

w=window.open('http://localhost/gelato/admin/bm.php?url='

+encodeURIComponent(location.href)

+'&amp;sel='

+encodeURIComponent(window.getSelection()),

'bookmarklet',

'toolbar=0,resizable=0,status=1,width=650,height=460,dependent=yes' );

w.focus();

tumblr
PLAIN TEXT
JavaScript:

var d=document,

w=window,

e=w.getSelection,

k=d.getSelection,

x=d.selection,

s=(e?e():(k)?k():(x?x.createRange().text:0)),

f='http://www.tumblr.com/share',

l=d.location,

e=encodeURIComponent,

p='?v=3&amp;u='+e(l.href) +'&amp;t='+e(d.title) +'&amp;s='+e(s),

u=f+p;

try{

if(!/^(.*\.)?tumblr[^.]*$/.test(l.host))

throw(0);

tstbklt();

}

catch(z){

a =function(){

if(!w.open(u,'t','toolbar=0,resizable=0,status=1,width=450,height=430'))

l.href=u;

};

if(/Firefox/.test(navigator.userAgent))

setTimeout(a,0);

else a();

}

void(0)

soup
PLAIN TEXT
JavaScript:

var html=function(n){var x=document.createElement('div');x.appendChild(n);return x.innerHTML;},

d=document,

w=window,

di=d.images,

dom=d.location.href.match(/(.*)\/.*$/)[1],

i='';

for(var n=0;n<di.length;n++){>

if(di[n].offsetWidth*di[n].offsetHeight&gt;70*70)

i+=di[n].src.replace(dom, '@@')+'|'+di[n].offsetWidth+'|'+di[n].offsetHeight+',';

}

var s1=w.getSelection,

s2=d.getSelection,

s3=d.selection,

sel=s1?(s1()&amp;&amp;s1()!=''?html(s1().getRangeAt(0).cloneContents()):''):s2?s2():s3?s3.createRange():'';

var e=encodeURIComponent,

u='http://www.soup.io/bookmarklet',

q='?v=4&amp;u='+e(d.location.href)+'&amp;t='+e(d.title)+'&amp;s='+e(sel)+'&amp;dom='+e(dom)+'&amp;i='+e(i),

r=u+q,

x=function(){

if(!w.open(r,'soup','toolbar=0,resizable=1,scrollbars=yes,status=1,width=450,height=400'))

location.href=r

};

if(/Firefox/.test(navigator.userAgent)){

setTimeout(x,0)

}

else{

x()

}

void(0);

These icons link to social bookmarking sites where readers can share and discover new web pages.

These icons link to social bookmarking sites where readers can share and discover new web pages.
  • hatena
  • livedoor
  • google
  • yahoo
  • del.icio.us
  • Digg

Read Full Post »

JavaScriptって配列の中に関数が込めるので、他人のソース読んでると入れ子入れ子でしんどい。今回ちょうどその辺りの読書会だったのでこの読書会が終わればより読みやすくなるのかと思いきや、より悩ましいものが増えた。
arguments 使えるようになるかなぁ。引数の個数間違ってくれたらエラーはいてくれるほうが脳味噌がすっきりする。設計決まってなかったらとりあえずarguments使うとかの実力がほしい。
カリー化 p140の例8-5の後半はいまだに何をしているのか意味が解らない。カリー化はこういう問題の処理の時に使うのよという例題が欲しい。
その前の章のpush()とかpop()とかは6809のアセンブラをいじっていた25年ぐらい前を思い出した。コピペで移動するよりもスタック使ってプッシュするほうがデータ移動は早いとか何とかを思い出した。
今回の収穫は生airと生touchを見れたこと。

JavaScript 第5版

These icons link to social bookmarking sites where readers can share and discover new web pages.

These icons link to social bookmarking sites where readers can share and discover new web pages.
  • hatena
  • livedoor
  • google
  • yahoo
  • del.icio.us
  • Digg

Read Full Post »

JavaScript

今JavaScript勉強しています。
理由
tomblooを改造したくなったから
やってること
JavaScript 第5版を関数のところまで読んだ
IT戦記を一通り目を通した <= いまここ
困ってること
tombloo読んでたらXPCOMって言うのがでてきて理解できるいい情報源がまだない
JavaScript関数をデータにほおりこめたり、入れ子になりすぎて読みづらい
その前
ShareOnTumblrは読んで改造できた
もう一つ前
GoogleMAPが出たときにさっそく使ってみて、はてなマップのコード見て改造した
ちょっと前にはてなマップ見たらフレームワーク使ってて理解を超えた
目標
prototypeとscript.aculo.usを理解 <= Railsで使われているから
mochikitを理解 <= tomblooに入ってたから

These icons link to social bookmarking sites where readers can share and discover new web pages.

These icons link to social bookmarking sites where readers can share and discover new web pages.
  • hatena
  • livedoor
  • google
  • yahoo
  • del.icio.us
  • Digg

Read Full Post »

サイ本読書会へ行ってきた

サイ本の読書会。はじめての参加だったけど、知らずうちにRSS登録をしていたamachangさんとかnantoさんとか有名どころが来ていてびっくり。
内容
盛り上がりすぎて禁ワードになった言葉を列挙しときます。これで雰囲気を想像してください。ここに動画があります。

「式」と「文」
「;」セミコロン
JavaScript

会場の雰囲気

こんな感じで読書、ではなくて最後の記念撮影風景
失敗事項
甘いものが中央に並ぶ読書会だったのですが、チョコレート食べ過ぎた。
ギークの飲み物はDr.Pepperだろと多い目に持ち込んだのですがいまいちウケ悪く。
function(a,b){return a-b}がなんで数字の並べ替えに使えるのか質問し逃した。
感想
このような読書会でもなければあんな分厚い本精読するわけがないのでいい機会。
懇親会も盛り上がった。安かったけどおいしくはなかった。
JavaScriptの仕様をすらすらと語るnantoさんに「どうやって勉強したんですか?」と聞いてみたところ「2chのJavaScriptスレに張り付いてあがる質問を自分で解いていた。レスするわけではなかったけど。一通り行けるかなとおもったころで仕様書を読み始めた。」と感動する答えをいただく。
グローバル変数を使ってる私はヘタレだと再認識。
今回得たリンク
http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/
http://www.omegat.org/
http://billyreisinger.com/jash/index.html
http://coderepos.org/share/wiki/JSDeferred
サイ本

JavaScript 第5版

These icons link to social bookmarking sites where readers can share and discover new web pages.

These icons link to social bookmarking sites where readers can share and discover new web pages.
  • hatena
  • livedoor
  • google
  • yahoo
  • del.icio.us
  • Digg

Read Full Post »

ShareOnTumblrというすばらしい機能にインスパイアされてhttp://suakx.jpをリニューアルしていたのですが、やっとのことでShareOnSuakxが完成しました。(まだテスト中)
まだ、リンクとクォートしかできていないのですが、それでも便利になったと思います。
作ってみてわかったのですが、 http://suakx.jpのばあいタグ付けというか、建築名と投稿の関連つかないとあまり意味がないわけです。今回は投稿後、好きなタイミングでつけられるようにしたのはいいのですが、tumblrにタグ付けがない意味も解った気もします。
欲しい方は、http://suakx.jpでユーザ登録してもらって、そのメアドからこのドメインの.comより手前の部分@gmail.comまでメールください。

These icons link to social bookmarking sites where readers can share and discover new web pages.

These icons link to social bookmarking sites where readers can share and discover new web pages.
  • hatena
  • livedoor
  • google
  • yahoo
  • del.icio.us
  • Digg

Read Full Post »