有點集會

2009年8月29日, prashant · 評論
提起下: 技術

看完這篇文章有關鎖空閒緩衝區,看到使用了CAS(比較和交換),我發布的彙編代碼,做同樣的感覺。 使用的情況下,那邊是寫一個本地方法,並調用它從Java(1.5,當在Java並發數據結構不存在或多或少)。 事不宜遲,我會釋放到你的代碼 :) 首先是中科院和計算GCD的第二個是用歐幾里德算法(此人可以發現,在許多地方和教程以及)。

編譯和運行指示 gcc file_name.c ; ./a.out

比較和交換

   #包括 
  #包括 
 / /交換 -  newvalue,comperand是舊的/預期值
 / *
  *函數實際上做以下的事情 - 如果在* dest的值是等於oldvalue然後newvalue其他不改變它取代:做所有這些原子
  *
  *有兩個返回值的選項
  * 1.is初始值* dest的離開,調用fxn負擔比較與OLDVAL
  * 2。 在這裡做,並返回0或1,這應該是更有效
  ** /

 / *後來改變成宏* /
 INT CAS(INT * dest中,oldvalue,INT newvalue){
	輸出(“(%D,為%d,%d個)”,* dest中,oldvalue,newValue)以;
	 / * CAS(目的INT,INT oldvalue,newValue)以{* /
	 / * CAS(INT目的,newvalue INT oldvalue){* /
	結果= 1 ;/ * 1可以看出,CAS成功,0表示失敗* /
	 / * BTW需要設置標誌重挫CC!  * /
	 __asm​​__ __ volatile__(
			 “MOVL%2,%eax中\ N \ T”
			 “MOVL%3,%ebx中\ N \ T”
			 “MOVL%0%ECX \ N \ T”
			 “鎖\ N \ T”
			 \ N \ T“CMPXCHG%EBX(%ECX)”/ *應該鎖定在同一行* /
			 “JZ \ N \ T”
			 “MOVL $ 0%1 \ N \ T”
			 “DONE:\ N \ T”
			 “M”(DEST),“克”(結果)
			 :“G”(oldvalue),“G”(newValue)以“M”(DEST)
			 :“%eax中”,“%ebx中”,“ECX”,“CC”
			 );
	輸出(“(%D,為%d,%d個)”,* dest中,oldvalue,newValue)以;
	返回結果;
 }

 / *的TODO
  *寫在一個while循環以上fxn了另一個ASM fxn的不斷嘗試,除非它成功* /

詮釋的主要(){
	 A = 5,B = 6;
	 INT * C =(INT *)malloc的(如sizeof(int));
	 * C = 6;
	 / * C = 6 * /
	 printf(“請為%d \ N”,CAS(C,B,B));
	 printf(“請為%d \ N”,CAS(C,B,A));
	輸出(“%d個\ N”,CAS(C,A,A));
	 printf(“請為%d \ N”,CAS(C,B,B));
	 * C = 6;
	 / * C = 5; * /
	輸出(“變化值* C至%d條\ n”,* C);
	 printf(“請為%d \ N”,CAS(C,B,B));
	 printf(“請為%d \ N”,CAS(C,B,A));
	輸出(“%d個\ N”,CAS(C,A,A));
	 printf(“請為%d \ N”,CAS(C,A,B));
	 printf(“請為%d \ N”,CAS(C,B,A));
	返回0;
 }

格式化筆記 - 像WP語法高亮似乎增加 在年底,忽視這一點。

最大公約數

 #包括 
 GCD INT(INT A,INT B){
     int結果;
     / *計算最大公約數使用Euclid的算法* /
     __asm​​__ __ volatile__(“MOVL%1,%eax中;”
                           “MOVL%2,%ebx中;”
                           “cmpl續完:$ 0,%ebx中;”
                           “JE;
                          的“xorl%EDX,%edx中;”
                          的“idivl%EBX;
                           “MOVL%%EBX,EAX%;
                           “MOVL%%,%%ebx中EDX;
                           “JMP續完;
                           “DONE:MOVL%eax中,%0”:“克”(結果):(一)“G”,“G”(二)
     );

    返回結果;
 }

詮釋的主要(){
     int的第一,第二;
     printf的(“請輸入兩個整數:”);
     scanf函數(“%d的%d”,與第一及第二);

    輸出(“%d的%d的最大公約數是%d \ N”,第一,第二,GCD(第一,第二));

    返回0;
 }

板球的世界等待著一個新的世界秩序

2009年8月25日, prashant · 評論
提交下 MISC

經過一系列跨越五個測試和大約兩個月,英國再生骨灰。

讓我們的冠軍球隊的先談談 - 他們中間的順序是“平均”,如果你不想關鍵。 greame斯旺與蝙蝠的貢獻將計算不超過球的貢獻。 斯圖爾特 - 最廣泛多面手是第5次試驗的非起動。 安德魯·施特勞斯是一致的擊球手和吉米·安德森是唯一一致的投球手。

這裡的關鍵是沒有,痛斥冠軍球隊所取得的成就,但角度提出的事實,儘管所有這些,澳大利亞失去。 你想幾秒鐘,如果被問及他們的最佳投球手。 正確的,它是:體重Hilfenhaus。 hauritz跑贏everbody的期望,但仍然不夠好五個測試中的兩個選擇。 南非從來沒有一個世界級微調成為世界打漿機,澳大利亞不能希望仍然沒有一個足夠好的一個至少之一。 魔術師離開了舞台,它看起來並不像藝術了,忘了魔術。 龐廷高高聳立之間較小凡人和邁克爾·克拉克經常站起來,但是,使他們與一些非常優秀的球員,而不是一支非常好的球隊的隊。
骨灰2009會被記住安德魯Flintoff的最後灰燼,斯圖爾特廣泛的抵達1所有全才(如果他增加了一些灰燼民俗到他的前途開始),並在所有的時間最有說服力的首演由特洛特世紀,但它會也成為IFS和澳大利亞的優勢但是終於把休息點記住,這是結束了。 不要誤會,他們仍然可以挖掘邁克·赫西或斯圖爾特·克拉克,但你覺得所有偉大的貢獻,當他們失踪。 有時他們來提醒自己,你在彩光,但他們仍然無法替代的。 讓我們覺得沃恩,麥格拉思和Gilchrist一起玩支持由Waughs,龐廷,Hyden,馬丁和蘭格看到祝福。

展望未來,南非將始終保持一支非常好的球隊,但他們需要贏得半決賽和世界各地更加一致,巴基斯坦將保持神秘輝煌,印度年輕的槍可能會發現很難填補非凡的前輩的鞋。 斯里蘭卡應繼續顯示在工藝藝術的影子。 但是,我們可能不得不等待一段時間之前,有全力以赴主導的團隊或前一個隊長抱怨缺乏競爭,史蒂夫·沃做一次。

在一個相關的說明 - 讓我們歡迎的,阿西夫未來回來,他有1潛在的地獄了很多,讓我們的希望來看到的一些和也歡迎安迪的新awatar花,權利,你不能保持長久的好男人下來。

紅寶石1層,創建哈希

2009年8月20日, prashant · 評論
提起下: 技術

昨天,同時通過我的老節目之一,我發現我寫的一段時間回來:

#begin magic
hash=Hash[*CGI.unescape(raw_text).split('&').map{|x| b=x.split("=");b.push(nil) if b.size==1;b}.flatten]
#end magic

殺一些懸念,讓我透露,raw_text看起來像

 

,權利,它已被切斷,從Paypal付款確認。

如果在零件壞了上面的行讀取更好:

  unescaped_array CGI.unescape(raw_text)。分裂('&')
   = unescaped_array unescaped_array.collect {| X | B = x.split(“=”); b.push(零)如果b.size == 1;}
   flattened_array = unescaped_array.flatten
  哈希散列[* flattened_array] 

讓我們做在irb中的各個步驟:

  IRB(主):009:0> unescaped_array = CGI.unescape(raw_text)分裂('&')    

 => [“僑”,“mc_gross = 10.00”,“protection_eligibility =不合格”,“payer_id = U7PPJJ4TSJ47E”,“稅= 0.00”,“payment_date = 9點45分30秒2009年07月10日,PDT”,“PAYMENT_STATUS =待定“]                                                                         

 IRB(主):013:0> unescaped_array = unescaped_array.map {| X | B = x.split(“=”); b.push(零)如果b.size == 1;}  

 => [“僑”,無],[的“mc_gross”,“10.00”],[“protection_eligibility”,“不合格”,“payer_id”,“U7PPJJ4TSJ47E”],[“稅收”,“0.00”] [“payment_date”,“9點45分30秒7月10日,2009 PDT”],[“PAYMENT_STATUS”,“待定”。]]                               

 IRB(主):014:0> flattened_array = unescaped_array.flatten     

 =>“成功”,無“mc_gross”,“10.00”,“protection_eligibility”,“不合格”,“payer_id”,“U7PPJJ4TSJ47E”,“稅法”,“0.00”,“payment_date”,“09:45: 30日2009年07月10日,PDT“,”PAYMENT_STATUS“,”待定“]
 IRB(主):015:0>
哈希散列[* flattened_array]
 => {“稅”=>“0.00”,“PAYMENT_STATUS”=>“掛起”,“payer_id”=>“U7PPJJ4TSJ47E”,“mc_gross”=>“10.00”,“成功”=>“零”payment_date“= “九時45分三十秒07月10,2009 PDT”,“protection_eligibility”=>“不合格”} 

順便說一句,*被稱為紅寶石的圖示操作員

從“對數組的哈希創建的另一種方法是使用注:

 哈希= [1,2],[3,4]注入({})。{|結果,元素|結果element.first] =結果[element.last];結果} 

有一個方法 :) 寫一個循環,我會留給讀者作為練習!

這裡是位從陣列創建哈希無關的使用情況:

  IRB(主):005:0> [1,2,3,4,7,9] GROUP_BY {| X | X <5? 更低::更大}

 => {:較小的=> [1,2,3,4]:更大=> [7,9]} 

你可以做更多的事情,基本上塊的結果作為使用中產生的哈希元素的關鍵。

Gmail時,mutt和msmtp會修復

2009年8月17日, prashant · 評論
提起下: 技術

如果您使用mutt和SMTP訪問Gmail。 這裡是(壞)消息。 在谷歌酷哥再次改變證書。 哦,你問 - 如何知道? 簡單的小狗開始抱怨自己的證書時,嘗試使用的msmpt,臭名昭著的“msmtp會:TLS證書驗證失敗:證書還沒有得到一個已知的發行人 迎接我在屏幕上。

交叉確認 -
只要運行以下

$ msmtp --serverinfo --host=smtp.gmail.com --tls=on --port=587 --tls-certcheck=off

在地方老Thwate服務器現在你在發行人段
Issuer:
Common Name: Google Internet Authority
Organization: Google Inc
Country: US

幸運的修復很簡單,這裡是你需要做的在debian

# apt-get install ca-certificates
# dpkg -s ca-certificates|grep Version
Version: 20090814

在此之後只是改變下面一行在你〜/。msmtprc的

tls_trust_file /certs/Thawte SSLWeb Server Roots/thawte Premium Server CA/Thawte Premium Server CA.pem

tls_trust_file /certs/Thawte SSLWeb Server Roots/thawte Premium Server CA/Thawte Premium Server CA.pem



tls_trust_file /usr/share/ca-certificates/mozilla/Equifax_Secure_CA.crt

Git和真棒調查

2009年8月15日, prashant · 評論
提交下 MISC

這裡有兩個環節調查的git(版本控制系統)和真棒(窗口管理器)社區。 如果你使用這些,請拿出一些時間來填寫問卷。 把它看成是最簡單的方式回饋給您使用的軟件。
這裡是鏈接:

GIT - http://www.survs.com/survey?id=2PIMZGU0&channel=Q0EKJ3NF54

真棒- http://www.survs.com/survey?id=8BVEV3FO&channel=BH07CQ040D

注 - (由於在這些網頁上,但在底部發現 :) ) -
“如果你啟用了Cookie,你可以隨時提交部分填寫的調查,並在稍後時間回你的答案,完成以後。”