:::

yam天空部落-影音分享下載器(IE版)

布丁布丁吃布丁

yam天空部落-影音分享下載器(IE版)

image

大年初一,終於把yam天空部落影音下載器做調整了。

檔案下載(SkyDrive備份 ),請在本機電腦上用IE瀏覽器直接開啟使用吧。以下是原始碼:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>yam天空部落-影音分享下載器</title>
</head>
 
<body>
<script type="text/javascript" src="http://puddingchen.35.googlepages.com/jquery.js"></script> 
<h1 style="margin:0 auto 0 auto;width:400px;"><a href="http://www.yam.com/" target="yamBlog" style="float:left;"><img src="http://blog.yam.com/i/header/logo.gif" title="yam天空部落" border="0" /></a>影音分享<br />
下載器</h1>
<div id="yam-video-download"> 
<style type="text/css"> 
#yam-video-download div.tip {
    font-size: small;
    color:gray;
}
#yam-video-download div.check-flag {
     color:white;
     background-color:#FF0000; 
     font-size: large;
     padding: 2px 5px;
     margin: 2px auto;
     border: 1px solid gray; 
     width: 200px; 
     text-align:center; 
     display:none; 
} 
#yam-video-download #outputID_yvd div.content {
    font-size: 1em;
} 
#yam-video-download #outputID_yvd div.content span.deleter { 
    color:gray; 
    border: 1px solid gray; 
    /*background-color:gray;*/ 
    font-size: smaller; 
    width: 12px; 
    display:block; 
    float:left; 
    text-align:center; 
    padding: 0 2px; 
    /*font-weight:bold;*/ 
    font-family:Arial, Helvetica, sans-serif; 
    cursor:pointer; 
    margin-right: 0.5em; 
} 
#yam-video-download #outputID_yvd div.content a.downloader,
#yam-video-download #outputID_yvd div.content a.win, 
#yam-video-download #outputID_yvd div.content span.title-copy { 
    /*border: 1px solid gray; padding: 2px; font-size: small; background-color:gray; color:white; */
     text-decoration:underline; 
     color:#0099FF; 
     cursor:pointer;
     margin-right: 0.5em; 
} 
#yam-video-download #outputID_yvd div.content a.downloader {
    /*background-color:#0066FF;*/ 
} 
#yam-video-download #outputID_yvd div.content span.title-copy { 
    /* font-size: smaller; color:gray; border:1px solid gray; text-decoration:none; margin: 5px;*/ 
}
#yam-video-download #outputID_yvd div.content span.waiting { 
    margin-right: 0.5em; cursor:wait; 
} 
#yam-video-download #outputID_yvd div.content .mouseover { 
    color:blue !important; 
    text-decoration:none !important; 
} 
</style> 
<div class="tip">※本程式使用JavaScript跨網域取得資料的低安全性設定運作,<strong>Internet Explorer</strong>之外的瀏覽器可能無法使用。</div>
<form onsubmit="jQuery('#startParsing').click();return false;">
<script type="text/javascript"> 
if (!jQuery.browser.msie) 
    jQuery("#yam-video-download div.tip").css("color", "red"); 
</script> 
<label for="inputID_yvd" style="display:block;">
<p>請輸入<strong style="color:#0066CC">yam天空部落-影音分享</strong>的網址</p>
  </label>
 
<button type="button" style="font-size: 20pt;font-weight:bold;margin: 0 0.5em;height: 1.5em;" onclick="yamVideoParsing('inputID_yvd', 'outputID_yvd', 'check-flag')" id="startParsing">分析</button>
  <input id="inputID_yvd" type="text" style="font-size: 20pt;width: 80%;height: 1.5em;" value="http://mymedia.blog.yam.com/m/" onfocus="this.select()"onchange="jQuery(this).nextAll('button:first').click()" />
<p style="margin:0;padding:0;color:gray;">(以<strong>http://mymedia.blog.yam.com/m/</strong>或<strong>http://mymedia.yam.com/m/</strong>開頭)</p>
<div class="check-flag" style="display:none;">網址有錯!請檢查!</div>
<div id="outputID_yvd"></div>
 
<!-- http://mymedia.yam.com/mp3player2.swf?pID=2195446 -->
<!--
<div class="playerMP3" style="display:none;">
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="450" height="120" id="main2Flash" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="" />
<param name="quality" value="high" />
<param name="bgcolor" value="#ffffff" />
<embed src="" quality="high" bgcolor="#ffffff" width="450" height="120" name="mymovie" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>
</div>
-->
<textarea class="playerMP3" style="display:none"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="450" height="120" id="main2Flash" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="" />
<param name="quality" value="high" />
<param name="bgcolor" value="#ffffff" />
<embed src="" quality="high" bgcolor="#ffffff" width="450" height="120" name="mymovie" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object></textarea>
 
<!-- http://mymedia.yam.com/flvplayer.swf?pID=2416365 -->
<textarea class="playerFLV" style="display:none"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="450" height="368" id="main2Flash" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="" />
<param name="quality" value="high" />
<param name="bgcolor" value="#ffffff" />
<embed src="" quality="high" bgcolor="#ffffff" width="450" height="368" name="mymovie" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object></textarea>
 
<script type="text/javascript"> 
//jQuery("#yam-video-download button").click(); 
 
//for test
    //jQuery("input#inputID_yvd").val("http://mymedia.yam.com/m/2416365");
    
function yamVideoParsing(inputID, outputID, checkClass) 
{ 
    var url = jQuery("#"+inputID).val(); 
    var checkURL = new Array; 
    checkURL[0] = "http://mymedia.blog.yam.com/m/"; 
    checkURL[1] = "http://mymedia.yam.com/m/"; 
    var checkFlag = false; 
    for (var i = 0 ; i < checkURL.length; i++) { 
        var c = checkURL[i]; 
        if (url.substr(0, c.length) == c) { 
            checkFlag = true; break;
        }
    } 
    if (checkFlag == false) { 
        jQuery("."+checkClass).css("display", "block"); 
        return; 
    } 
    else { 
        jQuery("."+checkClass).css("display", "none"); 
    } 
    //example: http://mymedia.yam.com/m/2425018 
    var mID = url.substring(url.lastIndexOf("/m/")+3,url.length); 
    if (jQuery.trim(mID) == "")
    {
        jQuery("div.check-flag").show();
        return;
    }
    //jQuery("#"+outputID).prepend(mID); 
    if (jQuery("#"+outputID+" div.content[title="+mID+"]").length != 0) 
        return; 
    //建立容器 
    var content = jQuery("<div title='"+mID+"' class='content'></div>"); 
    var deleter = jQuery("<span class='deleter'>×</span>") 
        .click(function() { 
            jQuery(this).parents("div.content:first").remove();
         })
        .hover(function() { 
            this.style.backgroundColor = "gray"; 
            this.style.color = "white"; 
            },
            function() { 
            this.style.backgroundColor = "white"; 
            this.style.color = "gray"; 
            }); 
    var downloader = jQuery("<a class='downloader'>下載</a>") 
        .hover(function() { 
            jQuery(this).addClass("mouseover"); 
        },
        function() { 
            jQuery(this).removeClass("mouseover"); 
        })
        .hide(); 
    var win = jQuery("<a href='"+url+"' target='_blank' class='win'>開啟網頁</a>");
    
    /*var preview = jQuery("div.playerMP3").clone()
        .addClass("preview")
        .show();
        preview.children("param[name=movie]").val("http://mymedia.yam.com/mp3player2.swf?pID=" + mID);
        preview.children("embed").attr("src","http://mymedia.yam.com/mp3player2.swf?pID=" + mID);
    */
    /*
    var previewURL = "http://mymedia.yam.com/mp3player2.swf?pID=" + mID;
    var previewPlayer = jQuery("textarea.playerMP3").val();
        
        //previewPlayer.replace('<param name="movie" value="" />', '<param name="movie" value="'+previewURL+'" />');
        //previewPlayer.replace('<embed src="" quality="high"', '<embed src="'+previewURL+'" quality="high"');
        previewPlayer = strReplace(previewPlayer, '<param name="movie" value="" />', '<param name="movie" value="'+previewURL+'" />');
        previewPlayer = strReplace(previewPlayer, '<embed src="" quality="high"', '<embed src="'+previewURL+'" quality="high"');
        alert(previewPlayer);
    var preview = jQuery("<div class='preview'></div>")
        .html(previewPlayer);
        //preview.children("param[name=movie]").attr("value", previewURL);
        //preview.children("embed").attr("src", previewURL);
    */    
    var preview = jQuery("<div class='preview'></div>");
        
    var titleCopy = jQuery("<span class='title-copy'>複製標題</span>") 
        .click(function () { 
            var t = jQuery(this).nextAll("span.title").html(); 
            window.clipboardData.setData('Text', t); }).hide(); 
            var title = jQuery("<span class='title'>test</span>").hide(); 
            var waiting = jQuery("<span class='waiting'>"+mID+"分析中…<img src='http://puddingchen.35.googlepages.com/ajax-loader.gif' /></span>"); 
            content.append(deleter) 
                .append(waiting) 
                .append(win) 
                .append(downloader) 
                .append(titleCopy) 
                .append(title)
                .append(preview); 
            jQuery("#"+outputID).prepend(content); 
            
            //get title 
            jQuery.get(url, function(data) { 
                //var t = jQuery(data); 
                //.find("h1.heading:first").length; 
                //alert(t.find("div").length);
                var header = '<h1 class="heading">'; 
                var footer = '</h1>';
                var t = data.substring(data.indexOf(header)+header.length, data.indexOf(footer));
                
                if (jQuery.trim(t) == "<html>\n<head>\n<titl")
                {
                    errorFlag();
                    content.hide();
                    return;
                }
                
                jQuery("#"+outputID+" div[title="+mID+"]:first span.title:first").html(t) 
                    .show(); 
                jQuery("#"+outputID+" div[title="+mID+"]:first span.title-copy:first").show(); 
                if (jQuery("#"+outputID+" div[title="+mID+"]:first :hidden").length == 0) 
                {
                    jQuery("#"+outputID+" div[title="+mID+"]:first span.waiting")
                        .hide();
                }
                
             }); 
             
             /*
             //get preview
             jQuery.get(url, function(data) { 
                 var header = '<object classid="'; 
                var footer = '</object>';
                var t = data.substring(data.indexOf(header)+header.length, data.indexOf(footer));
                    t = header + t + footer;
                jQuery("#"+outputID+" div[title="+mID+"]:first div.preview:first").html(t).show();
             });
             */
             
             //get link 
             var FileURL = "http://mymedia.yam.com/api/a/?pID=" + mID; 
             //example: http://mymedia.yam.com/api/a/?pID=2425018 
             jQuery.get(FileURL, function(data) { 
                 //var t = jQuery(data); 
                //.find("h1.heading:first").length; 
                //alert(t.find("div").length); 
                var isFlv = false;
                if (data.indexOf('mp3file=') != -1)
                {
                    var header = 'mp3file='; 
                    var footer = '&totaltime='; 
                    
                    var previewURL = "http://mymedia.yam.com/mp3player2.swf?pID=" + mID;
                    var previewPlayer = jQuery("textarea.playerMP3").val();
                        previewPlayer = strReplace(previewPlayer, '<param name="movie" value="" />', '<param name="movie" value="'+previewURL+'" />');
                        previewPlayer = strReplace(previewPlayer, '<embed src="" quality="high"', '<embed src="'+previewURL+'" quality="high"');
                }
                else if (data.indexOf('&furl=') != -1)
                {
                    isFlv = true;
                    var header = '&furl='; 
                    var footer = '&hidecode=';
                    
                    var previewURL = "http://mymedia.yam.com/flvplayer.swf?pID=" + mID;
                    var previewPlayer = jQuery("textarea.playerMP3").val();
                        previewPlayer = strReplace(previewPlayer, '<param name="movie" value="" />', '<param name="movie" value="'+previewURL+'" />');
                        previewPlayer = strReplace(previewPlayer, '<embed src="" quality="high"', '<embed src="'+previewURL+'" quality="high"');
                }
                
                var t = data.substring(data.indexOf(header)+header.length, data.indexOf(footer)); 
                
                
                jQuery("#"+outputID+" div[title="+mID+"]:first a.downloader:first")
                    .attr("href", t) 
                    .show(); 
                jQuery("#"+outputID+" div[title="+mID+"]:first div.preview:first").html(previewPlayer);
                if (isFlv == true)
                    jQuery("#"+outputID+" div[title="+mID+"]:first div.preview:first object").height("368px");
                if (jQuery("#"+outputID+" div[title="+mID+"]:first :hidden").length == 0) 
                    jQuery("#"+outputID+" div[title="+mID+"]:first span.waiting")
                        .hide();
                 }); 
            } 
            
    function errorFlag()
    {
        jQuery("div.check-flag").show();
    }
    
    function strReplace(str, oldText, newText)
    {
        var temp = str.split(oldText);
        if (temp.length > 1)
        {
            str = temp[0] + newText + temp[1];
        }
        return str;
    }
    </script>    
</div>
</form>
<hr style="margin-top: 1em;" />
<p style="text-align:center;">
版本:<strong style="color:Red">20090126 大年初一</strong> | 程式寫作:<a href="mailto:puddingchen.35@gmail.com">布丁布丁吃布丁</a> | 出處:<a href="http://pulipuli.blogspot.com/2008/11/yam-ie.html">布丁布丁吃?</a> | 資料來源:<a href="http://www.yam.com/">yam天空部落</a><br />
<span style="font-size:small;">本程式僅是利用yam天空部落的程式碼做轉換、分析的動作,並不能確認資料本身是否符合智慧財產權。使用本程式下載任何資料,並不代表本程式立場。</span>
</p>
</body>
</html>


我只是想試試看jQuery的AJAX功能,就改進了以前的yam天空影音分享下載器,取代原本要用PHP去擷取網頁內容的困擾。

壞消息是只有IE在本機端以檔案的方式開啟,才能使用客戶端跨網域取得網頁內容的功能。好消息是這功能其實是比較不安全,不能方便地使用也好。原本我是打算直接寫在Blog裡面,結果發現只要是非本機的情況下,就不能使用跨網域取得網頁內容,這也算是一個收穫吧。

順便測試一下Windows Live Writer插入程式碼的外掛效果如何。事實證明,Insert Code for Windows Live Writer挺不賴的,感謝瓶水相逢.NetInsert Code for Windows Live Writer 1.0.5 Beta - 加入捲軸功能 (20080427 修正),但如果加上一個只有y軸的捲軸就更完美了。

(more...)

計畫書準備期間,每週Meeting報告投影片

布丁布丁吃布丁

計畫書準備期間,每週Meeting報告投影片

image

回頭看看,我大概是10月中才開始正式地準備計畫書,到目前大概一個月多了,到昨天meeting時陳老師才覺得可以開始撰寫計畫書。雖然老師都這樣說了,我還是覺得少了點東西,遲遲一直無法下筆(壞毛病)。想說乾脆來整理一下之前為計畫書而製作的投影片,不知道是否會有些較為具體的想法出現。

一開始,我的論文題目是「數位圖書館閱讀標註知識萃取方法之研究」。到最後不僅變成「讀者閱讀標註知識萃取方法之研究與應用」,而內容也跟圖書館脫節了。究竟到底是怎麼演變的,以下就回顧看看吧。

2008年11月6日 研究方向確認與計畫書撰寫

當時我打算直接一次就把計畫書寫完,於是閱讀了標註應用於數位圖書館的相關文獻,規劃了一套數位圖書館上應該有的標註功能,結合協同過濾的方法,將適合讀者的標註推薦給讀者,以節省讀者自行標註的時間。

老師跟學長的評語是「這樣讀者收到的標註,都是差不多興趣的標註,無法開闊眼界,這樣子不叫做『知識萃取』。」

好個知識萃取!但這種概念太過抽象,當晚跟老師討論到半夜12點才離開(我們都是晚上6點開始meeting的),這之間我們交換了許多可行及不可行的想法。

討論的結論是,我需要閱讀更多文獻,來看看大家認為標註中的「知識」到底是什麼。

2008年11月13日 數位圖書館社會指引式段落推薦系統究

在找尋文獻的時候,我發現有一些人在研究不同人的標註與標註之間重疊的情況,他們稱之為「標註共識(Annotation consensus)」,可用於指出文獻重點、萃取文獻重要知識。而這種大家意見相同、做同樣的事情的情形,有種專有名詞統稱為「社會指引支援(Social Navigation Support,簡稱SNS)」。而SNS常見應用於推薦之用,我也找了幾篇相關文獻來看看大家是怎麼用SNS的。

最後的結論,就是將標註共識發展成段落推薦系統,並以社會指引支援的研究方法,來幫助數位圖書館提供資訊過濾、資源推薦的功能。

陳老師的評語是:「要先有教學成效,再來評估使用行為。」而否定了這個提案。我與老師討論了一下教學與圖書館典藏傳播概念之矛盾之處,不過老師仍執意往教學成效發展。

於是我的論文從一開始資工的自然語言分析,逐漸橫跨到了教育學的領域。

2008年11月19日 研究方法論文報告進度回顧

當天我們上的是研究方法課程,在楊老師的課表當中,我們這幾個碩二的學生負責報告自己的研究內容,以供學弟妹們參考。計畫書連一個字都還沒開始寫的我,還是把對於標註的了解、知識,以及跟陳老師討論的狀況,做了一個簡單的分享。儘管最後因為時間不足而沒有報告,不過這一個投影片還是簡單扼要地把之前的想法整理了一下。

2008年11月20日 由學習理論看標註學習

當時我先找尋了社會指引支援相關文獻,讀了讀發現大家著眼點不同,難以聚焦。接著想到之前提案中,有提到把大家的知識當同儕比較,於是又看了一下同儕比較教學法,但細節牽涉太多人與人的互動,系統難以實作。於是我又往更上層看下去,最後來看看認知心理學裡面的「後設認知」,以此找到了「閱讀策略」這個概念。

如果說,標註能夠保存一個人的閱讀策略,那麼我把大家相同的閱讀策略取出來,作為教導其他人的依據,也可以成為一個有趣的教學系統。

大概是因為談到教學成效的關係,陳老師很中意這種想法。只是詳細的閱讀策略,有待更多的文獻探討。使用標註來教學的文獻這麼多,應該可以讓我找到幾篇經典的吧?

喔、對了,做完這份投影片的感想是,這版型有夠難用,不要用!連擺到Google文件上版型都會跑掉,實在是……

2008年11月27日 研究進度之標註應用學習策略

這份是昨天的報告。我找了一些使用標註策略來進行教學的文獻,其中一篇「教科書標註:一種對大學生有效果且省時的閱讀策略(Textbook Annotation: An Effective and Efficient Study Strategy for College Students)」談到了較為具體的標註策略,以及評鑑用的查核表(checklist)。只是當時作者Simpson跟Nist是用口頭教學,評鑑的方式是由老師說明、學生配對彼此評鑑進行,如果能把這個流程以系統化方式進行,把大家的標註萃取成為評鑑的依據,那麼理論上也能夠提昇學習的成效——當然,我知道Simpson他們的研究重點中,「教師的說明跟引導」其實是決定標註策略成功的關鍵,單靠一個查核表,實際成效有限。而要怎麼把大家的標註轉換成評鑑的依據,我也只有想到幾個簡單的概念,實在是稱不上令人拍案叫絕的資料抽取方法(陳老師很愛這種創新的東西)。

儘管有以上缺憾,陳老師也覺得可以開始進行撰寫計畫書了。最後一張投影片,我把這個教學過程跟數位圖書館的目的做了一些比較,強調了矛盾點與隱憂,老師意外地接受了不適合用於數位圖書館的事實,於是我的論文題目也改成了「讀者閱讀標註知識萃取方法之研究與應用」,變成一個教學策略研究,而跟數位圖書館脫勾。


方法雖然有了,但實際上要如何撰寫,反而讓我感到困惑。不從熟悉的圖書館開始,我要怎麼去陳述我的研究動機、研究目的呢?

我究竟是為什麼要寫這篇論文呢?

我到底是不是圖書館學領域的人呢?

算了,就當作我萬般全能,從圖書館、資料探勘到剛剛接觸不久的教育學領域都可以通吃,就這樣吧。

(more...)

資策會資料中心2008年知識服務3.0—主動、互動、感動感想

資策會資料中心2008年知識服務3.0—主動、互動、感動感想

image 

2008年11月21日,資策會資料中心舉辦了分享會「2008年知識服務3.0-主動、互動、感動」報告資料中心的實務經驗。

由於這場分享會還是著重在於實務分享,所以我們還是先來看看資策會資料中心是個怎麼樣的單位。

2008-11-21-072

資料中心是財團法人資訊工業策進會當中的專門圖書館,館藏以產業市場研究報告、資通訊產業新聞資料、名錄指南年鑑統計資料等為主,提供資策會員工及對ICT產業資料有需求之產學研界人士使用。

資料中心導覽——關於我們裡面如此介紹著:

當您踏入台灣最具規模的資訊產業專門圖書館--資訊資料服務中心、面對琳瑯滿目的參考資料和巿場報告時,該如何找到所需的資料呢?除了親切的館員隨時充當您的導遊外,還可以借由本網頁的導覽,儘快取得您想要的資料

位於台北市敦化南路二段216號9樓的資料中心儘管只有一層樓的空間,在分享會當中介紹的各種服務,卻是相當地精緻、貼近需求。


讓我們回到分享會「2008年知識服務3.0-主動、互動、感動」本身。

本次分享會共有三個講次,除了投影片十分精美之外,投影片用詞也相當偏向商業界,而非圖書館界,例如將讀者稱為「客戶」。

一開始由陳秀霞經理談談資料中心對於知識服務加值創新經營模式的看法。當中提到知識服務應與顧客整體需求整合,而顧客有三種類型的需求:「說得出來」、「說不出來」以及「不想說」,說不出來的例子有如「員工幫主管詢問問題,但員工也不知道主管真正想問的是什麼」;面對「不想說」的需求,陳經理提倡我們應以「感動」來取得客戶的信任,才能得知客戶真正的需求。

然後提到資料中新的組織創新,從人年至人月的mash up模式,館員從「等工作」到變成「搶工作」來作,著實讓人眼睛一亮。企業化的管理方式,讓資料中心的組織架構與以往在課堂中學習的圖書館組織有著相當大的差異。


再來陳經理繼續分享資料中心運用網路資源進行資通訊國家年鑑編撰的案例,用以探討圖書館員新角色與新能力。專案進行中有著專案溝通平台、設計良好的專案執行方法、運作流程,讓館員在執行日常業務時,也能夠抽身專注於專案製作中。

最後一張投影片提出了圖書館員的新能力——專案服務(顧問服務),具體舉例了六種服務:「專案管理」、「資訊需求分析」、「科技運用」、「免費資源掌握與利用」、「資料判讀與分析」、「資料整理與呈現」。雖然這些能力似乎在傳統的參考館員業務當中看到過,但在這六種新能力當中,圖書館員已經由被動等待服務機會,變成主動提供專業服務。

「我本來想問說,館員們本身就有日常業務要忙了,現在還要接這個專案,不會吃不消嗎?」張淳淳老師在最後的Q&A自問自答:「但後來想到你們是採用人月工作計時制,這樣工作量能夠平均分配,就沒有這個問題了。」


最後由林華雯館員分享八個名為「關懷故事」,但在我看來,這卻是相當切中讀者需求的「推廣服務」。這八個關懷故事各別為:

  1. 解決客戶忙碌的問題:部門巡迴
  2. 解決計畫需求及個別問題:部門駐點
  3. 解決沒時間臨櫃借還書的問題:公文車傳送
  4. 解決資源活化的問題:跨部門專案書刊借調
  5. 解決個人專屬資訊的需求:熱門專題服務 (E-mail專題選粹)
  6. 解決蒐集資料耗時的問題:專題Blog建置
  7. 解決短時間內吸收外文新知的問題:You should know (三分鐘精華簡報)
  8. 會外讀者:資策會 資料中心之友

資料中心的服務明確地以資策會同仁為對象設計,硬體面有巡迴駐點、公文車流通,軟體面有專題選粹、專題Blog、精華簡報,難以置信的是,這些皆是由資料中心不到十位館員所提供的服務。專門圖書館的服務竟能如此精深,讓我大開眼界。


短短一個早上,讓人獲益良多。也看到了輔大的同學及老師們,而Q&A綜合座談時間也是由老師們出盡鋒頭,黃元鶴老師搶著提問,還補了句「先讓老師問,學生晚一點」,讓人會心一笑。張淳淳老師幫我把疑惑問了出來,一揭資料中心製作國家年鑑背後想法與未來發展。


2008-11-21-074

分享會之後,我們也去了九樓的資料中心逛了逛,接下來就閒聊一下看到的東西吧。

2008-11-21-071

一進門就看到資策會的歷史,資料中心也有部份負擔起會史館的任務。流線型設計跟燈光能感受到資料中心營造的設計感魅力。

2008-11-21-070

中間是諮詢服務台,圓弧型的設計擺脫了傳統方方正正櫃台的嚴肅感。

image

從資料中新館藏資源配置圖可以看到,諮詢服務台並不是靠牆、角落,或是死守門口看看有沒有人偷書,而是真的擺在資料中心的中間,以便觀察任何需要服務的讀者。

2008-11-21-069

每到一個圖書館都不免俗地觀察一下該館的分類法。資料中心採用杜威十進分類系統(Dewey Decimal Classification,DDC),跟大多數圖書館不同的是,館藏集中在社會學、語言、科技(應用科學)等較為實用取向的分類,總類中還特別強調「電腦科學」、「系統程式」、「人工智慧」等分類,而其他地方常見的8、9在此反而不多。

2008-11-21-064

圖書書標上的索書號也很特別,除了原本的「分類號」、「作者號」之外,還多了「出版年」。我想可能是因為技術的書籍注重新穎性,在書標上即可看到出版年份,這設計實在很貼心。

2008-11-21-067 

看起來很有設計感,但應該不太想久坐的公用電腦查詢處。中間擺放期刊的書架上寫著「資訊神經元」,不知道有沒有特別的涵義?

2008-11-21-068

超厚的資策會出版品,滿滿的資料都是寶藏,相當具有商業氣息啊!

2008-11-21-073

最後離開前再來拍一下這個還書箱,剛剛才寫完國中圖的自動還書分類系統,現在再回來看看這個還書箱,會不會有種比較熟悉的感覺呢?


不知不覺又寫了好久,其實我一開始真的只是想把在資料中心拍的照片介紹一下而已,就順手也把分享會感想寫一寫了。

繼續整理電腦吧

(more...)

當科技遇見國立臺中圖書館

布丁布丁吃布丁

當科技遇見國立臺中圖書館

2008-09-21-145 2008-09-21-144

之前研討會中就聽說國立臺中圖書館(以下簡稱國中圖)有大幅度改進。在上次9月底難得回家的時候,特別跑去國中圖以及即將遷址的地方去看看,開開眼界。

上面照片中的海報「當科技遇見…圖書館」、「圖書借還大躍進」貼在國中圖一樓往二樓的樓梯中,海報上強調兩大特色:「自助借還書系統」跟「彩色書標館藏管理系統」,以下我們就來看看到底是怎麼回事吧。


2008-09-21-139

自助還書口,遠看之下跟以往的還書箱伺服沒什麼差別,還書口背後卻有著龐大的自動分類系統喔!(每次看到開放時間24小時,我總有種畫蛇添足的笑點在)

 2008-09-21-140

還書口右邊神秘的備用還書口!這並不是單純地當還書口塞住時使用的,還可以作為「借了馬上就還」的用處,我猜想這個還書口應該是配合人工作業的吧。而且

image

(圖片引自於周倩如、張惠萍。圖書館自助還書系統(2008))

在書本投入還書口之後,擋板會控制讓書本一本一本地往輸送帶上擺,然後慢慢地往右邊的掃描器下送。在掃描器偵測之後,自動登記圖書歸還,並依照分類號送至不同的書車,以方便稍後上架。

雖然流通櫃台跟自動分類器中間隔了木條隔板,當時我還是在木條隔板的隙縫間看了自動分類器好一陣子,內心感動不已。因為有隔板的關係,這樣想想拍照也不知從何拍起,只好引用文獻的圖片,希望能給大家一點具體的概念。


2008-09-21-142

RFID自助借書機,現在已經不是什麼稀奇的機器了吧?

2008-09-21-141

有趣的是自助借書機旁邊的這個除菌BOX(照片照不太清楚,印象也有點模糊,希望沒記錯),似乎是用紫外線殺菌,讓讀者在自助借書的同時,自助式地幫圖書進行消毒,相當注重衛生。不過不能把視聽資料放進去喔!


2008-09-21-153

2008-09-21-149

接下來讓我們來看看閱覽室,喜歡電腦書的我最常來的就是四樓312.9這區。

2008-09-21-152

書架之間不僅變窄了,而且裡面還堆滿了書,可以感受到國中圖館藏空間的壓力。

2008-09-21-150

書架上面可以看到彩帶般的書標,這就是「彩色書標館藏管理系統」!

 

2008-09-21-151

再來仔細看看這彩色書標是怎麼組合的,以這本「Dreamweaver/UltraDev 4網頁設計實務」為例子,由上而下代表的意義為:

  1. 黃色,分類號第一碼,「3」
  2. 綠色,分類號第二碼,「1」
  3. 藍色,分類號第三碼及小數點,「2.」
  4. 粉紅色,分類號小數點第一位,「9」
  5. 又是綠色,其餘分類號,「1695」
  6. 紅色,作者號,「0858」
  7. 白色,完整索書號,「312.91695 0858」

儘管彩色書標明顯又漂亮,但書背的下面卻也被遮了一大片,作者、出版社往往難以瀏覽找群。這也是一種管理與使用上的取捨吧。


2008-09-21-154

國中圖走廊上飄來陣陣泡麵香……泡麵!?

沒錯,照片中的那個小房間正是可以飲食的茶水間,有著桌椅、飲水機等配備,可供讀者在此飲食。繼「遊民歡迎來圖書館洗澎澎」的淋浴間之後,國中圖又有讓人驚訝不已的貼心規劃。


2008-09-21-157

國立台中圖書館新館模擬設計圖(怎麼「台」跟「臺」都沒有統一啊?),預計民國101年完成遷建。相當具有未來感的建築設計,讓我相當期待看到新館落成。

2008-09-21-155

新館預計位置在台中市五權南路與建成路交叉口。

 2008-09-21-134

2008-09-21-135

我也跑去那邊看了一下,當然,除了圍著「國立台中圖書館遷建用地」的圍欄之外,目前還是什麼都沒有。

2008-09-21-136

國中圖遷建預定地對面就是臺中高等行政法院,順手拍一張。


這篇其實我是先去看預定地,再去看國中圖。不過看了看照片,感覺逆著講回來比較有趣。

這篇遲了兩個月的遊記,就到此為止啦。

(more...)

Textbook Annotation: An Effective and Efficient Study Strategy for College Students

布丁布丁吃布丁

Textbook Annotation: An Effective and Efficient Study Strategy for College Students

image

Simpson, M. L., & Nist, S. L. (1990). Textbook Annotation: An Effective and Efficient Study Strategy for College Students. Journal of Reading, 34(2), 122-29.

摘要

這篇研究討論教科書標註的策略,檢查策略的成效與效率。發現用標註文件來訓練學生,隨著時間經過,可以使學生表現得更好。最後提出實際教學的建議,以應對不同類型的學生。

※註:原文中沒有直接提供摘要,此摘要來自於Textbook Annotation: An Effective and Efficient Study Strategy for College Students. (ERIC,教育資源資訊中心)

大綱

  • 文件標註研究的背景
  • 標註的操作定義
  • 四個研究問題
  • 訓練流程
  • 標註訓練
  • 標註的成效更好
  • 標註是一種積極的學習
  • 實際教學的建議
    • 中世紀僧侶症候群 (Medieval monk syndrome)
    • 沒做事症候群 (The nothin' here syndrome)
    • 停在故事中症候群 (The rest of the story syndrome)
  • 給教師的提示
  • 參考書目

感想

這一篇是由上一篇Recall of Descriptive Information: The Roles of Presentation Format, Annotation Strategy, and Individual Differences的參考書目中找來的。有趣的是,儘管這一篇文獻更直接地講述標註策略(Annotation Strategy),但在Google Scholar裡面卻被擠到第三頁去,可以由此發現系統的缺失。

這份文獻先定義了標註的意義,舉了七個方法:

  1. 用自己的話,把摘要寫在文件邊欄
  2. 列舉多個概念 (例如,原因、影響、特色) 並組成特定的形式
  3. 把概念的例子寫在邊欄處,標註「EX」
  4. 以文字敘述圖表中的關鍵資訊
  5. 記下可能的考試問題
  6. 在覺得被搞混、迷惑的段落旁邊記下「?」問號標誌
  7. 選擇在關鍵文字或詞彙下劃底線

然後在學生能夠使用這七個基本的方法之後,再鼓勵發展他們自己的標註編碼系統。

這七個基本方法給我一個很具體的標註形象,跟之前閱讀的文獻比起來,能夠看到更清楚的系統雛型——儘管我還是不太喜歡讀書學習只是為了考試,但這篇擺明就是為了考試而開發的標註策略還是很有效的。

此外,這份研究以多年教授標註的經驗,整理了一份標註表現稽核表,用於提供學生能夠客觀地檢查自己的標註成果。稽核表中有14項,內容如下:

  1. 你的標註實在很完美!繼續這樣做吧!
  2. 你缺少了很多關鍵概念。回頭重讀吧!
  3. 你需要更專注在關鍵概念上,而不要鑽研細節。
  4. 你需要使用你自己的話——不要抄課本!
  5. 你需要簡化你的摘要——更簡短一些!
  6. 你的標註太多了!挑選重要的標註吧。
  7. 你的底線畫太多了!寫更多摘要在邊欄處吧。
  8. 你需要寫些具體範例。
  9. 你需要發展一套標註的整理組織的方法。
  10. 你需要在邊欄或是文字中列舉具體的特色、功能、線索、影響等等。
  11. 你忽略了圖片說明,標註一下吧。
  12. 你應該開發一些屬於你使用的符號。
  13. 請再標註這些章節或頁數。
  14. 請我(教師)儘快來幫你看看這章節跟你的標註。

最後這份文件提出了三種標註新手類型:中世紀僧侶症候群 (Medieval monk syndrome)、沒做事症候群 (The nothin' here syndrome)、停在故事中症候群 (The rest of the story syndrome),並介紹用公開討論、練習標註來改善這些情況。

儘管這一份文獻很詳細地介紹了實驗過程,但仍然沒辦法完整地表達出教學的過程,這讓沒有教學經驗的我來說事很難想像之後要怎麼進行實驗。

至少目前閱讀的文獻,應該已經足以支撐理論,接下來就可以來發展自己的標註應用於閱讀策略上了。

題外話,這份研究在最後給教師的建議中,把標註是學習的最終手段,而提醒學生其他的策略 (如:整理大綱、下註解、仔細閱讀)都會是多餘的。如果不是我誤解了內文的意思,那麼這話還真的說得蠻有自信的。

(more...)

Recall of Descriptive Information: The Roles of Presentation Format, Annotation Strategy, and Individual Differences

布丁布丁吃布丁

Recall of Descriptive Information: The Roles of Presentation Format, Annotation Strategy, and Individual Differences

image

Moreland, J. L., Dansereau, D. F., & Chmielewski, T. L. (1997). Recall of Descriptive Information: The Roles of Presentation Format, Annotation Strategy, and Individual Differences. Contemporary Educational Psychology, 22(4), 521-533.

  • 標題:回憶敘述性資訊:呈現格式、標註策略與個別差異的角色
  • 原文連結:ScienceDirect
  • PDF標註資料檔案:Google Page Creator (2008年11月24日)

摘要

此研究將有助於理解的標註策略(使用劃線/框框、建立連結、問問題以及新增評論註解) ,應用到知識地圖(空間/語意的陣列)與傳統、線性的文件,來改進不同詞彙與理解能力的學習者的自由回憶分數。

研究也檢查兩種標註類型與建立的頻率在知識地圖、傳統文件兩種情境中的的效果。多重回歸分析(multiple regression analyse)指出,兩種使用策略,包括問問題與建立連結的使用,能夠顯著地預測回憶分數。然而,劃底線(underlining)/框著片段(circling)、建立詳細摘要則無法預測回憶分數。

傳統文件的使用者使用劃底線/框框比較多,儘管知識地圖使用者則是比較擅長建立兩者想法之間的連結,而顯示出知識地圖可以加強標註策略,而使之更有創造力。這篇研究也檢查了詞彙能力、理解能力與自由回憶分數的相互關係。

大綱

  • 摘要
  • 前言
  • 標註文字
  • 知識地圖
  • 研究設計
  • 研究問題
  • 研究方法
    • 參與者
    • 教材
      • 訓練用地圖
      • 刺激教材
      • 個人差異
        • Delta閱讀詞彙測驗
        • 多重媒體理解系列(Multi-Media Comprehension Battery,MMCB)
    • 相依測驗(Dependent Measures)
      • 自由回憶
      • 標註頻率
    • 研究流程
  • 研究結果
    • 計分方式與預先分析
    • 重要分析
  • 討論
    • 標註與格式
    • 自由回憶
    • 個別差異
    • 結論跟涵義
  • 參考資源

感想

原本我想要找關於標註策略的範例而找到這一篇,可惜的是還是有點差別。

此研究使用了四種不同的標註策略,並一一引用先前研究對這些策略的研究。這四種策略個別為:

  1. 畫底線、框框:用以辨識、分開、群組文件中的觀念,用以在之後檢查、連結、提問
  2. 建立連結:連結文件中的資訊
  3. 建立註解:建立詳細敘述的註解(elaborations)
  4. 提問:對不太懂的資訊提出疑問

這些策略是可以用在我的研究理論上,但這真的合適用來作教學策略嗎?我想我還需要參考其他更詳細、更有根據的標註策略。

此外,作者最後用了統計的方式來計算實驗組、對照組在自由回憶分數、標註頻率、標註類型的相關性,其中利用的Delta閱讀詞彙測驗跟MMCB也許可以拿來使用。詳細的測驗方式可能還要再調查一下。

(more...)

一顆橘子

布丁布丁吃布丁

一顆橘子

2008-11-23-075

在過敏症狀快要持續一週的時候,我終於想要積極一點來解決這個問題。看了病、拿了藥、週末遂放任昏迷的精神睡死,買了維他命C跟水果來吃,希望病情能儘快好轉。

「一顆6元。」水果攤老闆將秤好的橘子交給我,我從包包裡掏出一個五元跟一個一元給老闆。

只見一旁的學弟笑笑的,我問他怎麼了,「只買一顆好奇怪喔」他這樣回答。

我才發覺,一個人買一個橘子,跟全家人買好幾顆橘子,就會有這種差別。


隨著實驗室的人越來越多,我想我的行為模式也逐漸改變中。

中午要吃飯的時候,不再是一個人趕在12點大家下課之前去悠閒地吃飯,而是等待大家下課,慢慢地一邊聊天一邊上山,然後在下午上課之前回到這邊來吃。

因為有趣味相同的人在,我也比較有對象可以聊天,而不是只是在網路上用鍵盤講話。

實驗室還是多一些人比較熱鬧,對吧?下次再買很多橘子,帶回來跟大家一起吃吧。

(more...)

已經是計畫書口試的季節了

布丁布丁吃布丁

已經是計畫書口試的季節了

image

前言:該回來Blogger了

由於最近習慣把閒聊都移到Plurk上,所以很少在Blog這邊寫些閒聊的話。儘管我在Blogger右方裝了Plurk的插件,但總覺得一句話、一句話凌亂的記錄,還是很難看出個整體脈絡。這樣下次,似乎離「布丁的研究之路」會「越來越遠」了呢。

那麼就來回顧一下最近所上的熱門話題:「計畫書口試」吧。

計畫書的問候

如果說政大圖檔所碩二學生有固定的打招呼方式,那麼「你計畫書寫到第幾章了?」「可以提口試嗎?什麼時候要提?」一定可以列入熱門排行榜當中。

政大圖檔所是兩段式論文:第一階段是計畫書口試,在這裡為你的研究計畫進行把關;第二階段是畢業論文口試,則是針對你的研究結果進行檢查。而這兩個階段必須間隔6個月。由於我們每一學期是從8/1開始計算,扣掉論文還要修改的時間,往前推算六個月,大概是12月底之前需要完成計畫書口試。

在目前已經接近11月底的現在,我們班大概已經有三分之一的同學已經完成了計畫書口試。

P1010638

昨天我幫同學口試做記錄,準備佈置口試會場就像是宴會一樣,有蛋糕、水果、茶、咖啡,其實還蠻有趣的。看著同學緊張又期待的表情,聽著口委老師們的建議與討論,會後我們也繼續討論著論文修改的方向,發現她的論文可以越來越有使用價值,一切都是這麼地有趣。

沒意外的話,我應該會延畢

雖然我的計畫書口試時間排定在12/3(三),但照這種情況跟進度看下來,沒意外的話應該會延畢。

儘管這樣好像是在找藉口一樣,但從10月中旬才開始著手進行計畫書相關研究的我,遠遠比不上從8 9月暑假或是更早的同學們的速度。一學期11學分、努力擺脫計畫的糾纏、作法不明的題目,都再再地顯示著難以如期畢業的徵兆。

但是,與其說是這些外在因素的影響,不如說這比較像是我個人的問題。我現在仍然在文獻探討,從一篇又一篇的文獻中,找出我所需要的理論與技術。以往在課堂上讀研究論文時帶有著莫名的排斥感,在現在找尋自己需要的資訊時,卻轉成「站在巨人的肩膀上」的喜悅。

記得國小美術老師對我的評語是:「他開始之前的動作會花很多時間,但是動手開始做之後就會很快」,結果到了研究所,我還是帶有這種壞習慣。

我每週會在Group Meeting時報告研究進度,但直到昨天才比較有具體的方向產生。仔細想想,這些在找資料、讀研究論文、思考研究內容的想法,其實也都很值得跟大家分享分享,所以之後可能會把自己讀得文獻跟心得也放到這邊來。

所以,我的論文在做什麼?

簡單來說:標註應用於閱讀策略上。然後再把這方法應用在數位圖書館上。

標註是我們閱讀文獻時最密切的動作,像是用螢光筆畫重點、在側邊空白處寫下你的資料、對於應該分節分段的段落以「1、2、3」區分等都是標註的動作。

很多教育文獻都在探討標註應用於學習上,但他只是個教學的工具。也有不少學者建議把標註應用於數位圖書館上,但是應用方法卻有待發揮。因此我的想法是利用能夠保存個人閱讀策略的標註,作為教導其他使用者閱讀策略的工具。

除了詳細的作法仍有待文獻探討來證實之外,系統的建置、實驗的進行、數據的蒐集都得由我自己一手包辦,總覺得並不是一個發發問卷、做做訪談能夠輕鬆完成的工作。儘管如此,這樣子的研究做完之後,也能夠證實我有獨當一面的能力了吧。

目前的文獻探討中,我已經從資工的資料探勘技術,讀到教育學的後設認知策略去,這才是真正的跨學門研究啊。(?)

總而言之,就快樂地讀文獻,寫計畫書吧。

(more...)

資料探勘與協同過濾推薦之研究與應用

布丁布丁吃布丁

資料探勘與協同過濾推薦之研究與應用

image

圖:演講投影片,協同過濾的舉例

11月6日,銘傳大學資訊工程學系的王豐緒老師受邀來政大圖檔所演講「資料探勘與協同過濾推薦之應用與研究」。王老師先從理論上去介紹協同過濾(collaborative filtering)的歷史淵源及其原理,再來介紹七個商業網站案例,激發聽眾對於協同過濾應用的靈感。

協同過濾是透過分析許多使用者的選擇與判斷,作為提供其他使用者推薦、預測的參考。利用電腦儲存與計算的能力,將「口碑效應」的過程自動化。協同過濾是假設「一群人在過去有相似的興趣,那麼在未來應該也會有相同的興趣跟喜好」,再利用資料檢索、資料探勘的技術來實作。王老師介紹的網路電子商務Amazon.com(http://www.amazon.com)也是在圖書資訊界具有相當有影響力的例子,Amazon.com利用消費者購買記錄、對書籍等物品評分等資訊,推薦合適的商品給消費者。

image

圖:Amazon.com的「Customers Who Bought This Item Also Bought (買了這項商品的顧客,也會買以下商品)」。

王老師除了介紹協同過濾的作法之外,還帶領我們在案例探討中,一一分析營造個人化系統所應該要有的要素:知識專業的展現、代理商角色功能、推薦依據之調整、以使用者行為進行推薦、拓展推薦範圍、利用社群作為網站本身的價值。

最後陳志銘老師也提出了協同過濾對於數位圖書館的重要性,建議我們可以利用讀者社群的知識來讓數位圖書館變得更好。國內不乏利用協同過濾推薦應用於圖書館的研究,我們圖書資訊的同學們也可融合對於資訊工程的技術與圖書館領域的知識,擴大協同過濾推薦的應用層面,讓數位圖書館與使用者社群相互合作,營造全新時代的圖書館!

(more...)