<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    李威 さぽている

    小說翻譯,日語相關轉移至http://blog.hjenglish.com/liwei

    2009年9月3日 #

    JSONP 跨域原理小解

    最近看一些代碼時,邊看邊改代碼,發現getJSON這個方法沒法正常使用。

    1 var sURL= "http://api.xxxxxx.com/services/feeds/   
    2    xxxxxxx?format=json&callback=?";
    3 $.getJSON(sURL, function(data) {
    4 // do something with the JSON data returned
    5 }); // end get

    究其原因,發現url里有個callback,這里使用的是JSONP,一種跨域技術。
    網上搜了下JSONP,多數都是在講如何使用,而沒有說明為什么它能跨域,且沒有說明url服務器端的代碼時如何生成的。
    http://www.west-wind.com/weblog/posts/2007/Jul/04/JSONP-for-crosssite-Callbacks
    這方面,上面的文章里有比較詳細的描述。

     1 function jsonp(url,callback,name, query)
     2 {                
     3     if (url.indexOf("?"> -1)
     4         url += "&jsonp=" 
     5     else
     6         url += "?jsonp=" 
     7     url += name + "&";
     8     if (query)
     9         url += encodeURIComponent(query) + "&";   
    10     url += new Date().getTime().toString(); // prevent caching        
    11     
    12     var script = document.createElement("script");        
    13     script.setAttribute("src",url);
    14     script.setAttribute("type","text/javascript");                
    15     document.body.appendChild(script);
    16 }

    客戶端的javascript代碼會有如上的操作,代碼不難,很容易理解,也就是加了一個script標簽。

    而服務器端會返回
    callbackFunction( { "x": 10, "y": 15} );
    這樣的數據。這其實是一段javascript代碼,
    callbackFunction是方法名,
    { "x": 10, "y": 15}是參數??蛻舳舜a里必須要有
    callbackFunction方法的定義。

     1 public partial class JSONP : System.Web.UI.Page
     2 {
     3     protected void Page_Load(object sender, EventArgs e)
     4     {
     5         if (!string.IsNullOrEmpty(Request.QueryString["jsonp"]) )
     6             this.JsonPCallback();
     7     }
     8 
     9     public void JsonPCallback()
    10     {
    11         string Callback = Request.QueryString["jsonp"];
    12         if (!string.IsNullOrEmpty(Callback))
    13         {
    14             // *** Do whatever you need
    15             Response.Write(Callback + "( {\"x\":10 , \"y\":100} );");
    16         }
    17 
    18         Response.End();
    19     }
    20 }

    之后客戶端會調用callbackFunction。
    使用JQuery的getJSON方法后,callback部分會變成如下形式。
    callback=jQuery1710461701650187642_1326201333794&_=1326201356534
    callbackFunction自然就是
    jQuery1710461701650187642_1326201333794部分了。
    返回來的數據也會是jQuery1710461701650187642_1326201333794( { "x": 10, "y": 15} ) 這種形式。

    最后JQuery會調用匿名函數
    function(data),data即為json數據。

    JQuery已經將客戶端部分實現了,服務器端也得遵循同樣的規則才能實現跨域。


    *這里有一點,JQuery如何將匿名函數換名字的?有哪位大俠知道的,請用簡單的語言講解下。

    posted @ 2012-01-10 21:30 李威 閱讀(345) | 評論 (0)編輯 收藏

    error code 0x80004005

    記錄一個小問題。
    在Win7系統上裝一個軟件時失敗,提示2個DLL沒有注冊成功。
    于是準備手動注冊。
    運行
    cd C:\WINDOWS\system32\
    regsvr32 xxx.dll
    后出現如下錯誤:
    The module "xxx.dll" was loaded but the call to DllRegisterServer failed with error code 0x80004005.

    網上搜索一番后,找到如下地址
    http://forums.cnet.com/7723-12546_102-237219.html
    其中有條說run as administrator,這是權限問題,不過我登陸的就是管理員賬號,應該不存在這樣的問題。

    抱著姑且一試的想法,寫了個cmd文件,右鍵run as administrator后,居然真的注冊成功了!

    看來Win7系統真的很安全,就算是管理員,也得來個run as administrator后才能做一些事,是在向sudo學習么?

    posted @ 2011-12-06 21:13 李威 閱讀(360) | 評論 (0)編輯 收藏

    HTML5的audio標簽很坑爹!

    最近試著用html5在頁面加載mp3文件。在chrome下測試通過了,偶然的用firefox4打開,居然沒法用……
    懷疑哪里寫錯了,可audio標簽也就幾個屬性而已。

    幾經搜索,最后發現的真相讓我很崩潰……firefox的audio不支持播放mp3。

    Codec support in modern desktop browsers
    Browser Ogg Vorbis MP3 WAV
    FireFox 3.6+ ?
    ?
    Safari 5+
    ? ?
    Chrome 6 ? ?
    Opera 10.5+ ?
    ?
    Internet Explorer 9 (beta)
    ? ?
    出自 http://html5doctor.com/native-audio-in-the-browser/

    看了這個表之后,雖然很多瀏覽器都支持html5,但如果你想播放一個文件,任何一種格式都不能讓所有瀏覽器正常播放。
    哈哈哈,html5定義了媒體標簽,但沒規定媒體的默認編碼格式,導致各瀏覽器各自為政。
    真是不方便……

    posted @ 2011-06-11 22:30 李威 閱讀(270) | 評論 (0)編輯 收藏

    PHP GD畫圖時出現的文字亂碼問題

    GD畫圖時通常顯示文字是用imagettftext方法,但它的參數必須是UTF-8編碼的。
    此時得注意php文件的編碼
    1.如果是UTF-8的,直接傳硬編碼字符串就可正常顯示
    2.如果是gb2312或其它的,則必須進行轉換 mb_convert_encoding($str, 'UTF-8')

    另外,還有一種情況,JIS-mapped Japanese Font Support被開啟時,imagettftext就必須傳SJIS編碼,傳UTF-8反而會亂碼。
    此時必須將其轉碼后傳入,mb_convert_encoding($sStr,"SJIS", "UTF-8")。

    以上。

    posted @ 2011-03-31 15:46 李威 閱讀(1051) | 評論 (0)編輯 收藏

    TurboC3.0英文版中界面邊框為亂碼問題的解決發法

    在次提供TurboC3.0英文版下載。

    TCPP.rar
    上網須謹慎,下載請殺毒。

    TC3.0窗口模式,邊框有中文亂碼。全屏就沒有。
    原因是當前的code page是中文的936,可以在cmd中用chcp命令查看。
    利用命令 chcp 437 改為老美的,就可以了。
    具體操作
    啟動TCPP.exe->File->DOS Shell->chcp 437->exit
    回到TCPP后就沒亂碼了。
    但這個方法治標不治本,每次啟動TCPP仍是亂碼。

    另一種方法
    在TCPP窗口的左上角單擊,出現菜單(包含最大化,最小化,屬性等),在默認選項的第一個頁面“選項”里Default code page選擇437 (OEM United Status)。因為我目前使用的是英文系統,不知道中文系統中是否有該項。如果沒有該項,請自行尋找方法讓它有。
    之后,一切OK,至少我OK了……

    posted @ 2011-01-26 19:26 李威 閱讀(708) | 評論 (0)編輯 收藏

    運行李

    中鐵快運 跨省 4.3元/KG
    一般3天到,但有時貨運量大,無法確定到貨時間
    上午10:30電話過去,說下午2點后才能來取貨,我說下午不在,比較緊急,實際上取貨師傅11點多就到了
    來取貨的人有2人,開的是面包車,能一次運走較多貨物
    貨物較散時會收15元包裝費。
    一般人不支持貨到付款,只有大客戶才支持。
    先交費,多退少補(一般會多收),發票不當場發,之后會聯系你或郵寄給送貨地址(具體不詳)。
    我是當天要離開,沒法將發票給我,他們說會將發票和多的錢放到包裝的貨物里。


    順豐快遞 跨省 1KG內20元,超過部分12元/KG
    到貨很快,合肥到杭州一天內能送到。
    來取貨的只有1人,開電動車,貨物較多時無法一次取完。
    支持貨到付款,無包裝費。
    客服說1小時內到,通常半小時左右會有取貨人來電話聯系,之后看情況,有時候半小時能到,有時候很拖。

    posted @ 2011-01-15 11:31 李威 閱讀(145) | 評論 (0)編輯 收藏

    Sina App Enginge Beta

    已經有人做了介紹
    http://www.hzlzh.com/sina-app-engine-beta/

    對我這種平時寫點小應用自娛自樂的個人開發者來說,最重要的變化就是SAE不再免費了
    1RMB=50云豆
    SAE進入beta后發放給內測開發者5000云豆,我去帳號里查看時剩下4945,感覺用得有些快
    平時也沒寫多少東西,也就10多個php頁面,以后還是側重玩GAE吧……

    雖然SAE相比GAE規模不大,但也有些不錯的地方
    譬如cron,同樣的5min間隔執行的東西,SAE比GAE更準些
    譬如客戶端,雖然SAE沒法在本地執行代碼,但能從服務器下載應用的最新代碼很不錯
    之前GAE寫的東西,有些是在公司電腦里寫的,有些是在家里寫的,現在都不知道家中電腦里的代碼是不是最新的了
    SAE進入beta后,能在線查看修改代碼,使用的編輯器是ecoder,http://ecoder.quintalinda.com/

    SAE很多其他功能還沒用到,就不多做評價了

    以下說點胡話吧
    國內整體環境有些急功近利,運營1年多了,沒任何收入,SAE也是國內第一個吃螃蟹的,能否盈利也不清楚,投資者沉不住氣,SAE團隊大概也是頂不住上層的壓力,迫不得已開始收費計劃。

    總感覺SAE還沒成熟到能收費的階段,因為SAE上的應用并不多,我只見到10多個而已
    應用能減少建站難度。應用少會限制SAE的用途,SAE面向的群體是什么呢,現在能干什么呢?個人的話,租php空間來干嘛,主要是搭博客,建論壇,搞CMS;想創業的,大概不會選SAE,因為限制太多,不如租主機,自由度更高;企業的話,注重的是穩定,現在還不會嘗試新出來的SAE
    開發SAE開源項目,SAE會獎勵云豆。應用不多這點也能靠收費來激發開發者多發開些SAE開源項目來彌補,不知效果會如何

    現在還真不知道SAE會發展得如何……

    預計近期SAE應該會開發注冊吧,新帳號里應該會有一些云豆,給開發者試用,然后期待這些新鮮血液帶來更多付費用戶和SAE開源項目,希望SAE能發展下去

    posted @ 2010-09-05 12:28 李威 閱讀(209) | 評論 (0)編輯 收藏

    笑話一則(其中的我不是博主)

    我出差的時候(是指在日本)
     張X(日本那邊的人)說:“這個叫李X的代碼寫得真爛啊。”
    我:“他是我室友。”過了一會
    張X:“這個叫唐XX的寫得更爛。”
    我:“這個是我前室友。”再過了一會
    張X很無奈地問我:“這個叫鄭X一定是你的前前室友吧?”
    我。。。

    posted @ 2010-08-26 22:43 李威 閱讀(148) | 評論 (0)編輯 收藏

    如何破掉防盜鏈機制

    今天遇到一個問題,寫了一個頁面,抓取其他某站點的內容,然后重組成新的頁面,主要是一個圖片的展示(gallery)。

    但是該站點做了防盜鏈,圖片無法顯示,403.

    這種盜鏈主要是靠Referer來實現的,也就是說更改了Referer就能顯示圖片,但Referer不是在頁面編碼能解決的。

    Referer是瀏覽器發出的,只能更改瀏覽器才能更改Referer。

    firefox有一個插件refcontrol,可以做到這一點,不過不是我要說的

    繼續研究,該站提供一種embed功能,供其他頁面調用,此時就能允許其他站點直接顯示圖片。
    一般網站是不提供這種功能的,所以下面方法并不是所有網站適用的。

    通過對比header內容,最終知道是它在cookie里設定了一個字段,以此來判別。

    那么,只要我設定該值即可。
    兩種方法
    1.服務器端設定set-cookie,試驗證明,此法不可行,主要是domain無法更改到對應站點的domain下
    2.客戶端用javascript設定document.cookie。仍不行……,原因不明,大概也是無法改domain吧

    這下只剩最后一招了,在我的頁面里直接調用embed頁面,讓它替我設cookie,如何調用呢?
    首先想到用frame,試了下,frame和圖片幾乎同時發出request,這樣cookie還沒設定,請求圖片肯定403.
    又想到onload,呃,是在body完了后才調用,肯定不行
    后來看到,html的head里的文件先下載完畢后,再請求圖片。這點我以前也提到過,javascript代碼的執行順序 
    head里主要有2種文件調用,js和css。
    這里就不是什么正規寫法了,因為embed頁面既不是js文件,也不是css文件,但瀏覽器是不會管這個的,直接調用。
    一般也不會這么用……旁門左道
    先用了js這種,在src里寫上embed頁面地址,可以顯示圖片,但有個javascript錯誤。
    接著改進,用css的,會發現最終調用了兩次,一次是在開始,還有一次是在所有其他head文件全下載完之后
    有些小影響,但問題不大。

    時間比較晚,就懶得加上試驗代碼,OK,就這樣,完工。

    posted @ 2010-08-10 00:19 李威 閱讀(842) | 評論 (0)編輯 收藏

    javascript兩則思考

    1.
    http://www.jsforest.org/2010/07/29/js-this指向的小測試/


    這個說是在考this的指向,實際上是在考變量的作用域。
    先說其中第二題。o是一個對象,doIt是它的方法,那么doIt的this自然指向o
    第二題結果為10無懸念。

    再來看第一題,在doIt的內部加入了一個setTimeout方法,setTimeout又調用了一個匿名方法。
    在javascript中,函數(或方法)也是對象,那么匿名方法中的this應該指向doIt,結果為20.

    實際上將代碼跑了下,第一題結果為5.哪里錯了?

    問題出在setTimeout。
    window.setTimeout(code, delay)
    
    When code is executed, it is executed in the context of the Window object. If code is a function, the Window object is the value of the this keyword. If code is a string, it is evaluated in the global scope with the Window object as the only object on the scope chain. This is true even if the call to setTimeout( ) occurred within a function with a longer scope chain.

    這段話說明了setTimeout不管在哪里執行,其作用域都是在Window下,this一直指向Window。
    第一題的x=5是全局變量,Window作用域下的。

    這題說是在考this的指向,原來最終考的是個setTimeout的問題……被耍了



    2.
    http://www.css88.com/archives/2429

    看到這個問題,首先注意到的是第一個用了===,第二個沒有,而javascript是個弱類型語言,使用provisionalTable[item]取值沒判斷類型。
    然后,試著找了Object中判斷值是否存在的方法,譬如provisionalTable.item ,in等都沒判斷類型。
    想法一,重載[]方法,不過,這個怎么重載?又不是個function
    想法二,數字是利用toString()轉成字符串的,那么重載Number.prototype.toString=function(){return this;}; 6=='6'返回false了,但provisionalTable[item]取值還是一樣
    想法三,provisionalTable同時存在6和'6'時,provisionalTable[item]能區分這兩者,那么在provisionalTable中加入一個設為true時,將另一個也加入,并設為false。但這樣會有效率問題,事實上,acsu提出的方法里僅僅加了個typeof方法,就將效率損失殆盡。
    突然想到,這個問題不是找解決方法,而是找最優方法
    嗯,作罷,效率問題不是我等小民該考慮的,這個必須從根本上重構javascript才行

    不過思考下,還是能學到很多東西的

    posted @ 2010-08-05 22:07 李威 閱讀(152) | 評論 (0)編輯 收藏

    如何讓博客支持PubSubHubbub

    http://code.google.com/p/pubsubhubbub/ 
    pubsubhubbub是google開發的一種Atom和RSS增強協議,能夠接近實時發布信息。
    也就是說,如果blogjava支持了pubsubhubbub,我在這里發布了博客,你就可以在你的閱讀器里很快看到我的文章。
    現在只有部分博客服務商提供了pubsubhubbub功能,譬如WordPress,FriendFeed,livedoor等。

    pubsubhubbub的原理很簡單。它由3部分組成,pub,sub,hub(最后的bub不是的,hubbub是騷動的意思)。
    pub可以看成是博客,sub是閱讀器,而hub是一個中轉站。通常是由sub向pub請求內容,而pubsubhubbub是由sub想hub請求,hub再向pub請求,多一層hub的作用是降低pub的壓力。hub收到pub的更新后,會向sub發布最新的內容。
    因為不是pub直接向sub發布,所以這里說的“接近”實時發布信息。

    那么如何讓博客支持pubsubhubbub呢?只需要建立一個hub服務器,然后在生產rss時加入
    <atom:link rel="hub" href="http://pubsubhubbub.appspot.com"/>
    http://pubsubhubbub.appspot.com就是hub服務器的地址。
    <?xml version="1.0"?>
    <rss xmlns:atom="http://www.w3.org/2005/Atom">
      
    <channel>
        
    <atom:link rel="hub" href="http://pubsubhubbub.appspot.com"/>
        
      
    </channel>
    </rss>
    因此判斷博客是否正常pubsubhubbub,也很簡單,查看http://www.tkk7.com/liwei/rss的代碼即可,沒有hub的影子。
    再看一個支持的例子 http://rasjacobson.wordpress.com/feed/ ,里面有一句 <atom:link rel='hub' /> ,這個是支持的。

    具體的hub實現請查看
    http://code.google.com/p/pubsubhubbub/wiki/Hubs
    我這里只是個人玩玩而已,沒實力自己搭hub服務器。不過可以借助他人提供的hub服務器,譬如剛才appspot的。

    知道了原理,接下來就好辦。
    因為要改代碼才能修改生產的RSS,所以blogjava這種博客服務商不提供pubsubhubbub功能的話,我們這些用戶是無能為力的。

    但自建的獨立博客是能簡單支持。等咱啥時候有閑錢了,再去做吧……

    posted @ 2010-08-01 01:35 李威 閱讀(299) | 評論 (0)編輯 收藏

    GAE發布時出現的SSL問題

    deploy時會出現如下信息

    WARNING appengine_rpc.py:399 ssl module not found. 
    Without the ssl module, the identity of the remote host cannot be verified, and 
    connections may NOT be secure. To fix 
    this, please install the ssl module from 
    http:
    //pypi.python.org/pypi/ssl . 
    To learn more, see http://code.google.com/appengine/kb/general.html#rpcssl 

    當打開上面的頁面時會自動轉到 http://code.google.com/intl/zh-CN/appengine/kb/general.html#rpcssl ,在這里看不到任何幫助,因為google還沒將這段幫助信息翻譯成中文Orz,可以到 http://code.google.com/intl/en/appengine/kb/general.html#rpcssl 查看。這里說明在用python appcfg.py update 命令時添加 --insecure 后就不會有問題。但我用GAE Launcher也無法修改命令。再讓我回到沒有Launcher,直接用命令行的時代,還真難適應。作罷。

    我試著安裝了ssl 模塊,但無法編譯。網上找到了這個頁面,http://canofy.javaeye.com/blog/651968 ,該同學和我遇到了同樣的問題,并且裝了cygwin。
    貌似之后還有其他問題。不談。

    今天,我突然發現,deploy時出現的ssl信息,完全可以忽視,對,可以忽視 ,之后仍會update成功的。
    通常出現上述ssl提示后,console會沒有任何顯示,此時不要關閉console,再次deploy時會出現如下信息
    Error 409--- begin server output ---
    Another transaction by user xxxxxx is already in progress 
    for this app and major version. That user can undo the transaction with appcfg.py's "rollback" command.
    --- end server output ---
    這表明之前的update仍在進行。請安心等待……

    最后,好嘛,一個不是問題的問題,花了我不少時間……

    posted @ 2010-05-08 12:25 李威 閱讀(749) | 評論 (1)編輯 收藏

    javascript代碼的執行順序

    這個不弄明白,代碼出問題了也不難以解決。
    《learning Jquery 1.3》p15有一句  JavaScript code is generally run as soon as it is encountered in the browser
    也就是說,瀏覽器遇到一個語句就立刻解析。貌似這個問題很快就解決了。

    但javascript的寫法相當多,譬如網上很多人討論的$(document).ready(和<body onload= 執行先后問題
    在p16中,提到onload    to run after the page is completely loaded.即onload在頁面完全加載完之后執行
    ready是firing once the DOM is loaded—without waiting for images 。ready在DOM加載完,圖片未加載時執行。
    也即ready在onload之前調用。

    這里就涉及html頁面的加載順序問題。網上搜到2篇相關文章。
    瀏覽器做了什么?
    http://www.cnblogs.com/guilipan/archive/2010/01/06/1640145.html
    Javascript在頁面加載時的執行順序
    http://dancewithnet.com/2007/03/22/order-of-execution-of-javascript-on-web/

    看完之后,比之前明白了些,但具體的關系還是沒能理解。
    一個html頁面包括head和body兩個部分,head部會調用外部CSS和JS文件,body部會調用圖片,音視頻等內容。
    下載順序是html ->CSS JS ->圖片等。
    解析順序是html(內部是按序執行head->body)->DOM生成 ->ready執行 ->圖片下載 ->body.onload

    將以上兩者結合,html ->head(CSS JS) ->body->DOM生成 ->ready執行 ->圖片下載 ->body.onload
    其中head和body部都可能包含js,按代碼順序執行。
    這里就有一個疑問,瀏覽器會等待JS等文件下載完后,并順序執行該JS后再繼續執行之后的html代碼么?
    按想應該不會,不然JS文件過大,會影響html頁面渲染的速度,兩者應該是異步的。
    但這個異步就會將之前總結的順序攪亂。譬如onload都執行完了,包含ready的JS還沒下完,此時會發生什么?
    這里說得有問題,JS未下載完,onload是不會執行的。
    有待繼續總結……

    posted @ 2010-03-11 00:18 李威 閱讀(470) | 評論 (0)編輯 收藏

    迷茫和悲哀

    [zz]30歲軟件工程師的迷茫和悲哀

    http://bbs2.ustc.edu.cn/cgi/bbstcon?board=Job&file=M.1267231721.A

    文章很長,就不轉載了。
    其中有一段
    ---------------------------------------------------------
    35歲左右還在從事軟硬件開發工作的仍有一大堆,分析這些仍然從事開發的朋友,
    基本上都有以下特點:
    1癡迷工作或者癡迷電腦,晚上八點到十二點的這段時間,基本上是在電腦桌或工作臺前
    渡過的。
    2不喜歡與人交住,朋友很少,常聯系的人不超過五個。
    3與朋友交往時談工作多,但一般不主動談錢。
    4體型偏胖或偏廋,不在正常區間。
    5無未來計劃,對五年后自已生活怎么樣、從事什么工作說不清楚。
    6儉省,從不亂花錢。
    ---------------------------------------------------------
    和我很相似……嗯,我也確實想繼續做開發,但人要生活,不可能一輩子這樣
    迷茫和悲哀吧

    posted @ 2010-02-28 15:26 李威 閱讀(196) | 評論 (0)編輯 收藏

    heroku安裝問題

    試用了下heroku,結果安裝時就出問題了
    windows環境,按照http://docs.heroku.com/windows 裝了msysgit1.8.6 one click ruby installer

    D:\Ruby>gem install heroku
    ERROR:  While executing gem ... (Gem::RemoteFetcher::FetchError)
        timed out (http://gems.rubyforge.org/gems/json_pure-1.2.0.gem)

    大概是網絡不行,于是下載后本地安裝

    D:\Ruby>gem install "C:\Documents and Settings\wli\My Documents\Downloa
    ds\heroku-1.8.0.gem"
    ERROR:  While executing gem ... (URI::InvalidURIError)
        bad URI(is not URI?): C:/Documents and Settings/wli/My Documents/Do
    wnloads/heroku-1.8.0.gem

    不行
    D:\Ruby>gem install C:\Documents and Settings\wli\My Documents\Download
    s\heroku-1.8.0.gem
    ERROR:  could not find gem C:\Documents locally or in a repository
    ERROR:  could not find gem and locally or in a repository
    ERROR:  While executing gem ... (RegexpError)
        Invalid escape character syntax: /\ASettings\wli\My\Z/

    還是不行,猜測是路徑空格的問題
    D:\Ruby>gem install E:/json_pure-1.2.0.gem
    Successfully installed json_pure-1.2.0
    1 gem installed
    Installing ri documentation for json_pure-1.2.0...
    Installing RDoc documentation for json_pure-1.2.0...

    OK,成功
    如此
    D:\Ruby>gem install E:/heroku-1.8.0.gem
    Successfully installed heroku-1.8.0
    1 gem installed
    Installing ri documentation for heroku-1.8.0...
    Installing RDoc documentation for heroku-1.8.0...

    posted @ 2010-02-20 12:50 李威 閱讀(696) | 評論 (0)編輯 收藏

    vitamini和Buzz


    之前看小眾軟件,發現一個游戲 http://www.appinn.com/vitamini-game/ ,看到游戲作者過來留言,還特意用google翻譯成中文,說只要在twitter上follow他就可以拿游戲完整版。
    我就試了下。當時是1月21日,很久沒看到回信,就忘了,今天突然看到他的回信,說他女友在他們結婚前給了他一周時間,就像電影《The Boat that Rocked》。原文 My girl left me a week before our wedding :-) Just like in the "The Boat that Rocked" film. 這是他在解釋為何這么晚才回信。不過這句話我有些不明白的是,這一周是指哪一周?他是否已結婚了?
    好吧,先不管這些,他公布了游戲完全版的地址,并說游戲很快就會免費,以下地址可隨意使用。
    http://www.vitaminigame.com/friends/

    另外,Google昨天發布了Google Buzz,可在郵箱和手機上使用。不過我的常用郵箱里沒出現(日文界面)。另外2個郵箱出現了,這兩個郵箱都選用的英文界面。Google的很多新功能都先出現在英文界面里,于是將日文界面換成英文的,不過Buzz仍然沒出現。想必很快就會有人如何調出Buzz了吧。
    如同twitter一樣,Buzz對我意義也不大,僅是嘗鮮而已……

    posted @ 2010-02-10 11:50 李威 閱讀(141) | 評論 (0)編輯 收藏

    SAE邀請碼申請要點


    昨天
    SAE第二批邀請碼申請和發放開始 (已結束)
    http://blog.sae.sina.com.cn/?p=50


    今天申請了數次,終于得到了邀請碼!

    申請地址
    http://sae.sina.com.cn/?m=inviterequest

    為了更快申請到,有些地方時必須注意的

    1.個人博客這一欄不是沒有紅星標記,不是必須的,但不寫,基本上得不到
    申請得早不一定能得到邀請碼。
    我昨晚9點多申請過一次,沒寫blog,今天看到別人今天申請的都收到邀請碼了,就知道希望不大。仔細看了下,那些人都有自己的網站,開發過web。
    有Web開發經驗者優先發放就是由blog體現出來的。另外,blog和web沒關系也可以寫,譬如我的這個blog就沒幾篇和web有關的。
    雖然我用過GAE,但相關內容沒寫在blog上,一樣獲得了邀請碼。
    我總共申請了4次,主要不同點就在于個人博客那一欄。
    昨晚9點多申請了第一次。沒寫blog,沒收到邀請碼。
    第二次沒寫blog,沒收到邀請碼。
    第三次blog地址寫錯,沒收到邀請碼。
    今天下午3點多,申請了第四次,寫上blog,6點半左右收到了邀請碼郵件。

    2.郵箱申請過一次后,就沒法再申請了,如果想重新填寫申請內容,就得換個郵箱。

    3.邀請碼申請和注冊時的內容可以不同。

    4.必須要有手機,接收短信驗證碼。

    以上。
    祝各位喜歡嘗鮮者能順利申請到邀請碼!

    posted @ 2010-02-02 20:27 李威 閱讀(1187) | 評論 (3)編輯 收藏

    hax01tips

    hax01tips
    注意:本文之后極有可能設為私有
    題目

    hax01


    當時我的思路是找出所有以nasa.gov結尾的域名,然后遍歷這些網址。之后我真的寫了個python程序,取了google檢索出來的前1000個頁面,取出域名,保存起來,去除重復的有500多個。接著,讀取html頁面,判斷是否還有字符串。其間,遇到了個網速的問題,超時后經常會跑到電信的114搜索上去。驗證了170多個頁面后,我發現自己理解錯題目了,這里的URL并不是指URL以nasa.gov結尾,而是指URL的域名以nasa.gov結尾。我無語了,這相當于域名下的所有網頁都有可能。這個工作量巨大得幾乎是不可能的。暫時中止。
    以下代碼可供參考,修改了n次,可能現在已經沒法直接運行。


    2.5
    3.1

    而后,過了大概幾個月,變換思路,解決,意外的簡單……
    事實上,只要向服務器提交數據,一般服務器也會將該數據返回到頁面上。該題最后的hint不是讓我們來搜該域名,而是告訴我們怎樣在google.com的頁面上顯示我們想要的數據。譬如http://www.google.co.jp/search?q=2200178118 該頁面的前10K里應該包含了該字符串。接下來,我們只需要在nasa.gov上找個頁面提交數據就行了。
    over

    posted @ 2009-12-22 17:58 李威 閱讀(274) | 評論 (1)編輯 收藏

    UTL_FILE使用配置篇


    以前曾寫過PL/SQL,當時還是第一次接觸,什么都不明白
    順手寫了篇 《Oracle內建包UTL_FILE使用說明 》的博文,沒想到還被轉載(譬如百度搜索utl_file,第一篇就是,不過沒寫我的出處,可惜……)
    http://www.tkk7.com/liwei/archive/2007/01/10/92902.html

    當時項目做完就沒接觸PL/SQL了,時隔2年半,又要寫PL/SQL了,而且遇到的問題居然還是和UTL_FILE有關。
    于是上網找了些資料
    http://www.shift-the-oracle.com/plsql/utl_file/utl_file_dir.html
    http://www.shift-the-oracle.com/plsql/utl_file/create-directory.html
    日文的,不得不說,日本人做事實在是認真,資料非常詳細,看完之后,我就覺得我是高手了,可以整理點東西出來教別人了……哈哈
    廢話少說,開始

    現在一般跑UTL_FILE.FOPEN時會出現ORA-29280的錯誤,出現這個錯誤主要有2個原因
    1.文件夾沒有讀寫權限
    2.文件夾沒有進行Oracle讀寫配置

    注意:這里討論的Oracle是在Unix類(包括linux,Solaris等)主機下安裝的。

    對于第1個原因,直接設定文件夾權限即可,譬如
    # chmod 700 /u05/file_storage/recv_dir
    這個沒啥好說,不是我要說的重點。
    第2個原因,可以好好說說。
    Oracle進行文件夾讀寫配置有2種方式
    1.設定UTL_FILE_DIR
    2.使用DIRECTORY 對象

    1.設定UTL_FILE_DIR
    Oracle 8i之前,貌似沒有DIRECTORY這個概念,所以只有一種方式。
    編輯 initORACLE_SID.ora 文件(ORACLE_SID是個變數,因DB設定有所不同),添加
    UTL_FILE_DIR='/u05/file_storage/recv_dir','/u05/file_storage/send_dir'
    即可。
    Oracle 9i之后還可以利用ALTER SYSTEM 命令進行設定
    ALTER SYSTEM SET
      UTL_FILE_DIR='/u05/file_storage/recv_dir','/u05/file_storage/send_dir'
    SCOPE = SPFILE ;
    也可以用命令來確認設定是否正確
    SELECT NAME, VALUE FROM V$PARAMETER2 WHERE NAME='utl_file_dir' ;

    注意:Oracle 8i 之后的DB不推薦使用這種方式,主要是情報泄露方面,日本很在意這個。
    另外,讓所有文件夾有效可使用('*')。
    這種方法不方便的就是,設定了之后必須重啟Oracle才能使設定有效。


    使用例

    CREATE OR REPLACE PROCEDURE RIVUS.UTL_FILE_DIR_WRITE_SAMPLE
    AS
     vHandle  UTL_FILE.FILE_TYPE;
     vDirname VARCHAR2(250);
     vFilename VARCHAR2(250);
     vOutput  VARCHAR2(32767);
    BEGIN
     vDirname := '/u05/file_storage/send_dir';   -- 絕對路徑
     vFilename := 'test.txt';
     vHandle := UTL_FILE.FOPEN(vDirname ,vFilename,'w', 32767);
     
     vOutput := '利用 UTL_FILE_DIR 進行的文件處理';
     UTL_FILE.PUT_LINE(vHandle, vOutput);
     UTL_FILE.FCLOSE(vHandle);
    EXCEPTION WHEN OTHERS THEN
     UTL_FILE.FCLOSE_ALL;
     RAISE;
    END;

    2.使用DIRECTORY 對象
    從Oracle 9i 開始UTL_FILE就能使用CREATE DIRECTORY了。
    首先文件夾必須存在,要有權限,我就不多說了。
    然后做成DIRECTORY 對象
    CREATE DIRECTORY recv_area AS '/u05/file_storage/recv_dir';
    CREATE DIRECTORY send_area AS '/u05/file_storage/send_dir';

    當recv_area已存在時,會出錯,可使用下面這句
    CREATE OR REPLACE DIRECTORY recv_area AS '/u05/file_storage/recv_dir';

    接著,賦予用戶該DIRECTORY 對象的讀寫權限
    GRANT READ ON DIRECTORY recv_area TO user_name ;
    GRANT WRITE ON DIRECTORY send_area TO user_name ;

    同時讀寫權限
    GRANT READ,WRITE ON DIRECTORY recv_area TO user_name ;

    做好這些就可以確認了
    SELECT * FROM ALL_DIRECTORIES ;
    看到自己做成的DIRECTORY了吧
    這里需要注意的是,當初CREATE DIRECTORY的時候是小寫recv_area,現在這里是大寫RECV_AREA
    之后利用該DIRECTORY 對象時必須用大寫。
    還有,該DIRECTORY對象不包括上層目錄(這個是當然的),也不包括子目錄。
    要利用子目錄需要再定義一個子目錄的DIRECTORY對象。

    使用例

    CREATE OR REPLACE PROCEDURE RIVUS.CREATE_DIR_WRITE_SAMPLE
    AS
     vHandle  UTL_FILE.FILE_TYPE;
     vDirname VARCHAR2(250);
     vFilename VARCHAR2(250);
     vOutput  VARCHAR2(32767);
    BEGIN
     vDirname := 'SEND_AREA';   -- 必須用大寫
     vFilename := 'test.txt';
     vHandle := UTL_FILE.FOPEN(vDirname ,vFilename,'w', 32767);
     
     vOutput := '利用CREATE DIRECTORY進行的文件處理';
     UTL_FILE.PUT_LINE(vHandle, vOutput);
     UTL_FILE.FCLOSE(vHandle);
    EXCEPTION WHEN OTHERS THEN
     UTL_FILE.FCLOSE_ALL;
     RAISE;
    END;

    到此為止,問題應該解決了。

    posted @ 2009-12-17 19:10 李威 閱讀(770) | 評論 (1)編輯 收藏

    google wave 邀請

    貌似現在流行這個,很多人都已經有了吧
    還沒有的留下郵箱,最好是Gmail
    相信很快wave就像白菜一樣爛大街了

    posted @ 2009-12-03 10:53 李威 閱讀(109) | 評論 (0)編輯 收藏

    利用yahoo pipes 獲取cnBeta全文RSS

    最近訂閱了博客園的新聞頻道,少有的RSS全文,看的相當爽快.
    于是也想找下其他網站的全文RSS,搜索時發現可以自制,于是自己嘗試了一下.

    參考的文章是 http://jandan.net/2008/11/15/yahoo-pipes.html

    制作步驟就省了,以下是結果.
    可以顯示全文,但仍有不足,cnBeta的圖片都無法查看.不知有何方法解決.
    暫且先這樣了.
    有興趣的可以到下列地址查看

    http://pipes.yahoo.com/pipes/pipe.info?_id=d370ce22946e9fafbbc5170695871cad

    RSS地址如下
    http://pipes.yahoo.com/pipes/pipe.run?_id=d370ce22946e9fafbbc5170695871cad&_render=rss

    posted @ 2009-11-19 21:05 李威 閱讀(967) | 評論 (0)編輯 收藏

    free shell

    真見鬼,本來寫了不少內容的,結果,頁面掛了,寫的全沒了

    懶得去寫第二次了。簡略之。

    http://www.bylur.net/free/
    http://www.red-pill.eu/freeunix.shtml

    我申請成功的如下

    http://freeshell.org
    http://ninthfloor.org
    http://mrejata.eu/
    http://hax.tor.hu/

    提供的服務條件依次增加。
    不過加上申請條件來評價的話,第三個最方便……

    posted @ 2009-11-01 00:05 李威 閱讀(162) | 評論 (0)編輯 收藏

    Vista下exe文件關聯問題

    問題 參照此貼
    http://bbs.pcbeta.com/thread-352911-1-1.html
    本來有個exe文件,選右鍵想用winrar打開看看自解壓來,結果一不小心選中始終用winrar打開這類文件了,結果所有exe文件都打不開了

    其中cmd.exe,regedit.exe也不可用,但command.com可用,assoc,ftype等命令也可用
    Vista 中
    C:\WINDOWS>assoc .exe
    .exe=exefile
    C:\WINDOWS>ftype exefile="%1" %*
    exefile="%1" %*
    均正常
    HKEY_CLASSES_ROOT\exefile\shell\open\command
    默認值也為"%1" %*
    具體現象是只有exe文件打不開,其余類型的文件如txt仍然可以執行exe,譬如雙擊txt文件后會啟動emeditor.exe。

    那么說,Vista下exe的文件關聯信息保存在其他地方。

    打開RegWorkShop.exe(至于用什么方法,大家可以猜猜,提示,上面提到可以用某種方法啟動exe),搜索winrar.exe
    出現了一些結果,其中有兩個比較可疑
    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.exe\OpenWithList, a, WinRAR.exe
    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.exe\UserChoice, Progid, Applications\WinRAR.exe

    查看其它正常機器后發現,OpenWithList下只有一個默認值,UserChoice整個分支都不存在,也就是說這些都可以刪掉。
    OpenWithList下的兩個值刪除后,UserChoice卻無法刪除,訪問被拒絕了。
    嘗試了一些方法,最后,好在RegWorkShop夠強悍,Edit下有個permissions,可以設置權限,將當前用戶設為全部允許后,成功刪除了UserChoice。
    之后,雙擊exe可直接運行了。不過很多exe的圖標仍然為winrar的壓縮包圖標,大概下次重啟后會恢復吧,先不管,上網去了……

    posted @ 2009-09-03 12:05 李威 閱讀(988) | 評論 (4)編輯 收藏

    主站蜘蛛池模板: 24小时日本在线www免费的| 免费无码黄网站在线观看| 国产成人精品日本亚洲网址| 国产一级一片免费播放i| 在线人成免费视频69国产| 亚洲精品在线不卡| 国产一级高清免费观看| 中文字幕乱理片免费完整的| 亚洲乱码中文字幕小综合| 亚洲XX00视频| 97免费人妻无码视频| 一级成人毛片免费观看| 亚洲午夜电影在线观看| 国产乱辈通伦影片在线播放亚洲| 国产福利在线免费| 两个人看的www高清免费观看| 在线亚洲午夜片AV大片| 亚洲国产精品嫩草影院在线观看 | 中文字幕版免费电影网站| 亚洲成a人片77777群色| 亚洲一区二区三区AV无码| 国产精品免费观看久久| 免费久久人人爽人人爽av| 18禁亚洲深夜福利人口| 国产92成人精品视频免费| 精品国产污污免费网站入口在线| 亚洲va精品中文字幕| 亚洲乱色熟女一区二区三区丝袜| 日本一区二区三区日本免费| 最近在线2018视频免费观看| 中文在线观看永久免费| 国产精品国产亚洲区艳妇糸列短篇 | 女人隐私秘视频黄www免费| 亚洲aⅴ无码专区在线观看| 亚洲综合激情九月婷婷| 亚洲人成图片小说网站| 亚洲 国产 图片| 国产精品成人四虎免费视频| 国产成人免费爽爽爽视频| 18未年禁止免费观看| 无码人妻久久一区二区三区免费 |