#
摘要: 搜索題,本來是簡(jiǎn)單題,但我犯了錯(cuò)誤。。。
閱讀全文
摘要: EOJ 1981 Sticks
POJ 1011 Sticks
HDOJ 1455 Sticks
UVA 307 Sticks 。。。
閱讀全文
摘要: PM 常常遇到一個(gè)難題,就是有好多東西想要做,但無奈什么事都得通過工程師,沒辦法自己動(dòng)手,于是因?yàn)楹凸こ處煵惶篮玫年P(guān)系,最后實(shí)際的產(chǎn)品都沒有設(shè)計(jì)時(shí)看起來好。我這邊講的是「網(wǎng)路公司」的狀態(tài),PM 泛指那些規(guī)劃出產(chǎn)品的人。其他產(chǎn)業(yè)也許也有類似情形,以下這些「教戰(zhàn)手則」,提供給正在摸索自己生存之道的 PM 一些參考。。。
閱讀全文
摘要: 老師教我們?cè)趺磳懗绦颍珡膩頉]告訴我們?cè)诠纠铮瑫?huì)有個(gè)叫做 PM 的人每天分派作業(yè)給我們,還逼著我們趕快做完。這是許多軟件工程師進(jìn)入職場(chǎng)的第一個(gè)驚喜。隔了不久,還會(huì)發(fā)現(xiàn),這些可能把你壓得死死的 PM,多半一行程序都不會(huì)寫。于是我們會(huì)面臨一種很矛盾的心情,有時(shí)候會(huì)是一種有點(diǎn)被欺負(fù)的心理。這篇文章是前一篇文章PM 如何突破工程師的心防的延伸,我們討論的是工程師在這樣狀況下的生存之道。。。
閱讀全文
摘要: KISS – Keep It Simple Stupid
DRY – Don’t Repeat Yourself 。。。
閱讀全文
摘要: 看歸看了,但習(xí)題沒做,學(xué)習(xí)效果打了折扣。。。
閱讀全文
摘要: 最近的幾個(gè)月,我一直在學(xué)習(xí)一種叫Haskell的編程語(yǔ)言。由于里面有太多的從未遇到的編程概念,整個(gè)過程就像是完全重新學(xué)習(xí)如何編程。在i.TV網(wǎng)站上,我寫了很多JavaScript(node.js和前端代碼)。雖然有不少的函數(shù)式/haskell式的編程模式不能引用進(jìn)來,但仍有大量的技術(shù)思想讓我在使用javascript編程語(yǔ)言時(shí)受益不少。
你會(huì)發(fā)現(xiàn)Haskell庫(kù)里有能夠處理各種事情的各種各樣的函數(shù)。起初我以為這些只是一種技術(shù)上的積累,但隨后我認(rèn)識(shí)到,這些函數(shù)相比起其它語(yǔ)言里的函數(shù),它們能應(yīng)用到形式更廣泛的問題中。這使得它們更有價(jià)值,因?yàn)槲覀兌疾惶矚g對(duì)一些常見的問題還不得不自己去寫解決方案。。。
閱讀全文
摘要: 一日,你查看你的程序代碼,你有兩大塊代碼看起來幾乎完全的一樣。事實(shí)上它們就是完全一樣,除了一個(gè)代碼里說的是“Spaghetti(意大利面條)”,另一個(gè)代碼里說的是“Chocolate Moose(巧克力慕絲)”。。。
閱讀全文
摘要: 在一個(gè)創(chuàng)業(yè)公司里,最初的十個(gè)人決定了這個(gè)公司的成敗與否。。。
閱讀全文
摘要: 心理學(xué)家與專業(yè)魔術(shù)師邁克爾·格爾博提出了“達(dá)·芬奇與眾不同的7種天才特質(zhì)”。他闡述為好奇心、悟性、藝術(shù)和科學(xué)、關(guān)聯(lián)、開闊、細(xì)致和合作精神。然而,這些特質(zhì)本身并沒有什么超前性,它們卻使達(dá)·芬奇能夠從不同的角度看事物,從而能夠去思考不同的事物,驅(qū)動(dòng)創(chuàng)新。。。
閱讀全文
摘要: 可能除了哲學(xué)家以外,我認(rèn)為程序員是最懶的一群人。他們的職業(yè)看起來又似乎有一定的勞動(dòng)強(qiáng)度。。。
閱讀全文
摘要: 馬克·吐溫曾經(jīng)說過,所謂經(jīng)典小說,就是指很多人希望讀過,但很少人真正花時(shí)間去讀的小說。這種說法同樣適用于“經(jīng)典”的計(jì)算機(jī)書籍。。。
閱讀全文
摘要: 如何設(shè)計(jì)出具有優(yōu)秀用戶體驗(yàn)的產(chǎn)品是交互設(shè)計(jì)師始終面臨的一道難題,“好的產(chǎn)品設(shè)計(jì)一定是建立在對(duì)用戶需求的深刻理解上”這句話被許多設(shè)計(jì)師視為設(shè)計(jì)的天條;至于在設(shè)計(jì)中如何發(fā)現(xiàn)并深刻理解用戶的需求,并由此設(shè)計(jì)出具有優(yōu)秀用戶體驗(yàn)的產(chǎn)品,阿里巴巴的UED團(tuán)隊(duì)在多年的產(chǎn)品設(shè)計(jì)實(shí)踐中總結(jié)出重要的五項(xiàng)原則。。。
閱讀全文
摘要: 工程師有喜歡解決問題的天性,尤其不能忍受他的系統(tǒng)里面有 bugs。所以只要碰到問題,他就想要把它們通通解決掉,似乎只要能夠解決越多問題,他就能夠創(chuàng)造越多價(jià)值。這樣的邏輯在企業(yè)用軟件的開發(fā)、維護(hù)中,或許是對(duì)的,但拿到消費(fèi)者市場(chǎng)里面,卻幾乎是殺死創(chuàng)業(yè)者最重要的原因。。。
閱讀全文
摘要: 上課的時(shí)候記筆記?哪門功課不行,就集中精力專項(xiàng)突擊?自習(xí)的時(shí)候不要晃,選好一個(gè)地兒安安穩(wěn)穩(wěn)地待那兒學(xué)習(xí)?你還在這樣學(xué)習(xí)嗎?不要被騙了:這些被我們奉為良好學(xué)習(xí)習(xí)慣的東西,恰恰是冒了學(xué)習(xí)正道的大不韙。。。
閱讀全文
摘要: 假設(shè)你是正在開發(fā)和維護(hù)一個(gè)包含 2000 個(gè)類并使用了很多框架的 Java 開發(fā)人員。你要如何理解這些代碼?在一個(gè)典型的 Java 企業(yè)項(xiàng)目小組中,大部分能夠幫你的高級(jí)工程師看起來都很忙。文檔也很少。你需要盡快交付成果,并向項(xiàng)目組證明自己的能力。你會(huì)如何處理這種狀況?這篇文字為開始一個(gè)新項(xiàng)目的 Java 開發(fā)者提供了一些建議。。。
閱讀全文
摘要: 歷史已經(jīng)證明,軟件設(shè)計(jì)的缺陷一直是導(dǎo)致其漏洞被利用的最主要的罪魁禍?zhǔn)住0踩珜<野l(fā)現(xiàn),多數(shù)漏洞源自常見軟件中相對(duì)有限的一些漏洞。軟件開發(fā)者和設(shè)計(jì)者應(yīng)當(dāng)嚴(yán)格檢查程序中的各種錯(cuò)誤,盡量在軟件部署之前就減少或清除其中的漏洞。。。
閱讀全文
摘要: gc即垃圾收集機(jī)制是指jvm用于釋放那些不再使用的對(duì)象所占用的內(nèi)存。java語(yǔ)言并不要求jvm有g(shù)c,也沒有規(guī)定gc如何工作。不過常用的jvm都有g(shù)c,而且大多數(shù)gc都使用類似的算法管理內(nèi)存和執(zhí)行收集操作。
在充分理解了垃圾收集算法和執(zhí)行過程后,才能有效的優(yōu)化它的性能。有些垃圾收集專用于特殊的應(yīng)用程序。比如,實(shí)時(shí)應(yīng)用程序主要是為了避免垃圾收集中斷,而大多數(shù)OLTP應(yīng)用程序則注重整體效率。理解了應(yīng)用程序的工作負(fù)荷和jvm支持的垃圾收集算法,便可以進(jìn)行優(yōu)化配置垃圾收集器。
垃圾收集的目的在于清除不再使用的對(duì)象。gc通過確定對(duì)象是否被活動(dòng)對(duì)象引用來確定是否收集該對(duì)象。gc首先要判斷該對(duì)象是否是時(shí)候可以收集。。。
閱讀全文
摘要: Java 語(yǔ)言可能是使用最廣泛的依賴于垃圾收集的編程語(yǔ)言,但是它并不是第一個(gè)。垃圾收集已經(jīng)成為了包括 Lisp、Smalltalk、Eiffel、Haskell、ML、Scheme和 Modula-3 在內(nèi)的許多編程語(yǔ)言的一個(gè)集成部分,并且從 20 世紀(jì) 60 年代早期就開始使用了。在 Java 理論與實(shí)踐的本篇文章中,Brian Goetz 描述了垃圾收集最常用的技術(shù)。在以后的幾個(gè)月,他將分析 1.4 JVM 所使用的垃圾收集策略、不同垃圾收集策略對(duì)性能的影響和如何才能(以及如何 不能)幫助垃圾收集器取得更好的性能。。。
閱讀全文
摘要: 求二分圖最大匹配,使用匈牙利算法。。。
閱讀全文
摘要: 二分圖最大匹配使用匈牙利算法。。。
閱讀全文
摘要: 朱莉亞和我正在Wii上玩《超級(jí)馬里奧賽車》(Super Mario Kart)。在這款賽車游戲里,我們可以選擇一輛賽車,在各種賽道同幽靈、電腦或者世界各地的其他真人玩家進(jìn)行對(duì)抗。我突然想到:每次玩游戲時(shí),我們都在進(jìn)行“圖靈測(cè)試”。。。
閱讀全文
摘要: 解析器是parser,而解釋器是interpreter。兩者不是同一樣?xùn)|西,不應(yīng)該混用。
前者是編譯器/解釋器的重要組成部分,也可以用在IDE之類的地方;其主要作用是進(jìn)行語(yǔ)法分析,提取出句子的結(jié)構(gòu)。廣義來說輸入一般是程序的源碼,輸出一般是語(yǔ)法樹(syntax tree,也叫parse tree等)或抽象語(yǔ)法樹(abstract syntax tree,AST)。進(jìn)一步剝開來,廣義的解析器里一般會(huì)有掃描器(scanner,也叫tokenizer或者lexical analyzer,詞法分析器),以及狹義的解析器(parser,也叫syntax analyzer,語(yǔ)法分析器)。掃描器的輸入一般是文本,經(jīng)過詞法分析,輸出是將文本切割為單詞的流。狹義的解析器輸入是單詞的流,經(jīng)過語(yǔ)法分析,輸出是語(yǔ)法樹或者精簡(jiǎn)過的AST。
(在一些編譯器/解釋器中,解析也可能與后續(xù)的語(yǔ)義分析、代碼生成或解釋執(zhí)行等步驟融合在一起,不一定真的會(huì)構(gòu)造出完整的語(yǔ)法樹。但概念上說解析器就是用來抽取句子結(jié)構(gòu)用的,而語(yǔ)法樹就是表示句子結(jié)構(gòu)的方式。。。
閱讀全文
摘要: 在一個(gè)允許在堆上動(dòng)態(tài)分配內(nèi)存空間并且采取隱式內(nèi)存釋放的程序設(shè)計(jì)語(yǔ)言里,如何確保內(nèi)存的正確釋放不再是程序員的關(guān)注點(diǎn),而由運(yùn)行時(shí)環(huán)境來提供支持。無法被程序引用的在堆上已分配的內(nèi)存空間成為垃圾(無用內(nèi)存單元)。。。
閱讀全文