不得不說,張達的思路比較跳脫,看到這些照片,他居然想到做一個網站對這些照片進行打分,雖然他不懂技術,但是卻直覺上認為這是可行的。


    林鴻思考了一下這件事的意義,實際上,投票的過程可以算是一種算法,通過大範圍的統計,將優質的結果給篩選出來,不說這個算法的外在表現,其背後所隱含的意義卻非常有意思。


    這實際上也是一種對集體智慧的駕馭過程,通過集體的智慧尋找最佳〖答〗案。


    林鴻最終同意了下來,他將這件事當成一次實驗,很想看看最終是否真的能夠像預料的那樣,找出最優質的結果。


    林鴻說道:“可是可以做,隻是不知道會有多少人參與到這個過程中來。”


    “這個你放心,我負責來宣傳!”李奇自告奮勇地說道。


    他對自己的交際能力還是很自信的,基本上這麽兩天下來,班級裏麵的所有男生他都認識了,並且在同一層的其他班級的男生他也認識了不少。


    張達建議道:“我們最好是能夠趕在軍訓之前將其做出來,不然就要等三個星期之後了。”


    “嗯,應該費不了多少時間。”


    說做就做,林鴻立刻開始動手。


    他打算直接使用自己的筆記本當服務器,在上麵建立一個這樣的網站。


    其他三人根本不懂這方麵的技術,隻能站在林鴻背後圍觀。


    製作網站在這個時期,也是一種非常高端的工作,一般人連網站的基本運行原理都不知道,更別說製作網頁了。


    林鴻有意給他們普及這方麵的知識,開拓眼界,所以他一邊開始部署服務器和開發環境,一邊給他們解說:“我現在做的這個網站,是需要通過瀏覽器訪問的,因為這樣更直觀,還可以直接瀏覽圖片。瀏覽器是一種能夠訪問萬維網服務器的軟件,它能夠從服務器中讀取特定格式的文件,然後以另外一種格式將其展示出來。”


    林鴻停頓了一下,覺得這樣可能有些抽象,打了個比方:“它就好像是一個翻譯,將網頁編程語言翻譯成為我們能夠看懂的文本語言。瀏覽器和服務器之間所使用的協議是一種叫做http的協議,全稱就是超文本傳送協議,它允許將超文本標記語言,也就是使用html編寫的文檔從l語言,並且編寫了一個簡單的“helloword”程序給他們示範。


    這種語言非常簡單,並且很多標簽都是成對出現的,所以吳東他們都聽懂了。


    “利用html語言,我們可以做出內容非常豐富的網頁。”林鴻繼續說道“但是這些網頁都是靜態的,如果想要讓其中的內容發生變化,例如張達所說的,給他們打分,然後實時顯示出來,這就涉及到動態語言方麵的內容了,並且還需要保存數據,利用到數據庫。”


    林鴻也不指望一次性就直接將他們全部教懂,隻是讓他們有一個比較直觀的認識,如果以後自己有興趣,可以進一步進行研究。所以他的講解基本上都是一遍過,不管他們能聽懂還是沒聽懂。


    他打算使用的動態編程語言還是他比較擅長的c語言,通過一種“通用網關接口(cgi)”的技術來和用戶進行交互,記錄用戶對照片的評分。


    cgi語言是由美國國家超級電腦應用中心開發的一種技術,1993年就出現了,後來很快便在互聯網上流行起來,成為比較主流的動態web編程技術,它的編程語言可以有多種,比較常見的有perl語言,當然其他諸如unix的shell命令,python,c以及c++都可以用來開發cgi程序。


    林鴻對這一塊非常熟悉,所以他很快就將服務器的環境給部署完畢,將cgi的模塊掛載上去,然後編寫了一個簡單的加法交互程序,讓用戶可以在上麵輸入兩個數字然後點確認,就可以將其結果給計算出來。


    “老二,你去你的電腦上訪問看看。”林鴻說道。


    “這就可以了?怎麽訪問?”張達還有些迷糊。


    “直接輸入我的ip地址就行了。”


    張達將自己的電腦打開,啟動瀏覽器程序,然後在地址欄上輸入了林鴻的ip地址,確認之後,他看到瀏覽器中出現了一個加法計算器界麵。


    他嚐試著輸入了一個“1+2”點擊“提交”之後,界麵上立刻顯示了一個“3”。


    雖然隻是一個簡單的功能,但是他們都覺得這非常神奇。


    “老大,這個就是你剛剛編寫的程序?”吳東饒有興致地問道。


    “是的,這隻是最簡單的程序,但是也實現了動態的交互,不單單隻是靜態網頁了。”


    剛剛那個過程,實際上張達提交之後,會在林鴻的這台筆記本上運行一個名為add.cgi的程序,這是一個用c語言編寫之後再編譯過後的可執行程序,功能就是接受從網頁前端提交過來的數據,然後再進行處理。


    在此之前,他們三人都覺得網站製作和編程都非常簡單,可是今天看到林鴻這樣示範一下,這塊神秘麵紗終於被揭開,他們發現也不過如此。


    當然,這個過程如果不是親眼去看,他們可能還需要很長一段時間才能夠了解到這其中的基本原理。這就是有師父或者導師的好處所在了,可以節省自己很多時間和精力,少走很多彎路。


    接下來便是設計數據結構,林鴻所使用的數據庫是mysql,雖然創辦這個數據軟件的公司去年才開始創辦,但是他們發布出來的這個數據庫卻是開源的,並且非常好用,很快就在網絡上流行起來。


    由於功能比較簡單,涉及到的數據保存隻有評分數值,所以林鴻隻設計了一張表,用來保存這個數值。至於以後的統計結果,則隻要在這個基礎上進行相應的計算就行了。


    雖然照片不少,但是林鴻靈活使用命令行直接自動化處理,將這些照片進行重命名並且導入到了數據庫中,姓名和簡單的文字內容也一起導入。


    僅僅huā了不到半個小時的時間,林鴻就將這個創意的原型給實現出來了。


    吳東他們三人站在林鴻的身後,簡直看得目不暇接,剛開始的時候林鴻還解釋幾句,到了後麵,由於設計到的知識點比較多,一兩句話也說不清楚,他便直接給省略了,這樣一來,他的速度便瞬間快了起來。


    “已經編好了。”林鴻調出一個圖形化的瀏覽器,直接輸入localhost,一個比較簡單的界麵便顯示了出來,上麵顯示著一排排的照片,可以按照院係進行分類瀏覽。


    張達:“牛逼啊!”


    李奇:“好快啊!”


    吳東:“我怎麽才能夠達到這種程度呢?”


    他們三人實在是無法形容自己此刻的心情,雖然他們並不懂技術,可是也知道之前林鴻那一番行雲流水般的表演,並不是隨便什麽人都能夠做到的。


    “可能還有些bug,你們來測試一下,等沒什麽大問題之後,再對外公布。”林鴻將座位讓了出來。


    程序員由於清楚自己所編寫的軟件一切細節,所以他們自己測試的時候,往往都會按照自己的理解去使用軟件,這樣的結果就是沒有任何bug。故而一般負責軟件測試的都是另外的人負責,這樣才能找到一些意想不到的bug。


    李奇立刻坐在了林鴻的位置上。


    而張達則連忙跑到自己的電腦上,刷新了自己的頁麵,也同樣看到了效果。


    他點進去第一章照片,然後看到了有評分的選項,輸入評分之後,照片下麵立刻出現了評分記錄。而排行榜那兒,這個同學立刻排在了第一位,這是因為暫時還隻有她一個人有評分記錄。


    他們開始對照片進行打分。


    吳東雖然沒有搶到位置,不過他也不在意,站在李奇身後不停喊著“5分、3分、4分……”


    幾分鍾之後,張達提除了第一個bug:“我輸入的時候,不是數字也能夠接受,例如直接輸入a……”


    林鴻點頭道:“的確是個問題,我忘記對輸入進行判斷了,應該限製一下,隻能輸入1到10的數字,或者我幹脆直接將其做為按鈕形式,不讓他們進行輸入。”


    接著,李奇也提出一個問題:“好像評分沒有限製啊?一個人可以一直重複評分,這樣一來很容易刷分數吧?”


    林鴻:“這個可以通過限製ip來實現,同一個ip同一個照片最多允許四票好了。”


    吳東:“我覺得排名算法還得進行優化一下,直接這樣相加再相除的算法有點過於簡單了,應該將最高分和最低分過濾掉,排除這些異常數據的幹擾。”


    林鴻:“有道理。”


    ……


    經過他們不斷地提出各種問題,林鴻也持續地對這個程序進行完善,剛開始有些簡單的原型,漸漸變得複雜起來。在這個過程中,他自己也受到了不啟發而產生了一些靈感,例如碰到分數一樣的兩個人的時候,就會觸發另外一個機製,兩張照片會同時顯示,然後讓人判斷哪一張更好看,於是會加上一個很小的數值來進行區分。


    在四點多的時候,整個網站基本上都差不多了,他們都覺得再也找不到任何可以改進的地方。


    於是,李奇跑到學校商店買來紅紙以及筆墨,直接設計了一張宣傳海報,然後在去食堂的必經之地——宣傳欄上麵貼了出來。


    海報的標題為“96界美女排行榜評比互動進行時!”正文的內容也寫得極具煽動性,一時間引起了許多水木學生的圍觀。

章節目錄

閱讀記錄

超腦黑客所有內容均來自互聯網,uu小說網隻為原作者瘋狂小強的小說進行宣傳。歡迎各位書友支持瘋狂小強並收藏超腦黑客最新章節