成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

吐槽編程問題的五張漫畫

開發 項目管理
那里的很多問題和回答都配上了XKCD(由Randall Munroe 創作)的漫畫鏈接,于是我決定扒一扒,哪幾篇漫畫最愛被程序員拿來吐槽他們遇到的奇葩事。

大家可能知道,我時?;钴S于Stack Overflow——當今最熱門的程序員問答網站。該網站的好同志們公開了他們的數據,任何人都可以通過這個頁面查詢他們的數據庫:data.stackexchange.com

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

我使用的查詢很簡單:

  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語句是用來限制查詢范圍的,因為他們的服務提供商不允許全文索引,所以不這樣的話,就會請求超時。這個查詢只能涵蓋最近的帖子和評論,所以一些經典的帖子可能被忽略了。不過,這樣已經足夠說明問題了。

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

#5 隨機數 (10次引用)

1

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

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


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

起因是,我今天在鼓搗BCL的源代碼,想看看以前用過的那些類是怎么實現的。因為以前沒考慮過如何生成(偽)隨機數的問題,所以我打算看看在這兒是怎么實現的。

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

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

次生成Random()類的隨機數種子都要用到這個MSEED值。

這個神奇的數字:161803398,我想破頭也想不出它是怎么來的。它不是個質數,也不是2的某次冪,跟哪個稍微有點意義的數字都不搭邊兒。我也查了它的二進制和十六進制形式,怎么看都只是一個沒有特征的數字。

我Google過了,沒有結果。


這個數來自于Phi值(黃金分割比)。
161803398 = 1.61803398 * 10^8 ≈ φ * 10^8

有關黃金分割比
另外,強烈推薦數學愛好者讀讀這一篇
我還找到一篇含同樣觀點的關于隨機數生成器的學術論文。(見53頁)

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

#4 goto (10次引用)

2

goto是某些編程語言中的一個構造體(construct),用于跳過所有正在執行的循環和處理,無條件跳轉到程序的任意位置。很多程序員(顯然還有迅猛龍)都認為這是個很糟的編程習慣。

被頂最多的評論來自這個帖子:

解析錯誤:Unexpected “


我遇到了這么一條錯誤信息: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. ?> 

請別揪著GOTO不放,告訴我怎么解決這個錯誤就好,我只是在試驗用這段代碼解決個問題。

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

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

得票最多的評論來自這個求助帖:

使用正則驗證密碼復雜度


我在寫一個javascript的正則表達式,用于驗證密碼的復雜度,密碼必須符合這些條件:

至少包含12個字符
至少包含一個以下字符:* ^ !
至少包含兩個大寫字母
至少包含兩個數字
至少包含一個小寫字母

我在網上找到一個例子,修改了一下:

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

但是還缺特殊字符的驗證,而且兩個大寫字母和兩個數字必須連在一起才能通過驗證,結果如下:

  1. aMMericano11 - true 
  2. aMmeRican1o1 - false 

我希望第二個密碼也能通過驗證,當然還需要特殊字符的驗證。

誰能幫幫我嗎?

問題在于,這個正則顯然不能允許密碼短語的使用,所以下面的評論用XKCD的鏈接巧妙地指出了這一點。

#p#

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

所謂挫敗感:在網上搜索一個罕見的、奇特的問題,只找到一個帖子,描述的問題一模一樣,但是最后解決了沒有,如何解決的,沒有下文。

被頂最多的評論來自這個帖子:

部署EAR時報錯:Class bytes found but defineClass()failed for


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

類都被找到了,還能是什么問題?


搞定了,項目代碼是用JDK 1.7編譯的,但是Weblogic服務器安裝的是1.6。
我用JDK 1.6重新編譯了一下,然后就能用了!
我把這件事記在這兒,因為這個問題在網上實在太難找到答案了。

發帖的這位顯然花了很多時間才找到這個問題的解決辦法,于是他好心地把問題和答案都發到了Stack Overflow上。

此答案的評論只是一句「謝謝」,外加這篇漫畫的鏈接。從這條評論和這篇帖子的頂貼數來看,它至少幫到了三個人。

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

 

最后,獲得了96次引用的大熱門,是這篇:

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

一個沒安好心的老媽給他兒子取的這個名字,只要輸入到未防范SQL注入的數據庫里,就能把數據庫搞壞。

這種事不是第一次聽說了,你可以讀一讀這篇真人真事:搜索一個叫Null的客戶把程序整崩了

同時,也有一些人,愛爾蘭血統的人(可能是有Null這個名字—譯者注),在注冊網站的時候,被矯枉過正的SQL注入預防手段弄得很不高興。

被頂最多的評論來自這個帖子:

SQL注入演示頁面


我在為我的學生們創建一個SQL注入演示頁面。我寫了一個登錄頁面,但是我好像沒法進行注入。下面是我寫的頁面代碼。我已經試過在username字段寫入多個語句以繞過SQLi。我還能想到的就只有使用子查詢,或者把我的代碼漏洞再搞大一點。

  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. ?> 

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

原文鏈接: EXPLAIN EXTENDED   翻譯: 伯樂在線 - 輕如紙張

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

責任編輯:林師授 來源: 伯樂在線
相關推薦

2013-10-29 09:08:05

2013-10-29 09:32:05

2012-03-10 20:55:40

Nokia

2014-08-06 14:13:30

Windows Pho

2012-10-16 16:27:32

UbuntuAmazon搜索

2021-03-15 10:03:10

框架自動化開發

2013-03-14 13:49:31

Hotmail郵件服務器

2012-05-21 17:37:17

Windows Pho吐槽

2014-10-15 16:47:31

Android微軟

2012-06-05 14:35:00

Windows Pho

2019-07-15 10:11:48

主流編程JavaScript

2013-12-12 16:56:33

騰訊用戶

2012-08-24 10:49:51

備份恢復

2022-01-26 14:21:04

PCAMDWindows 11

2017-12-04 09:59:29

2015-03-10 10:29:26

微軟Windows 7Azure云服務

2024-07-25 13:51:46

2019-12-30 18:14:48

網絡購票微軟技術

2021-04-19 14:13:10

安卓iOSBUG

2016-12-14 09:54:56

Safari瀏覽器蘋果
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久大陆 | 精品一二三区在线观看 | 91欧美精品成人综合在线观看 | 欧美一区二区三区在线观看 | 国产成人精品免费视频 | 亚州精品天堂中文字幕 | 精品91久久 | 国产精品福利在线 | 久久久久成人精品 | 亚洲欧美视频一区 | 成人三级视频 | 久草网址| 一区二区三区小视频 | 国产欧美精品一区二区三区 | 在线色网 | 免费视频一区二区三区在线观看 | 中文字幕av中文字幕 | 中文字幕精品一区二区三区精品 | 欧美日韩综合一区 | 啪啪毛片| 最近日韩中文字幕 | 国产精品美女久久久久久久久久久 | 丝袜美腿一区 | 四虎免费视频 | 久久久久久久久久久一区二区 | 日韩一区二区三区视频 | 日日草夜夜草 | 美女久久久久 | 91麻豆精品国产91久久久久久 | 国产一区二区电影网 | 国产精品第2页 | 久久香焦 | 国产福利资源 | 国产一区二区三区在线观看免费 | 久久青青| 成人毛片视频免费 | 狠狠婷婷综合久久久久久妖精 | 日韩精品极品视频在线观看免费 | 日本亚洲一区 | 国产成人精品一区二区三区四区 | 精品福利在线 |