如何改掉晚睡的壞習慣?
嘗試有效的解壓方法:鍛煉,閱讀,聽音樂,和家人相處,按摩,散步,冥想,培養有創意的愛好;
放棄無效的解壓方法:賭博,購物,抽煙,喝酒,暴飲暴食,玩游戲,上網,花兩個小時以上看電影或者電視。
有效和無效的區別是?真正能緩解壓力的不是釋放多巴胺,而是增加大腦中改善情緒的化學物質,比如血清素/Y-氨基丁酸/催產素等等,這樣才是治本的。
posted @ 2015-04-27 15:34 whspecial 閱讀(18008) | 評論 (1) | 編輯 收藏
posts - 15, comments - 10, trackbacks - 0, articles - 0 |
|
附上URL:http://book.douban.com/subject/10786473/
1,鍛煉意志力的方法 A,每天冥想5分鐘 B,鍛煉 對于鍛煉有兩個常見問題,第一個是“需要鍛煉多久”,第二個是“什么鍛煉最有效”,這兩個問題的答案是“你想鍛煉多久”,“你真的會去做什么樣的鍛煉” C,睡眠 睡足覺能顯著提高自控力,因為睡眠不足會導致大腦缺乏足夠的能量進行自控。 如何改掉晚睡的壞習慣? 真正的問題并不是強迫自己去睡覺,而是強迫自己在一定時間之后就遠離那些讓自己無法睡覺的事情。 2,意志力的規律 A,每天的意志力變化規律:早上的意志力最強,隨著時間的推移而逐漸減弱。 方案:需要將最重要的事情放在早上處理 B,很多想不到的事情都是在消耗你的意志力:很多你認為不需要意志力的事情其實都在消耗你的意志,比如試圖融入一家價值觀和你不符合的公司,在糟糕的路況中上班,干坐著熬過無聊的會議等等。 方案:盡量避免這些事情的發生 C,壓力和情緒低落會導致意志力渙散:由于大腦的調節功能,如果一個人感覺到壓力和情緒低落,大腦會指引著你去做它認為能給你帶來快樂的事情,這樣會造成一個矛盾:有很多工作要完成的人,往往會選擇去玩游戲來排解壓力;需要控制支出的人會去大肆購物來排解壓力,這樣就造成了一個惡性循環。 方案: 嘗試有效的解壓方法:鍛煉,閱讀,聽音樂,和家人相處,按摩,散步,冥想,培養有創意的愛好; 放棄無效的解壓方法:賭博,購物,抽煙,喝酒,暴飲暴食,玩游戲,上網,花兩個小時以上看電影或者電視。 有效和無效的區別是?真正能緩解壓力的不是釋放多巴胺,而是增加大腦中改善情緒的化學物質,比如血清素/Y-氨基丁酸/催產素等等,這樣才是治本的。 D,不能自我諒解導致的自控力惡性循環:一次自控失敗往往會導致整個自控計劃的失敗,是第一次放棄后產生的羞恥感,罪惡感,失控感和絕望感,會讓人破罐子破摔。 方案:尋求自我諒解,只要是凡人都會有失去自控力的時候,挫折本身并不可怕,可怕的是自暴自棄。 3,意志力的誤區 A,不要把支持目標實現的行為誤認為是目標本身:比如在健身之后,有時會獎賞自己一瓶碳酸飲料,或者去吃燒烤,其實最終攝入的能量還要大于健身消耗的能量。 方案:要弄清楚自己的目標,不要將目標和過程弄混了。 B,誤將渴望當做幸福:由于多巴胺分泌的因素,我們往往將某些快感當做了真正的幸福,比如吃垃圾食品,無節制的游戲等等。 方案:我們需要區分讓我們的生活真正有意義的真實獎勵(有長久意義的,對生活有益的),和讓我們分散精力,上癮的虛假獎勵(短暫無用的,僅僅是刺激多巴胺分泌的)。 C,經常制定自控力計劃而不施行:很多人會重復的制定計劃,而不去執行計劃,因為制定一個計劃很容易,而且會讓我們心情大好,但是如果真的付諸實踐,帶給我們的快感遠遠小于制定計劃的快感。 方案:需要避免一個意志力陷阱:即用“改變的承諾”而不是“改變”來改善我們的心情 D,人類往往放棄未來更大的回報,而選擇即刻的滿足感:即刻獎勵會激活更原始的獎勵系統,即刺激多巴胺的分泌,而未來獎勵是刺激人類最近才進化出來的前額皮質系統。人類在面臨當前獎勵和未來獎勵的時候,兩個獎勵系統會進行斗爭。 方案:等待10分鐘,因為這10分鐘會降低即刻滿足的快感,讓大腦更理智的思考。如果10分鐘之后依然想要,則可以選擇即刻滿足。 posted @ 2015-04-27 15:34 whspecial 閱讀(18008) | 評論 (1) | 編輯 收藏 轉載自:http://www.blogjava.net/itspy/archive/2008/04/22/194686.html#Post log4j本來設置了要打印行號與文件名的,結果有的能打印出來,有的卻是亂碼,查了些文檔之后才發現,原來打印問題是因為編繹時沒有編繹進去調試信息,所以沒辦法打印. 但是我用的是Ant,如果在Ant編繹時,編繹進去調試信息呢,參考下面配置. <javac srcdir="src" destdir="bin" debug="true" classpathref="accrual.path" > 參考文檔 http://ant.apache.org/manual/CoreTasks/javac.html Log4j配置 log4j.appender.C1.layout.ConversionPattern=%F(%L)-- %-4r %-5p [%t] %37c %3x - %m%n posted @ 2014-03-11 15:57 whspecial 閱讀(563) | 評論 (0) | 編輯 收藏 摘要: 將排序二叉樹轉化成雙向鏈表,應該是一道很常見的面試題目,網上的實現比較多,有用遞歸也有用中序遍歷法的??吹揭晃煌鈬讶说膶崿F,還是比較清晰的,思路如下:
1,如果左子樹不為null,處理左子樹
1.a)遞歸轉化左子樹為雙向鏈表;
1.b)找出根結點的前驅節點(是左子樹的最右的節點)
1.c)將上一步找出的節點和根... 閱讀全文
posted @ 2014-01-03 00:41 whspecial 閱讀(3614) | 評論 (0) | 編輯 收藏 這一段在看《unix網絡編程》,回顧之前做項目用到的一些東西,在這里總結一下:
(1)TCP套接口編程 這里介紹各個接口函數: 1 文件描述符 -socket(int domain, int type, int protocol); //生成文件描述符 -bind(int sockfd, struct sockaddr *my_addr, int addrlen); //將本地的一個端口綁定到fd上,一般只需要在server端 2 服務端 -listen(int sockfd, int backlog); //有兩個作用:1,將主動套接口變為被動套接口;2,設置最大連接數backlog -accept(int sockfd, void *addr, int *addrlen); //為建立好的連接生成一個新的fd 3 客戶端 -connect(int sockfd, struct sockaddr *serv_addr, int addrlen); //進行socket連接 4 通信 -send(int sockfd, const void *msg, int len, unsigned int flags); //發送請求 -recv(int sockfd, void *buf, int len, unsigned int flags); //接收請求 ![]() (2)I/O多路復用 I/O多路復用是指內核一旦發現進程指定的一個或者多個IO條件準備讀取,它就通知該進程。按照《UNIX網絡編程》的說法,I/O多路復用用于以下三種情況: a)一個TCP服務器既要處理監聽套接口,又要處理已連接套接口; b)一個服務器既要處理TCP,又要處理UDP; c)當客戶端處理多個描述字(比如處理交互式輸入和網絡套接口) 目前被廣泛使用的是select和epoll: 2.1,select int select(int maxfdp1,fd_set *readset,fd_set *writeset,fd_set *exceptset,const struct timeval *timeout) 第一個參數指定最大的fd數目,中間三個分別是被監控的讀、寫、異常的fd集,最后一個是超時時間。select函數會阻塞等待,直到監控的fd集中有fd就緒,或者已經超時。 2.2,epoll epoll相比于select,主要的好處在于它不像select一樣去輪詢fd集,而是由內核去觸發;另外它支持更大的fd個數 (3)網絡服務器模型 其實網絡服務器模型還是比較復雜的,有一篇比較經典的文章叫做c10K problem,鏈接如下:http://www.kegel.com/c10k.html 這里記錄的是很簡單的幾種多線程TCP服務器模型,順便可以比較下: 2.1 主線程accept,為每個client創建一個線程 2.2 使用線程池,全部accept,當有連接來的時候其中某個線程進行處理 2.3 使用線程池,主線程accept,當有連接來的時候主線程將其放入隊列,由工作線程進行處理(生產者-消費者模型) 1方案過于頻繁地進行線程創建銷毀,2方案在一個連接過來時會帶來驚群現象,3方案會比前兩個方案要好一些。 posted @ 2013-10-31 00:32 whspecial 閱讀(2728) | 評論 (1) | 編輯 收藏 這是來自于阿里技術嘉年華的一個分享,因為在百度也考慮過類似的事情,所以聽得比較有感悟,這里把相關內容整理一下。 首先尊重版權,還是把原鏈接和作者貼上: http://adc.alibabatech.org/carnival/history/schedule/2013/detail/main/286?video=0 來自于阿里吳威工程師的分享
首先需要說明一點,跨機房hadoop可能應用場景并不是很多,國內像BAT這種巨頭也許需要,但是大部分的中小公司也許并不需要這個,也許這是個屠龍之技,呵呵。 把這個問題分三段來講,第一段是問題出現的背景,第二段是解決該問題的難點,第三段是最終的解決方案。 (一) 背景: 先要看下為什么需要做一個跨機房的大集群? 大集群的優點在于數據管理和授權容易(這個問題在一個多部門的大公司還是很重要的);跨部門的使用數據容易,無需重復拉取數據。 在集群達到一定規模時,單機房(機房內的容量是有限的)已經無法滿足集群的需求了,要想一勞永逸的解決問題,需要建設一個跨機房的hadoop集群。 (二)技術挑戰: 2.1 NameNode的性能問題: 在管理一個巨大的hadoop集群時,由于原始的Namenode是單節點,因此會成為一個性能瓶頸,遇到的性能問題主要包括兩方面:存儲容量問題(存儲元數據)和計算壓力(處理rpc請求,修改內存樹時候需要全局鎖)問題。 其中存儲容量問題可以依賴內存的垂直擴展來解決,但是計算壓力卻很難通過提升硬件來解決(因為目前廠商的主要發展方向是多核,而非提高主頻) 2.2機房之間的網絡限制: 機房之間的網絡永遠是個硬件條件的限制,跨機房的網絡傳輸帶來了數據延時和帶寬限制: 1, 延時一般是在10ms之內,而hadoop上大部分運行的是離線作業,基本可接受 2, 帶寬限制的問題比較大,因為單機房內的點對點帶寬一般是在1Gbps,而機房之間的帶寬確在20Mbps左右,非常有限。 2.3資源組之間的管理 每個部門可以看做一個資源組,它們可能會互相使用對方的數據,因此如何規劃計算和存儲的位置就很重要,否則會在多個機房之間出現大量的數據拷貝。 (三)解決方案: 先看下整個跨集群hadoop的架構圖:
重點介紹里面三點,也就是和上面三個問題相對應的: 1, 可以看到這里畫出了兩個NN(namenode),它們實際上還是屬于一個hadoop集群,這是業界里的一個解決方案:HDFS Fedaration,它為了解決元數據節點性能問題; 2, 可以看到這里有一個cross node節點,它是用來在兩個機房之間同步數據的,它的設計考慮到了機房間的網絡限制; 3, 最后是groupA、groupB,這是為了解決數據產出方和使用方關系來用的。 3.1 Federation Federation相關資料見: 為了水平擴展Namenode,federation使用了多個互相獨立的namenode。它們之間互相不需要通信,每個datenode需要向全部namenode注冊并發送信息。 BlockPool是屬于一個namenode的block集合,每個blockpool之間也是互相獨立的。 在federation里,有一個需要關注的問題,就是多個namenode的地址如何對用戶進行透明?它采用的解決方案是目錄樹掛載的方案(社區有個viewFS,應該就是為了解決這個問題):熟悉linux或者nfs的朋友應該都知道mount這個概念,目錄樹掛載就是這個意思。 不過使用目錄樹掛載也存在著一個問題,就是各個子目錄下的存儲資源需要人為的介入管理,不能出現嚴重的不均。 3.2 crossNode 機房間的網絡限制要求不能出現大規模、長時間的數據拷貝,需要一個專門管理機房間數據拷貝的進程,叫做crossNode。它是獨立部署的一個節點,和元數據節點是分離的。 它能提供的功能概括來說主要包括以下三點: a) 根據預置的跨機房文件,進行數據拷貝 b) 處理實時的數據拷貝請求 c) 進行跨機房的數據流量控制 如何得知跨機房文件列表? 由于離線任務基本都是定時觸發的,可以根據對歷史作業的分析來形成一個跨機房文件列表 3.3 資源組之間的管理 各個資源組之間存在數據的依賴,我們希望通過資源組管理,能實現大部分任務在本機房內產出數據,只有少量跨機房產出數據;大部分任務讀取本機房的數據副本,只有少量跨機房讀取數據。 為了標識資源組之間的數據依賴性,定義一個資源組之間的距離概念:一個資源組訪問另一個資源組的數據量越多,則兩者的距離越近,應該將距離接近的資源組放在同一個機房內。 為了讓計算和產出盡可能地靠近,使用一個MRProxy,對于不同類型的任務做不同處理: a) 離線計算:跨機房列表中的數據正在傳輸中(DC1->DC2),DC2上的 Job 被暫停調度,等待傳輸完畢 b) Ad-hoc查詢:DC2上的 Job 需要讀DC1上的數據,Job暫停調度,通知 CrossNode,數據傳輸完畢后繼續調度 c) 特殊情況:跨機房數據 Join,DC1大表,DC2小表,Job 調度到DC1上,跨機房直接讀取DC2數據,無需等待
由于是根據視頻和ppt整理,并沒有代碼或者文檔,所以可能有些地方的理解有偏差,歡迎來提意見~ posted @ 2013-10-27 23:28 whspecial 閱讀(5263) | 評論 (0) | 編輯 收藏 KFS的元數據持久化是依賴checkpoint和operation log結合來工作的,其中checkpoint顧名思義保存的是某個點內存的狀態,operation log記錄的是對元數據修改的操作日志。 使用checkpoint+log的設計 |
|