http://d.hatena.ne.jp/strange/20051027#p1
しば氏のエントリを見て、なるほどとおもってみたので書いてみた。
たぶん、こういう物は既に有るだろうが。


Hello Grease Monkey

//newfrienddiarymod.user.js
// 一応UTF-8に変換してつかってね

// ==UserScript==
// @name           new friend diary mod
// @namespace      http://d.hatena.ne.jp/zim/
// @description    new friend diary mod
// @include        http://mixi.jp/new_friend_diary.pl
// ==/UserScript==

// mixi の新着マイミク日記を以前の雰囲気に再現します、時刻がとれません
// Ajaxを使っているので動作が非同期で重い
// Hello worldとして作っただけで、俺も使ってはいません
// 野地 尚弘 http://d.hatena.ne.jp/zim/

// "Javascript".replace()等の日本語のとおらなさは異常

(function() {
//関数群
function reload_List(){ //DIV箱にidListとHtmlListを元に描画
  idList.sort().reverse();
  html = "";
  for(i=0; idList.length>i; i++) html = html + listHtml[idList[i]];
  document.getElementById("out").innerHTML =  html;
}
function toDiaryList(request, user_name) { //ajaxレスポンスを整形&配列に投入、配列更新 > HTML再描画
    var data = request.responseText;
    _dataList = data.match(/<div.*?<\/div>/g); 
    for(i=1; _dataList.length>i; i++){ //※i=1 1行目はゴミ
      _id = _dataList[i].replace(/<div.*?id=/, '').replace(/&owner_id=[0-9]+">.*?<\/a><\/div>/,'') ;
      listHtml[_id] = _dataList[i].replace(/<div.*?>/,'').replace(/<\/div>/,'').replace(/<img.*?>/,'') + user_name + "<br>";
      idList[idList.length] = _id;
    }
    reload_List(); 
}
function requestNewDiary(user_id,user_name) { // ajaxインスタンス生成(this) > 配列更新 toDiaryList()  > HTML再描画 reload_List()
    var url = '/ajax_new_diary.pl'; 
    var myAjax = new Ajax.Request( url, { method: 'get',parameters: 'friend_id=' + user_id,onComplete: function (request) { toDiaryList(request,user_name);} } );
}


//UID等を /new_friend_diary.pl から集める、とても汚い実装(笑い
uidList = document.body.innerHTML.match(/owner_id=[0-9]+/g); 
for(i=0;uidList.length > i;i++) uidList[i] = uidList[i].replace(/owner_id=/,''); 
nameList = escape( document.body.innerHTML ).match(/view_diary\.pl.*?%0A/g);
for(i=0;nameList.length > i;i++) nameList[i] = unescape( nameList[i].replace(/.*%3C\/a%3E%20/,'') );

//既存のテーブルを適当にツブしてDIV箱を作る
document.body.innerHTML = document.body.innerHTML.replace(/<!-- end: page link -->[\s\S]*<!-- start: page link -->/g, '<div id="out" align="left"></div>'); 

var idList = new Array(); // 日記IDのリスト(ソートと数数え用)
var listHtml = new Object(); // 日記ID毎の表示HTML

for(i=0;uidList.length > i;i++) requestNewDiary(uidList[i],nameList[i]);  // リクエスト実行 

})();


Javascript正規表現がもっとマトモに動けばさらさら書けるのに、挙動がおかしい*1ので弱った。
後、動作がメチャクチャ遅いのは、再描画がなんどもなんどもなんd 呼ばれるからなので、一度にすべきだ*2

*1:何故か脈絡無くNullが返ってきたり…

*2:俺はステートフルなウェイトを入れるのが面倒だったので