歡迎來到梁良 | LonBlog,這里記錄下了我生活點(diǎn)點(diǎn)滴滴。
2010年7月12日
今天弄了一天的Ajax中文亂碼問題,Ajax的亂碼問題分為兩種:
1. JavaScript輸出的中文亂碼,
比如:alert("中文亂碼測(cè)試");
2. 這第二種就是Ajax從服務(wù)器端獲得的數(shù)據(jù)出現(xiàn)亂碼的問題。(我搜了n個(gè)小時(shí)試了n中方法才找到答案)
現(xiàn)在將我搜集的比較有效的方法都與大家分享:(我使用的開發(fā)環(huán)境是Eclipse,相信其他語言和開發(fā)環(huán)境都差不太多。)
比如
var message = xmlHttp.responseText;
alert("message: "+message);
獲得這個(gè)message輸出就是亂碼
解決辦法有兩種:
(1)在jsp文件里引入js文件時(shí)可以這樣寫:<script Charset="UTF-8" type="text/javascript" src="jslib/jquery-1.4.2.min.js"></script>,該方法具有移植性
(2)(該方法可能會(huì)導(dǎo)致?lián)Q一臺(tái)電腦導(dǎo)入項(xiàng)目后js文件里中文會(huì)亂碼). 修改編碼。切記要將代碼備份一下,改了編碼之后中文會(huì)變?yōu)閬y碼。
在js文件上右鍵點(diǎn)擊Properties,最好是在菜單欄欄里選擇Window-->Perferences(以絕后患),修改Text file encode 為UTF-8(這里應(yīng)當(dāng)與jsp中的編碼相同)
同樣的將JavaScript source file和JSP的Default encoding設(shè)置為UTF-8(這里應(yīng)當(dāng)與jsp中的編碼相同,這樣以后的項(xiàng)目就都是utf-8的編碼了,推薦使用這個(gè))
(2). 注意response.setContentType("text/html;charset=utf-8");和PrintWriter out = response.getWriter();的位置關(guān)系,切記要將PrintWriter out = response.getWriter();放在response.setContentType("text/html;charset=utf-8");的后面,否則設(shè)置的編碼將無效,這也是我弄了n久都搞不定的原因!!!
3. 客戶端發(fā)給服務(wù)器端得中文數(shù)據(jù)為亂碼
解決辦法:示例:客戶端的javaScript腳本
function verify(){
$.get("AJAXServer?name="+encodeURI(encodeURI($("#userName").val())),null,function callback(data){$("#result").html(data);});
}
?注意:encodeURI需要使用兩次!
服務(wù)器端代碼:
//1.取參數(shù)
String str = request.getParameter("name");
str = java.net.URIDecode.decode(str,"UTF-8")
下載發(fā)布
安裝和使用方法:將壓縮包“psp版豆瓣電臺(tái)”文件夾中的“PSP”文件夾解壓在psp根目錄中,在XMB的“網(wǎng)絡(luò)”-》“互聯(lián)網(wǎng)電臺(tái)”-》“douban.fm”中打開。注意系統(tǒng)選擇中文,編碼GBK(936),瀏覽器文字編碼:自動(dòng)選擇
- Update:
1.0.0
2010-6-18 新建PSP豆瓣電臺(tái)項(xiàng)目
1.0.1
2010-7-20 第一個(gè)Demo
1.0.2
2010-8-8 在1.0.1版本上增加了官方UI
1.0.3
2011-5-15 PSP豆瓣電臺(tái)發(fā)布
1.0.4
2011-5-17 新增加20個(gè)豆瓣頻道,用搖桿光標(biāo)選擇下拉框的頻道后自動(dòng)播放相應(yīng)頻道的歌曲
1.0.5
2011-5-22 新增豆瓣私人頻道
1.0.6
2011-5-23 新增加紅心、去紅心、刪除歌曲功能
1.1.0
2011-5-24 新增Lee MHz 頻道、優(yōu)化UI
1.1.1
2011-5-25 修正歌曲還差0.5秒未播放完就開始跳歌問題
1.1.2
2011-5-27 修正Skip歌曲時(shí)延時(shí)問題,增加短報(bào)告處理方法,刪除UI中多余的控件讓界面更清爽
1.1.3
2011-6-1 增加長(zhǎng)報(bào)告處理方法,使后臺(tái)的歌曲喜好計(jì)算更加準(zhǔn)確
1.1.4
2011-6-10 新增一臺(tái)服務(wù)器,今后開始采取自動(dòng)腳本更新方式,方便同學(xué)們升級(jí)。
1.1.5
2011-6-24 作者 Saoirse Ronan 對(duì)豆瓣電臺(tái)圖標(biāo)進(jìn)行了美化修復(fù)
-
psp版豆瓣電臺(tái).rar (145.32 KB) 下載地址:
-
thunder://QUFodHRwOi8vMTI3LjAuMC4xLzExMDUxNjE4NDlmODdkN2EyOTNhZGRjNWVhLnJhcj9maWQ9ZnVTVnFDTTFNcDVkSlp1eGhMRjlKMjRSNGtwR1JRSUFBQUFBQUs2YldpMGo3SThjK2FRZzdkQ1pyandzWUxXcCZtaWQ9NjY2JnRocmVzaG9sZD0xNTAmdGlkPTRGMjJFOUUyQjkxMjhEN0UxRUNGNTUwMUE4NDNFOTRBJnNyY2lkPTZaWg==
(2011年5月18日 更新:新增加二十多個(gè)豆瓣頻道)
-
- 115網(wǎng)盤:http://u.115.com/file/bhnqilut
-
thunder://QUFodHRwOi8vMTI3LjAuMC4xL3BzcOeJiOixhueTo+eUteWPsCgyMDExLTUtMTjmm7TmlrApLnJhcj9maWQ9VzVnWEZLbW90cThPOHpldmRnQmxUWFFtcUF1alJRSUFBQUFBQU9nZjBYeHVBaS9TVWZneUlwazN5c2hSL0FBZyZtaWQ9NjY2JnRocmVzaG9sZD0xNTAmdGlkPTU5RDA1MkYwNTJFMTQzQUEwMzg2N0QwNkZBM0YzREQ4JnNyY2lkPTZaWg==
(2011-5-22 更新:新增豆瓣私人頻道)
115網(wǎng)盤:http://u.115.com/file/aq86ktqe
(2011-5-23 更新:新增加紅心、去紅心、刪除歌曲功能)
- 115網(wǎng)盤:http://u.115.com/file/aq86k99f
-
- (2011-5-24 更新:新增Lee MHz 頻道、優(yōu)化UI)
-
- 115網(wǎng)盤:http://u.115.com/file/aq867udi
(2011-5-25 更新:修正歌曲還差0.5秒未播放完就開始跳歌問題)
- 115網(wǎng)盤:http://u.115.com/file/e61dkddd
(2011-5-27 更新:修正Skip歌曲時(shí)延時(shí)問題,增加短報(bào)告處理方法,刪除UI中多余的控件讓界面更清爽)
115網(wǎng)盤:http://u.115.com/file/e61dk1rk
- thunder://QUFodHRwOi8vMTI3LjAuMC4xL3BzcOeJiOixhueTo+eUteWPsCgyMDExLTUtMjfmm7TmlrApLnJhcj9maWQ9M2dVc3dvVG1ZUWlONjlCYndoanZMQ2pPWXJwOG5BRUFBQUFBQU0xSUVyM003TnRiR1ZGY0hWYUE2WXJzejBIZiZtaWQ9NjY2JnRocmVzaG9sZD0xNTAmdGlkPTA2OTAyMjYxOTNGREFEMTgyRjdBNjg3MzU5NjE0Qzc2JnNyY2lkPTZaWg==
-
- (2011-6-1 更新: 增加長(zhǎng)報(bào)告處理方法,使后臺(tái)的歌曲喜好計(jì)算更加準(zhǔn)確)
-
- dbank網(wǎng)盤: http://dl.dbank.com/c0pfpb8e53
-
(2012-3-28 更新: 公共頻道)
dbank網(wǎng)盤: http://dl.dbank.com/c0gdv0aj9c
Visual Studio 2008中文正式版下載和破解
Visual Studio 2008中文正式版官方下載地址:
下載壓縮分卷:(7個(gè)分卷壓縮包均需下載才能正常安裝,包含MSDN。解壓后是一個(gè)ISO文件,前面6個(gè)壓縮包均為700M,最后一個(gè)壓縮包為142M)
分卷1
分卷2
分卷3
分卷4
分卷5
分卷6
分卷7
Visual Studio 2008團(tuán)隊(duì)資源管理器:
http://download.microsoft.com/download/d/7/2/d72f8415-7b4b-4168-ba3b-65c3ca4c1f81/VS2008TeamExplorerCHS.iso
另附兩個(gè)Visual Studio 2008非官方下載地址:
首先聲明這和MSDN上提供的90days-trial是不同的版本。電驢上已經(jīng)有ZWT放出的VSTS2008了,下載中,目前還無法驗(yàn)證其真實(shí)性。另外還有一個(gè)BT下載的種子,同樣是ZWT放出的這個(gè)版本,似乎連接數(shù)不多。之前公布的Visual Studio Team System 2008 正式版下載,確認(rèn)是真貨。
eMule下載:Visual.Studio.Team.System.2008-ZWTiSO
BT下載:Microsoft.Visual.Studio.Team.System.2008.Team.Suite-ZWTiSO.zip
把Visual Studio 2008九十天試用版本升級(jí)成正式版的辦法:
第一種:
升級(jí)正式版的方法是把Setupsetup.sdb文件中的[Product Key](用UltraISO編輯),
由
T2CRQGDKBVW7KJR8C6CKXMW3D
修改為
PYHYPWXB3BB2CCMV9DX9VDY8T
因?yàn)榫攀煸囉冒姹疽呀?jīng)是 rtm版本。所以改變序列號(hào)以后的升級(jí)或者安裝,就會(huì)變成正式版。不再有使用期限。
第二種:在開始>設(shè)置>控制面版>添加或刪除程序>卸載Visual Studio 2008>出現(xiàn)卸載界面>點(diǎn)擊Next>輸入上面CD-key ->出現(xiàn)成功畫面即可完美將試用版升級(jí)成為正式版。
Visual Studio 2008正式版序列號(hào)CDKEY:PYHYP-WXB3B-B2CCM-V9DX9-VDY8T
另附 Visual Studio 2008 SP1
wmr也山寨了一個(gè)Google瞬時(shí)搜索。其使用了Google Ajax Search API,將其中的onkeyup加入了action的值,就得到了一個(gè)瞬時(shí)搜索。其對(duì)比之前的那些山寨瞬時(shí)搜索的優(yōu)勢(shì)在于支持加密傳輸,不怕發(fā)生意外。
Wine是一個(gè)在X86、X86-64上容許類Unix操作系統(tǒng)在X Window System下運(yùn)行Microsoft Windows程序的軟件。另一方面,計(jì)算機(jī)程序設(shè)計(jì)師能經(jīng)由Wine的程序庫將視窗的程序轉(zhuǎn)移至類Unix操作系統(tǒng)中運(yùn)行。也有不少軟件經(jīng)過 Wine測(cè)試后發(fā)布,比如Picasa,uTorrent,MediaCoder. Wine解為 "Wine Is Not an Emulator",即Wine不是模擬器。雖然Wine有另一個(gè)非官方名稱,"Windows Emulator",即Windows模擬器。Wine的正確名稱是"Wine",不是全大寫、全小寫或大小寫混合.Wine是自由軟件,在GNU寬通用公共許可證(LGPL) 下發(fā)布.
下載:http://ibiblio.org/pub/linux/system/emulators/wine/wine-1.3.11.tar.bz2
What's new in this release (see below for details):
- PO files now used for translations.
- Various JavaScript improvements.
- Some fixes to the Wine debugger.
- Translation updates. - Various bug fixes.
在剛推出體驗(yàn)版不久的時(shí)間,在網(wǎng)上再次出現(xiàn)了兩個(gè)游戲的破解版。這次的神速破解全系統(tǒng)通用確實(shí)讓人驚嘆,到底是誰做的好事呢?目前暫時(shí)還是一個(gè)謎,但是對(duì)于廣大還處于低端固件系統(tǒng)的玩家來說,這無疑是一大的福音。那么小編也神馬都不說了,快速的下載游戲的破解版吧。







點(diǎn)擊下載
游戲名稱:憤怒的小鳥
英文名稱:Minis - Angry Birds
制作廠商:Abstraction Games / Rovio Mobile Ltd.
代理發(fā)行:Chillingo Ltd.
游戲類型:ACT - Action Game(動(dòng)作射擊游戲)
載體容量:UMD×1
對(duì)應(yīng)主機(jī):Play Station Portable / Nintendo Wii / Nintendo Dual Screen / Android / iPhone / iPad
語言版本:英文(歐版)
發(fā)行日期:2011年01月05日(PSP歐版)
官方網(wǎng)站:
http://www.chillingo.com/sku.htm?sid=269
游戲簡(jiǎn)介:
益智動(dòng)作射擊游戲《憤怒的小鳥》(Angry Birds)是Rovio Mobile開發(fā)的一款極為有趣的小游戲,曾經(jīng)在蘋果、谷歌手機(jī)平臺(tái)以及網(wǎng)頁游戲上推出過作品。日前游戲發(fā)行商Chillingo公司正式宣布這款作品將會(huì)登陸PSP掌機(jī),游戲目前預(yù)定2011年1月份在PSN上以MINIS游戲販賣的形式提供下載。
《憤怒的小鳥》玩家控制一群不同樣子的小鳥從一群丑惡的肥豬手里搶回他們珍貴的蛋。而那些肥豬則建造了各種各樣不同材料的碉堡和防御設(shè)施來防御這群憤怒的丟了蛋的小鳥。而游戲的故事也相當(dāng)有趣,為了報(bào)復(fù)偷走鳥蛋的肥豬們,鳥兒以自己的身體為武器,仿佛炮彈一樣去攻擊肥豬們的堡壘。游戲是十分卡通的2D畫面,看著憤怒的紅色小鳥,奮不顧身的往綠色的肥豬的堡壘砸去,那種奇妙的感覺還真是令人感到很歡樂。而游戲的配樂同樣充滿了歡樂的感覺,輕松的節(jié)奏,歡快的風(fēng)格。不過在進(jìn)行游戲的時(shí)候卻沒有這樣的音樂,有點(diǎn)可惜。但是將鳥兒們彈射出去時(shí),鳥兒的叫聲倒是給人很好笑的感覺。
游戲總共有100多個(gè)關(guān)卡可以選擇,每一關(guān)都有一定數(shù)量的小鳥可供選擇,他們總共有6個(gè)不同的種類,每一種都有不同的攻擊效果,玩家的終極目標(biāo)就是將這些小鳥像彈弓一樣彈射出去,摧毀那些肥豬的碉堡。當(dāng)所有躲在碉堡里的肥豬被砸扁或者做掉之后,游戲就過關(guān)了。通過嘗試不同的方式和不同的彈射角度,玩家還可以在每一關(guān)獲得不同的成績(jī),以至最終的三星的評(píng)價(jià)!
《憤怒的小鳥》的MINIS版本會(huì)完整移植經(jīng)典版本的所有內(nèi)容。
游戲下載:
迅雷/本地:下載地址1 下載地址2
115網(wǎng)盤:下載地址
P.S..博主認(rèn)為psp版的小鳥沒有iphone操作的流暢。
HEN發(fā)布:忠貞炙烈之炎
由忠貞炙烈之炎發(fā)布的6.36 HEN測(cè)試版發(fā)布,同時(shí)忠貞炙烈之炎還發(fā)布了6.35的v2 HEN測(cè)試版,下面我們一起來看下具體的更新內(nèi)容以及說明吧:
以下是引用片段:
忠告:5.03和6.20用戶,沒有必要來升級(jí).這個(gè)HEN問題還很多;你的固件版本必須和你下載的HEN完全一樣。不要小看了0.01的版本差。.如果你版本(如6.30)不夠先升級(jí)去。
|
PSP 6.35 HEN(v2版)更新內(nèi)容:
修復(fù)了03g支持;修復(fù)了wifi不能在非標(biāo)準(zhǔn)頻率外啟動(dòng)的問題。
PSP 6.36 HEN(下載文件已更換為alpha v3版)更新說明:
目前只有在PSP 1000主機(jī)系統(tǒng)為6.36上才能完全正常運(yùn)行。PSP 2000/3000/PSPgo 主機(jī)系統(tǒng)為6.36官方固件目前需要等待忠貞炙烈之炎發(fā)布新的可用的HEN,也可以去這里參與測(cè)試,測(cè)試方法如下:
以下是引用片段:
目前狀況:
至少Prometheus ISO Loader是可以運(yùn)行的。
支持大內(nèi)存支持(MEMSIZE=1)
支持插件(放在plugins而不是seplugins)
支持version.txt(放在ms0:/)
我需要其他機(jī)型的測(cè)試者來測(cè)試獲取一些重要的數(shù)據(jù)。
測(cè)試方法:
1.PSP 2000/3000/3000(04g) 請(qǐng)取下電池,直接使用電源(PSPgo主機(jī)無須進(jìn)行這一步,);
2.然后在按L鍵不放的情況下,進(jìn)入HBL運(yùn)行HEN,屏幕會(huì)提示:"Kernel memory will be dumped into ms0:/KMEM.BIN and ms0:/SEED.BIN";
3.然后將你們棒子上生成的kmem.bin和seed.bin打包上傳給我,并附帶你的機(jī)器型號(hào),HEN運(yùn)行情況等。
可以降級(jí)到6.35了,把老版本固件的version.txt放在根目錄,然后運(yùn)行6.35固件升級(jí)程序即可。目前只能降級(jí)到6.3X固件。降級(jí)過程在PSP-1000上成功,降級(jí)有風(fēng)險(xiǎn)后果自負(fù)。
|
安裝及破解說明:
1.確認(rèn)你的PSP主機(jī)為6.31/6.35/6.36官方系統(tǒng)(注:6.36為《怪物獵人P3》UMD中自帶的官方固件);
PSP 6.31官方系統(tǒng)升級(jí)固件:下載地址
PSP 6.35官方系統(tǒng)升級(jí)固件:下載地址
2.根據(jù)你的系統(tǒng),下載對(duì)應(yīng)的HEN程序(以下程序包括大眾高爾夫、大眾高爾夫漏洞、HBL以及HEN程序);
PSP 6.35 HEN(alpha v2版)下載:點(diǎn)擊下載 PSP/PSPgo全主機(jī)適用
PSP 6.36 HEN(下載文件已更換為alpha v3版)下載:點(diǎn)擊下載 僅適用于PSP1000主機(jī)
3.將下載得到的“PSP”、“h.bin”、“HBL”,三個(gè)文件拷貝至PSP記憶棒(PSPgo為內(nèi)置存儲(chǔ))中,覆蓋即可。(注:覆蓋并不影響文件夾內(nèi)的其它文件)
4、參考這里教程的步驟,在6.35/6.36官方系統(tǒng)下將你的主機(jī)安裝加載對(duì)應(yīng)的6.35/6.36 HEN程序。
黑客Mathieulh宣布破解PSP密匙算法,并由此得到了PSP的授權(quán)簽名,簡(jiǎn)單來說就是完全的完美破解,取得簽名后,黑客能夠不需要通過自制系統(tǒng)不需要通過漏洞,完全自由控制PSP運(yùn)行任意軟件、任意游戲。
就在前不久,Mathieulh沒有直接公布破解PSP密匙算法的源代碼而是發(fā)布了PS3/PSP共用的PS3/PSP PKG Decrypter Extractor v1.0(游戲解包/取得簽名的文件,取得簽名就意味著游戲無須通過自制系統(tǒng)/漏洞/ISO引導(dǎo)就能直接在PSP主機(jī)上運(yùn)行)。那么我們就來看看Mathieulh黑客以及其它的黑客大神們會(huì)利用這個(gè)給PSP帶來怎么樣的破解吧。
我們?cè)缜皥?bào)道過黑客Mathieulh宣布破解PSP密匙算法,并由此得到了PSP的授權(quán)簽名,簡(jiǎn)單來說就是完全的完美破解,取得簽名后,黑客能夠不需要通過自制系統(tǒng)不需要通過漏洞,完全自由控制PSP運(yùn)行任意軟件、任意游戲。
就在前不久,Mathieulh沒有直接公布破解PSP密匙算法的源代碼而是發(fā)布了PS3/PSP共用的PS3/PSP PKG Decrypter Extractor v1.0(游戲解包/取得簽名的文件,取得簽名就意味著游戲無須通過自制系統(tǒng)/漏洞/ISO引導(dǎo)就能直接在PSP主機(jī)上運(yùn)行)。那么我們就來看看Mathieulh黑客以及其它的黑客大神們會(huì)利用這個(gè)給PSP帶來怎么樣的破解吧,更多PSP破解相關(guān)情報(bào),請(qǐng)繼續(xù)關(guān)注電玩巴士為您帶來的后續(xù)報(bào)道。
PS3/PSP PKG Decrypter Extractor v1.0下載以及說明:點(diǎn)擊查看

“你就是控制器。”(You are the controller.)如果你有在關(guān)注Kinect,相信已經(jīng)聽過這句給力的廣告詞了。從《Kinect Adventures!》中手腳并用堵漏水窟窿,到Zune播放界面中揮手換歌,Kinect開創(chuàng)了一種更加自然的娛樂交互方式。在這篇博客文章中,我將 揭秘這款體感系統(tǒng)背后的秘密以及它如何讓開發(fā)者創(chuàng)造Kinect體驗(yàn)。而Kinect團(tuán)隊(duì)的項(xiàng)目經(jīng)理Arjun Dayal則將展示如何實(shí)現(xiàn)通過基于手勢(shì)的方式來控制Xbox Dashboard和Kinect Hub。首先,讓我們從指導(dǎo)Kinect研發(fā)的概念原理開始。
我們生活在一個(gè)模擬的世界
傳統(tǒng)編程基于一系列的規(guī)則:原因和結(jié)果,非黑即白,非真即假。在為輸入輸出數(shù)目有限的簡(jiǎn)單系統(tǒng)建模時(shí),這種方式工作得挺好。拿游戲《Halo》來說 吧:按A鍵是讓士官長(zhǎng)跳,前撥左搖桿讓他向前走,前撥右搖桿讓他向上看。不是A,就是B。可惜的是,我們生活的真實(shí)世界并不是如此數(shù)字化,而是模擬的。
在模擬世界中,并不是只有簡(jiǎn)單的“是”和“否”,還有“也許是/否”;不僅有“對(duì)”和“錯(cuò)”,還有“對(duì)/錯(cuò)的可能性”。讓我們想象一下?lián)]手這一簡(jiǎn)單 動(dòng)作的所有可能性:身體運(yùn)動(dòng)的幅度,環(huán)境差異,衣服質(zhì)地的不同,文化差異造成的動(dòng)作差異等等。你可能需要研究10的23次方這么多的可能性,顯然用傳統(tǒng)編 程方式來解決這類問題是不現(xiàn)實(shí)的。
我們從一開始就知道必須采用一種全新的,接近于人腦工作的方式來解決這一問題。當(dāng)你遇到一個(gè)人的時(shí)候,你的大腦立即將注意力集中在他身上,并根據(jù)經(jīng) 驗(yàn)辨識(shí)出他的身份。這一過程并不是通過數(shù)百層的決策樹來實(shí)現(xiàn),人腦就是知道。嬰兒很難區(qū)分出兩個(gè)人的不同,但我們通過多年的學(xué)習(xí)和訓(xùn)練可以在幾分之一秒內(nèi) 做到。事實(shí)上,你也許還能蠻準(zhǔn)確地估摸出他們的年齡、性別、心情甚至個(gè)性。這也是讓我們成就為人類的原因之一。
Kinect以類似的方法被創(chuàng)造出來。它觀察身邊的世界,它注意觀察你的動(dòng)作。即使Kinect從來沒見過你揮過手,也能很快地從它學(xué)習(xí)過的TB級(jí)數(shù)據(jù)中猜測(cè)出你所做動(dòng)作的含義。
Kinect傳感器
Kinect骨架追蹤處理流程的核心是一個(gè)無論周圍環(huán)境的光照條件如何,都可以讓Kinect感知世界的CMOS紅外傳感器。該傳感器通過黑白光譜 的方式來感知環(huán)境:純黑代表無窮遠(yuǎn),純白代表無窮近。黑白間的灰色地帶對(duì)應(yīng)物體到傳感器的物理距離。它收集視野范圍內(nèi)的每一點(diǎn),并形成一幅代表周圍環(huán)境的 景深圖像。傳感器以每秒30幀的速度生成景深圖像流,實(shí)時(shí)3D地再現(xiàn)周圍環(huán)境。如果你玩過pin point impression 3D針模玩具可能更容易理解這一技術(shù)——將你的手(或者臉,如果你愿意的話)按壓在這種玩具上,就可以產(chǎn)生你身體某一部位的簡(jiǎn)單3D模型。

尋找移動(dòng)部位
Kinect需要做的下一件事是尋找圖像中較可能是人體的移動(dòng)物體,就像人眼下意識(shí)地聚焦在移動(dòng)物體上那樣。接下來,Kinect會(huì)對(duì)景深圖像進(jìn)行像素級(jí)評(píng)估,來辨別人體的不同部位。同時(shí),這一過程必須以優(yōu)化的預(yù)處理來縮短響應(yīng)時(shí)間。
Kinect采用分割策略來將人體從背景環(huán)境中區(qū)分出來,即從噪音中提取出有用信號(hào)。 Kinect可以主動(dòng)追蹤最多兩個(gè)玩家的全身骨架,或者被動(dòng)追蹤最多四名玩家的形體和位置。在這一階段,我們?yōu)槊總€(gè)被追蹤的玩家在景深圖像中創(chuàng)建了所謂的 分割遮罩,這是一種將背景物體(比如椅子和寵物等)剔除后的景深圖像。在后面的處理流程中僅僅傳送分割遮罩的部分,以減輕體感計(jì)算量。

Kinect的大腦
真正的魔術(shù)在這里發(fā)生。分割化玩家圖像的每一個(gè)像素都被傳送進(jìn)一個(gè)辨別人體部位的機(jī)器學(xué)習(xí)系 統(tǒng)中。隨后該系統(tǒng)將給出了某個(gè)特定像素屬于哪個(gè)身體部位的可能性。比如,一個(gè)像素有80%的幾率屬于腳,60%的幾率屬于腿,40%的幾率屬于胸部。看起 來這時(shí)候我們就可以把幾率最大的可能性當(dāng)作結(jié)果,但這么做未免太過武斷了。我們的做法是將所有的這些可能性輸入到接下來的處理流程中并且等到最后階段再做 判斷。
看了上面的介紹,你也許要問我們?nèi)绾谓虝?huì)Kinect辨識(shí)人體部位。開發(fā)這一人工智能(被稱 為Exemplar(模型)系統(tǒng))可不是一件輕松的事情:數(shù)以TB計(jì)的數(shù)據(jù)被輸入到集群系統(tǒng)中來教會(huì)Kinect以像素級(jí)技術(shù)來辨認(rèn)手、腳以及它看到的其 他身體部位。下圖就是我們用來訓(xùn)練和測(cè)試Exemplar的數(shù)據(jù)之一。

模型匹配:生成骨架系統(tǒng)
處理流程的最后一步是使用之前階段輸出的結(jié)果,根據(jù)追蹤到的20個(gè)關(guān)節(jié)點(diǎn)來生成一幅骨架系 統(tǒng)。Kinect會(huì)評(píng)估Exemplar輸出的每一個(gè)可能的像素來確定關(guān)節(jié)點(diǎn)。通過這種方式Kinect能夠基于充分的信息最準(zhǔn)確地評(píng)估人體實(shí)際所處位 置。另外我們?cè)谀P推ヅ潆A段還做了一些附加輸出濾鏡來平滑輸出以及處理閉塞關(guān)節(jié)等特殊事件。
骨架追蹤系統(tǒng)的目標(biāo)之一是為處理流程的各種輸出提供一種菜單式的選擇界面。游戲開發(fā)者可以選擇任意的系統(tǒng)部件組合來開發(fā)各種游戲體驗(yàn)。比如,你可以僅僅使用分隔映射來制造一些驚人的華麗效果(《Your Shape: Fitness Evolved》是一個(gè)好例子)。
講到這里,我們已經(jīng)描繪出一個(gè)可用于控制游戲或娛樂的完全實(shí)時(shí)的體感系統(tǒng)。接下 來,Arjun將介紹改進(jìn)的Xbox Dashboard和Kinect Hub。他將向你展示這兩個(gè)用戶界面如何利用景深圖像流和20關(guān)節(jié)骨架系統(tǒng)來創(chuàng)造一種基于自然手勢(shì)的,訪問游戲、電影、音樂和其他娛樂活動(dòng)的全新方式。

Kinect:技術(shù)如何最終理解你!
如今,技術(shù)在我們的日常生活中扮演著重要角色,但直到現(xiàn)在,技術(shù)產(chǎn)品在真正理解人類意圖以及 適應(yīng)個(gè)體風(fēng)格差異方面做得仍然不好。Kinect的問世讓這一切有所改變。站在Kinect前,它就能知道你是誰。不僅如此,還能將你和你的愛人區(qū)別開 來。當(dāng)你移動(dòng)時(shí),傳感器能在瞬間追蹤到你。想要互動(dòng)?用聲音和肢體移動(dòng)就可以播放電影、玩游戲、和朋友聊天等等。不需要學(xué)習(xí)任何新的控制方式,多么神奇!
前面Kinect團(tuán)隊(duì)項(xiàng)目經(jīng)理Ron已經(jīng)描述了Kinect傳感器讓Xbox實(shí)時(shí)追蹤玩家動(dòng) 作背后的高深技術(shù),但我們?nèi)绾巫罴训剡\(yùn)用?我們的目標(biāo)是讓玩家盡可能自如地控制Xbox,同時(shí)讓所有用戶可以容易地學(xué)習(xí)并理解各種控制手勢(shì)。接下來我們會(huì) 更加深入地揭秘這一體感技術(shù),并且談?wù)勗贙inect Hub和Dashboard中的Kinect體驗(yàn)。
手勢(shì):從何說起?
聽到我們要設(shè)計(jì)一種手勢(shì)來上下左右移動(dòng)物體的時(shí)候,你也許會(huì)想:“沒難度啊,把你的手移到物體上,選中然后向你想要的方向移動(dòng),搞定!”
等下,別那么自信。問問你的朋友他們是怎么想的,你可能會(huì)驚訝地發(fā)現(xiàn)他們的回答和你是如此的 不同。是你的方式更好嗎?不一定,只是對(duì)你來說更有邏輯性。人類的獨(dú)特之處在于能通過多種方法來完成某一特定任務(wù)。讓我們拿駕駛來做例子。如果你讓100 個(gè)人來模仿如何開車,你可能會(huì)得到許多答案。有些人會(huì)將兩手分別握住面前的10點(diǎn)鐘和2點(diǎn)鐘位置,有些人可能會(huì)只用一手握住12點(diǎn)鐘位置,有些人可能會(huì)背 靠椅子坐著;同樣地,模仿腳踩油門、剎車和離合器的方式也會(huì)五花八門。所有這些方式都能讓我們駕駛,而技術(shù)的工作就是要能識(shí)別所有這些方式——讓技術(shù)理解 你!
那么,識(shí)別一個(gè)看似簡(jiǎn)單動(dòng)作有多復(fù)雜呢,拿伸手做例子。當(dāng)你想伸手去拿什么東西的時(shí)候,你會(huì) 認(rèn)為伸手的方向應(yīng)該完全垂直于身體平面。但實(shí)際上由于肩膀和手臂關(guān)節(jié)的結(jié)合方式,你不可能以直線方式伸手。因此,每個(gè)人都會(huì)以略為不同的方式做出一個(gè)伸手 動(dòng)作,但每個(gè)人都覺得這是一個(gè)同樣的伸手動(dòng)作。成功的手勢(shì)識(shí)別就是要理解人類動(dòng)作的微妙之處,并且讓技術(shù)了解這些不同。
研發(fā)Kinect這款革命性產(chǎn)品的過程中,我們既要戰(zhàn)勝上述挑戰(zhàn)還要讓產(chǎn)品易于使用。我們所做的每個(gè)決定都是人機(jī)互動(dòng)領(lǐng)域史無前例的,我們的工作有可能將重新定義互動(dòng)娛樂技術(shù)的未來。
手勢(shì)原型: 去粕取精
我們?cè)跒槠聊粚?dǎo)航創(chuàng)造控制手勢(shì)時(shí),采用了很常見的方法:記錄下了所有能想到的天馬行空的點(diǎn)子,比如用腳來選擇菜單神馬的。當(dāng)我們意識(shí)到這樣的點(diǎn)子實(shí)在太多了的時(shí)候,我們知道需要一種更靠譜的選擇方式。
我們收集并記錄下所有創(chuàng)意,并且一一制作出原型以檢驗(yàn)?zāi)且环N更適合普通用戶。和普通用戶進(jìn)行 原型測(cè)試非常重要,我們因此學(xué)到了許多關(guān)于人體運(yùn)動(dòng)的信息,并用于重新調(diào)整每次新測(cè)試。人機(jī)互動(dòng)的現(xiàn)有規(guī)則并不總是適用于在客廳進(jìn)行的10英寸距離上的體 感交互。通過測(cè)試我們更好地理解用戶行為,比如長(zhǎng)時(shí)間做手勢(shì)時(shí)怎樣才舒服,以及我們創(chuàng)造的控制手勢(shì)集和人類自然手勢(shì)是否沖突。
在測(cè)試過程中,我們的理念是“不斷失敗,去粕取精”,我們不斷拋棄不合適的方案,保留有效方案。工程、用戶研究和設(shè)計(jì)團(tuán)隊(duì)都充分參與到手勢(shì)集的原型制作過程中,并和普通用戶一起進(jìn)行測(cè)試,根據(jù)所有獲取到的數(shù)據(jù)來決定最佳手勢(shì)。
在數(shù)月的測(cè)試、觀察和研究后,我們得到了一種簡(jiǎn)單且容易理解的控制方式——懸停選擇和翻頁控制。懸停選擇是一種容易學(xué)習(xí)、高度可靠并且可預(yù)測(cè)的機(jī)制,而翻頁控制提供了一種更有觸感的方式來控制屏幕內(nèi)容。
讓我們通過Xbox Dashboard和Kinect Hub的實(shí)現(xiàn)方式來更加深入地談?wù)撨@種控制模型的細(xì)節(jié)。
Kinect Hub: Kinect體驗(yàn)大本營(yíng)!
Kinect Hub是Xbox Dashboard中的Kinect體驗(yàn)中心,在這里你可以用手勢(shì)來訪問Kinect內(nèi)容。Hub的設(shè)計(jì)簡(jiǎn)單且容易理解,你可以注意到我們采用了巨大的顏色分明的項(xiàng)目方塊,讓用戶輕松地找到并選擇他們所想做的事。






文/驅(qū)動(dòng)之家

在 Firefox 瀏覽器中,通過右鍵、菜單欄功能項(xiàng)或快捷鍵(cmd + U)就可以查看的網(wǎng)頁源碼。不過彈出的僅僅是個(gè)瀏覽窗口,想要進(jìn)行編輯等進(jìn)一步操作的話就得靠復(fù)制粘貼大法了。有沒有這樣一個(gè)辦法,能夠讓 Firefox 的查看源代碼功能直接調(diào)用外部編輯器來進(jìn)行操作呢?
Coda 網(wǎng)頁開發(fā)工具
填入應(yīng)用的 Unix 可執(zhí)行文件路徑(注意替換 xxx 為適合你的路徑): /Applications/xxx/Coda.app/Contents/MacOS/Coda
其他應(yīng)用均可以使用查找 Unix 可執(zhí)行文件路徑方法來找到對(duì)應(yīng)的字符串值。(TextMate、MacVim 測(cè)試可用)
BBEdit 文件編輯器
對(duì)于 BBEdit 來說,有點(diǎn)小小的不同。首先確定你機(jī)器里面 BBEdit 附帶的 Command Line Tools 是已安裝狀態(tài)(菜單欄 BBEdit - Install Command Line Tools...),然后將外部編輯器字符串值指向:/usr/local/bin/bbedit,即可。
如果不喜歡這樣的修改,只要把 view_source.editor.external 值恢復(fù)成 false 就行了。
在 Mac 上新建一個(gè)文件夾,默認(rèn)名字總是“未命名文件夾xxx”。很沒勁而且很沒意義是吧?下面教你改變命名規(guī)則的方法。

打開 Finder-Machintosh HD-系統(tǒng)-資源庫-CoreServices,找到“Finder”,右擊選擇“顯示包內(nèi)容”

繼續(xù),Contents-Resources,找到 “zh_CN.lproj” 文件夾(用其它語言的,找對(duì)應(yīng)文件夾),找到 “Localizable.strings” 這個(gè)文件,拖桌面上去。

用文本編輯器打開,找到下面這段,改成你想要的文字就行了。拖回原來的地方,輸密碼,覆蓋原來的文件。

當(dāng)然,除了文件夾的默認(rèn)命名規(guī)則,你也可以修改其它的文字,比如警示語什么的。就像下面這句


你或許已經(jīng)知道如何在 OS X 系統(tǒng)下通過快捷鍵使用屏幕縮放功能,當(dāng)放大倍數(shù)越大的時(shí)候你看到的圖像或文本會(huì)越模糊,抗鋸齒效果在這時(shí)候便發(fā)揮了作用。如何禁用此時(shí)的抗鋸齒效果呢?
首先進(jìn)入屏幕縮放的放大模式(按住 Contorl 滾動(dòng)鼠標(biāo)滾輪或雙指在觸摸板垂直滑動(dòng);抑或是 Cmd + Option + '+'),然后利用快捷鍵 Command + Option + \ 便可以啟用或關(guān)閉抗鋸齒效果。
下面一組圖展示出此效果關(guān)閉前后的效果對(duì)比:


當(dāng)然,此效果對(duì)圖片也同樣有效。

OSX Daily 為此提供了簡(jiǎn)單的解決方法,步驟如下:
- 在Mac App Store里從菜單里直接選擇登出帳號(hào)
- 退出 Mac App Store
- 登出你的 Mac OS X用戶
- 重新登陸你的Mac系統(tǒng)
- 再次進(jìn)入 Mac App Store,登入,再次下載程序
如果你覺得有點(diǎn)麻煩,MacStories提示:你可以嘗試登出Mac App Store用戶,然后重新登陸一樣可以解決問題。
ps:如果你運(yùn)行系統(tǒng)升級(jí)沒有 10.6.6的提示,可以點(diǎn)擊這里單獨(dú)下載系統(tǒng)升級(jí)安裝包。
如果你在大屏幕上用過 Windows 7,那么你一定會(huì)對(duì)其中 Aero Snap 這個(gè)功能印象深刻。其實(shí)我們?cè)?OS X 中也可以借助一個(gè)小工具實(shí)現(xiàn)類似的功能:Shift it 是一個(gè) host 在 Google Code 的開源項(xiàng)目,同時(shí)支持 OS X 10.5 和 10.6,運(yùn)行后可以用鍵盤快捷鍵快速排布當(dāng)前應(yīng)用程序的窗口位置。點(diǎn)擊這里進(jìn)入 Softpedia 的下載頁面。
另外 Shift it 還有個(gè) fork 叫 Krikava,我很懶完全沒有用過,感興趣的讀者可以試試看并且告訴我們其優(yōu)勢(shì)。
之前給大家分享過“讓你的 Mac 給你讀課文”,今天再來個(gè)類似的,一個(gè)談不上很實(shí)用但挺有意思的終端(Terminal)命令。
打開終端輸入 say 命令后空格,然后鍵入你要 Mac 說的話(僅限英文),比如:
say What do you want to say?
命令很簡(jiǎn)單吧!知道 OS X 如何發(fā)音嗎?通過下面視頻聽聽 say 命令給出的正確發(fā)音吧。
(照顧 iOSer,視頻原始鏈接點(diǎn)這里)
怎么樣,你喜歡正確發(fā)音(Oh. Ess. Ten)還是果粉們的常用發(fā)音(Oh. Ess. Ex)呢?
小編試了一下用 say 命令說十個(gè)羅馬數(shù)字,其中 II、III、XII、XIII、X 會(huì)直接發(fā)出對(duì)應(yīng)的英文數(shù)字音,其余的五個(gè)和 X 以上的則是直接發(fā)字母音。
只要電腦開著,音樂就不能停,這是我的一個(gè)毛病。而我另外一個(gè)毛病則是習(xí)慣建立一個(gè)有很多很多歌的播放列表,可能是某個(gè)樂隊(duì)多達(dá)數(shù)十張專輯的一個(gè)播放列表,我沒法在一天的時(shí)間里聽完,必須分好幾天來聽完,于是第二天再次打開iTunes的時(shí)候問題就來了:它記不住我上次聽到哪里了。這讓我很苦惱,直到我發(fā)現(xiàn)了“Now Where Was I?”這個(gè)iTunes腳本。
首先點(diǎn)此下載該腳本(很小只有110KB,點(diǎn)此從本地下載),把它放在任何地方都可以,雙擊它即可直接找到iTunes.app打開,然后在你每天退出iTunes的時(shí)候要記得再次雙擊這個(gè)腳本,之后iTunes會(huì)彈出一個(gè)對(duì)話框問你是否運(yùn)行該腳本,選擇Yes,iTunes正常關(guān)閉,同時(shí)也記下了你聽到了哪個(gè)播放列表的哪首歌:

以后再用腳本打開iTunes,音樂會(huì)直接響起──就是你上次退出時(shí)候聽到的那首歌(唯一的遺憾是歌曲是從頭播放的,而非從你退出的位置開始繼續(xù)播放,如果你聽的是一段長(zhǎng)達(dá)2小時(shí)的現(xiàn)場(chǎng)錄音的話……)。一定要記住,打開iTunes的時(shí)候要用腳本啟動(dòng),退出iTunes的時(shí)候也要用腳本關(guān)閉,否則就無效了。
其實(shí)我更推薦大家把這個(gè)腳本放到“資源庫\iTunes\Scripts”目錄下(也許你找不到Scripts目錄,那就手動(dòng)建立一個(gè)):

然后你會(huì)發(fā)現(xiàn)iTunes的菜單里多了一個(gè)小冬冬:

以后你就不必再找那個(gè)腳本去雙擊來退出iTunes了,點(diǎn)擊這個(gè)菜單即可。聰明的你一定想到了,既然這個(gè)腳本進(jìn)入到菜單里了,那么顯然就可以用快捷鍵來啟用之了(如何建立快捷鍵請(qǐng)看此文):

此腳本支持任何iTunes版本,我從8.x開始用,一直到現(xiàn)在10.x都可正常使用。

在 OS X 系統(tǒng)下,很多時(shí)候我們會(huì)要用到系統(tǒng)偏好設(shè)置(System Preferences)。大家是否知道利用 Option 鍵配合蘋果鍵盤功能鍵可以直接調(diào)用出相關(guān)功能的偏好設(shè)置呢?
- 按住 Option 鍵的同時(shí)按亮度調(diào)節(jié)功能鍵(F1、F2),可以調(diào)出顯示器設(shè)置;
- 按住 Option 鍵的同時(shí)按音量調(diào)節(jié)功能建(F10、F11、F12),可以調(diào)出聲音設(shè)置;
- 按住 Option 鍵的同時(shí)按 Exposé 或 儀表盤功能鍵(F3、F4),可以調(diào)出 Exposé 與 Spaces 設(shè)置;
當(dāng)然,利用 Option 鍵配合播放暫停鍵(F8)調(diào)出來的是 iTunes 程序,而不是系統(tǒng)偏好設(shè)置。
p.s..補(bǔ)充一些快捷方式:
按F3是all applications Exposé,按fn + F9可以有同樣效果
control + F3 是one-app Exposé,或者fn + F10
command + F3 是desktop Exposé,或者fn + F11
control + fn + F2 選中menu bar
control + fn + F3 選中dock
control + fn + F8 選中menulet(就是菜單欄右側(cè)那些小圖標(biāo))
如果你發(fā)現(xiàn)有更多需求使用帶fn鍵的組合,可以在System Preference->Keyboard里把這個(gè)邏輯反轉(zhuǎn)一下。
修改后的邏輯是原先帶fn的都去掉fn,不帶fn的都加上。
伴隨著本周Sandy Bridge系列處理器的發(fā)布,Intel針對(duì)“第二代Core ix”處理器的宣傳攻勢(shì)也已經(jīng)開始。一則相當(dāng)給力的新Core i5廣告日前就在海外上線播放,名為“The Chase Film”追蹤。這段視頻堪稱廣告中的大片,片中的利落女主角為躲避追蹤,跨越了大量各種各樣的應(yīng)用程序窗口,展示第二代Core i5處理器的多任務(wù)影音娛樂性能。廣告片實(shí)拍視頻、動(dòng)畫、Windows桌面動(dòng)作相結(jié)合的創(chuàng)意也令人叫絕。廢話少說,看片:

網(wǎng)路上關(guān)于 iOS 的使用技巧可以說是汗牛充棟,不有一些極其有用的小技巧,由于比較零碎,很容易被忽略。
此文就是 nAODI 收集的一些使用技巧,之前在 Twitter 上想到就推,在此做一個(gè)歸檔。
如果你還有什么實(shí)用的小技巧,歡迎留言,偶會(huì)補(bǔ)充。
當(dāng)你不想接一通來電,又被其不斷的響鈴或震動(dòng)所困擾時(shí),只需按一下任一「音量」按鈕或「開關(guān)」按鈕,手機(jī)馬上進(jìn)入靜默狀態(tài)。響鈴與震動(dòng)統(tǒng)統(tǒng)消失。
當(dāng)你在輸入文字時(shí),搖晃手機(jī)就會(huì)有對(duì)話框彈出詢問你是否「Undo」,再晃一下則是「Redo」。在輸錯(cuò)內(nèi)容時(shí)格外方便,免去不斷按「退格鍵」繁瑣。
當(dāng)你在輸入大段文字時(shí)要插入零星數(shù)字(比如要輸入年份或是時(shí)間)或標(biāo)點(diǎn),可以單手按住「123」鍵然后直接滑到要輸入的數(shù)字或符號(hào),松開后鍵盤會(huì)自動(dòng)回到「字母」?fàn)顟B(tài)。
如果臨時(shí)要輸入一段內(nèi)容有大量自創(chuàng)詞,又不想去關(guān)閉「改錯(cuò)」功能。可疑先輸入一個(gè)字母「z」,然后將光標(biāo)移到「z」字母前,再鍵入任何內(nèi)容都不會(huì)激活「自動(dòng)糾錯(cuò)」功能。
將一些條形碼的會(huì)員卡、單據(jù)拍下來存成照片,借由 iPhone 高清晰的屏幕完全可以被掃描器識(shí)別,從而免去帶大量卡片的繁瑣。
在電話「撥號(hào)鍵盤」模式下,不輸入任何電話號(hào)碼,直接點(diǎn)擊「Call」,則會(huì)自動(dòng)跳出最后一個(gè)呼出號(hào)碼。
當(dāng)你進(jìn)出電梯之類的地方導(dǎo)致 3G 或是電話信號(hào)丟失,可以通過開關(guān)「飛行模式」來快速重獲信號(hào),這比等待手機(jī)自動(dòng)重搜信號(hào)快很多。
Mac 下 iPhone 的備份文件存放在路徑「/Library/Application Support/MobileSync/Backup」下,Win 下存放在路徑「C:\Documents and Settings\XXXXX\Application Data\Apple Computer\MobileSync\Backup」下。
如果你覺得許多轉(zhuǎn)好的 iPhone 格式視頻清晰度太低,可以直接下載 iPad 適用的視頻文件,在 iPhone 4 上播放清晰度會(huì)比普通為 iPhone 轉(zhuǎn)換的視頻好很多。
當(dāng)你在同步 iPhone 時(shí),如果有電話撥入,同步會(huì)被中斷。可將手機(jī)調(diào)到飛行模式避免之。
當(dāng)你設(shè)置了鎖屏密碼后,每次待機(jī)重開都需要輸入密碼,甚為繁瑣。只需要在設(shè)置﹣常規(guī)﹣鎖屏密碼 選項(xiàng)中的「Require Passcode」設(shè)置一個(gè)時(shí)間,鎖屏密碼就會(huì)在設(shè)定時(shí)間之后才開啟,省去頻繁待機(jī)重開時(shí)需要輸入密碼之苦。
據(jù)美國(guó)華爾街日?qǐng)?bào)報(bào)道,美國(guó)高客傳媒(Gawker Media)旗下諸多網(wǎng)站遭到黑客襲擊,致上百萬用戶信息泄露。受“高客事件”的影響,其他很多網(wǎng)站也開始敦促用戶修改密碼。
上周日,黑客在網(wǎng)上貼出了關(guān)于高客傳媒用戶的個(gè)人信息,包括用戶名、電子郵件和密碼等。令人啞然的是,人們最常用的密碼居然是“123456”和 “password”!雖然原始密碼經(jīng)過加密,但還是很容易被破解。有業(yè)內(nèi)人士從中總結(jié)出了50個(gè)最流行的密碼設(shè)置,看一下是不是你自己也正在用呢?

通常注設(shè)置密碼時(shí),網(wǎng)站會(huì)提醒你密碼的安全程度,單純的數(shù)字或者字母的安全程度是非常低的,一些固定的詞或者數(shù)字組成的密碼也是很容易猜到的。但還是有很多人這樣設(shè)置密碼,如“123456”“654321”“1234567”“666666”“password(密碼)”“monkey(猴子)”“football(足球)”“superman(超人)”等。
此外,密碼的長(zhǎng)度也與安全程度有關(guān),密碼越長(zhǎng),相對(duì)來說就越安全。據(jù)黑客資料顯示,在谷歌、雅虎和微軟這三大網(wǎng)站的用戶中,超過40%的用戶密碼是6位的,將近20%的用戶密碼是7位的,30%左右的用戶密碼為8位及以上。如圖所示:

黑客也披露了谷歌、雅虎和微軟三大網(wǎng)站的用戶電子郵件的常用密碼:passwOrd、blahblah、iloveyou、666666、cheese。如圖所示:

也許雅虎郵箱是適宜向?qū)Ψ绞緪鄣拿浇椋蝗粸槭裁从羞@么多人都用情意綿綿的“iloveyou(我愛你)”來做密碼呢?不過,不然你今天給女友發(fā)一封郵件說“我們結(jié)婚吧”,明天也許就會(huì)收到回信說“我們分手吧”。瞧,信息安全多重要!
ps:結(jié)果真是有點(diǎn)出乎意料,相信在中國(guó),以中國(guó)網(wǎng)民的智商能力,結(jié)果更恐怖。梁蕭提示大家還是把密碼修改得復(fù)雜點(diǎn),最常用的郵箱和軟件要定期修改密碼,查看登陸ip。
源地址;http://www.mittrchinese.com/single.php?p=5774
GFW變廢為寶篇,高實(shí)在是高
From:
Carray Lee <carray...@gmail.com>
Date: Fri, 24 Dec 2010 17:38:15 +0800
Local: Fri, Dec 24 2010 5:38 pm
Subject: GFW變廢為寶篇,高實(shí)在是高
How to use GFW to stop DDoS attacks from China
It’s a easy way to protect your website.
But it will block any request from China.
So please remove it after the attack.
<?php
if(strpos($_SERVER['REQUEST_URI'],'minghui') === false) {
header('Location:'. $_SERVER['REQUEST_URI'] . '?minghui');
exit;
}
?>
If you are in China, you can visit
http://vii.im/gfw-test.php to test.
http://vii.im/articles/639.html
audio.js is a drop-in JavaScript library that provides a more flexible HTML5's <audio>
tag usage.
It uses native <audio>
where available and falls back to an invisible flash player to emulate it for other browsers.

The player can be completely styled with CSS to provide a consistent user interface.
audio.js can only play mp3 files and can be extended in any way like playing a single file or a list of songs.
Special Downloads:
Ajaxed Add-To-Basket Scenarios With jQuery And PHP
Free Admin Template For Web Applications
jQuery Dynamic Drag’n Drop
ScheduledTweets
Advertisements:
Professional XHTML Admin Template ($15 Discount With The Code: WRD.)
Psd to Xhtml
SSLmatic – Cheap SSL Certificates (from $19.99/year)
Tags:
HTML5,
Javascript,
MP3
Related posts
【親歷“世界最大科學(xué)實(shí)驗(yàn)”】 之 新發(fā)現(xiàn)
CERN科學(xué)家捕獲反氫原子
抓住“反物質(zhì)”
歐洲核子研究中心(CERN)是一個(gè)龐大的科研機(jī)構(gòu),除了LHC的相關(guān)實(shí)驗(yàn)之外,還有上百個(gè)實(shí)驗(yàn)在同時(shí)進(jìn)行,而大部分的實(shí)驗(yàn),最終的目的都是一個(gè):解開宇宙起源之謎。我們知道建造LHC的最主要目的是為了尋找聞名卻未見的希格斯子,但CERN還有很多其他的事情要做。比如說按照現(xiàn)行理論,宇宙大爆炸時(shí)同時(shí)出現(xiàn)了物質(zhì)和反物質(zhì),但是兩者卻無法共存,但為什么今天的宇宙只有物質(zhì)但沒有反物質(zhì)呢?反物質(zhì)到底是什么東西?隨著技術(shù)的進(jìn)步,這也成了物理界越來越引人注意的話題。
11月底,CERN發(fā)布的一個(gè)突破性消息引起了人們的廣泛關(guān)注。反氫激光物理設(shè)備(ALPHA)坐落于CERN的主樓群,僅有40位科學(xué)家為此工作。正是他們首次長(zhǎng)時(shí)間捕捉到了反物質(zhì)。盡管這個(gè)發(fā)現(xiàn)借用了LHC的成果,但其實(shí)驗(yàn)和LHC的思想完全相反,不是加速,而是“減速”。
對(duì)稱定律解釋世界
ALPHA實(shí)驗(yàn)室全景。圖/CERN
和其它物理界的發(fā)現(xiàn)一樣,反物質(zhì)首先也是“思想實(shí)驗(yàn)”。早在79年前,英國(guó)物理學(xué)家狄拉克就試圖把量子理論和狹義相對(duì)論結(jié)合在一起。這是兩個(gè)互不兼容的基本物理理論。狄拉克發(fā)現(xiàn),反物質(zhì)必定存在。1932年,人們?cè)趯?shí)驗(yàn)中尋找到了狄拉克設(shè)想的正電子,其質(zhì)量、帶電量與電子完全相同,只不過它帶的是正電(電子帶負(fù)電荷)。
隨后,人們逐漸發(fā)現(xiàn)了各種基本粒子對(duì)應(yīng)的反物質(zhì)。“反物質(zhì)就像是物質(zhì)在鏡子中的像。它和對(duì)應(yīng)基本粒子的質(zhì)量完全一樣,卻具有相反的其他量子性質(zhì)。”ALPHA實(shí)驗(yàn)發(fā)言人杰弗瑞(Jeffrey Hangst)在接受本報(bào)記者采訪時(shí)說,“質(zhì)子帶正電,反質(zhì)子帶負(fù)電;電子帶負(fù)電,正電子帶正電……”
按照目前解釋微觀世界最好的理論模型,宇宙大爆炸時(shí),同時(shí)產(chǎn)生了物質(zhì)和反物質(zhì)。今天,NASA的天文學(xué)家們也觀察到,在遙遠(yuǎn)的宇宙區(qū)域———也就是我們所能看到的早期的宇宙,似乎存在物質(zhì)和反物質(zhì)碰撞后產(chǎn)生的伽瑪射線蹤跡。不過今天的宇宙卻是由物質(zhì)而非反物質(zhì)組成的。“自然選擇了物質(zhì),反物質(zhì)似乎消失了。沒有人知道為什么。”
宏觀世界中,很多東西都是對(duì)稱的。微觀世界也是這樣。在“標(biāo)準(zhǔn)模型”中,有著一個(gè)對(duì)稱定律,認(rèn)為量子場(chǎng)論方程所有允許的解,都依據(jù)這個(gè)對(duì)稱定律,物質(zhì)所遵循的物理法則,反物質(zhì)也同樣遵循。這個(gè)對(duì)稱定律由三個(gè)字母組成:C、P、T,它們意味著三方面的對(duì)稱:電荷共軛變換、宇稱(左右)、時(shí)間反演。在隨后的歲月中,不少物理學(xué)家們靠研究對(duì)稱性問題拿下了nbl獎(jiǎng)。其中很多人研究的是“對(duì)稱破壞”,即在一些物理過程中,一些對(duì)稱性(特別是C和P的對(duì)稱)被破壞了。
“CP對(duì)稱破壞”是描述今天宇宙中物質(zhì)數(shù)量超過反物質(zhì)的重要解釋之一。目前,有很多科學(xué)實(shí)驗(yàn)都在對(duì)這個(gè)現(xiàn)象進(jìn)行驗(yàn)證,希望通過反物質(zhì)研究了解到對(duì)稱性定律及標(biāo)準(zhǔn)模型的有效性。
最冷的反物質(zhì)
ALPHA實(shí)驗(yàn)室全景。圖/CERN
LHC的四大探測(cè)器之一LHCb研究的主要就是反物質(zhì)和對(duì)稱性問題。但ALPHA實(shí)驗(yàn)卻和LHC幾乎沒關(guān)系,和LHCb的實(shí)驗(yàn)?zāi)康暮头椒ㄒ步厝徊煌T谶@里科學(xué)家們同樣選擇了氫,氫原子和反氫原子都只有一個(gè)質(zhì)子和一個(gè)電子,結(jié)構(gòu)非常簡(jiǎn)單。
兩個(gè)反氫原子的原料分別是這么制作的,將定向質(zhì)子束射向一小片銥,高能碰撞會(huì)生成反質(zhì)子,再加以分階段冷卻。由放射性鈉衰變產(chǎn)生正電子也加以冷卻。“我們借用了對(duì)撞機(jī)中產(chǎn)生的反氫質(zhì)子,所以我們還是依附于CERN的實(shí)驗(yàn)。但設(shè)備和實(shí)驗(yàn)都是我們自己設(shè)計(jì)。”杰弗瑞告訴本報(bào)記者。
在ALPHA 并不大的實(shí)驗(yàn)室里,層層的管道連到磁場(chǎng)上方的探測(cè)器。在這里工作的科學(xué)家設(shè)計(jì)了一個(gè)改變速度的設(shè)備。它并不是另一個(gè)加速器,而是一個(gè)減速器。科學(xué)家將已有的反質(zhì)子和正電子放在一起,令其生成反氫原子,然后讓它逐漸減速,以便在一個(gè)像浴缸一樣的磁場(chǎng)中將其“捕獲”。
反物質(zhì)無法與物質(zhì)共存,因?yàn)閮烧咭坏┙佑|,便會(huì)同時(shí)消失并轉(zhuǎn)化為能量,轉(zhuǎn)化的能量形式如光子,這個(gè)過程用術(shù)語叫做“湮滅”。該過程產(chǎn)生的能量十分巨大。
ALPHA的實(shí)驗(yàn)結(jié)果卻跨過了這個(gè)門檻。首先,實(shí)驗(yàn)必須在真空中進(jìn)行,科學(xué)家設(shè)計(jì)了一個(gè)真空管道,排除了絕大部分的空氣物質(zhì)。反氫原子是中性的,沒法通過電荷來捕獲,怎么逮住它呢?杰弗瑞介紹,盡管電中性,反氫原子還是帶有微弱的磁場(chǎng),可以對(duì)磁場(chǎng)做出反應(yīng)。
在熱力學(xué)上,溫度體現(xiàn)的是物質(zhì)粒子的動(dòng)能。理論上說,如果物質(zhì)粒子達(dá)到絕對(duì)零度時(shí),它應(yīng)該完全靜止。所以,溫度越低,粒子的速度越慢。科學(xué)家們讓來自 LHC的高能反氫質(zhì)子減速冷卻,最后讓-70℃左右的反質(zhì)子束和更冷的正電子束進(jìn)行對(duì)撞,一些反質(zhì)子和正電子結(jié)合形成了反氫原子。如果說LHC的目的是令粒子更快、更熱、更重,那這個(gè)實(shí)驗(yàn)中,原子則變得更冷更慢,其中速度最慢的反原子,溫度僅有-272.5℃。
這些超級(jí)冷的反原子,最后“陷”入了一個(gè)超導(dǎo)磁鐵構(gòu)成的“磁場(chǎng)缸”里。“磁場(chǎng)越強(qiáng),抓住的反原子也越多。”杰弗瑞說。他們共運(yùn)行了335次實(shí)驗(yàn),由1000萬個(gè)反質(zhì)子和7億個(gè)正電子結(jié)合。產(chǎn)生的反氫原子中,有38個(gè)被捕獲。
要觀察被“囚”的反物質(zhì)的存在,唯一的方法就是“釋放”它。0.17秒后,科學(xué)家們關(guān)閉了磁場(chǎng),反氫原子迅即與氫原子碰撞,湮滅無蹤。探測(cè)裝置及時(shí)地記錄下了這38次能量爆炸。這些爆炸都發(fā)生在反氫原子和產(chǎn)生磁場(chǎng)的缸狀容器壁上。反物質(zhì)和物質(zhì)湮滅后形成了新的粒子。實(shí)驗(yàn)中,新產(chǎn)生的粒子是名為π介子的亞原子粒子。
杰弗瑞說,這是科學(xué)家第一次長(zhǎng)時(shí)間“逮住”反物質(zhì)。LHCb這樣的高能粒子實(shí)驗(yàn)是沒法捕捉反物質(zhì)的,因?yàn)楦吣芰康姆戳W訒?huì)迅速與實(shí)驗(yàn)設(shè)備相撞而消失,唯一能困住的,是低能、寒冷、運(yùn)動(dòng)緩慢的反粒子。
反物質(zhì)不會(huì)炸毀地球
在高能物理的反物質(zhì)實(shí)驗(yàn)如LHCb,主要的實(shí)驗(yàn)?zāi)康氖菍ふ矣钪娉跗跒楹挝镔|(zhì)戰(zhàn)勝了反物質(zhì)而存在。另一些反物質(zhì)實(shí)驗(yàn),如CERN的另一實(shí)驗(yàn)ATHENA,主要研究反物質(zhì)和引力的關(guān)系,而ALPHA的主要目的是研究標(biāo)準(zhǔn)模型是否能夠同樣作用于反物質(zhì)。
標(biāo)準(zhǔn)模型認(rèn)為,反物質(zhì)和物質(zhì)遵循一樣的物理原則,比如反粒子應(yīng)該和對(duì)應(yīng)的粒子一樣能夠吸收同樣的光的顏色。因此,此次科學(xué)小組用激光照在反物質(zhì)上,準(zhǔn)備探究其是否和對(duì)應(yīng)的物質(zhì)一樣吸收同樣的光波。
“到目前為止,在量子層面上,‘CPT對(duì)稱定律’都表現(xiàn)得很好。但對(duì)于反物質(zhì),人們從來沒有在原子核層面測(cè)量過其對(duì)稱問題。”杰弗瑞說,“我們不知道為什么自然選擇了物質(zhì)而不是反物質(zhì),也不知道標(biāo)準(zhǔn)模型是否能夠應(yīng)用在反物質(zhì)系統(tǒng),或許標(biāo)準(zhǔn)模型能夠在反物質(zhì)中被證實(shí),或許我們會(huì)尋找到驚喜,因?yàn)槲覀儾恢牢锢頃?huì)往哪兒走。”
捕捉反物質(zhì)的技術(shù)正在突飛猛進(jìn)。杰弗瑞表示,明年年初,他們將能夠捕獲更多的反原子。CERN的另一個(gè)實(shí)驗(yàn)項(xiàng)目ASACUSA,最近也在他們實(shí)驗(yàn)的基礎(chǔ)上,通過新技術(shù),將反氫原子引導(dǎo)到一個(gè)真空管中研究飛行速度。這個(gè)實(shí)驗(yàn)的目的是制造足夠多的反物質(zhì),研究其運(yùn)動(dòng)行為。
即使這樣,反物質(zhì)的取得基本上還是只存在于實(shí)驗(yàn)室。79年前,狄拉克第一次提出了反物質(zhì)的想法,這個(gè)名字就開始進(jìn)入科幻小說。15年前,科學(xué)家制造出了反物質(zhì),但直到今天,人們才第一次較長(zhǎng)時(shí)間捕捉到了反物質(zhì)。雖然動(dòng)用了大量昂貴的超導(dǎo)磁鐵,科學(xué)家也只逮住38個(gè)反氫原子,技術(shù)之艱難可見一斑。因此,對(duì)于媒體與文藝作品描述的,將反物質(zhì)作用于航空、軍事等領(lǐng)域的設(shè)想,杰弗瑞表示這完全是天方夜譚,離科學(xué)現(xiàn)實(shí)還遠(yuǎn)得很。
“要造出《星際迷航》或者《天使與魔鬼》中所描述的那么多反物質(zhì),我們所需要的時(shí)間甚至?xí)^宇宙的壽命。而且,為制造它們而消耗的能量要比它們最后產(chǎn)生的能量還要大。”他補(bǔ)充說,在小說《天使與魔鬼》中,就提到了ALPHA實(shí)驗(yàn)使用的低能反物質(zhì)。在拍攝同名電影的時(shí)候,導(dǎo)演曾來CERN咨詢相關(guān)科學(xué)細(xì)節(jié),但最終還是為了保證良好的視覺效果,將故事嫁接在了LHC上———實(shí)際上,LHC是根本無法保留住反物質(zhì)的。
另一方面,反物質(zhì)研究可以推動(dòng)技術(shù)進(jìn)步。今天,反物質(zhì)已經(jīng)在醫(yī)學(xué)上的正子放射斷層掃描儀(PET)中發(fā)揮作用。但真正研究反物質(zhì)的目的,還在于科學(xué)追求真理的本質(zhì)。“人類的好奇心永遠(yuǎn)無止境,我們想要知道宇宙爆炸時(shí)到底發(fā)生了什么。”杰弗瑞說。
本版采寫/本報(bào)記者 金煜
車作為一件工具,對(duì)我們的生活越來越重要,因?yàn)檐嚦碎_,還可以震……
在不同環(huán)境的野戰(zhàn)中,車震的刺激指數(shù)始終排行第一,尤其是如果你膽子大,在馬路邊車震,那種刺激可不是一點(diǎn)亮點(diǎn)可以形容滴……
不過,房車房車,畢竟不如房間,空間較為狹窄,所以車震是一項(xiàng)相當(dāng)需要技巧的活兒。各種姿勢(shì)、道具等都和正常方式的SX不同。甚至于有不少車在設(shè)計(jì)時(shí)已經(jīng)開始考慮用戶車震的需求,從而進(jìn)行了一些特殊設(shè)計(jì)……
點(diǎn)擊圖片可查看大圖
看到排第一的mini cooper,我震精了,果然,豪車貴有貴的道理,外表實(shí)在不咋樣,內(nèi)里如此給力,難怪二奶三奶都開它!國(guó)外的設(shè)計(jì)師就是牛X啊!
嘖嘖,不同的車有不同的震法,大有大的好,小有小的妙,色男色女們的智慧可真是不得了!
可惜這里的車都是進(jìn)口車,國(guó)產(chǎn)車太少了,什么時(shí)候國(guó)內(nèi)也為國(guó)產(chǎn)車出一個(gè)車震手冊(cè)就好了!
最后的注意事項(xiàng)大家要仔細(xì)看哦——假如你想學(xué)著車震……
如果車展上買車送美女,那么大家買了馬上就能震了,送福利圖一張,表示我對(duì)車震的深深怨念!
憤怒的小鳥(Angry Birds)這款游戲在Android手機(jī)平臺(tái)上非常火!近日Rovio公司發(fā)布了PC版的憤怒的小鳥,非常給力!憤怒的小鳥這款游戲的故事相當(dāng)有趣,為了報(bào)復(fù)偷走鳥蛋的肥豬們,鳥兒以自己的身體為武器,仿佛炮彈一樣去攻擊肥豬們的堡壘。卡通的畫面,可愛的配音,玩起來相當(dāng)有趣!游戲中有不同種類的小鳥,每種小鳥都有自己的特長(zhǎng),要好好配合利用才能順利過關(guān)。

游戲說明:
1、由于某些顯卡或顯示器分辨率不支持本游戲,為了更好的兼容性,軟件便利店提供的版本已經(jīng)修改為窗口模式運(yùn)行。
2、用記事本打開“config.lua”,把“fullscreen = false”改為“fullscreen = true”即可變回全屏模式。
3、游戲時(shí),按“ALT+回車”可以在全屏和窗口模式之間切換。
4、游戲的存檔保存在以下路徑中:
XP系統(tǒng):C:\Documents and Settings\你的用戶名\Application Data\Rovio\Angry Birds
WIN7系統(tǒng):C:\Users\你的用戶名\AppData\Roaming\Rovio\Angry Birds
不會(huì)玩的朋友請(qǐng)看這里:
《憤怒的小鳥》完全解析:http://game.ali213.net/thread-3399935-1-1.html
《憤怒的小鳥》官方視頻攻略:http://game.ali213.net/thread-3399798-1-1.html
下載地址:Angry_Birds_Soft711.7z
xhEditor是一個(gè)基于jQuery開發(fā)的簡(jiǎn)單迷你并且高效的可視化XHTML編輯器,基于網(wǎng)絡(luò)訪問并且兼容IE 6.0+,Firefox 3.0+,Opera 9.6+,Chrome 1.0+,Safari 3.22+。在眾多用戶不斷的問題回饋和意見反饋下,經(jīng)過長(zhǎng)達(dá)1年零3 個(gè)月的不斷完善后,v1系列的正式版本v1.1.3 Final終于正式對(duì)外發(fā)布。經(jīng)過這么久的不斷開發(fā)修正和完善,v1.1.3 Final的BUG數(shù)量相對(duì)已經(jīng)非常少,我們有自信可以給大家交上一份滿意的答卷。
我們不是最好的,但是我們會(huì)努力做的更好,我們?cè)敢鈨A聽和接受所有用戶的心聲。最后,大家在使用過程中若發(fā)現(xiàn)任何的問題,或者有比較好的創(chuàng)意和想法,可以隨時(shí)向我們反饋(yanis.wang@gmail.com),我們會(huì)隨時(shí)傾聽大家的意見,xhEditor的發(fā)展離不開大家的支持。
查看最新版演示:http://xheditor.com/demo
更多官方在線演示:
1. 默認(rèn)模式:http://xheditor.com/demos/demo01.html
2. 自定義按鈕:http://xheditor.com/demos/demo02.html
3. 皮膚選擇:http://xheditor.com/demos/demo03.html
4. 其它選項(xiàng):http://xheditor.com/demos/demo04.html
5. Javascript交互:http://xheditor.com/demos/demo05.html
6. 非utf-8編碼網(wǎng)頁調(diào)用:http://xheditor.com/demos/demo06.html
7. UBB可視化編輯:http://xheditor.com/demos/demo07.html
8. Ajax文件上傳:http://xheditor.com/demos/demo08.html
9. 插件擴(kuò)展:http://xheditor.com/demos/demo09.html
10.iframe調(diào)用文件上傳:http://xheditor.com/demos/demo10.html
11.異步加載:http://xheditor.com/demos/demo11.html
v1.1.3 Change (2011-1-1)
- 調(diào)整:取消刪除線的快捷鍵:Ctrl+S
- 修正:IE瀏覽器下無邊框的table沒有顯示輔助的虛線邊框問題的修正
- 修正:IE瀏覽器下光標(biāo)定位在編輯器中,xheditor(false)卸載編輯器會(huì)造成當(dāng)前頁面光標(biāo)被鎖死問題的修正
- 修正:®和©被瀏覽器強(qiáng)制轉(zhuǎn)為字符問題的修正
- 修正:從其它網(wǎng)站復(fù)制粘貼WORD文檔和普通HTML混合的內(nèi)容時(shí),會(huì)導(dǎo)致圖片丟失問題的修正
- 修正:urlType參數(shù)開啟情況下,mailto:地址被轉(zhuǎn)絕對(duì)地址問題的進(jìn)一步修正
- 修正:Flash和視頻不支持輸入百分比數(shù)值問題的修正
- 優(yōu)化:優(yōu)化Word自動(dòng)文檔清理功能,進(jìn)一步提高代碼處理效率并且兼容Excel文檔粘貼
- 優(yōu)化:優(yōu)化formatXHTML函數(shù),極大提高代碼格式化效率
官方下載:
著名的Google安全黑客Michal Zalewski宣布,他的fuzzer工具發(fā)現(xiàn)了IE的一個(gè)新漏洞,fuzzer至今已經(jīng)從IE、Firefox、Chrome、Safari等瀏覽器中發(fā)現(xiàn)了上百個(gè)漏洞。微軟周日表示正對(duì)此進(jìn)行調(diào)查,它之前曾要求Zalewski推遲發(fā)布安全工具cross_fuzz發(fā)現(xiàn)的漏洞,但被拒絕。
Zalewski聲稱,他相信中國(guó)黑客正在利用這個(gè)新漏洞。證據(jù)是他在12月30日,發(fā)現(xiàn)來自中國(guó)的IP地址在Google.com.hk上搜索兩個(gè)MSHTML.DLL函數(shù)——BreakAASpecial和BreakCircularMemoryReferences——與新發(fā)現(xiàn)的漏洞有關(guān),而中國(guó)黑客似乎對(duì)cross_fuzz不很熟悉,他下載了所有能訪問到的文件。
按:這幾天我一直在寫這篇東西,本來是胸有成竹,沒想到后來越寫越發(fā)現(xiàn)自己在這個(gè)題目下有太多話想說,而以我現(xiàn)在的能力又不能很好地概括總結(jié),以至 于越寫越長(zhǎng),文章結(jié)構(gòu)也變得混亂,到后來修改的時(shí)候每次都要考慮好久才能下筆,所以決定拆成兩部分來發(fā),以便閱讀。這篇寫得我心力交瘁,質(zhì)量不算好,湊合著看吧。
同樣是寫程序,不同的崗位工作內(nèi)容不一樣,對(duì)程序質(zhì)量以及工程師的要求也不一樣。程序開發(fā)大概可以劃分成兩類:開發(fā)和研發(fā),相應(yīng)也就有開發(fā)工程師和 研發(fā)工程師。很多人覺得做開發(fā)和做研發(fā)沒什么區(qū)別,“都是一樣對(duì)著電腦寫程序啊”,但其實(shí)這兩者是完全不一樣的,下面我想拋開公司對(duì)員工的期望、社會(huì)對(duì)工 程師的需求等其它因素,單純從國(guó)內(nèi)互聯(lián)網(wǎng)行業(yè)“工程師個(gè)人發(fā)展”的角度來說一下我個(gè)人對(duì)這兩類工作的看法。
開 發(fā)一般是指產(chǎn)品開發(fā),開發(fā)工程師直接為產(chǎn)品貢獻(xiàn)代碼。每個(gè)公司都有自己的產(chǎn)品線,拿 Google 來說吧,它有 Gmail, Chrome 等產(chǎn)品,每個(gè)產(chǎn)品都有很多開發(fā)工程師在后面支持,這些產(chǎn)品的開發(fā)、維護(hù)以及升級(jí)都是由相應(yīng)的開發(fā)工程師負(fù)責(zé)的。由于開發(fā)工程師的工作直接關(guān)系到產(chǎn)品的質(zhì)量 和在線情況,所以開發(fā)工程師的責(zé)任是很重的,他可能經(jīng)常為了下個(gè)版本的發(fā)布而加班,為了產(chǎn)品的故障不得不在休假的時(shí)候打開電腦工作,甚至在過年的時(shí)候都會(huì) 接到領(lǐng)導(dǎo)的電話。所以你看到那些總抱怨加班太多,總是說自己是“IT民工”的,大部分都是開發(fā)工程師。在工程師當(dāng)中,大部分人都是做產(chǎn)品開發(fā)的,畢竟公司 都是要靠產(chǎn)品盈利,招聘的大部分人也要直接為產(chǎn)品服務(wù)。
做開發(fā)是很辛苦,但也有好處,因?yàn)樾枰獙?duì)產(chǎn)品線負(fù)責(zé),所以會(huì)是公司的核心,裁員 對(duì)你威脅不大,如果你負(fù)責(zé)的產(chǎn)品恰好又是盈利產(chǎn)品的話,那么加薪、獎(jiǎng) 金、集體出游等福利都不會(huì)少。如果你足夠幸運(yùn)地加入了一家快速發(fā)展的創(chuàng)業(yè)公司,說不定一下子就發(fā)家了。還有很重要的一點(diǎn)是,作為產(chǎn)品的開發(fā)人員可以看到自 己做的東西被那么多人使用,那是一種莫大的鼓勵(lì)和肯定。
苦悶的開發(fā)工程師
盡管我很尊重開發(fā)工程師,但是我不得不承認(rèn),在國(guó)內(nèi)大部分的 公司,做開發(fā)工程師是沒有前途的。首先,從微博到開心,有多少國(guó)內(nèi)的產(chǎn)品不是山寨的?這 也罷了,最惡心的是有一些產(chǎn)品經(jīng)理連產(chǎn)品設(shè)計(jì)圖都懶得自己畫,直接去截取別人產(chǎn)品的圖片,假如我是一個(gè)人人網(wǎng)的開發(fā)工程師,每天看到產(chǎn)品經(jīng)理把 Facebook 新上線功能的截圖拿過來讓我做,你讓我如何對(duì)產(chǎn)品有榮譽(yù)感和認(rèn)同感?而如果一個(gè)開發(fā)工程師對(duì)自己做的東西沒有榮譽(yù)感和認(rèn)同感,那么他堅(jiān)守自己的崗位要么是 因?yàn)楣窘o的錢多,要么是因?yàn)樗€沒有找到下家。我個(gè)人認(rèn)為,做開發(fā)最大的一個(gè)好處就是可以親手實(shí)現(xiàn)一個(gè)“自己的作品”,就算平時(shí)很累,但最后完成它的時(shí) 候也還是會(huì)無比滿足,這點(diǎn)被剝奪了之后,和飯店打工的服務(wù)員有什么兩樣?不一樣是為了糊口嗎?
我不知道別人怎樣,但我自參加工作以來就一直糾結(jié)于此——甚至開發(fā)的大部分產(chǎn)品都不好意思寫上自己的名字;直到前不久有機(jī)會(huì)去做一個(gè)公司內(nèi)部使用 的 平臺(tái),才終于有個(gè)作品讓自己覺得滿意。相信很多開發(fā)工程師參加工作之前都對(duì)互聯(lián)網(wǎng)上很多諸如Gmail, Facebook 等優(yōu)秀的產(chǎn)品耳熟能詳,自己也常夢(mèng)想做出那樣的產(chǎn)品,但萬萬沒有想到的是,工作之后要學(xué)習(xí)的第一課就是“不要對(duì)自己做的東西有感情”——有了感情你就不愿 意做廣告彈窗,不愿意看到它下線,不愿意為了短期利益?zhèn)τ脩簟Ec此同時(shí),你還要繼續(xù)聽產(chǎn)品經(jīng)理和老大們滿懷激情地說“我們一定要讓用戶喜歡我們的產(chǎn) 品”。一個(gè)連開發(fā)工程師本人都覺得無聊的產(chǎn)品如何讓用戶真正喜歡呢?拿搜索巨人來說吧,Google 把社交網(wǎng)站看作是某種形式的娛樂而不是有用的工具,所以它會(huì)
在社交領(lǐng)域失敗,再牛的技術(shù)也無法遮蓋情感上的空白。不過話說回來,這好像對(duì)于國(guó)內(nèi)大部分的公司都不是問題,因 為它們做一款產(chǎn)品只是想從用戶那里拿到錢,如果以后用戶流失了就下線,然后再開發(fā)一個(gè)新的。他們要的不是用戶的長(zhǎng)期感情,而是一夜情,開發(fā)工程師就是一夜 情的工具。
其次,國(guó)內(nèi)幾乎所有公司的技術(shù)流程和技術(shù)積累都做得很爛,大部分都只是片面地追求開發(fā)速度。我們?cè)诖髮W(xué)里受到的教育是“文檔和注釋很重要”,工作 之 后才發(fā)現(xiàn)文檔和注釋是很稀有的東西,只有特別負(fù)責(zé)任的工程師才會(huì)擠時(shí)間去寫。有一個(gè)很有意思的現(xiàn)象是,國(guó)內(nèi)很多產(chǎn)品發(fā)布之后會(huì)特別自豪地說“XX 是我們開發(fā)團(tuán)隊(duì)在時(shí)間緊迫的情況下,封閉開發(fā)了X 天就完成的!只有最牛的工程師才能創(chuàng)造這樣的奇跡!!多少個(gè)凌晨,XX寫字樓上只有我們辦公室的燈還亮著……”,然后你會(huì)覺得“好感動(dòng)啊”,但冷靜下來想 一想,這種拼命趕工做出來的東西質(zhì)量會(huì)過硬嗎?拋開產(chǎn)品質(zhì)量不談,沒有時(shí)間寫文檔、沒有時(shí)間寫注釋、沒有時(shí)間做 code review, 沒有時(shí)間做階段總結(jié)……沒有了這些,作為一個(gè)開發(fā)工程師你通過這個(gè)項(xiàng)目可以提升多少呢?所以好多開發(fā)工程師一開始是“代碼民工”,過了幾年還是“代碼民 工”,而一個(gè)人年富力強(qiáng)的時(shí)間又有幾年呢?怪不得那么多人說工程師和妓女一樣,都是吃青春飯的。
發(fā)展方向
我個(gè)人認(rèn)為,國(guó)內(nèi)的開發(fā)工程師大概有三個(gè)發(fā)展方向:1.做管理。 2. 去做架構(gòu)等與產(chǎn)品關(guān)系不那么緊密的研發(fā)。3. 提升其它方面的能力,做 “A+ Player”,然后自己創(chuàng)業(yè)。我對(duì)管理沒有研究,也沒有興趣,這里就不說了。研發(fā)我會(huì)在下篇中細(xì)說,這里主要說一下第三條。
為什么要關(guān)注代碼之外的事情
如果你只會(huì)埋頭寫代碼,那么代碼寫得再好也可能不會(huì)是一個(gè)好的開發(fā)工程師。做開發(fā)不是做學(xué)術(shù)研究,你的任務(wù)不是去鉆研技術(shù),而是利用自己的技術(shù)把 產(chǎn) 品做出來。盡管技術(shù)能力是基礎(chǔ),但如果無法把能力很好地應(yīng)用到開發(fā)當(dāng)中,那么你在團(tuán)隊(duì)中就沒什么價(jià)值。舉個(gè)例子,如果你不能很好地理解產(chǎn)品需求,那么就會(huì) 根據(jù)自己的理解去做技術(shù)方面的架構(gòu)和編碼,等到后來發(fā)現(xiàn)了再去修改就特別麻煩,這個(gè)時(shí)候技術(shù)能力強(qiáng)反而成了壞事,南轅北轍的故事我想大家都聽說過。
很多開發(fā)工程師屬于那種“很本分”的人,從來不會(huì)提出意見,不關(guān)心產(chǎn)品形態(tài)和細(xì)節(jié),只是去做產(chǎn)品經(jīng)理提出的需求。我覺得別人把工程師叫做“代碼民 工”也就算了,但是工程師對(duì)自己做的東西完全沒有看法,那就是甘心淪落為民工了。這也有文化的原因,國(guó)內(nèi)的公司都喜歡那些不愛抱怨的員工,因?yàn)樗麄兟犜挾?且符合中國(guó)傳統(tǒng)的價(jià)值觀,但我更喜歡那些愛抱怨并且抱怨得有道理的人,因?yàn)閲?guó)內(nèi)(不只是互聯(lián)網(wǎng)上面)粗制濫造的東西實(shí)在太他媽的多了,不抱怨才不正常,有 不滿才會(huì)去思考如何做得更好。
曾經(jīng)聽到有人談?wù)撊绾喂芾砑夹g(shù)人員的時(shí)候說:“管理技術(shù)人員很簡(jiǎn)單,找一個(gè)比他們都牛的人就行了。” 這個(gè)人很了解工程師的脾氣。工程師去判斷其他工程師的時(shí)候,往往只看他的技術(shù)能力,覺得誰的技術(shù)好誰就最牛,其它的都無所謂。沒錯(cuò),技術(shù)牛的工程師寫的代 碼質(zhì)量很高,但這只是一個(gè)方面而已,判斷一個(gè)人在團(tuán)隊(duì)中是不是“很牛”要看他對(duì)團(tuán)隊(duì)對(duì)產(chǎn)品的整體貢獻(xiàn),而不是他的個(gè)人能力。他能很好地理解產(chǎn)品需求嗎?能 很好地理解設(shè)計(jì)師的意圖嗎?和團(tuán)隊(duì)其他成員溝通順利嗎?寫出的代碼方便測(cè)試嗎?會(huì)對(duì)產(chǎn)品提出好的建議嗎?……這些都是判斷一個(gè)開發(fā)工程師的標(biāo)準(zhǔn),整體素質(zhì) 越高在團(tuán)隊(duì)中的價(jià)值也就越大。
所以要想做一個(gè)好的開發(fā)工程師,就要在寫好代碼的同時(shí)努力提高其它方面的能力。我知道大部分的工程師都喜歡和機(jī)器而不是和人打交道,所以遇到和產(chǎn) 品 經(jīng)理、設(shè)計(jì)師以及 QA 等部門協(xié)調(diào)溝通的時(shí)候就皺眉頭。協(xié)調(diào)溝通確實(shí)是一件鬧心的事情,但從另一方面來說,這是開發(fā)工程師的一個(gè)得天獨(dú)厚的優(yōu)勢(shì):你可以深入接觸產(chǎn)品生產(chǎn)線上的所 有環(huán)節(jié)。需求評(píng)審的時(shí)候,你可以了解產(chǎn)品設(shè)計(jì);開發(fā)界面的時(shí)候,你可以了解到視覺和交互設(shè)計(jì);測(cè)試的時(shí)候,你可以了解到產(chǎn)品測(cè)試的細(xì)節(jié);上線的時(shí)候,你也 可以多觀察 Ops 同事的操作。如果你可以在協(xié)調(diào)溝通的時(shí)候?qū)W會(huì)換位思考,多從對(duì)方的角度看問題,多想一下“他為什么要這么做”,那么不知不覺就會(huì)對(duì)各個(gè)領(lǐng)域有一些了解,進(jìn) 而發(fā)現(xiàn)原來每個(gè)領(lǐng)域都大有學(xué)問,就不會(huì)因?yàn)橹車切W(xué)藝不精的人而輕視他們所在的領(lǐng)域。
學(xué)習(xí)設(shè)計(jì)
對(duì)于工程師來說,測(cè)試和上線都是技術(shù)性的工作,和開發(fā)有很多相通的地方,而產(chǎn)品設(shè)計(jì)、交互設(shè)計(jì)和視覺設(shè)計(jì)等設(shè)計(jì)領(lǐng)域則比較陌生。對(duì)于自己不了解的 東 西,我們的看法往往會(huì)趨于兩個(gè)極端:要么是看得高深莫測(cè),要么是看得一文不值。其實(shí)對(duì)于大部分的東西,只要不笨并且愿意下功夫?qū)W習(xí),總是可以學(xué)會(huì)的。盡管 達(dá)到大師的水平可能需要傳說中的“天賦”,但做到中等水平并不是特別困難。關(guān)于設(shè)計(jì)領(lǐng)域我一直在斷斷續(xù)續(xù)地在學(xué)習(xí),到現(xiàn)在可能連略窺門徑也算不上,這里只 是說一下我個(gè)人對(duì)設(shè)計(jì)的理解和心得,供大家參考。
產(chǎn)品設(shè)計(jì)
產(chǎn)品設(shè)計(jì)看上去比較簡(jiǎn)單,因?yàn)橹灰宄约合胍鍪裁矗敲醋匀豢梢月蠢粘霎a(chǎn)品的形態(tài)和功能。要做好產(chǎn)品設(shè)計(jì),就需要平時(shí)多下一些功夫,多研 究 一下互聯(lián)網(wǎng)上那些已有的產(chǎn)品,另外還需要多看一些諸如社會(huì)學(xué)、歷史等“閑書”,舉個(gè)例子,假如你想開發(fā)一款針對(duì)臺(tái)灣用戶的產(chǎn)品,那么了解一下臺(tái)灣的文化肯 定是有必要的。總之,學(xué)習(xí)產(chǎn)品設(shè)計(jì)是慢功夫,沒有什么速成的捷徑,只有一點(diǎn)一滴地不斷積累才能培養(yǎng)出敏銳的產(chǎn)品意識(shí)和深刻的洞察力。
工程師學(xué)習(xí)產(chǎn)品設(shè)計(jì)有一個(gè)優(yōu)勢(shì),那就是設(shè)計(jì)出來的產(chǎn)品是自己親手實(shí)現(xiàn)的,你可以在實(shí)現(xiàn)的過程中不斷重新反思原來的設(shè)計(jì),然后加以修改和完善。這就 好 像寫文章一樣,很多時(shí)候你寫東西的時(shí)候并不清楚自己具體要寫什么,但只要是下筆開始寫,寫著寫著就會(huì)發(fā)現(xiàn)新的想法,寫作的過程同時(shí)也是思考的過程。寫作和 寫代碼很像,它們不僅可以表達(dá)想法,還可以創(chuàng)造想法。
視覺設(shè)計(jì)
很多工程師聽到視覺設(shè)計(jì)會(huì)立刻退避三舍,覺得自己“不會(huì)畫畫”、“不懂配色”是不可能學(xué)習(xí)視覺設(shè)計(jì)的。誠(chéng)然,視覺設(shè)計(jì)是需要更多藝術(shù)方面的基本 功, 要完全掌握需要長(zhǎng)期的訓(xùn)練,但我們還是可以從簡(jiǎn)單的學(xué)起,慢慢培養(yǎng)對(duì)設(shè)計(jì)的感覺。我個(gè)人在這方面所知非常有限,但是對(duì)視覺設(shè)計(jì)中的完美主義印象深刻。
編程的時(shí)候,如果你的某行代碼多了一個(gè)空行可能不會(huì)有什么問題,但在視覺設(shè)計(jì)中差了 1 個(gè)像素或者 10% 的透明度就是不可容忍的,很多設(shè)計(jì)師要求的都是 “Pixel-Perfect”——像素級(jí)別的完美。如果你不苛刻地追求完美,幾個(gè)這樣的“小瑕疵”就可以把整個(gè)作品毀掉。在我沒有接觸過視覺設(shè)計(jì)的時(shí)候 很難理解這一點(diǎn),切頁面的時(shí)候并不會(huì)特別仔細(xì)地去看設(shè)計(jì)圖,而且為了降低技術(shù)難度會(huì)想當(dāng)然地篡改設(shè)計(jì)師的意圖,比如把一些微小的漸變用純色代替,這是很無 知的做法。所以當(dāng)設(shè)計(jì)師要求你做一個(gè) 1px 的修改的時(shí)候,即使會(huì)花掉你幾個(gè)小時(shí)的時(shí)間也要聽他的——只有這樣才可以把界面做到百分之一百的完美。當(dāng)然,設(shè)計(jì)師自己做不到完美另當(dāng)別論。
此外,作為一個(gè)頁面設(shè)計(jì)師,從職位名稱上來看他的最終作品應(yīng)該是頁面,而不只是視覺效果圖。所以我覺得頁面設(shè)計(jì)師應(yīng)該精通 CSS,只有自己才可以精確實(shí)現(xiàn)自己的設(shè)計(jì)意圖。對(duì)于那些沒有受過設(shè)計(jì)訓(xùn)練的工程師來說,很難注意到頁面上色彩、字體和漸變的細(xì)節(jié),讓他們精確實(shí)現(xiàn)一個(gè)設(shè) 計(jì)師的意圖幾乎是不可能的。精通 CSS 對(duì)于頁面設(shè)計(jì)師來說并不算一個(gè)過分的要求,很多國(guó)外的設(shè)計(jì)師甚至可以自己用 PHP 寫出產(chǎn)品原型,相比之下,國(guó)內(nèi)的頁面設(shè)計(jì)師進(jìn)化得實(shí)在太慢了。
交互設(shè)計(jì)
交互設(shè)計(jì)是有關(guān)行為的設(shè)計(jì),它更關(guān)注如何讓產(chǎn)品更好用。舉個(gè)例子,網(wǎng)頁中一般都有很多超鏈接,當(dāng)你把鼠標(biāo)移動(dòng)到超鏈接上的時(shí)候,鼠標(biāo)形狀會(huì)變成手 型,暗示它是可以點(diǎn)擊的,而且訪問過的超鏈接和普通超鏈接的顏色是不同的,這樣就很好地引導(dǎo)了用戶行為。
之前我一直把設(shè)計(jì)和“視覺設(shè)計(jì)”等同起來,但在深入了解了之后發(fā)現(xiàn),對(duì)于互聯(lián)網(wǎng)產(chǎn)品來說,交互設(shè)計(jì)要比視覺設(shè)計(jì)重要得多,而且交互設(shè)計(jì)相對(duì)于視覺 設(shè) 計(jì)也更加有跡可循,對(duì)“感覺”要求沒那么高,工程師完全可以把重點(diǎn)放在交互設(shè)計(jì)上。如果交互設(shè)計(jì)做得好,視覺設(shè)計(jì)遵循一些標(biāo)準(zhǔn),那么完全可以做出一款“不 難看并且好用”的產(chǎn)品。沒有人特別夸贊 Google 的產(chǎn)品“好看”,但它們都特別好用,Google 注重的是易用、快速,用戶體驗(yàn)是很棒的。
互聯(lián)網(wǎng)行業(yè)的大部分頁面設(shè)計(jì)師(Web Designer)都是學(xué)習(xí)平面設(shè)計(jì)出身的,但我覺得網(wǎng)頁和軟件設(shè)計(jì)更像是“顯示器里面的工業(yè)設(shè)計(jì)”。很多平面設(shè)計(jì)師設(shè)計(jì)出的頁面很好看,好像海報(bào)一樣, 非常適合打印出來,但往往對(duì)交互方面重視不夠。不太好看影響不會(huì)很大,但不好用就沒有辦法留住用戶,而且有時(shí)候太注重外觀的視覺效果反而會(huì)分散用戶的注意 力進(jìn)而影響產(chǎn)品的使用,這種 “eye candy” 是糟糕的設(shè)計(jì)。現(xiàn)在專門培養(yǎng)交互設(shè)計(jì)師的機(jī)構(gòu)不多,我很希望對(duì)互聯(lián)網(wǎng)有興趣的工業(yè)設(shè)計(jì)師們到這個(gè)行業(yè)中來。
關(guān)于設(shè)計(jì)我就說這么多,以后有機(jī)會(huì)再另外撰文專門探討這些主題。值得一提的是,沒有人可以真正把設(shè)計(jì)和開發(fā)全部精通,如果深入到細(xì)節(jié),無論設(shè)計(jì)和 開 發(fā)都會(huì)占用你大量的時(shí)間和腦力。單從設(shè)計(jì)來說,需要掌握的就有顏色、字體排印(Typography)、排版(Layout)、交互設(shè)計(jì)等,其中每一種技 能又涵蓋無數(shù)細(xì)節(jié),真的是要皓首窮經(jīng)才可以在其中的某個(gè)領(lǐng)域成為大師。不過,即使你對(duì)這些知識(shí)只是有一個(gè)大致的了解,以后在看一款產(chǎn)品的時(shí)候也可以從功 能、交互、排版、頁面代碼、整體性能以及URL語義化等各個(gè)方面進(jìn)行全面而細(xì)致的分析,明白它哪里做得好,哪里做得不好,而不是在那里想當(dāng)然地說“真酷” 或者“狗屎”。真正了解什么是好的什么是差的,自己做東西的時(shí)候才會(huì)心中有數(shù)。
一專多能的好處
很多人可能會(huì)說:“一個(gè)人要是可以把所有事情都搞定,那還要其他人干嘛?我更相信團(tuán)隊(duì)的力量。” 沒錯(cuò),一個(gè)人就算從設(shè)計(jì)到開發(fā)都精通,如果只有他一個(gè)人做東西,開發(fā)效率也不會(huì)高。但是若你真的花心思去了解那些“與代碼無關(guān)的事情”,你就會(huì)在寫代碼的 時(shí)候更多考慮到產(chǎn)品經(jīng)理/設(shè)計(jì)師的想法,對(duì)產(chǎn)品經(jīng)理/設(shè)計(jì)師疏忽的地方也可以及時(shí)提醒,讓自己真正地融入整個(gè)團(tuán)隊(duì)。目標(biāo)并不一定要實(shí)現(xiàn),它是用來指明方向 的。開發(fā)工程師提高自己的產(chǎn)品意識(shí)和設(shè)計(jì)能力絕對(duì)不會(huì)是白費(fèi)心血,不然的話你就只是一個(gè)實(shí)現(xiàn)產(chǎn)品的工具。你只會(huì)回答別人提出的問題,而好的問題要比好的答 案有價(jià)值得多。
當(dāng)你各方面能力提高得差不多的時(shí)候,應(yīng)該就可以出來創(chuàng)業(yè)了(注意,我說的是創(chuàng)業(yè),不是去創(chuàng)業(yè)公司打工)。因?yàn)閷?duì)各個(gè)領(lǐng)域都有一定的了解,平時(shí)也經(jīng) 常 接觸到各個(gè)領(lǐng)域的人,那么在創(chuàng)業(yè)的時(shí)候你就很清楚自己需要什么樣的產(chǎn)品經(jīng)理/設(shè)計(jì)師,知道具有什么樣能力的產(chǎn)品經(jīng)理/設(shè)計(jì)師才是最好的,這樣就可以從一開 始就保證團(tuán)隊(duì)的質(zhì)量和氣質(zhì)。很多互聯(lián)網(wǎng)的業(yè)界前輩都說過“要招聘最好的人”,但問題是你如何判斷一個(gè)人是不是該領(lǐng)域最好的呢?如果一個(gè)人對(duì)程序和設(shè)計(jì)一竅 不通,滿腦子都是商業(yè)運(yùn)作,你覺得他有可能找出最好的工程師和設(shè)計(jì)師嗎?有一次和一個(gè)創(chuàng)業(yè)公司的CEO聊天,他和我講他們“只招聘 Geek”,后來我才發(fā)現(xiàn)他其實(shí)根本不知道什么是 Geek,只是不知道從那里聽到 Geek 這個(gè)詞,他真正想要的應(yīng)該是那種只知道寫代碼愿意沒日沒夜任勞任怨給他當(dāng)牛做馬的人。國(guó)內(nèi)大部分的創(chuàng)業(yè)公司就是這樣,老大們喊著技術(shù)密集型的口號(hào),實(shí)際上 做著勞動(dòng)密集型的事情,金玉其外,敗絮其中。你可以和他們不一樣。
我自己并沒有創(chuàng)業(yè)的經(jīng)歷,也沒有創(chuàng)業(yè)的打算,所以對(duì)創(chuàng)業(yè)的理解可能很片面而且天真。但是我相信,找到最好的人永遠(yuǎn)都是關(guān)鍵,不然即便后來成功了, 也 不過是多了一家靠人數(shù)取勝的血汗工廠。假如你選擇成為移動(dòng)互聯(lián)網(wǎng)的獨(dú)立開發(fā)者,對(duì)一個(gè)產(chǎn)品各個(gè)環(huán)節(jié)的全局把握也是有必要的。如果一個(gè)團(tuán)隊(duì)的每個(gè)人都能獨(dú)當(dāng) 一面并且可以很好地理解其他人的意圖和專業(yè)技能,就算最后在商業(yè)上失敗了,那也會(huì)是一個(gè)幸福的團(tuán)隊(duì),比那些除了盈利之外找不到任何亮點(diǎn)的團(tuán)隊(duì)好太多。
對(duì)產(chǎn)品經(jīng)理的偏見
在“開發(fā)”這個(gè)小節(jié)的最后,我想多說一點(diǎn)自己對(duì)產(chǎn)品經(jīng)理這個(gè)角色的看法。在國(guó)內(nèi)絕大多數(shù)公司,開發(fā)工程師的作用就是把產(chǎn)品經(jīng)理的想法以代碼的方式 寫 出來,“代碼民工”這個(gè)稱呼倒是很恰當(dāng)。我對(duì)互聯(lián)網(wǎng)行業(yè)的產(chǎn)品經(jīng)理們一直感到很奇怪:他們沒有能力把自己的想法實(shí)現(xiàn)出來,但是卻幾乎總是認(rèn)為自己比其他人 更理解產(chǎn)品;當(dāng)工程師對(duì)產(chǎn)品提出自己的意見的時(shí)候,他們往往會(huì)心中不屑但盡量保持禮貌擠出微笑說一句:“呵呵,工程師不是普通用戶”。一個(gè)產(chǎn)品本來就是需 要很多人齊心協(xié)力一起完成的,產(chǎn)品經(jīng)理和工程師的地位也是平等的,但是由于產(chǎn)品經(jīng)理在工作流的上游,所以情況往往演變成工程師在為產(chǎn)品經(jīng)理工作。如果產(chǎn)品 經(jīng)理真的對(duì)產(chǎn)品負(fù)責(zé)也就罷了,可惜的是大公司的產(chǎn)品經(jīng)理大部分是對(duì)KPI負(fù)責(zé),小公司的產(chǎn)品經(jīng)理大部分是對(duì)老板的個(gè)人好惡負(fù)責(zé),結(jié)果就是工程師跟在產(chǎn)品經(jīng) 理屁股后面做一些莫名其妙的事情。我接觸到的幾乎所有開發(fā)工程師都對(duì)他們的產(chǎn)品經(jīng)理頭疼不已,據(jù)他們說,好的產(chǎn)品經(jīng)理就像真正的愛情,是極為稀有和可遇不 可求的。
按照現(xiàn)在大部分公司的分工方式,產(chǎn)品經(jīng)理是產(chǎn)品的總負(fù)責(zé)人。根據(jù)我個(gè)人的理解,產(chǎn)品經(jīng)理之于產(chǎn)品,應(yīng)該相當(dāng)于導(dǎo)演之于電影,建筑師之于建筑。一個(gè) 導(dǎo) 演如果對(duì)拍攝一竅不通,那么就很難控制鏡頭的表現(xiàn)力;一個(gè)建筑師如果對(duì)建筑材料和結(jié)構(gòu)一無所知,就不可能把握建筑整體的感覺。那為什么那么多人會(huì)覺得產(chǎn)品 經(jīng)理可以不懂技術(shù)不懂視覺設(shè)計(jì),只需要寫好文檔畫個(gè)框圖然后交給別人去做就可以做出好的產(chǎn)品呢?本來是一個(gè)需要對(duì)各個(gè)領(lǐng)域融會(huì)貫通最難做得好的角色,現(xiàn)在 反而被很多人視為清閑的差事,不愛干活的人紛紛想要轉(zhuǎn)去做產(chǎn)品經(jīng)理,實(shí)在是可悲至極。
我一直堅(jiān)信好的工程師是不需要產(chǎn)品經(jīng)理的。如果一個(gè)產(chǎn)品非要有一個(gè)什么產(chǎn)品經(jīng)理的話,Google 的很多產(chǎn)品都不會(huì)出現(xiàn),DropBox 這種只招聘工程師的公司也早就完蛋了。很多偉大的產(chǎn)品都是幾個(gè)工程師想到一個(gè)點(diǎn)子然后慢慢做出來的,比如 Paypal 和 Google. 但需要說明的是,我討厭產(chǎn)品經(jīng)理并不是說我推崇“技術(shù)導(dǎo)向”——無論怎樣產(chǎn)品都應(yīng)該是讓用戶使用的,而不是用來炫耀技術(shù)的,只不過工程師不需要產(chǎn)品經(jīng)理也 可以設(shè)計(jì)好一個(gè)產(chǎn)品并且實(shí)現(xiàn)它。產(chǎn)品設(shè)計(jì)不是產(chǎn)品經(jīng)理的專利。
想知道懂得設(shè)計(jì)的工程師沒有產(chǎn)品經(jīng)理的時(shí)候可以做出什么東西嗎?去看一下
Livid 做的
V2EX 就知道了。在國(guó)內(nèi),設(shè)計(jì)和代碼都有品味的網(wǎng)站可不多,我覺得
Livid 同學(xué)真是開發(fā)工程師的典范。
接下來我們說一下“研發(fā)”。(未完待續(xù))
1月7日消息,中國(guó)移動(dòng)今日在國(guó)內(nèi)率先推出業(yè)務(wù)扣費(fèi)主動(dòng)提醒和增值業(yè)務(wù)0000統(tǒng)一查詢退訂 兩項(xiàng)“透明消費(fèi)”服務(wù)舉措,今后客戶訂購(gòu)增值業(yè)務(wù)后,在扣費(fèi)之前能夠得到短信提醒,且只要發(fā)送短信“0000”到10086,就能便捷查詢和退訂已訂購(gòu)的 包月類增值業(yè)務(wù),兩項(xiàng)服務(wù)均免費(fèi)。據(jù)了解,中國(guó)移動(dòng)此次推出的“業(yè)務(wù)扣費(fèi)主動(dòng)提醒”服務(wù)是一項(xiàng)基于客戶行為的主動(dòng)提醒服務(wù),是在業(yè)務(wù)訂購(gòu)二次確認(rèn)的基礎(chǔ)上開展的一項(xiàng)深化服務(wù),主要面向客戶新訂購(gòu)的業(yè)務(wù)。
在客戶確認(rèn)訂購(gòu)某項(xiàng)個(gè)人增值業(yè)務(wù)后,在扣減該增值業(yè)務(wù)費(fèi)用前,中國(guó)移動(dòng)會(huì)通過“10086”向訂購(gòu)客戶發(fā)送提醒短信;客戶如有疑問,可根據(jù)短信提示方便地進(jìn) 行投訴或直接退訂,對(duì)于客戶退訂的業(yè)務(wù),不予收費(fèi)。目前,該服務(wù)涵蓋絕大部分個(gè)人增值業(yè)務(wù),只有極個(gè)別業(yè)務(wù)因?yàn)楫a(chǎn)業(yè)鏈技術(shù)原因,暫時(shí)未能實(shí)施。此外,當(dāng)客 戶訂購(gòu)或變更套餐時(shí)、以及次月套餐生效時(shí),中國(guó)移動(dòng)也會(huì)通過“10086”向客戶發(fā)送提醒短信。
“增值業(yè)務(wù)0000統(tǒng)一查詢退訂”服務(wù),是一項(xiàng)針對(duì)客戶已訂購(gòu)業(yè)務(wù)的便捷查詢退訂服務(wù)。客戶只要發(fā)送短信“0000”到10086,即可快速查詢到客戶截止目前訂購(gòu)的除套餐內(nèi)包含業(yè)務(wù)外的包月類增值業(yè)務(wù),這包括中國(guó)移動(dòng)的自有業(yè)務(wù)和合作業(yè)務(wù),如手機(jī)報(bào)、歌曲下載、天氣預(yù)報(bào)等。此外,通過該服務(wù)還可查詢集團(tuán)彩鈴、校訊通、農(nóng)信通、手機(jī)郵箱等集團(tuán)客戶常用的業(yè)務(wù)。根據(jù)業(yè)務(wù)查詢結(jié)果,客戶可方便快捷的根據(jù)短信提示退訂某項(xiàng)、多項(xiàng)或全部已訂購(gòu)的業(yè)務(wù)。
目前,業(yè)務(wù)扣費(fèi)主動(dòng)提醒和增值業(yè)務(wù)0000統(tǒng)一查詢退訂兩項(xiàng)服務(wù)均免費(fèi)向中國(guó)移動(dòng)客戶提供。
新業(yè)務(wù)全國(guó)后臺(tái)支撐升級(jí)工作完畢
據(jù)悉,中國(guó)移動(dòng)自2010年初就開始著手實(shí)施這項(xiàng)“透明消費(fèi)”服務(wù)專項(xiàng)行動(dòng),歷時(shí)近一年時(shí)間,逐一梳理了758個(gè)自有業(yè)務(wù)以及20多萬個(gè)合作業(yè)務(wù),并投入大量人力、物力對(duì)后臺(tái)支撐系統(tǒng)等進(jìn)行了全面升級(jí)。
截至目前,中國(guó)移動(dòng)全國(guó)31個(gè)省、自治區(qū)、直轄市公司已完成兩項(xiàng)“透明消費(fèi)”服務(wù)舉措的后臺(tái)支撐系統(tǒng)升級(jí)工作。
中 國(guó)移動(dòng)副總裁沙躍家表示,將逐步建立起全面的“透明消費(fèi)”服務(wù)體系,推出業(yè)務(wù)扣費(fèi)主動(dòng)提醒和增值業(yè)務(wù)0000統(tǒng)一查詢退訂兩項(xiàng)服務(wù)舉措是建立全面“透明消 費(fèi)”服務(wù)體系的關(guān)鍵一步。近期,中國(guó)移動(dòng)還將開展帳單、詳單、發(fā)票信息優(yōu)化工作,使帳單、詳單、發(fā)票信息更加清晰明了,不斷提升客戶感知。
導(dǎo)讀:面試準(zhǔn)備的重要性不用編者多言,大家都很清楚。本文是加拿大的一位程序員所寫。大家可以看看國(guó)外程序員是怎么準(zhǔn)備面試。不管你是否認(rèn)同他的說法,《詩經(jīng)》中有句話非常好——“它山之石,可以攻玉”。如果你還有其他面試準(zhǔn)備方法,不妨在評(píng)論或微博中和大家一起分享。
一、開門見山
一般來說,你(求職者)在面試中會(huì)花很多時(shí)間談?wù)撘郧暗慕?jīng)歷。如果你還沒有想出你的最具代表性的經(jīng)歷/案例,那么你現(xiàn)在是時(shí)候該做了。下面有張問題 表,雖然很多問題看似比較低級(jí),但相信我,看完這些問題后,你應(yīng)當(dāng)反思自己。即便面試時(shí)沒有碰到類似這張列表上的問題,你在面試也可以用上已準(zhǔn)備好的答 案。
- 1. 說說你自己吧
- 2. 你的短期目標(biāo)是什么?你2到5年內(nèi)的目標(biāo)是什么?
- 3. 你的愿景/使命是什么?
- 4. 你想從這個(gè)崗位中學(xué)到什么?
- 5. 你為什么認(rèn)為自己能勝任這個(gè)崗位?
- 6. 除了這個(gè)崗位,你還在找哪些崗位?
- 7. 你有什么樣的管理或領(lǐng)導(dǎo)經(jīng)驗(yàn)?
- 8. 你有什么樣的團(tuán)隊(duì)工作經(jīng)驗(yàn)?
- 9. 你最滿意/不滿意的經(jīng)歷是什么?
- 10. 你的強(qiáng)項(xiàng)/弱項(xiàng)是什么?
- 11. 你最擅長(zhǎng)處理哪一類的問題?
- 12. 你是如何減壓?如何平衡工作和生活?
- 13. 如果他人提出的要求有違你的道德準(zhǔn)則或商業(yè)道德,你怎么處理?
- 14. 你上次試圖向他人出售點(diǎn)子有什么樣的結(jié)果?
- 15. 你為什么要應(yīng)聘我們公司?你對(duì)我們公司了解多少?
- 16. 你認(rèn)為加入我們公司有什么樣的利弊?
- 17. 你最看重雇主的哪一方面?
- 18. 你過去遇到的主管有哪些共同點(diǎn)?
- 19. 如果要在競(jìng)爭(zhēng)中保持領(lǐng)先,你認(rèn)為我們公司的員工最需要哪些品質(zhì)?
- 20. 你最喜歡/不喜歡什么課程?為什么?
- 21. 你的兼職/暑假/實(shí)習(xí)經(jīng)歷中有什么收獲?
- 22. 你有什么樣的深造計(jì)劃?
- 23. 為什么你的成績(jī)這么低?
- 24. 你是如何打發(fā)空余時(shí)間的?
- 25. 如果我讓你的朋友們描述你,你覺得他們會(huì)怎么說呢?
- 26. 什么事最讓你沮喪?
- 27. 你上次在工作中遇到惱火的事是什么時(shí)候?結(jié)果如何?
- 28. 你如何提高你的整體效益?
- 29. 去年你遇到最艱難的決定是什么?為什么它很艱難?
- 30. 你為什么到現(xiàn)在還沒有找到工作?
- 31. 你在哪些方面沒有任何經(jīng)驗(yàn)?比如:銷售、籌款或者簿記。
- 32. 我們?yōu)槭裁匆陀媚悖?
-
上面這個(gè)列表中的問題需要深思和反省才能回答,所以在下一次面試之前很有必要提前想一想。有些問題可以有相同的答案。如果問題答案需要講述一段故事/經(jīng)歷,你可以按如下方式來做:
- 1. 20秒描述情況。“代碼出問題了,整個(gè)團(tuán)隊(duì)必須找出原因。”
- 2. 30秒描述你做了什么。“我認(rèn)為是內(nèi)存溢出,我注意到AbstractMemberCreationFactory本應(yīng)該只有一個(gè)實(shí)例,但它有很多實(shí)例”。
- 3. 20秒描述結(jié)果。“我用一行代碼解決溢出問題,我們的產(chǎn)品如期上線。后來,我都會(huì)先測(cè)試確保不會(huì)再有類似問題”。
在每次面試前,瀏覽整個(gè)列表并大聲練習(xí)你的回答。這樣做讓你在面試中更加輕松自如,你就比其他應(yīng)聘者有更多的優(yōu)勢(shì)。比如,當(dāng)在回答問題時(shí),其他應(yīng)聘者可能會(huì)先看著天花板說“嗯”,然后開始回憶過去5年中發(fā)生的一切。而你則可以微笑地看著面試官的眼睛,再陳述你的答案。
二、事先練習(xí)最常用的編程算法,以建立自信
鋼琴家在達(dá)到下一級(jí)水平之前,他們必須先學(xué)習(xí)一套短曲。這些短曲雖然不曾在聚會(huì)上彈奏,但他們要練習(xí)特定的部分,比如右手小指和切分音。同理,盡管有些算法你或許沒有在你的代碼中用過,但它們經(jīng)常在編程面試中出現(xiàn)。比如:
- 1. 反轉(zhuǎn)單鏈表;
- 2. 反轉(zhuǎn)字符串或反轉(zhuǎn)段落中的單詞順序;
- 3. 利用星號(hào)輸出畫一個(gè)任意大小的圓;
- 4. 整數(shù)轉(zhuǎn)換為字符串,數(shù)字型的字符串轉(zhuǎn)換為整數(shù);
- 5. 寫一個(gè)函數(shù),返回任意整數(shù)對(duì)應(yīng)二進(jìn)制形式中的“1”的個(gè)數(shù);
- 6. 寫一個(gè)函數(shù),輸出字符串中字符的所有排序。(比如:abc acb bac bca cab cba)
一般來說,可以先不考慮算法的運(yùn)行時(shí)間,都是先用最簡(jiǎn)單有效算法。然后再盡量減少運(yùn)行時(shí)間。能讓算法正常跑起來,總比你花大量時(shí)間想一步到位要好。(一步到位的想法雖好,但大部分時(shí)候都是事倍功半。)
提示:
做練習(xí)時(shí),別自欺欺人看答案。
我第一次寫“反轉(zhuǎn)單鏈表”算法是利用課間時(shí)間。我并不急,從運(yùn)行時(shí)間較長(zhǎng)的方案到優(yōu)化的方案,我用了半個(gè)小時(shí)。在驗(yàn)證算法正確無誤后,我非常高興!我知道不看答案我也能解決問題了。(建立自信了!)在面試中,當(dāng)遇到從未見過的問題時(shí),我以前的經(jīng)驗(yàn)給了我信心。
三、練習(xí)解決問題能力
有些應(yīng)聘者認(rèn)為能解決腦筋急轉(zhuǎn)彎問題就有良好的編程技能。如果你也這么認(rèn)為,那你應(yīng)當(dāng)培養(yǎng)猜謎這方面的興趣和技巧。你可以去圖書館或在網(wǎng)上找這方面的書。然后,挑一些有趣的問題,先別看解答。如果半個(gè)小時(shí)之內(nèi)還想不出答案的,才可以查閱解答。
第四、展現(xiàn)出真正的熱情
另一個(gè)技巧就是要把真正的熱情展現(xiàn)出來。作為人,我們應(yīng)該真誠(chéng)和熱情與他人共處工作。另一方面,我們也要有看穿虛假笑臉的能力(沒有這種能力,也需要鍛煉出來),所以活出真我很重要。
最優(yōu)秀的面試官會(huì)讓你討論一些你非常熱衷的事情,即使有些些事和你所應(yīng)聘的崗位沒有直接關(guān)系。然而,大多數(shù)面試官卻沒有這么做。雖然如此,你還是應(yīng)當(dāng) 好好考慮那些你非常感興趣的事,并且要抓住機(jī)會(huì)來和面試官討論一番。如果面試官允許的話,一定要在面試過程中的前段時(shí)間內(nèi)完成,如果能在第一時(shí)間展現(xiàn)出來 更佳。面試開始10分鐘后的效果可能就不怎么樣了,因?yàn)槊嬖嚬僖呀?jīng)給你打分了。
想象一下:你第一天去新崗位工作,轉(zhuǎn)向新的開發(fā)平臺(tái),遇到一些有趣的新朋友,并且了解了公司的生活。(總之)在公司中會(huì)有很多讓你興奮的事,要不然,你為什么去應(yīng)聘呢?
五、睡眠/休息
如果你缺覺的話,“舌尖現(xiàn)象”則會(huì)急劇上升,導(dǎo)致你在面試中就不能很好回憶事情。所以,面試前必須有個(gè)良好的睡眠。 到底睡多長(zhǎng)時(shí)間最合適呢?請(qǐng)參考此文《
你的睡眠時(shí)間和睡眠質(zhì)量達(dá)標(biāo)了么?》。
編者注:“舌尖現(xiàn)象”非常普遍,它是因?yàn)榇竽X對(duì)記憶內(nèi)容的暫時(shí)性抑制所造成的。這種抑制來自于多方面,比如對(duì)有關(guān)事物的其他部分特征的回憶掩蓋了所要 回憶的那部分特征,又比如回憶時(shí)的情境因素以及自身情緒因素的干擾等等。而消除了抑制,(如經(jīng)他人提示、離開回憶困難時(shí)的情境、消除緊張情緒等,)舌尖現(xiàn) 象往往就會(huì)消失。很多人都有過這樣的經(jīng)歷:一些平時(shí)很簡(jiǎn)單、很熟悉的字、單詞或公式等話到嘴邊就是無法記起,考試過后卻突然憶起。再比如,遇到一個(gè)熟人, 就是叫不出名字來。心理學(xué)上稱這種特殊現(xiàn)象為記憶的“舌尖現(xiàn)象”,意思是回憶的內(nèi)容到了舌尖,只差一點(diǎn),就是無法憶起。
本文出處:
伯樂在線 -
職場(chǎng)博客
本文鏈接:
http://www.jobbole.com/entry.php/253
Via:
Steve 編譯:
伯樂在線 敏捷翻譯組 - 關(guān)關(guān)
1、調(diào)用沒有返回值和參數(shù)的JAVA方法
1.1、dwr.xml的配置
<dwr>
<allow>
<create creator="new" javascript="testClass" >
<param name="class" value="com.dwr.TestClass" />
<include method="testMethod1"/>
</create>
</allow>
</dwr>
<allow>標(biāo)簽中包括可以暴露給javascript訪問的東西。
<create>標(biāo)簽中指定javascript中可以訪問的java類,并定義DWR應(yīng)當(dāng)如何獲得要進(jìn)行遠(yuǎn)程的類的實(shí)例。creator="new"屬性指定java類實(shí)例的生成方式,new意味著DWR應(yīng)當(dāng)調(diào)用類的默認(rèn)構(gòu)造函數(shù)來獲得實(shí)例,其他的還有spring方式,通過與IOC容器Spring進(jìn)行集成來獲得實(shí)例等等。javascript=" testClass "屬性指定javascript代碼訪問對(duì)象時(shí)使用的名稱。
<param>標(biāo)簽指定要公開給javascript的java類名。
<include>標(biāo)簽指定要公開給javascript的方法。不指定的話就公開所有方法。
<exclude>標(biāo)簽指定要防止被訪問的方法。
1.2、javascript中調(diào)用
首先,引入javascript腳本
<script src=‘dwr/interface/ testClass.js‘></script>
<script src=‘dwr/engine.js‘></script>
<script src=‘dwr/util.js‘></script>
其中TestClass.js是dwr根據(jù)配置文件自動(dòng)生成的,engine.js和util.js是dwr自帶的腳本文件。
其次,編寫調(diào)用java方法的javascript函數(shù)
Function callTestMethod1(){
testClass.testMethod1();
}
2、調(diào)用有簡(jiǎn)單返回值的java方法
2.1、dwr.xml的配置
配置同1.1
<dwr>
<allow>
<create creator="new" javascript="testClass" >
<param name="class" value="com.dwr.TestClass" />
<include method="testMethod2"/>
</create>
</allow>
</dwr>
2.2、javascript中調(diào)用
首先,引入javascript腳本
其次,編寫調(diào)用java方法的javascript函數(shù)和接收返回值的回調(diào)函數(shù)
Function callTestMethod2(){
testClass.testMethod2(callBackFortestMethod2);
}
Function callBackFortestMethod2(data){
//其中date接收方法的返回值
//可以在這里對(duì)返回值進(jìn)行處理和顯示等等
alert("the return value is " + data);
}
其中callBackFortestMethod2是接收返回值的回調(diào)函數(shù)
3、調(diào)用有簡(jiǎn)單參數(shù)的java方法
3.1、dwr.xml的配置
配置同1.1
<dwr>
<allow>
<create creator="new" javascript="testClass" >
<param name="class" value="com.dwr.TestClass" />
<include method="testMethod3"/>
</create>
</allow>
</dwr>
3.2、javascript中調(diào)用
首先,引入javascript腳本
其次,編寫調(diào)用java方法的javascript函數(shù)
Function callTestMethod3(){
//定義要傳到j(luò)ava方法中的參數(shù)
var data;
//構(gòu)造參數(shù)
data = “test String”;
testClass.testMethod3(data);
}
4、調(diào)用返回JavaBean的java方法
4.1、dwr.xml的配置
<dwr>
<allow>
<create creator="new" javascript="testClass" >
<param name="class" value="com.dwr.TestClass" />
<include method="testMethod4"/>
</create>
<convert converter="bean" match=""com.dwr.TestBean">
<param name="include" value="username,password" />
</convert>
</allow>
</dwr>
<creator>標(biāo)簽負(fù)責(zé)公開用于Web遠(yuǎn)程的類和類的方法,<convertor>標(biāo)簽則負(fù)責(zé)這些方法的參數(shù)和返回類型。convert元素的作用是告訴DWR在服務(wù)器端Java 對(duì)象表示和序列化的JavaScript之間如何轉(zhuǎn)換數(shù)據(jù)類型。DWR自動(dòng)地在Java和JavaScript表示之間調(diào)整簡(jiǎn)單數(shù)據(jù)類型。這些類型包括Java原生類型和它們各自的封裝類表示,還有String、Date、數(shù)組和集合類型。DWR也能把JavaBean轉(zhuǎn)換成JavaScript 表示,但是出于安全性的原因,要求顯式的配置,<convertor>標(biāo)簽就是完成此功能的。converter="bean"屬性指定轉(zhuǎn)換的方式采用JavaBean命名規(guī)范,match=""com.dwr.TestBean"屬性指定要轉(zhuǎn)換的javabean名稱,<param>標(biāo)簽指定要轉(zhuǎn)換的JavaBean屬性。
4.2、javascript中調(diào)用
首先,引入javascript腳本
其次,編寫調(diào)用java方法的javascript函數(shù)和接收返回值的回調(diào)函數(shù)
Function callTestMethod4(){
testClass.testMethod4(callBackFortestMethod4);
}
Function callBackFortestMethod4(data){
//其中date接收方法的返回值
//對(duì)于JavaBean返回值,有兩種方式處理
//不知道屬性名稱時(shí),使用如下方法
for(var property in data){
alert("property:"+property);
alert(property+":"+data[property]);
}
//知道屬性名稱時(shí),使用如下方法
alert(data.username);
alert(data.password);
}
其中callBackFortestMethod4是接收返回值的回調(diào)函數(shù)
5、調(diào)用有JavaBean參數(shù)的java方法
5.1、dwr.xml的配置
配置同4.1
<dwr>
<allow>
<create creator="new" javascript="testClass" >
<param name="class" value="com.dwr.TestClass" />
<include method="testMethod5"/>
</create>
<convert converter="bean" match="com.dwr.TestBean">
<param name="include" value="username,password" />
</convert>
</allow>
</dwr>
5.2、javascript中調(diào)用
首先,引入javascript腳本
其次,編寫調(diào)用java方法的javascript函數(shù)
Function callTestMethod5(){
//定義要傳到j(luò)ava方法中的參數(shù)
var data;
//構(gòu)造參數(shù),date實(shí)際上是一個(gè)object
data = { username:"user", password:"password" }
testClass.testMethod5(data);
}
6、調(diào)用返回List、Set或者M(jìn)ap的java方法
6.1、dwr.xml的配置
配置同4.1
<dwr>
<allow>
<create creator="new" javascript="testClass" >
<param name="class" value="com.dwr.TestClass" />
<include method="testMethod6"/>
</create>
<convert converter="bean" match="com.dwr.TestBean">
<param name="include" value="username,password" />
</convert>
</allow>
</dwr>
注意:如果List、Set或者M(jìn)ap中的元素均為簡(jiǎn)單類型(包括其封裝類)或String、Date、數(shù)組和集合類型,則不需要<convert>標(biāo)簽。
6.2、javascript中調(diào)用(以返回List為例,List的元素為TestBean)
首先,引入javascript腳本
其次,編寫調(diào)用java方法的javascript函數(shù)和接收返回值的回調(diào)函數(shù)
Function callTestMethod6(){
testClass.testMethod6(callBackFortestMethod6);
}
Function callBackFortestMethod6(data){
//其中date接收方法的返回值
//對(duì)于JavaBean返回值,有兩種方式處理
//不知道屬性名稱時(shí),使用如下方法
for(var i=0;i<data.length;i++){
for(var property in data){
alert("property:"+property);
alert(property+":"+data[property]);
}
}
//知道屬性名稱時(shí),使用如下方法
for(var i=0;i<data.length;i++){
alert(data.username);
alert(data.password);
}
}
7、調(diào)用有List、Set或者M(jìn)ap參數(shù)的java方法
7.1、dwr.xml的配置
<dwr>
<allow>
<create creator="new" javascript="testClass" >
<param name="class" value="com.dwr.TestClass" />
<include method="testMethod7"/>
</create>
<convert converter="bean" match="com.dwr.TestBean">
<param name="include" value="username,password" />
</convert>
</allow>
<signatures>
<![CDATA[
import java.util.List;
import com.dwr.TestClass;
import com.dwr.TestBean;
TestClass.testMethod7(List<TestBean>);
]]>
</signatures>
</dwr>
<signatures>標(biāo)簽是用來聲明java方法中List、Set或者M(jìn)ap參數(shù)所包含的確切類,以便java代碼作出判斷。
7.2、javascript中調(diào)用(以返回List為例,List的元素為TestBean)
首先,引入javascript腳本
其次,編寫調(diào)用java方法的javascript函數(shù)
Function callTestMethod7(){
//定義要傳到j(luò)ava方法中的參數(shù)
var data;
//構(gòu)造參數(shù),date實(shí)際上是一個(gè)object數(shù)組,即數(shù)組的每個(gè)元素均為object
data = [
{
username:"user1",
password:"password2"
},
{
username:"user2",
password:" password2"
}
];
testClass.testMethod7(data);
}
注意:
1、對(duì)于第6種情況,如果java方法的返回值為Map,則在接收該返回值的javascript回調(diào)函數(shù)中如下處理:
function callBackFortestMethod(data){
//其中date接收方法的返回值
for(var property in data){
var bean = data[property];
alert(bean.username);
alert(bean.password);
}
}
2、對(duì)于第7種情況,如果java的方法的參數(shù)為Map(假設(shè)其key為String,value為TestBean),則在調(diào)用該方法的javascript函數(shù)中用如下方法構(gòu)造要傳遞的參數(shù):
function callTestMethod (){
//定義要傳到j(luò)ava方法中的參數(shù)
var data;
//構(gòu)造參數(shù),date實(shí)際上是一個(gè)object,其屬性名為Map的key,屬性值為Map的value
data = {
"key1":{
username:"user1",
password:"password2"
},
"key2":{
username:"user2",
password:" password2"
}
};
testClass.testMethod(data);
}
并且在dwr.xml中增加如下的配置段
<signatures>
<![CDATA[
import java.util.List;
import com.dwr.TestClass;
import com.dwr.TestBean;
TestClass.testMethod7(Map<String,TestBean>);
]]>
</signatures>
3、由以上可以發(fā)現(xiàn),對(duì)于java方法的返回值為L(zhǎng)ist(Set)的情況,DWR將其轉(zhuǎn)化為Object數(shù)組,傳遞個(gè)javascript;對(duì)于java方法的返回值為Map的情況,DWR將其轉(zhuǎn)化為一個(gè)Object,其中Object的屬性為原Map的key值,屬性值為原Map相應(yīng)的value值。
4、如果java方法的參數(shù)為L(zhǎng)ist(Set)和Map的情況,javascript中也要根據(jù)3種所說,構(gòu)造相應(yīng)的javascript數(shù)據(jù)來傳遞到j(luò)ava中。
xhEditor是一個(gè)基于jQuery開發(fā)的簡(jiǎn)單迷你并且高效的輕量可視化XHTML編輯器,基于網(wǎng)絡(luò)訪問并且兼容IE 6.0+,Firefox 3.0+,Opera 9.6+,Chrome 1.0+,Safari 3.22+。此次v1.1.0版主要變化在于提升編輯器用戶體驗(yàn),在修正大量問題的基礎(chǔ)上增加了各種提升用戶體驗(yàn)的實(shí)用功能,例如HTML5功能支持下的直接將文件拖入編輯區(qū)域上傳功能,就能極大的提高用戶操作效率,改善使用體驗(yàn)。
我們不是最好的,但是我們會(huì)努力做的更好,我們?cè)敢鈨A聽和接受所有用戶的心聲。最后,大家在使用過程中若發(fā)現(xiàn)任何的問題,或者有比較好的創(chuàng)意和想法,可以隨時(shí)向我們反饋(yanis.wang@gmail.com),我們會(huì)隨時(shí)傾聽大家的意見,xhEditor的發(fā)展離不開大家的支持。
本次v1.1.0版本主要變化如下:
1,可自定義表情根路徑(emotPath參數(shù))
2,提供本地圖片等資源文件的前后臺(tái)路徑不一致問題的解決方案(urlBase參數(shù))
3,雙擊鏈接、圖片等直接打開修改界面
4,Word代碼粘貼過濾功能由原先的IE only改為跨瀏覽器兼容
5,強(qiáng)制粘貼為文本功能(forcePasteText參數(shù))
6,將本地電腦直接拖入編輯區(qū)域即可上傳在當(dāng)前光標(biāo)處,此功能需要HTML5上傳支持(Firefox,Chrome)
完整更新列表如下:
ver 1.1.0 (2010-9-1)
1. 添加:添加由網(wǎng)友shiny原創(chuàng)設(shè)計(jì)的皮膚NoStyle
2. 添加:demo07 UBB演示頁面添加Google地圖插件,也作為不定寬按鈕的演示
3. 添加:添加urlType轉(zhuǎn)非相對(duì)路徑中合并“..”到上一級(jí)路徑的功能
4. 添加:添加emotPath初始化參數(shù),以將表情指向其它自定義URL路徑下,注意路徑必需以“/”結(jié)尾
5. 添加:添加urlBase初始化參數(shù),用來定義超鏈接、圖片及Flash等文件的相對(duì)根路徑,同時(shí)也是urlType參數(shù)的參考根路徑
6. 添加:經(jīng)用戶反饋意見,重新添加“預(yù)覽”功能按鈕
7. 添加:添加雙擊超鏈接、圖片、Flash和多媒體可直接打開相應(yīng)修改界面的功能,注:某些瀏覽器雙擊Flash和多媒體會(huì)有問題
8. 添加:打開面板時(shí)可按Esc鍵隱藏當(dāng)前的面板
9. 添加:初始化參數(shù)添加disableContextmenu,用以禁用瀏覽器在編輯區(qū)域的默認(rèn)右鍵菜單,設(shè)置為true禁用,默認(rèn)不禁用
10.添加:Word粘貼自動(dòng)過濾功能由原先的IE only增加為跨瀏覽器兼容
11.添加:添加強(qiáng)制粘貼為文本功能,初始化參數(shù)forcePasteText設(shè)置為true開啟此功能,默認(rèn)不強(qiáng)制文本
12.添加:添加Pidgin和IPB兩套表情,并在demo05和demo07中添加相應(yīng)的配置演示
13.添加:初始化參數(shù)添加editorRoot,在某些特殊情況下定位編輯器的根路徑
14.添加:將本地電腦中的多個(gè)文件拖放至編輯器的編輯區(qū)即可上傳并插入,此功能需要瀏覽器支持HTML5上傳(Firefox,Chrome)
1. 修正:showIframeModal上傳模式下onUpload接口無效問題的修正
2. 修正:使用無效按鈕名稱會(huì)導(dǎo)致JS出錯(cuò)問題的修正
3. 修正:IE6,IE7在iframe框架中使用xhEditor會(huì)在頁面中出現(xiàn)_xhe_cursor問題的修正
4. 修正:IE瀏覽器在圖片、FLASH等控件上按Backspace會(huì)導(dǎo)致整個(gè)頁面后退問題的修正
5. 修正:回車BR模式在IE瀏覽器下,按下回車只顯示一個(gè)空格不換行問題的修正
6. 修正:IE瀏覽器中會(huì)造成內(nèi)存泄漏問題的修正
7. 修正:WebKit內(nèi)核瀏覽器回車換行在切換一次源代碼后會(huì)丟失問題的修正
1. 調(diào)整:皮膚框架進(jìn)行了調(diào)整,支持不定寬按鈕,需要的用戶可自行設(shè)計(jì)修改
2. 調(diào)整:為使按鈕配置更直觀簡(jiǎn)便,原按鈕分隔符Separator變更為“|”,原按鈕換行符BtnBr變更為“/”
3. 調(diào)整:原localUrl參數(shù)名變更為urlType
查看最新版演示:http://xheditor.com/demo
更多官方在線演示:
1. 默認(rèn)模式:http://xheditor.com/demos/demo01.html
2. 自定義按鈕:http://xheditor.com/demos/demo02.html
3. 皮膚選擇:http://xheditor.com/demos/demo03.html
4. 其它選項(xiàng):http://xheditor.com/demos/demo04.html
5. Javascript交互:http://xheditor.com/demos/demo05.html
6. 非utf-8編碼網(wǎng)頁調(diào)用:http://xheditor.com/demos/demo06.html
7. UBB可視化編輯:http://xheditor.com/demos/demo07.html
8. Ajax文件上傳:http://xheditor.com/demos/demo08.html
9. 插件擴(kuò)展:http://xheditor.com/demos/demo09.html
10.iframe調(diào)用文件上傳:http://xheditor.com/demos/demo10.html
11.異步加載:http://xheditor.com/demos/demo11.html
最新v1.1.0下載地址:
http://xheditor.com/download
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>
exmpall
</title>
<meta content="text/html; charset=utf-8" http-equiv="content-type"/>
<STYLE type="text/css">
div{
padding: 0;
margin: 0;
position: absolute;
left:200px; /*左邊*/
top:0; /*上面*/
display: none;
width: 180px;
height: 150px;
border-style: solid;
border-color: #E6C963;
border-width: thin;
}
</STYLE>
<SCRIPT TYPE="text/javascript">
<!--
function myfunction1()
{
var my=document.getElementById("chenyi");
my.style.position = "absolute";
my.style.top = "50px"; /*上面*/
my.style.display = "inline";
my.style.backgroundColor = "#E4A17C";
}
function myfunction2()
{
var my=document.getElementById("chenyi");
my.style.position = "absolute";
my.style.top = "150px"; /*上面*/
my.style.display = "inline";
my.style.backgroundColor = "#A3935F";
}
function myfunction3()
{
var my=document.getElementById("chenyi");
my.style.position = "absolute";
my.style.top = "200px"; /*上面*/
my.style.display = "inline";
my.style.backgroundColor = "#79851A";
}
function myfunction4()
{
var my=document.getElementById("chenyi");
my.style.position = "absolute";
my.style.top = "300px"; /*上面*/
my.style.display = "inline";
my.style.backgroundColor = "#ACACA9";
}
function myfunction5()
{
var my=document.getElementById("chenyi");
my.style.position = "absolute";
my.style.top = "400px"; /*上面*/
my.style.display = "inline";
my.style.backgroundColor = "#B38DD9";
}
// -->
</SCRIPT>
</head>
<body>
<FORM method="post" action="">
<br /><br />
<INPUT name="text1" type="text" onmouseover="myfunction1()"><br /><br /><br /><br />
<INPUT name="text2" type="text" onmouseover="myfunction2()"><br /><br /><br /><br />
<INPUT name="text3" type="text" onmouseover="myfunction3()"><br /><br /><br /><br />
<INPUT name="text4" type="text" onmouseover="myfunction4()"><br /><br /><br /><br />
<INPUT name="text5" type="text" onmouseover="myfunction5()"><br /><br />
</FORM>
<div id="chenyi">
<ol>
<li><a >高興</a></li>
<li>php</li>
<li>asp.net</li>
<li>javaEE</li>
<li>javascript</li>
</ol>
</div>
</body>
</html>
一個(gè)屢獲大獎(jiǎng)的專業(yè) PHP 集成開發(fā)環(huán)境,具備功能強(qiáng)大的專業(yè)編輯工具和調(diào)試工具,支持PHP語法加亮顯示,支持語 法自動(dòng)填充功能,支持書簽功能,支持語法自動(dòng)縮排和代碼復(fù)制功能,內(nèi)置一個(gè)強(qiáng)大的PHP代碼調(diào)試工具,支持本地和遠(yuǎn)程兩種調(diào)試模式,支持多種高級(jí)調(diào)試功 能。
New! in Studio V7.2.1:
Software Updates:
* Zend Framework 1.10.6
Resolved Tickets:
* Ticket 187947 - The Zend Framework Example project is configured with the correct buildpath entries
* Ticket 187838 - If one of the parameters is a function call parameter, the hint tooltip now shows the right hint
* Ticket 188440 - The Processing Dirty Regions error is no longer triggered with java.lang.StackOverflowError exception
* Ticket 187975 - The Zend Framework Tool no longer fails with the error "No tokenizer support"
* Ticket 188418 - In ODBC, db2 related functions are now shown in PHP Language libraries
* Ticket 186867 - The Zend Tool error "A project profile was not found" no longer appears
Resolved Bugs:
* 30047 - In the Registration dialog, the "User Name / " section has been removed, with the "Order #" section remaining in its place
* 30155 - The Semantic analyzer no longer shows an error/warning for duplicate class constants
* 30046 - To help troubleshoot Zend Studio issues, you can now add a "showlocation" flag to the ZendStudio.ini (on Windows and Linux)
Homepage - http://www.zend.com/en/products/studio/
Size: 316 MB
下載:Zend Studio 7.2.1
下載:Zend Studio 7.2.1 (IBM 1)
如 果平時(shí)主要開發(fā)控制臺(tái)類、組件、后端服務(wù)等程序,可以嘗試在Linux類操作系統(tǒng)下搭建C#.Net開發(fā)環(huán)境,好處是在Linux環(huán)境里你不用擔(dān)心朋友或同事拿你的電腦來玩魔獸世界或者一不小心被裝了一大堆流氓軟件 ;-)先看看本篇文章最終效果:在 Ubuntu 里跑的開發(fā)環(huán)境 MonoDevelop:
如 果平時(shí)主要開發(fā)控制臺(tái)類、組件、后端服務(wù)等程序,可以嘗試在Linux類操作系統(tǒng)下搭建C#.Net開發(fā)環(huán)境,好處是在Linux環(huán)境里你不用擔(dān)心朋友或 同事拿你的電腦來玩魔獸世界或者一不小心被裝了一大堆流氓軟件 ;-)
1、Linux發(fā)行版的選擇
在Linuxux操作系統(tǒng)里只要安裝Mono環(huán) 境就可以開發(fā)C#程序,Linux的眾多發(fā)行版RedHat/CentOS/Fedora、OpenSuse、Debian、Ubuntu都可以安裝 Mono。
鑒于 目前 Ubuntu 容易安裝、界面漂亮而且比較多人用作桌面環(huán)境,所以這里推薦使用 Ubuntu 10.04 。官方網(wǎng)站是:http://www.ubuntu.com/
在官方網(wǎng)站下載回來的是一個(gè)光盤映像文件 (ISO格式),這里需要注意的是 Ubuntu 共有4個(gè)不同版本的ISO文件:Desktop版、Alternative版、Netbook版、 Server版。一般下載Desktop就可以了。如果你想通過網(wǎng)絡(luò)啟動(dòng)安裝程序或者使用硬盤安裝則需要下載Alternative版。
如果你的電腦硬件配置比較低(內(nèi)存少于等于 512MB),還可以下載一個(gè)輕量級(jí)的衍生版:Xubuntu(http://www.xubuntu.org/),如果你的電腦只有256MB內(nèi)存,那還可以 下載另一個(gè)衍生版Lubuntu(http://lubuntu.net/),這個(gè)更加輕量級(jí),平時(shí)系統(tǒng)啟動(dòng)后只占用 70~100MB內(nèi)存。
2、安裝Ubuntu
安裝Ubuntu 的方法非常簡(jiǎn)單,跟裝 WinXP差不多,只需點(diǎn)5,6次“下一步”過10來分鐘就可以完成。因?yàn)殛P(guān)于安裝Ubuntu的過程已經(jīng)有大量的文章介紹,這里就不再贅述了,下面主要 列舉一下安裝方式,大家可以根據(jù)自己的具體情況選擇合適的:
(1)虛擬機(jī)安裝
如果你的電腦速度飛快,內(nèi)存比較大,用這種方式安裝最快,虛擬機(jī)軟件推薦使用免費(fèi) 的 VirtualBox。先裝好虛擬機(jī)軟件,然后創(chuàng)建一個(gè)新的虛擬機(jī),把下載回來的 ISO文件掛靠到虛擬機(jī),啟動(dòng)之后就可以安裝了。
(2)嘗試性安裝
如果你僅僅想嘗試一下在Linux環(huán)境開發(fā)C# 的感覺,并不打算長(zhǎng)期使用,則可以使用這種安裝模式。這種安裝模式不需要調(diào)整硬盤分區(qū)(因?yàn)檎麄€(gè)Linux將安裝到一個(gè)“虛擬硬盤”文件里頭)、不會(huì)弄壞 你的現(xiàn)有的系統(tǒng)和軟件,只是性能會(huì)稍微減低一些。
首先你的系統(tǒng)必須是WinXP/Vista/Win7,然后把ISO文件和一個(gè) Wubi Installer (http://wubi-installer.org/) 的軟件放在同一個(gè)目錄,運(yùn)行 Wubi installer,選擇Ubuntu的安裝位置,然后就開始復(fù)制文件了,重啟計(jì)算機(jī)會(huì)多出一項(xiàng)啟動(dòng)項(xiàng)“Ubuntu install”,選擇 它就開始真正的安裝過程了。
下 面的安裝方式需要先在硬盤騰出一塊空白的空間(最好準(zhǔn)備至少10GB),主分區(qū)以外的自由空間或者擴(kuò)展分區(qū)的自由空間都可以,你可以用PQMagic軟件慢慢 調(diào)整自己硬盤的分區(qū)大小。在安裝過程中程序會(huì)詢問你將Ubuntu安裝在何處,選擇使用“最大連續(xù)空間”即可。
(3)光盤安裝
這種安裝方式最簡(jiǎn)單,將下載回來的ISO文件刻 錄成光盤,設(shè)置從光盤啟動(dòng)并重啟計(jì)算機(jī)。
(4) 硬盤安裝
要下載Alternative版的ISO文件, 放到C盤根目錄,然后下載“UNetbootin
”(http://unetbootin.sourceforge.net/)軟件,也放在C盤根目錄,運(yùn) 行 UNetbootin,在發(fā)行版類型項(xiàng)選擇Ubuntu和MediaHD即開始復(fù)制文件,重啟電腦開始安裝。
(5)用U盤安裝/安裝到U盤
先使用安裝光盤啟動(dòng)計(jì)算機(jī),選擇“試用”進(jìn)入 LiveCD模式的Ubuntu,然后在“系統(tǒng)”->“系統(tǒng)管理”點(diǎn)擊“制作啟動(dòng)盤”,準(zhǔn)備一個(gè)1GB以上的U盤,啟動(dòng)盤制作程序會(huì)把Ubuntu 的所有文件復(fù)制到U盤,然后就可以使用這個(gè)U盤啟動(dòng)其他電腦并安裝系統(tǒng)了。也可以直接從這個(gè)U盤啟動(dòng)進(jìn)入系統(tǒng)。
(6)通過網(wǎng)絡(luò)安裝
如果你的電腦沒有光驅(qū)也不支持U盤啟動(dòng),而帶有 從網(wǎng)卡啟動(dòng)(PXE)功能。或者有一批電腦需要批量安裝,則可以使用這種安裝模式,具體的請(qǐng)見:http://kalashnicov.javaeye.com/blog/663337
3、安裝開發(fā)環(huán)境 MonoDevelop
安裝好Ubuntu 10.04之后會(huì)發(fā)現(xiàn)系統(tǒng)已經(jīng)自帶Mono運(yùn)行和編譯環(huán)境,而且還有部分Ubuntu系統(tǒng)自帶的軟件是C#寫的,比如tomboy便利帖、IQ測(cè)試游戲gbrainy、照片查看和管理程序F-Spot
如果你已經(jīng)習(xí)慣了Win7的任務(wù)欄,推薦另外一 個(gè)任務(wù)欄軟件“Docky”,它也是C#寫的
MacOS的同學(xué)請(qǐng)淡定。
記住在Ubuntu里安裝軟件是不需要去什么軟 件下載網(wǎng)站的,所有需要的軟件都可以在“Ubuntu軟件中心”找到、安裝、卸載。
運(yùn)行“Ubuntu軟件中心”,輸入需要安裝的軟件名稱,比如 “MonoDevelop”,然后點(diǎn)擊“安裝”,程序會(huì)自動(dòng)上網(wǎng)下載并安裝。
好了,現(xiàn)在就已經(jīng)搭建好C#開發(fā)環(huán)境了,試試寫一個(gè)HelloWorld吧(效果圖 片見文章開頭處)
4、其他
MonoDevelop除了能寫C#程序之外, 還能寫C,C++,Java等程序,只要安裝相應(yīng)的插件和編譯器即可,
附錄:
mono項(xiàng)目主頁: http://mono-project.com
控制臺(tái)、窗口、Web的HelloWorld演示程序:http://mono-project.com/Mono_Basics
mono 與 ms.net 的兼容性列表: http://mono-project.com/Compatibility