关于沙龙

在看旅游卫视,采访北大法语系主任,谈到沙龙是来源于18、19世纪的精英贵族文化,一般由家庭的女主人发起,在很私密的环境(比如客厅),邀请高端人士进行文艺作品交流、诗朗诵、话剧表演、厨艺展示等。后来某些国王将自己最大的客厅开放给公众进行艺术交流,就变成了展览。
沙龙类似微信的朋友圈,氛围是分享赞赏,没有谩骂;而展览类似微博,偏重传播和批评。节目有种论调,认为当前国内很多沙龙缺乏私密和高端的特质,滥用了概念。我认为,当今文化圈的展览相对较少,民间存在强烈的交流需求,促进文化的多元化无可厚非。最后还是希望媒体能对民间文化进行强势引导。像去年的舌尖上的中国就不错,让国人领略了中华美食文化的丰富与细腻,然而缺乏更加立体的运作,使这档节目可能无法最终成为类似Lonely Planet的文明成果。希望湖南卫视、江苏卫视等强势媒体平台能利用图书、网络等渠道为当代中华文明的沉淀做一些努力,这是人文精神和娱乐精神的本质区别。

Sublime Text

今天偶然发现一个超强的代码编辑器Sublime Text,简单使用了一下:它的重量级介于notepad+和eclipse之间,对语言的支持很全面,而且十分注重开发人员的效率,想必用惯了vim的同学会觉得很爽。再配合它的Package Control扩展,能够方便的添加插件以增加个性化的功能,如果实在是没有功能能够满足你了,也可以用python自己编写一个插件。更全面的介绍见这里,就不详述了,大家有空试用一番。

厦门

五一携老婆和父母去厦门玩了三天。此时的厦门刚刚进入夏季,空气略有湿闷但还有些小凉风,很惬意。话不多说,上照片!

厦门大学一角
厦门大学一角
曾厝垵墙头上的花朵
曾厝垵墙头上的花朵
湾景客栈的主人-gary
湾景客栈的主人-gary
鼓浪屿的小别墅
鼓浪屿的小别墅
日光岩
日光岩
海边的花丛
海边的花丛
快艇
快艇
厦门大学湖边的倒影
厦门大学湖边的倒影

使用Scrapy + Selenium抓取网页

某些页面是使用ajax技术渲染的,无法通过直接下载HTML源代码来解析,所以需要调用Selenium等软件帮助我们获取渲染后的HTML代码。

所需的软件包括:
1. Scrapy (http://scrapy.org/),python下的无敌抓取框架;
2. Selenium Server (http://seleniumhq.org/projects/remote-control/),可以用各种语言远程控制Selenium做各种事情,一般用于构建自动化测试工具,这里我们用来抓取网页;下面是原理图:
Selenium RC
3. 在电脑的Firefox中安装Selenium IDE插件。

下面我们开始一步步来做:
1. 首先,进入你的电脑上Selenium Server的jar包所在的目录,通过java -jar xxx.jar的方式运行它,程序会自动监听本地的4444端口;
2. 参考我的上一篇博文《如何连入一台没有外网IP的服务器》 ,将本地的4444端口与服务器的4444端口建立Remote映射;
3. 使用Scrapy框架开始编写python程序,具体的例子不再赘述,网上有许多例子,比如这个:https://gist.github.com/1045108。仅描述几个要点:
a) 在python里调用selenium这样写:
self.sel = selenium("localhost", 4444, "*firefox","http://example.com/")
不过直接写 “*firefox” 可能会找不到Firefox的路径,这时可以强制指定Firefox的程序路径,比如:”*firefox D:/Program Files/Mozilla Firefox/firefox.exe”。
b) 获取Firefox渲染完成后的HTML代码:

sel = self.selenium
sel.open(response.url)
sel.wait_for_page_to_load(10000)
html = sel.get_eval("selenium.browserbot.getCurrentWindow().document.getElementsByTagName('html')[0].innerHTML")

 

Done!

如何连入一台没有外网IP的服务器

我们有的时候需要从本地电脑连入线上的数据库服务器进行各种操作,而通常数据库服务器是不允许外网访问的,如何解决这个问题呢?

1. 打开putty,在 SSH -> Tunnels 菜单增加一个本地端口到远程端口的对应关系,如下图:

如果你在Ubuntu或MAC下办公,那么更简单了:

在本地机器敲入:ssh -Nf -L 3307:localhost:3306 remote.server.com;

在远程机器敲入:ssh -Nf -R 3306:remote.server.com:3307 localhost。

原理是一样的,就是创建一个隧道。

2. 打开你的MySQL客户端(以HeidiSQL为例),配置host为127.0.0.1,端口为3307(或你自定义的本地端口),输入远程MySQL的用户名和密码即可,如果这个时候报Access Denied错误,要留心你的用户名所在IP是否为SSH Tunnel设置的远程IP,如果不是需要改为一致的。

Enjoy it!

领导者与管理者的区别

(在网上搜索“领导者与管理者的区别”,找到147万条记录。)

如果您意识到“领导者”和“管理者”是不一样的角色时,相信以下的观点能与您产生共鸣。

我在过去若干年的职业生涯中,遇到过不同的上司,风格各有千秋。但当自己作为管理人员的时间逐渐增长时,才意识到这些风格是由不同的心智模型导致的,而心智模型又取决于每个人所在的环境、性格的差异。正确发现自己的优势,有利于让自己成为在某方面最擅长的领导者或管理者;正确的理解各类上司的思维方式,有利于让自己在领导者和管理者面前都能游刃有余,取得最优异的绩效。

下面谈谈我对领导者和管理者的理解:

首先谈谈领导者:谁也无法否认,乔布斯是一个近乎完美的领导者,因为他做到了超越现实的制度,去改变世界,他能对未来的发展方向有一个明确的见解,并推动三年、五年甚至更长的时间去实现它。跟着他们,你永远会有一种安全感,因为他们永远会给你一个答案,即使这个答案只是模糊的愿景,或是错误的、冲动的目标。

其次谈谈管理者:管理者经常是维持秩序的那帮人,他们经常被冠以顽固分子的称号。我认为的管理者的四部曲是:制定规范、推动执行、总结、制定下一个规范,简而言之就是画个圈儿然后自己跳下去,无论遇到怎样的束缚,都不能跨越自己设定的红线,还要带领团队享受这个过程。

一个互补的团队才是好的团队,在团队中,是需要领导者和管理者的默契配合的。领导者在前面冲锋陷阵,身后会留出很多的空档,如果管理者不去补位,那么领导者容易陷入弹尽粮绝、孤立无援;同样,管理者在后方带队伍,提高战斗力,如果领导者不给大家激情澎湃的方向感,管理者讲再多的大道理也是空话。

同样的,领导者和管理者的位置不能发生明显的重叠。如果领导者突然下来管很具体的事情,团队成员会认为之前的工作成果受到了质疑,会倍感压力;如果管理者讲太多所谓方向性的事情,且与领导者方向冲突,则容易增加误解,陷入内乱,不如少解释,多创造领导者与下属直接沟通的机会,疏通每个人之间的关系,使团队产出最大化。