88250

          Java

            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            82 隨筆 :: 0 文章 :: 5 評(píng)論 :: 0 Trackbacks

          #

          “我說(shuō)我是警察,也是執(zhí)法 人員,應(yīng)該文明執(zhí)法,但還是被打斷腿!”昨天,躺在病床上,昆明市 公安局民警張俊(化名)說(shuō)起事發(fā)當(dāng)天的情形時(shí),依然有些憤怒!當(dāng)天他接到母親的電話,說(shuō)轄區(qū)城管要強(qiáng)行拆除小區(qū)內(nèi)的違章建筑,讓他回家收拾東西。不料,張 俊剛到門口表明自己身份時(shí),卻遭到拆遷執(zhí)法人員的圍毆。據(jù)小區(qū)目擊者稱,張俊被毆打時(shí),對(duì)方揚(yáng)言“打的就是警察!”。

          “我還以為身上有警械,就能夠證明自己身份。”昨天下午,在解放軍昆明總醫(yī)院骨科住院部,記者見到了被打傷的張俊,他向記者講述了事發(fā)經(jīng)過(guò)。

          “我是警察,也是執(zhí)法人員。”張俊說(shuō),為了阻止自己被繼續(xù)毆打,他一邊表明自己的身份,一邊準(zhǔn)備從身上掏證件。慌忙中,張俊只摸到了自己隨身攜帶的一根伸縮警棍,這一摸不要緊,更是遭了對(duì)方一頓暴打。

          當(dāng) 時(shí)現(xiàn)場(chǎng)執(zhí)法人員叫張俊放下警棍,然后將他的警棍拿走。張俊說(shuō),第一次被打之后,自己的鼻子和嘴角已經(jīng)被打出血了。但噩運(yùn)還沒有結(jié)束,之后,他被4名城管反 綁著雙手押到鄰居家的門前。他再次向執(zhí)法人員提出要回家收拾東西,但沒有人理他。聽到他的反復(fù)要求后,一名執(zhí)法人員轉(zhuǎn)頭對(duì)他說(shuō):“你拿警棍打我,怎么可能 讓你上去。”張俊表示,他拿出警棍根本沒有打到人。“我是市公安局的,也是執(zhí)法者,執(zhí)法要文明。”張俊說(shuō)完時(shí)就聽到對(duì)方一句狂噴:“你敢用手指頭指我,兄 弟們,拿下。”

          張俊說(shuō),他只感覺周圍的20多名城管全部圍了上來(lái),用警棍和鐵棍將他打倒在地,還有人上前用腳踩他。當(dāng)時(shí)他感覺自己的右腿很疼,他大聲懇求:“求求你們別打了,我的腿斷了。”隨后,他被打暈在地。

          現(xiàn) 場(chǎng)很多小區(qū)業(yè)主都目睹了張俊被毆打的過(guò)程,“總共被打了兩次。”張俊的鄰居老邢說(shuō)。同樣目睹事情經(jīng)過(guò)的程先生也說(shuō),張俊大概被毆打了10多分鐘,他遠(yuǎn)遠(yuǎn)看 著張俊滿臉都是血,倒在地上。他聽到在場(chǎng)的一位執(zhí)法人員對(duì)著幾乎快暈厥過(guò)去的張俊喊道:“裝死。”張俊的好友陳小姐說(shuō),現(xiàn)場(chǎng)就有執(zhí)法人員帶去的救護(hù)車,但 沒有對(duì)他進(jìn)行救治。

          而對(duì)此,當(dāng)時(shí)執(zhí)法拆除違章建筑的昆明市綜合行政執(zhí)法局盤龍分局負(fù)責(zé)人稱,是張俊先揮舞警棍導(dǎo)致沖突發(fā)生。

          據(jù)知情人稱,事件發(fā)生之后,已經(jīng)有一名參與沖突的執(zhí)法隊(duì)長(zhǎng)被拘留,但此說(shuō)法未得到有關(guān)部門的證實(shí)。

          轉(zhuǎn)自:http://news.qq.com/a/20110103/000492.htm?qq=0&ADUIN=845765&ADSESSION=1294033435&ADTAG=CLIENT.QQ.3187_.0



          本文是使用 B3log Solo簡(jiǎn)約設(shè)計(jì)の藝術(shù) 進(jìn)行同步發(fā)布的
          原文地址:http://88250.b3log.org/articles/2011/01/03/1294035696457.html
          posted @ 2011-01-03 14:22 88250 閱讀(167) | 評(píng)論 (0)編輯 收藏

          過(guò)去與今天
          詞 \ 黃家駒. 曲 \ 黃家駒. 主唱 \ 黃家駒.

          夜雨街中里寧與靜
          霧色燈影照我身
          在我的心里常會(huì)問(wèn)
          幻變的都市四周
          可知我已放棄舊日的理想
          知否我也有個(gè)夢(mèng) 要我醉倒
          就像 就像 就像
          像那方的星光閃動(dòng) 眼也會(huì)發(fā)光
          仰望浮云常變不定 暗里嘆一聲
          沖出他朝崎嶇道上 哪怕會(huì)退倒
          試問(wèn)誰(shuí)人曾會(huì)考慮 過(guò)去與今天
          踏破這黑暗寧與靜
          誰(shuí)會(huì)管失意冷風(fēng)
          幻變的都市誰(shuí)問(wèn)過(guò)
          讓暖風(fēng)緊靠我身



          本文是使用 B3log Solo簡(jiǎn)約設(shè)計(jì)の藝術(shù) 進(jìn)行同步發(fā)布的
          原文地址:http://88250.b3log.org/articles/2010/12/31/1293811895091.html
          posted @ 2011-01-01 00:12 88250 閱讀(145) | 評(píng)論 (0)編輯 收藏

          EverBox LogoEverBox 是一款由盛大創(chuàng)新院推出的網(wǎng)盤產(chǎn)品,提供數(shù)據(jù)存儲(chǔ)和同步服務(wù)。EverBox 提供了 10GB 超大免費(fèi)存儲(chǔ)空間,支持文件同步、文件分享、在線瀏覽照片、在線聽音樂等功能,并支持?jǐn)?shù)據(jù)同步客戶端。需要邀請(qǐng)的朋友可以改我留言 :-)

           

          主要功能:

          支持?jǐn)?shù)據(jù)同步客戶端:安裝 EverBox后,您所需的文件都將自動(dòng)同步到設(shè)備上,可以隨時(shí)、隨地的使用手邊的任意一款設(shè)備訪問(wèn)文件了。目前提供了 Windows 客戶端程序,支持 Windows XP,Windows Vista 和 Windows 7。在以后的版本中,EverBox 將會(huì)陸續(xù)推出其他客戶端程序,如: Android,iPhone,iPad,Mac,Linux 等。

          容災(zāi)備份服務(wù):EverBox 會(huì)自動(dòng)的、實(shí)時(shí)的備份文件數(shù)據(jù)到 EverBox 安全服務(wù)器,因此,當(dāng)您本地的設(shè)備壞損或丟失時(shí),不必?fù)?dān)心由于數(shù)據(jù)丟失造成的損失,恢復(fù)數(shù)據(jù)易如反掌!

          在線音樂播放:EverBox 支持在線音樂播放功能,幾乎支持所有常用的音頻格式,使用簡(jiǎn)單、便捷,無(wú)需操作即可連續(xù)播放 EverBox 當(dāng)前目錄中的歌曲,很適于一邊使用電腦一邊聽歌時(shí)使用。

          在線瀏覽圖片:EverBox 支持在線瀏覽圖片功能,幾乎支持所有常用的圖片格式,操作簡(jiǎn)單、便捷,并支持自動(dòng)播放 EverBox 當(dāng)前目錄中的圖片文件。

          EverBox 功能特性

          1. 10GB 超大免費(fèi)空間

            成功注冊(cè) EverBox 即可獲得 2GB 免費(fèi)空間,完成指定任務(wù)可升級(jí)空間到 10GB!EverBox 在隨后的版本中將會(huì)有更多的獎(jiǎng)勵(lì)措施,贈(zèng)送活躍用戶更多空間,敬請(qǐng)期待!

          2. 支持?jǐn)?shù)據(jù)同步客戶端

            您是不是經(jīng)常遇到以下的情況?“我喜歡在外出時(shí)用 iPhone 聽歌,但是我需要從 PC 下載歌曲再用數(shù)據(jù)線將 MP3 導(dǎo)到 iPhone”;“我經(jīng)常出差,但是程序和文件都在笨重的 PC 上,而我只帶著筆記本”;“我到 XX 會(huì)議做演講,但是保存 PPT 的 U 盤壞掉了”。

            現(xiàn)在有了 EverBox,這些問(wèn)題將迎刃而解!只需安裝 EverBox,您所需的文件都將自動(dòng)同步到設(shè)備上,您就可以隨時(shí)、隨地的使用手邊的任意一款設(shè)備訪問(wèn)文件了。當(dāng)然,使用瀏覽器一樣可以訪問(wèn)到您需要的文件。

          3. 容災(zāi)備份服務(wù)

            硬盤損壞?數(shù)據(jù)無(wú)法訪問(wèn)?筆記本電腦被盜?完了,重要的數(shù)據(jù)丟失了!

            不用擔(dān)心,有了 EverBox,這一切都不會(huì)再是問(wèn)題。EverBox 會(huì)自動(dòng)的、實(shí)時(shí)的備份文件數(shù)據(jù)到 EverBox 安全服務(wù)器,因此,當(dāng)您本地的設(shè)備壞損或丟失時(shí),不必?fù)?dān)心由于數(shù)據(jù)丟失造成的損失,恢復(fù)數(shù)據(jù)易如反掌!

          4. 在線音樂播放

            EverBox 支持在線音樂播放功能,幾乎支持所有常用的音頻格式,使用簡(jiǎn)單、便捷,無(wú)需操作即可連續(xù)播放 EverBox 當(dāng)前目錄中的歌曲,很適于一邊使用電腦一邊聽歌時(shí)使用。

          5. 在線瀏覽圖片

            EverBox 支持在線瀏覽圖片功能,幾乎支持所有常用的圖片格式,操作簡(jiǎn)單、便捷,并支持自動(dòng)播放 EverBox 當(dāng)前目錄中的圖片文件。

             



          本文是使用 B3log Solo簡(jiǎn)約設(shè)計(jì)の藝術(shù) 進(jìn)行同步發(fā)布的
          原文地址:http://88250.b3log.org/everbox-invite.html
          posted @ 2010-12-31 10:09 88250 閱讀(205) | 評(píng)論 (0)編輯 收藏

          B3log LogoGAE 博客 —— B3LOG Solo 0.2.5 Beta1 發(fā)布了。

          該版本除了修復(fù) Bugs,還增加了草稿夾、多人寫作、改進(jìn)了緩存,以及加入了新皮膚 community。

          借此機(jī)會(huì),祝大家圣誕節(jié)愉快,一切平安 :-)

          新特性

          • 多人寫作
          • 鏈接排序
          • 新皮膚——community(多人寫作皮膚)

          Bug 修復(fù)

          • 緩存多實(shí)例不一致
          • 文章訪問(wèn)次數(shù)統(tǒng)計(jì)失效
          • IE8 下 Feed 不能顯示

          改進(jìn)

          • 存儲(chǔ)對(duì)象緩存
          • 自定義頁(yè)面排序方式
          • 改進(jìn)了頁(yè)面緩存

          具體改動(dòng)看這里

          升級(jí)

          如果您是 0.2.1 的用戶,那么請(qǐng)?jiān)诓渴鹜?0.2.5 Beta1 后登錄后臺(tái),訪問(wèn) http://${application-id}.appspot.com/upgrade/v021-v025.do 進(jìn)行升級(jí)。

          項(xiàng)目

          如果在使用、測(cè)試中發(fā)現(xiàn)任何問(wèn)題,如果您有任何意見或建議,請(qǐng)告知我們 :-)

          發(fā)布計(jì)劃

          • 2011 年 1 月 21 日發(fā)布 0.2.5 Beta2
          • 2011 年 2 月 14 日發(fā)布 0.2.5

          作者博客

          發(fā)布?xì)v史

          1. GAE 博客——B3log Solo 0.2.1 發(fā)布了!
          2. GAE 博客——B3log Solo 0.2.0 發(fā)布了!
          3. GAE 博客——B3log Solo 0.1.1 發(fā)布了!
          4. B3log Solo 0.1.0 發(fā)布了!
          5. B3log Solo 0.1.0-preview2 發(fā)布了!
          6. Solo 0.1.0-Preview1 發(fā)布了


          本文是使用 B3log Solo簡(jiǎn)約設(shè)計(jì)の藝術(shù) 進(jìn)行同步發(fā)布的
          原文地址:http://88250.b3log.org/b3log-solo-release-025-beta1.html
          posted @ 2010-12-24 21:31 88250 閱讀(147) | 評(píng)論 (0)編輯 收藏



          本文是使用 B3log Solo簡(jiǎn)約設(shè)計(jì)の藝術(shù) 進(jìn)行同步發(fā)布的
          原文地址:http://88250.b3log.org/netbeans-chinese-newsletter-130.html
          posted @ 2010-12-23 15:36 88250 閱讀(199) | 評(píng)論 (0)編輯 收藏

          GAEAmazon WS

          最近一個(gè)潛在客戶要求我們比較一下 Amazon EC2 和 Google App Engine,正好我們剛剛在 EC2 和 Google App Engine 上完成了兩個(gè)相對(duì)來(lái)說(shuō)規(guī)模較大的項(xiàng)目,因此有必要做一下總結(jié)。

          我打算從三個(gè)角度來(lái)對(duì)比這兩大云計(jì)算平臺(tái):技術(shù),業(yè)務(wù)和未來(lái)發(fā)展趨勢(shì),本文是技術(shù)方面的對(duì)比,ok,準(zhǔn)備好咖啡,我們開始吧!

           

          如果按平臺(tái)類型來(lái)分,大家可能已經(jīng)知道Google App Engine屬于PaaS(平臺(tái)即服務(wù)),而Amazon EC2屬于IaaS(基礎(chǔ)設(shè)施即服務(wù)),Amazon EC2給你一個(gè)安裝了操作系統(tǒng)的“盒子”,你可以自己安裝應(yīng)用程序,也可以使用AMI(Amazon Machine Image),如果你想構(gòu)建一個(gè)高度復(fù)雜的定制應(yīng)用,Amazon EC2是不二之選,它允許你控制環(huán)境參數(shù),底層操作系統(tǒng),存儲(chǔ)和網(wǎng)絡(luò)需求,從技術(shù)上講,它屬于很底層的服務(wù),你可以調(diào)整你需要的大部分東西。

          Google App Engine給你一個(gè)完整的平臺(tái),包括完整的SDK(以及Eclipse插件)和服務(wù),你可以構(gòu)建和部署你自己的應(yīng)用程序,但你不能很好地控制操作系統(tǒng), 硬件和存儲(chǔ),諸如寫文件系統(tǒng),使用線程等操作都有限制,這樣設(shè)計(jì)的目的是為了確保平臺(tái)不會(huì)被某個(gè)應(yīng)用程序綁架。

          簡(jiǎn)單起來(lái)就是:

          IaaS:原始硬件(處理器,網(wǎng)絡(luò)和存儲(chǔ))

          PaaS:操作系統(tǒng),系統(tǒng)軟件,開發(fā)框架和虛擬機(jī)。

          下面從技術(shù)角度來(lái)比較一下這兩個(gè)平臺(tái)。

          1、提供的服務(wù)

          Google App Engine憑借豐富的服務(wù)擊敗Amazon EC2,Google App Engine提供的服務(wù)可以讓開發(fā)人員快速進(jìn)入開發(fā)狀態(tài)。如 Blobstore,Images,Mail,Memcache,Multitenancy,Oauth,Task Queues,URL Fetch,Users,XMPP這些服務(wù)在Amazon EC2上是需要自己安裝的,為了便于比較,假設(shè)你已經(jīng)為Memcache,Mail和多租戶搭建好了基礎(chǔ)設(shè)施,看看在EC2上你用了多長(zhǎng)時(shí)間安裝,我敢打 賭你會(huì)超過(guò)一個(gè)小時(shí),使用Google App Engine時(shí),這些服務(wù)都是現(xiàn)成的,就象果盤中插好牙簽的水果一樣,你可以隨時(shí)享用。

          2、管理

          Google App Engine再次勝出,因?yàn)橐坏┠愕膽?yīng)用程序部署成功后,它幾乎不需要管理,當(dāng)你的應(yīng)用程序負(fù)載變大時(shí),你不需要向服務(wù)注入新的實(shí)例,Google App Engine可以自由擴(kuò)大負(fù)載能力,新實(shí)例是實(shí)時(shí)剝離的。使用Amazon EC2時(shí),你必須時(shí)刻跟蹤通信流量(現(xiàn)在可以通過(guò)腳本自動(dòng)跟蹤了),新實(shí)例是在你的配置基礎(chǔ)上剝離的,因此,如果我的峰值負(fù)載是2x+y,那么需要?jiǎng)冸x2 個(gè)以上的應(yīng)用程序服務(wù)器。

          此外,使用Google App Engine升級(jí)應(yīng)用程序服務(wù)器實(shí)例,安裝新的負(fù)載均衡器時(shí),沒有管理開銷,這一切都是自動(dòng)執(zhí)行的。

          3、抽象水平

          和上一條聯(lián)系緊密的是抽象水平,Google App Engine抽象得比較好,你只需要關(guān)心你的應(yīng)用程序和業(yè)務(wù)邏輯,不用擔(dān)心底層基礎(chǔ)設(shè)施的管理,正如Nick Johnson所說(shuō)的那樣,抽象水平應(yīng)作為挑選云計(jì)算平臺(tái)的一個(gè)基本原則,你需要做的是駕駛,不需要研究引擎蓋以下的東西。在我看來(lái),如果你的核心業(yè)務(wù)是 貨物運(yùn)輸,那么你應(yīng)該買一輛卡車,它能高效地把你的貨物從A地運(yùn)輸?shù)紹地,相反,你不應(yīng)該考慮如何購(gòu)買零部件自己組裝一輛卡車。

          在軟件開發(fā)領(lǐng)域,我們看到有Grails,RoR等框架,它們大受歡迎,是因?yàn)樗鼈兲峁┝烁咚降某橄螅绻闶且幻嗤呓常鼈兙拖笫悄_手架,你可以踩在它們上面干你的工作。

          4、可靠性

          從我個(gè)人的認(rèn)識(shí)來(lái)講,兩者都很可靠,這一點(diǎn)從它們的用戶數(shù)量就可以知道一二,用戶可以時(shí)刻查看Google App Engine的狀態(tài),它是透明的,但從歷史數(shù)據(jù)來(lái)看,Amazon EC2的正常運(yùn)行時(shí)間比Google App Engine要好。

          5、可移植性

          從使用的底層操作系統(tǒng)和開發(fā)框架來(lái)看,Amazon EC2具有更好的可移植性,但也不要擔(dān)心你會(huì)被Google App Engine給鎖住,Google已經(jīng)給出了遷移指南,指導(dǎo)你如何從轉(zhuǎn)移出Google App Engine平臺(tái),當(dāng)然包含你所有的數(shù)據(jù)在內(nèi)。還有AppScale這樣的程序可以幫助你將Google App Engine上的程序轉(zhuǎn)移到Amazom EC2或其它云平臺(tái)上,AppScale已經(jīng)可以支持EC2,Eucalyptus,Xen和KVM。

          6、存儲(chǔ)

          Google App Engine目前嚴(yán)重依賴于BigTable,開發(fā)人員需要從一個(gè)完全不同的角度來(lái)認(rèn)識(shí)和學(xué)習(xí)它,特別是對(duì)于那些特熟悉關(guān)系數(shù)據(jù)庫(kù),被關(guān)系數(shù)據(jù)庫(kù)理論束縛 的人更需要洗洗腦,它提供了一個(gè)JPA&JDO訪問(wèn)接口,但它不支持所有的JPA&JDO功能,特別是關(guān)系部分,Google最近也高調(diào) 宣布要讓Google App Engine支持傳統(tǒng)的SQL數(shù)據(jù)庫(kù)。Amazon EC2已經(jīng)支持SQL數(shù)據(jù)庫(kù),你可以使用Oracle,MySQL等你所熟悉的關(guān)系數(shù)據(jù)庫(kù)。

          7、應(yīng)用程序維護(hù)和升級(jí)

          對(duì)Google App Engine來(lái)說(shuō),應(yīng)用程序維護(hù)和升級(jí)是件輕而易舉的事,它為各種應(yīng)用程序提供了一個(gè)詳細(xì)的管理面板,包括日志查看器和數(shù)據(jù)查看器,一個(gè)程序可以有多個(gè)版 本,當(dāng)新版本經(jīng)過(guò)測(cè)試,可以用于生產(chǎn)環(huán)境時(shí),你可以將其設(shè)為默認(rèn)的版本,而Amazon EC2就麻煩多了,因?yàn)樗鼘儆贗aaS類型,所有維護(hù)和升級(jí)相關(guān)的事情你必須親力親為。

          8、開發(fā)限制

          使用Google App Engine時(shí),你必須受到平臺(tái)的限制,如果你的查詢處于僵死狀態(tài),很難將其殺掉,此外,Google App Engine沒有線程,提供的SDK也是受限的,有些類和功能被列入黑名單,因此不能被使用,也不能寫文件系統(tǒng)等等。

          從表面上看這些限制是不可理喻的,但如果有朝一日你也要提供PaaS類型的平臺(tái)時(shí),你就能理解為什么Google要做這些限制了,這樣才能確保運(yùn)行 在平臺(tái)上的應(yīng)用程序不會(huì)違反平臺(tái)的規(guī)則,否則平臺(tái)就可能被應(yīng)用程序綁架,從而變得不可使用,平臺(tái)上的其它應(yīng)用程序就會(huì)收到牽連。

          即便有這些限制,90%的商業(yè)應(yīng)用程序仍然可以在Google App Engine上正常運(yùn)行,但對(duì)于那些要使用線程,或?qū)懳募到y(tǒng)的應(yīng)用,最好還是選擇Amazon EC2,因?yàn)樗峁┝怂械讓釉L問(wèn)和控制權(quán)。

          9、語(yǔ)言支持

          截至目前,Google App Engine支持Java和Python,但任何可以轉(zhuǎn)換成字節(jié)碼,可在JVM上執(zhí)行的任何編程語(yǔ)言都可以在Google App Engine上運(yùn)行,如果你喜歡其它編程語(yǔ)言,最好選擇Amazon EC2,因?yàn)槟憧梢栽谒牟僮飨到y(tǒng)上面安裝語(yǔ)言運(yùn)行時(shí)環(huán)境,你擁有幾乎完整的硬件和操作系統(tǒng)控制權(quán),還有什么不能做的呢?在Amazon EC2上也托管了許多有趣的C#,.NET,ASP.NET MVC/Visual Studio項(xiàng)目,具有諷刺意味著的是,盡管還有Microsoft Azure,但許多以MS技術(shù)開發(fā)的項(xiàng)目卻托管在Amazon EC2上。

          概括地說(shuō),Amazon EC2是進(jìn)入云計(jì)算的早期嘗試者,它利用互聯(lián)網(wǎng)標(biāo)準(zhǔn)和開放平臺(tái)創(chuàng)建了一個(gè)非常靈活的云計(jì)算平臺(tái),Google則利用了它在大型數(shù)據(jù)庫(kù)方面的研究成果和它內(nèi) 部實(shí)現(xiàn)的一些技術(shù)創(chuàng)建了一個(gè)強(qiáng)大,但有更多限制的云計(jì)算環(huán)境。從核心技術(shù)來(lái)講,Amazon EC2允許你擴(kuò)展任何計(jì)算機(jī)實(shí)例到多個(gè)實(shí)例,因此你擁有每個(gè)虛擬盒子的完全控制權(quán),Google App Engine從操作系統(tǒng)抽象而來(lái),沒有計(jì)算機(jī)實(shí)例的概念,如果你的Web應(yīng)用程序不需要操作系統(tǒng)相關(guān)的功能,那么Google App Engine無(wú)疑是最好的選擇,如果需要更好地控制你的系統(tǒng)環(huán)境,特別是操作系統(tǒng)相關(guān)的控制,那么最好選擇Amazon EC2。

          原文名:Comparing Google App Engine and Amazon EC2 on Technology 作者:Vikas Hazrati



          本文是使用 B3log Solo簡(jiǎn)約設(shè)計(jì)の藝術(shù) 進(jìn)行同步發(fā)布的
          原文地址:http://88250.b3log.org/ec2-vs-gae.html
          posted @ 2010-12-22 15:21 88250 閱讀(155) | 評(píng)論 (0)編輯 收藏

          有人在Stack Overflow上發(fā)問(wèn),動(dòng)手開發(fā)網(wǎng)站之前,需要知道哪些事情?

          不出意料地,他得到了一大堆回答。

          通常情況下,你需要把所有人的發(fā)言從頭到尾讀一遍。但是,Stack Overflow有一個(gè)很貼心的設(shè)計(jì),它允許在問(wèn)題下方開設(shè)一個(gè)wiki區(qū),讓所有人共同編輯一個(gè)最佳答案。于是,就有了下面這篇文章,一共總結(jié)出六個(gè)方面共計(jì)61條"網(wǎng)站開發(fā)須知"。

          我發(fā)現(xiàn),這種概述性的問(wèn)題,最適合這種集合群智、頭腦風(fēng)暴式的回答方式了。這也是我第一次覺得,Stack Overflow做到了Wikipedia做不到的事。(難怪它最近擠進(jìn)了全美前400大網(wǎng)站。)

          在我的印象中,關(guān)于網(wǎng)站開發(fā),這樣全面的概述性文章非常少見,因此也就非常有用。大家不妨看看,61件事情中你做到了多少?

          (更新:剛剛發(fā)現(xiàn),一共應(yīng)該是62條建議,我先前數(shù)錯(cuò)了,這個(gè)......太窘了。)

          =============================

          網(wǎng)站開發(fā)人員應(yīng)該知道的61件事

          原文網(wǎng)址:http://stackoverflow.com/questions/72394

          譯者:阮一峰

          一、界面和用戶體驗(yàn)(Interface and User Experience)

          1.1

          知道各大瀏覽器執(zhí)行Web標(biāo)準(zhǔn)的情況,保證你的站點(diǎn)在主要瀏覽器上都能正常運(yùn)行。你至少要測(cè)試以下引擎:Gecko(用于Firefox)、Webkit(用于SafariChrome和一些手機(jī)瀏覽器)、IE(你可以利用微軟發(fā)布的Application Compatibility VPC Images進(jìn)行測(cè)試)和Opera。同時(shí),不同的操作系統(tǒng),可能也會(huì)影響瀏覽器如何呈現(xiàn)你的網(wǎng)站。

          1.2

          除了瀏覽器,網(wǎng)站還有其他使用方式:手機(jī)、屏幕朗讀器、搜索引擎等等。你應(yīng)該知道在這些情況下,你的網(wǎng)站的運(yùn)行狀況。MobiForge提供了手機(jī)網(wǎng)站開發(fā)的一些相關(guān)知識(shí)。

          1.3

          知道如何在基本不影響用戶使用的情況下升級(jí)網(wǎng)站。通常來(lái)說(shuō),你必須有版本控制系統(tǒng)(CVS、Subversion、Git等等)和數(shù)據(jù)備份機(jī)制(backup)。

          1.4

          不要讓用戶看到那些不友好的出錯(cuò)提示。

          1.5

          不要直接顯示用戶的Email地址,至少不要用純文本顯示。

          1.6

          為你的網(wǎng)站設(shè)置一些合理的使用限制,一旦超過(guò)門檻值,就自動(dòng)停止服務(wù)。(這也與網(wǎng)站安全相關(guān)。)

          1.7

          知道如何實(shí)現(xiàn)網(wǎng)頁(yè)的漸進(jìn)式增強(qiáng)(progressive enhancement)。

          1.8

          用戶發(fā)出POST請(qǐng)求后,總是將其重導(dǎo)向(redirect)至另外一個(gè)網(wǎng)頁(yè)。

          1.9

          不要忘記網(wǎng)站的可訪問(wèn)性(accessibility,即殘疾人如何使用網(wǎng)站)。對(duì)于美國(guó)網(wǎng)站來(lái)說(shuō),有時(shí)這是法定要求WAI-ARIA有一些這方面很好的參考資料。

          二、安全性(Security

          2.1

          閱讀《OWASP開發(fā)指南》,它提供了全面的網(wǎng)站安全指導(dǎo)。

          2.2

          了解SQL注入(SQL injection)及其預(yù)防方法。

          2.3

          永遠(yuǎn)不要信任用戶提交的數(shù)據(jù)(cookie也是用戶端提交的!)。

          2.4

          不要明文(plain-text)儲(chǔ)存用戶的密碼,要hash處理后再儲(chǔ)存。

          2.5

          不要對(duì)你的用戶認(rèn)證系統(tǒng)太自信,它可能很容易就被攻破,而你事先根本沒意識(shí)到存在相關(guān)漏洞。

          2.6

          了解如何處理信用卡

          2.7

          在登錄頁(yè)面及其他處理敏感信息的頁(yè)面,使用SSL/HTTPS

          2.8

          知道如何對(duì)付session劫持(session hijacking)。

          2.9

          避免"跨站點(diǎn)執(zhí)行"(cross site scripting,XSS)。

          2.10

          避免"跨域偽造請(qǐng)求"(cross site request forgeries,XSRF)。

          2.11

          及時(shí)打上補(bǔ)丁,讓你的系統(tǒng)始終跟上最新版本。

          2.12

          確認(rèn)你的數(shù)據(jù)庫(kù)連接信息的安全性。

          2.13

          跟蹤攻擊技術(shù)的最新發(fā)展,以及你使用的平臺(tái)的最新安全漏洞。

          2.14

          閱讀Google的《瀏覽器安全手冊(cè)》(Browser Security Handbook)。

          2.15

          閱讀《網(wǎng)絡(luò)軟件的黑客手冊(cè)》(The Web Application Hackers Handbook)。

          三、性能(Performance)

          3.1

          只要有可能,就使用緩存(caching)。正確理解和使用HTTP cachingHTML5離線儲(chǔ)存

          3.2

          優(yōu)化圖片。不要把一個(gè)20KB的圖片文件,作為重復(fù)出現(xiàn)的網(wǎng)頁(yè)背景圖案。

          3.3

          學(xué)習(xí)如何用gzip/deflate壓縮內(nèi)容(deflate方式更可取)。

          3.4

          將多個(gè)樣式表文件或腳本文件,合為一個(gè)文件,這樣可以減少瀏覽器的http請(qǐng)求數(shù),以及減小gzip壓縮后的文件總體積。

          3.5

          瀏覽Yahoo的Exceptional Performance網(wǎng)站,里面有大量提升前端性能的優(yōu)秀建議,還有他們的YSlow工具。Google的page speed則是另一個(gè)用來(lái)分析網(wǎng)頁(yè)性能的工具。兩者都要求安裝Firebug

          3.6

          如果你的網(wǎng)頁(yè)用到大量的小體積圖片(比如工具欄),就應(yīng)該使用CSS Image Sprite,目的是減少http請(qǐng)求數(shù)。

          3.7

          大流量的網(wǎng)站應(yīng)該考慮將網(wǎng)頁(yè)對(duì)象分散在多個(gè)域名(split components across domains)。

          3.8

          靜態(tài)內(nèi)容(比如圖片、CSS、JavaScript、以及其他cookie無(wú)關(guān)的網(wǎng)頁(yè)內(nèi)容)都應(yīng)該放在一個(gè)不需要使用cookie的獨(dú)立域名之上。因?yàn)橛蛎氯绻衏ookie,那么客戶端向該域名發(fā)出的每次http請(qǐng)求,都會(huì)附上cookie內(nèi)容。這里的一個(gè)好方法就是使用"內(nèi)容分發(fā)網(wǎng)絡(luò)"(Content Delivery Network,CDN)。

          3.9

          將瀏覽器完成網(wǎng)頁(yè)渲染所需要的http請(qǐng)求數(shù)最小化。

          3.10

          使用Google的Closure Compiler壓縮JavaScript文件,YUI Compressor亦可。

          3.11

          確保網(wǎng)站根目錄下有favicon.ico文件,因?yàn)榧词咕W(wǎng)頁(yè)中根本不包括這個(gè)文件,瀏覽器也會(huì)自動(dòng)發(fā)出對(duì)它的請(qǐng)求。所以如果這個(gè)文件不存在,就會(huì)產(chǎn)生大量的404錯(cuò)誤,消耗光你的服務(wù)器的帶寬。

          四、搜索引擎優(yōu)化(Search Engine Optimization,SEO)

          4.1

          使用"搜索引擎友好"的URL形式,比如example.com/pages/45-article-title,而不是example.com/index.php?page=45。

          4.2

          不要使用"點(diǎn)擊這里"之類的超級(jí)鏈接,因?yàn)檫@樣等于浪費(fèi)了一個(gè)SEO機(jī)會(huì),而且降低了"屏幕朗讀器"(screen reader)的使用效果。

          4.3

          創(chuàng)建一個(gè)XML sitemap文件,它的缺省位置一般是/sitemap.xml(即放在網(wǎng)站根目錄下)。

          4.4

          當(dāng)你有多個(gè)URL指向同一個(gè)內(nèi)容時(shí),在網(wǎng)頁(yè)代碼中使用<link rel="canonical" ... />

          4.5

          使用Google的Webmaster Tools和Yahoo的Site Explorer

          4.6

          從一開始就使用Google Analytics(或者開源的訪問(wèn)量分析工具Piwik)。

          4.7

          知道robots.txt的作用,以及搜索引擎蜘蛛的工作原理。

          4.8

          將www.example.com的訪問(wèn)請(qǐng)求導(dǎo)向example.com(使用301 Moved Permanently重定向),或者采用相反的做法,目的是防止Google把它們當(dāng)做兩個(gè)網(wǎng)站,分開計(jì)算排名。

          4.9

          知道存在著惡意或行為不正當(dāng)?shù)木W(wǎng)絡(luò)蜘蛛。

          4.10

          如果你的網(wǎng)站有非文本的內(nèi)容(比如視頻、音頻等等),你應(yīng)該參考Google的sitemap擴(kuò)展協(xié)議

          五、技術(shù)(Technology)

          5.1

          理解HTTP協(xié)議,以及諸如GET、POST、sessions、cookies之類的概念,包括"無(wú)狀態(tài)"(stateless)是什么意思。

          5.2

          確保你的XHTML/HTMLCSS符合W3C標(biāo)準(zhǔn),使得它們能夠通過(guò)檢驗(yàn)。這可以使你的網(wǎng)頁(yè)避免觸發(fā)瀏覽器的古怪行為(quirk),而且使它在"屏幕朗讀器"和手機(jī)上也能正常工作。

          5.3

          理解瀏覽器如何處理JavaScript腳本。

          5.4

          理解網(wǎng)頁(yè)上的JavaScript文件、樣式表文件和其他資源是如何裝載及運(yùn)行的,考慮它們對(duì)頁(yè)面性能有何影響。在某些情況下,可能應(yīng)該將腳本文件放置在網(wǎng)頁(yè)的尾部

          5.5

          理解JavaScript沙箱(Javascript sandbox)的工作原理,尤其是如果你打算使用iframe。

          5.6

          知道JavaScript可能無(wú)法使用或被禁用,以及Ajax并不是一定會(huì)運(yùn)行。記住,"不允許腳本運(yùn)行"(NoScript)正在某些用戶中變得流行,手機(jī)瀏覽器對(duì)腳本的支持千差萬(wàn)別,而Google索引網(wǎng)頁(yè)時(shí)不運(yùn)行大部分的腳本文件。

          5.7

          了解301重定向和302重定向之間的區(qū)別(這也是一個(gè)SEO相關(guān)問(wèn)題)。

          5.8

          盡可能多得了解你的部署平臺(tái)(deployment platform)。

          5.9

          考慮使用樣式表重置(Reset Style Sheet)。

          5.10

          考慮使用JavaScript框架(比如jQueryMooToolsPrototype),它們可以使你不用考慮瀏覽器之間的差異。

          六、解決bug

          6.1

          理解程序員20%的時(shí)間用于編碼,80%的時(shí)間用于維護(hù),根據(jù)這一點(diǎn)相應(yīng)安排時(shí)間。

          6.2

          建立一個(gè)有效的錯(cuò)誤報(bào)告機(jī)制。

          6.3

          建立某些途徑或系統(tǒng),讓用戶可以與你接觸,向你提出建議和批評(píng)。

          6.4

          為將來(lái)的維護(hù)和客服人員撰寫文檔,解釋清楚系統(tǒng)是怎么運(yùn)行的。

          6.5

          經(jīng)常備份!(并且確保這些備份是有效的。)除了備份機(jī)制,你還必須有一個(gè)恢復(fù)機(jī)制。

          6.6

          使用某種版本控制系統(tǒng)儲(chǔ)存你的文件,比如SubversionGit

          6.7

          不要忘記做單元測(cè)試(Unit Testing),Selenium之類的框架會(huì)對(duì)你有用。

          (完)

          轉(zhuǎn)自:http://www.ruanyifeng.com/blog/2010/11/61_things_every_web_developer_should_know.html



          本文是使用 B3log Solo簡(jiǎn)約設(shè)計(jì)の藝術(shù) 進(jìn)行同步發(fā)布的
          原文地址:http://88250.b3log.org/61_things_every_web_developer_should_know.html
          posted @ 2010-12-21 17:05 88250 閱讀(201) | 評(píng)論 (0)編輯 收藏

          Memcached Banner
          Martin Brown, 自由撰稿人, Freelance Developer

          簡(jiǎn)介: 開源 memcached 工具是一個(gè)用來(lái)存儲(chǔ)常用信息的緩存,有了它,您便無(wú)需從緩慢的資源,比如磁盤或數(shù)據(jù)庫(kù),加載(并處理)信息了。該工具可部署在專用的情況下,也可作為用完 現(xiàn)有環(huán)境內(nèi)的多余內(nèi)存的一種方法。盡管 memcached 十分簡(jiǎn)便,但有時(shí)它仍被不當(dāng)使用,或被用在錯(cuò)誤的環(huán)境類型中。在本文中,了解使用 memcached 的最佳時(shí)機(jī)。

          簡(jiǎn)介

          memcached 常被用來(lái)加速應(yīng)用程序的處理,在這里,我們將著重于介紹將它部署于應(yīng)用程序和環(huán)境中的最佳實(shí)踐。這包括應(yīng)該存儲(chǔ)或不應(yīng)存儲(chǔ)哪些、如何處理數(shù)據(jù)的靈活分布以 及如何調(diào)節(jié)用來(lái)更新 memcached 和所存儲(chǔ)數(shù)據(jù)的方法。我們還將介紹對(duì)高可用性的解決方案的支持,比如 IBM WebSphere® eXtreme Scale。

          所有的應(yīng)用程序,特別是很多 web 應(yīng)用程序都需要優(yōu)化它們?cè)L問(wèn)客戶機(jī)和將信息返回至客戶機(jī)的速度。可是,通常,返回的都是相同的信息。從數(shù)據(jù)源(數(shù)據(jù)庫(kù)或文件系統(tǒng))加載數(shù)據(jù)十分低效,若是每次想要訪問(wèn)該信息時(shí)都運(yùn)行相同的查詢,就尤顯低效。

          雖然很多 web 服務(wù)器都可被配置成使用緩存發(fā)回信息,但那與大多數(shù)應(yīng)用程序的動(dòng)態(tài)特性無(wú)法相適。而這正是 memcached 的用武之地。它提供了一個(gè)通用的內(nèi)存存儲(chǔ)器,可保存任何東西,包括本地語(yǔ)言的對(duì)象,這就讓您可以存儲(chǔ)各種各樣的信息并可以從諸多的應(yīng)用程序和環(huán)境訪問(wèn)這些信息。


          基礎(chǔ)知識(shí)

          memcached 是一個(gè)開源項(xiàng)目,旨在利用多個(gè)服務(wù)器內(nèi)的多余 RAM 來(lái)充當(dāng)一個(gè)可存放經(jīng)常被訪問(wèn)信息的內(nèi)存緩存。這里的關(guān)鍵是使用了術(shù)語(yǔ)緩存:memcached 為加載自他處的信息提供的是內(nèi)存中的暫時(shí)存儲(chǔ)。

          比如,考慮這樣一個(gè)典型的基于 web 的應(yīng)用程序。即便是一個(gè)動(dòng)態(tài)網(wǎng)站可能也會(huì)有一些組件或信息常量是貫穿頁(yè)面整個(gè)生命周期的。在一個(gè)博客站點(diǎn)內(nèi),針對(duì)單個(gè) blog post 的類別列表不大可能在頁(yè)面查看間經(jīng)常性地變更。每次都通過(guò)一個(gè)對(duì)數(shù)據(jù)庫(kù)的查詢加載此信息相對(duì)比較昂貴,特別是在數(shù)據(jù)沒有更改的情況下,就更是如此。從圖 1 可以看到一個(gè)博客站點(diǎn)內(nèi)可被緩存的頁(yè)面分區(qū)。


          圖 1. 一個(gè)典型的博客頁(yè)面內(nèi)的可緩存元素
          此圖顯示了可緩存的 blog 元素及其布局:頂部是 Page Header,左邊是當(dāng)前的 Current post lists,右邊是 About、Post History、External Links 和 Category list

          將這種結(jié)構(gòu)放在 blog 站點(diǎn)的其他元素,poster 信息、注釋 — 設(shè)置 blog post 本身 — 進(jìn)行推斷,可以看出為了顯示主頁(yè)的內(nèi)容很可能需要發(fā)生 10-20 次數(shù)據(jù)庫(kù)查詢和格式化。 每天對(duì)數(shù)百甚至數(shù)千的的頁(yè)面查看重復(fù)此過(guò)程,那么您的服務(wù)器和應(yīng)用程序執(zhí)行的查詢要遠(yuǎn)遠(yuǎn)多于為了顯示頁(yè)面內(nèi)容所需執(zhí)行的查詢。

          通過(guò)使用 memcached,可以將加載自數(shù)據(jù)庫(kù)的格式化信息存儲(chǔ)為一種可直接用在 Web 頁(yè)面上的格式。并且由于信息是從 RAM 而不是通過(guò)數(shù)據(jù)庫(kù)和其他處理從磁盤加載的,所以對(duì)信息的訪問(wèn)幾乎是瞬時(shí)的。

          再?gòu)?qiáng)調(diào)一下,memcached 是一個(gè)用來(lái)存儲(chǔ)常用信息的緩存,有了它,您便無(wú)需從緩慢的資源,比如磁盤或數(shù)據(jù)庫(kù),加載并處理信息了。

          對(duì) memcached 的接口是通過(guò)網(wǎng)絡(luò)連接提供的。這意味著您可以在多個(gè)客戶機(jī)間共享單個(gè)的 memcached 服務(wù)器(或多個(gè)服務(wù)器,如本文稍后所示的)。這個(gè)網(wǎng)絡(luò)接口非常迅速,并且為了改善性能,服務(wù)器會(huì)故意不支持身份驗(yàn)證或安全性通信。但這不應(yīng)限制部署選項(xiàng)。 memcached 服務(wù)器應(yīng)該存在于您網(wǎng)絡(luò)的內(nèi)部。網(wǎng)絡(luò)接口的實(shí)用性以及可以部署多個(gè) memcached 實(shí)例的簡(jiǎn)便性讓您可以使用多個(gè)機(jī)器上的多余 RAM 來(lái)提高您緩存的整體大小。

          memcached 的存儲(chǔ)方法是一個(gè)簡(jiǎn)單的鍵/值對(duì),類似于很多語(yǔ)言內(nèi)的散列或關(guān)聯(lián)數(shù)組。通過(guò)提供鍵和值來(lái)將信息存儲(chǔ)到 memcached 內(nèi),通過(guò)按特定的鍵請(qǐng)求信息來(lái)恢復(fù)信息。

          信息會(huì)無(wú)限期地保留在緩存內(nèi),除非發(fā)生如下的情況:

          1. 為緩存分配的內(nèi)存耗盡 — 在這種情況下,memcached 使用 LRU(最近最少使用)方法從此緩存刪除條目。最近未曾使用的條目會(huì)從此緩存中先刪除,最舊的最先訪問(wèn)。
          2. 條目被明確刪除 — 總是可以從此緩存內(nèi)刪除條目。
          3. 條目過(guò)期失效 — 各條目均有一個(gè)有效的期限以便針對(duì)此鍵存儲(chǔ)的信息在過(guò)于陳舊時(shí)可從緩存中清除這些條目。

          上述這些情況可以與您應(yīng)用程序的邏輯綜合使用以便確保緩存內(nèi)的信息是最新的。有了這些基礎(chǔ)知識(shí)后,讓我們來(lái)看看在應(yīng)用程序內(nèi)如何能最好地利用 memcached。


          何時(shí)使用 memcached

          在使用 memcached 改進(jìn)應(yīng)用程序性能時(shí),可以對(duì)一些關(guān)鍵的過(guò)程和步驟進(jìn)行修改。

          在加載信息時(shí),典型的場(chǎng)景如圖 2 所示。


          圖 2. 加載要顯示的信息的典型順序
          此圖顯示了從加載數(shù)據(jù)到處理/格式化數(shù)據(jù)再到發(fā)送數(shù)據(jù)至客戶機(jī)的流程

          一般而言,這些步驟是:

          1. 執(zhí)行一個(gè)或多個(gè)查詢來(lái)從數(shù)據(jù)庫(kù)加載信息
          2. 格式化適合于顯示(或進(jìn)一步處理)的信息
          3. 使用或顯示格式化了的數(shù)據(jù)

          在使用 memcached 時(shí),為配合這個(gè)緩存,可對(duì)應(yīng)用程序的邏輯進(jìn)行稍許修改:

          • 盡量從緩存加載信息
          • 如果存在,使用信息的被緩存版本
          • 如果它不存在:
            1. 執(zhí)行一個(gè)或多個(gè)查詢來(lái)從數(shù)據(jù)庫(kù)加載信息
            2. 格式化適合于顯示或進(jìn)一步處理的信息
            3. 將信息存儲(chǔ)到緩存內(nèi)
            4. 使用格式化了的數(shù)據(jù)

          圖 3 是對(duì)這些步驟的總結(jié)。


          圖 3. 在使用 memcached 時(shí)加載適合于顯示的信息
          此圖顯示了如果所請(qǐng)求的數(shù)據(jù)位于緩存內(nèi),它就會(huì)跳過(guò)所有處理步驟,節(jié)省了時(shí)間

          數(shù)據(jù)加載成為了至多三個(gè)步驟的一個(gè)過(guò)程,從緩存加載數(shù)據(jù)或從數(shù)據(jù)庫(kù)(視情況而定)加載數(shù)據(jù)并存儲(chǔ)在緩存內(nèi)。

          當(dāng)這個(gè)過(guò)程首次發(fā)生時(shí),數(shù)據(jù)將正常地從數(shù)據(jù)庫(kù)或其他數(shù)據(jù)源加載,然后再存儲(chǔ)到 memcached 內(nèi)。當(dāng)下一次訪問(wèn)此信息時(shí),它就會(huì)從 memcached 拉出,而不是從數(shù)據(jù)庫(kù)加載,節(jié)省了時(shí)間和 CPU 循環(huán)。

          問(wèn)題的另一個(gè)方面是要確保如果更改了要存儲(chǔ)在 memcached 內(nèi)的信息,在更新后端信息的同時(shí)還要更新 memcached 的版本。這會(huì)讓圖 4 內(nèi)所示的這個(gè)典型順序發(fā)生稍許變化,如 圖 5 所示。


          圖 4. 在一個(gè)典型的應(yīng)用程序內(nèi)更新或存儲(chǔ)數(shù)據(jù)
          此圖顯示了從更新數(shù)據(jù)到處理/格式化數(shù)據(jù)再到發(fā)送更新了的數(shù)據(jù)至客戶機(jī)的流程

          圖 5 顯示了使用 memcached 后發(fā)生了變化的流程。


          圖 5. 在使用 memcached 時(shí)更新或存儲(chǔ)數(shù)據(jù)
          此圖顯示了拓展了的流程:從更新數(shù)據(jù)到處理/格式化數(shù)據(jù),再到將數(shù)據(jù)存儲(chǔ)在 memcached 內(nèi),最后到發(fā)送更新了的數(shù)據(jù)至客戶機(jī)

          比如,仍以博客站點(diǎn)為例,在博客系統(tǒng)更新數(shù)據(jù)庫(kù)內(nèi)的類別列表時(shí),更新應(yīng)該遵循如下順序:

          1. 更新數(shù)據(jù)庫(kù)內(nèi)的類別列表
          2. 格式化信息
          3. 將信息存儲(chǔ)到 memcached 內(nèi)
          4. 將信息返回至客戶機(jī)

          memcached 內(nèi)的存儲(chǔ)操作是原子的,所以信息的更新不會(huì)讓客戶機(jī)只獲得部分?jǐn)?shù)據(jù);它們獲得的或者是老版本,或者是新版本。

          對(duì)于大多數(shù)應(yīng)用程序,這兩個(gè)操作是您惟一需要注意的。在訪問(wèn)他人使用的數(shù)據(jù)時(shí),它會(huì)自動(dòng)被添加到這個(gè)緩存內(nèi),而且如果對(duì)該數(shù)據(jù)進(jìn)行了更改,此緩存內(nèi)也會(huì)自動(dòng)進(jìn)行更新。


          鍵、名稱空間和值

          memcached 另一個(gè)需要重點(diǎn)考慮的因素是如何組織和命名存儲(chǔ)在緩存內(nèi)的這些數(shù)據(jù)。從之前博客站點(diǎn)的例子中,不難看出需要使用一種一致的命名結(jié)構(gòu)以便您能加載博客類別、歷史和其他信息,然后再在加載信息(并更新緩存)時(shí)或者在更新數(shù)據(jù)(同樣也要更新緩存)時(shí)使用。

          使用的何種具體的命名系統(tǒng)特定于應(yīng)用程序,但通常可以使用一種與現(xiàn)有應(yīng)用程序類似的結(jié)構(gòu),并且這種結(jié)構(gòu)很可能基于某種惟一識(shí)別符。當(dāng)從數(shù)據(jù)庫(kù)拉出信息或在整理信息集時(shí),就會(huì)發(fā)生這種情況。

          以 blog post 為例,可以在一個(gè)具有鍵 category-list 的項(xiàng)中存儲(chǔ)類別列表。與此 post ID 對(duì)應(yīng)的單個(gè) post,比如 blogpost-29 相關(guān)的值都可以使用,而該項(xiàng)的注釋則可以存儲(chǔ)在 blogcomments-29 內(nèi),其中 29 就是這個(gè) blog post 的 ID。這樣一來(lái), 您就可以將各種各樣的信息存儲(chǔ)在緩存內(nèi),使用不同的前綴來(lái)標(biāo)識(shí)這些信息。

          memcached 鍵/值存儲(chǔ)的簡(jiǎn)便性(以及安全性的缺乏)意味著如果您想要在使用同一個(gè) memcached 服務(wù)器的同時(shí)支持多個(gè)應(yīng)用程序,那么就可以考慮使用其他格式的量詞來(lái)標(biāo)識(shí)數(shù)據(jù)屬于某種特定的應(yīng)用程序。比如,可以添加像 blogapp:blogpost-29 這樣的應(yīng)用程序前綴。這些鍵是沒有格式的,所以可以使用任何字符串作為鍵的名稱。

          在存儲(chǔ)值的方面,應(yīng)該確保存儲(chǔ)在緩存內(nèi)的信息適合于您的應(yīng)用程序。比如,對(duì)于這個(gè)博客系統(tǒng),您可能想要存儲(chǔ)被博客應(yīng)用程序使用的對(duì)象以便格式化博客信息,而不是原始的 HTML。如果同一個(gè)基礎(chǔ)結(jié)構(gòu)用在應(yīng)用程序內(nèi)的多個(gè)地方,這一點(diǎn)更具實(shí)用性。

          大多數(shù)語(yǔ)言的接口,包括 Java™、Perl、PHP 等,都能串行化語(yǔ)言對(duì)象以便存儲(chǔ)在 memcached 內(nèi)。這就讓您可以存儲(chǔ)并隨后從內(nèi)存存儲(chǔ)恢復(fù)全部對(duì)象,而不是在您的應(yīng)用程序內(nèi)手動(dòng)重構(gòu)它們。 很多對(duì)象,或它們使用的結(jié)構(gòu),都基于某種散列或數(shù)組結(jié)構(gòu)。對(duì)于跨語(yǔ)言的環(huán)境,比如在 JSP 環(huán)境和 JavaScript 環(huán)境間共享相同信息,可以使用一種架構(gòu)中立的格式,比如 JavaScript Object Notation (JSON) 甚或 XML。


          填充并使用 memcached

          作為一種開源產(chǎn)品以及一種最初開發(fā)用來(lái)工作于現(xiàn)有開源環(huán)境內(nèi)的產(chǎn)品,memcached 受大量環(huán)境和平臺(tái)支持。與 memcached 服務(wù)器通信的接口有很多,并常常具有針對(duì)所有語(yǔ)言的多個(gè)實(shí)現(xiàn)。參見 參考資料 以獲得常用的庫(kù)和工具箱。

          要列出所有受支持的接口和環(huán)境不太可能,但它們均支持 memcached 協(xié)議提供的基礎(chǔ) API。這些描述已經(jīng)被簡(jiǎn)化并應(yīng)用在不同語(yǔ)言的上下文內(nèi),在這些語(yǔ)言中,使用不同的值可指示錯(cuò)誤。主要的函數(shù)有:

          • get(key) — 從存儲(chǔ)了特定鍵的 memcached 獲得信息。 如果鍵不存在,就返回錯(cuò)誤。
          • set(key, value [, expiry]) — 使用緩存內(nèi)的標(biāo)識(shí)符鍵存儲(chǔ)這個(gè)特定的值。如果鍵已經(jīng)存在,那么它就會(huì)被更新。期滿時(shí)間的單位為秒,并且如果值小于 30 天 (30*24*60*60),那么就用作相對(duì)時(shí)間,如果值大于 30 天,那么就用作絕對(duì)時(shí)間 (epoch)。
          • add(key, value [, expiry]) — 如果鍵不存在就將這個(gè)鍵添加到緩存內(nèi),如果鍵已經(jīng)存在就返回錯(cuò)誤。如果您想要顯式地添加一個(gè)新鍵而又不會(huì)因它已經(jīng)存在而更新它,那么這個(gè)函數(shù)將十分有用。
          • replace(key, value [, expiry]) — 更新此特定鍵的值,如果鍵不存在就返回一個(gè)錯(cuò)誤。
          • delete(key [, time]) — 從緩存中刪除此鍵/值對(duì)。如果您提供一個(gè)時(shí)間,那么添加具有此鍵的一個(gè)新值就會(huì)被阻塞這個(gè)特定的時(shí)期。超時(shí)讓您可以確保此值總是可以重新讀取自您的數(shù)據(jù)中心。
          • incr(key [, value]) — 為特定的鍵增 1 或特定的值。只適用于數(shù)值。
          • decr(key [, value]) — 為特定的鍵減 1 或特定的值,只適用于數(shù)值。
          • flush_all — 讓緩存內(nèi)的所有當(dāng)前條目無(wú)效(或到期失效)。

          比如,在 Perl 內(nèi),基本 set 操作可以如清單 1 所示的那樣處理。


          清單 1. Perl 內(nèi)的基本 set 操作

          				
          use Cache::Memcached;

          my $cache = new Cache::Memcached {
          'servers' => [
          'localhost:11211',
          ],
          };

          $cache->set('mykey', 'myvalue');

           

          Ruby 內(nèi)的相同的基本操作如清單 2 所示。


          清單 2. Ruby 內(nèi)的基本 set 操作

          				
          require 'memcache'
          memc = MemCache::new '192.168.0.100:11211'

          memc["mykey"] = "myvalue"

           

          在兩個(gè)例子中可以看到相同的基本結(jié)構(gòu):設(shè)置 memcached 服務(wù)器,然后分配或設(shè)置值。其他的接口也可用,包括適合于 Java 技術(shù)的那些接口,讓您可以在 WebSphere 應(yīng)用程序內(nèi)使用 memcached。memcached 接口類允許將 Java 對(duì)象直接序列化到 memcached 以便于存儲(chǔ)和加載復(fù)雜的結(jié)構(gòu)。當(dāng)在像 WebSphere 這樣的環(huán)境內(nèi)進(jìn)行部署時(shí),有兩個(gè)事情非常重要:服務(wù)的彈性(在 memcached 不可用時(shí)如何做)以及如何提高緩存存儲(chǔ)量來(lái)改進(jìn)在使用多個(gè)應(yīng)用程序服務(wù)器或在使用像 WebSphere eXtreme Scale 這樣的環(huán)境時(shí)的性能。我們接下來(lái)就來(lái)看看這兩個(gè)問(wèn)題。


          彈性和可用性

          有關(guān) memcached 最常見的一個(gè)問(wèn)題是:“若緩存不可用了,會(huì)發(fā)生什么情況呢?”正如之前章節(jié)中明示的,緩存內(nèi)的信息不應(yīng)該成為信息的的惟一資源。必須要能夠從其他位置加載存儲(chǔ)在緩存內(nèi)的數(shù)據(jù)。

          雖然,無(wú)法從緩存訪問(wèn)信息將會(huì)減緩應(yīng)用程序的性能,但它不應(yīng)該阻止應(yīng)用程序的運(yùn)轉(zhuǎn)。可能會(huì)發(fā)生這樣幾個(gè)場(chǎng)景:

          1. 如果 memcached 服務(wù)宕掉,應(yīng)用程序應(yīng)該回退到從原始數(shù)據(jù)源加載信息并對(duì)信息進(jìn)行顯示所需的格式化。此應(yīng)用程序還應(yīng)繼續(xù)嘗試在 memcached 內(nèi)加載和存儲(chǔ)信息。
          2. 一旦 memcached 服務(wù)器恢復(fù)可用,應(yīng)用程序就應(yīng)該自動(dòng)嘗試存儲(chǔ)數(shù)據(jù)。沒有必要強(qiáng)制重載已緩存了的數(shù)據(jù),可以使用標(biāo)準(zhǔn)的訪問(wèn)來(lái)用信息加載和填充緩存。最終,緩存將會(huì)被最常用的數(shù)據(jù)重新填充。

          再次重申,memcached 是信息的緩存但并非惟一的數(shù)據(jù)源。memcached 服務(wù)器不可用不應(yīng)該是應(yīng)用程序的終結(jié),雖然這意味著在 memcached 服務(wù)器恢復(fù)正常之前性能會(huì)有所降低。實(shí)際上,memcached 服務(wù)器相對(duì)簡(jiǎn)單,并且雖然不是絕對(duì)無(wú)故障的,但它的簡(jiǎn)單性的結(jié)果就是它很少會(huì)出錯(cuò)。


          分配緩存

          memcached 服務(wù)器只是網(wǎng)絡(luò)上針對(duì)一些鍵存儲(chǔ)值的一個(gè)緩存。如果有多臺(tái)機(jī)器,那么很自然地會(huì)想要在所有多余機(jī)器上設(shè)置一個(gè) memcached 的實(shí)例來(lái)提供一個(gè)超大的聯(lián)網(wǎng) RAM 緩存存儲(chǔ)。

          有了這個(gè)想法后,還有一種想當(dāng)然是需要使用某種分配或復(fù)制機(jī)制來(lái)在機(jī)器之間復(fù)制鍵/值對(duì)。這種方式的問(wèn)題是如果這么做反而會(huì)減少可用的 RAM 緩存,而不是增加。如圖 6 所示,可以看出這里有三個(gè)應(yīng)用程序服務(wù)器,每個(gè)服務(wù)器都可以訪問(wèn)一個(gè) memcached 實(shí)例。


          圖 6. 多重 memcached 實(shí)例的不正確使用
          此圖顯示了 memcached 的三個(gè)獨(dú)立的 1-GB 實(shí)例,支持三個(gè)應(yīng)用程序服務(wù)器,各產(chǎn)出 1 GB 的緩存空間

          盡管每個(gè) memcached 實(shí)例都是 1 GB 的大小(產(chǎn)生 3 GB 的 RAM 緩存),但如果每個(gè)應(yīng)用程序服務(wù)器只有其自己的緩存(或者在 memcached 之間存在著數(shù)據(jù)的復(fù)制),那么整個(gè)安裝也仍只能有 1 GB 的緩存在每個(gè)實(shí)例間復(fù)制。

          由于 memcached 通過(guò)一個(gè)網(wǎng)絡(luò)接口提供信息,因此單個(gè)的客戶機(jī)可以從它所能訪問(wèn)的任何一個(gè) memcached 實(shí)例訪問(wèn)數(shù)據(jù)。如果數(shù)據(jù)沒有跨每個(gè)實(shí)例被復(fù)制,那么最終在每個(gè)應(yīng)用程序服務(wù)器上,就可以有 3 GB 的 RAM 緩存可用,如圖 7 所示。


          圖 7. 多重 memcached 實(shí)例的正確使用
          此圖顯示了三個(gè)交互的 1-GB memcached 實(shí)例,支持三個(gè)應(yīng)用程序服務(wù)器,導(dǎo)致總體 3 GB 的共享緩存空間

          這個(gè)方法的問(wèn)題是選擇哪個(gè)服務(wù)器來(lái)儲(chǔ)存鍵/值對(duì),以及當(dāng)想要重新獲得一個(gè)值時(shí),如何決定要與哪個(gè) memcached 服務(wù)器對(duì)話。問(wèn)題的解決方案就是忽略復(fù)雜的東西,比如查找表,或是寄望 memcached 服務(wù)器來(lái)為您處理這個(gè)過(guò)程。而 memcached 客戶機(jī)則必須要力求簡(jiǎn)單。

          memcached 客戶機(jī)不必決定此信息,它只需對(duì)在存儲(chǔ)信息時(shí)指定的鍵使用一個(gè)簡(jiǎn)單的散列算法。當(dāng)想要從一列 memcached 服務(wù)器存儲(chǔ)或獲取信息時(shí),memcached 客戶機(jī)就會(huì)用一個(gè)一致的散列算法從這個(gè)鍵獲取一個(gè)數(shù)值。舉個(gè)例子,鍵 mykey 被轉(zhuǎn)換成數(shù)值 23875 。是保存還是獲取信息無(wú)關(guān)緊要,這個(gè)鍵將總是被用作惟一標(biāo)識(shí)符來(lái)從 memcached 服務(wù)器加載,因此在本例中,“mykey” 散列轉(zhuǎn)化后對(duì)應(yīng)的值總是 23875

          如果有兩個(gè)服務(wù)器,那么 memcached 客戶機(jī)將對(duì)這個(gè)數(shù)值進(jìn)行一個(gè)簡(jiǎn)單的運(yùn)算(例如,系數(shù))來(lái)決定它應(yīng)將此值存儲(chǔ)在第一個(gè)還是第二個(gè)配置了的 memcached 實(shí)例上。

          當(dāng)存儲(chǔ)一個(gè)值時(shí),客戶機(jī)會(huì)從這個(gè)鍵確定出散列值以及它原來(lái)存儲(chǔ)在哪個(gè)服務(wù)器上。當(dāng)獲取一個(gè)值時(shí),客戶機(jī)會(huì)從這個(gè)鍵確定出相同的散列值并會(huì)選擇相同的服務(wù)器來(lái)獲取信息。

          如果在每個(gè)應(yīng)用程序服務(wù)器上使用的是相同的服務(wù)器列表(并且順序相同),那么當(dāng)需要保存或檢索同一個(gè)鍵時(shí),每個(gè)應(yīng)用程序服務(wù)器都將選擇同一個(gè) 服務(wù)器。現(xiàn)在,在這個(gè)例子中,有 3GB 的 memcached 空間可以共享,而不是同一個(gè) 1 GB 的空間的復(fù)制,這就帶來(lái)了更多的可用緩存,并很有可能會(huì)提高有多個(gè)用戶情況下的應(yīng)用程序的性能。

          這個(gè)過(guò)程也有其復(fù)雜性(比如當(dāng)一個(gè)服務(wù)器不可用時(shí)會(huì)怎樣),更多信息,請(qǐng)參見相關(guān)文檔(參見 參考資料)。


          如何能不使用 memcached

          盡管 memcached 很簡(jiǎn)單,但 memcached 實(shí)例有時(shí)候還是會(huì)被不正確地使用。

          memcached 不是一個(gè)數(shù)據(jù)庫(kù)

          最常見的 memcached 誤用就是把它用作一個(gè)數(shù)據(jù)存儲(chǔ),而不是一個(gè)緩存。memcached 的首要目的就是加快數(shù)據(jù)的響應(yīng)時(shí)間,否則數(shù)據(jù)從其他數(shù)據(jù)源構(gòu)建或恢復(fù)需要很長(zhǎng)時(shí)間。一個(gè)典型的例子就是從一個(gè)數(shù)據(jù)庫(kù)中恢復(fù)信息,特別是在信息顯示給用戶前 需要對(duì)信息進(jìn)行格式化或處理的時(shí)候。Memcached 被設(shè)計(jì)用來(lái)將信息存儲(chǔ)在內(nèi)存中以避免每次在數(shù)據(jù)需要恢復(fù)時(shí)重復(fù)執(zhí)行相同的任務(wù)。

          切不可將 memcached 用作運(yùn)行應(yīng)用程序所需信息的惟一信息源;數(shù)據(jù)應(yīng)總是可以從其他信息源獲取。此外,要記住 memcached 只是一個(gè)鍵/值的存儲(chǔ)。不能在數(shù)據(jù)上執(zhí)行查詢,或者對(duì)內(nèi)容進(jìn)行迭代來(lái)提取信息。應(yīng)該使用它來(lái)存儲(chǔ)數(shù)據(jù)塊或?qū)ο笠詡渑渴褂谩?/p>

          不要緩存數(shù)據(jù)庫(kù)行或文件

          雖然可以使用 memcached 存儲(chǔ)加載自數(shù)據(jù)庫(kù)的數(shù)據(jù)行,但這實(shí)際上是查詢緩存,并且大多數(shù)數(shù)據(jù)庫(kù)都提供各自的查詢緩存的機(jī)制。其他的對(duì)象,比如文件系統(tǒng)的圖像或文件的情況與此相同。很多應(yīng)用程序和 web 服務(wù)器針對(duì)此類工作已經(jīng)有了一些很好的解決方案。

          如果在加載和格式化后,使用它來(lái)存儲(chǔ)全部信息塊,就可以從 memcached 獲得更多的實(shí)用工具和性能上的改善。仍以我們的博客站點(diǎn)為例,存儲(chǔ)信息的最佳點(diǎn)是在將博客類別格式化為對(duì)象,甚至是在格式化成 HTML 后。博客頁(yè)面的構(gòu)造可通過(guò)從 memcached 加載各個(gè)組件(比如 blog post、category list、post history 等)并將完成的 HTML 寫回至客戶機(jī)實(shí)現(xiàn)。

          memcached 并不安全

          為了確保最佳性能,memcached 并未提供任何形式的安全性,沒有身份驗(yàn)證,也沒有加密。這意味著對(duì) memcached 服務(wù)器的訪問(wèn)應(yīng)該這么處理:一是通過(guò)將它們放到應(yīng)用程序部署環(huán)境相同的私有側(cè),二是如果安全性是必須的,那么就使用 UNIX® socket 并只允許當(dāng)前主機(jī)上的應(yīng)用程序訪問(wèn)此 memcached 服務(wù)器。

          這多少犧牲了一些靈活性和彈性,以及跨網(wǎng)絡(luò)上的多臺(tái)機(jī)器共享 RAM 緩存的能力,但這是在目前的情況下確保 memcached 數(shù)據(jù)安全性的惟一一種解決方案。


          不要限制自己

          除了不應(yīng)該使用 memcached 實(shí)例的情況外,memcached 的靈活性不應(yīng)忽視。由于 memcached 與應(yīng)用程序處于相同的架構(gòu)水平,所以很容易集成并連接到它。并且更改應(yīng)用程序以便利用 memcached 也并不復(fù)雜。此外,由于 memcached 只是一個(gè)緩存,所以在出現(xiàn)問(wèn)題時(shí)它不會(huì)停止應(yīng)用程序的執(zhí)行。如果使用正確的話,它所做的是減輕其余服務(wù)器基礎(chǔ)設(shè)施的負(fù)載(減少對(duì)數(shù)據(jù)庫(kù)和數(shù)據(jù)源的讀操 作),這意味著無(wú)需更多的硬件就可以支持更多的客戶機(jī)。

          但請(qǐng)記住,它僅僅是個(gè)緩存!


          結(jié)束語(yǔ)

          在本文中,我們了解了 memcached 以及如何最佳地使用它。我們看到了信息如何存儲(chǔ)、如何選擇合理的鍵以及如何選擇要存儲(chǔ)的信息。我們還討論了所有 memcached 用戶都要遇到的一些關(guān)鍵的部署問(wèn)題,包括多服務(wù)器的使用、當(dāng) memcached 實(shí)例消亡時(shí)該怎么做,以及(也許最為重要的)在哪些情況下不能使用 memcached。

          作為一種開源的應(yīng)用程序并且是目的簡(jiǎn)單而直白的應(yīng)用程序,memcached 的功能和實(shí)用性均來(lái)自于這種簡(jiǎn)單性。通過(guò)為信息提供巨大的 RAM 存儲(chǔ)空間、讓它在網(wǎng)絡(luò)上可用,然后再讓它可通過(guò)各種不同的接口和語(yǔ)言訪問(wèn)到,memcached 可被集成到多種多樣的安裝和環(huán)境中。

           

          參考資料

          學(xué)習(xí)

          獲得產(chǎn)品和技術(shù)

          討論

          關(guān)于作者

          Martin Brown 成為專業(yè)作家已有七年多的時(shí)間了。他是題材廣泛的眾多書籍和文章的作者。他的專業(yè)技術(shù)涉及各種開發(fā)語(yǔ)言和平臺(tái) —— Perl、Python、Java™、JavaScript、Basic、Pascal、Modula-2、C、C++、Rebol、Gawk、 Shellscript、Windows、Solaris、Linux®、BeOS、Mac OS/X 等等,還涉及 Web 編程、系統(tǒng)管理和集成。Martin 是 Microsoft® 的主題專家(SME),并且是 ServerWatch.com、LinuxToday.com 和 IBM developerWorks 的定期投稿人,他還是 Computerworld、The Apple Blog 和其他站點(diǎn)的正式博客。您可以通過(guò)他的 Web 站點(diǎn) : http://www.mcslp.com 與他聯(lián)系。

          轉(zhuǎn)自:http://www.ibm.com/developerworks/cn/opensource/os-memcached



          本文是使用 B3log Solo簡(jiǎn)約設(shè)計(jì)の藝術(shù) 進(jìn)行同步發(fā)布的
          原文地址:http://88250.b3log.org/articles/2010/12/21/1292901251292.html
          posted @ 2010-12-21 11:14 88250 閱讀(466) | 評(píng)論 (0)編輯 收藏

          “比心情更好的是你的選擇!”這條掛在“天驕北麓”售樓部房頂上的廣告詞極其充滿誘惑,與之形成鮮明反差的是上百準(zhǔn)業(yè)主半月來(lái)的維權(quán),比其心情更糟的是“天驕北麓”背后“那點(diǎn)房事”。12月18日,位于紅云路上的“天驕北麓”在準(zhǔn)業(yè)主們的不滿和遭遇雞糞灑門中迎來(lái)了開盤。

          這 場(chǎng)被媒體和市民高度關(guān)注的房事,其實(shí)是一場(chǎng)赤裸裸的利益紛爭(zhēng),以及一個(gè)企業(yè)在市場(chǎng)經(jīng)濟(jì)下,面對(duì)市場(chǎng)風(fēng)險(xiǎn)如何做到誠(chéng)實(shí)守信?對(duì)于準(zhǔn)業(yè)主們來(lái)說(shuō),需要思考的是 在市場(chǎng)經(jīng)濟(jì)下,如何用法律來(lái)保障自己的權(quán)益。市場(chǎng)經(jīng)濟(jì)就是法治經(jīng)濟(jì),道德、誠(chéng)信這些沒有落在紙上具有法律約束力的字眼,在利益面前顯得蒼白無(wú)力。

          為防不測(cè),防暴警察也來(lái)到現(xiàn)場(chǎng)

          昨天上午,“天驕北麓”迎來(lái)開盤。由于上百準(zhǔn)業(yè)主的不滿和抗議,讓這次開盤顯得格外謹(jǐn)慎和受到外界廣泛關(guān)注。數(shù)十警察趕到現(xiàn)場(chǎng)維持秩序,為了防止不測(cè),防暴警察也來(lái)到現(xiàn)場(chǎng)。

          中 午12點(diǎn)39分左右,準(zhǔn)房主們把早已準(zhǔn)備好的兩箱雞糞灑在了售樓部的門口。頓時(shí),現(xiàn)場(chǎng)出現(xiàn)了一點(diǎn)騷亂,在旁邊維持秩序的警察開始前去阻攔。就在這時(shí),一礦 泉水瓶砸向售樓部大門,站在門口的一名保安拿著警棍朝著準(zhǔn)業(yè)主們指了指,幾個(gè)情緒激動(dòng)的準(zhǔn)業(yè)主向保安沖去,被維持秩序的警察攔下,在其他保安的勸說(shuō)下,該 名保安走進(jìn)了售樓部。

          56歲的代阿姨,是這次“天驕北麓”團(tuán)購(gòu)房的一名準(zhǔn)業(yè)主,交了20萬(wàn)元。維權(quán)15天以來(lái),代阿姨有著不少的委屈和不滿。為了換一套大一點(diǎn)的房子,代阿姨把原來(lái)的房子賣了,手里攥著60多萬(wàn)元,本想把這60多萬(wàn)投向“天驕北麓”,買大一點(diǎn)的房子,等待她的卻是一場(chǎng)紛爭(zhēng)。

          “比心情更壞的是花言巧言設(shè)下的陷阱,一個(gè)沒有出口、巷道林立的購(gòu)房迷宮。”代阿姨說(shuō)。

          說(shuō)起購(gòu)買“天驕北麓”的房子,患有高血壓的代阿姨苦不堪言,當(dāng)她7月初從中介公司獲知4800元一平方米就可以購(gòu)買天驕北麓的房子時(shí),義無(wú)反顧地交了1.7萬(wàn)元的轉(zhuǎn)讓金,并與這家中介公司簽下合約。7月10日選房時(shí),她交了20萬(wàn)元。

          本以為可以圓一個(gè)住房夢(mèng)的她,每天都在盼著房子開盤,日子就這么一天天過(guò)去,代阿姨也沒感到有什么煩惱。

          當(dāng)12月1日獲知她交了20萬(wàn)元參與團(tuán)購(gòu)的“天驕北麓”價(jià)格比當(dāng)初和中介公司簽下合約的房?jī)r(jià)高出一倍時(shí),代阿姨蒙了。自12月4日起,代阿姨和上百團(tuán)購(gòu)者開始了維權(quán)。由于身體不好,上了年紀(jì),每天的維權(quán)之路,代阿姨還是吃不消。

          和代阿姨一樣的購(gòu)房者還有來(lái)自四川的周女士。周女士交了6萬(wàn)元的購(gòu)房意向金,結(jié)果也陷入了這場(chǎng)紛爭(zhēng)。欲哭無(wú)淚的周女士昨天上午后悔不已,當(dāng)初不該草率地賣了房子來(lái)購(gòu)買“天驕北麓”。在這起購(gòu)房中,還有她的10多個(gè)老鄉(xiāng)。

          “開發(fā)商的一小步,維權(quán)者的一大步”

          在這些準(zhǔn)業(yè)主提供的協(xié)議中,記者沒有看到一份真正的購(gòu)房合同,聽到和看到的只是團(tuán)購(gòu)、意向金,這些不明不白的詞語(yǔ),讓人眼花繚亂。

          在“天驕北麓”售樓部,一張由云南倫華房地產(chǎn)有限公司貼出的通告里稱,對(duì)未選中房子的購(gòu)房客戶,公司愿意現(xiàn)金一次性補(bǔ)償,以中國(guó)人民銀行公布的現(xiàn)行兩年定期存款率3.25%為計(jì)算標(biāo)準(zhǔn)。

          對(duì)于此,準(zhǔn)業(yè)主霍先生把其稱為“開發(fā)商的一小步,維權(quán)者的一大步”。霍先生說(shuō),在各方壓力和他們準(zhǔn)業(yè)主的努力下,開發(fā)商愿意為返還意向金支付利息,來(lái)之不易。

          代阿姨說(shuō),她交了20萬(wàn)元的意向金,可以得到6500多元的利息,對(duì)于她來(lái)說(shuō),這點(diǎn)利息已經(jīng)對(duì)其沒有多少用處,因?yàn)檫@幾個(gè)月來(lái),看著往上漲的房子,她付出去的更多,已經(jīng)耽誤了她買房。

          中午12點(diǎn)51分,準(zhǔn)業(yè)主們開始從售樓部撤離,環(huán)衛(wèi)工人開始打掃門口的雞糞。下午1點(diǎn)10分左右,“天驕北麓”恢復(fù)了暫時(shí)的安寧。掛在售樓部西邊“所有關(guān)于生活的夢(mèng)想從這一刻開啟”的廣告詞,是否會(huì)因?yàn)橐恍?zhǔn)業(yè)主們的離開而開啟更多準(zhǔn)業(yè)主們生活的夢(mèng)想呢?

          背景

          “天驕北麓”團(tuán)購(gòu)風(fēng)波

          2009年11月,由云南倫華房地產(chǎn)有限公司開發(fā)的“天驕北麓”項(xiàng)目開始認(rèn)購(gòu),打出的廣告上稱項(xiàng)目房源最低售價(jià)3660元/平米,均價(jià)4300元/平米,并承諾如正式開盤時(shí)提價(jià),團(tuán)購(gòu)房源價(jià)格不變,上萬(wàn)的團(tuán)購(gòu)者繳納了2至30萬(wàn)元不等的意向金預(yù)訂房源。

          2010年12月1日,“天驕北麓”項(xiàng)目公布了每套房源價(jià)格,均價(jià)上調(diào)。開發(fā)商稱所有房源按照公布價(jià)格出售,不想買房的,無(wú)息返還意向金。

          當(dāng) 準(zhǔn)業(yè)主們獲知這個(gè)消息后,猶如五雷轟頂,當(dāng)初不是說(shuō)好了3660元到4300元嗎?怎么會(huì)有這么大的差距呢?一種不滿的情緒開始在準(zhǔn)業(yè)主中蔓延。12月1 日,因開盤價(jià)格遠(yuǎn)遠(yuǎn)高于已經(jīng)交了認(rèn)購(gòu)金的購(gòu)房者的心理底線,這些準(zhǔn)業(yè)主們一氣之下砸了售樓部的沙盤模型。12月4日、5日,準(zhǔn)業(yè)主們聚集售樓部,用番茄雞 蛋來(lái)招呼開發(fā)商,表達(dá)對(duì)開發(fā)商行為的不滿。

          記者秦聰俊(都市時(shí)報(bào))

           

          轉(zhuǎn)自:http://news.qq.com/a/20101219/001080.htm?qq=0&ADUIN=84588990&ADSESSION=1292750641&ADTAG=CLIENT.QQ.3073_.0

           



          本文是使用 B3log Solo簡(jiǎn)約設(shè)計(jì)の藝術(shù) 進(jìn)行同步發(fā)布的
          原文地址:http://88250.b3log.org/articles/2010/12/19/1292773828916.html
          posted @ 2010-12-19 23:50 88250 閱讀(178) | 評(píng)論 (0)編輯 收藏

          騰訊微博開放平臺(tái)API開放啦,使用騰訊微博開放平臺(tái)提供的API創(chuàng)建自己的應(yīng)用,需要首先填寫個(gè)人資料,通過(guò)聯(lián)系郵箱驗(yàn)證,獲取開發(fā)者資格,就能 創(chuàng)建自己的應(yīng)用。騰訊微博開放平臺(tái),是基于騰訊微博系統(tǒng),為廣大開發(fā)者和用戶提供的開放數(shù)據(jù)分享與傳播平臺(tái)。廣大開發(fā)者和用戶登錄平臺(tái)后,就可以使用平臺(tái) 提供的開放API接口,創(chuàng)建應(yīng)用從微博系統(tǒng)獲取信息,或?qū)⑿碌男畔鞑サ秸麄€(gè)微博系統(tǒng)中,豐富多樣的API接口和應(yīng)用,加上你的智慧,將創(chuàng)造出無(wú)窮的應(yīng)用和樂趣。

          平臺(tái)使用說(shuō)明:

          騰訊微博開放平臺(tái),是基于騰訊微博系統(tǒng),為廣大開發(fā)者和用戶提供的開放數(shù)據(jù)分享與傳播平臺(tái)。廣大開發(fā)者和用戶登錄平臺(tái)后,就可以使用平臺(tái)提供的開放 API接口,創(chuàng)建應(yīng)用從微博系統(tǒng)獲取信息,或?qū)⑿碌男畔鞑サ秸麄€(gè)微博系統(tǒng)中,豐富多樣的API接口和應(yīng)用,加上你的智慧,將創(chuàng)造出無(wú)窮的應(yīng)用和樂趣!

          平臺(tái)介紹 — 在微博開放平臺(tái)能獲取到的資源及優(yōu)勢(shì)

          應(yīng)用開發(fā)說(shuō)明 — 說(shuō)明如何成為一個(gè)開發(fā)者并創(chuàng)建應(yīng)用

          應(yīng)用審核流程 — 審核應(yīng)用的來(lái)源字段能獲得的好處,以及如何審核

          開發(fā)者協(xié)議 — 在此查看騰訊微博開放平臺(tái)開發(fā)者服務(wù)協(xié)議

          如何開發(fā)微博應(yīng)用?(馬上成為開發(fā)者)

          你只需要按照如下步驟操作:

          第一步:填寫你的開發(fā)者信息;

          第二步:聯(lián)系郵箱通過(guò)驗(yàn)證;(電子郵箱將作為我們聯(lián)系你的重要方式,請(qǐng)?zhí)峁┏S绵]箱地址)

          第三步:填寫要?jiǎng)?chuàng)建的應(yīng)用信息。

          就能馬上獲取到微博App Key和App Secret,調(diào)用微博API,進(jìn)行應(yīng)用開發(fā)。 查看詳細(xì)說(shuō)明

          ----

          代表著中國(guó)最先進(jìn)的互聯(lián)網(wǎng)技術(shù)的騰訊終于走出了開放的第一步 :-)

          轉(zhuǎn)自:http://www.oschina.net/news/13863/tencent-open-micro-blogging-api



          本文是使用 B3log Solo簡(jiǎn)約設(shè)計(jì)の藝術(shù) 進(jìn)行同步發(fā)布的
          原文地址:http://88250.b3log.org/tencent-open-micro-blogging-api.html
          posted @ 2010-12-17 09:08 88250 閱讀(201) | 評(píng)論 (0)編輯 收藏

          僅列出標(biāo)題
          共9頁(yè): 上一頁(yè) 1 2 3 4 5 6 7 8 9 下一頁(yè) 
          主站蜘蛛池模板: 灵宝市| 延寿县| 陈巴尔虎旗| 察雅县| 龙井市| 儋州市| 利辛县| 宣恩县| 西畴县| 青铜峡市| 婺源县| 微山县| 渝北区| 格尔木市| 辽阳市| 霍州市| 临汾市| 白玉县| 上思县| 博白县| 汪清县| 施秉县| 仁寿县| 东乌珠穆沁旗| 景谷| 青海省| 靖西县| 九龙城区| 芷江| 松潘县| 邳州市| 枣阳市| 张家口市| 嘉义市| 霍州市| 呼伦贝尔市| 聂拉木县| 赤城县| 明星| 阜平县| 凤山县|