對(duì)于命令行用戶來說,頻繁的cd和tab應(yīng)該是日常
工作 中最多使用的命令了。特別對(duì)于重度用戶來說,如果可以省去這么多cd和tab,將更多的時(shí)間做有意義的事該多好。其實(shí)
Linux 的
學(xué)習(xí) 過程本身就行這樣。你會(huì)不斷的不滿足于現(xiàn)狀,就像我一樣,一年之前還在研究如何用cd可以更加快速,cd還有什么好點(diǎn)的用戶可以更快的到達(dá)目錄。(cd -回到之前的目錄,cd或cd ~回到用戶目錄等)學(xué)習(xí)本身也是成長的過程,不滿足于現(xiàn)狀是我前進(jìn)的動(dòng)力,所以今天,突破cd和tab,讓我們接受一個(gè)新的神級(jí)插件----autojump。
首先簡單的介紹下這個(gè)插件,簡單用法就比如你的文件夾路徑是
~/work/build/ninja
你不需要cd work,cd build,cd ninja,你只需要在進(jìn)入第一次之后,(注意是必須在進(jìn)入之后才會(huì)有記錄),直接輸入autojump b n,就自動(dòng)進(jìn)入了這個(gè)目錄。當(dāng)然autojump默認(rèn)將j給alias了,所以你只需要輸入j b n就到了這個(gè)目錄,同時(shí),如果你想訪問當(dāng)前目錄下的子目錄,你可以直接輸入jc xxx,那么這個(gè)xxx就會(huì)讓autojump優(yōu)先在當(dāng)前目錄下以及當(dāng)前目錄下的子目錄給你尋找,十分方便。還有一種用法就是jo,意思為用相應(yīng)的文件管理器來打開你提供的路徑,配合jc就可以成為jco。當(dāng)然如果你這個(gè)目錄權(quán)重高的話,可能你只需要輸入 j nin就到了這個(gè)目錄。之前介紹了權(quán)重,那就簡單介紹下,它會(huì)根據(jù)用戶的權(quán)重來進(jìn)行目錄名和計(jì)數(shù)器的哈希文件存儲(chǔ)。路徑一般在
/home/rickyk/.local/share/autojump/autojump.txt
里面的權(quán)重一般是這樣
28.3: /etc/bash_completion.d
30.3: /home/rickyk/bash_completion/etc/profile.d
30.6: /home/rickyk/.autojump
31.0: /home/rickyk/.oh-my-zsh/custom
31.6: /usr/local/share/cmake-2.8/completions
33.2: /usr/local/share
這個(gè)權(quán)重代表了當(dāng)你輸入比如針對(duì)第一條的/etc/bash_completion.d的時(shí)候,你輸入了.d,因?yàn)檫@條權(quán)重是28.3,所以會(huì)進(jìn)入第二條的/etc/profile.d因?yàn)樗臋?quán)重是30.3
相關(guān)安裝很簡單,apt-get install autojump或者直接
git clone http://joelthelion/autojump
然后進(jìn)入目錄后./install.py就可以了。注意在首次install之后需要在.bashrc加入下句
[[ -s /home/rickyk/.autojump/etc/profile.d/autojump.sh ]] && source /home/rickyk/.autojump/etc/profile.d/autojump.sh
這樣你就可以正常使用這個(gè)神級(jí)插件了,希望這個(gè)插件能夠給你帶來飛一般的爽快感覺 : )
English »
Afrikaans Albanian Arabic Armenian Azerbaijani Basque Bengali Belarusian Bulgarian Catalan Chinese (Simp) Chinese (Trad) Croatian Czech Danish Dutch English Esperanto Estonian Filipino Finnish French Galician Georgian German Greek Gujarati Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Kannada Korean Lao Latin Latvian Lithuanian Macedonian Malay Maltese Norwegian Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Tamil Telugu Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish
Text-to-speech function is limited to 100 characters
在為客戶提供技術(shù)支持時(shí),發(fā)現(xiàn)安裝
SQL Server 2008 (R2) 單機(jī)版出現(xiàn)的問題很多源于以下幾個(gè)典型情況,而客戶們有所不知,這正是SQL Server 安裝所必須的先決條件:
1. .NET Framework 3.5 SP1
3. Visual Studio 2008 SP1
4. 在控制面板中設(shè)置區(qū)域和語言
5. 小型企業(yè)安裝SQL Server 2008 (R2) 標(biāo)準(zhǔn)版需要設(shè)置域
6. 在Windows Server 2008 R2或Windows 7中安裝SQL Server 2008采用SP1整合安裝模式
1. .NET Framework 3.5 SP1
在 Windows Server 2008 R2中,你應(yīng)該以添加windows功能的方法來安裝.NET Framework 3.5 SP1,而不是以一個(gè)獨(dú)立的組件來進(jìn)行安裝。
在其他版本的
微軟 系統(tǒng)中,你只需點(diǎn)擊安裝文件setup.exe,其將自動(dòng)安裝.NET Framework 3.5 SP1 和 Windows Installer 4.5。
運(yùn)行SQL Server 2008 需要有 .Net Framework 3.5 SP1 (特別是 Express 和 IA64版本) 和Windows Installer 4.5。在.Net Framework 和 Windows Installer 升級(jí)后,你需要重新啟動(dòng)使其生效。如果沒有重啟系統(tǒng)而再次嘗試安裝
數(shù)據(jù)庫 ,則會(huì)跳出警告要求重啟,您將選擇使.Net Framework 和 Windows Installer生效或退出安裝。
如果你選擇了取消,安裝程序會(huì)報(bào)一個(gè)缺少安裝Windows Installer 4.5 的錯(cuò)誤。安裝向?qū)?.Net Framework 和Windows Installer 的安裝捆綁在一起,因此這兩個(gè)組件會(huì)同時(shí)安裝。一旦必備組件安裝完成(并已經(jīng)重啟系統(tǒng)),安裝導(dǎo)向會(huì)運(yùn)行SQL Server安裝中心。
當(dāng)然,你也可以將這些必備組件單獨(dú)安裝。但是,建議使用安裝向?qū)нM(jìn)行安裝,避免多次重啟系統(tǒng)。因?yàn)閷⑦@兩個(gè)組件進(jìn)行捆綁安裝,只需一次重啟即可。
自動(dòng)運(yùn)行setup.exe (或手動(dòng)雙擊 setup.exe) ,會(huì)彈出如下窗口:
當(dāng)您同意許可條款后,.Net 3.5 SP1安裝會(huì)繼續(xù)。閃屏?xí)@示正在下載組件,事實(shí)上只是從DVD中拷貝。這個(gè)過程需要花費(fèi)一些時(shí)間(大約10-20分鐘,取決于硬件條件)。
English »
Afrikaans Albanian Arabic Armenian Azerbaijani Basque Bengali Belarusian Bulgarian Catalan Chinese (Simp) Chinese (Trad) Croatian Czech Danish Dutch English Esperanto Estonian Filipino Finnish French Galician Georgian German Greek Gujarati Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Kannada Korean Lao Latin Latvian Lithuanian Macedonian Malay Maltese Norwegian Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Tamil Telugu Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish
Text-to-speech function is limited to 100 characters
你是不是一開始就用
Java 來編程的呢?還記得當(dāng)年它還被稱為"Oak",OO還是熱門的話題,C++的用戶覺得Java沒有前景,applets還只是個(gè)小玩意,菊花也還是一種花的時(shí)候嗎?
我敢打賭下面至少有一半是你不清楚的。這周我們來看一下跟Java的內(nèi)部實(shí)現(xiàn)相關(guān)的一些神奇的事情。
1. 其實(shí)根本沒有受檢查異常這回事
沒錯(cuò)!JVM壓根兒就不知道有這個(gè)東西,它只存在于Java語言里。
如今大家都承認(rèn)受檢查異常就是個(gè)錯(cuò)誤。正如Bruce Eckel最近在布拉格的的GeeCON會(huì)議上所說的,除了Java外沒有別的語言會(huì)使用受檢查異常這種東西,即使是Java 8的新的Streams API中也不再使用這一異常了(不然當(dāng)你的lambda表達(dá)式中用到IO或者JDBC的話就得痛苦死了)。
如何能證實(shí)JVM確實(shí)不知道這個(gè)異常?看下下面這段代碼:
public class Test {
// No throws clause here
public static void main(String[] args) {
doThrow(new SQLException());
}
static void doThrow(Exception e) {
Test.<RuntimeException> doThrow0(e);
}
@SuppressWarnings("unchecked")
static <E extends Exception>
void doThrow0(Exception e) throws E {
throw (E) e;
}
}
這不僅能通過編譯,而且也的確會(huì)拋出SQLException異常,并且完全不需要用到Lombok的@SneakyThrows注解。
更進(jìn)一步的分析可以看下這篇
文章 ,或者Stack Overflow上的這個(gè)問題。
2. 不同的返回類型也可以進(jìn)行方法重載
這個(gè)應(yīng)該是編譯不了的吧?
class Test {
Object x() { return "abc"; }
String x() { return "123"; }
}
是的。Java語言并不允許同一個(gè)類中出現(xiàn)兩個(gè)重寫等價(jià)("override-equivalent")的方法,不管它們的throws子句和返回類型是不是不同的。
不過等等。看下Java文檔中的 Class.getMethod(String, Class...)是怎么說的。里面寫道:
盡管Java語言不允許一個(gè)類中的多個(gè)相同簽名的方法返回不同的類型,但是JVM并不禁止,所以一個(gè)類中可能會(huì)存在多個(gè)相同簽名的方法。這添加了虛擬機(jī)的靈活性,可以用來實(shí)現(xiàn)許多語言特性。比如說,可以通過bridge方法來實(shí)現(xiàn)協(xié)變返回(covariant return,即虛方法可以返回子類而不一定得是基類),bridge方法和被重寫的方法擁有相同的簽名,但卻返回不同的類型。
哇,這倒有點(diǎn)意思。事實(shí)上,下面這段代碼就會(huì)觸發(fā)這種情況:
abstract class Parent<T> {
abstract T x();
}
class Child extends Parent<String> {
@Override
String x() { return "abc"; }
}
看一下Child類所生成的字節(jié)碼:
// Method descriptor #15 ()Ljava/lang/String;
// Stack: 1, Locals: 1
java.lang.String x();
0 ldc <String "abc"> [16]
2 areturn
Line numbers:
[pc: 0, line: 7]
Local variable table:
[pc: 0, pc: 3] local: this index: 0 type: Child
// Method descriptor #18 ()Ljava/lang/Object;
// Stack: 1, Locals: 1
bridge synthetic java.lang.Object x();
0 aload_0 [this]
1 invokevirtual Child.x() : java.lang.String [19]
4 areturn
Line numbers:
[pc: 0, line: 1
在字節(jié)碼里T其實(shí)就是Object而已。這理解起來就容易多了。
synthetic bridge方法是由編譯器生成的,因?yàn)樵谔囟ǖ恼{(diào)用點(diǎn)Parent.x()簽名的返回類型應(yīng)當(dāng)是Object類型。如果使用了泛型卻沒有這個(gè)bridge方法的話,代碼的二進(jìn)制形式就無法兼容了。因此,修改JVM以支持這個(gè)特性貌似更容易一些(這順便還實(shí)現(xiàn)了協(xié)變返回),看起來還挺不錯(cuò) 的吧?
你有深入了解過Java語言的規(guī)范和內(nèi)部實(shí)現(xiàn)嗎?這里有許多很有意思的東西。
English »
Afrikaans Albanian Arabic Armenian Azerbaijani Basque Bengali Belarusian Bulgarian Catalan Chinese (Simp) Chinese (Trad) Croatian Czech Danish Dutch English Esperanto Estonian Filipino Finnish French Galician Georgian German Greek Gujarati Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Kannada Korean Lao Latin Latvian Lithuanian Macedonian Malay Maltese Norwegian Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Tamil Telugu Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish
Text-to-speech function is limited to 100 characters
回想一下你所經(jīng)歷的項(xiàng)目,有沒有出現(xiàn)過以下這樣的情況:客戶在檢查項(xiàng)目階段成果時(shí),指出曾經(jīng)要求的某個(gè)產(chǎn)品特性沒有包含在其中,并且抱怨說早就以口頭的方式反映給了項(xiàng)目組的成員,糟糕的是作為項(xiàng)目經(jīng)理的你卻一無所知,而那位成員解釋說把這點(diǎn)忘記了;或者,你手下的程序員在設(shè)計(jì)評(píng)審時(shí)描述了他所負(fù)責(zé)的模塊架構(gòu),然而
軟件開發(fā) 出來后,你發(fā)現(xiàn)這和你所理解的結(jié)構(gòu)大相徑庭……
可能你遇到的情況比上面談到的還要復(fù)雜。問題到底出在哪兒呢?其實(shí)很簡單,就兩個(gè)字——溝通。以上這些問題都是由于溝通引起的,溝通途徑不對(duì)導(dǎo)致信息沒有到達(dá)目的地。“心有靈犀一點(diǎn)通”可能只是一種文學(xué)描繪出的美妙境界。在實(shí)際
生活 中,文化背景、
工作 背景、技術(shù)背景可以造成人們對(duì)同一事件理解方式偏差很大。
在項(xiàng)目中,溝通更是不可忽視。項(xiàng)目經(jīng)理最重要的工作之一就是溝通,通常花在這方面的時(shí)間應(yīng)該占到全部工作的75%~90%.良好的交流才能獲取足夠的信息、發(fā)現(xiàn)潛在的問題、控制好項(xiàng)目的各個(gè)方面。
溝通管理的體系
一般而言,在一個(gè)比較完整的溝通管理體系中,應(yīng)該包含以下幾方面的內(nèi)容:溝通計(jì)劃編制、信息分發(fā)、績效報(bào)告和管理收尾。溝通計(jì)劃決定項(xiàng)目干系人的信息溝通需求:誰需要什么信息,什么時(shí)候需要,怎樣獲得。信息發(fā)布使需要的信息及時(shí)發(fā)送給項(xiàng)目干系人。績效報(bào)告收集和傳播執(zhí)行信息,包括狀況報(bào)告、進(jìn)度報(bào)告和預(yù)測。項(xiàng)目或項(xiàng)目階段在達(dá)到目標(biāo)或因故終止后,需要進(jìn)行收尾,管理收尾包含項(xiàng)目結(jié)果文檔的形成,包括項(xiàng)目記錄收集、對(duì)符合最終規(guī)范的保證、對(duì)項(xiàng)目的效果(成功或教訓(xùn))進(jìn)行的分析以及這些信息的存檔(以備將來利用)。
項(xiàng)目溝通計(jì)劃是項(xiàng)目整體計(jì)劃中的一部分,它的作用非常重要,也常常容易被忽視。很多項(xiàng)目中沒有完整的溝通計(jì)劃,導(dǎo)致溝通非常混亂。有的項(xiàng)目溝通也還有效,但完全依靠客戶關(guān)系或以前的項(xiàng)目經(jīng)驗(yàn),或者說完全靠項(xiàng)目經(jīng)理個(gè)人能力的高低。然而,嚴(yán)格說來,一種高效的體系不應(yīng)該只在大腦中存在,也不應(yīng)該僅僅依靠口頭傳授,落實(shí)到規(guī)范的計(jì)劃編制中很有必要。因而,在項(xiàng)目初始階段也應(yīng)該包含溝通計(jì)劃。
設(shè)想一下,當(dāng)你被任命接替一個(gè)項(xiàng)目經(jīng)理的職位時(shí),最先做的應(yīng)該是什么呢?召開項(xiàng)目組會(huì)議、約見客戶、檢查項(xiàng)目進(jìn)度……都不是,你要做的第一件事就是檢查整個(gè)項(xiàng)目的溝通計(jì)劃,因?yàn)樵跍贤ㄓ?jì)劃中描述了項(xiàng)目信息的收集和歸檔結(jié)構(gòu)、信息的發(fā)布方式、信息的內(nèi)容、每類溝通產(chǎn)生的進(jìn)度計(jì)劃、約定的溝通方式等等。只有把這些理解透徹,才能把握好溝通,在此基礎(chǔ)之上熟悉項(xiàng)目的其它情況。
在編制項(xiàng)目溝通計(jì)劃時(shí),最重要的是理解組織結(jié)構(gòu)和做好項(xiàng)目干系人分析。項(xiàng)目經(jīng)理所在的組織結(jié)構(gòu)通常對(duì)溝通需求有較大影響,比如組織要求項(xiàng)目經(jīng)理定期向
項(xiàng)目管理 部門做進(jìn)展分析報(bào)告,那么溝通計(jì)劃中就必須包含這條。項(xiàng)目干系人的利益要受到項(xiàng)目成敗的影響,因此他們的需求必須予以考慮。最典型也最重要的項(xiàng)目干系人是客戶,而項(xiàng)目組成員、項(xiàng)目經(jīng)理以及他的上司也是較重要的項(xiàng)目干系人。所有這些人員各自需要什么信息、在每個(gè)階段要求的信息是否不同、信息傳遞的方式上有什么偏好,都是需要細(xì)致分析的。比如有的客戶希望每周提交進(jìn)度報(bào)告,有的客戶除周報(bào)外還希望有電話交流,也有的客戶希望定期檢查項(xiàng)目成果,種種情形都要考慮到,分析后的結(jié)果要在溝通計(jì)劃中體現(xiàn)并能滿足不同人員的信息需求,這樣建立起來的溝通體系才會(huì)全面、有效。
語言、文字還是“形象”
項(xiàng)目中的溝通形式是多種多樣的,通常分為書面和口頭兩種形式。書面溝通一般在以下情況使用:項(xiàng)目團(tuán)隊(duì)中使用的內(nèi)部備忘錄,或者對(duì)客戶和非公司成員使用報(bào)告的方式,如正式的項(xiàng)目報(bào)告、年報(bào)、非正式的個(gè)人記錄、報(bào)事帖。書面溝通大多用來進(jìn)行通知、確認(rèn)和要求等活動(dòng),一般在描述清楚事情的前提下盡可能簡潔,以免增加負(fù)擔(dān)而流于形式。口頭溝通包括會(huì)議、評(píng)審、私人接觸、自由討論等。這一方式簡單有效,更容易被大多數(shù)人接受,但是不象書面形式那樣“白紙黑字”留下記錄,因此不適用于類似確認(rèn)這樣的溝通。口頭溝通過程中應(yīng)該坦白、明確,避免由于文化背景、民族差異、用詞表達(dá)等因素造成理解上的差異,這是特別需要注意的。溝通的雙方一定不能帶有想當(dāng)然或含糊的心態(tài),不理解的內(nèi)容一定要表示出來,以求對(duì)方的進(jìn)一步解釋,直到達(dá)成共識(shí)。除了這兩種方式,還有一種作為補(bǔ)充的方式。回憶一下體育老師授課,除了語言描述某個(gè)動(dòng)作外,他還會(huì)用標(biāo)準(zhǔn)的姿勢來教你怎么做練習(xí),這是典型的形體語言表達(dá)。像手勢、圖形演示、視頻會(huì)議都可以用來作為補(bǔ)充方式。它的優(yōu)點(diǎn)是擺脫了口頭表達(dá)的枯燥,在視覺上把信息傳遞給接受者,更容易理解。
兩條關(guān)鍵原則
在項(xiàng)目中,很多人也知道去溝通,可效果卻不明顯,似乎總是不到位,由此引起的問題也層出不窮。其實(shí)要達(dá)到有效的溝通有很多要點(diǎn)和原則需要掌握,盡早溝通、主動(dòng)溝通就是其中的兩個(gè)原則,實(shí)踐證明它們非常關(guān)鍵。
曾經(jīng)碰到一個(gè)項(xiàng)目經(jīng)理,檢查團(tuán)隊(duì)成員的工作時(shí)松時(shí)緊,工期快到了和大家一溝通才發(fā)現(xiàn)進(jìn)度比想象慢得多,以后的工作自然很被動(dòng)。盡早溝通要求項(xiàng)目經(jīng)理要有前瞻性,定期和項(xiàng)目成員建立溝通,不僅容易發(fā)現(xiàn)當(dāng)前存在的問題,很多潛在問題也能暴露出來。在項(xiàng)目中出現(xiàn)問題并不可怕,可怕的是問題沒被發(fā)現(xiàn)。溝通得越晚,暴露得越遲,帶來的損失越大。
溝通是人與人之間交流的方式。主動(dòng)溝通說到底是對(duì)溝通的一種態(tài)度。在項(xiàng)目中,我們極力提倡主動(dòng)溝通,尤其是當(dāng)已經(jīng)明確了必須要去溝通的時(shí)候。當(dāng)溝通是項(xiàng)目經(jīng)理面對(duì)用戶或上級(jí)、團(tuán)隊(duì)成員面對(duì)項(xiàng)目經(jīng)理時(shí),主動(dòng)溝通不僅能建立緊密的聯(lián)系,更能表明你對(duì)項(xiàng)目的重視和參與,會(huì)使溝通的另一方滿意度大大提高,對(duì)整個(gè)項(xiàng)目非常有利。
保持暢通的溝通渠道
溝通看似簡單,實(shí)際很復(fù)雜。這種復(fù)雜性表現(xiàn)在很多方面,比如說,當(dāng)溝通的人數(shù)增加時(shí),溝通渠道急劇增加,給相互溝通帶來困難。典型的問題是“過濾”,也就是信息丟失。產(chǎn)生過濾的原因很多,比如語言、文化、語義、知識(shí)、信息內(nèi)容、道德規(guī)范、名譽(yù)、權(quán)利、組織狀態(tài)等等,經(jīng)常碰到由于工作背景不同而在溝通過程中對(duì)某一問題的理解產(chǎn)生差異。
如果深層次剖析溝通,其實(shí)可以用一個(gè)模型來表示:
從溝通模型中可以看出,如果要想最大程度保障溝通順暢,當(dāng)信息在媒介中傳播時(shí)要盡力避免各種各樣的干擾,使得信息在傳遞中保持原始狀態(tài)。信息發(fā)送出去并接收到之后,雙方必須對(duì)理解情況做檢查和反饋,確保溝通的正確性。
如果結(jié)合項(xiàng)目,那么項(xiàng)目經(jīng)理在溝通管理計(jì)劃中應(yīng)該根據(jù)項(xiàng)目的實(shí)際明確雙方認(rèn)可的溝通渠道,比如與用戶之間通過正式的報(bào)告溝通,與項(xiàng)目成員之間通過電子郵件溝通;建立溝通反饋機(jī)制,任何溝通都要保證到位,沒有偏差,并且定期檢查項(xiàng)目溝通情況,不斷加以調(diào)整。這樣順暢、有效的溝通就不再是一個(gè)難題。
English »
Afrikaans Albanian Arabic Armenian Azerbaijani Basque Bengali Belarusian Bulgarian Catalan Chinese (Simp) Chinese (Trad) Croatian Czech Danish Dutch English Esperanto Estonian Filipino Finnish French Galician Georgian German Greek Gujarati Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Kannada Korean Lao Latin Latvian Lithuanian Macedonian Malay Maltese Norwegian Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Tamil Telugu Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish
Text-to-speech function is limited to 100 characters
今天在打開
數(shù)據(jù)庫 的時(shí)候,連接不上。一看錯(cuò)誤就知道肯定是
SQL Server的服務(wù)沒開啟,所以自然而然的去SQL Server配置管理中去打開,但是打開
配置管理 器的時(shí)候出現(xiàn)了下面的錯(cuò)誤:
每次連接數(shù)據(jù)庫的時(shí)候總是會(huì)出各種各樣的問題,都見怪不怪了。但是這個(gè)問題還是第一次遇到呢,起初還有新鮮勁,但是這個(gè)問題搗鼓了一個(gè)下午+晚上1小時(shí)。就開始變得糾結(jié)了。為了紀(jì)念一下這個(gè)難的的問題,還是寫篇博客吧。
問題初期:新鮮勁來了, 好奇的是WMI是什么東西啊?
WMI,
Windows 管理規(guī)范(Windows Management Instrumentation) 是一項(xiàng)核心的Windows管理技術(shù);用戶可以使用WMI管理本地和遠(yuǎn)程計(jì)算機(jī)。
既然提示無法連接到WMI提供程序,那就是服務(wù)沒開啟唄。先查看WMI服務(wù): 計(jì)算機(jī)—>管理—>雙擊服務(wù)—>找到WMI
第二,去網(wǎng)上找了相關(guān)的問題,大部分都是給出這三種解決方案:
1.權(quán)限問題:管理員(administrator)沒有 network service的權(quán)限,所以 WMI無法打開。
右擊“我的電腦”-->“管理”
在“本地用戶和組”內(nèi)的Administrators組上雙擊,出現(xiàn)添加屬性對(duì)話框。
單擊“添加”按鈕,出現(xiàn)添加用戶對(duì)話框
單擊“高級(jí)”按鈕,再單擊“搜索”(或是“立即查找”)按鈕。注:此'NT AUTHORITY\NETWORK SERVICE'用戶為系統(tǒng)內(nèi)置帳戶,無法直接添加。
在“搜索結(jié)果”內(nèi)選擇“Network Service”用戶后,單擊“確定”
2.檢查一下 windows下的system32 中是否有framedyn.dll這個(gè)系統(tǒng)文件,如果沒有到system32 下的wbem文件中拷貝framedyn.dll到system32 目錄下。 我進(jìn)到system32目錄找framedyn.dll文件,果然沒有找到,再進(jìn)入system32\wbem目錄,找framedyn.dll,拷貝到system32目下。
經(jīng)查找,有該文件!
3.在doc命令中輸入:mofcomp.exe "C:\Program Files\Microsoft SQL Server\90\Shared\sqlmgmproviderxpsp2up.mof"
但是運(yùn)行之后,出現(xiàn)了下面的錯(cuò)誤:
提示找不到文件,在網(wǎng)上查找問題,都是這三種解決方案。搗鼓了一下午之后,感覺自己快要放棄的時(shí)候,這時(shí)候看到八期的師哥過來了,拉著他一起幫忙解決。同樣是查找相關(guān)的問題。
搗鼓了一段時(shí)間還是不行。此時(shí)已經(jīng)能明確的確定引起這個(gè)問題的主要原因是sqlmgmproviderxpsp2up.mof 這個(gè)文件。該文件的作用主要是由于上一次SQL安裝失敗之后,將存儲(chǔ)在該文件之中,所以需要進(jìn)行更新該文件。
后來又發(fā)現(xiàn)有個(gè)小小的問題,就是有的解決方案給出的路徑是不一樣的。有的是:mofcomp.exe "C:\Program Files(x86)\Microsoft SQL Server\90\Shared\sqlmgmproviderxpsp2up.mof" 或者是 mofcomp.exe "C:\Program Files\Microsoft SQL Server\100\Shared\sqlmgmproviderxpsp2up.mof" 。
注意觀察他們的區(qū)別,這時(shí)候就知道肯定是路徑上的問題。但是這個(gè)文件該去哪找呢?想查一下sqlmgmproviderxpsp2up.mof 這個(gè)文件,但是網(wǎng)上都沒有介紹。 正當(dāng)再次要放棄的時(shí)候,觀察SQL Server的目錄組織結(jié)構(gòu)。
既然有人在90和100中找到了,那為什么不到110 下面去找呢。最后在該文件下找到了sqlmgmproviderxpsp2up.mof 這個(gè)文件。
運(yùn)行結(jié)果:
主要原因是路徑上的錯(cuò)誤,sqlmgmproviderxpsp2up.mof 這個(gè)文件的路徑,在每個(gè)系統(tǒng)上存放的路徑是不一樣的。
注意Program Files(x86)和Program Files的區(qū)別。
在64位系統(tǒng)的系統(tǒng)盤中會(huì)存在program files和program files(x86)兩個(gè)文件夾。前者用來存放64位文件,后者用來存放32位文件。這兩個(gè)文件夾的存在使得目前64為操作系統(tǒng)可兼容32為程序,也可以說是為了兼容32位程序,program files(x86)這個(gè)文件夾才會(huì)存在。
所以,在遇到解決路徑上問題的時(shí)候一定要事先了解這些基本知識(shí)。同時(shí)在遇到問題的尋求解決方案的時(shí)候,一定不要一味的相信別人的,要慎思根據(jù)自己的實(shí)際情況來解決。
English »
Afrikaans Albanian Arabic Armenian Azerbaijani Basque Bengali Belarusian Bulgarian Catalan Chinese (Simp) Chinese (Trad) Croatian Czech Danish Dutch English Esperanto Estonian Filipino Finnish French Galician Georgian German Greek Gujarati Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Kannada Korean Lao Latin Latvian Lithuanian Macedonian Malay Maltese Norwegian Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Tamil Telugu Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish
Text-to-speech function is limited to 100 characters
新手學(xué)python系列之那些年
wooyun 忽略的漏洞們……
程序執(zhí)行完會(huì)整理出wooyun漏洞列表中所有被忽略的漏洞url,無奈正則太菜,沒整理出漏洞標(biāo)題,只列出了url。
程序還有點(diǎn)bug,會(huì)打印2次url,不知道原因所在,也懶得解決了。其中bestcoding模塊是在某群找到的萬能編碼的小程序,能省很多力氣,本小程序中可以忽略不用。先貼上程序代碼:
#coding:utf-8
import urllib
import urllib2
import re,sys
import bestcoding
import time
def wooyun():
for i in range(1,800):
page=str(i)
vullist='http://www.wooyun.org/bugs/page/'+page
vulpage=urllib2.urlopen(vullist).read()
p=re.compile(r'bugs/.*\d{6}')
for bugpath in p.findall(vulpage):
try:
time.sleep(1)
bugurl="http://www.wooyun.org/"+bugpath
bugpage=urllib2.urlopen(bugurl).read()
bugzt=bugpage.find("廠商忽略漏洞")
if bugzt>0:
print bugurl
else:
pass
except:
print "Url error"
if __name__=='__main__':
wooyun()
萬能編碼程序代碼也貼上:
def getCodeStr(result):
#gb2312
try:
myResult=result.decode('gb2312').encode('gbk','ignore')
return myResult
except:
pass
#utf-8
try:
myResult=result.decode('utf-8').encode('gbk','ignore')
return myResult
except:
pass
#unicode
try:
myResult=result.encode('gbk','ignore')
return myResult
except:
pass
#gbk
try:
myResult=result.decode('gbk').encode('gbk','ignore')
return myResult
except:
pass
#big5
try:
myResult=result.decode('big5').encode('gbk','ignore')
return myResult
except:
pass
English »
Afrikaans Albanian Arabic Armenian Azerbaijani Basque Bengali Belarusian Bulgarian Catalan Chinese (Simp) Chinese (Trad) Croatian Czech Danish Dutch English Esperanto Estonian Filipino Finnish French Galician Georgian German Greek Gujarati Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Kannada Korean Lao Latin Latvian Lithuanian Macedonian Malay Maltese Norwegian Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Tamil Telugu Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish
Text-to-speech function is limited to 100 characters
首先,html table是由 table 元素以及一個(gè)或多個(gè) tr、th 或 td 元素組成。
for example:
這是一個(gè)簡單的html table:
源碼如下:
<html>
<head>
<meta http-equiv="Content-Language" content="zh-cn">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</script>
</head>
<body>
<div align="center">
<h4 align="left"> table head:</h4>
<table border="2" width="90%" id="table138" bordercolorlight="#CCCCCC" cellspacing="0" cellpadding="0" bordercolordark="#CCCCCC" style="border-collapse: collapse">
<tr align="center">
<td height="26" width="10%" align="center" bgcolor="#CCEEAA" ><Strong>Test Case ID</Strong></td>
<td height="26" width="35%" align="center" bgcolor="#EEEEAA" ><Strong>Steps</Strong></td>
<td height="26" width="30%" align="center" bgcolor="#00EEEE" ><Strong>Expect</Strong></td>
<td height="26" align="center" bgcolor="#EE00EE" ><Strong>Actual</Strong></td>
<td height="26" align="center" bgcolor="#00EE00" ><Strong>PASS/FAIL</Strong></td>
</tr>
<tr align="center">
<td height="26" align="center" bgcolor="#CCEEAA">ENT#-12345</td>
<td height="26" align="left" bgcolor="#EEEEAA" >1.open baidu.com ,wait for the page load</br>2.enter "selenium" in the input box" </br>3.click search button </td>
<td height="26" align="left" bgcolor="#00EEEE" >"Selenium -
Web Browser Automation" link be the first of the search result</td>
<td height="26" align="left" bgcolor="#EE00EE" >Selenium - Web Browser Automation is appear the page,but is not the first link</td>
<td height="26" align="center" bgcolor="#00EE00" >FAIL</td>
</tr>
</tr>
<tr align="center">
<td height="26" align="center" bgcolor="#CCEEAA">ENT#-12346</td>
<td height="26" align="left" bgcolor="#EEEEAA" >1.click the "Selenium - Web Browser Automation" link</br>2.wait for page load</td>
<td height="26" align="left" bgcolor="#00EEEE" >open the official home page of selenium</td>
<td height="26" align="left" bgcolor="#EE00EE" >selenium home page is load </td>
<td height="26" align="center" bgcolor="#00EE00" >FAIl</td>
</tr>
</tr>
<tr align="center">
<td height="26" align="center" bgcolor="#CCEEAA">ENT#-12347</td>
<td height="26" align="left" bgcolor="#EEEEAA" >1.click baidu snapshot of selenium web page </br>2. wait for the page load</td>
<td height="26" align="left" bgcolor="#00EEEE" >the snapshot web page can be show up</td>
<td height="26" align="left" bgcolor="#EE00EE" >the snapshot web page is show up</td>
<td height="26" align="center" bgcolor="#00EE00" >PASS</td>
</tr>
</table>
</div>
</body>
</html>
那么問題就來了,我想通過xpath獲取這個(gè)table的每一個(gè)cell的值(比如獲取expect的值),該怎么做。
如果這個(gè)表格被改變了,增加或刪除一些行列該如何處理?
我的solution是獲取table的base xpath,這個(gè)所謂的base xpath是指這個(gè)table的第n行第m列相同的部分,然后通過傳入n,m獲取返回值
public static String tableCell(WebDriver driver,int row, int column)
{
String text = null;
//avoid get the head line of the table
row=row+1;
String xpath="http://*[@id='table138']/tbody/tr["+row+"]/td["+column+"]";
WebElement table=driver.findElement(By.xpath(xpath)); //*[@id="table138"]/tbody/tr[1]/td[1]/strong
text=table.getText();
return text;
}
所以,tableCell(driver,1,2)就能返回
English »
Afrikaans Albanian Arabic Armenian Azerbaijani Basque Bengali Belarusian Bulgarian Catalan Chinese (Simp) Chinese (Trad) Croatian Czech Danish Dutch English Esperanto Estonian Filipino Finnish French Galician Georgian German Greek Gujarati Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Kannada Korean Lao Latin Latvian Lithuanian Macedonian Malay Maltese Norwegian Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Tamil Telugu Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish
Text-to-speech function is limited to 100 characters
本文是一份2014阿里巴巴測試 開發(fā)工程師 的面試 經(jīng)驗(yàn)(內(nèi)推-電話面試),感興趣的同學(xué)參考下。 這次跟淘寶的不一樣,電面的是一個(gè)很溫柔的姐姐。之前給我打了兩次電話確定電面時(shí)間。當(dāng)?shù)诙挝艺f在路上可能信號(hào)不好的時(shí)候。姐姐很爽快地答應(yīng)過會(huì)再給我打。
剛才是讓我做下自我介紹。我就說了下自己的項(xiàng)目經(jīng)歷還有得過的一些獎(jiǎng)和證書。感覺這塊說的不好。沒有突出自己技術(shù)上的特長,也沒有說自己對(duì)
阿里巴巴 的熱愛。下次切忌。
后來姐姐根據(jù)我的項(xiàng)目經(jīng)歷問了我一些項(xiàng)目里的知識(shí)。問我的特長,我就提到
數(shù)據(jù)庫 方面。她問我數(shù)據(jù)庫最擅長那塊,回答是做視圖。然后就說了下視圖的優(yōu)點(diǎn):
視圖的作用
* 簡單性。看到的就是需要的。視圖不僅可以簡化用戶對(duì)數(shù)據(jù)的理解,也可以簡化他們的操作。那些被經(jīng)常使用的查詢可以被定義為視圖,從而使得用戶不必為以后的操作每次指定全部的條件。
* 安全性。通過視圖用戶只能查詢和修改他們所能見到的數(shù)據(jù)。數(shù)據(jù)庫中的其它數(shù)據(jù)則既看不見也取不到。數(shù)據(jù)庫授權(quán)命令可以使每個(gè)用戶對(duì)數(shù)據(jù)庫的檢索限制到特定的數(shù)據(jù)庫對(duì)象上,但不能授權(quán)到數(shù)據(jù)庫特定行和特定的列上。通過視圖,用戶可以被限制在數(shù)據(jù)的不同子集上:
使用權(quán)限可被限制在基表的行的子集上。 使用權(quán)限可被限制在基表的列的子集上。 使用權(quán)限可被限制在基表的行和列的子集上。 使用權(quán)限可被限制在多個(gè)基表的連接所限定的行上。 使用權(quán)限可被限制在基表中的數(shù)據(jù)的統(tǒng)計(jì)匯總上。 使用權(quán)限可被限制在另一視圖的一個(gè)子集上,或是一些視圖和基表合并后的子集上。
* 邏輯數(shù)據(jù)獨(dú)立性。視圖可幫助用戶屏蔽真實(shí)表結(jié)構(gòu)變化帶來的影響。(附上視圖的作用,進(jìn)攻參考)
其實(shí)都是學(xué)過的知識(shí)點(diǎn),自己總結(jié)的很少。還是要經(jīng)常溫習(xí)的。雖然說用的時(shí)候用不到,但是面試總結(jié)的時(shí)候很有幫助。
數(shù)據(jù)庫對(duì)象包括:表、索引、視圖、存儲(chǔ)過程、觸發(fā)器
存儲(chǔ)過程是數(shù)據(jù)庫中一個(gè)重要的對(duì)象。是一組為了完成特定功能的
SQL 語句集。作用是
1.存儲(chǔ)過程是在創(chuàng)造時(shí)進(jìn)行編譯的。以后每次執(zhí)行存儲(chǔ)過程不需要重新編譯,而一般SQL語句需要每執(zhí)行一次就編譯一次。
2.當(dāng)對(duì)數(shù)據(jù)庫進(jìn)行復(fù)雜操作時(shí)(如對(duì)多個(gè)表進(jìn)行Update,Insert,Query,Delete時(shí)),可將此復(fù)雜操作用存儲(chǔ)過程封裝起來與數(shù)據(jù)庫提供的事務(wù)處理結(jié)合一起使用。
3.存儲(chǔ)過程可以重復(fù)使用,可減少數(shù)據(jù)庫開發(fā)人員的
工作 量
4.安全性高,可設(shè)定只有某些用戶才具有對(duì)指定存儲(chǔ)過程的使用權(quán)主要有可重復(fù)利用,安全性
存儲(chǔ)過程和函數(shù)的區(qū)別:
1.存儲(chǔ)過程中定義的參數(shù)和輸出參數(shù)可以是任何類型,函數(shù)定義的參數(shù)又限制且沒有輸出參數(shù)。
2.函數(shù)可以用于表達(dá)式、check約束、default約束中,存儲(chǔ)過程不可以。
3.存儲(chǔ)過程中可以有T-SQL語句,函數(shù)中不可以,也不能創(chuàng)建任何表。
技術(shù)方面問完之后,面試官姐姐讓我?guī)€(gè)筆做些題:
第一個(gè)是關(guān)于四棵樹,怎么栽種這四棵樹可以使任意兩棵之間的舉例都相等。是關(guān)于三棱柱的問題。
接下來就問我有沒有測試經(jīng)驗(yàn),知不知道有什么測試方法:
回答了靜態(tài)測試和動(dòng)態(tài)測試
然后根據(jù)測試,提出了一個(gè)小的測試問題。
給你一個(gè)圓珠筆,這個(gè)圓珠筆你可以按,可以換芯。讓你做一下
功能測試 。這個(gè)可以根據(jù)題目詳細(xì)寫。
最后讓自己提問問題。總體來說面試官姐姐還是很好的,只問我擅長了,有時(shí)候還給予我提醒。不錯(cuò)的。寫下經(jīng)歷,也算是對(duì)自己的總結(jié)。現(xiàn)在都在緊鑼密鼓的找工作,自己最想找的信息就是往期別人的筆試面試經(jīng)歷啦~希望對(duì)大家有幫助
English »
Afrikaans Albanian Arabic Armenian Azerbaijani Basque Bengali Belarusian Bulgarian Catalan Chinese (Simp) Chinese (Trad) Croatian Czech Danish Dutch English Esperanto Estonian Filipino Finnish French Galician Georgian German Greek Gujarati Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Kannada Korean Lao Latin Latvian Lithuanian Macedonian Malay Maltese Norwegian Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Tamil Telugu Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish
Text-to-speech function is limited to 100 characters
三、 SQL Server群集故障轉(zhuǎn)移對(duì)AlwaysOn可用性組的影響 1. 主副本在SQL Server群集CLUSTEST03/CLUSTEST03上
1.1將節(jié)點(diǎn)轉(zhuǎn)移Server02.以下是故障轉(zhuǎn)移界面。
1.2 服務(wù)脫機(jī),alwaysOn自然脫機(jī),但偵聽IP并沒有脫機(jī)。
1.3 SQL服務(wù)聯(lián)機(jī)后,偵聽IP【10.0.0.224】會(huì)脫機(jī)重啟,alwaysOn資源組聯(lián)機(jī)
English »
Afrikaans Albanian Arabic Armenian Azerbaijani Basque Bengali Belarusian Bulgarian Catalan Chinese (Simp) Chinese (Trad) Croatian Czech Danish Dutch English Esperanto Estonian Filipino Finnish French Galician Georgian German Greek Gujarati Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Kannada Korean Lao Latin Latvian Lithuanian Macedonian Malay Maltese Norwegian Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Tamil Telugu Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish
Text-to-speech function is limited to 100 characters
晚上電話和同事討論一個(gè)
工作 上的事情,結(jié)束的時(shí)候聊起這樣的一個(gè)話題,完全是有感而發(fā),也覺得心有戚戚焉。
不是什么很特別的事情,就是我們每天在做的工作,測功能,測版本,然后發(fā)布,每個(gè)月在做,每周也在做。正是因?yàn)檫@樣的平常,很多時(shí)候我們就只看到這個(gè)工作本身。
想想這樣的兩種狀態(tài)吧:
1. 我們很理解為什么要做這樣的功能,有什么意義(實(shí)際意義,戰(zhàn)略意義也好),認(rèn)可或者部分認(rèn)可它的價(jià)值。
做完了,上線了,有人告訴我們這個(gè)功能有多少人在用,帶來了什么效益(新用戶,PV/UV,訂單,交易額)?
作為實(shí)際的參與者,我們被尊重和感謝。
有哪些成功的地方,哪些值得優(yōu)化的地方,下一步的計(jì)劃是什么?對(duì)發(fā)布時(shí)間有什么要求?
2. 被告知要做這樣的一個(gè)功能,然后要求在什么時(shí)間點(diǎn)發(fā)布,盡量壓縮開發(fā)和測試 的時(shí)間,請(qǐng)大家盡力支持。實(shí)在不行就安排加班吧。 上線后,繼續(xù)做下一期,或者下一個(gè)功能。
其實(shí)不只是測試,對(duì)于開發(fā)也是一樣。
以上兩種狀態(tài)會(huì)不斷的重復(fù)。對(duì)比下這兩種狀態(tài)吧,第一個(gè)更像是一個(gè)參與者,一個(gè)創(chuàng)造者。而第二種,即便不是外包,其實(shí)也很像是外包。我對(duì)做外包的人沒有偏見,但是始終覺得外包這種模式做不出優(yōu)秀的東西,基于體制和人性。
最近有一個(gè)觀念,所有依賴于人的服務(wù)行業(yè),比如餐飲,中介,軟件研發(fā),其實(shí)都是重度的依賴于人來創(chuàng)造價(jià)值的服務(wù)行業(yè)。要想做好,一定是要想辦法激發(fā)人的投入度。
刀塔傳奇的公司莉莉絲的創(chuàng)始人王信文有篇blog(那些和錢有關(guān)的事 http://www.verypig.com/?p=576)讀起來很有感受,比如這一段,“我仔細(xì)想了想,發(fā)現(xiàn)了一條規(guī)律:如果是標(biāo)準(zhǔn)化商品,能省則省;如果是購買服務(wù),那么想省錢常常不會(huì)取得好效果。” 確實(shí)如此,看看美國,很多標(biāo)準(zhǔn)化的商品價(jià)格確實(shí)夠便宜,和收入比,但是雇一個(gè)人就很貴。我覺得中國也是這個(gè)趨勢。
這樣的例子還有很多,比如海底撈,服務(wù)員被照顧好了,客人就被照顧好了,而且不程式化和冷冰冰。
再舉一個(gè)中介的例子,可以拿北京的鏈家和上海的德佑比較下其他比較雜的一些。
激發(fā)人的也不只是錢,至少大部分公司一年最多也就調(diào)兩次薪,光這個(gè)激勵(lì)能持續(xù)多久?又有多少人投入的去做一件事情之前會(huì)算一下我的薪資水平值不值得這么做?
很多人都說自己只是個(gè)打工的,其實(shí)大家內(nèi)心里都很在意,我們做出來的這個(gè)東西有人用嗎,cool嗎,牛x嗎?這本身就是工作的一種回報(bào)。
很多人也許想說,我們一樣可以制定各種各樣的KPI,更細(xì)化的指標(biāo)來考核,來衡量和要求服務(wù)和產(chǎn)出的質(zhì)量。
這確實(shí)是一條應(yīng)該走的路,但是是一條適可而止的路。任何一個(gè)經(jīng)歷過實(shí)際的項(xiàng)目或者帶過一個(gè)稍大一點(diǎn)團(tuán)隊(duì)的人都會(huì)理解,如果那樣真的可行,成功的項(xiàng)目和失敗的項(xiàng)目就不會(huì)差別那么明顯。
如果設(shè)定一個(gè)指標(biāo)是要求內(nèi)容裝載到杯壁,那么就有可能得到一個(gè)豐滿或者干癟的結(jié)果,而這,取決于人。