您现在的位置:首页
--> 星月轮转
前阵子解决一个问题的时候,差点以为是我们自己在 HTML 代码中输出的一段信息有问题,结果发现,Chrome 的 View Source Code 竟然会重新发送一个请求!有史以来,所有的浏览器从来没有过这样天才的设计。大家都是老老实实,既然你让我显示源代码,那我就直接给你把正在看的这个页面的源代码显示出来。没有人想过竟然可以重新发起一个请求,去拿“纯洁的”源代码。这是革命性的!Chrome 你做到了!早在2008年,就已经有人提出这个 bug - View source forces page reload. 中间有人将之标记过 Fixed,但是世界末日快来了,Chrome 的稳定版本已经飚到18了,市场份额已经远超 Firefox 了,实际上这个 bug 仍然存在。我的天啊,究竟是什么样的设计,导致解决这样一个问题这么难?
某服务器上一个 cron job 是 shell 脚本调用 Java 程序,最近老是报 Segmentation fault, 每次看见此信息 /bin/sh: line 1: 4285 Segmentation fault java ... 总觉得无处下手,bash 的问题?Java 版本不对?信息量太少了。其实遇到这种事情不能谎,表面上没有信息一定要挖出信息来。今天仔细一看,这个脚本把标准输出重定向到一个日志文件去了,于是去看日志。这个程序的主体是对一个信息列表做循环,恰好在每个循环的关键部分开始前、结束后都会写一条日志。其目的是为了计时,不过正是这两条日志让我很快找到了错误缘由,因为发现日志文件的末尾只有一个开始前的,说面在这个循环的处理过程里面发生了 Segmentation fault. 找出程序的源代码,发现循环里面调用的方法有一个是递归的,情况就开始明朗了,猜测就是递归
有个 Server 需要 Basic Auth 认证,但是我发现在它自己上面有一个任务会通过 wget 访问一个自己的 URL,调用的过程并没有提供用户名和密码,竟然可以成功访问!一开始我以为是 Apache 里面配置的访问规则是对本地访问不需要认证,但是并非如此。bash alias? 也不是。加上 --debug 参数调用 wget,发现它确实在访问本机的这个域名时会加上 Authorization 这个 header, 而访问其它域名的时候则不加。最终通过 strace 发现它会打开 $HOME/.netrc 文件,原来秘密就在里面。中间看了半天 manual,只看到它会读取 /etc/wgetrc, $HOME/.wgetrc, 没注意到还会读这个文件。我不太喜欢这种做法——谈不上安全,又不容易维护。
前天用 iTerm2,在执行一个 grep "xxx" filename | head (filename 这个文件应该相当大,grep 到的内容也应该有很多)这样的命令时,遇到大量如下错误输出: grep: writing output: Broken pipe 而在 Mac 自带的 Terminal.app 里面执行完全一样的命令,不会有任何错误。用 which 查看,使用的确实是同一个 grep 命令,同一个 head 命令。再仔细观察,发现其实 iTerm 里面,命令也输出了正确的结果,那后面的这些错误信息应该是输...
刚开始用 Python 做 web 开发的时候我就想一个问题,如果 Python 应用需要自己记录一些比 accesslog 更详细的日志(使用 Python 的 logging module),又有多个进程,怎么办最好呢?多个进程往同一个日志文件写入会不会出问题?最近有个在 Apache 里用 mod_wsgi 运行的程序,设置了4个 process. 最初没有设置日志的 rotation,看起来一切正常。有一天设定了每天 midnight rotate(换成 TimedRotatingFileHandler), 第二天就出问题了...
很早的时候就有人发明了 OpenID,希望解决用户在每一个网站都重复注册流程的问题,但是由于种种原因,这个事情好久没什么起色。我曾经也弄过 OpenID,后来发现由于不怎么常用,我连 URL、密码之类的都记不住,还不如在每个网站上都注册一下。从网站的角度看,他们也不愿意把网站的入口交给第三方――这个 OpenID provider 的网站挂了怎么办?直到 Google/Yahoo! 这样级别的作为 OpenID provider 还比较靠谱。第一,它们足够稳定;...
自己搭了一个 OpenVPN Server,以前一直是在 Mac 里使用客户端,加上 chnroutes,用得很舒服。最近想在 Windows 里用一下,结果显示能连上,但是流量就是不从 VPN 走,很郁闷。试了一下,连服务器 IP 10.0.0.1 都 ping 不通。
写这个主要是因为我做自己的这个网站用的就是 Python 技术(基于简洁的 web.py 框架)。虽然 Python 只是业余爱好,不怎么熟悉(每次写代码都得上网查好多资料,包括语法),但是很喜欢它。这几天发现最近很火的新问答网站 Quora 也是用 Python 做的,它自己网站上有一个问题就是――Quora 是使用什么语言和框架做的?What languages and frameworks were used to code Quora?创始人 Charlie 的回复:后端使用 Python 语言,Pylons...
几个月之前,一位朋友很郁闷地找我,说 Java 做的网站调整了一个参数,本地测试没有问题,但是 commit 代码之后在服务器上 check out,就不起作用。我通过 svn 看了一下两个版本的差异,发现朋友修改的是一个 static final 的变量,情况就开始明了了。检查一下,使用该常量的地方是在另一个 Java 文件的另一个类中,因为该文件没有被修改,所以没有重新编译生成新的 .class 文件。而 Java 编译器编译的时候,是直接把常量的值编译...
今天在一个 Apache 上通过 mod_fastcgi 开了 redmine,使用的时候发现访问速度非常之慢,打开一个页面一般需要十几秒,开始以为是网速的问题,但是同一台服务器上其它的网站访问非常快。最开始以为是 rails 或者 mysql 的性能问题,但是打开 production.log 看了一眼,发现它们加起来一般占用仅几十毫秒的时间。Firefox 状态栏一直在显示正在加载,到底在干什么?用 "tail -f" 查看 apache 的 access_log,看到每次打开一个 redmin...
还是那句话,某些闲得太无聊的大学老师喜欢拿这种题来考学生。但是我认为,不要为了记忆而记忆。假如你经常用某种语言,那么它的 true/false 你自然很了解。假如你不怎么用或者因为在多种语言中穿梭而搞乱,那就在迷惑的时候 Google 一下,不会花多少时间的!
很多时候我们需要爬取网页并且获取页面上的特定内容,不一定是做坏事比如爬取竞争对手的数据。也许我想定期爬自己的网站,找到页面上的链接,并且看它们指向的网页是不是都还可以访问。爬到一个网页,为了获得上面所有的链接,我以前首先想到的是用正则表达式。但是 HTML 并不一定是良构的 XML (如果每个人都用 XML 的标准写 HTML,那我们直接用标准的 XML parser 就好了),写正则表达式的时候你需要考虑大小写、换行、单引号/双...
基于 web.py 的程序开发起来还是非常简单的,但是我没想到在服务器上部署的时候却遇到了不少麻烦。我用的 web server 是 lighttpd,不能正常启动,查看错误日志,发现如下几行:2009-12-15 19:48:04: (server.c.1503) server stopped by UID = 0 PID = 25128 2009-12-15 19:48:30: (log.c.166) server started2009-12-15 19:48:30: (mod_fastcgi.c.1104) the fastcgi-backend /var/www/code.py failed to start:2009-12-15 19:48:3...
我的 Nokia 3100 已经用了大约有四五年了,最近很有冲动要买个 iPhone,不过某人却给我买了个 E71,粉碎了我的梦想。在 Nokia 3100 退休之际,看一下它的丰功伟绩:发出的信息 10243,收到的信息 11431.其实 E71 我也比较满意,不买 iPhone 也省下一笔钱。先配置了一下 Share Online,让它可以把照片上传到 flickr,然后就开始整 twitter. 先试了一下 Gravity,界面挺不错的,就是不是免费软件,最关键的是听说流量耗费比较大,我...
今天跟一个计算机专业上大二的小兄弟聊了一会,期间他问:”你们公司招 Java 程序员?是不是基本大公司都不用 .NET?“他在自学 C#,这让我隐约回想起我学习计算机的过程。我基本是上大学才开始接触计算机,之前也就去过几次网吧,去校长办公室里打过几次抢滩登陆战。大学的一个寒假,我带回家一大堆计算机方面的书要自学,印象比较深的是还有一本讲 3ds Max 的书,当时什么都不知道,什么都想学……但是当时没有任何人给我指路,一...
最近经常盯着访问日志,有一次一边 "tail -f" 日志,一边在 Google Reader 中点击了一下自己的一个日志链接,发现新增的一行日志竟然没有 referrer 信息!我的浏览器并没有做任何隐藏 referrer 的特殊配置,所以这事儿我纳闷了好多天―― Google 是怎么做到的?即使可以做到,有什么必要隐藏 referrer 呢?今天晚上动用了一大堆工具――Firebug, Fiddler, Eventbug, 研究了半天,我想 Google 一定是在用 JavaScript 完成这样的 tri...
在 Adobe AIR 的首页上,就给出了三种 AIR 编程的途径: Ajax
最近需要写个 shell script,给定一个日期参数,它要得到该日期的前一天,然后做剩下的事。执行的时候就是这样: # ./foo.sh 2009-03-01 初看,这个问题有些棘手。最原始的办法是写个比较繁琐的函数,知道每个月分别是多少天,还要处理一下闰年的情况――这也有点太繁琐了,呵呵。稍微看一下 date 命令,就发现利用它可以很方便的写出一个非常 stable 的函数。date 可以通过 -d 指定一个日期,然后用指定的格式输出。-d 不仅可...
[ 共18篇文章 ][ 第1页/共1页 ][ 1 ]
近3天十大热文
- [69] Twitter/微博客的学习摘要
- [67] IOS安全–浅谈关于IOS加固的几种方法
- [65] 如何拿下简短的域名
- [65] android 开发入门
- [63] find命令的一点注意事项
- [62] Go Reflect 性能
- [61] 流程管理与用户研究
- [60] Oracle MTS模式下 进程地址与会话信
- [59] 图书馆的世界纪录
- [57] 读书笔记-壹百度:百度十年千倍的29条法则
赞助商广告