忙,实在没什么什么时间,挤点巴点巴一点点写吧。来杭州 5 个多月了,其他不论,在工作专业方面,还是有不少进展,总结下来大致有以下几点:
1. saunit 项目:第一天上岗,说要写一些 Trouble Shooting 自动化脚本,没人做,我说我来做吧,然后弄了个框架。不想越做越大,现在变成了整个公司监控项目中的一部分,现在我在忙活的就是这玩意... saunit-0.2.2 已经发布,可以做自动化检查(当然检查脚本还是要自己去扩展,只不过写起来就很方便也很规范了)。saunit-0.3 正在开发,需要支持并发和更强的调度功能,而且是作为整个分布式系统的代理端运行。
2. 设计模式:其实设计模式我之前没有系统学过,到实际用的时候就是野路子,而后来看来书后才发现我自己用的就是这么个东西——真是有悟性呀——自夸一下 ^^D。因为做项目的原因,实际使用时学习的效果是比较不错的。后来参加过三天外部讲师做的设计模式的培训,当时与大家讨论我的一些设计的时候,老师的评价是 cool,嘿嘿~~~ 而我那是基本上才刚刚看设计模式而已,嘿嘿~~~
现在看得比较多,用的比较好的有:策略模式、工厂方法、命令模式和单件模式等,而且因为 Python 的原因,多态非常好用。
上设计模式课的时候提到的一些企业应用的框架也蛮有启发性的,有时间还要好好看看。
3. 分布式系统:当 saunit 开始要扩大为监控系统的时候,我就开始考虑整个设计,并且希望能够做成分布式的维护系统而不仅仅是监控——这些灵感和想法最初就来自于弗洛.文奇的《天渊》。
所以去图书馆找了一些分布式系统的数来看,再次发现自己有悟性(^^P)——我无意中考虑使用了消息队列这种模式。另外,我也考虑了关于主机认证、协议设计等一些问题。
后来,虫虫介绍了一个叫 func(别看错了 呵呵 ^^$) 的东西,好像是 redhat 刚出的新东东,讨论过后,发现很多东西和我之前的想法比较接近,它的协议使用 XMLRPC + JSON,具体是如何还得有时间再研究。
4. 架构设计(控制和监视系统):做监控系统的时候,一开始没人,只能我来搞,文档都写好了,甚至已经开始动手做一些东西了,虽然可能也不咋地。好在后来有专人来负责了,也算是搞到了资源,虽然很多想法被裁剪了,有些甚至面目全非,让我觉得有些别扭,特别是现在做 saunit-0.3 实现的时候要按照那种思路,有时候觉得逻辑挺复杂的。
不过就当学习吧,实际上也有很多好的想法的确也是我以前没想到的。更多灵感。
5. 协议设计:主要一是应用协议设计中需要考虑哪些问题,如确认和断点续传、消息队列及其缓冲。另一个就是接触到 JSON 这个东西,感觉非常好,比较符合我这种讨厌 XML 的人的思维系统,而且我在考虑是否能和 Tree 解析,将 FORMAT 和 CONTENT 分离实现更大的数据传输吞吐效率,这样可以将更多网络 I/O 转变为 CPU/MEN 的操作。
google protocol buffers 太晦涩,用起来也不太方便,先不管了。呵呵。
另外就是现在因为项目的原因,需要对使用 UDP 做应用协议有更深入的学习,也不错。
6. TCP/IP 和网络编程,对 TCP 的一些东西了解得更多,比如停等时间、滑动窗口等,上次也参加了《UNIX 网络编程》的培训,还好,大部分内容还能懂,虽然那些 C 语言现在对我来说实在是有些艰深晦涩了... 我何时有时间再真正捡起来呢?
......
星期二, 十月 23, 2007
Ian Murdock 见面会
周一晚上去参见了 CU 组织的 Debian 创始人 Ian Murdork 见面会,不过 Ian 现在在 Sun 工作,自然也少不了 Sun 公司的广告啦。不过因为人比较多,Ian 减少了演讲的时间,留了一个半小时给大家提问,这本来是件好事情,可惜主办组织者太不地道了。
我本来有一些技术上的问题想问问看,虽说口语不怎么样,还是准备了一下,至少写在纸上了,可惜举手一个半小时,也抢不到话筒,因为话筒根本就不是由主讲人 Ian 来点名的,而是主办方在下面"偷偷摸摸”递来递去,除非你什么也不管,站起来就说逼得主办方不得不把话筒递给你,否则话筒基本上只会递给他们熟脸的人。好像大家都在乎那本提问就发的书似的。结果常常搞得 Ian 还没搞清楚人在哪里,眼睛还看着东边,声音就从西边响起来了,真是一点礼貌都没有。
问的问题也是一些泛泛而谈,没有什么实质性的内容。什么“Sun 的战略”呀,什么“为什么 Solaris 要关注个人用户”“向 Linux 靠拢”呀,什么“Microsoft 也搞开源啦,那么开源运动的未来怎样”呀,什么“IBM 也有 openJDK,那么对 Sun 有什么冲突”呀,什么“为什么 xx 编程比赛没有 Java"呀,什么“开源对国防安全的意义”啦等等等等...简直是在浪费大家的时间嘛。又不是搞新闻发布会。
最后,没办法,只能在最后结束后,等那些签名、拍照的人都排完了,过去说了两句,递了一张纸条,把在做的项目和个人邮箱写在上面,并说希望他能够看一下我正在做的开源项目,给我一个 feedback 作为指导和建议,他看了一下,看出了其中那个 file system mirror 的项目,并说 OK。说起来,这好像还是我真正第一次与外国人对话吧。
当然,我不能指望一定会有回复,最终要走下去,只能靠自己。
路漫漫其修远兮,吾将上下而求索。
荃不察余之衷情兮,反信馋而其怒。
亦予心之所善兮,虽九死其尤未悔。
我本来有一些技术上的问题想问问看,虽说口语不怎么样,还是准备了一下,至少写在纸上了,可惜举手一个半小时,也抢不到话筒,因为话筒根本就不是由主讲人 Ian 来点名的,而是主办方在下面"偷偷摸摸”递来递去,除非你什么也不管,站起来就说逼得主办方不得不把话筒递给你,否则话筒基本上只会递给他们熟脸的人。好像大家都在乎那本提问就发的书似的。结果常常搞得 Ian 还没搞清楚人在哪里,眼睛还看着东边,声音就从西边响起来了,真是一点礼貌都没有。
问的问题也是一些泛泛而谈,没有什么实质性的内容。什么“Sun 的战略”呀,什么“为什么 Solaris 要关注个人用户”“向 Linux 靠拢”呀,什么“Microsoft 也搞开源啦,那么开源运动的未来怎样”呀,什么“IBM 也有 openJDK,那么对 Sun 有什么冲突”呀,什么“为什么 xx 编程比赛没有 Java"呀,什么“开源对国防安全的意义”啦等等等等...简直是在浪费大家的时间嘛。又不是搞新闻发布会。
最后,没办法,只能在最后结束后,等那些签名、拍照的人都排完了,过去说了两句,递了一张纸条,把在做的项目和个人邮箱写在上面,并说希望他能够看一下我正在做的开源项目,给我一个 feedback 作为指导和建议,他看了一下,看出了其中那个 file system mirror 的项目,并说 OK。说起来,这好像还是我真正第一次与外国人对话吧。
当然,我不能指望一定会有回复,最终要走下去,只能靠自己。
路漫漫其修远兮,吾将上下而求索。
荃不察余之衷情兮,反信馋而其怒。
亦予心之所善兮,虽九死其尤未悔。
星期六, 九月 29, 2007
福无双至,祸不单行
Prima 的那一套东西实在不敢恭维。本来软件的一个目的就是要和硬件分离,结果他们搞的许可证和硬件绑在一起,令人深受其害。而且其可管理性也不好,只能按单个主机的方式排列,如果想要实现真正的集群,那似乎是没有希望了。
昨天下午 wdwd 重启了一次(搬机器的时候掉电了),本来已经忙了一天了——早上肚子里还在翻江倒海,数据库的硬盘就坏了,想找个替手的人都没有(就我一个 SA),急急忙忙处理了备份恢复,检测确诊,写笔记,中间还时不时抛过来一些杂七杂八的事情,然后又要和机房联系,急急忙忙跑过去把损坏的硬盘拿出来,在机房磨了两个小时,做 ts,——晚上回去还没进门,同事打电话跟我说发现所有的新的订单都变成“待处理”,听说上线的消息已经在各大网站发布(反正没给我说过,也没有接到过消息,反正是他们这些老板出钱,又有关系,他们想怎么干就怎么干好了,何必问我们)。 Prima 没有其他报警机制,只好回去查后台和日志,发现"License not match"。但这个 license 是昨天刚刚申请的正式授权证书,之前是运行“正常”的!
我尝试重新上载那个授权证书,结果报告“序列号不符”。解开证书的压缩包,查看 license.info 中的 serial,确实与 /usr/prima/bin/print_serial 的结果不一样。再次重启这台主机,发现序列号又变了!
从昨天晚上折腾到今天下午(晚上别指望能找到人),最后查出来原因是主机每次启动的时候,板载的那块网卡会自动改变 MAC 地址!!!而 Prima 的许可证要根据所谓 CPU 个数、频率和网卡 MAC 地址来生成序列号,然后授权证书要用到这个序列号,一套很复杂的设置,晕 @_@~~~
最后,只好在系统 /etc/rc.d/rc.local 里面每次启动时自动改一下 MAC 地址:
其实不仅他们没有严格测过,我们现在在生产线上的那些东西,其实大多也都没有严格测过,很多都是急急忙忙逼着上线,最多手工运行看看。大家都在急功近利,想着怎么尽快捞钱,成本就转嫁给下面的人去扛着就是了,用户在分担一点,他们自己就安心了。真正能静下心来做点事情的没几个。
昨天下午 wdwd 重启了一次(搬机器的时候掉电了),本来已经忙了一天了——早上肚子里还在翻江倒海,数据库的硬盘就坏了,想找个替手的人都没有(就我一个 SA),急急忙忙处理了备份恢复,检测确诊,写笔记,中间还时不时抛过来一些杂七杂八的事情,然后又要和机房联系,急急忙忙跑过去把损坏的硬盘拿出来,在机房磨了两个小时,做 ts,——晚上回去还没进门,同事打电话跟我说发现所有的新的订单都变成“待处理”,听说上线的消息已经在各大网站发布(反正没给我说过,也没有接到过消息,反正是他们这些老板出钱,又有关系,他们想怎么干就怎么干好了,何必问我们)。 Prima 没有其他报警机制,只好回去查后台和日志,发现"License not match"。但这个 license 是昨天刚刚申请的正式授权证书,之前是运行“正常”的!
我尝试重新上载那个授权证书,结果报告“序列号不符”。解开证书的压缩包,查看 license.info 中的 serial,确实与 /usr/prima/bin/print_serial 的结果不一样。再次重启这台主机,发现序列号又变了!
从昨天晚上折腾到今天下午(晚上别指望能找到人),最后查出来原因是主机每次启动的时候,板载的那块网卡会自动改变 MAC 地址!!!而 Prima 的许可证要根据所谓 CPU 个数、频率和网卡 MAC 地址来生成序列号,然后授权证书要用到这个序列号,一套很复杂的设置,晕 @_@~~~
最后,只好在系统 /etc/rc.d/rc.local 里面每次启动时自动改一下 MAC 地址:
/sbin/ifconfig eth0 hw ether 00:00:6C:92:4E:19我后来问 Prima 是不是我更换网卡后把新网卡的 MAC 地址设置和以前一样就可以,回复说没有测过。没有测过!!!其实他们没有测过的东西也不少了,耗了我不少时间精力。我个人感觉 Prima 就是一个坑,一台主机什么都干的单主机排列的方式不利于实现集群和扩展,而且这种许可证方法使得高可用的代价更高了,和硬件绑定也不是什么好事 ... 商业软件,反而让人更不放心。
其实不仅他们没有严格测过,我们现在在生产线上的那些东西,其实大多也都没有严格测过,很多都是急急忙忙逼着上线,最多手工运行看看。大家都在急功近利,想着怎么尽快捞钱,成本就转嫁给下面的人去扛着就是了,用户在分担一点,他们自己就安心了。真正能静下心来做点事情的没几个。
星期日, 三月 18, 2007
google interview: 2nd by phone
问:TCP 三次握手协议是怎样的一个过程?
答:SYN, SYN+ACK, ACK
问:中断连接是发送什么类型的报文?
答:RST
问:traceroute 原理
...(上次问过的)
问:当不能到达目标的时候的情况?
问:有 Server1 和 Server2,之间有一个 firewall,firewall 只运行两主机的 22 端口互相连接到对方,同时只允许从 Server1 的 80 端口的访问,那么如何从 Server2 连接到 firewall 的 80 端口?
答:可以利用 ssh forwarding,使用本地转发从 Server1 的 22 端口转到 firewall 的 80 端口。
问:那么具体是什么命令来实现?
答:
问:请问没有浏览器的时候,如何浏览页面?
答:可以通过 telnet host 80 来访问
(wget -m)
问:常用端口及 /etc/service(上次问过)
问:软、硬链接的区别?
答:符号链接即文件的内容是到目标的路径的字符串,而硬链接是在文件系统底层利用 inode 的指向来实现的。
问:kill 中止进程是使用的什么信号?
答:SIGTERM
问:这和 -9 强制中止有什么区别?
答:强制中止不会做清理工作并返回推出状态。
问:如何查看一个 pid 是属于什么进程的?
答:可以利用 pidof 命令,这个命令是 killall 的一个符号链接。
问:如何利用 kill 来中止所有的名为 javascript 的进程?
答:如果不使用 killall,则可以例如脚本:
for pid in `pidof javascript`; do
kill pid
done
问:mv * 这个命令会产生什么结果
问:/var/www/htdocs 下所有的 html 改诚 htm
find /var/www/htdocs | grep '\.html$' | xargs -i mv {} {}.l
for f in `find /var/www/htdocs | grep '\.html$'`; do
basename
awk
foo1.foo2.html
$1~$(NF-1) => name
mv /var/www/htdocs/$name ...
done
rewrite......
O(n^2)
改进算法
答:SYN, SYN+ACK, ACK
问:中断连接是发送什么类型的报文?
答:RST
问:traceroute 原理
...(上次问过的)
问:当不能到达目标的时候的情况?
问:有 Server1 和 Server2,之间有一个 firewall,firewall 只运行两主机的 22 端口互相连接到对方,同时只允许从 Server1 的 80 端口的访问,那么如何从 Server2 连接到 firewall 的 80 端口?
答:可以利用 ssh forwarding,使用本地转发从 Server1 的 22 端口转到 firewall 的 80 端口。
问:那么具体是什么命令来实现?
答:
sh# ssh -L 2080:firewall:80 server1
sh# ssh localhost 80
问:请问没有浏览器的时候,如何浏览页面?
答:可以通过 telnet host 80 来访问
(wget -m)
问:常用端口及 /etc/service(上次问过)
问:软、硬链接的区别?
答:符号链接即文件的内容是到目标的路径的字符串,而硬链接是在文件系统底层利用 inode 的指向来实现的。
问:kill 中止进程是使用的什么信号?
答:SIGTERM
问:这和 -9 强制中止有什么区别?
答:强制中止不会做清理工作并返回推出状态。
问:如何查看一个 pid 是属于什么进程的?
答:可以利用 pidof 命令,这个命令是 killall 的一个符号链接。
问:如何利用 kill 来中止所有的名为 javascript 的进程?
答:如果不使用 killall,则可以例如脚本:
for pid in `pidof javascript`; do
kill pid
done
问:mv * 这个命令会产生什么结果
问:/var/www/htdocs 下所有的 html 改诚 htm
find /var/www/htdocs | grep '\.html$' | xargs -i mv {} {}.l
for f in `find /var/www/htdocs | grep '\.html$'`; do
basename
awk
foo1.foo2.html
$1~$(NF-1) => name
mv /var/www/htdocs/$name ...
done
rewrite......
O(n^2)
改进算法
星期日, 一月 14, 2007
google interview: 1st by phone
从原来的公司辞职的时候,其实还没有考虑过再找什么样的工作,只是觉得再那样做下去不会有什么长进了,因为自己产生的很多新的设想都没有办法去实现,工作变成了朝九晚六的坐班,每天就做着那些数据搬运工和系统救火员的 IT 民工事业,提出的想法和意见也没人听,和维护组的那位 Partner 也不太投契,也许有点犯相吧,倒是和其他组的几位比较合得来。
而且象这种游戏公司,做 IT 维护自然会非常了累,加上我这个人对于重复性的劳动本来就没有多少疲劳强度,感觉身体也是一日不如一日。
再者,游戏这种东西,总是难逃圈钱和毒害青少年之嫌,如果可以有别的选择,我想我还是应该做出改变了。
所以,虽然这时候还没有找到下家,但我还是毅然辞职了。因为心里的设想也已经渐渐趋于成熟了。一个是关于 Enterprise Architecture 的架设,另一个是从网上看到一个德国人写的基于用户的包管理方法的原理,觉得可以写成一个软件。于是我打算从这个地方入手,先做点东西出来,可以拿得出手,这样再找工作也有点资本。
于是回家休息了一段时间,然后开始设计基于用户的包管理器。这时候还没有想过要在找什么工作、什么公司。后来覃建议我投到 google,因为那种文化比较适合我的个性吧。
在完成了 0.1.1alpha 版本的时候就回上海了,时间是 11 月了。然后投了简历到 google,以及其他在 51job 上的一些公司。开始文本格式有问题,结果是石沉大海,其他公司也没有消息。无论如何,生计问题不能不解决。后来也投了几次其他公司,跑了两次面试,基本上没什么效果,在面试时也谈到了自己的设想和目标,但似乎不能引起对方的关注。
其实这也很正常。现在想来,是当时在定位上有问题。
后来在 11 月下旬左右又投了一次,这次大概在 12 月中旬收到 google HR 的电话,问了一些诸如大学成绩之类的问题,然后安排的第一次面试,是从美国打过来的越洋电话,因为时差的关系,很早就得爬起来。
而且象这种游戏公司,做 IT 维护自然会非常了累,加上我这个人对于重复性的劳动本来就没有多少疲劳强度,感觉身体也是一日不如一日。
再者,游戏这种东西,总是难逃圈钱和毒害青少年之嫌,如果可以有别的选择,我想我还是应该做出改变了。
所以,虽然这时候还没有找到下家,但我还是毅然辞职了。因为心里的设想也已经渐渐趋于成熟了。一个是关于 Enterprise Architecture 的架设,另一个是从网上看到一个德国人写的基于用户的包管理方法的原理,觉得可以写成一个软件。于是我打算从这个地方入手,先做点东西出来,可以拿得出手,这样再找工作也有点资本。
于是回家休息了一段时间,然后开始设计基于用户的包管理器。这时候还没有想过要在找什么工作、什么公司。后来覃建议我投到 google,因为那种文化比较适合我的个性吧。
在完成了 0.1.1alpha 版本的时候就回上海了,时间是 11 月了。然后投了简历到 google,以及其他在 51job 上的一些公司。开始文本格式有问题,结果是石沉大海,其他公司也没有消息。无论如何,生计问题不能不解决。后来也投了几次其他公司,跑了两次面试,基本上没什么效果,在面试时也谈到了自己的设想和目标,但似乎不能引起对方的关注。
其实这也很正常。现在想来,是当时在定位上有问题。
后来在 11 月下旬左右又投了一次,这次大概在 12 月中旬收到 google HR 的电话,问了一些诸如大学成绩之类的问题,然后安排的第一次面试,是从美国打过来的越洋电话,因为时差的关系,很早就得爬起来。
这次只是问了一些很基础的问题。例如:
问: IP, HTTP, TCP, 以太网,按协议由低到高排列?
答: 以太网, IP, TCP, HTTP。
问: 子网掩码为 255.255.128.0,问可以容纳多少个 IP 地址?
答: 128 * 256 个。
问: (提示)有没有什么特殊的地址?
答: 是网络地址和广播地址,所以应该是 128 * 256 - 128 * 2 - 2 个。
问: 那么为什么这两个地址不能作为 IP 使用?
答: 广播地址是用来发送广播报文,这样子网中所有的主机都能够接收到;网络地址...
正解: 网络地址可以用来计算路由。
问: traceroute 的工作原理是怎样的?
答: 它首先发送一个报文,设置其 TTL=1,这样在第一个路由器就会返回报文并被 traceroute 记录;然后它设置 TTL=2,一次类推,直到到达目标的所有路由都被记录。
问: 那么它使用的是什么协议?
答: ICMP。
问: 下面是一些 UNIX 的基础问题。请将这些服务和端口号对应起来:
...(省略,比较简单)
问: 如果不知道某个服务的端口号应该怎么办?
答: 查看 /etc/services 文件。
问: DNS 的 TTL 是做什么的?
答: ...(答错,和备份 DNS 的序列号弄混淆了)
正解: 缓存的 Time To Live,即只缓存服务器过多长时间更新一次记录。所以域名解析的变更通常不是立即生效的。
问: id 为 1 的进程(init)是做什么的?(印象中大概是这样的)
答: 是系统中所有进程的父进程,用来 fork 其他进程。
问: 如果父进程中止,那么子进程会怎样?(不记得是否有这个问题,但答案的话是说过的)
答: 子进程由 init 接管。
问: 僵尸进程是怎么回事?
答: 僵尸进程是指父子进程已经中止,而父进程却没有的到其退出状态的进程。
问: 那么为什么要这样设计?
答: 这样至少保证如果一个进程有问题,那么会显示出来。(回答得不是很好,但大体意思答出来了)
问: uptime 的输出是什么意思?
答: 表示1分钟、5分钟和15分钟之内的平均负载。
问: 那么负载是什么意思?
答: 即单位时间内在等待队列中等待执行的进程的数量。
问: 那么进程有几种状态?
答: 运行、等待、睡眠和挂起等。
问: Linux 中做 RAID5 至少需要几块磁盘?
答: 3 块。
问: 如何保证和提高 UNIX 系统的安全性?
答: 首先保证操作系统本身的文件权限和用户的安全性,设置正确的防火墙规则,还有可以添加 tripwire 这样的工具来保证系统的完整性...(回答得不是太好)
补充: 增加良好的认证如 PAM 规则以及 Kerberos,还有 IDS(入侵检测系统)如 snort,并加强监控和日志审查。
可能还有一两个问题记不起来是什么了。
问: IP, HTTP, TCP, 以太网,按协议由低到高排列?
答: 以太网, IP, TCP, HTTP。
问: 子网掩码为 255.255.128.0,问可以容纳多少个 IP 地址?
答: 128 * 256 个。
问: (提示)有没有什么特殊的地址?
答: 是网络地址和广播地址,所以应该是 128 * 256 - 128 * 2 - 2 个。
问: 那么为什么这两个地址不能作为 IP 使用?
答: 广播地址是用来发送广播报文,这样子网中所有的主机都能够接收到;网络地址...
正解: 网络地址可以用来计算路由。
问: traceroute 的工作原理是怎样的?
答: 它首先发送一个报文,设置其 TTL=1,这样在第一个路由器就会返回报文并被 traceroute 记录;然后它设置 TTL=2,一次类推,直到到达目标的所有路由都被记录。
问: 那么它使用的是什么协议?
答: ICMP。
问: 下面是一些 UNIX 的基础问题。请将这些服务和端口号对应起来:
...(省略,比较简单)
问: 如果不知道某个服务的端口号应该怎么办?
答: 查看 /etc/services 文件。
问: DNS 的 TTL 是做什么的?
答: ...(答错,和备份 DNS 的序列号弄混淆了)
正解: 缓存的 Time To Live,即只缓存服务器过多长时间更新一次记录。所以域名解析的变更通常不是立即生效的。
问: id 为 1 的进程(init)是做什么的?(印象中大概是这样的)
答: 是系统中所有进程的父进程,用来 fork 其他进程。
问: 如果父进程中止,那么子进程会怎样?(不记得是否有这个问题,但答案的话是说过的)
答: 子进程由 init 接管。
问: 僵尸进程是怎么回事?
答: 僵尸进程是指父子进程已经中止,而父进程却没有的到其退出状态的进程。
问: 那么为什么要这样设计?
答: 这样至少保证如果一个进程有问题,那么会显示出来。(回答得不是很好,但大体意思答出来了)
问: uptime 的输出是什么意思?
答: 表示1分钟、5分钟和15分钟之内的平均负载。
问: 那么负载是什么意思?
答: 即单位时间内在等待队列中等待执行的进程的数量。
问: 那么进程有几种状态?
答: 运行、等待、睡眠和挂起等。
问: Linux 中做 RAID5 至少需要几块磁盘?
答: 3 块。
问: 如何保证和提高 UNIX 系统的安全性?
答: 首先保证操作系统本身的文件权限和用户的安全性,设置正确的防火墙规则,还有可以添加 tripwire 这样的工具来保证系统的完整性...(回答得不是太好)
补充: 增加良好的认证如 PAM 规则以及 Kerberos,还有 IDS(入侵检测系统)如 snort,并加强监控和日志审查。
可能还有一两个问题记不起来是什么了。
总体上,当时个人感觉还可以。
不过后来回想起来,当时的简历实在是写得太差劲,用语、结构都有问题。用朋友的话说,就你那种简历,竟然还面了几次,简直是奇迹。
一个好的简历是非常关键的,在心理学上称之为定位调整偏见,又称“锚定”,在这里就是给考官的第一印象。基本上每个考官在谈话之前都要看过你的简历的。
所以后来我找了本专门介绍写简历的书,按上面的原则重写之后,效果奇好。不过那时已经失掉 google 的机会了...
订阅:
博文 (Atom)