手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表2009年08月的文章

老王:你们这些不明真相的围观群众啊


Shell批量修改文件内容

比如说,我想把网页文件里的foo都替换成bar,主要是利用sed的-i参数:

find /path -type f | grep -i -E '(htm|html)$' | xargs sed -i 's/foo/bar/g'

在Smarty模板里渲染嵌套数据

主要是利用include语法,

<!--{include file="_tpl.html" param=$foo}-->

然后在_tpl.html模板里接着使用
:<!--{include file="_tpl.html" param=$bar}-->,即完成了嵌套数据的渲染。

PHP中mb扩展的编码问题

mb_internal_encoding('gb2312');
mb_regex_encoding('gb2312');

需要注意的是
mb_regex_encoding不支持gbk,此时你只能使用gb2312, 类似的问题htmlspecialchars也有。

MySQL里索引的选择及取舍


给个简单的例子:按创建时间倒叙查询文章及其类别信息

SELECT *
FROM articles LEFT JOIN categories on articles.category_id = categories.id
WHERE articles.user_id = ... ORDER BY articles.created DESC LIMIT ...

那么单就这条查询而言,articles和categories表应该分别具备哪些索引呢?

articles表应该创建“user_id+created”复合索引,基本守则是先后联合"WHERE里的字段+ORDER里的字段",不过这只是最 理想的情况,很多时候,我们往往只能在"WHERE里的字段"建索引,或者在"ORDER里的字段"建索引,此时索引的选择就显得很有讲究,不应该一味的 以为只能使用"WHERE里的字段"建的索引,有时候使用"ORDER里的字段"建的索引更有效,这取决于是先用WHERE筛选后ORDER排序高效,还 是先ORDER排序后WHERE筛选高效,具体的选择取决于数据的分布情况。

另一个问题是articles.category_id = categories.id里,articles.category_id和categories.id哪个应该是索引,但就此例来说,在 articles.category_id列上索引是无意义的,因为通过WHERE或者ORDER之上的索引命中数据后,自然就得到了 articles.category_id的值,此时没有必要在它上面建索引,当然其它的时候可能需要,至于categories.id字段,肯定需要索 引了,这样才能从articles.category_id直接查询命中。

想获得UTF-8编码的数据,但MySQL表的编码是GBK的

很多人在处理这个问题时,是先查询MySQL获得原始数据,然后使用iconv或者mb_convert_encoding把编码从GBK转换成UTF- 8,其实只要在查询前SET NAMES ‘utf8’即可,不明真相的MySQL使用者们往往认为GBK编码的表在查询时只能SET NAMES ‘gbk’,这实在是一大谬误。

Tags: 围观群众, 不明真相

来自SA Notes 关于linux性能提升的文章

文章比较多,所以,我又学习上次,采用ScrapBook进行了简单的打包。ScrapBook打包后,原有的样式都保留。而且也不是特别大。还能够直接导入ScrapBook,所以我觉得不错的说。

文章都是来自于SaNotes,那么,什么是SA呢?
SANotes网上有定义:

sa 的职位定义包括但不限于:

Making the system available to others
Monitoring the usage of the system
Maintaining a certain level of performance
Planning for future processing needs

呵呵,还是直接下载文章看吧。当然,如果你认为下载起来很繁,也可以看以下链接:

图片:

大小: 35.16 K
尺寸: 360 x 214
浏览: 1539 次
点击打开新窗口浏览全图

或者下载附件:
scrapbook.rar

Tags: sanotes

杨叔叔的采访,来自柴静博客

来源:http://blog.sina.com.cn/s/blog_48b0d37b0100fdsn.html

1、网友问“你应该去采访卫生部,这些网瘾少年怎么办,有没有地方治疗?怎么治疗?”

回答:6月份我们向卫生部提出采访申请,这些问题在题纲里,卫生部没有接受访问,不过,7月13日,卫生部发布《关于停止电刺激(或电休克)治疗“网瘾” 技术临床应用的通知》,对近期各地出现的“网瘾电击疗法”做出暂不宜应用于临床的研究结论,要求各地立即停止该项治疗,卫生部专门组织专家就该诊疗相关问 题进行了充分研究和论证。专家一致认为,电刺激(或电休克)治疗网瘾技术的安全性、有效性尚不确切,国内外并无相关临床研究和循证医学依据,暂不宜应用于 临床。

目前国内治疗方式有心理疏导,封闭式军训,精神药物等方法,治疗的人有多种,有人是心理咨询师或者持精神科医师证,有人没有任何资质证明。网瘾矫正未被纳入医疗项目,也没有明确的医疗收费标准。

2、网友问“既然目前没有明确的治疗方式,为什么不允许别人第一个吃螃蟹?”

回答:卫生部表示:若开展科学研究,应按规定申报,经批准后须充分尊重受试者知情权和选择权,不得收取相关费用。

3、zsh说:这个话题我最直接的想法就是,什么是“瘾”,什么又是“网瘾”,什么样的网瘾被界定为“疾病”,所以,这些孩子被认为有病的评价标准是什么?这个标准是谁定的?家长可以界定么?这个医疗机构可以么?违反孩子自我意志进行治疗合适么?

回答:据我们采访中受治者的说法,在临沂的网戒中心,使用仪器前没有对受治者本人进行病史询问与网瘾检测,通常直接使用仪器,这一点大家从视频中也可以看到。杨医生在采访中也承认这一点,他的解释是通常根据家长的意见和孩子的暴躁表现即可作出判断。

中国目前没有公认的网瘾标准,被引用较多的最早给网络成瘾下定义的美国网络成瘾中心,我曾写信给他们征询意见,引录一点它的创始人Dr. Kimberly Young的回复:

We do not use electric shock therapy for treating addiction in the US ,it is mainly used to treat depression with good results. We do no mandate treatment unless for criminal purposes here in US.but parents do have rights to admit children into inpatient treatment centers for behavioral or psychological problems, so it is up to each family and parent, this is consistent with what we do. To be admitted, an uation must be conducted to show cause.

具体的评估标准和治疗方法可参看他们的网站:http://www.netaddiction.com/4Ha397666

4、建议对那些做了电击治疗的孩子进行跟踪采访,看看他们日后的生活是什么样子的 .

回答:我们无法拿到接受过治疗的3000多名孩子的全部资料,只能提供采访中遇到的几类情况:

A、节目中采访的王睿称治疗有效,自己已经不再成瘾,亦无感觉有副作用。该采访在网戒中心进行。

B、称自己现在的确不再上网成瘾,但与治疗无关,是随着年纪增大而自我调整的,如节目中的小坤与腾飞。

C、离院后仍然网瘾,在《战网魔》中曾作为案例出现的谢乾谢坤兄弟,在我们6月采访期间被家人第7次送回治疗。

D根据受治者的陈述,有三人曾目击在治疗中有青少年被诱发癫痫或者休克,之后被父母接走。此说法因没有找到当事人而无法证实。

在此仪器研制者的论文中有如下描述:

(5)由于该治疗方法相对剧烈,对于心、肺功能较差,严重肝、肾疾病,年老或儿童,中枢神精系统疾病等慎用。
(6)该治疗由于采用正弦波电刺激是一种持续增强与减弱的电流,对患者的认知和脑电图(EEG)产生不良影响。(DX—Ⅱ型电休克治疗仪研制与临床应用--《医疗装备》2002年12期)

E、根据受治者的陈述,采访有数位受治者自称离院后个性发生变化,仇恨和恐惧父母,我们节目中采访的做影像处理的一对夫妻,母亲也谈到儿子因为治疗对他们 产生仇恨,与父亲关系尤为紧张,据她的说法,因为父亲在治疗时曾上报儿子不给他递西瓜吃,导致儿子被电击。还有受治者陈述出院后变得“自卑”,“虚伪” “频繁恶梦”。至于是否影响智力,无法证实。

6、有人问,86条规定到底是什么?
回答:贴在文稿后,请大家看。

7、这节目我自己很不喜欢,一度不想贴视频, sze在评论中说“一期節目,即使是有很多缺点,也可以是有價值的,激起輿論的跟進,也可以是它發揮力量的方式。我看重的新聞調查不一定是期期完備的邏輯演練,而是它能夠接受外來輿論的介入,所形成的互補關係”

回答:嗯,受教。

86条规定:

大小: 142.13 K
尺寸: 282 x 376
浏览: 1425 次
点击打开新窗口浏览全图

大小: 134.79 K
尺寸: 500 x 375
浏览: 1435 次
点击打开新窗口浏览全图

《网瘾之戒》视频地址:http://space.tv.cctv.com/video/VIDE1250349298689885

innerHTML 的些摘记

Gracecode网上的文章,好象研究了比较深。
本文的亮点写在了内容中,但我觉得argements.callee这个用法还是很有特色的。以前都是用this之类的来解决。。。

还有一个亮点就是document.Fragment这个东西。。。

不废话看原文:

异步 innerHTML

innerHTML 插入节点的性能的问题,通常是我们最关注的。在回答这问题时James Padolsey 给出了他的解决方案,看到上述代码不仅赞叹了下:

JavaScript代码
  1. function asyncInnerHTML(HTML, callback) {  
  2.     var temp = document.createElement('div'),  
  3.         frag = document.createDocumentFragment();  
  4.     temp.innerHTML = HTML;  
  5.     (function(){  
  6.         if(temp.firstChild) {  
  7.             frag.appendChild(temp.firstChild);  
  8.             setTimeout(arguments.callee, 0);  
  9.         } else {  
  10.             callback(frag);  
  11.         }  
  12.     })();  
  13. }  
  1. 充分利用闭包解决 IE6 的内存溢出问题
  2. 使用延时 0 将操作从队列中拉出,防止浏览器假死
  3. Document Fragment 给予我们个相当好的沙盘,只是我们经常忘记了它
  4. 回调的节点可以使用 DOM 标准的手法(appendChild)插入

了解了参数就很容易调用,例如

JavaScript代码
  1. var htmlStr = '<div><p>...</p><p>...</p><div><div>...</div>';  
  2. asyncInnerHTML(htmlStr, function(fragment){  
  3.     document.body.appendChild(fragment);  
  4. });  

再次不禁赞叹下!

组织 innerHTML 字符串

说到 innerHTML ,通常在这操作之前会有大部分的字符串操作用于连接节点。考虑下面的三种做法,有何不同

方式一

JavaScript代码
  1. var arr = ['item 1''item 2''item 3', ...];  
  2. for (var i = 0, l = arr.length, list = ''; i < l; i++) {  
  3.     list += '<li>' + arr[i] + '</li>';  
  4. }  
  5. list = '<ul>' + list + '</ul>';  

方式二
JavaScript代码
  1. var arr = ['item 1''item 2''item 3', ...];  
  2. for (var i = 0, l = arr.length, list = []; i < l; i++) {  
  3.     list[list.length] = '<li>' + arr[i] + '</li>';  
  4. }  
  5. list = '<ul>' + list.join('') + '</ul>';  

方式三
JavaScript代码
  1. var arr = ['item 1''item 2''item 3', ...];  
  2. var list = '<ul><li>' + arr.join('</li><li>') + '</li></ul>';  

详细的对比测试在这里(没错,还是 James Padolsey 那小子的 Blog)。同时,PPK 也整理了份有关 innerHTML 的速度测试报告

IE 的陷阱

对于 IE,innerHTML 有个不大不小的陷阱(via),就是在 tbody 中插入 innerHTML 时,会报莫名的“未知的运行错误”。

测试地址在这里(经过测试,在 IE8 中仍然如此)。有兴趣的同学可以参看更详细的信息

Tags: arguments, callee, innerhtml

神秘的程序员的漫画

点击小图看大图。。。由于漫画上面有网址,我就不贴了啦。。。第一次看到是在《程序员》杂志上,不过那次的杂志已经是15块,对我来说,一本类资讯的杂志,又几乎没有时效性,大多数的文章、资料都可以从网上得到的杂志,15块,已经对他失去兴趣了。(原价10块,一涨就是5块,50%啊。。。太恐怖了)
西乔作品,Ta说:这个系列的漫画讲述程序员——这种神秘人类的囧事,故事多来源于我身边的程序员朋友,且以互联网开发背景为主。
大小: 132.64 K
尺寸: 167 x 376
浏览: 1875 次
点击打开新窗口浏览全图

大小: 178.51 K
尺寸: 169 x 376
浏览: 1680 次
点击打开新窗口浏览全图

大小: 175.66 K
尺寸: 158 x 376
浏览: 1610 次
点击打开新窗口浏览全图

大小: 176.85 K
尺寸: 186 x 376
浏览: 1622 次
点击打开新窗口浏览全图