一點一滴,編程人生

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            69 隨筆 :: 0 文章 :: 25 評論 :: 0 Trackbacks

          #

          1.圖標的圓角效果是系統(tǒng)自動加上的。

          2.光暈效果雖然也是系統(tǒng)加上的,但可以通過程序中設置參數來去掉內建光暈效果。

          方法:在info.plist里面添加一條記錄UIPrerenderedIcon,新版的XCODE 會自動識別為Icon already includes gloss effects 打上勾就OK了。如果沒有識別的右邊欄寫上YES就可以

          posted @ 2012-07-31 14:06 writegull 閱讀(633) | 評論 (0)編輯 收藏

               摘要:   閱讀全文
          posted @ 2012-07-25 11:14 writegull 閱讀(1980) | 評論 (1)編輯 收藏

          原文地址:http://blog.itotem.com.cn/?p=22

          - alloc, copy, retain會把引用計數+1

          - release會把引用計數-1

          - 局部變量如果初始化時不是autorelease的,要及時調用release釋放,并且賦值為nil否則引用仍然存在導致下次無法用nil做是否有值的判斷

          - 實例變量要在每次賦值時要先釋放當前引用的對象再賦值,并retain一下保證引用計數為1

          - 對于有retain參數的property,直接使用”.”賦值時系統(tǒng)會自動釋放當前引用對象再賦值,并自動retain一下

          - dealloc中要對所有實例變量調用release,對于有retain參數的property只需要調用self.theProperty = nil即可,系統(tǒng)會去做釋放

          - delegate的property通常設為assign,如果設為retain的話會有循環(huán)引用的問題,比如aView.delegate = self時會把self retain一下,在aView的dealloc中會把delegate release,但是由于self的引用永遠不會小于1,所以導致aView和self的dealloc永遠都不會被執(zhí)行,都永遠駐留內存造成泄露。所以如果要設為retain的話一定要確保不會造成循環(huán)引用問題。

          - 在UIViewController中的viewDidUnload中要釋放掉局部變量,調用release并設為nil,有時系統(tǒng)收到內存警告時會自動調用這個函數來釋放一些內存空間

          - 系統(tǒng)內存警告的回調中要釋放掉內存中的緩存和其他可釋放的東西,以免造成crash

          - 使用UITableView時要把cell設置為重用的,并且要確保確實寫得是重用的,有的人寫完的結果相當于還是每次都重建cell,導致效率低下

          - 使用UIScrollView時要自己控制釋放掉目前不顯示的內容,尤其是圖片,考慮圖片大小和瀏覽效果可以加載當前顯示頁兩邊的3-5頁內容

          - 圖片需要做緩存,尤其是本地文件系統(tǒng)緩存,可以放到Library/Cache目錄中,這個目錄系統(tǒng)有專用的常量來獲取,比如:

          這里是一個小例子闡釋前幾條基本原則:

          1
          2
          3
          4
          5
          6
          7
          8
          9
          10
          11
          12
          13
          14
          15
          16
          17
          18
          19
          20
          21
          22
          23
          24
          25
          26
          27
          28
          29
          30
          31
          32
          33
          34
          35
          - (void)aFunction{
          //創(chuàng)建一個局部變量view
          UIView *view = [[UIView alloc] init];
          // 賦值給實例變量theView
          [theView release]; //先釋放一下當前引用的變量
          theView = [view retain]; //給實例變量賦值時需要retain一下
          // 如果theView是一個有retain屬性的property
          self.theView = view; //不需要先釋放,也不需要調用retain,系統(tǒng)會自動做,所以一定不能這樣寫self.view = [[UIView alloc] init];,這樣的話創(chuàng)建的view會被retain兩次,造成泄露,對于這種可以先創(chuàng)建一個局部變量,給self.view賦值后再釋放
          [view release]; //要及時釋放局部變量
          }
          - (void)dealloc{
          //釋放局部變量
          [theView release];
          //如果theView是一個有retain屬性的property,也可以這樣寫
          self.theView = nil;
          [super dealloc];
          }
          posted @ 2012-07-05 17:05 writegull 閱讀(1250) | 評論 (1)編輯 收藏

          今天測試程序時發(fā)現(xiàn)一個奇怪的現(xiàn)象,我在關于頁面中想顯示圖片icon文件,可是怎么調試都不顯示。后來加載其它圖片則顯示正常。

          我分析原因是蘋果對程序訪問icon文件做了限制,所以不能正常顯示

          解決方案:把icon文件復制一份,改成其它名字,加載改名字的文件,問題成功解決!
          posted @ 2012-06-26 16:10 writegull 閱讀(361) | 評論 (0)編輯 收藏

          今天開發(fā)中使用字符串分割函數split(),發(fā)現(xiàn):
                  String s = "upload/20120416135915265.sql";
                  System.out.println(s.split("."));
          輸出的并不是想要的結果,之后輸出:
                  System.out.println(s.split(".").length);
          結果竟然是0!!!
          突然想到轉義字符,于是:  
                  System.out.println(s.split("\\."));
          OK啦!!!
          原來在java中函數split(".")必須是是split("\\.")。
          posted @ 2012-06-24 09:27 writegull 閱讀(31383) | 評論 (4)編輯 收藏

          感謝蚊帳的投遞
          新聞來源:伯樂在線
          很多人表面上看著老實巴交的,實際上內心比誰都好強、自負、虛榮、甚至陰險。工作中見的多了,也就習慣了。有一些人,什么事都寫在臉上,表面上經常得罪人,甚至讓人討厭。但是他們所表現(xiàn)的又未必不是真性情。

          我相信大多數人都看過《豪門夜宴》這部香港老電影。張學友、梁朝偉演的拍馬屁的場景太有意思了,其中有這樣一段:當兩馬屁精幫老板說出主意,老板馬上叫 停,然后拍一下腦門:“哦。。。我想到了。。。”,把別人的idea當成自己的說出來。我在工作中還真不止一次遇到這種事,我提出來的想法老被別人拿來當 作自己的原創(chuàng),當然個別小偷洋洋得意的描述自己的‘原創(chuàng)’時還會偷偷的瞄我一下,看我有沒有不高興,,,我并沒有不高興,大概是因為想到那個電影段子被逗 樂了。天下學術都一大抄,更何況什么想法,什么創(chuàng)新,通通都是浮云!

          君不見創(chuàng)新項目一大堆,都被抄死化成灰
          ! 但是不能因此而放棄創(chuàng)新,大地不可以因為有畜牲吃草而不復生機,山泉也不會因為有王八偷水而不冒活水。第一點:保持有一顆生機靈動的心。因為這個東西是別 人偷不走的,也是最大的財富。如果你不俱備這個東西,那么請用一顆善心去培養(yǎng)它。人人都是耀眼的珍珠,只是被灰塵蒙蔽了眼。

          記得剛進公司那會踏踏實實工作,滿懷激情。不過第一周就把自己的頂頭上司給得罪了,我并沒有做錯什么,記得當時還有同事幫我說話,后來慢慢發(fā)現(xiàn)他是一個相 當自負的人。不過話說回來搞技術的在技術方面有幾個不自負。這次事之后我并沒有學乖。對于別人設計不合理的地方,我會指出來,并提出該如何做。對于語言基 礎薄弱,設計模式薄弱的同事,我會好心推薦一些書籍,,,,,,本是好心幫助別人,卻并沒有得到別人的感激。相反,大部分會覺得你看不起他們,更有甚者不但不會反思改進自己的弱點,反而打擊報復看不起他的人。所以千萬請記住第二點:不可以隨便提意見。特別是新人,請務必保持低調。這一點在日常生活中同樣實用。

          與第二點相對,第三點:經常肯定、稱贊同事的成果和進步。注意這里并不是要你去巴結討好。常常看到別人的優(yōu)點并加以肯定也是比較正面和必要的行為。這樣不但可以增進關系,更重要的是可以鼓勵別人。

          我一直認為一個人沒有自知之明就等同于垃圾。要隨時隨地知道自己小名叫什么。話說我有一位同事,基礎相當薄弱,但又太愛去表現(xiàn)自己,經常到處指指點點,生怕別人不知道自己是“高手”。由于老開“黃腔”常被人背后偷笑而不自知。

          第四點:低調一些,謙虛一些不斷提高自己的實力。進公司時所在部門是剛成立的,工作一段時間后,我發(fā)現(xiàn)由于部門團隊開發(fā)的特殊性很有必要在公司通用編碼規(guī)范基礎上再制定內部的編碼和設計規(guī)范,于是向上司 提了我的想法,他同意了。于是我起草了一個內部規(guī)范手冊。但是執(zhí)行過程中,有人按手冊來,有人不按手冊來。產生這種局面的根本原因是上司并沒有支持。

          在這 里沒有必要分析原因,直接給出要記住的第五點:不在其位,不言其事。做好本職工作就好。無論在什么地方,開明而大度的好上司并不多,所以這一點相當重要。

          經常在開會討論設計方案的時候,會發(fā)現(xiàn)一個非常有意思的事情。會議本來進行的正常而和諧,當輪到某個優(yōu)秀的人上去講的時候,氣氛一下子不和諧了。大家都迫 不及待的想挑出他的毛病,就算沒理解別人的意思也會亂說一氣。秀才遇到兵了,,,,,,以前實習的公司中也時常見到這種情況。每當此時我都會在下面感嘆: 好一幅百鳥鳳圖。請記住第六點:木秀于林風必摧之,要懂得韜光養(yǎng)晦,不要時時鋒芒畢露

          公司里有個老員工,實力比較強,算是一個獨擋一面的人。不過在一次部門改組中并沒有得到提升,被提升為經理的反而是一個能力不算太強,還比他晚來的人。在此之前我聽到過那個老員工在和其它公司接觸并準備跳槽的傳聞。第七點:不到最后一刻,自己離職的想法不可以和公司內部任何人分享。因 為站在公司的角度來看你已經不忠誠了,不愿意重用你了。但是在員工自己的立場來看,公司給的待遇與能力不成正比、不認同公司的文化、想換個環(huán)境、想要一個 更好的發(fā)展機會,這些都是合情合理的。我個人發(fā)現(xiàn)一個規(guī)律:在一般的公司里,凡是堅持到最后經受住了“考驗”的“忠誠”者,往往都是沒什么能力的庸才。如 果你是一個公司高層管理者,那么你會如何對待類似的“叛徒”呢?

          第八點:不得罪辦公室里的女人。此處女人定義如下:(1)國寶級的女程序員; (2)女測試,這個不稀罕 ;(3)女助理,到處都是;(4)女上司,這個最要命!   男的處在一起,有什么沖突矛盾吵吵過了就忘了。但女的不一樣,一不小心就得罪了,后邊一逮到機會就會擺你一道,還沒完沒了!最要命的是:背地里狠狠的陰 你,而當著面表現(xiàn)得像你溫馨的親人。

          我們研發(fā)中心有個領導很可愛,不太清楚上面給他灌了什么迷魂湯,以至于自己職位被降了,職權被銷了很大一部分,還整天手舞足蹈高興得很。事后一兩個月才反 應過來不對勁,然后整天愁眉苦臉、、、、、、以這種交際反應的速度,被撤是必然的事情,確實不適合搞管理。技術男大多腦袋是‘方’的,不太善與處理人際關 系。第九點:加強交際能力。程序員大多還算是聰明的,平常稍稍注意一下就沒什么大問題。不過不要自我感覺良好,我們公司有個工作了十多年的IT男,幾年前就開始被派除去和客戶溝通,丫的,至今那一口吞吞吐吐的蹩腳的普通話讓人聽了就傷心。

          第十點:若無特殊情況,一定不要跨級匯報。這一點 細節(jié)很重要。某種意義上你的頂頭上司就是你的老板,直接決定了你的發(fā)展,你就是他手下的兵。并不是誰官大就聽誰的,要不然歷史上那么多兵變都不可能成功, 因為大家都只聽皇帝的,呵呵。從另一個方面講,你‘忠于’你上司的上司,他也不敢用你,因為誰知道提拔你之后,你會不會再越一次級?!!

          第十一點:要善于向上司匯報工作。國家干部是不是 人民的公仆本人不太清楚。但公司里那些大大小小的管理者一定是(如果不是這樣那他就不是一個好上司)!那群夾板男,看著是個官,其實過得很苦。既要應付好 上面的領導,又要充分調動下面群眾做出業(yè)績,整天搞得焦頭爛額。上面的唱白臉,那么夾板男就唱黑臉。總之挺不容易。他們的猜疑心很重!時常會懷疑下面的人 沒盡心工作。雖然一般公司都有什么任務分配管理系統(tǒng),但是那東西遠遠不夠。你需要找準時機讓他清楚你工作進展,你所做出的努力。

          第十二點:不要輕易造成情緒污染。不要因為你一個人不高興,而讓別人都看你的臉色。要學會雪藏自己的情緒。你若是一個領導,那這一點就太要緊了。

          第十三點:一舉一動找準自己的位置、別人的位置。比如:吃飯時的座次,照相時的排列位置,群發(fā)郵件時收件人的排名順序,文檔作者的位置順序、、、、、、這些都很重要。《易經》中有講:明相位,立德業(yè)。要是你連自己在哪兒都不知道,你又如何到得了目的地。

          第十四點:沒有必要做一個憤青。剛畢業(yè)那會,我很憤青,看不慣這看不慣那。但是又能怎么樣呢?弱肉強食的本質從來沒有改變過,你要學會嘗試去理解這個社會,理解種種關系。到某個時候你會發(fā)現(xiàn):一切理所當然。你若真的不滿意某個現(xiàn)狀,那么就去盡自己的能力去改變它。勢者,不均也!均則無勢。

          第十五點:記住別人的善,忘記別人的惡。一個人心 里不應該有太多仇恨,仇恨是別人扔給你的垃圾,你又不是垃圾桶,老裝著它做什么?在公司當算法工程師近三年了,別人怎么對我,我的心里跟明鏡似的一清二 楚。對我不好的人我并沒太在意,更別說去報復。相反,他們有事要我?guī)兔Φ臅r候,我總能真心實意的去幫,甚至主動幫忙解決問題。這是這幾年來,我對自己唯一 滿意的一點。我相信一句話:活著就是修行。但是你得清楚你修的是善行還是惡行。

          畢業(yè)三年了,看看走過的路,總覺的有點荒涼。確實真正明白了許多道理。感謝幫助過我的人,也感謝打擊過我的人。也許一個人只有親身經歷了困難才可能真正成長起來,由此我不得不感嘆造化的殘酷。

          posted @ 2012-06-20 10:03 writegull 閱讀(218) | 評論 (0)編輯 收藏

           感謝雷鋒網的投遞

          編者按:本文作者郭子威,前網易網站產品部總監(jiān),想要聯(lián)系的讀者可以在微博上@純銀V。其實,這篇文章是打算寫“大公司抄你腫么辦?”很明顯騰訊最典型嘛,以至于我還在網易的時候,Boss也問我,騰訊抄你怎么辦?此時屢屢有一股邪火在胸口燃燒著,想大吼一聲:騰訊抄我怎么辦?老子跳槽去騰訊!最后我還是選擇了創(chuàng)業(yè)。


          我在網易5年,一直帶業(yè)務部門,從內容總監(jiān)轉職產品總監(jiān),算得上資深中層吧。網易做產品的環(huán)境,放在業(yè)內大約是中等偏上,它的好處別家未必有,弊端 則是寰球同此涼熱。年初跟VC談天使融資的時候,對方大統(tǒng)領換了一個問法:如果網易抄你怎么辦?我很吃驚地回答,如果留在網易就能把這個項目做出來,我還 創(chuàng)什么業(yè)?難道你以為我創(chuàng)業(yè)是為了發(fā)財、專權,或者給自己戴上SB風格的CEO頭銜?

          那么大公司到底是真老虎還是紙老虎?我得從大公司業(yè)務運作的常識說起。

          ▎部門背景
          大公司是一個籠統(tǒng)的概念,由若干個事業(yè)部>大部門>中小部門>項目組構成。其中戰(zhàn)斗力過硬的項目組是少數,王牌軍不足十分之一,而水貨項目組的占比至少超過一半。
          我們品頭論足說XX公司的產品做得很好,其實是某幾個項目組實力非凡。如果不與他們正面對抗,其他組做產品也就是60出頭的平均分。難道你連產品70分都沒有自信?沒這自信你還做個屁啊。

          所以在忌憚大公司之前,先摸摸底,和你競爭的大公司項目組歸屬在哪個部門下面,它又是什么背景。正如我以前對某大公司很是好奇,為什么一部分業(yè)務很爛,另一部分很贊?內部人士答:因為它們分屬于兩個不同的事業(yè)部,一隊落魄邊沿化,另一隊則是常勝王牌軍。

          ▎業(yè)務關聯(lián)
          有些時候,你發(fā)現(xiàn)某大公司和你進入了同一個競爭領域。別著急,先看看做這個項目的部門,主營業(yè)務是否和該項目在同一條中軸線上。

          由于野心的驅動,部門主管常常會批準一些和主營業(yè)務關系不大的,想象空間又很大的項目,妄想別錯過金礦。然而這只是投石問路,買張彩票,主要的資源 仍然在主營業(yè)務線集中,更不可能忍受平緩的增長曲線(掘金心態(tài)嘛,哪怕掘到銅礦也會斷然放棄)。外界看見“XX公司悍然進入XX領域”……屁嘞,只有做這 個項目的團隊甘苦自知,時間緊/期待高/投入少,不掛基本上不可能。
          緊接著上一條,對大公司對手的部門背景作詳細調查,或許能解除你對那個龐然大物的恐懼心。如我以前在網易門戶做攝影分享社區(qū),第一年里,有8個月分到了1 位工程師的工時;接下來一年總算有3位工程師了,其中2位又是實習生。我熬了整整3年,3年吶,才熬到基本夠用的技術人員配置,那時市場機遇早已消失不 見。

          ▎公共資源
          大公司的公共資源往往包括如下部分:UED、QA、推廣位,集中調度以提高利用率。有時候運營人員也是公共資源,有時候更慘一點,連程序員都是公共資源。 雖然家底殷實,公共資源攤薄到每個項目上便很寒磣,所謂僧多粥少。項目經理可能把自己有招聘權的人給湊齊了,但他還得腆著臉找各個公共部門老大要資源,有 時是懇求,有時是苦苦哀求。

          跪下來舔鞋都提不上工單的時候,我以前還使過一茅招,搞點部門經費,請前端組的同事私底下幫忙切圖……當作付費外包來對待。那時視覺稿已經堆了個把月,沒法推進一步。類似的木桶效應多如牛毛,幾乎每個大公司項目都會遇到,偏偏使不上力,被短板卡得上氣不接下氣。

          即便搶到了(勉強夠用的)公共資源,你還得面對分配資源的隨機性問題。比如說小清新風格的產品,能分到擅長此風格的設計師嗎?不能,誰空下來分派 誰。擅長小清新的設計師當然也有,人家正在別的項目組,即便那個項目惡俗,設計師也很不開心,做到一半怎可能中途離場。所以我以前跟PM說:有人幫你做就 快去燒香還愿,有推廣位到手就感恩熱淚盈眶,你還挑啥子挑喃?十幾個部門幾十個項目都鬧著要最好的最合適的,你讓UED情何以堪喃?

          由于公共部門采用派單制,大部分人員缺乏項目歸屬感,榮譽感,他既無法全程參與,也很難真正融入項目組里邊。座位經常隔了幾百米,一周只能碰頭兩三 面,甚至因為參與時間短暫,就連對產品的理解也比較淺,應付完這個應付那個,“應付了事”的心態(tài)極為常見。往往只有項目經理把產品當兒子看,別人都當成牽 到自己家里來串門的鄰居小孩兒。

          更能理解的是,公共部門這個月做A項目的單,下個月做B的單,這個月A項目組請飯請求加班,下個月B請飯請求加班。項目上線你們倒是領功/打賞/休 假,下一個項目組又聲淚俱下說這單子特別重要,非得拉兄弟一把不可。這豈不是“無窮無盡的加班”“無窮無盡的拼這一仗”?你們少來誑老子……
          曾見以前合作的設計師,私底下為自己做了款玩票的APP,比當初花兩三個月為我們部門設計的APP,起碼高出兩個等級。當真刮目相看。

          ▎KPI

          KPI是萬惡的,沒有KPI又是萬萬不能的。

          所謂KPI,屬于體制的一部分,也是大企業(yè)病的一部分。這個世界上不靠譜的人和項目占多數,衡量創(chuàng)業(yè)團隊是否靠譜的標準很簡單——剩者為王。這是一款生存游戲。

          隨著公司活下來并且膨脹起來,自然淘汰的篩選法很快失了效。創(chuàng)業(yè)意味著高風險和高收益,當創(chuàng)業(yè)團隊成長為中型公司,大公司,則個人的風險降低(收入 增加,薪資職位穩(wěn)定),收益也降低(期權減少甚至沒有),容易滋生更多輕浮的冒險,拿公司的錢去玩自己的票,修筑各種爛尾樓。如果不用KPI來制衡,十八 般瞎折騰便掏空公司資源。人家旱澇保收底薪很高的,人家從折騰中賺到了經驗值,就算引咎辭職,下一份工作還能拿到更高薪水的,而你老板呢,資產耗光只能去 擺地攤了。

          鑒定和約束各種瞎折騰的管理手段之一,我們稱之為項目KPI,即階段性的項目考核。在這個過程中證明自己靠譜,項目有戲,公司才會繼續(xù)支持你。以我 所見,雖有不少被KPI整死的好項目,但95%以上被涮掉的,確為次品,事后一齊流淚控訴KPI之惡貫滿盈,覺得失敗原因是“公司不給支持”。問題是怎么 證明你和這個項目值得更多的支持?怎么證明你是有可能成功那5%,而不是注定失敗的95%?

          老板畢竟不是天網,他不可能什么都懂,尤其對新拓展的業(yè)務,一旦超出了高層的成功經驗領域,只能靠KPI來判斷項目前景。這同時意味著[要命的]公 司對項目缺乏耐心和遠見。若不能看到短期數據利好,則支持度快速下降,資源供給減少,方向盤立刻打到一條名為“黃泉”的路上。預見到滅頂之災又會干擾項目 經理的判斷,往往使些目光短淺,飲鴆止渴的茅招出來,茍且保得眼前性命。

          ▎高層干預

          剛才提到大公司對新業(yè)務缺乏耐心和遠見,這根子還在公司高層身上。所謂高層,最低也是管轄幾百人的方面大員,通常從VP起計。能做到大公司高層必有 過人之能,不幸人過30歲后對新領域的學習能力直線下降,再加上行政事務纏身,無法專注于業(yè)務。故而對于市場拓展,大部分高層混合了視野狹窄與剛愎自用這 兩種特質,必然大量依賴KPI管理。

          反過來看,如果高層瞄準了某個項目,下決心賭上一把呢,它就會得到更多的資源和寬容,初期KPI有可能壓根不設,所有公共部門都圍著你打轉。高層力 挺可以解決掉60%的大企業(yè)病,作為創(chuàng)業(yè)團隊,遇到這樣的對手是件挺可怕的事情,還好它們只是極少數,占比不足5%。而你會因為大晴天也有可能下雨沾濕 鞋,就畏畏縮縮不敢出門嗎?

          何況高層的支持是一把雙刃劍,他會給你喂足糧草,釘好蹄鐵,同時也給你戴上嚼子,圈定方向甚至策略。那么高層指定的方向策略出錯呢?恭喜,貴項目掛了。長官意志令如山,最怕長官是外行。

          另一些情況下,大公司項目因為資源不足,資源錯位而做砸,其實還是高層的決策影響。他認為給這些支持已經足夠看清前景,若是敗局,又何必豪賭下去。畢竟主營業(yè)務還賺錢嘛,還有得選擇,反倒是“沒得選擇”轉化為創(chuàng)業(yè)團隊背水一戰(zhàn)的韌性所在。

          ▎齊心協(xié)力

          說句聽上去挺刺耳的話,大公司里很難談真正的齊心協(xié)力。按我的理解,齊心協(xié)力的基石不是個人素質,而是成員都適合這個項目,喜歡這個項目,自然努力 團結。可你加入某一家大公司,往往受其光環(huán)/福利/資歷的吸引,有個坑就猛往里跳,其后轉崗不易。做什么項目亦受到部門限制,自主權有限得很。
          換句話說,參與大公司項目組的,并不是最適合,最喜歡這個項目的人,而是項目經理目前能搞到的人(調動、招聘以及公共部門派單)。甚至項目經理本人也是奉 命而為,或無奈抓鬮。驅動工作的動力是職業(yè)道德,季度考核,獎金與功名,卻非你對這款產品的愛。老實承認,我自己即是一例。哪怕在網易加班極多,直到辭職 出來做有愛的產品,方才覺得過去皆是行尸走肉。

          而我目前的創(chuàng)業(yè)團隊只有6個人,來自5家大公司(上市或即將上市)。你說大家放棄了高薪福利,穩(wěn)定工作,來上海做一款前途未卜的產品是為什么?當然不是服了我的三尸腦神丸……

          于是我現(xiàn)在的項目速度比之前在網易快3倍,工作進展有規(guī)劃,無管理,隊員的主動性之強,內部合作的愉快與默契是過去從未經歷過的。兩個字:“開心”。換回大公司,那得打多少雞血開多少動員大會啊,最后有人還在會上睡著了。

          ▎人多嘴雜

          小團隊憑什么跟大公司競爭呢?有人說是“專注”,有人說是“耐心”,有人說是“遠見”。這些都對,我還要補充一點,小團隊一定要比大公司犯更少的錯。

          這句話聽上去挺莫名其妙的,大公司人才濟濟,小團隊憑什么跟人家比正確率?回答很簡單:人才濟濟,同時也人多嘴雜。給項目提意見的人越多,執(zhí)行效率 越低,這是鐵一般的定律。尤其當建議者中包括各級領導的時候,決斷就更加飄忽不定。你非得考慮上司的立場,部門的立場,微妙的公司政治環(huán)境,固然不乏真知 灼見,合攏在一起便成噪音干擾。大量時間花費在報審/修改/開會/爭吵/寫文檔/走流程上面,行動遲緩舉棋難定,更增加誤入歧途的概率。

          相比之下,小團隊的快速決策,快速行動,正好擊中了大公司的軟肋。一款新產品出來,大公司實權派發(fā)現(xiàn)它起碼得2個月,看懂它2個月,立項組好隊還得 花2個月。再加上市場前景不明朗,在創(chuàng)新者大紅大紫之前,大公司愿意投入(冒險)的資源是極少的,試水而已,復制抄襲多于革新改良,保守跟隨多于銳意開 拓。結果一兩年過去了,創(chuàng)新者勇猛精進已成氣候,大公司才回過神來,欲與之全力一搏。人家的前期積累已領跑市場,后來者未必追趕得上。

          類似案例,多不勝數。創(chuàng)業(yè)者眼里唯一的好機會,大公司看來卻只是1000個模糊不清的機會之一,拿捏不定。由此逆向思維的話,創(chuàng)業(yè)團隊最好不要插入 大公司的主營業(yè)務去虎口奪食。人家苦心經營多年,憑借對這塊市場的理解力和戒備心,會更快發(fā)現(xiàn)你,重視你,然后高層吹響號角擊潰你。但你去開辟新戰(zhàn)場呢, 大公司跟還是不跟,用多大力跟,往哪個方向走,它就很難統(tǒng)一內部意見。

          ▎基因轉移

          人都艷羨大公司“資源多”,所謂資源,一半是人才資源,一半是海量用戶,即推廣資源。然而不常被提及的是,大平臺的團隊基因/用戶構成/用戶習慣,與新項目是否吻合。或者籠統(tǒng)點說,大平臺的資源優(yōu)勢是否能向新項目平滑過渡。

          我一直是“基因論”的支持者,公司實權派的個人偏好,決定了團隊構成與文化,進而決定了主場優(yōu)勢與劣勢。正如APPLE在社交網絡幾戰(zhàn)皆敗,偉大如 Google也被Facebook壓得抬不起頭來。只是受到野心蠱惑,即便八字不合,大公司也會悍然進入新領域(憑什么我不行),隨后又慘然退出(原來我 真不行)。

          比團隊基因更令人惱火的,是用戶基因,即當前用戶群的構成與使用習慣。做產品經常遇到“跨域”這個問題,借勢推廣也一樣。新項目的產品訴求,用戶構 成,如果和母體在同一個域內,則資源優(yōu)勢平滑過渡,對競爭者是致命的殺傷力。但其實……平滑過渡又是一件特別不多見的事情。有時新項目整個的跨域,比如騰 訊做拍拍,做朋友,導入損耗率驚人;有時大平臺向垂直市場細分,無法精準過濾推廣目標,導入用戶良莠不齊得厲害,對于重視“氣質、氛圍”的垂直市場則是拔 苗助長。

          以我之前做網易攝影為例,不推吧,在大公司做產品跟創(chuàng)業(yè)有多大區(qū)別,生怕浪費了資源。推吧,不搭邊的人路過都來踩一腳,各種低端用戶、自拍用戶、審 美低下熱情萬丈的中老年用戶蜂擁而入,氛圍混亂,運營成本指數級上升,最終受困多過受益。反倒是獨立攝影產品如圖蟲,用戶氣味相投而來,自然增長營造的社 區(qū)氣質遠勝從大平臺引流,氣質恰恰又是社區(qū)的核心競爭力。

          做產品,鮮有一夜暴富,尤其UGC,口碑帶動增長才是最穩(wěn)健的方法。道理固然大路貨,KPI壓力下卻容易急于求成。母體供血一旦大量摻水,相當于修 煉邪道武功,起步快而后力不濟,很快會觸碰到天花板。這時大平臺所謂海量用戶,反倒成為盛滿鮮花的陷阱,涂抹蜜糖的慢性毒藥。好似小時候四環(huán)素治病,長大 后燦然一笑露出滿口黃牙。

          總之,在大公司里做產品的雷區(qū)多多。與內部環(huán)境作戰(zhàn)所使的力氣,往往占到血槽的2/3強,只留下不足1/3去對付市場。它抄你,不見得就打得過你。 它是個大家伙,但也喜歡把兩個腳拇指綁起來走路。在多數情況下,大公司的新項目只是全身掛滿鉆石鐐銬的,虛弱的巨人,被它抄死多半說明你太遜色,而不是大 家伙太兇惡。
          不過,這個行業(yè)的主流論調并不這么看。

          最近幾個月,各式各樣的人紛紛來問我,既然立志創(chuàng)新,大公司抄你怎么辦?

          對這個問題,我有各種具體的回答,但都不是真心話。只是面對某些人,比如投資人的時候,你跟他講虛的,會被當成噴子,得表示我有明確的對策……其實對策易變,反倒是“產品哲學”這類虛的東西更加恒定。

          我真心的態(tài)度可以用三次自問自答來概括。

          1、我的產品質量能不能打敗跟隨者,至少是與跟隨者各擅其長?

          如果做不到,這不是我被抄的問題,是我太挫,我認栽。競爭會刺激我提高產品質量,未必是一件壞事。

          2、假定產品通過創(chuàng)新,打開一個新的細分市場,這個市場是否足夠大,大到可以容納下多個競爭者同時生存?

          如此則對手亦是隊友,我們一邊互相作戰(zhàn),一邊共同開墾荒地,聯(lián)手培育市場。即便最后我只拿到第三、第四的份額,也不錯啊,誰規(guī)定創(chuàng)新者就非得獨吞整個市場不可——初夜權不等于占有權,市場又不是從一而終的貞潔牌坊。

          3、除了用戶口碑之外,產品是否有具象化的的價值沉淀?

          比如黏性強的用戶關系,比如用戶留存的他看重的內容,比如有忠誠度的優(yōu)質內容發(fā)布者,比如含金量與時效性較長的信息。這些沉淀即防御壁壘,從產品架構階段就應該提前考慮,決定了防守反擊的難度。

          所以別人來不來抄這種事情,我從來都是不大關心的,偶爾想想,從不憂慮。周鴻祎有句話說得很好,少盯著對手,多研究用戶。一天到晚擔心“騰訊抄我怎 么辦”?擔心有屁用啊,萬一產品做得不好,騰訊抄都不屑于抄,那得白白浪費多少腦能量。我只管埋頭做自己的產品,洪興罩我去戰(zhàn)斗~

          換個角度看,哪怕比較倒霉,很快被大公司看得起并臨幸了,對手在高層力挺下全力以赴地復制并改良,它的基因剛好又平滑過渡……那么,我掛了。但產品 創(chuàng)新若是如我所愿地打開某個細分市場,改善某類用戶體驗,作為始作俑者,老子傾家蕩產,雖敗猶榮。“小小改變世界”比“賺到一千萬”更值得追求。

          正如我在微博里所說:阻擋你創(chuàng)新的是“無能”而不是“抄襲”,鼓舞你創(chuàng)新的是內心驕傲而不是永遠獨占鰲頭。

          文/benimaru zhang

          posted @ 2012-06-14 10:08 writegull 閱讀(233) | 評論 (0)編輯 收藏

          openURL的使用方法:[[UIApplication sharedApplication] openURL:[NSURL URLWithString:appString]];
          其中系統(tǒng)的appString有:
          1.Map http://maps.google.com/maps?q=Shanghai 
          2.Email mailto://myname@google.com 
          3.Tel tel://10086 
          4.Msg sms://10086 


          openURL能幫助你運行Maps,SMS,Browser,Phone甚至其他的應用程序。這是iPhone開發(fā)中我經常需要用到的一段代碼,它僅僅只有一行而已。

          //打開地圖

          - (IBAction)openMaps {
          NSString*addressText = @"beijing"; //@"1Infinite Loop, Cupertino, CA 95014"; 
          addressText =[addressText stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding]; 
          NSString*urlText = [NSString stringWithFormat:@"http://maps.google.com/maps?q=%@",addressText]; 
          NSLog(@"urlText=============== %@", urlText); 
          [[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlText]];
          }

          //打開mail

          - (IBAction)openEmail { 

          [[UIApplication sharedApplication]openURL:[NSURL URLWithString:@"mailto://devprograms@apple.com"]];

           }


          //撥打電話 

          - (IBAction)openPhone {

           [[UIApplication sharedApplication] openURL:[NSURLURLWithString:@"tel://8004664411"]]; 

          }

          使用這種方式撥打電話時,當用戶結束通話后,iphone界面會停留在電話界面。
          用如下方式,可以使得用戶結束通話后自動返回到應用:
          UIWebView*callWebview =[[UIWebView alloc] init];
          NSURL *telURL =[NSURL URLWithString:@"tel:10086"];// 貌似tel:// 或者 tel: 都行
          [callWebview loadRequest:[NSURLRequest requestWithURL:telURL]];
          //記得添加到view上
          [self.view addSubview:callWebview];

           還有一種私有方法:(可能不能通過審核)
          [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"telprompt://10086"]];


          //打開短信

          - (IBAction)openSms { 

          [[UIApplication sharedApplication] openURL:[NSURLURLWithString:@"sms://466453"]];

          }


          //打開瀏覽器

          -(IBAction)openBrowser { 

          [[UIApplication sharedApplication] openURL:[NSURLURLWithString:@"http://itunesconnect.apple.com"]]; 

          }

          posted @ 2012-06-13 17:09 writegull 閱讀(604) | 評論 (0)編輯 收藏

          北京時間6月9日消息,據外國媒體報道,谷歌在招聘員工和工程師時,往往會問應聘者有關技術方面的問題。蘋果卻大不相同,總是會司會問一些腦筋急轉彎風格的問題,提出一些與硬件規(guī)格相關的問題,此舉似乎更多的是希望從潛在的員工身上挖掘更多的創(chuàng)造力。蘋果的這些問題不僅針對技術人員,甚至還針對銷售人員和其他特殊人員。以下就是美國網站GlassDoor提供的蘋果在面試應聘人員的最有趣味性的15道題目:

            1、桌上放置了一部舊iPhone,你能看到哪些材料?

            招聘職位:產品設計工程師。

            在蘋果公司工作的多數員工,都會了解供應鏈的成本事務,以確保盡可能地減少生產手機的產品成本。蘋果手機是極具價格競爭優(yōu)勢的產品,所以你必須知道如何從事控制成本相關的工作。因此,具備專業(yè)的材料及其屬性相關的經驗將有助于你在生產手機設備時降低成本。

            2、描述使用蘋果產品的情況

            招聘職位:銷售員。

            如果你想銷售蘋果產品,最好已經是蘋果用戶。無論如何,蘋果不會聘用一個從未使用蘋果iPhone手機的人來擔任公司的銷售員工。

            3、如果測試部門否決了500臺洗衣機,那么你將如何查找根源并找到解決之道?

            招聘職位:產品質量工程師。如果在生產中發(fā)生了故障,就可能會導致數百部iPhone手機受損,甚至也可能會此起成千上萬的收入受損。如果你想管理產品質量,那么就必須確保你能夠發(fā)現(xiàn)所有產生的問題,特別是那些在供應鏈初期階段就出現(xiàn)的問題。

            4、你如何在資源非常有限的環(huán)境下將處理網絡、文件系統(tǒng)、用戶界面系統(tǒng)等的線程模型轉化成用戶空間框架?

            招聘職位:軟件工程師。

            編寫運營程序的代碼較為容易,但是要讓它有效的工作就會很難了,特別是當你為手機設計軟件時,你必須依賴低功率的芯片來確保電池壽命延長。

            5、你如何計算來自中國的蘋果供應量?

            招聘職位:材料項目經理。

            他們正在探討字面意義上的蘋果,如你所知,就是水果。不過,這也是一道非常基礎的供應問題。如果你負責管理供應鏈,那么你就需要確切的知道供應 商供應何種產品、以及能夠提供什么樣的材料。蘋果公司幾乎為其生產的智能手機購買所有最好的元件,如果你能夠充分了解整個供應鏈,那就能夠減少成本。

            6、使用運營放大器來設計一個LED驅動

            招聘職位:硬件工程師。

            通常情況下,產品不會在非常優(yōu)化的環(huán)境下運行。事實上,運行環(huán)境要么太熱、要么太冷、甚至還會在水中。因此,你必須確保你的產品能夠在非最優(yōu)化的環(huán)境下運行。

            7、如何診斷緩沖溢出問題?

            招聘職位:軟件工程師。

            通常情況下,確定誰是最有才華工程師的最佳方法就是問他們如何去解決問題。緩沖溢出問題一旦產生,就可能會引發(fā)巨大災難,因此,如果你想測試你的工程師在極端復雜問題面前如何采取什么行動的話,那么這將是值得提問的好問題。

            8、你有100個編號的燈泡,在第一環(huán)節(jié)中都打開這些燈泡,然后再換上其它的新燈泡,依次類推,這樣100次過后,還有多少個燈泡在亮著?

            招聘職位:高級軟件工程師。

            實際上,蘋果的面試官并不是最傳統(tǒng)的人,他們會從Khan Academy網站引用一些腦經急轉彎風格的問題,但是,這些問題一般都是涉及一些數學技巧的復雜問題,因此,要想測試一個工程師解決問題的能力,這些問題都將是值得提出的好問題。

            9、你如何及時地關注科技新聞?

            招聘職位:Mac人才。

            如果你想運營蘋果零售商店,那么還需要確保你具備一種認知感覺——即了解人們如何從新聞中理解蘋果公司。蘋果的面試官想以此了解應聘人員是否會瀏覽TechCrunch、heck或Business Insider之類的網站。

            10、你從一個6×6的網格的左上方開始,可以向下或者向右移動,那么你會有多少種方法能夠到達網格的右下角?

            招聘職位:高級軟件工程師。

            這是一個叫作“路徑計算”的問題,也是最基本的一種腦筋急轉彎問題,這樣的問題旨在測試應聘人員如何思考問題,以及能否找到解決問題的方法。蘋 果會向他們的部分高級軟件工程師提出一些更加瘋狂的此類問題,這一點也不足為奇。這樣的問題也取自于Khan Academy。

            11、你如何檢驗表面曲率的連續(xù)性?

            招聘職位:CAD制圖員。

            蘋果為自己的設備繪制了大量的原型——例如iPhone和iPad的原型等。那些原型都需要進行測試,因此,你需要讓一些人快速的繪制出原型。但是,還要保證與蘋果的其它設備保持一致,因此,你需要確保你的制圖員和設計師具備完美的意識,甚至設計玻璃的形狀。

            12、找到鏈接列表的中間點

            招聘職位:Cocoa camp。

            蘋果會要求他們的軟件工程師提供一個更明智的解決方案。例如,你可能會獲得兩個“指示器”,一個指示器在鏈接列表中每次移動一步,另一個每次移動兩步。當另一指示器到達終點時,那么第一個指示器所處的位置就是鏈接列表的中間點。

            13、如果你可以帶一件科技產品到偏遠的地方,那會是什么?

            招聘職位:專員。

            這是一個帶有“欺騙性”的問題,蘋果可能是在測試你是否喜歡iPhone手機。在蘋果店的銷售人員(蘋果店專家就是干這個的)必須非常喜歡蘋果產品。

            14、在金屬片上打出5個洞眼的方法?

            招聘職位:產品設計工程師。

            蘋果需要確保其設計師和硬件工程師至少都具備一定的創(chuàng)造力,即使他們必須成為超級技術專家,因此,即使是讓你在金屬片上打洞這樣的簡單問題也可能會有很多的解決方法。事實上,蘋果是在測試應聘人員的創(chuàng)造力。

            15、你認為中學里什么樣的群體最好或最簡單?

            招聘職位:專員

            如果你想在蘋果商店中挑出那些更可能購買蘋果產品的專門用戶,你就需要具備了解這些用戶是什么樣的人,無論他們是否購買蘋果產品,你都需要作出記號,并盡可能快地區(qū)別出來。 

           

          posted @ 2012-06-09 14:23 writegull 閱讀(326) | 評論 (0)編輯 收藏


          屏幕快照 2010-12-27 上午10.20.03

          實現(xiàn)如下代碼:

          - (void)viewDidLoad {
          [super viewDidLoad];
          segmentedControl=[[UISegmentedControl alloc] initWithFrame:CGRectMake(80.0f, 8.0f, 70.0f, 25.0f) ];
          [segmentedControl insertSegmentWithTitle:@"T+" atIndex:0 animated:YES];
          [segmentedControl insertSegmentWithTitle:@"T-" atIndex:1 animated:YES];
          segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar;
          segmentedControl.momentary = YES;
          segmentedControl.multipleTouchEnabled=NO;
          [segmentedControl addTarget:self action:@selector(Selectbutton:) forControlEvents:UIControlEventValueChanged];
          UIBarButtonItem *segButton = [[UIBarButtonItem alloc] initWithCustomView:segmentedControl];
          [segmentedControl release];
          self.navigationItem.rightBarButtonItem = segButton;
          [segButton release];

          }

          -(void)Selectbutton:(int)sender{
          UISegmentedControl *myUISegmentedControl=(UISegmentedControl *)sender;
          NSLog(@”!!!!!!!!%d”,myUISegmentedControl.selectedSegmentIndex);
          switch (myUISegmentedControl.selectedSegmentIndex) {
          case 1:
          break;
          case 0:
          break;
          default:
          break;
          }
          }

          segmentedControl 中的字體也是可以改動的,代碼如下:

          -(void)ChangeSegmentFont:(UIView *)aView
          {
          if ([aView isKindOfClass:[UILabel class]]) {
          UILabel *lb = (UILabel    *)aView;
          [lb setTextAlignment:UITextAlignmentCenter];
          [lb setFrame:CGRectMake(0, 0, 80, 25)];
          [lb setFont:[UIFont systemFontOfSize:18]];
          }
          NSArray *na = [aView subviews];
          NSEnumerator *ne = [na objectEnumerator];
          UIView *subView;
          while (subView = [ne nextObject]) {
          [self ChangeSegmentFont:subView];
          }
          }

          在需要調用此方法的地方加入下面方法即可(分段控件中已經有分段按鈕時調用)

          [self ChangeSegmentFont:UISegmentedControl的對象];

          即可

          posted @ 2012-05-03 17:34 writegull 閱讀(4418) | 評論 (0)編輯 收藏

          僅列出標題
          共7頁: 上一頁 1 2 3 4 5 6 7 下一頁 
          主站蜘蛛池模板: 庆云县| 翁源县| 汝南县| 上杭县| 盘锦市| 永城市| 五华县| 苗栗县| 沧州市| 全椒县| 常熟市| 鄂托克旗| 二连浩特市| 淮滨县| 无棣县| 昆山市| 安达市| 林甸县| 布尔津县| 隆林| 什邡市| 阜宁县| 通海县| 望城县| 定西市| 福鼎市| 乌兰县| 嵊州市| 鹤山市| 丹凤县| 辽中县| 海阳市| 正安县| 财经| 富裕县| 郎溪县| 望城县| 霞浦县| 黄山市| 神池县| 时尚|