第一次完整读完了的一个英文中篇小说《K-Pax》. 在春节前先看了同名的电影,很是惊艳,就又找了英文原版小说来读。开始读着很吃力,本着日拱一卒的精神,每天读一点,到后来越来越快,今天终于读完。学了这么多年英语,最近终于开始有所收获了。
电影相对小说做了很多裁剪,结果其中有些没有完全明白,等看完小说才知道。小说非常精彩,强烈推荐。电影也很好,凯文·史派西演绎的非常出色。很喜欢这类介于科幻与现实之间的小说,你可以用科幻解释它,也可以用现实来解释,给人无限的想象空间。
第一次完整读完了的一个英文中篇小说《K-Pax》. 在春节前先看了同名的电影,很是惊艳,就又找了英文原版小说来读。开始读着很吃力,本着日拱一卒的精神,每天读一点,到后来越来越快,今天终于读完。学了这么多年英语,最近终于开始有所收获了。
电影相对小说做了很多裁剪,结果其中有些没有完全明白,等看完小说才知道。小说非常精彩,强烈推荐。电影也很好,凯文·史派西演绎的非常出色。很喜欢这类介于科幻与现实之间的小说,你可以用科幻解释它,也可以用现实来解释,给人无限的想象空间。
街上骑车时远远看见一对青年男女,貌似刚约会的样子,
看到了太好的文章,立刻转贴了。 表面上是个面向技术人员的文章,但里面提到的观点对其他行业的人都可能会有很多启发。
文章原作者是Linux之父Linus Torvalds, 原文标题 Linux kernel management style, 翻译者是[email protected], 译文原地址在http://wiki.woodpecker.org.cn/moin/LinuxKernelManaStyle, 英文原文在 http://openlife.cc/onlinebook/epilogue-linux-kernel-management-style-linus-torvalds。
============================
1.1. 导言
Linus Torvalds 在2004年把一篇讲”Linux内核的管理风格”的文章放在了内核源码文档里。这篇文章有意对应他以前写的关于编码 风格的文章(比如烧书仪式),也有技术人员熟悉的Dilbert卡通的影子。 Henrik Ingo 写”Open Life: The Philosophy of Open Source“一书的时候,拿这篇文章作了后记。
这篇文章其实是总结了Linus十几年里领导开源运动的经验。更重要的是,它讲述了一种与传统不同的做事理念,一种后互联网时代的、尊重技术和自由的理念。
Linus的写作诙谐生动,完全不同于ESR的《大教堂和市集》。所以我作了比较自由的翻译。以下是译文。
(Linux kernel management style, by Linus Torvalds. Retrieved from http://openlife.cc/node/43, Jan-28-2008)
这个简单文档描述Linux内核偏爱的(或编造的,取决于你问谁)管理模式。它在一定程度上是编码风格文档的影子,主要写来避免一遍又一遍回答同一类问题*。
不管怎样,开讲了:
每个人都觉得管理者是作决定的,作决定是很重要的。决定越大、越艰难,管理者就越伟大。这一点很深刻、很明显,但不见得正确。
(推论:如果你手下的人不比你更懂具体问题,你还是死定了,尽管出于完全不同的原因。说白了就是你站错了岗位,应该他们-来管理你的才华才对。)
大多数人都是傻瓜,当管理者就意味着你不得不和这一点打交道。或许更重要的是,他们-不得不和你-打交道。
然而,为了做好内核管理者,最好记住不要自绝后路,伤及无辜,或树敌过众。现实是,疏远人们是蛮容易的,把他们拉拢回来就难了。因此”疏远”直接归类到”不可逆反”的事情里,就是第一章里说的大忌。
尽管现实是大多数人都是傻瓜,不幸的推论包括你也是傻瓜之一,尽管我们都心安理得的自认比傻瓜高明(让我们来面对事实,没有人自认傻瓜或不如傻瓜),我们还是应该承认我们不是独步江湖,总会有一些人不像我们一样的傻瓜。一些人嫉贤妒能,另一些人从善如流。
事情总会出错的,大家会找人来责怪。哈,就是你了。
比骂人”猪头”更招人恨的是用挖苦的语调骂人”猪头”。你可以为前一个道歉,后一个你都不会有道歉的机会。即使你其他方面都做的很好,他们可能也不会再听你的了。
如果你能驾驭得了,这是一项伟大的工作。
前一阵和朋友谈起打牌,中间聊到麻将,就想起10年前一件事。 当时和一个朋友在一个小村子里,那个朋友和当地人晚上打麻将,居然赢了几千,相当的意气风发。 听说我不会打麻将,很是为我惋惜,说了一大通。别的都没记住,就记住一句:“打麻将能让人明白很多人生道理的”。
到现在也没学打麻将,不过这句话让我想到,其实很多游戏都给自己不少的感悟, 明白一些人生的道理,这里和大家分享一下。
中国象棋的感悟
围棋的感悟:
足球的感悟:
长跑的感悟:
登山的感悟:
红警的感悟:
实况足球的感悟:
文明给我的感悟:
机缘巧合,1个月前开始参加珠海Toastmaster最早的俱乐部TMC的活动,观察了半个月后正式加入。 感觉Toastmaster很不一般,很值得做企业或做公益组织的去研究学习。 Toastmaster是个全球性NGO组织,从1924年在美国发起,现在有几十万会员,只有全球主席一人拿薪水,其他都是志愿者。 而全球主席和各分区主席都是选举产生,每半年轮换。 这个组织还在不断壮大中,光是珠海就有4个俱乐部。
曾听一个企业家说, 最好的管理是用制度管理人。而Toastmaster把这一点发挥到了近乎极致。 所有的人,包括管理人员,都在不停变动,而这个组织则稳步发展壮大, 靠的就是他设计的非常巧妙的制度机制。 我还在详细捉摸中,越捉摸越感觉整套机制的设计充满了智慧。等彻底想明白了和大家分享,今天太晚先睡了 :)。
在珠海TMC今晚的meeting中,第一次做了Ah Counter。 记录的比较详细,但上去做介绍和报告还是很紧张,断断续续的。 下次可以放松点,最后报告更有条理些。
和大家分享两个做Ah Counter的两个经验。
有些背景信息,大家可参看下列资料
Selenium是web自动化测试框架,从2.0版本后加入了webdriver功能, 可以用java,python等主流语言完全操控浏览器进行自动化测试,功能非常强大。
下面演示一个很简单的例子,就是通过webdriver打开一个浏览器,然后访问google,搜索一个字符串,再显示结果页面的title。例子都是从selenium文档里抄的,语言为java。
4.0.0
MySel20Proj
MySel20Proj
1.0
UTF-8
org.seleniumhq.selenium
selenium-java
2.37.0
com.opera
operadriver
com.opera
operadriver
1.5
org.seleniumhq.selenium
selenium-remote-driver
package org.openqa.selenium.example;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.ExpectedCondition;
import org.openqa.selenium.support.ui.WebDriverWait;
public class Selenium2Example {
static WebDriver driver ;
public static void main(String[] args) {
// Create a new instance of the Firefox driver
// Notice that the remainder of the code relies on the interface,
// not the implementation.
driver = new FirefoxDriver();
// And now use this to visit Google
driver.get("http://www.google.com");
// Alternatively the same thing can be done like this
// driver.navigate().to("http://www.google.com");
// Find the text input element by its name
WebElement element = driver.findElement(By.name("q"));
// Enter something to search for
element.sendKeys("Cheese!");
// Now submit the form. WebDriver will find the form for us from the element
element.submit();
// Check the title of the page
System.out.println("Page title is: " + driver.getTitle());
// Google's search is rendered dynamically with JavaScript.
// Wait for the page to load, timeout after 10 seconds
(new WebDriverWait(driver, 10)).until(new ExpectedCondition() {
public Boolean apply(WebDriver d) {
return d.getTitle().toLowerCase().startsWith("cheese!");
}
});
// Should see: "cheese! - Google Search"
System.out.println("Page title is: " + driver.getTitle());
//Close the browser
driver.quit();
}
}
运行后就能看到一个firefox窗口被创建出来,自动访问google并搜索, 在console窗口中会看到title的输出
今天遇到一个问题,需要知道读写某个特定文件的进程是哪个。开始找到inotify,发现它确实能监控文件的读写等一系列事件,但它只能告知制造这些事件的用户id,而没有进程id。这时候想到lsof, 它能列出当前所有被打开的文件及打开进程的信息。那么在收到inotify事件通知后,执行lsof不就能知道进程信息了,抱着这个想法写了个python脚本,结果发现屁用没有。因为大多数修改文件的过程,都是修改完后立刻关闭文件的,收到inotify事件通知再去执行lsof几乎得不到任何有用信息。
正在陷入困境之际,网上找到了答案。只要执行如下命令:
/sbin/auditctl -w 文件路径 -p war
等到文件改变后,执行:
/sbin/ausearch -f
文件路径 就能知道到底是哪个进程修改了这个文件。
ausearch的输出信息很多,可以用more或倒到一个文件里慢慢看。
看完后执行 /sbin/
auditctl -D 以删除所有监控规则。 在CENTOS 6.4 测试通过。