不得不說,張達的思路比較跳脫,看到這些照片,他居然想到做一個網站對這些照片進行打分,雖然他不懂技術,但是卻直覺上認為這是可行的。
林鴻思考了一下這件事的意義,實際上,投票的過程可以算是一種算法,通過大範圍的統計,將優質的結果給篩選出來,不說這個算法的外在表現,其背後所隱含的意義卻非常有意思。
這實際上也是一種對集體智慧的駕馭過程,通過集體的智慧尋找最佳〖答〗案。
林鴻最終同意了下來,他將這件事當成一次實驗,很想看看最終是否真的能夠像預料的那樣,找出最優質的結果。
林鴻說道:“可是可以做,隻是不知道會有多少人參與到這個過程中來。”
“這個你放心,我負責來宣傳!”李奇自告奮勇地說道。
他對自己的交際能力還是很自信的,基本上這麽兩天下來,班級裏麵的所有男生他都認識了,並且在同一層的其他班級的男生他也認識了不少。
張達建議道:“我們最好是能夠趕在軍訓之前將其做出來,不然就要等三個星期之後了。”
“嗯,應該費不了多少時間。”
說做就做,林鴻立刻開始動手。
他打算直接使用自己的筆記本當服務器,在上麵建立一個這樣的網站。
其他三人根本不懂這方麵的技術,隻能站在林鴻背後圍觀。
製作網站在這個時期,也是一種非常高端的工作,一般人連網站的基本運行原理都不知道,更別說製作網頁了。
林鴻有意給他們普及這方麵的知識,開拓眼界,所以他一邊開始部署服務器和開發環境,一邊給他們解說:“我現在做的這個網站,是需要通過瀏覽器訪問的,因為這樣更直觀,還可以直接瀏覽圖片。瀏覽器是一種能夠訪問萬維網服務器的軟件,它能夠從服務器中讀取特定格式的文件,然後以另外一種格式將其展示出來。”
林鴻停頓了一下,覺得這樣可能有些抽象,打了個比方:“它就好像是一個翻譯,將網頁編程語言翻譯成為我們能夠看懂的文本語言。瀏覽器和服務器之間所使用的協議是一種叫做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界美女排行榜評比互動進行時!”正文的內容也寫得極具煽動性,一時間引起了許多水木學生的圍觀。
林鴻思考了一下這件事的意義,實際上,投票的過程可以算是一種算法,通過大範圍的統計,將優質的結果給篩選出來,不說這個算法的外在表現,其背後所隱含的意義卻非常有意思。
這實際上也是一種對集體智慧的駕馭過程,通過集體的智慧尋找最佳〖答〗案。
林鴻最終同意了下來,他將這件事當成一次實驗,很想看看最終是否真的能夠像預料的那樣,找出最優質的結果。
林鴻說道:“可是可以做,隻是不知道會有多少人參與到這個過程中來。”
“這個你放心,我負責來宣傳!”李奇自告奮勇地說道。
他對自己的交際能力還是很自信的,基本上這麽兩天下來,班級裏麵的所有男生他都認識了,並且在同一層的其他班級的男生他也認識了不少。
張達建議道:“我們最好是能夠趕在軍訓之前將其做出來,不然就要等三個星期之後了。”
“嗯,應該費不了多少時間。”
說做就做,林鴻立刻開始動手。
他打算直接使用自己的筆記本當服務器,在上麵建立一個這樣的網站。
其他三人根本不懂這方麵的技術,隻能站在林鴻背後圍觀。
製作網站在這個時期,也是一種非常高端的工作,一般人連網站的基本運行原理都不知道,更別說製作網頁了。
林鴻有意給他們普及這方麵的知識,開拓眼界,所以他一邊開始部署服務器和開發環境,一邊給他們解說:“我現在做的這個網站,是需要通過瀏覽器訪問的,因為這樣更直觀,還可以直接瀏覽圖片。瀏覽器是一種能夠訪問萬維網服務器的軟件,它能夠從服務器中讀取特定格式的文件,然後以另外一種格式將其展示出來。”
林鴻停頓了一下,覺得這樣可能有些抽象,打了個比方:“它就好像是一個翻譯,將網頁編程語言翻譯成為我們能夠看懂的文本語言。瀏覽器和服務器之間所使用的協議是一種叫做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界美女排行榜評比互動進行時!”正文的內容也寫得極具煽動性,一時間引起了許多水木學生的圍觀。