偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

吐槽編程問(wèn)題的五張漫畫(huà)

開(kāi)發(fā) 項(xiàng)目管理
那里的很多問(wèn)題和回答都配上了XKCD(由Randall Munroe 創(chuàng)作)的漫畫(huà)鏈接,于是我決定扒一扒,哪幾篇漫畫(huà)最?lèi)?ài)被程序員拿來(lái)吐槽他們遇到的奇葩事。

大家可能知道,我時(shí)?;钴S于Stack Overflow——當(dāng)今最熱門(mén)的程序員問(wèn)答網(wǎng)站。該網(wǎng)站的好同志們公開(kāi)了他們的數(shù)據(jù),任何人都可以通過(guò)這個(gè)頁(yè)面查詢(xún)他們的數(shù)據(jù)庫(kù):data.stackexchange.com

那里的很多問(wèn)題和回答都配上了XKCD(由Randall Munroe 創(chuàng)作)的漫畫(huà)鏈接,于是我決定扒一扒,哪幾篇漫畫(huà)最?lèi)?ài)被程序員拿來(lái)吐槽他們遇到的奇葩事。

我使用的查詢(xún)很簡(jiǎn)單:

  1. SELECT  link, cnt, id [Post Link], score  
  2. FROM    (  
  3.     SELECT  link, id, score,  
  4.         COUNT(*) OVER (PARTITION BY link) cnt,  
  5.         ROW_NUMBER() OVER (PARTITION BY link ORDER BY score DESC) rn  
  6.     FROM    (  
  7.         SELECT  id, score,  
  8.             'http' + SUBSTRING(start, 1, PATINDEX('%/%'SUBSTRING(start, 13, 30)) + 12)  
  9.         FROM    (  
  10.             SELECT  id, score,  
  11.                 SUBSTRING(body, PATINDEX('%://xkcd.com/[0-9]%', body), 20) start  
  12.             FROM    (  
  13.                 SELECT  TOP 400000  
  14.                     id, body, score  
  15.                 FROM    posts  
  16.                 ORDER BY 
  17.                     id DESC 
  18.                 UNION 
  19.                 SELECT  TOP 4000000  
  20.                     postId, text, score  
  21.                 FROM    comments  
  22.                 ORDER BY 
  23.                     id DESC 
  24.                 ) q  
  25.             WHERE   body LIKE '%://xkcd.com/[0-9]%' 
  26.             ) q  
  27.         ) q (id, score, link)  
  28.     ) q  
  29. WHERE   rn = 1  
  30. ORDER BY 
  31.     cnt DESC 

TOP語(yǔ)句是用來(lái)限制查詢(xún)范圍的,因?yàn)樗麄兊姆?wù)提供商不允許全文索引,所以不這樣的話(huà),就會(huì)請(qǐng)求超時(shí)。這個(gè)查詢(xún)只能涵蓋最近的帖子和評(píng)論,所以一些經(jīng)典的帖子可能被忽略了。不過(guò),這樣已經(jīng)足夠說(shuō)明問(wèn)題了。

你可以從這兒看全部結(jié)果,本文只討論排名最前的五篇。

#5 隨機(jī)數(shù) (10次引用)

1

引用這篇漫畫(huà)的自然是吐槽各種隨機(jī)數(shù)生成器坑爹的帖子,其中被頂最多的是這一篇:

161803398是一個(gè)特殊的數(shù)嗎?Math.Random()里用到的


我猜答案可能是「數(shù)學(xué)原理,不解釋」,但我還是希望有人能通俗地解釋一下此中玄機(jī)…

起因是,我今天在鼓搗BCL的源代碼,想看看以前用過(guò)的那些類(lèi)是怎么實(shí)現(xiàn)的。因?yàn)橐郧皼](méi)考慮過(guò)如何生成(偽)隨機(jī)數(shù)的問(wèn)題,所以我打算看看在這兒是怎么實(shí)現(xiàn)的。

全部代碼在此:http://referencesource.microsoft.com/#mscorlib/system/random.cs#29

  1. <code>private const int MSEED = 161803398</code> 

次生成Random()類(lèi)的隨機(jī)數(shù)種子都要用到這個(gè)MSEED值。

這個(gè)神奇的數(shù)字:161803398,我想破頭也想不出它是怎么來(lái)的。它不是個(gè)質(zhì)數(shù),也不是2的某次冪,跟哪個(gè)稍微有點(diǎn)意義的數(shù)字都不搭邊兒。我也查了它的二進(jìn)制和十六進(jìn)制形式,怎么看都只是一個(gè)沒(méi)有特征的數(shù)字。

我Google過(guò)了,沒(méi)有結(jié)果。


這個(gè)數(shù)來(lái)自于Phi值(黃金分割比)。
161803398 = 1.61803398 * 10^8 ≈ φ * 10^8

有關(guān)黃金分割比
另外,強(qiáng)烈推薦數(shù)學(xué)愛(ài)好者讀讀這一篇。
我還找到一篇含同樣觀點(diǎn)的關(guān)于隨機(jī)數(shù)生成器的學(xué)術(shù)論文。(見(jiàn)53頁(yè))

也就是說(shuō),出于某些(也許是有道理的)原因,黃金分割比貌似很適合拿來(lái)做隨機(jī)數(shù)生成器的種子……有意思的是,上面引用的那篇論文,編程語(yǔ)言中的偽隨機(jī)數(shù)生成器,第一頁(yè)就引用了上面這篇漫畫(huà)。

#4 goto (10次引用)

2

goto是某些編程語(yǔ)言中的一個(gè)構(gòu)造體(construct),用于跳過(guò)所有正在執(zhí)行的循環(huán)和處理,無(wú)條件跳轉(zhuǎn)到程序的任意位置。很多程序員(顯然還有迅猛龍)都認(rèn)為這是個(gè)很糟的編程習(xí)慣。

被頂最多的評(píng)論來(lái)自這個(gè)帖子:

解析錯(cuò)誤:Unexpected “


我遇到了這么一條錯(cuò)誤信息:Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) in C:\xampp\htdocs\game.php on line 12

源代碼如下:

  1. <?php  
  2.     $words=$_GET['words'];  
  3.     $array=explode(",",$words);  
  4.     $j=count($array)-1;  
  5.     goto a;  
  6.    
  7. a:  shuffle($array);  
  8.     $num=$array[0];  
  9.     echo "The Number Is = $num";  
  10.     echo "";  
  11.     echo "Please Enter The Number Within 10 Seconds";  
  12.     echo "<form method=\"get\" action=\"$_SERVER[\'PHP_SELF\']\" ";  **<--Line 12**  
  13.     echo "<input type=\"text\" name=\"num\"";  
  14.     echo "<input type=\"submit\" value=\"Press Me! \"";  
  15.     $input=$_GET['num'];  
  16.     goto b;  
  17.    
  18. b:  if($input==$array[0] && $array!=NULL)  
  19.     {  
  20.         array_pop($array);  
  21.         goto a;  
  22.     }  
  23.     elseif($array!=NULL)  
  24.     {  
  25.         goto a;  
  26.     }  
  27. else 
  28.     break;  
  29. ?> 

請(qǐng)別揪著GOTO不放,告訴我怎么解決這個(gè)錯(cuò)誤就好,我只是在試驗(yàn)用這段代碼解決個(gè)問(wèn)題。

#3 密碼強(qiáng)度 (11次引用)

相比用一串隨機(jī)字符(很難記)當(dāng)密碼,Randall建議使用基于自然語(yǔ)言的密碼短語(yǔ)(passphrase),既安全又好記。

得票最多的評(píng)論來(lái)自這個(gè)求助帖:

使用正則驗(yàn)證密碼復(fù)雜度


我在寫(xiě)一個(gè)javascript的正則表達(dá)式,用于驗(yàn)證密碼的復(fù)雜度,密碼必須符合這些條件:

至少包含12個(gè)字符
至少包含一個(gè)以下字符:* ^ !
至少包含兩個(gè)大寫(xiě)字母
至少包含兩個(gè)數(shù)字
至少包含一個(gè)小寫(xiě)字母

我在網(wǎng)上找到一個(gè)例子,修改了一下:

  1. (?=.*[0-9]{2,})(?=.*[a-z])(?=.*[A-Z]{2,}).{12,} 

但是還缺特殊字符的驗(yàn)證,而且兩個(gè)大寫(xiě)字母和兩個(gè)數(shù)字必須連在一起才能通過(guò)驗(yàn)證,結(jié)果如下:

  1. aMMericano11 - true 
  2. aMmeRican1o1 - false 

我希望第二個(gè)密碼也能通過(guò)驗(yàn)證,當(dāng)然還需要特殊字符的驗(yàn)證。

誰(shuí)能幫幫我嗎?

問(wèn)題在于,這個(gè)正則顯然不能允許密碼短語(yǔ)的使用,所以下面的評(píng)論用XKCD的鏈接巧妙地指出了這一點(diǎn)。

#p#

#2 前人的智慧 (16次引用)

所謂挫敗感:在網(wǎng)上搜索一個(gè)罕見(jiàn)的、奇特的問(wèn)題,只找到一個(gè)帖子,描述的問(wèn)題一模一樣,但是最后解決了沒(méi)有,如何解決的,沒(méi)有下文。

被頂最多的評(píng)論來(lái)自這個(gè)帖子:

部署EAR時(shí)報(bào)錯(cuò):Class bytes found but defineClass()failed for


今天我嘗試把一部分使用EJB 1.1的老代碼部署到Weblogic 10.3.6,但總是報(bào)這個(gè)奇怪的錯(cuò)誤:Class bytes found but defineClass()failed for

類(lèi)都被找到了,還能是什么問(wèn)題?


搞定了,項(xiàng)目代碼是用JDK 1.7編譯的,但是Weblogic服務(wù)器安裝的是1.6。
我用JDK 1.6重新編譯了一下,然后就能用了!
我把這件事記在這兒,因?yàn)檫@個(gè)問(wèn)題在網(wǎng)上實(shí)在太難找到答案了。

發(fā)帖的這位顯然花了很多時(shí)間才找到這個(gè)問(wèn)題的解決辦法,于是他好心地把問(wèn)題和答案都發(fā)到了Stack Overflow上。

此答案的評(píng)論只是一句「謝謝」,外加這篇漫畫(huà)的鏈接。從這條評(píng)論和這篇帖子的頂貼數(shù)來(lái)看,它至少幫到了三個(gè)人。

說(shuō)真的,干得漂亮!大家都向Jarrod Roberson看齊吧。

 

最后,獲得了96次引用的大熱門(mén),是這篇:

#1 老媽的逆襲 (96次引用)

一個(gè)沒(méi)安好心的老媽給他兒子取的這個(gè)名字,只要輸入到未防范SQL注入的數(shù)據(jù)庫(kù)里,就能把數(shù)據(jù)庫(kù)搞壞。

這種事不是第一次聽(tīng)說(shuō)了,你可以讀一讀這篇真人真事:搜索一個(gè)叫Null的客戶(hù)把程序整崩了

同時(shí),也有一些人,愛(ài)爾蘭血統(tǒng)的人(可能是有Null這個(gè)名字—譯者注),在注冊(cè)網(wǎng)站的時(shí)候,被矯枉過(guò)正的SQL注入預(yù)防手段弄得很不高興。

被頂最多的評(píng)論來(lái)自這個(gè)帖子:

SQL注入演示頁(yè)面


我在為我的學(xué)生們創(chuàng)建一個(gè)SQL注入演示頁(yè)面。我寫(xiě)了一個(gè)登錄頁(yè)面,但是我好像沒(méi)法進(jìn)行注入。下面是我寫(xiě)的頁(yè)面代碼。我已經(jīng)試過(guò)在username字段寫(xiě)入多個(gè)語(yǔ)句以繞過(guò)SQLi。我還能想到的就只有使用子查詢(xún),或者把我的代碼漏洞再搞大一點(diǎn)。

  1. <?php // Check to see if there was a request method that is a post type  
  2. if ($_SERVER['REQUEST_METHOD'] == 'POST')  
  3. {  
  4.     // Check to see if username field is null  
  5.     if (!emptyempty($_POST['username'])) {  
  6.    
  7.     // Connect to the server using credentials  
  8.     $con = mysql_connect('localhost','root','sqlcool1');  
  9.     // If the connection was not successful  
  10.     if (!$con){  
  11.         echo 'OUCH';  
  12.         die('Could not connect: '.mysql_error());  
  13.     }  
  14.     // Select the correct database from the server  
  15.     $db = mysql_select_db('injectme',$con);  
  16.     // Pass a sql query through the table to pull the user field that was entered in the form  
  17.     // Return the results in an array  
  18.     $sql = mysql_query('SELECT * FROM user WHERE username = "' . $_POST['username'] . '"');  
  19.     $row = mysql_fetch_row($sql);  
  20.    
  21.     // compare $row["password"] to $_post["password"]  
  22.     // if they match it's good: log them in  
  23.     // if not, they're beat: don't log them in  
  24.    
  25.     if ($_POST["username"] == $row[1] && $_POST["password"] == $row[2]) {  
  26.     // do something to let them know that it worked  
  27.     echo('<html>  
  28.         <head>  
  29.             <meta http-equiv="refresh" content="3; url=search.php">  
  30.         </head>  
  31.         <body>  
  32.             <p style="color:green">logged in</p>  
  33.         </body>  
  34.     </html>');  
  35.     } else {  
  36.         // do something to let them know it didn't work  
  37.         echo('<p style="color: red">Invalid username or password.</p>');  
  38.         echo('<form name="login" action="login.php" method="POST">  
  39.             Username: <input type="text" name="username">  
  40.             Password: <input type="password" name="password">  
  41.             <input type="submit" name="submit_button" value="Submit">  
  42.             <button type="submit" formaction="register.php">Register</button>  
  43.         </form>');  
  44.     }  
  45.     //Close the connected session with the server  
  46.     mysql_close($con);  
  47.    
  48.     } else {  
  49.    
  50.         // Repost Form  
  51.         echo ('<p style="color: red"> No username / password provided.</p>');  
  52.         echo('<form name="login" action="login.php" method="POST">  
  53.             Username: <input type="text" name="username">  
  54.             Password: <input type="password" name="password">  
  55.             <input type="submit" name="submit_button" value="Submit">  
  56.             <button type="submit" formaction="register.php">Register</button>  
  57.             </form>');  
  58.         }  
  59.     }  
  60.     else 
  61.     {  
  62.         echo('<form name="login" action="login.php" method="POST">  
  63.             Username: <input type="text" name="username">  
  64.             Password: <input type="password" name="password">  
  65.             <input type="submit" name="submit_button" value="Submit">  
  66.             <button type="submit" formaction="register.php">Register</button>  
  67.         </form>');  
  68.     }  
  69. ?> 

這位作者很奇葩地想故意把代碼寫(xiě)得能被SQL注入,結(jié)果卻做不到……

原文鏈接: EXPLAIN EXTENDED   翻譯: 伯樂(lè)在線(xiàn) - 輕如紙張

譯文鏈接: http://blog.jobbole.com/73411/

責(zé)任編輯:林師授 來(lái)源: 伯樂(lè)在線(xiàn)
相關(guān)推薦

2012-03-10 20:55:40

Nokia

2013-10-29 09:32:05

2013-10-29 09:08:05

2014-08-06 14:13:30

Windows Pho

2021-03-15 10:03:10

框架自動(dòng)化開(kāi)發(fā)

2013-03-14 13:49:31

Hotmail郵件服務(wù)器

2012-10-16 16:27:32

UbuntuAmazon搜索

2012-06-05 14:35:00

Windows Pho

2014-10-15 16:47:31

Android微軟

2012-05-21 17:37:17

Windows Pho吐槽

2019-07-15 10:11:48

主流編程JavaScript

2022-01-26 14:21:04

PCAMDWindows 11

2017-12-04 09:59:29

2015-03-10 10:29:26

微軟Windows 7Azure云服務(wù)

2012-08-24 10:49:51

備份恢復(fù)

2013-12-12 16:56:33

騰訊用戶(hù)

2024-07-25 13:51:46

2020-11-30 19:27:34

微信文件移動(dòng)應(yīng)用

2019-12-30 18:14:48

網(wǎng)絡(luò)購(gòu)票微軟技術(shù)

2021-04-19 14:13:10

安卓iOSBUG
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)