遇到奇怪的问题,在 Windows 环境下,你猜 dirname(‘/’) 返回虾米? string(1) “\” Linux 下呢? string(1) “/” 换个参数,dirname(‘/home/leakon/sofav.php’),如果你认为上面的不同,是因为 Windows 的目录分隔符是反斜线 “\”,那下面的结果如何解释? […]
原创
谷歌网上图书馆 一座永远的图书馆 vs CCTV2 今日观察
没想到CCAV用这么大篇幅来抨击Google图书馆。 在我看来,可能G.cn不想交保护费,然后某色社会,向基地组织学习,在实施罪恶之前,给出一段录像,算是恐吓。 看了cnBeta的众多评论,尤其是看到很多G粉儿的一片声讨CCAV的声势,我在些许欣慰之余,不免有些担心。 在天朝这样的国度里,最广大人民的根本利益,注定是要被黑老大们QJ的。怎奈我无力劝说所有的仍然心存良知的可爱的人们,其实你们可以在评论里一致祝福CCAV越办越好的,当黑老大们看到你们的愿望,便会搞死CCAV让你们享受“快感”。 实事求是,我也是G粉儿,我觉得很正常,痴迷于技术的人,怎会不是G粉儿? 反过来说,断章取义,唯恐世界变革影响自己的不劳而获的生活的不是G粉儿的人,怎会不是无知的SB? 前一阵看过一个介绍中国最初修建铁路历程的纪录片,给我很大感悟。那会儿全中国只有李鸿章支持修建铁路,可惜那会儿他还只是浙江巡抚,影响力有限。但在当时,算作洋务派代表的李鸿章,几乎是只身一人,面对大清国上上下下从太后到平民百姓所代表的顽固派,进行力量悬殊的斗争。 那会儿的官民倒成了一家人,说火车样子诡异,乃不祥之物,鸣音巨大,有伤风水。 像!真是惊人的相似,今天在CCAV上看到的这帮坐家们和砖家们的顽固不化的嘴脸,怎么跟200年前大清朝那帮愚昧的官民一副德性? 我正好看了谷歌中国的黑板报,引用了 Sergey Brin 的一片文字:《一座永远的图书馆》 请允许我在本文的最后全文引用这篇文字,我怕被黑老大们当大闸蟹给河蟹了。 我之前,有个梦想,把世界上所有有价值的文字、声音、影像全部记录下来,以供现在的我们和未来的人们学习、参考、回忆。 […]
SofavDB_Debug_PDO MySQL 执行时间 日志
这个类可以完全替代 PDO,如果你需要知道自己的程序跟 MySQL 交互花费多少时间,而你又有洁癖,不想把自己的代码搞得一团糟,那我强烈地建议你试试这个 SofavDB_Debug_PDO。 通常,创建一个 PDO 连接,都是 new PDO()。 在开发环境中,你只需要把上面那个语句替换成 new SofavDB_Debug_PDO() 即可。 然后,凡是通过 prepare 的 […]
MySQL 索引 优化 Using filesort
MySQL 数据库,MyISAM 类型的表 table_item,有 5、6 个字段,主键是 id。 user_id 和 item_id 两个字段都是单独的 INDEX 类型的索引。 问题是如何发现的? 今天搞程序,在自己的开发环境下,打开一个简单的页面都要好长时间,不知道问题出在哪里,只发现硬盘灯闪个不停。 […]
您目前 UCenter 的程序文件还没有上传
今天升级 Discuz,从 Discuz 6.1升级到 Discuz 7.0。 按照官方的升级文档,先把 UCenter 升级到 1.5,然后才能升级 Discuz。 为了稳妥起见,我把服务器上的程序和数据库都备份到本地,升级一下试试。 果然遇到问题,在升级 Discuz 的时候,运行 upgrade11.php ,结果得到下面的提示: “您目前 UCenter 的程序文件还没有上传” 后来 […]
PHP MySQL localhost 127.0.0.1
今天刚发现一个问题,PHP连接MySQL的时候,不同环境的localhost会有不同的结果。 我的服务器装了2套PHP,其中有一个是用源码编译的,另一个是xampp集成包。 编译的php用于生产环境,xampp用来建立测试环境。 把线上的代码放到测试环境下,居然报告无法连接MySQL! 刚开始以为是端口的问题,可是我在命令行下怎么连接都没问题。最后抱着试试看的想法,把localhost改成了127.0.0.1,这回居然成功了。 我不能理解,线上代码运行的好好的,配置文件就是localhost呀,怎么到测试环境就必须改成127.0.0.1才行? 两套环境,主要的区别就是PHP,虽然版本都一样,不过xampp是编译好的,我估计问题出在这里。 然后立刻写了一个测试程序: $connA = mysql_connect(‘127.0.0.1:3306’, ‘leakon’, ‘pass’); $connB = […]
用CSS实现Tab导航
本文主要讨论的就是导航tab的底部灰线如何用CSS实现,而不是用背景图片实现。用CSS实现的好处是可以避免浏览器发起一次图片请求,另一个是可以方便地改变颜色、尺寸。 做法是用ul和li标签生成tab,在ul的外部用p标签包围,导航底部的那条细线,就是p标签的bottom-border。 过程中遇到的一个难题是,高亮的tab,是白色背景,该tab底部没有border,应该也是白色的。但用普通的方法没法做到,如上面第2个图,“首页”那个tab的出现了底部border。因为p标签是ul和li的外层容器,内部的所有元素默认都在p标签的范围内,无法跨越p的边界。 通常这种导航的底部实现都是用背景图片代替,这样的理由是:1、背景图片的位置可调,可以不用紧紧挨着边框,比如离bottom有4px的距离;2、背景图片显示在最低层,p容器内的任何元素都可以覆盖住背景图片。高亮tab的底部没有border的效果就是靠白色背景挡住了p的背景图片做到的。 基于这种思想,我考虑可以用什么方式让内部元素挡住外层元素呢? ul元素的position属性设置为absolute,p标签的position设置为relative。这样ul就定义在p标签内浮动,默认top和left都是0,即p的左上角。同时,ul会覆盖住p。只要p的height刚好比ul的height小1px就可以,也就是让ul中li的bottom-border刚好和p的bottom-border在同一个垂直高度上。注意,p标签的overflow属性必须是visible(默认值),也就是说只要你不把overflow设置成其他值就没问题。 经过上面的步骤,可以总结出几个关键点,按重要顺序排列: ul和p的position属性,分别是absolute和relative(这里告诉你为什么这样设置) p的高度应该比ul小1px(根据你的需要,小几个px都可以) overflow属性必须使用visible 通过这几个关键点,你就可以基本实现图1的效果,不过还要针对不同浏览器做小小的css hack。 hack的关键点就是p的height值,在我这里,Firefox2/3、Chrome、Opera适合27px,IE7、Safari适合26px,IE6适合25px。 现在我唯一的问题是不知道怎么写出专门适用于Safari的CSS定义,所以在Safari下是图3的效果,其实就差1px,回头找到方法再补充吧。
我的互联网每周点评 2008-11-22
百度公关 因为没给某个电视台交保护费,就遭到连续2天的恶意报道,说百度为了利益而改变搜索引擎的排序结果,误导网民,甚至还说什么会影响互联网产业。不管说的对不对,我看那个电视台想说的意思是:百度收了钱才办事儿,不给钱不仅不办事儿,甚至给你屏蔽了。那么我反过来看看那个电视台的行为:给了广告费就帮你忽悠,不给广告费,不仅不给你忽悠,还给你栽赃陷害。如果说百度会影响互联网产业,不知道那个电视台会影响什么?我估计会影响中国的持续发展。不如把这个电视台新盖的楼送给百度,呵呵…… Gmail 主题 Gmail 可真是个好东西,我现在真不敢想象,如果没有 Gmail,我的生活将会受到什么样的影响。现在可以换主题了,我觉得可以吸引很多普通用户,让他们从其他邮箱转移到 Gmail。不要小看换皮肤这个功能。如果你是一个实用主义者,似乎对这类功能不感兴趣。确实,Gmail 最开始是以实用为主的,面向的也都是有经验的互联网用户。当 Google 满足了这部分高端用户的需要后,就开始向更大范围的普通用户下手。看看百度空间,提供了用户自定义CSS的功能。再看看有多少用户创建的模板,数以万计。有人说百度空间有点娱乐型的感觉,比较适合普通用户,尤其是年龄较低的用户。也许 Gmail 的这次开发主题选择,也是为了这部分用户吧。 用户研究 最近又讨论到用户,又说起创业公司的第一步应该怎么走。当我们几个人坐下来讨论,各自为了证明自己观点的正确性而引经据典时,突然发现,这些前人总结的真理,都是正确的。说起如何选择方向的时候,我提出了一个观点,就是创业的初期应该是2条路:1、创业者选定一条自己最擅长的领域或方向,在这个领域潜心钻研,深入探索,然后做一些针对性和目的性很强的用户调研,来为自己设定的目标提供修正或参考;2、创业者有一个“万能”的团队,就想 […]
SSH 信任 无密码 无口令 登录 ssh-keygen
做 rsync 远程同步文件的时候,总要输入密码,没法做自动运行。查 rsync 的使用方式,用 –password-file=/home/leakon/secret/rsync.pass 这个参数也还是不行,有人说改文件权限为 600,有人说文件里面只写密码,不要写成 user:pass 的格式。反正怎么试都是不行。 只能寻求建立 SSH 信任关系跳过密码的方式来同步文件了。 本来以前查资料,搞定过用 SecureCRT 不要密码登录 […]
Javascript Event 事件 特性 总结
简要提纲 addEventListener,the 3rd parameter,true: parent to child,false: child to parent onMouseOver/Out,与 child 节点交互时,先 Out 再 […]