<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    秋風的蕭瑟 又見湖邊木葉飛

    歡迎來到梁良 | LonBlog,這里記錄下了我生活點點滴滴。

    給網頁設計師的30個HTML5學習資源

     新聞來源:NTT.cc

    早在幾個星期前,Adobe就發布了Dreamweaver CS5 HTML5 Pack的預覽版下載。眾所周知,HTML5在互聯網領域掀起了一場大論戰,并讓Adobe的日子很難熬。HTML5致力于為前端開發提供全面的標記語 言。以下30多個資源可幫你開始學習HTML5。


    Blowing up HTML5 video and mapping it into 3D space(將HTML5視頻吹散并組成3D效果)最近我研究了HTML 5中的Canvas 和Video 標簽,并發現了一些很酷的特性。其中之一就是Canvas.drawImage() api。此為詳細介紹。

    Code a Backwards Compatible, One Page Portfolio with HTML5 and CSS3(用HTML5 和CSS3 打造向下兼容的網頁)HTML5更加語義化,使用HTML5 我們不必在網頁上布滿沒有意義的div。它引入了有意義的tag,比如 navigations 和 footers 使代碼更有意義也更接近自然語言。

    Coding A HTML 5 Layout From Scratch(HTML 5 布局)
    這篇文章將教你

    • 用原有技術將元素放置在特定位置
    • 最新的技術潮流
    • Microformats與HTML5協同使用
    • 介紹HTML5與CSS3的新特性

    Coding a CSS3 and HTML5 One Page Website Template(制作CSS3和 HTML5 一頁式站點模板)這篇文章介紹了如何利用CSS3 和jQuery的新特性制作HTML5 網頁模版。 HTML5 仍在完善當中,你也可以選擇性的下載XHTML版。

    Comprehensive video tutorial on HTML5(全面的HTML5視頻指南)這 是一個叫Brad Neuberg的工程師制作的HTML5教學視頻。

    Create modern Web sites using HTML5 and CSS3(用HTML5與CSS3打造時尚站點)這篇文章介紹了許多HTML5的功能和語法及API,還有CSS3的新的選擇器,效果和特性。最 后, 還將教你如何利用這些新特性開發一個網頁。當你讀完這篇文章,你就能用HTML5和CSS3開發一個自己的站點啦。

    Designing a blog with html5(用html5設計博客)許多HTML5 特性要結合JavaScript API一起使用,以增加網頁的互動性。但仍有一些新元素可讓傳統的Web1.0頁面更加語義化。為了學習這些,我們來看怎樣建立一個博客。

    Designing for the Future with HTML5 and CSS3 : Tutorials and Best Practices(為未來設計:HTML 5 和 CSS3 指南與最佳案例)這篇文章將介紹用 HTML5和CSS3搭建的幾個最佳站點。

    Design and Code a Cool iPhone App Website in HTML5(用HTML5設計和實現一個超酷 iPhone App 網站)

    Have a Field Day with HTML5 Forms(建立HTML 5表格)這篇文站將教你 如果用HTML 5 和高級CSS技術與最新的CSS3技術建立一個漂亮的表格。

    How To Create A Nice Blog Design Touching The Future(不用photoshop,完成網頁設計)

    How to Make All Browsers Render HTML5 Mark-up Correctly – Even IE6(怎樣讓所有瀏覽器都渲染HTML5標記——即使是IE6)這篇文章將教你如何用JavaScript和CSS,使 HTML5頁面向下兼容,即使是IE6也不例外。

    How to Make an HTML5 iPhone App(制作HTML5 iPhone 應用)這是 一篇針對iPhone的指導,但是許多技術也可用在兼容HTML5的手機瀏覽器上。

    HTML 5 and CSS 3: The Techniques You’ll Soon Be Using(HTML 5 和CSS 3:你將用到的技術)這篇文章使用HTML 5和CSS 3 搭建博客頁面。如果你已經熟悉html 和CSS,將很容易跟上。

    HTML5 for Beginners. Use it now, its easy!(HTML 5初學指南)給 所有具有基礎HTML知識的初學者的HTML 5 入門指南

    HTML5 Presentation這篇文章介紹了HTML5 的發展歷史和它的基本特性

    HTML5 Tutorial – Getting Started(HTML 5 入門指導)

    How to Build Web Pages With HTML 5(怎樣建立HTML 5網頁)

    Simple Website Layout Tutorial Using HTML 5 and CSS 3(HTML5和CSS3布局指南)HTML5最令人期待的新標簽包括<header>, <footer>, <aside>, <nav>, <audio>,同時它還包括畫圖,線下存儲數據,拖放等API。頁面布局將會更易理解。這里將介紹一個最簡單的HTML 5 布局頁面,用CSS3 設置樣式。最終結果如下

    Structural Tags in HTML5(HTML 5 結構標簽)HTML5 有許多標簽幫助網頁結構化,這能省去以網頁中許多div

    HTML5 Boilerplates(HTML 5模板)此文介紹了一些你能拿來就用的HTML5 模板文件

    HTML 5 canvas – the basics(HTML 5 基礎——Canvas)對HTML 5 Canvas使用方法的全面指導

    HTML 5 Tutorials(HTML 5 指南)

    Implementing HTML5 Drag and Drop: New Premium Tutorial(HTML 5 拖放)HTML5 的一個新特性就是拖放,不過IE早在5.5時代就支持拖放了,而HTML 5 的拖放也是基于IE的。本例將教你如果用拖放實現一個簡單的購物車界面。

    Preview of HTML 5這是一篇比較老的文章,介紹了HTML5的特性和優點。

    The HTML 5 Canvas For Flash Developers : Drawing(HTML 5 Canvas 的畫圖功能)

    The Power of HTML 5 and CSS 3介紹了HTML 5 與CSS3能創造的各種效果。

    View Source Tutorial: Sticky Notes With HTML5 and CSS3(HTML5 和CSS3 打造便利貼效果)

    webOS HTML5 Database Storage Tutorial(webOS HTML5 數據存儲指南)HTML5 的本地存儲功能將使數據存儲十分簡便。

    Yes, You Can Use HTML 5 Today!本文介紹了一些現已被支持的HTML 5 特性,對初學者十分有用。

    文章來源:NTT.cc
    翻譯:lovelyashes

    posted @ 2010-06-08 10:16 梁良 閱讀(241) | 評論 (0)編輯 收藏

    隔岸觀火 為你解讀Flash和HTML5那點事

    最近關于HTML5 吵得火熱,很多人認為HTML5出現會秒殺Flash,以至于在各大web前端開發論壇吵得不可開交。論壇里三言兩語說的不夠盡興,只好在自己一畝三分地 里敞開了說說。也當一次神棍,展望一下web前端開發的未來。首先這里所說的HTML5也不僅指HTML5本身,而是泛指HTML5、 CSS3、 JavaScript以及新的瀏覽器API所包含的整個web前端技術。

      誰需要HTML5?

       Google最需要!Apple的Jobs也需要。但這兩個肯定各懷鬼胎。微軟無所謂了,反正他還有Silverlight。

       Mozilla/Firefox非盈利組織,目標可能會高尚些,是w3c標準就要支持。Opera那點瀏覽器市場占有率估計還沒敢有太多想法。

       Google的云計算帝國就差一個支持 RIA(Rich Internet Applications)富互聯網應用的客戶端了,試想HTML5得到普及,更多的應用轉向BS模式時,微軟帝國的桌面軟件生態環境必定受到很大威脅, 垂涎多年的Google一定是最大受益者。當在一臺操作系統免費的電腦上使用和MS Word差不多功能的免費Google Doc時,你還會掏錢買微軟的Word嗎?當你所有的辦公應用都只需要打開瀏覽器窗口時,你還會花錢買操作系統嗎?Google的Chrome OS操作系統界面已經說明了這個意圖。

      Jobs也需要HTML5,他是打著小算盤,想讓瀏覽器原生支持視頻音頻,這樣iPhone、 iPad就不用嵌入Flash,Jobs當然不能讓Flash進iPhone OS,要不然App Store里的游戲誰去買?同時,如果大量的應用都能基于瀏覽器實現時,用戶就不會被Windows的桌面應用套牢了。漂亮的Mac電腦誰不喜歡。

       他們選擇 HTML5都是為了更大野心,期望HTML5帶來整個軟件生態環境的改變,同時避開不受自己控制的Flash。

       Macromedia和后來的當家Adobe把握住了互聯網應用的發展需求,不斷的完善的Flash,使之已經超越了瀏覽器本身的功能。各大瀏覽器廠商也 看到這種應用的需求,不甘于一個本該瀏覽器實現的功能,由一個幾兆大小的 Plugin實現了,并玩的風生水起。于是不遺余力的推進HTML5,并且矛頭直指Flash。

      用戶想要HTML5嗎?用戶要的不是技 術,是應用,是體驗。如果你能拿Ajax實現一個開心農場,我想沒誰會在乎它是不是Flash做的。

      開發者想要 HTML5嗎?那需要一個成熟的HTML5+CSS3+JS的開發環境,需要各個瀏覽器提供統一的用戶體驗,即標準的完全兼容。還需要增加新的學習成本。

       Flash 的優勢?

      Flash比HTML5強在哪?性能,功能?如果說HTML5將擁有和Flash所有內置對象類 似的DOM 呢,還有GPU的2D、3D加速呢?這不是沒可能,畢竟HTML5還只是草案。當然Flash也能不停的更新。

      開發群體

       我認為Flash的優勢是在開發人員上,十多年的積累,有眾多優秀的藝術家、程序員和互動設計師集中在Flash平臺上做互動媒體開發。也使無數的類庫 有了AS版,如FLARToolKit,Touchlib,OpenCV這些互動、圖像分析的c++庫都移植到了Flash平臺。在RIA應用上有相對成 熟且開源的Flex框架,越來越多的企業在嘗試使用Flex替代Ext等 Ajax框架,為客戶提供更好RIA應用體驗。

      持續發展

       FlashPlayer 是一個封閉的系統,是由Adoeb獨家控制,相對于開放的HTML5標準這是弱勢,也是技術上的優勢,它可以很靈活,可以隨時加入新技術,新功能。而 HTML5是一個公開標準,既然是標準就意味著不會經常改動。Flash的改進升級只需要用戶升級FlashPlayer插件,插件的升級相對用戶來說, 是輕量級的。HTML標準的改進意味著升級瀏覽器,這是相對重量級的用戶操作,尤其是還有很多人不明白什么是瀏覽器。

      HTML5開放標 準一旦確定下來,就會有一個很長的使用周期,今天看是足夠先進的功能,十年后呢。就像當年我們用著HTML4+CSS2+JS沾沾自喜以為足夠表現Web 應用時,誰能想到今天Flash不斷改進所開拓的天地呢。或許十年后我們又該討論HTML6秒殺Flash的話題了。

      超越web應用

       如果當年SUN能重視Java Applet,或許就沒有Flash的今天,SUN也不會淪落到被收購的境地。而如今Adobe AIR更是讓Flash超越Java Applet,讓Flash超越了web,脫離了瀏覽器。Flash到如今功能不斷增強,在多媒體領域也在不斷地壓縮自家老大哥Director的應用空 間。多點觸摸、人臉識別、Socket通訊同步、AR增強現實、實時視頻等等功能在Flash平臺上的實現,讓越來越多的互動多媒體項目采用Flash方 案。

      希望Adobe繼續能擴展Adobe AIR平臺的功能,提高性能。能有越來越多的跨平臺桌面應用在AIR上實現。

       Flash 的劣勢?

      FlashPlayer版權私有。

      swf文件的內容相對封閉,搜索引擎不友 好。

      插件的安全隱患。

      相對與Ajax技術的學習曲線及學習成本。

      FlashPlayer 94%裝機率!=100%。

      iPhoneOS明確不支持Flash,而iPad首日12萬的訂單,預計將會開啟一個大市場。

       不支持3D硬件加速。FlashPlayer如果支持3D硬件加速,必將重寫現有的2D矢量引擎,鑒于ShockWave 3D的表現,FlashPlayer 硬件3D,很難有很好的用戶體驗。

      HTML5拿什么取代Flash

       功能:HTML5目前還只是草案,從已提交的內容來看,增加了許多更具語義的標簽,新的標簽意味著在DOM中增加新的類,如果把瀏覽器比做一個大的 Flashplayer,HTML5無非就是在增加新的類,新的API。然后由JavaScript來調用這些API。如果HTML5要完全取代 Flash,至少要提供和Flashplayer10相似的功能。這應該不是問題,添加WebSocket 、WebSQL、WebGL……甚至WebQt、WebMFC都是可以無盡暢想的。或者干脆把瀏覽器就做成一個大虛擬機,完成Java的桌面遺愿。如果有 足夠的需求動力,這些都不是問題。

      性能:在很多 HTML5激進派的文章里,都痛指目前Flash的效率低下,導致瀏覽崩潰。真的是Flash效率低到如此不堪嗎?肯定不是,只是Flash的濫用和參差 不齊的Web前端開發人員造成的。同樣如果用IE的JS引擎寫一個Ajax版的XX農場,如果所有頁面廣告動畫都用JS來寫,我想那才叫效率低下。如果真 的Flash效率低,為什么那么多網頁游戲都不是Ajax做的呢?為什么很多優化的很好的Flash3D游戲場景都很流暢,而一個2D的XX農場就能拖慢 你的酷睿2呢?不明真相的半吊子開發人員總是把瀏覽器不響應和崩潰歸結于Flash效率低下。所以未來HTML5要取代Flash 必須有一個高效的2D/3D圖形文字渲染引擎,和一個高效的JavaScript引擎。這樣才能帶來更好的用戶體驗。這些,眾瀏覽器廠商都準備好了 嗎?Chrome和Opera似乎正在走這條路。

      兼容性:HTML4標準已經十多年了,今天我們還會寫下fxckIE6的CSS樣式 名。瀏覽器的兼容性會是最大的問題,尤其是加入n多特性后的HTML5和CSS3。IE,Firefox,Chrome,Safari這些瀏覽器背后的大 佬們,怎么去協調呢?這有個矛盾,開發差異化的產品,卻要提供同質化的功能。JS性能、標簽瀏覽,同步收藏,插件這些提高用戶體驗的功能,都是這些差異化 的方向。如果再出現類似ActiveX這類IE only的東西,那還不如維持HTML4這種方式不變。

      開發模式:Flash IDE將無數優秀的藝術家、UI設計師和互動程序設計師團結在一起,最終成就了Flash,這也與Macromedia和Adobe在圖形設計和互動設計 群體中的號召力不無關系。HTML5的互動會將JavaScript提高到一個新的高度,這必將需要一個成熟的開發環境。繼續DW+Firebug?或者 DW升級為全新的HTML5互動開發IDE,或者微軟VS來干這件事,或者是Eclipse?成熟的開發環境才能聚攏人才,才能激發無窮的創造力,帶來更 多的內容。豐富的內容自然帶來更多用戶。

      部署:這是最重要的一個問題,沒有這一步,一切都是零。Flash新版本怎么部署?在90%多 桌面占有率的基礎上更新插件就OK。HTML5怎么部署,更新瀏覽器,這個有點難,看看頑強的IE6。聽到有人建議微軟在系統 ServerPack里包含IE更新,只能說這想法很好,但是反壟斷的大錘一定會把微軟砸死。那怎么引導用戶去升級瀏覽器呢?對于互聯網“Core User”來說不是問題,目前支持HTML5和CSS3部分特性的Chrome開發版,很多人都在用了。但是那些“Light User”呢,可能連天天看網頁用的這個窗口跟瀏覽器是什么關系都不明白。這需要一個HTML5的殺手級應用去引導,“Light User”幾乎不會以技術為導向去升級瀏覽器的,他們只會以應用需求為導向去升級。比如YouTube不再支持IE6用戶,這樣喜歡YouTube視頻的 用戶會去升級IE6再來訪問。用戶不會是因為IE6的HTML標準兼容差而選擇更新IE6,這是必然的。那HTML5的殺手級應用在哪里呢?或者說都有 Youtube這樣的影響力和號召力嗎?而沒有這種號召力的網站,誰會貿然率先支持HTML5來要求用戶升級瀏覽器嗎?這些網站之間必定會陷入囚徒困境 中,在重復的囚徒困境中,博弈被反復地進行。最終才會全面進入 HTML5時代。這個過程或者很短,也可能很長。畢竟現存的Web前端還沒到不堪的地步,反倒是由于Flash這些插件和jQuery這些JS框架弄的有 聲有色。

      總結

      HTML5不是用戶應用的迫切需求,更多是廠商試圖改變軟件生態格局的戰略需求。
    HTML5的兼容性鑒于各大瀏覽器的以往表現,有待觀望,不宜立即遷移應用。
    HTML5需要一個成熟完整的開發環境,記事本+瀏覽器對付不 了。
    HTML5功能的暴增,瀏覽器必須有一個高效的圖形引擎和腳本引擎。
    HTML5需要殺手級應用來吸引和引導用戶升級瀏覽器, 最終完成HTML5終端的部署。
    Flash是一個不斷在發展的技術,有很強的靈活性,HTML5不可能完全取代Flash,眾多的開發人員也 不會斷然拋棄Flash。

      希望Adobe AIR能有更好發展,使Flash能超越瀏覽器Web應用,跨越操作系統,有更好發展,更多應用。

    文/IT168

    posted @ 2010-06-08 10:14 梁良 閱讀(246) | 評論 (0)編輯 收藏

    HTML5 到底是什么?

    新聞來源:webmonkey.com
    除非你與世隔絕,否則,一定聽到過關于 HTML5 的各種聲音,HTML5 表面上看是用來取代 Flash Web 視頻的,然而,它的使命遠不止此。HTML5 是下一代 Web 語言,它不單單是一種標記語言,更為下一代 Web 提供了全新功能,并將引領下一代 Web 實現類似桌面的應用體驗。

    HTML5 主要新功能

    • 本地音頻視頻播放
    • 動畫
    • 地理信息
    • 硬件加速
    • 本地運行(即使在 Internet 連接中斷之后)
    • 本地存儲
    • 從桌面拖放文件到瀏覽器上傳
    • 語義化標記
    HTML5 應用現狀
    現今,各大瀏覽器對 HTML5 的支持各有千秋,我們期待著他們在一兩年內趨向一致,你可能以為,既然這樣,現在大概很少人在使用這個未來的標準,事實并不如此,HTML5 現在已經被廣泛應用,正如 William Gibson 所言,未來的 Web 已經來臨,只是還沒有被廣泛采用。

    你可能不知道,Google 的首頁也使用 HTML5,不過,目前,他們還僅僅使用了 HTML5 的 doctype,頁面的其它部分還是舊代碼,但 Google 在他們的各種應用中已經在廣泛采用 HTML5。最典型的例子是 Gmail,HTML5 的離線存儲使用戶即使在離線狀態下也可以使用 Gmail,另外,Google Docs 也使用離線存儲,同樣使用離線存儲的其它廠商的類似應用還包括 Zoho 的辦公套件和 Wordpress 的博客平臺。如果你對 HTML5 的離線存儲功能感興趣,可以看一看 Mark Pilgrim 的 how to add offline support to your apps 一文。
    Scribd 基于 HTML5 的文檔閱讀器


    上圖是 Scribd 的新文檔閱讀器,全部基于 Web 標準,并未借助 Flash。

    除了視頻,HTML5 還可以在多個方面取代 Flash,文檔共享站點 Scribd 最近宣布,他們將使用 HTML5 取代 Flash 實現文檔閱讀器,Scribd 是 HTML5 結合 CSS 所能實現的驚人功能的最好例子,他們還使用 @font-face 實現個性化字體,另外,在翻頁時的變換效果也完全基于 CSS3。這些 Web 標準工具的結合使用,使 Scribd 實現了從 Flash 向純 HTML 的過度,同時并沒有犧牲文檔在結構,字體,內嵌圖片,圖層等方面的功能。Scribd 的最新文檔閱讀器甚至支持 IE6,這里有一個實例,使用純 HTML 輸出復雜的公式

    可惜被墻了 - 譯者
    HTML5 Canvas 與 HTML5 視頻


    基于 HTML5 Canvas 對象的 Invaders 經典游戲

    雖然,Scribd 對 Canvas 的應用已經出神入化,我們還能找到更多這樣的站點。Canvas Demos 有一系列關于 Canvas 的應用,從各種在線游戲,到從網頁上提取顏色Rainbow 應用。

    關于視頻,最典型的例子莫過于 YouTubeVimeo,他們都提供了 HTML5 版本。
    HTML5 地理信息定位


    點擊地圖中,黃色小人上方的圓圈,可以告訴 Google 地圖你的地理位置

    HTML5 的另一個功能是地理信息定位功能,一些瀏覽器提供了 geolocation API ,這個 API 也由 W3C 管理,可以結合 HTML5 實現你當前地理位置定位。Google Maps 在使用該功能,在 Google 地圖上,有一個小圓圈,點擊一下,就能告訴 Google 地圖你現在的地理位置。目前,Geolocation API 并沒有被眾多桌面瀏覽器廣泛采用(只有 Chrome 和 Firefox 3.6+ 采用了),但 Google Gears 插件可以幫助那些舊瀏覽器實現該功能。

    Twitter 借此實現地理信息感知的 tweets 消息,當瀏覽器支持 geolocation API 的時候,會自動使用該 API,否則,則使用 Google Gears。
    HTML5 的更多意義
    HTML5 的意義遠不止上面這些,它最大的意義在于改變了 Web 文檔的結構方式,借助 header, footer, section, article 這些標簽,我們可以實現更具結構化,語義化的 Web 文檔。這樣,搜索引擎可以更容易索引 Web 站點,我們也可以搜索到更快,更準確的信息。

    已經有數不清的站點在使用 HTML5 新標簽,你可以在 HTML5Gallery 找到大量這樣的站點。要想現在使用 HTML5 的新結構,不妨看看這篇 HTML5 教程

    另外,借助 Microdata, HTML5 還可以實現更強大的語義結構,這個標準化的數據格式(類似 microformats),可以讓你的站點不僅能夠提供數據,還能提供數據定義。Microdata 對瀏覽器和搜索引擎都意義深遠,搜索引擎可以借助 Microdata 發現你網絡中的好友,而瀏覽器則可以藉此連接到你的社會網絡好友站點,你可以在 Google 的 Rich Snippets Testing Tool 對此進行體驗。
    延伸閱讀


    本文國際來源:Web Monkey Where on the Web Is HTML5? (原文作者:Scott Gilbertson)

    中文編譯來源:銳商企業CMS 網站內容管理系統 官方網站

    posted @ 2010-06-08 10:13 梁良 閱讀(256) | 評論 (0)編輯 收藏

    詳解HTML的發展史

    HTML是Web統一語言,這些容納在尖括號里的簡單標簽,構成了如今的Web,1991年,Tim Berners-Lee編寫了一份叫做“HTML標簽”的文檔,里面包含了大約20個用來標記網頁的HTML標簽。他直接借用SGML的標記格式,也就是 后來我們看到的HTML標記的格式。本文講述了HTML這門Web標記語言的發展簡史。

    從IETF到W3C:HTML4之路

    HTML1并不曾存在,HTML的第一個官方版本就是由IETF(互聯網工程任務組)推出的HTML2.0。問世之前,這個版本中的很多細則已經被 實現,比如,1994年的Mosaic瀏覽器已經實現了在文檔中嵌入圖片的方法,后來HTML2.0便吸納了img這個標簽。

    后來,W3C取代IETF的角色,成為HTML的標準組織,1990年代的后半頁,HTML的版本被頻繁修改,直到1999年的HTML4.01, 至此,HTML到達了它的第一個拐點。

    XHTML1:XML風格的HTML

    HTML在HTML4.01之后的第一個修訂版本就是XHTML1.0,其中X代表“eXtensible”,擴展,當然也有人將之解讀為 “eXtreme”,極端。XHTML1.0是基于HTML4.01的,并沒有引入任何新標簽或屬性,唯一的區別是語法,HTML對語法比較隨便,而 XHTML則要求XML般的嚴格語法。

    使用嚴格的語法規范并非壞事,要求開發者使用單一的代碼風格,比如,HTML4.01允許你使用大寫或小寫字母標識標記元素和屬性,XHTML則只 允許小寫字母。XHTML1.0的推出剛好碰上了CSS的崛起,Web開發設計者們開始意識到Web標準問題,基于XHTML的嚴格語法規范被視為編寫 HTML代碼的最佳實踐。

    W3C推出XHTML1.1

    如果說XHTML1.0是XML風格的HTML,XHTML1.1則是貨真價實的XML。這意味著XHTML1.1無法使用 text/htmlmime-type直接輸出,然而,如果Web開發者使用XMLmime-type,則當時的主流瀏覽器,IE則壓根不支持。看上 去,W3C似乎正在與當時的Web脫節。

    出力不討好的XHTML2

    對W3C而言,到了HTML4已經是功德圓滿,他們的下一步工作是XHTML2,希望將Web帶向XML的光明未來。雖然XHTML2聽上去和 XHTML1類似,它們卻有很多差別,XHTML2不向前兼容,甚至不兼容之前的HTML。它是一種全新的語言,赤條條來去無牽掛。這實在是一場災難。

    WHATWG:與W3C決裂

    W3C閉門造車的作風引起了一些人的不滿,來自Opera,Apple,以及Mozilla的代表開始表達反對聲音。2004年,Opera的 Ian Hickson提議在HTML基礎上進行擴展以適應新的Web應用,該提議遭到W3C的拒絕。于是,他們自發組織成立了超文本應用技術工作組,就是 WHATWG。

    從WebApps1.0到HTML5

    從一開始,WHATWG就和W3C走不同的路線,W3C對問題的討論是集體投票,而WHATWG則由主筆IanHickson定度。表面上 看,W3C更民主,然而事實上,各種內部紛爭會使一些決議限于泥潭,在WHATWG,事情的進展會更容易,不過,主筆的權力并非無限大,他們的委員會可以 對那些過于偏執的主筆進行彈劾。

    一開始,WHATWG的主要工作包括兩部分,Web Forms 2.0和Web Apps 1.0,它們都是HTML的擴展,后來,他們合并到一起成為現在的HTML5規范。

    在WHATWG致力于HTML5的同時,W3C繼續他們的XHTML2.0,然而,他們慢慢地陷入困境。

    2006年10月,Web之父Tim Berners-Lee發表了一篇博客文章,表示,從HTML走向XML的路是行不通的,幾個月后,W3C組建了一個新的HTML工作組,他們非常明智地 選擇了WHATWG的成果作為基礎。這一轉變帶來一些困惑,W3C同時進行這兩套規范,XHTML2和HTML5(注意,W3C的HTTML5在5之前有 個空格,而WHATWG的HTML5則沒有空格),而WHATWG也在進行著同樣的工作。

    XHTML已死:XHTML語法永存

    這一混亂局面到了2009年開始變得清晰,W3C宣布終止XHTML2的工作,這是一份關于XHTML2的遲到的訃告。這一消息被那些XML的反對 者視為珍寶,他們借此嘲笑那些使用XHTML1規范的人,然而他們似乎忘記了,XHTML1和XHTML2是截然不同的東西。于此同時,XHTML1規范 的制定者擔心,XHTML1中的嚴格語法規范會被HTML5棄用,這種擔心后來證明是多余的,HTML5既支持松散語法,也支持XHTML1般的嚴格語 法。

    HTML5路線圖

    HTML5的現狀是,它不再象以前那樣讓人困惑,然而仍不夠明朗。有兩個組織在同時制定它的規范,這兩個組織有著完全不同的行事風格,WHATWG 是先買后嘗,W3C是先嘗后買,他們形成了一個不太靠譜的聯姻,最終人們必將面臨一個HTML5還是HTML5的問題。

    更讓開發者困惑的是,他們什么時候才可以試水HTML5。

    在一次訪談中,Ian Hickson提到了2022,表示要到那時HTML5才會形成"推薦標準",此話一出,立刻招來Web設計者們的憤怒,盡管他們不知道推薦標準時什么意 思,但他們明白,2022已經是猴年馬月的事了。

    這還不算,更重要的是,這個推薦標準涉及兩套規范,考慮到HTML5標準的規模,這個日期還是太樂觀了,畢竟,各大瀏覽器以往對既有標準的兼容并不 遂人意,想當初,IE花了10年才接納abbr這個標簽。

    2012年,HTML5會被接納為候選標準,這將是HTML5真正開始發力的日子。對Web開發設計者來說,這并不重要,重要的是瀏覽器的支持,就 像CSS2.1,當有瀏覽器開始支持這一規范的時候,就有開發設計者在使用了,倘若必須等到所有瀏覽器都支持才開始入手,恐怕我們現在還在等待中。

    HTML5也一樣,并不會有一個時間點,宣布HTML5已經準備妥當,相反,我們會先開始使用它的部分功能,HTML5并不是一個從零開始全新的東 西,它是舊的HTML標準的改進,事實上,不管你正在使用的HTML是哪個版本,你已經在使用HTML5了。

    文/IT168

    posted @ 2010-06-08 10:11 梁良 閱讀(308) | 評論 (0)編輯 收藏

    5個實用的CSS3實例

    對于設計人員和開發人員來說,CSS一直是web設計過程中重要的一部分,隨著CSS3的出現以及越來越多的瀏覽器對它的支持,設計師們有了 更多的選擇。用純CSS也可以實現各種各樣很酷的效果了,甚至是動畫。雖然有些效果不能跨瀏覽器(甚至是支持CSS3的瀏覽器)運行,有些只是展示并沒什么實際 用途, 但僅用CSS實現出的這些效果似乎沒什么可以挑剔的。

    CSS3

    這里有5個使用CSS3實現的常見效果,你可以馬上動手試試看。

    1. CSS3按鈕

    CSS3按鈕

    你可以創建一些大小、顏色不同的元素(如按鈕),而不用每次都準備一個背景圖片。 ZURB上有教你創建CSS3按鈕的詳細文章,有興趣可以去看看。利用RGBA做出的陰影效果真的很棒!

    2.CSS3柱形圖

    CSS3柱形圖

    Ben Lister選列了很多實用的CSS3技巧,包括這個看起來相當不錯 的3D柱形圖。使用-webkit-transform或-moz-transform以及指定的偏移,你可以用CSS做出和圖片一樣令人印象深 刻的效果。

    3. CSS3下拉菜單

    CSS3下拉菜單

    WebDesignerWall的Nick La展示了如何創建一個漂亮的CSS3彈出式下拉菜單,他展示了使用漸變圖片和CSS創建的兩個版本的菜單。

    4. CSS3引用氣泡

    CSS3對話氣泡

    這些由Nicolas Gallagher創建的純CSS引用氣泡看起來很棒,你可以稍加修改作為你網頁上的blockquote元素。

    可以去Gallagher的demo頁面看看效果,尤其注意那個twitter的氣泡,比twitter官方使用嵌入的方法好。

    5. CSS3相冊

    css3相冊

    蘋果剛剛推出了一些展示HTML5網頁效果的頁面(HTML5和CSS3往往被聯系在一起)。雖然這個使用CSS3創建的 Polaroid-style相冊有些過渡和3D效果無法在所有的瀏覽器中運行,不過這真的是一個很酷的CSS3過渡效果的示例。

    想看更多CSS3和HTML5的demo,請點擊這里

    posted @ 2010-06-08 10:10 梁良 閱讀(269) | 評論 (0)編輯 收藏

    八大看點 蘋果iPhone 4升級詳解

    美國時間2010年6月7日上午10點(北京時間6月8日凌晨1點),蘋果公司在位于美國舊 金山的MosconeWest會展中心召開了2010年全球開發者大會(WWDC2010),會上喬布斯再一次為全世界手機用戶帶來了驚喜,發布了第四代蘋果iPhone——iPhone 4。

     

    蘋果iPhone 4在外形方面相比之前的3G版以及3GS作出了一定的改變,首先其取消了原有的弧形邊緣設計,轉而采用了棱角分明的全平面后蓋,同時機身左側的音量鍵轉為 分離式設計而變為了兩個圓形,另外機身上的電源、靜音等按鈕以及側邊框全部采用了金屬材質打造。值得一提的是iPhone 4的金屬材質邊框將被用作手機接收各種信號的天線,這一設計可謂史無前例。此外,iPhone 4還是世界上最薄的智能手機,它比3GS足足薄了24%,僅有9.3mm。下面就來看看其具體的內在升級。

    變化一:屏幕

    第四代蘋果iPhone在屏幕尺寸依舊為3.5英寸,而正如之前外界所預測的一樣,四代 iPhone的屏幕分辨率達到了驚人的940×640像素,且屏幕材質采用了與iPad相同的IPS/FFS液晶屏,在顯示效果上更具視覺沖擊力。

     

    變化二:硬件方面

    第四代蘋果iPhone將采用與iPad相同的A4處理器,其主頻可達到1GHz,運行速度 更快, 也能夠更加高效的支持iOS 4新版系統。

     

    變化三:續航能力

    iPhone 4將有著更好的續航能力,其支持7小時3G通話,6小時3G網絡瀏覽,10小時WIFI瀏覽,10小時視頻播放,40小時的音樂播放,同時理論待機時間長 達300小時。

     

    變化四:3軸陀螺儀

    iPhone 4將內置3軸陀螺儀,它可以與加速器和指南針一起工作,可以實現6軸方向感應。這對游戲來說太完美了。

     

    變化五:拍照功能

    蘋果iPhone 4的攝像頭由原有的320萬像素提升至了目前主流的500萬像素并支持5倍數碼變焦、背側照明及觸控對焦,配備閃光燈,支持30幀每秒的720P視頻拍 攝。

     

    變化六:系統方面

    蘋果iPhone 4將采用已先一步發布的iPhone OS 4.0系統(iOS 4),其包含了多任務處理、文件夾整合、無分類郵件、等多項重大升級。

     

    變化七:iBooks

    蘋果正式將iBooks引入到iPhone 4當中。iPhone將和iPad共用同一個書庫,使用者只需購買一次,就可以在統一賬號下使你的iPhone和iPad同時可以閱覽圖書。

     

    變化八:iAd

    蘋果開始將iAd移動廣告服務植入iPhone 4,給用戶帶來前所未有的廣告體驗。iAd會讓你體會到廣告并不是枯燥乏味的,甚至在iPhone上的廣告是你見過的最好的廣告,你可以直接通過廣告定制 全新的商品。

     

    除此之外,蘋果iPhone 4還首次加入了前置攝像頭并支持視頻通話,不過這并非3G網絡,而只能基于Wifi基礎上,蘋果稱這一服務叫做Facetime。

    另外該機將會與3G版iPad一樣使用micro-SIM卡(卡槽被在設計屏幕右側,而非過 去的屏 幕上方。),這意味著未來四代iPhone的水貨版本在國內需要剪卡后方能使用。而對于那些同時使用新一代iPhone和其他型號手機的用戶來說,也同樣 可能會存在換卡的麻煩。不知道中國的運營商在將來將如何應對。

    posted @ 2010-06-08 09:56 梁良 閱讀(226) | 評論 (0)編輯 收藏

    [ZT]胡搞瞎搞JScript記(用JScript代替批處理文件)

    今天下午項目經理老蔡同志分配給我一個光榮任務,做一個批處理文件把某個文件夾下的.exe文件和所有子目錄下的.exe文件復制到另外一個文件夾,并且不復制文件夾結構,也就是所有都放到目標目錄下不分級。

        上網找了會資料沒找著,后來在命令提示符下隨便輸入幾個自己知道的命令看看幫助,發現XCopy很容易就可以實現復制指定目錄下文件與所有子目錄下文件到目標目錄中,于是簡單寫了一段:

        xcopy F:\A\*.exe F:\B\ /S

        運行了下,好像可以哦~~于是就跟老蔡說OK啦!結果自己再測試下發現xcopy會把子目錄結構也復制過去。。。。暈,那還不如自己復制粘貼呢。于是在命令行提示符窗口下又看了會xcopy的參數說明,就是找不到不復制目錄結構的。。。

        怎么辦。。。還不如我寫個C#程序來得快呢。。。可是要用這個程序的同事機器上好像沒有.NET運行時啊,.NET運行時有時候就是很氣人,關鍵時候經常發現對方沒有裝.NET運行環境,比如有時候要跟人家吹牛我做了什么好玩的,運行不了興致都沒了。

        用C寫吧,打開VS,建了個命令行項目,然后。。。。怎么寫?忘記啦。。。寫C語言已經是快3年前的事情了,獲取目錄和子目錄我都不記得用什么函數了。上網找了會,各式各樣都有,唉,真煩~~不用C寫了。

       想起昨天晚上翻舊電子書時看到《Windows腳本技術》里有講到用JScript操作文件呢,于是趕快找出這本書。模仿里面的代碼寫了一段
       
    var fso, f1;
    fso 
    = new ActiveXObject("Scripting.FileSystemObject"
    );
    f1 
    = fso.GetFile("c:\\test.txt");

       保存為.js文件, 雙擊,怎么又是用編輯器開了。。。右擊,里面有個“在命令行中運行”,這個應該不是默認的吧,不管了,運行看看。結果啥也沒有出現。。。

        趕緊再看看書上怎么說,原來下一章才開始講Windows腳本舍主,嘿嘿,還有一節叫:運行腳本,看來我太心急了,再繼續看看。

        原來可以做一個.wsf文件運行啊,而且還可以混合不同語言的腳本。。神奇啊。

        里面有這樣一段示例代碼:
        
    <job id="IncludeExample">
       
    <script language="JScript" src="FSO.JS"/>
       
    <script language="VBScript">
          ' 獲得驅動器 C 的可用空間。
          s 
    = GetFreeSpace("c:")
          WScript.Echo s
       
    <sScript>

    </job>

        于是我舉一反三,自己做了一個,嘿嘿,經過一番調試,終于做了一個可以復制目錄和子目錄下所有.exe文件到指定目錄的wsf文件,哈哈。

    <job id="IncludeExample">
        
    <script language="JScript" >
            
            
    var file = "*.exe";    //要復制的文件
            var des = "F:\\B";    //目標目錄

            
    var fso,  f, fs, fc;

            fso 
    = new ActiveXObject("Scripting.FileSystemObject");    //文件系統控件

            
            
    try

            
    {
                fso.CopyFile(file, des);
            }

            
    catch(ex)
            
    {
            }


            f 
    = fso.GetFolder(".\\");

            fc 
    = new
     Enumerator(f.SubFolders);

             
    for ( ; !
    fc.atEnd(); fc.moveNext())
            
    {
                
    try

                
    {
                    fso.CopyFile(fc.item().Path 
    + "\\" +
     file, des);
                }

                
    catch(ex)
                
    {
                }

            }


        
    </script>
    </job>

        復制一段《Windows腳本技術》中對WSF文件的定義:

    Windows 腳本文件 (*.wsf) 是含有可擴展標記語言 (XML) 代碼的文本文檔。它綜合了幾個可增強腳本靈活性的功能。由于 Windows 腳本文件不是特定于引擎的,因此它們可包含與 Windows 腳本兼容的任何腳本引擎中的腳本。它們充當容器。

    使用 .wsf 文件,可以在創建腳本時使用以下功能:

    .wsf 文件支持 實現
    Include 語句 將函數從 VBScript 或 JScript 文件合并到 Windows 腳本宿主項目中。
    多引擎 每個文件使用多種腳本語言。
    類型庫 將常數添加到代碼中。
    工具 使用任何 XML 編輯器編輯文件。
    一個文件中的多項作業 將所有的代碼存儲在一個位置。

    posted @ 2010-06-08 00:25 梁良 閱讀(568) | 評論 (0)編輯 收藏

    [ZT]教你怎樣快速DIY自己的博客園SKIN

        授之魚,不如授之漁。我共享100個根據自己審美眼光制作的Skin還不如教大家怎么自己動手做呢~~畢竟大家審美眼光不一樣,在加上我本人又是色盲實在作不出什么好外觀來。

        工欲善其事必先利其器。首先得先教教大家怎么用先進武器,要不然用“查看源文件&抓圖”的方法做一個Skin恐怕要一整天。

        首先出場的是微軟的
    IEDevToolBar,這是一個免費的轉為Web開發人員制作的IE插件,做博客Skin時用到的主要功能有:

        1.以樹結構查看CodeDom,并查看每個Element屬性,可以使用鼠標點擊選中Element,這個在我們制作Skin時很有用
        2.生成圖片報表,就是將頁面上說有出現的圖片生成一份詳細的報表,這樣就省的我們自己去找圖片路徑和量圖片大小等等。
        3.高亮顯示表格,表格單元,Div等的邊框,這個在我們調整布局時也是很有用
        4.頁面尺子,可以然你任意在頁面上度量長度,這個是大大的提高了我們的工作效率,不用為了量個長度而抓圖再用畫圖工具量

        現在就趕快
    下載裝上吧,就算你不做Skin,我也強烈推薦你裝上,Web項目調整界面時它真的是用處很多啊

        下面出場的是
    ColorPic,這也是一個免費的軟件,用于拾取顏色的,鼠標移動到哪里就拾取哪里的顏色,可以對拾取的顏色分組,這樣我們就可以把需要的顏色都一次性拾取完,再慢慢的用了。拾取顏色和重新拾取時都是用Ctrl + G 快捷鍵,其它功能靠大家自己琢磨了。

        最后就是編輯器了,如果你是CSS高手那文本編輯器就夠了,如果你是和我一樣的業余水平,我建議還是選一個可以智能提示的編輯器,比如Dreamweaver或者用Visual Studio2005/2003也是可以的。

        工具搞定啦,開始來熱身吧,先講講博客園的CSS怎么自己定義,有些新來的朋友可能還不知道。

        先進入你的博客的后臺管理,然后選擇“選項”頁,接下來選擇“Configure”項,現在看到“通過CSS定制頁面”項了吧,你可以再這個文本框里放自己的CSS,記得不用加<style>標簽。

        不過我用的不是這種辦法,我是把自己的CSS加上<style>標簽放到“子標題”里,這是因為我原先用第一種辦法,好幾次遇到CSS效果突然顯示不出來,恢復到默認模板的樣式,我也不懂為啥這個得問DuDu哥啦,反正我用第二種方式就都不會再有這樣的問題了。

        光有CSS還不夠,博客園的自定義CSS是于原模板有關系的,比如一些id和class的命名在各個模板中是不一樣的,所以針對某個模板制作出來的CSS型Skin一般是不能通用的。

        接下來要講講博客園CSS定義習慣,一般模板上面會把頁面分成3大塊,一個是頂部標題,一個是菜單條(就是放文章分類和日歷,公告的那一條),一個是文章列表的主體。

        這3個大塊一般有自己的id或者class,如果是id定義CSS的話就使用#id這樣的格式,比如:
        #main
       {
            border:1px solid #FF0000;
            width:100%;
       }

    如果是class那就是.class格式了,比如:
        .main
       {
            border:1px solid #FF0000;
            width:100%;
       }

    (對CSS還不甚了解的朋友快去補補吧,嘻嘻,其實偶對CSS也是一竅不通,都是瞎搞自己博客的外觀積累的一點點經驗

        每個模板都不一定用Class還是用ID,也不一定這3個大塊叫什么名字,我們如果用“查看源文件”那找起來可沒那么快了,現在就可以使用IEDevToolBar的View DOM功能了,View DOM提供了一個"Select Element by Click"功能,我們就可以使用鼠標選擇一個項,然后查看它的id了。

       

        抓到id和class名了就開始定義自己的CSS吧。

        首先需要把你的博客目前使用的模板的CSS文件下載下來,怎么下載?呵呵,“查看源代碼”大法咯,一眼就可以看到css文件了。

        下載下來后就直接根據你的需要修改吧,不過要注意!
    不要刪除原先的定義,比如border原先是定義成1px solid #FF0000,你不想要border的話,不要直接刪除boder定義,而要把border重新定義成0px none #FFFFFF,要不然不能覆蓋模板的CSS定義。

        呵呵,文章到此結束,你可以去自己定義自己的CSS了。(底下雞蛋,石頭亂飛)

        嘻嘻,其實真的已經夠了,可能唯一不夠的就是你的配色眼光和對CSS的熟練程度了。像我這種業余水準的人怎么配色和設計布局呢,呵呵,一句話:天下配色一大抄。

        我有時候路過好看的外國網站就用ColorPic去抓顏色然后配成自己的CSS,像我共享的幾個外觀都是從google的Blogger模板哪里抓取的配色,Blog布局一般都是那三大塊,很容易模仿過來的,有時候遇到ColorPic要抓連接的顏色時鼠標移動上去連接顏色變了,怎么辦。這時候就麻煩點抓圖,然后再抓圖上的顏色吧,人不可以太懶啦~~呵呵。

        嘿嘿,本來要抓張我偷Blogger模板顏色的罪證~~~結果抓取的時候ColorPic看不到~~那就沒辦法了,大家自己回去試哈。

        大家看完文章肯定都手癢了吧~~~祝大家DIY開心啦,做好了記得也發揚共享精神啊~~不共享也通知下,讓俺學習學習(保證不開ColorPic和DevToolBar),呵呵。

    posted @ 2010-06-08 00:23 梁良 閱讀(309) | 評論 (0)編輯 收藏

    蘋果與機器人–Iphone與Android 對比分析淺談

      自從Iphone橫空出世,就以簡單易用,并功能強大,作為智能手機的代名詞,直到Google推出Android 平臺,才棋逢對手;自此作為兩款經常拿來一起比較的手持移動平臺,做了粗略分析比較;

    1. 開發平臺

      目前開發智能手持平臺設備的app相對來說已經比較簡單。以Android手機Nexus One為例,它的處理器有1GHz,內存則有512MB,跟開發客戶端應用的感覺已經很類似。

      Iphone平臺
      對于Iphone平臺的開發,首先要熟悉Apple的 MAC OS或者是Unix系統的開發基礎,Iphone的開發工具Xcode并不支持Windows平臺,因此開發者首先要擁有一臺mac電腦;

      語言學習方面,熟悉C語言的工程師可以省一點力,因為在Objective-C中,可以直接編寫C程序,唯有用戶接口的部分,一定得仰賴 Objective-C。

      Android 平臺
      Android采用java開發,因此Android對系統資源的操作程度已接近PC客戶端開發。

      對于程序兼容性問題來看:
      Iphone 獨此一家,因此可以很好控制應用兼容性問題,而Android平臺的手機聯盟戰略,便有各家廠商的不同規格型號的機器,因而Google通過手機廠商統一硬件的規格手段達到兼容性的平衡。不過,也確實有開發者擔心Android的開放平臺,未來難保手機廠商不會因為自身的需求而有所調整,仍可能導致兼容性問題發生。

     

    2. 封閉和開放的審核機制

      Iphone平臺
      封閉和嚴格的審核一直都是Iphone做為Apple設計理念和保證app質量的評審手段之一;在app應用開發完成,上架App Store上前,Apple也必須審核軟件的內容,以避免包含色情與暴力,或者有已知Bug的軟件,影響整個市集的質量。

      由于iPhone軟件的銷售與安裝,只能透過App Store這個唯一的管道,有志進入IPhone市場的開發者,也不得不買賬。

      Android 平臺
      相較于Apple的封閉,Android就顯得開放許多,Android Market則是被動審查機制(只有被足夠多的用戶舉報,Google才會對此進行審核),程序上傳幾個小時后,使用者就可以下載。 事實上開發者不經由Android Market,也有其他途徑營銷。如:安卓市場。

      封閉與開放的作法各有好處,由Apple把關且鎖定銷售管道的作法,對消費者而言,可以確保質量;而開發者也省得比較各市集之間的優劣。

      而Android的開放作法,則有不設限的好處──開發者不用擔心Apple因為自身利益的考慮,而駁回軟件上架的申請。消費者的選擇自由度也高出很多。

     

    3. UI交互上差異

      1)硬件差異

      在傳統手機時代,用戶直接用鍵盤、按鍵操作數據。Iphone的操作有別于之前傳統手機的體驗,Iphone大觸摸屏概念推出,用戶可以直接對內容進行操作排除其他中間設備控制,降低用戶使用門檻,對內容操作也有很直接的體驗。

      Android則保留傳統手機的一些特征(返回、搜索、home、menu實體按鍵),也同樣有大觸摸屏;兩者之間的硬件差異,因此也決定了交互視覺上本質的差異;

      Iphone平臺
      Iphone遵從Apple極簡設計風格,用隱喻的視覺方式提示用戶進行使用操作,同樣也直觀表達下一步的操作流程。大部分操作直接和內容交互完成,用戶體驗統一連貫,典型案例:解鎖。

      Android平臺
      Android 有實體按鍵,承載其余過多的基本操作,將用戶停留在最重要的內容上,因為有更多硬件操作,也能有更豐富的表現,典型案例:軌跡球顏色提醒。
      缺點:部分操作,屏幕與按鍵之間來回轉換;

      2)title和導航指引

      手持移動設備的特性決定屏幕的有限,在應用程序的層級關系中如何指引用戶完成操作,便尤為重要;

      Iphone平臺
      應用程序有信息層級關系,Iphone利用title區域進行操作指引,title的左邊是返回。讓用戶明確層級之間的關系;
      反思,應用程序信息有較深的層級怎么辦,在開發過程中,不是一味導航復雜化,而是盡量減少關系層級;

      Android平臺
      Android,頁面的回退依靠實體返回按鍵,因此title區域不必要操作,在視覺上減小了高度,擴大了內容區域。
      缺點:沒有一個好的導航指引。

      3)分散與集合

      Iphone平臺
      為了避免一個按鍵承載過多功能,Iphone 的做法將菜單里的功能進行分解。
      缺點:視覺壓力大,界面所承載較多。

      Android平臺
      集合菜單選項,將由實體menu按鍵承載。同時也支持長按操作,對于承載信息的承載有更多的選擇。
      缺點:用戶門檻高,各個場景不同,所體現的菜單選項也不同,用戶溶入性較差,來回切換視覺焦點,沒有一致的體驗。

      4)風格樣式

      Iphone平臺
      Iphone有完整的統一,包括Itouch Iphone Ipad,有完整的視覺規范和較為統一的體驗。

      Android平臺
      因廠商的不同,有不同的視覺差異,并且各自的視覺規范也不同,例子:HTC  、Sony Ericsson
      缺點:硬件環境的不同,同一個應用開發,造成開發成本增大,例如:屏幕參數和精度不同(高精度、中精度、低精度),
      常見的分辨率就有:320X480  480X800  480X854

      5)長期發展

      Google 在提供基于云端、數據驅動的應用方面符合長期發展趨勢,而 Apple 的設備綁定則不是。Apple 在云端基礎設施方面是追趕者,比如他們正在打造自己的地點位置服務。

      Apple 在云端的經驗比較有限,特別是在算法取向的應用方面。相對應的是 Google 有如此龐大的數據資產,在算法取向應用方面的經驗非常豐富,這讓 Apple 在長期競爭中處于不利地位。

      Apple 的郵件、日程、地址簿等都為客戶端的延續,本質上是電腦同步到手機。而 Google 的對應產品生于網絡,總是實時同步。

      Apple 的優勢:軟件和設計專利,這些優勢是他們在 80 年代所沒有的。此外他們還有自己的殺手級應用,比如 iTunes 仍然是音樂應用的標桿,而且還是 podcast、語音書、電子書的中轉站。

      語音書和電子書也許會來到 Android Market,但很難想象 Android Market 會成為 iTunes 這樣的中轉站。

     

    小結:

      對于iphone或者是Android都各有優缺點。簡單的看來Google是開放的,今后發展有足夠的優勢;但目前看來Android平臺交互上不如Iphone更為直觀順暢,主要也是Apple在于細節上有足夠的表現和親和力。

      無論開發基于哪款平臺,都應該首要考慮該平臺的特性,以及該平臺的延續性。也避免在一個平臺上放置另一個平臺的操作習慣,至少在Android系統的界面上放置返回圖標,我覺得那是很多余的。

     

    參考文檔:

    [1] http://radar.oreilly.com/2010/01/the-nexus-one-vs-iphone.html
    [2] http://www.ithome.com.tw/itadm/article.php?c=60702&s=2


    (本文出自Tencent CDC Blog,轉載時請注明出處)

    posted @ 2010-06-08 00:20 梁良 閱讀(309) | 評論 (0)編輯 收藏

    [轉載]KPI心理學

    原文地址:http://jerrylovesrebol.blogspot.com/2010/06/kpi.html(需翻墻)

    作者:蔡學鏞

    阿里巴巴集團大部分的員工,每季或每半年都要接受一次的KPI考核,看看他績效如何。關于用KPI來打考核,許多員工其實都有一些負面的看法,而管理層也知道采用KPI有時候會有負面效果,但是沒有更好的方法之前,我們還是仰賴KPI。

    我已經到阿里巴巴的支付寶上班一年多了,對于KPI,我有四階段的心理變化,值得描述一下。

    剛進公司時,我對KPI的重視程度是70%。大多數的時間,我做的事都是KPI設定的任務,有些事情,雖然不是KPI關注的任務,但只要對公司有利,我依然會去做。這是第一階段。

    后來,我對KPI的重視程度降低到30%。大多數的時間,我做的事都是對公司有益處的事,至于是不是KPI的重點我就比較不在乎了。這是第二階段。這是對公司最好的階段。

    接著,我發現做正確的事會導致自己的KPI不好,無法升遷,于是我開始變成100% KPI導向。只要不是KPI的內容,我就不愿意做。這是第三階段。公司把一個員工逼到這個階段,是很可悲的,對公司也是一個傷害。

    第三個階段不會持續太久,會立刻變成第四個階段:對KPI重視程度為0%。這表示對于自己在這家公司的前途已經不在乎,準備開始找工作了。我現在正在第四階段,至于會不會有第五階段,我就不知道了。

    70% -> 30% -> 100% -> 0%,你在哪一個階段呢?或者,你有不一樣的折線圖呢?
    ================

    一直以來,好像很少見一些人在 Blog 上談論自己公司的事情,而且還有一些人總結了一些所謂的“Blog 職業道德”,其中就有不在Blog上抱怨公司,當然很多人也是顧慮到IT圈子很小,說不定罵了自己公司以后就找不到工作了。蔡學鏞這篇文章是我見過的唯一一篇點名批評阿里巴巴KPI文化的文章,真是說到我心坎里去了。當然,很多人會說哪個大公司不是這樣呢?換一家公司說不定還不如阿里呢!這種詭辯完全回避了問題本身——別人比你問題大無法掩蓋你有問題的事實。

    借這篇文章我多說幾句。當時我去雅虎的時候,也已經完全實行了阿里巴巴的KPI管理,大家一律KPI為導向,尤其是產品經理。有件事情給我印象特別深刻,有一次產品經理提出了一個新的需求,但是當時系統本身的性能已經出現了問題,已經到了非優化不可的地步,所以新需求可能需要延遲開發,當時那個產品經理根本不詢問技術細節和難度,也不管具體情況,只是說:“別的我不管,這個需求是我的KPI,我只關心在XX號之前這個需求能不能上線”,當時我就震驚了,這是什么想法?!另外,根據我的觀察,好像大家都是在做自己不愿意做的事情,技術人員向產品經理抱怨說這個項目沒用任何亮點為什么要做,然后產品經理說“沒辦法,我也不想做,但是KPI……”。還有一點,KPI考評的時候需要自己給自己打高分,打了高分還要舉出事例來說明自己的貢獻,這樣一來很多不愿意自夸的人就很吃虧,久而久之,那些不愿意自夸但是工作勤懇的人就會覺得自己很吃虧,然后工作就開始不認真但是在寫KPI的時候開始研究怎么寫會得分比較高。

    有時候我真的很奇怪,公司應該很喜歡那種有歸屬感和榮譽感、做事情為公司著想的員工,這樣的員工其實可以給公司帶來最大價值的。很多人剛入職的時候確實謹遵教導,把公司當成是自己的,但是過了一段時間這些人會發現,其實公司不稀罕你的歸屬感,不在乎你是不是有熱情,公司只在乎你的KPI有沒有完成,如果你工作賣力但是不會表現自己KPI里不會給自己評價的話,那么你還是得不到相應的獎勵——除非你碰到一個愿意給你加分的好領導。在阿里巴巴這樣的大公司,如果你不會表現不懂得適當提醒領導你的貢獻的話,那么你出頭的機會就會很少,我很奇怪為什么阿里巴巴內部會有這樣的論調:如果你的作用領導不知道,那你就要去告訴他。但很多人就是性格內向,尤其是技術人員,很多更是不愿意炫耀自己的成果,非要把這樣的人逼成油嘴滑舌才罷休么?而且如果領導不能清楚知道自己手下的能力和貢獻,這樣的領導要來干嘛?每天開會么?

    好吧,我承認,公司規模大了人員多了之后,肯定會有這樣的問題,不使用KPI管理可能效果更差。那么這個問題怎么解決呢?我不知道,留給那些學管理的去解決吧。對于我自己來說,有一個很簡單方便的解決方案,那就是滾蛋。離開大公司的感覺好多了,前所未有的好,那些還在猶豫的也不要猶豫了,趕緊滾蛋吧。

    很多人可能會說:既然大公司那么爛,為啥還有那么多人呆在里面呢? 因為大公司比較穩定,不會輕易倒閉,待遇也還可以,如果你想要穩定的話,那還是在大公司呆著吧,然后享受KPI。另外,大部分項目都不是那么重要,所以拖幾天都無所謂,工作相對來說就比較清閑,就可以有很多時間做自己的事情,什么是自己的事情呢?比如淘寶上開店啦,接個私活啦……(請自行發揮想象力) 我發現很多在大公司呆得挺安心的家伙基本上外面都有自己的“事業”,反正在公司上班也不耽誤自己的事業,何必拒絕這份額外的工資呢?

    啊?我好像說的太多了。不能多說了,再說估計就會被追殺了。

    posted @ 2010-06-08 00:19 梁良 閱讀(254) | 評論 (0)編輯 收藏

    使用git來管理googlecode

    在代碼管理工具上我還是比較喜歡一點,但是googlecode是使用的svn來管理的,一開始我也是使用svn來管理的,但是總感覺不是很爽。
    今天試了一下用git來管理googlecode,還是不錯的,又有了以前的那種感覺。

    下面是記錄了一下使用筆記:

    #工具的安裝(Debian/ubuntu)
    sudo apt-get install subversion git git-core git-svn

    #從googlecode中獲取代碼:
    git svn clone https://xhttpd.googlecode.com/svn/trunk/ xhttpd –username Helight.Xu

    #把修改ci到git倉庫
    git commit -a -m ‘你的日志’
    #把所有的git修改同步到遠程的svn
    git-svn dcommit

    你可以進行多次修改和git commit之后,再通過git-svn dcommit同步到遠程,git-svn會把你的多次本地git commit依次提交到遠程。這樣就解決了一個問題:有時候我必須做多個修改,才能形成一個完整的,穩定的版本,才可以提交到遠程svn。如果僅僅是依靠 svn,我就必須在把所有修改都做完之后,才能一次提交。這個情況下寫log就很麻煩了,一是不一定記得所有所做的修改;二是log會很長。

    其他的使用管理和本地git管理是一樣的,例如:
    git log
    git branch

    posted @ 2010-06-07 18:32 梁良 閱讀(633) | 評論 (0)編輯 收藏

    Hibernate DAO中的幾個方法

    * save()方法提供了向數據庫中添加數據的功能,但只能添加,這個DAO沒有生成Update()的方法
    * 但你可以簡單的八save()方法改稱具有Update功能:將getSession().save * (transientInstance);這句改成
    * getSession().merge(transientInstance);或者getSession().saveOrUpdate
    *  (transientInstance); 

    public void save(User transientInstance) {
      log.debug("saving User instance");
      try {
       Session session=getSession();
       Transaction tx=session.beginTransaction();
       session.save(transientInstance);
       tx.commit();
       session.close();
       log.debug("save successful");
      } catch (RuntimeException re) {
       log.error("save failed", re);
       throw re;
      }
     }


    delete()方法用來刪除的 實際上我們會用下邊的這個方法進行刪除

    public void delete(Integer id){
      log.debug("deleting User instance…");
      User user=findById(id);
      delete(user);
     }
     
     public void delete(User persistentInstance) {
      log.debug("deleting User instance");
      try {
       Session session=getSession();
       Transaction tx=session.beginTransaction();
       session.delete(persistentInstance);
       tx.commit();
       session.close();
       log.debug("delete successful");
      } catch (RuntimeException re) {
       log.error("delete failed", re);
       throw re;
      }
     }

    根據編號進行查找

     public User findById(java.lang.Integer id) {
      log.debug("getting User instance with id: " + id);
      try {
       User instance = (User) getSession().get("hbm.User", id);
       return instance;
      } catch (RuntimeException re) {
       log.error("get failed", re);
       throw re;
      }
     }

    findByExample()方法實現的功能相當于"select * from Usertable"實現的功能就是查詢所有 數據.

     public List findByExample(User instance) {
      log.debug("finding User instance by example");
      try {
       List results = getSession().createCriteria("hbm.User").add(
         Example.create(instance)).list();
       log.debug("find by example successful, result size: "
         + results.size());
       return results;
      } catch (RuntimeException re) {
       log.error("find by example failed", re);
       throw re;
      }
     }

    findByProperty()方法用來靈活的提供一種按條件查詢的方法,你可以自己定義要按什么樣的方 式查詢.

     public List findByProperty(String propertyName, Object value) {
      log.debug("finding User instance with property: " + propertyName
        + ", value: " + value);
      try {
       String queryString = "from User as model where model."
         + propertyName + "= ?";
       Query queryObject = getSession().createQuery(queryString);
       queryObject.setParameter(0, value);
       return queryObject.list();
      } catch (RuntimeException re) {
       log.error("find by property name failed", re);
       throw re;
      }
     }

     public List findByName(Object name) {
      return findByProperty(NAME, name);
     }

     public List findBySex(Object sex) {
      return findByProperty(SEX, sex);
     }

     public List findByAge(Object age) {
      return findByProperty(AGE, age);
     }

     public List findAll() {
      log.debug("finding all User instances");
      try {
       String queryString = "from User";
       Query queryObject = getSession().createQuery(queryString);
       return queryObject.list();
      } catch (RuntimeException re) {
       log.error("find all failed", re);
       throw re;
      }
     }

    將傳入的detached狀態的對象的屬性復制到持久化對象中,并返回該持久化對象  如果該session中沒有關聯的持久化對象,加載一個,如果傳入對象未保存,保存一個副本并作為持久對象返回,傳入對象依然保持detached狀態。 

    可以用作更新數據

     public User merge(User detachedInstance) {
      log.debug("merging User instance");
      try {

        Session session=getSession();
       Transaction tx=session.beginTransaction();
       
       User result = (User) session.merge(detachedInstance);
       tx.commit();
       session.close();
       log.debug("merge successful");
       return result;
      } catch (RuntimeException re) {
       log.error("merge failed", re);
       throw re;
      }
     }

    將傳入的對象持久化并保存。 如果對象未保存(Transient狀態),調用save方法保存。如果對象已保存(Detached狀態),調用update方法將對象與Session重新關聯。

     public void attachDirty(User instance) {
      log.debug("attaching dirty User instance");
      try {
       getSession().saveOrUpdate(instance);
       log.debug("attach successful");
      } catch (RuntimeException re) {
       log.error("attach failed", re);
       throw re;
      }
     }

    將傳入的對象狀態設置為Transient狀態 

     public void attachClean(User instance) {
      log.debug("attaching clean User instance");
      try {
       getSession().lock(instance, LockMode.NONE);
       log.debug("attach successful");
      } catch (RuntimeException re) {
       log.error("attach failed", re);
       throw re;
      }
     }

    posted @ 2010-06-04 11:53 梁良 閱讀(395) | 評論 (0)編輯 收藏

    how to install epson me 200 printer in ubuntu

    instruction
    it is not very easy to install new hardware in linux for long,we are short of newer hardware driver for linux.maybe the company think that it is not worth to spend money and time for the free software desktop user.but we need it cause we exist there.we are enthusiastic in searching and resolving the problem,solve and share the result make us the sense of achievement.

    1.install epson me 200 driver in ubuntu 9.04.
    install local printer and network printer
    2.install epson me 200 scanner in ubuntu 9.04.
    step:
    install the printer
    1.preparation
    go
    http://www.avasys.jp/lx-bin2/linux_e/ink/DL1.do
    download the driver
    pipslite_1.4.0-3_i386.deb(for printer)
    iscan_2.20.1-1_i386.deb(for scanner)
    if u upgrade you OS from Hardy(8.04) you needn’t to do step below.if u installed a later version go
    http://packages.ubuntu.com/hardy/libltdl3
    and download the
    libltdl3_1.5.26-1ubuntu1_i386.deb
    or you would got the message:
    Error: Dependency is not satisfiable: libltdl3 (>= 1.5.2-2)
    2.installation
    install pipslite.(if it hint the error upon,install libltdl3_1.5.26-1ubuntu1_i386.deb first)
    power on your epson me 200 printer and ensure it is linked to the computer via the usb port.
    the message appeared will ask you if install new printer epson me 200,approve it and go next.
    or press system->administration->printing then press new.
    choose epson inkjet printer #1 (the #* maybe not #1)
    press forward and the system will search for new driver,but there is no standard driver for me 200,so we choose epson ->me 300 instead,press forward.
    modify the message if you like and press apply.
    you can print the test page now.

    the printer in my office is linked to a public computer installed windowsXP,i installed the printer via network,this is a useful method that i needn’t to take any physical change.
    1.make sure your computers are in the same lan and set the printer on windows to be shared for everyone.
    make sure the samba is installed in your ubuntu OS.if not,sudo apt-get install samba.

    2.press system->administration->printing,press new.
    press network printer then choose windows printer via samba.
    enter your windows system ip like 192.168.1.100/,the ‘/’is necessary.the system will search for printer in seconds,choose epson me 200 and press forward,we choose epson me 300 driver instead also.
    at last,print a test page to make sure everything is ok.

    install the scanner
    1.it is so easy to install the scanner,make sure the scanner is opened and linked to ur computer via usb port.then install the iscan_2.20.1-1_i386.deb,this need libltdl3_1.5.26-1ubuntu1_i386.deb aslo.after all,u can test ur scanner.

    reference:
    http://ubuntuforums.org/showthread.php?t=1153518

    posted @ 2010-05-16 22:56 梁良 閱讀(438) | 評論 (0)編輯 收藏

    Ubuntu GNOME快捷鍵

    通用快捷鍵: F1+Alt 類似windowswindows下面的Win鍵 在GNOME中就是打開 *應用程序* 菜單(Applications Menu)

    F2+Alt 類似windows下面Win+R 是運行程序的快捷鍵

    Ctrl+Alt+D 類似windows下面的Win+D 是顯示桌面的快捷鍵

    Ctrl+Alt+L 啟動屏幕保護程序?

    Alt+Tab 同windows下的定義一樣

    Print Screen 屏幕抓圖(整個屏幕)

    Alt+Print Screen 當前窗口抓圖

    窗口操作快捷鍵

    Alt+F4 關閉窗口

    Alt+F5 取消最大化

    Alt+F7 移動窗口的

    Alt+F8 改變大小

    Alt+F9 最小化當前窗口

    Alt+F10 最大化當前窗口

    Alt+空格 就是我寫的這些 看看就知道 :)

    程序中的快捷鍵

    Ctrl+N

    Ctrl+X

    Ctrl+C

    Ctrl+V

    Ctrl+Z

    Ctrl+S
    ubuntuubuntu.org.cn/" target="_blank">Ubuntu操 作基本快捷鍵
    * 打開主菜單 = Alt + F1
    * 運行 = Alt + F2
    * 顯示桌面 = Ctrl + Alt + d
    * 最小化當前窗口 = Alt + F9
    * 最大化當前窗口 = Alt + F10
    * 關閉當前窗口 = Alt + F4
    * 截取全屏 = Print Screen
    * 截取窗口 = Alt + Print Screen
    默認特殊快捷鍵
    * 展示所有窗口程序 = F10
    * 展示當前窗口最上層程序 = F11
    * 展示當前窗口所有程序 = F12
    * 切換窗口 = Alt + Tab
    * 旋轉3D桌面 = Ctrl + Alt + 左/右箭頭(也可以把鼠標放在標題欄或桌面使用滾輪切換)
    * 旋轉3D桌面( 活動窗口跟隨) = Ctrl + Shift + Alt + 左/右箭頭
    * 手動旋轉3D桌面 = Ctrl + Alt + 左鍵單擊并拖拽桌面空白處
    * 窗口透明/不透明 = possible with the “transset” utility or Alt + 滾輪
    * 放大一次 = 超級鍵 + 右擊
    * 手動放大 = 超級鍵 + 滾輪向上
    * 手動縮小 = 超級鍵 + 滾輪向下
    * 移動窗口 = Alt + 左鍵單擊
    * 移動窗口時貼住邊框 = 左鍵開始拖動后再 Ctrl + Alt
    * 調整窗口大小 = Alt + 中擊
    * Bring up the window below the top window = Alt + middle-click
    * 動態效果減速 = Shift + F10
    * 水紋 = 按住 Ctrl+超級鍵
    * 雨點 = Shift-F9
    * 桌面展開= Ctrl + Alt + 下箭頭,然后按住 Ctrl + Alt 和左/右箭頭選擇桌面

    Ubuntu Gnome的桌面技巧
    ===鍵盤類===

    1.先同時按住 Alt + Ctrl 鍵,再按鍵盤上的左 右光標 鍵 可以切換工作區

    2.web時按 "/" 鍵 等于 查找功能,桌面或者目錄時按" /" 等于"打開.."

    3.當前目錄下快速文件(夾)定位, 直接輸入文件(夾)名字

    4.shift鍵 可以對scim的中英輸入快速切換,windows下的智能ABC一樣

    5.alt+左右可以前進后退頁面

    6.屏幕鎖定: Alt+Ctrl+L 等價于Windows中的微軟鍵 + L, ctrl+alt+d 相當于Windows中的微軟鍵 +D
    換句話說,Alt+Ctrl相當于微軟鍵

    7.Ctrl+Alt+Shift+左右方向鍵,可以把當前窗口移到上一個或下一個桌面

    8.Alt+Tab向左切換窗口,Alt+Shift+Tab向友切換窗口

    ===鼠標類===

    1.直接拖拉在最大化時的窗口標題可以還原窗口大小,再拖放回去就最大化

    2.在音量控制處用鼠標滾輪滾動可以直接調整音量,在任務欄中滾動滾輪可以切換任務欄,工作區則切換工作區

    3.瀏覽網頁的時候直接把圖片落到保存目錄既可下載

    4.按鼠標滾輪即張貼, 同時按下鼠標 左右鍵等價于按鼠標中鍵 -->引伸到,在web上選中文字,直接雙鍵(中鍵)可以張貼選中的文字

    5.工作區里的小窗口可以在不同工作區內拖拉,即移動到....(工作區)的功能

    6.shift + 鼠標滾輪 可以后退頁面

    7.鼠標中鍵點標題欄可以隱藏當前窗口

    8.按住shift 拖動窗口可以吸附上下邊緣的移動

    9.直接將 文件管理器 中的文件拖到 GNOME終端 中就可以在終端中得到完整的路徑名

    10.修改目錄圖標:可將文件管理器中的圖片直接拖到文件夾屬性所在的圖標上.

    11.鼠標中鍵直接單擊 滾動條 的空白處,屏幕即滾動到那處。

    12.中鍵拖動圖片到桌面,可選擇設為墻紙

    ===其他===

    戴屏:
    a、全屏:直接按下 PrtScr 鍵。
    b、當前窗口:同時按下 Alt + PrtScr 鍵。
    c、延時戴屏:在 終端 或 “運行”窗口中輸入命令: gnome-screenshot --delay 3 ,將延時 3 秒后戴屏。

    posted @ 2010-05-16 22:14 梁良 閱讀(278) | 評論 (0)編輯 收藏

    ff 更改瀏覽器語言


    編輯
        -首選項
            -內容
                -語言
                    -選擇語言

    posted @ 2010-05-16 19:03 梁良 閱讀(253) | 評論 (0)編輯 收藏

    vi/vim 使用方法小積累

    1、vi的基本概念
    基本上vi可以分為三種狀態,分別是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能區分如下:

    1) 命令行模式command mode)

    控制屏幕光標的移動,字符、字或行的刪除,移動復制某區段及進入Insert mode下,或者到 last line mode。

    2) 插入模式(Insert mode)

    只有在Insert mode下,才可以做文字輸入,按「ESC」鍵可回到命令行模式。

    3) 底行模式(last line mode)

    將文件保存或退出vi,也可以設置編輯環境,如尋找字符串、列出行號……等。

    不 過一般我們在使用時把vi簡化成兩個模式,就是將底行模式(last line mode)也算入命令行模式command mode)。

    2、 vi的基本操作
    a) 進入vi

    在系統提示符號輸入vi及文件名稱后,就進入vi全屏幕編輯畫面:

    $ vi myfile


    不過有一點要特別注意,就是您進入vi之后,是處于「命令行模式(command mode)」,您要切換到「插入模式(Insert mode)」才能夠輸入文字。初次使用vi的人都會想先用上下左右鍵移動光標,結果電腦一直嗶嗶叫,把自己氣個半死,所以進入vi后,先不要亂動,轉換到 「插入模式(Insert mode)」再說吧!

    b) 切換至插入模式(Insert mode)編輯文件

    在「命令 行模式(command mode)」下按一下字母「i」就可以進入「插入模式(Insert mode)」,這時候你就可以開始輸入文字了。

    c) Insert 的切換

    您目前處于「插入模式(Insert mode)」,您就只能一直輸入文字,如果您發現輸錯了字!想用光標鍵往回移動,將該字刪除,就要先按一下「ESC」鍵轉到「命令行模式(command mode)」再刪除文字。

    d) 退出vi及保存文件

    在「命令行模式(command mode)」下,按一下「:」冒號鍵進入「Last line mode」,例如:

    : w filename (輸入 「w filename」將文章以指定的文件名filename保存)

    : wq (輸入「wq」,存盤并退出vi)

    : q! (輸入q!, 不存盤強制退出vi)


    3、命令行模式(command mode)功能鍵
    1). 插入模式

    按「i」切換進入插入模式「insert mode」,按“i”進入插入模式后是從光標當前位置開始輸入文件;

    按「a」進入插入模 式后,是從目前光標所在位置的下一個位置開始輸入文字;

    按「o」進入插入模式后,是插入新的一行,從行首開始輸入文字。

    2). 從插入模式切換為命令行模式

    按「ESC」鍵。

    3). 移動光標

    vi可以直接用鍵盤上的光標來 上下左右移動,但正規的vi是用小寫英文字母「h」、「j」、「k」、「l」,分別控制光標左、下、上、右移一格。

    按「ctrl」+ 「b」:屏幕往“后”移動一頁。

    按「ctrl」+「f」:屏幕往“前”移動一頁。

    按「ctrl」+「u」:屏幕 往“后”移動半頁。

    按「ctrl」+「d」:屏幕往“前”移動半頁。

    按數字「0」:移到文章的開頭。

    按「G」:移動到文章的最后。

    按「$」:移動到光標所在行的“行尾”。

    按「^」:移動到光標所在行的“行首”

    按「w」:光標跳到下個字的開頭

    按「e」:光標跳到下個字的字尾

    按「b」:光標回到上個字的開頭

    按「#l」:光標移到該行的第#個位置,如:5l,56l。

    4). 刪除文字

    「x」:每按一次,刪除光標所在位置 的“后面”一個字符。

    「#x」:例如,「6x」表示刪除光標所在位置的“后面”6個字符。

    「X」:大寫的X,每 按一次,刪除光標所在位置的“前面”一個字符。

    「#X」:例如,「20X」表示刪除光標所在位置的“前面”20個字符。

    「dd」:刪除光標所在行。

    「#dd」:從光標所在行開始刪除#行

    5). 復制

    「yw」:將 光標所在之處到字尾的字符復制到緩沖區中。

    「#yw」:復制#個字到緩沖區

    「yy」:復制光標所在行到緩沖區。

    「#yy」:例如,「6yy」表示拷貝從光標所在的該行“往下數”6行文字。

    「p」:將緩沖區內的字符貼到光標所在位置。注意:所 有與“y”有關的復制命令都必須與“p”配合才能完成復制與粘貼功能。

    6). 替換

    「r」:替換光標所在處的字符。

    「R」:替換光標所到之處的字符,直到按下「ESC」鍵為止。

    7). 回復上一次操作

    「u」:如果您誤執行一個命 令,可以馬上按下「u」,回到上一個操作。按多次“u”可以執行多次回復。

    8). 更改

    「cw」:更改光標所在處的 字到字尾處

    「c#w」:例如,「c3w」表示更改3個字

    9). 跳至指定的行

    「ctrl」+ 「g」列出光標所在行的行號。

    「#G」:例如,「15G」,表示移動光標至文章的第15行行首。

    4、Last line mode下命令簡介
    在使用「last line mode」之前,請記住先按「ESC」鍵確定您已經處于「command mode」下后,再按「:」冒號即可進入「last line mode」。

    A) 列出行號

    「set nu」:輸入「set nu」后,會在文件中的每一行前面列出行號。

    B) 跳到文件中的某一行

    「#」:「#」號表示一 個數字,在冒號后輸入一個數字,再按回車鍵就會跳到該行了,如輸入數字15,再回車,就會跳到文章的第15行。

    C) 查找字符

    「/關鍵字」:先按「/」鍵,再輸入您想尋找的字符,如果第一次找的關鍵字不是您想要的,可以一直按「n」會往后尋找到您要的關鍵字為止。

    「?關鍵字」:先按「?」鍵,再輸入您想尋找的字符,如果第一次找的關鍵字不是您想要的,可以一直按「n」會往前尋找到您要的關鍵字為止。

    D) 保存文件

    「w」:在冒號輸入字母「w」就可以將文件保存起來。

    E) 離開vi

    「q」:按「q」就 是退出,如果無法離開vi,可以在「q」后跟一個「!」強制離開vi。

    「qw」:一般建議離開時,搭配「w」一起使用,這樣在退出的時 候還可以保存文件。

    5、vi命令列表
    1、下表列出命令模式下的一些鍵的功能:

    h
    左移光標一個字符

    l
    右 移光標一個字符

    k
    光標上移一行

    j
    光標下移一行

    ^
    光標移動至行首

    0
    數 字“0”,光標移至文章的開頭

    G
    光標移至文章的最后

    $
    光標移動至行尾

    Ctrl+f
    向 前翻屏

    Ctrl+b
    向后翻屏

    Ctrl+d
    向前翻半屏

    Ctrl+u
    向后翻半屏

    i
    在 光標位置前插入字符

    a
    在光標所在位置的后一個字符開始增加

    o
    插入新的一行,從行首開始輸入

    ESC
    從 輸入狀態退至命令狀態

    x
    刪除光標后面的字符

    #x
    刪除光標后的#個字符

    X
    (大寫 X),刪除光標前面的字符

    #X
    刪除光標前面的#個字符

    dd
    刪除光標所在的行

    #dd
    刪 除從光標所在行數的#行

    yw
    復制光標所在位置的一個字

    #yw
    復制光標所在位置的#個字

    yy
    復 制光標所在位置的一行

    #yy
    復制從光標所在行數的#行

    p
    粘貼

    u
    取消操作

    cw
    更 改光標所在位置的一個字

    #cw
    更改光標所在位置的#個字


    2、下表列出行命令模式下的一些指令
    w filename
    儲存正在編輯的文件為filename

    wq filename
    儲存正在編輯的文件為 filename,并退出vi

    q!
    放棄所有修改,退出vi

    set nu
    顯示行號

    /或?
    查 找,在/后輸入要查找的內容

    n
    與/或?一起使用,如果查找的內容不是想要找的關鍵字,按n或向后(與/聯用)或向前(與?聯用) 繼續查找,直到找到為止。


    對于第一次用vi,有幾點注意要提醒一下:
    1、用vi打開文件,是處于"命令行模式 command"  

    posted @ 2010-05-16 18:53 梁良 閱讀(235) | 評論 (0)編輯 收藏

    為UBUNTU安裝一個像千千靜聽一樣的MP3播放器

    今天閑著無聊,所以想聽下歌,在UBUNTU下,用系統自帶的那個Rhythmbox界面太大了,一點也不爽,所以想找個想千千靜聽的MP3播放器,到論 壇上逛一下,找到了Audacious!聽說不錯,所以就裝上玩玩。。。廢話少說,下面介紹下我找到的資料,安裝方法和出現的問題解決方法!

    Audacious,一款音樂播放器軟件,是 beep-media-player 0.9.7.1的衍生軟件。由于BMP停止開發,并且存在很多問題,Audacious的開發團隊就自己動手開發了這個軟件。 Audacious 兼容Winamp 2.x 或者 "Classic" ,和 XMMS 的皮膚。這里訪問它的站點 http://audacious-media-player.org

    xmms全稱是X Multimedia System,這個經典的播放器可能是每個linux的使用者或多或少都接觸過的播放器,不過由于采用的是 GTK1界面,對非英語環境支持相當不好,于是到了1.2.10后xmms就沒有再更新了,不過并不意味著開發停止了,而是移植到了對語言環境支持更好的 GTK2上,于是有了bmp(全稱beep media player)。在bmp的開發組把注意力轉到開發bmpx后,bmp更名為 audacious。比起bmp,audacious自帶了更多的解碼器,默認安裝下,己可以支持mp3、aac、wma格式,不用到處找插件了。

    安裝:

    sudo apt-get install audacious

    安裝audacious的解碼器(這個好像已經裝好了,如果你裝了Rhythmbox或視頻解碼器)

    sudo apt-get install audacious-plugins audacious-plugins-extra audacious-plugins-extra-console

    亂碼問題

    可以通過設置解決中文出現亂碼問題,方法如下:

    在播放器界面右鍵-首選項-播放列表-元數據:

    選擇:裝入時

    使用自動編碼檢測器:chinese

    備用字符編碼:GBK

    刪除播放列表,再重新加入歌曲就可以了。如果不想刪除也可以,每一個播放過得歌曲,或者雙擊過得歌曲,亂馬都會變得正常!


    默認音量小的問題

    不知什么原因,這款軟件安裝后默認音量比較小,我們來設置一下:

    首選項-Replay Gain-Default gain

    這里的默認值是-9.00,將它改回0.00,這樣就和系統的音量一樣了。如果你還覺得小聲的話可以設置成正數!

    還有個問題不知道怎么解決,就是播放列表的切換,如果有多個播放列表的話在界面里面沒有直接選的,感覺不夠人性化,也可能是我沒設置好,哪位大蝦知道的給 我說說,我的解決方法是用快捷鍵“SHIFT+P”切換!

    還有界面,播放列表那些的更多設置都可以在首選項里面設置,有興趣的可以去玩下。

    posted @ 2010-05-16 18:19 梁良 閱讀(478) | 評論 (0)編輯 收藏

    Ubuntu中解決flash亂碼的問題

    gnome-terminal sudo rm /etc/fonts/conf.d/49-sansserif.conf

    posted @ 2010-05-15 22:25 梁良 閱讀(240) | 評論 (0)編輯 收藏

    ubuntu Mplayer播放rmvb

    在/etc/apt/sources.list加入 deb http://packages.medibuntu.org/ feisty free non-free的源,然后安裝libdvdcss2和w64codecs, sudo apt-get install libdvdcss2 w64codecs 這 下用mplayer就可以播放了。

    posted @ 2010-05-15 22:20 梁良 閱讀(280) | 評論 (0)編輯 收藏

    解決Ubuntu MP3亂碼辦法

    打開MP3文件顯示一堆亂碼,百度了下要用mid3iconv轉換文件。直接輸入這個命令,它會提示你安裝:apt-get install python-mutagen,裝唄。裝完了以后用下面這個命令處理一下就可以了: mid3iconv -e gbk 文件名 這 個文件名可以直接把文件拖到終端里,跟XP里直接把文件拖到CMD窗口差不多的。 如果想轉換當前目錄下的所有 mp3 用下面這個命令: find . -iname “*.mp3″ -execdir mid3iconv -e gbk {} \; 剛裝好的Ubuntu在百度的 MP3里在線聽歌還是不行的,得下載一首MP3(本機有就免了),然后打開一下,它會提示是否下載播放插件,這個肯定是撒,不然咋聽呢。下載&安裝完畢后 就可以在線聽歌了。

    posted @ 2010-05-15 22:18 梁良 閱讀(686) | 評論 (0)編輯 收藏

    僅列出標題
    共6頁: 上一頁 1 2 3 4 5 6 下一頁 
    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    導航

    公告

        歡迎光臨

    常用鏈接

    隨筆分類

    隨筆檔案

    相冊

    .我的網站.

    友情博客

    開源社區

    科技博客

    資料網站

    最新隨筆

    搜索

    最新評論

    閱讀排行榜

    Powered by:
    LonLeung
    Copyright © 梁良

    本頁生成時間:毫秒

    主站蜘蛛池模板: 久久久亚洲欧洲日产国码aⅴ| 午夜亚洲乱码伦小说区69堂| 国产精品久久久久久久久久免费| 亚洲色精品三区二区一区| 亚洲?V无码成人精品区日韩| 国产精品免费一区二区三区四区| 亚洲无mate20pro麻豆| 婷婷综合缴情亚洲狠狠尤物| 花蝴蝶免费视频在线观看高清版| 亚洲人配人种jizz| 久久久久一级精品亚洲国产成人综合AV区| 99国产精品视频免费观看| 久久精品国产亚洲av天美18| 亚洲a一级免费视频| 免费欧洲毛片A级视频无风险| 人妻无码久久一区二区三区免费 | 亚洲H在线播放在线观看H| 国产三级免费观看| 在线观看的免费网站无遮挡| 黄色a级片免费看| 亚洲国产综合在线| 久久久久亚洲?V成人无码| 成人免费看片又大又黄| 免费成人在线视频观看| 免费的黄色的网站| 亚洲伊人久久大香线蕉结合| 久久综合图区亚洲综合图区| 亚洲精品乱码久久久久久不卡| 亚洲免费视频网址| 免费无码一区二区三区蜜桃| 日日摸日日碰夜夜爽亚洲| 亚洲图片中文字幕| 国产精品亚洲аv无码播放| 午夜亚洲av永久无码精品| 中文字幕影片免费在线观看| 一级做a爰全过程免费视频| 一级做a爰片久久毛片免费看 | vvvv99日韩精品亚洲| 日韩一区二区a片免费观看| 伊人久久免费视频| 怡红院免费全部视频在线视频|