Sunday, October 13, 2019
Saturday, July 6, 2019
长日将近第一天
很长一段时间以来,协会拒绝公布它的会员标准,后来在 绅士之中的绅士季刊 的一再追问下,它才承认会员须服务于显赫门庭;然而协会并不认为商人和新贵是显赫的,这让我觉得它的权威大打折扣.在读者的进一步质疑下,学会辩称:虽然有些出色的管家来自商人家庭,但他们也即将受到真正的豪门贵族的青睐。如果我记得没错的话,协会最终完整扼要地披露了它的标准:会员申请者首先需要崇高的声望,其次才是成就与职位
虽然我对海斯协会缺乏热情,但它关于尊贵的申明却是基于重要的事实。比如米歇尔先生和莱恩先生,相比于其他仅仅是业务精湛的管家来说,显然是与众不同。
您应该不会否认,查尔维尔宫的马歇尔先生以及布莱堡的莱恩先生算得上近代最伟大的管家.有人会提到布兰伯利城堡的亨德森先生,而我,绝对不是出于私心地认为我父亲也应该被提及,在拉夫博拉夫堡的职业生涯巅峰时期,他简直就是高贵的化身.
客观地说,我父亲缺乏某些所谓的伟大管家具有的特征.这些特征的确吸引人,但是也很不值一提,就像蛋糕表面的糖霜一样肤浅。我父亲从不自夸好的口音、语言能力以及鹰隼或蝾螈交配之类的泛泛的常识。而且他那个年代并不认可这些,这些玩意儿很可能是在马歇尔先生兴起后才火起来的,那时候比他逊色的人争相模仿他并将这些肤浅当成精髓.我们这代人在这些细枝末节上浪费了太多时间,天知道我们在锻炼口才和学习百科知识上花费了多长时间.
我们不能试图逃避肩负的责任,某些雇主却鼓励这样做。近年来有些宅邸,甚至是名门望族,都在争相炫耀本宅管家的这些雕虫小技。管家们经常被当作猴一样耍,我就目睹过一个宅邸把摇铃呼唤管家并问一些荒诞的问题当成节目,这些问题甚至无聊到追问谁是某某年的德贝赛马的胜利者,就好像管家是音乐厅里的神奇记忆人一样。
所幸家父所处的年代没有如此混淆的职业价值观,得益于此,家父没有致力于语言的运用和一般常识的搜罗,反之其专业技能却是与日俱增,以至于在他的巅峰时期能配得上海思协会宣称的才堪其位的尊贵。如果说有什么能令家父如此与众不同,那自然是这个才堪其位,不过我倒要借机向诸位传达什么才是我理解的“尊贵”。
从小到大,我总听家父向访客提及一个故事;到我当上管家,家父又向我提起,要知道他那一代其实不像我们这一代一样喜欢交流,但是既然如此频繁地提及,可见对此事反响有多激烈了。
这个故事显然是真的,故事里有个总管跟着他的主人到了印度并在那里从业很多年,期间维持着与当地员工一样精湛的业务水准,就像他在英格兰时一样。
一天下午,总管去餐厅检查晚餐时发现一只老虎懒洋洋地躺在餐桌下面,他悄悄地关上门,冷静地来到起居室.他的主人正在陪客人喝茶,他优雅地轻咳了一声以便引起主人的注意,然后附耳对他说:“很抱歉先生,有只老虎在餐桌底下,是否可以开枪射击?”
据说几分钟后,雇主和客人就听到了三声枪响。给茶续水的时候雇主问一切是否妥当,他应声答道:“当然了,一切都没问题,晚餐按时开始,刚才的事情不会留下任何蛛丝马迹”
每每提及“届时绝无后顾之忧”的时候,家父总是笑盈盈地点头称赞。他和他的熟人从不声称认识那位管家,但他坚称所言属实。当然了,故事的真假不重要,重要的是家父借此表达他的人生理想,回顾他的职业生涯,他一直努力成为故事中的管家那样的人。他虽然不可能遇到老虎钻到餐桌底下这等巧事,但是我倒可以举几个他的事例,他在应对上堪比故事中的总管。
其中一个例证是查尔斯•雷丁公司的大卫查尔斯讲给我听的。在达林顿勋爵时代,查尔斯先生时不时会访问达林顿宫。有一天晚上我碰巧充当他的贴身男仆,他告诉我他多年前偶遇过一次家父。在家父职业生涯的巅峰时期,他有十五年效力于实业家约翰•席佛尔先生的拉伯拉夫堡。查尔斯先生有一次访问拉博拉夫堡的时候,发生了一件事,那件事使他对家父印象颇为深刻。 有一天下午,查尔斯先生跟另外两位客人,史密斯先生和琼斯先生,一起喝酒,大约一个小时以后,他喝得酩酊大醉,两位数客人却邀他去兜风(那时候兜风还是很稀奇的)并让家父当司机。 他们才刚出发,史密斯和琼斯这两个为老不尊的家伙就唱起了粗俗的歌,还对窗外的所见所闻发出更粗鄙的评论。这两位先生看本地地图的时候,发现了三个村庄:墨菲,塞尔塔什和布里戈恩,确切名字我不太记得了,但这几个名字倒是让二位先生想起了一出叫做墨菲、赛尔特曼和布里吉德猫的音乐剧。注意到这些名字的巧合,加上对剧中演员的敬意,他俩就兴冲冲地张罗着去那几个村庄逛逛。据查尔斯先生说,家父按照他们的要求去了第一个村庄,然后又往第二个赶,二位先生中的不记得是哪一个发现了家父是往他俩指的第三个村庄赶,他们愤怒地要求家父掉头去他俩指定顺序中的第二个,但这意味着家父要回绕很长的一段路,但是查尔斯先生强调说,家父却将其当成合理的要求并彬彬有礼地答应了。
史密斯先生和琼斯先生的注意力被吸引到家父身上,另外他们对窗外的景物显然已经厌烦,他们继续嘲笑家父的"过错"以自娱自乐。查尔斯先生至今仍惊叹于家父竟能不露半点不安和恼怒,而是继续不卑不亢地开着车,其表情既不失体面,又乐于效劳。然而这两位先生在对家父极尽侮辱后,又议论起家父的雇主约翰•希尔佛思来。这两个家伙在约翰先生家里一边做着客,一边贬低主人,这让家父实在忍无可忍,非但如此,连查尔斯先生都连称此等言论非常不堪。可是此等观点却招致了激烈的反驳,以至于查尔斯先生不但担心自己会成为下一个嘲弄对象,甚至有受到人身伤害的可能。让查尔斯先生终身难忘的是,家父终因不堪忍受二位先生恶毒的攻击竟突然停下车来。
父亲打开车后门,站在不远处死死地盯着车里。据查理先生说,三个乘客不约而同地意识到父亲原来是那么的孔武有力。他有着六尺三寸的大高个,他总是表现得乐意效劳,但有时也会让人望而生畏。父亲只是开了一下车门,然而他硕大的身形笼罩着两位先生,却自有一种不怒自威的霸气,吓得那两位像偷苹果被抓住的小学生一样直缩脖子。
家父继续一声不吭地站在那里,手把着车门,直到两位先生中的一位开口问是不是接着走完计划的行程。父亲没有搭腔,既没有让他们下车也没有别的表示。我能想像他那时候的样子, 一个黑黑的他僵硬地立在车门那儿,跟赫特福德的柔美风光形成强烈的反差。
查尔斯先生回忆道,那一刻(的沉默)让所有人都觉得紧张不安,甚至他这个局外人都充满了负罪感。这个无休止的沉默后来被两位先生的其中一个打破,他喃喃自语道:"我想我们有点过了,我们不这样了。"
既然提到这一茬,另一件事就不得不提了。当我还是个孩子的时候,哥哥莱昂纳多就在一次南非战争中丧生了,父亲本该很悲痛,但本以为儿子是为国王和国家的光荣而战死,殊不料实际上却死于一次臭名昭著的军事行动中。虽然不便详细指出是哪一项军事行动,但是如果我这么说列位应该知道我暗指哪一件了:它引起了轩然大波和激烈辩论。当时有人提议涉事将军免职,甚至送交军事法庭,但是军方拒绝了,而且坚持让这位将军指挥完战役。鲜为人知的是,在南非战役结束后, 该将军悄悄退役并转而经商。我提及于此是因为若干年以后,当丧亲之痛已经痊愈(当然只是表面上),(有一天)家父被告知该退役将军将参加一个别墅派对,并且在派对中家父的雇主,约翰.西佛尔先生将与其完成一笔获利颇丰的交易;然而西佛尔先生顾虑于南非战争的往事,决定批给家父几天假以免他俩这几天遇到。
自然而然的,家父对这位将军厌恶已极。但他意识到该派对丹佛尔先生的重要性,因为宴请的人里面有多达差不多十八个地位显赫。家父的反应是一方面他很荣幸西佛尔先生能为他着想,另一方面派对的(服务)标准仍会跟往常一样。
后来的事实证明,家父所受的精神折磨远不止此。家父原以为跟这位将军接触以后或许会对他心生怜悯从而减少对他的恶感,但实际却恰恰相反。这位将军又矮又胖,粗俗不堪。一个更坏的消息是,他贴身男仆病了而且他生活不能自理,家父本可选择伺候另外一个没带仆人的客人的,但他还是选择了伺候将军,并且陪同了这位他厌恶的人四天,同时,这位将军全然不知父亲的感受,逮着机会就跟父亲谈论他在部队里的那些经历,正如别的那些喜欢跟他们的贴身男仆一厢情愿地讲私事的军官一样。父亲很好地控制了自己的情绪,出色地完成了西佛尔先生的嘱托,以至这位先生临别前在西佛尔先生面前对家父大加称赞,并给我大量的小费。父亲毫不犹豫地把这批小费捐献出去了。
我相信诸位能够认可本人所援引的家父职业生涯的两件事,这两件事都精准地表明了家父的确是海思协会所称的德配其位的典范。此时如果各位去比较家父与诸如杰克•内博尔那类技巧型管家,就会发现伟大管家与有竞争力的管家的区别;同时也能领会为什么家父如此喜爱那个在餐桌下发现猛虎还能不慌不乱的管家和他的故事了,那是因为家父理解这里面本身就隐含着尊贵管家之要义。在这里请允许我指出:管家的尊贵与其保持职业能力的能力有关。那些下等的管家就好像演哑剧的小丑,一个不小心的推搡或者趔趄就可能摔落假面;而伟大的管家不会受外部干扰而时刻能保持优雅,他们除非独处,否则总是衣着得体,不论外部环境多么恶劣、多么沮丧、多么令人不安或吃惊,他们总是能保持优雅。
据说真正的管家只存在于英格兰,其他国家只有所谓的男仆。我认为此言不虚,欧洲大陆国家无法造就管家,因为他们不善于管控情绪。欧洲人,甚至包括凯尔特人,在情绪激动时都无法保持职业素养。伟大的管家绝不可能是那种稍遇挑战就抓狂的人。这是我们英格兰人独具的优点,所以伟大的管家一定是英格兰人。
Thursday, March 7, 2019
SQL Joins with On or Using
In a nutshell, you use ON for most things, but USING is a handy shorthand for the situation where the column names are the same.
Consider this example dataset:
mysql> select * from pets;
+---------+---------+--------+-----------+
| pets_id | animal | name | owners_id |
+---------+---------+--------+-----------+
| 1 | fox | Rusty | 2 |
| 2 | cat | Fluffy | 2 |
| 3 | cat | Smudge | 3 |
| 4 | cat | Toffee | 3 |
| 5 | dog | Pig | 3 |
| 6 | hamster | Henry | 1 |
| 7 | dog | Honey | 1 |
+---------+---------+--------+-----------+
7 rows in set (0.00 sec)
mysql> select * from owners;
+-----------+-------+
| owners_id | name |
+-----------+-------+
| 1 | Susie |
| 2 | Sally |
| 3 | Sarah |
+-----------+-------+
3 rows in set (0.00 sec)
To find out who has which pets, we would join the two tables together like this:
mysql> select owners.name as owner, pets.name as pet, pets.animal
-> from owners join pets on (pets.owners_id = owners.owners_id);
+-------+--------+---------+
| owner | pet | animal |
+-------+--------+---------+
| Sally | Rusty | fox |
| Sally | Fluffy | cat |
| Sarah | Smudge | cat |
| Sarah | Toffee | cat |
| Sarah | Pig | dog |
| Susie | Henry | hamster |
| Susie | Honey | dog |
+-------+--------+---------+
7 rows in set (0.00 sec)
The example above uses the ON keyword, but since the columns we use to join are called owners_id in both tables, then we can instead put in USING as a shorthand.
mysql> select owners.name as owner, pets.name as pet, pets.animal
-> from owners join pets using (owners_id);
- (INNER) JOIN: Returns records that have matching values in both tables
- LEFT (OUTER) JOIN: Return all records from the left table, and the matched records from the right table
- RIGHT (OUTER) JOIN: Return all records from the right table, and the matched records from the left table
- FULL (OUTER) JOIN: Return all records when there is a match in either left or right table
Tuesday, March 5, 2019
practice libsvm
practice the guide.pdf saved in C:\Temp\learn_libsvm\test1_research_the_GUIDE cd /media/sf_Temp/learn_libsvm/test3_test_libsvm/libsvm-3.23 && make =========================================================================== this test is for demo purpose(use easy.py in one step): use the data of project Astroparticle under https://www.csie.ntu.edu.tw/~cjlin/papers/guide/data/ , it has training dat as train.1 and test dat as test.1 : save train.1 into svmguide1 save test.1 into svmguide1.t //feature|attr value range [-1, 1], ./svm-scale -l -1 -u 1 -s range1 svmguide1 > svmguide1.scale /* 1 1:2.617300e+01 2:5.886700e+01 3:-1.894697e-01 4:1.251225e+02 ... into 1 1:-0.823781 2:-0.783405 3:-0.233795 4:0.361305 ... 0 1:-0.885045 2:-0.949015 3:0.182549 4:-0.519316 has 2 classes, class label Infected or Clean */ ./svm-scale -r range1 svmguide1.t > svmguide1.t.scale ./svm-train svmguide1.scale /* * optimization finished, #iter = 496 nu = 0.202599 obj = -507.307046, rho = 2.627039 nSV = 630, nBSV = 621 Total nSV = 630 */ ./svm-predict svmguide1.t.scale svmguide1.scale.model svmguide1.t.predict Accuracy = 96.15% (3846/4000) (classification) +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ to achieve better Accuracy, ./svm-train requires cross-validation and specify following args: -c -g the RBF kernel function argument C and galma //the grid tools is a time consumer ./tools/grid.py svmguide1.scale 2.0 2.0 96.9893 ./svm-train -c 2 -g 2 svmguide1.scale Accuracy = 96.875% =========================================================================== use easy.py in one step: apt-get install -y gnuplot cd tools/ && ./easy.py ../svmguide1 ../svmguide1.t Scaling training data... Cross validation... Best c=2.0, g=2.0 CV rate=96.9893 Training... Output model: svmguide1.model Scaling testing data... Testing... Accuracy = 96.875% (3875/4000) (classification) +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Wednesday, January 16, 2019
在温哥华办理美国签证攻略
非移民签证常见类型
- CNMI-only(仅限于美国北玛利安纳群岛) transitional worker(CW-1).
- business visitor商务访问(B-1)
- Exchange visitor交换访问(J)
- Intra-company transferee公司内部穿梭(L)
- Tourism, vacation, pleasure visitor旅游(B-2)
照片场景要求
- Sized such that the head is between 1 inch and 1 3/8 inches (22 mm and 35 mm) or 50% and 69% of the image's total height from the bottom of the chin to the top of the head.
- Taken in front of a plain white or off-white background
照片拍摄和处理要求
Dimensions | The image dimensions must be in a square aspect ratio (the height must be equal to the width). Minimum acceptable dimensions are 600 x 600 pixels. Maximum acceptable dimensions are 1200 x 1200 pixels. |
Color | The image must be in color (24 bits per pixel) in sRGB color space which is the common output for most digital cameras. |
File Format | The image must be in JPEG file format |
File Size | The image must be less than or equal to 240 kB (kilobytes). |
Compression | The image may need to be compressed in order for it to be under the maximum file size. The compression ratio should be less than or equal to 20:1. |
详细流程
- 浏览 领事电子申请中心 以申请非移民签证。
- ...
Friday, November 30, 2018
Understanding Events in C#
using System.Collections.Generic;
using System.Linq;
using System.Text;
public class TransactionEventArgs : EventArgs
{
private int _transactionAmount;
// "Credited": deposit
// "Debited" : withdraw
private string _transactionType;
public TransactionEventArgs(int amt, string type)
{
this._transactionAmount = amt;
this._transactionType = type;
}
public int TranactionAmount
{
get
{
return _transactionAmount;
}
}
public string TranactionType
{
get
{
return _transactionType;
}
}
}
/*like:
public delegate void EventHandler(object sender, EventArgs e);
*/
public delegate void TransactionHandler(object sender, TransactionEventArgs e);
class Account
{
//like:
//public event EventHandler Click;
//
//the TransactionMade event and its TransactionHandler delegate(s)
public event TransactionHandler TransactionMade; // Event Definition
public int BalanceAmount;
public Account(int amount)
{
this.BalanceAmount = amount;
}
//publisher invokes a event
public void Debit(int debitAmount)
{
if (debitAmount < BalanceAmount)
{
BalanceAmount = BalanceAmount - debitAmount;
TransactionEventArgs e = new TransactionEventArgs(debitAmount, "Debited");
OnTransactionMade(e); // Debit transaction made
}
}
public void Credit(int creditAmount)
{
BalanceAmount = BalanceAmount + creditAmount;
TransactionEventArgs e = new TransactionEventArgs(creditAmount, "Credited");
OnTransactionMade(e); // Credit transaction made
}
protected virtual void OnTransactionMade(TransactionEventArgs e)
{
if (TransactionMade != null)
{
TransactionMade(this, e); // Raise the event
}
}
}
class TestMyEvent
{
private static void SendNotification(object sender, TransactionEventArgs e)
{
Console.WriteLine(
"Your Account is {0} for ${1} ",
e.TranactionType,
e.TranactionAmount);
}
private static void Main()
{
Account MyAccount = new Account(10000);
//like: this.button1.Click += new System.EventHandler(this.button1_Click);
//
//note: the += operator of event will subscribe the event append a delegate
MyAccount.TransactionMade += new TransactionHandler(SendNotification);
MyAccount.Credit(500);
Console.WriteLine("Your Current Balance is : " + MyAccount.BalanceAmount);
Console.ReadLine();
}
}
Tuesday, July 3, 2018
_NT_SYMBOL_PATH and extra
.sympath to view current setting
.sympath+ to add path:
.sympath+ C:\Chromium\debug_v8_02\v8\out.gn\ia32.debug\
// .srcpath C:\Chromium\debug_v8_02\v8\src
// bp d8_exe!main
db poi(poi(argv)+4)
00685050 43 3a 5c 43 68 72 6f 6d-69 75 6d 5c 64 65 62 75 C:\Chromium\debu 00685060 67 5f 76 38 5f 30 32 5c-69 6e 73 74 61 6e 63 65 g_v8_02\instance 00685070 30 31 5c 31 2e 6a 73 00-fd fd fd fd ab ab ab ab 01\1.js.........