UPnP的全稱是Universal Plug and Play,是由UPnP論壇提出並完善的一套網絡協議。注意這裏使用了「一套」這個詞語——UPnP並不是一個協議,而是一組網絡協議的集合。如果你還不瞭解UPnP是做什麼的,微軟的這篇文章描述了一個使用UPnP的場景,這篇文章寫於2001年,但文中描寫的場景即使在今天看來,也足夠人們期待。這也從另一方面說明,這項技術還有待進一步發展和普及。
本文將從協議的角度,並儘量使用通俗的語言,來簡單分析一下UPnP的工作原理。
UPnP的全稱是Universal Plug and Play,是由UPnP論壇提出並完善的一套網絡協議。注意這裏使用了「一套」這個詞語——UPnP並不是一個協議,而是一組網絡協議的集合。如果你還不瞭解UPnP是做什麼的,微軟的這篇文章描述了一個使用UPnP的場景,這篇文章寫於2001年,但文中描寫的場景即使在今天看來,也足夠人們期待。這也從另一方面說明,這項技術還有待進一步發展和普及。
本文將從協議的角度,並儘量使用通俗的語言,來簡單分析一下UPnP的工作原理。
這兩天陸續使用了好幾個網站的API,很是不爽,所以寫一個簡單的小結在這裏,僅供參考。
如果你只是需要一個能在熄燈之後使用的路由器,請在網上買一個帶電池的路由器,只要大約100元即可。
本解決方案主要包括:
這兩天在做高級數據結構(ADS)課程的大作業,內容是做一個推薦系統。我們選取的是C. Wang and D. Blei. Collaborative topic modeling for recommending scientific articles.一文中描述的模型。文章的作者C. Wang在個人主頁上發佈了論文中使用系統的部分代碼,代碼使用C++語言完成的。而我們的系統是用Java搭建的,因此我們需要將C++代碼移植到Java中。
本以爲這是一個簡單的工作,只需要簡單的改寫即可,但沒想到第一次移植的版本跑出來的結果的準確率只有作者程序的1/10。於是我意識到程序改錯了。經過漫長的人工靜態debug,終於把程序改對了。
通過半個多學期的實踐,我發現,想用好數據庫真的是沒那麼容易。
之前有兩篇文章來敘述千尋的數據庫設計,但在實踐中,千尋並沒有按照之前設計的方式來使用數據庫。最主要的原因是,數據在MongoDB和redis中重複出現,這個冗餘帶來的一致性問題比較難以解決,雖然在寫代碼的時候已經通過code review來儘量避免數據的不一致,但一致性的bug還是難以避免。