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

虚拟机上iptables不支持nat转发?

在虚拟机上尝试装ppptp的时候,发现一个问题,因为最后需要设置iptables,但是在执行的时候,报了这个错:
can’t initialize iptables table `nat’ ,后面还有一句我就不贴了。

找了很多资料,发现可能是在编译内核的时候,把nat去掉了。这样我就无法转发nat了。也就是说我的pptp是没有办法成功运行了。

再google了一下,发现一些问题,如果要加上这个nat,好象非得重新编译内核。否则无法装上。当然,也看到一篇文章说直接运行某句命令就OK了。【来源:http://pearlin.info/enable-nat-module-for-vps-cant-initialize-iptables-table-nat-table-does-not-exist/】
但好象我的虚拟机不是openVZ的。。。继续哭泣

XML/HTML代码
  1. I was getting the following error which configuring NAT on a VPS server.  
  2.   
  3. =========  
  4.   
  5. # iptables -t nat -nvL  
  6. iptables v1.3.5: can’t initialize iptables table `nat’: Table does not exist (do you need to insmod?)  
  7. Perhaps iptables or your kernel needs to be upgraded.  
  8.   
  9. =========  
  10.   
  11. You can fix this by using the following commands.  
  12.   
  13. vzctl set 115 –iptables “iptable_nat iptable_filter iptable_mangle ip_conntrack ipt_conntrack ipt_REDIRECT ipt_REJECT ipt_multiport ipt_helper ipt_LOG ipt_state” –save  
  14. Saved parameters for VE 115  
  15.   
  16. # vzctl restart 115  
  17. …  
  18. # vzctl enter 115  
  19. # iptables -t nat -nvL  
  20. Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)  
  21. pkts bytes target prot opt in out source destination  
  22.   
  23. Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)  
  24. pkts bytes target prot opt in out source destination  
  25.   
  26. Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)  
  27. pkts bytes target prot opt in out source destination   

不知道VPS的提供商能不能帮我装了。如果不行,那我可能就要換VPS了。。。痛苦啊。下次还是用UBUNTU吧。方便。。。。

Tags: iptables, nat

迪斯尼动画片

最近美团在卖迪斯尼动画片了,为我们家的小朋友买了一套。本来以为这个玩意上海没有的,于是在北京活动推出的时候,我请朋友从北京帮我买了三套,其余两套送给老家的兄弟了。

结果,今天在美团突然发现,原来上海也有的卖了,郁闷啊。。

http://www.meituan.com/r/i318604

不过,活动时间不长,只有(从现在开始算 2010-09-28 上午11时)

剩余时间

  • 9
  • 12小时
  • 44分钟
所以,想买的尽快啊。。我主要是看中了这个

本次团购的是由天艺在线提供的正版迪士尼经典大全(黄金典藏版)一套!原价180元,美团价仅售49元,折扣低至2.7折哦!

  • 16张DVD光碟,含18部迪士尼经典电影+347集迪士尼经典卡通
  • 国/英/粤三种配音,中/英字幕;
  • 正版产品,商家已向美团提供了详细的出版社销售委托书证明;
  • 包装盒采用磨砂烫金工艺制作,珍藏馈赠佳品;
  • 本套光盘所有节目均由原版母带数字化翻录并修复而成。珍藏的是记忆,请不要用当代的高清动画的标准去要求50年前的经典哦~
如果小朋友不看,自己回忆一下也好,这让我想起了我在几年前在 卓越上 29块购买的 《猫和老鼠》

typecho 文章附件的小BUG

说实话,我不知道这是BUG还是新功能。【最后鉴定是浏览器的一个小BUG,不是typecho的BUG,但对于附件,我还是提出了我个人想法】
在0.8版本中,如果你选择新建一篇文章,同时选择添加一个附件。然后提交表单新增文章,重新打开后,你会发现文章并没有附件。打开数据库,发现文件已经上传,而且ID还在文件ID前面,只是parent_id就是0了。
然后再选择新建一篇文章,这个没有归档的附件就显示在新文章的附件列表里。不管是是否选择插入,反正这个附件已是属于这篇 新文章了。
 
在此,我猜测这应该算是一个BUG,程序开发人员考虑到了附件上传的不可靠性,所以选择了先上传图片,但是其实对于博客来说,文章应该是更重要的。所以,完全是可以等文章写完再上图片。而不是直接就把图片插入数据库,然后在更新的时候无法插入(wordpress对于未归档的图片,都可以通过插入媒体来进行重插入,而typecho没有插入媒体这个选项,因此,图片就处于永远无法插入的情况了)。
 
当然,这只是纯理论研究(通过查看数据库ID的顺序得知),真相需要查看代码方可了解。

------鉴定----
说明:上述过程在Firefox下产生(开启flash block情况,将本地路径加入whitelist后一切恢复正常),IE下一切正常。搜狗浏览器选择高速模式无法登录(兼容模式方可登录,不过兼容模式就是IE核心,因此未做测试)
 
因此最终结论为:程序插入附件的流程操作一切正常,只是偶尔在一些插件启用时造成未知错误而已。出现我这种情况,应该是flash的关系,是它没有返回正确值,导致表单在提交时,调用$this->attach($cid)方法时没有获取到附件情况。而新建文章的时候,对于parent为0的附件,好象程序会强制插入新文章,这一点不敢芶同。
在file_upload.php中就是这样写的:
PHP代码
  1. if ($cid) {  
  2.     Typecho_Widget::widget('Widget_Contents_Attachment_Related''parentId=' . $cid)->to($attachment);  
  3. else {  
  4.     Typecho_Widget::widget('Widget_Contents_Attachment_Unattached')->to($attachment);  
  5. }  
我还是觉得这种事情应该交由用户处理,而不是在新建文章的时候被强制插入。这种情况如果出现在多人协作的时候就会让人受不了了吧?因为他在执行Unattached的execute方法时,where条件中并没有userid。所以A上传的图片,极有可能会被B强制使用。(虽然机率不大,但,难保会出现这种情况。)

Tags: typecho, bug, 文章, attachment

JianHua Zhang的Typecho阅读笔记二:数据库访问

文章来自:http://blog.csdn.net/jh_zzz/archive/2010/01/11/5173851.aspx,由于我也正在看 typecho这个玩意所以,就记录下来。虽然我一天下来,也看了不少代码,但毕竟没有深读过。对于流程啥的,还没有开始关心,只是为了写而写。

第二篇:数据库访问

这一块比较复杂,我还没有完全理解为什么要把 SQL 语句的组装搞这么复杂。

从一个普通皮肤页面开始 themes\default\index.php ,代码如下:

PHP代码
  1. <?php  while ($this -> next()):  ?>  
  2.     < div class ="post">  
  3.        < h2 class ="entry_title">< a href ="<?php $this -> permalink() ?>"><?php $this -> title() ?></ a ></ h2 >  
  4.        < p class ="entry_data">  
  5.            < span ><?php _e(' 作者: ' ); ?><?php $this -> author(); ?></ span >  
  6.            < span ><?php _e(' 发布时间: ' ); ?><?php $this -> date('F j, Y' ); ?></ span >  
  7.            < span ><?php _e(' 分类: ' ); ?><?php $this -> category(',' ); ?></ span >  
  8.            < a href ="<?php $this -> permalink() ?>#comments"><?php $this -> commentsNum('No Comments' , '1 Comment' , '%d Comments' ); ?></ a >  
  9.        </ p >  
  10.        <?php $this -> content(' 阅读剩余部分 ...' ); ?>  
  11.     </ div >   
  12. <?php endwhile ; ?>   

从上面我们知道这个文件是在 Widget_Archive 执行时被 包含进来的,所以在这里 $this 就是 Widget_Archive next() 函数具体实现在 Typecho_Widget 中,他只是从 $stack 中取出一行数据返回,然后移向下一行, $stack 中的数据是如何生成的呢?

 

Widget_Archive execute 函数中,有这几行:

$select = $this -> select()-> where ('table.contents.status = ?' , 'publish' )

-> where('table.contents.created < ?' , $this -> options-> gmtTime);

中间代码略过

$select -> order('table.contents.created' , Typecho_Db:: SORT_DESC)

-> page($this -> _currentPage, $this -> parameter-> pageSize);

$this -> db-> fetchAll ($select , array ($this , 'push' ));

 

下面是 Widget_Abstract_Contents:: select()

PHP代码
  1. public  function  fetchAll($query , array  $filter  =  NULL )  
  2. {  
  3.     // 执行查询  
  4.     $resource = $this -> query ($query , self:: READ);  
  5.     $result = array ();    
  6.   
  7.     /** 取出过滤器 */  
  8.     if (! emptyempty ($filter )) {  
  9.         list ($object , $method ) = $filter ;  
  10.     }  
  11.   
  12.     // 取出每一行  
  13.     while ($rows = $this -> _adapter-> fetch ($resource )) {  
  14.         // 判断是否有过滤器  
  15.         $result [] = $filter ? call_user_func (array (& $object , $method ), $rows ) : $rows ;  
  16.     }  
  17.     return $result ;  
  18. }   

首先执行 query() query() 函数会执行:

$resource = $this -> _adapter-> query($query , $handle , $op , $action );

然后将查询的结果返回,根据上面 提到的 config.inc.php ,这里的 _adapter Typecho_Db_Adapter_Mysql ,他其实就是执行了一个 mysql 查询:

if ($resource = @ mysql_query($query instanceof Typecho_Db_Query ? $query -> __toString() : $query , $handle )) {

    return $resource ;

}

这里的 $query->__toString() 会返回经过 Typecho_Db_Query 处理后的 最终用来执行的 SQL 语句。

得到查询结果后,上面的 fetchAll 函数就循环调用回调函数将数据回调出去,前面的代码中 Widget_Archive 在调用时指定的是 push ,在 push 函数中返回的每一行数据都被压入 $stack ,这样 $stack 中就有了一行行的数据了。

 

 

Tags: typecho, 笔记

感慨:别把用户当傻子——写给那些Nokia黑

本文标题所涉及的文章是一篇软文,从文中的内容其实完全可以证明,特别是最后一段话:

全文:http://www.cnbeta.com/articles/109762.htm
  1. 一个摘自某IT网站的手机品牌排名:1. 诺基亚 2.三星 3.摩托罗拉 4.索尼爱立信 5.LG 6.苹果 7.魅族 8.夏普9.联想 10.多普达  
知道多普达大约是在03年?那时候《英雄》电影刚刚出来,然后多普达的广告拼命做,手机中的英雄。从那之后就知道了,也确实从那之后才知道,原来手机可以这样玩。

再一样那时候的诺基亚6100?(不记得是不是这个型号了,就是传说中的小胖)最早的S40,用了多普达再用它,是绝对受不了的,因为响应非常慢。

其实我倒不是说SB不好,至少我在用索爱M608的时候,对于上面SB系统我还是很满意的,当然也可能是索爱功力深。

从01年到现在,我用过的手机不算太多,但也涉及多个品牌:从最初三星的N188,到索爱T618(为民族大团结而奉献),爱立信T39,诺基亚3100,诺基亚6???(不记得啥型号,在华师大后门买的,三个月就坏了,然后修了两次就被我扔了。)诺基亚ngage-QD,多普达586W,索爱M608,然后就是现在用的这个G2了。

用的最舒服(操作感)的就是多普达586W,索爱M608C,G2,最最爽的就是现在的G2,然后是M608,再然后是586W,因为586W的摇杆让我的手指在长时间操作后很疼,其他都挺好。M608是因为不支持edge才被我抛弃。G2目前为止,灰常满意。

上面提到的那个文章被人也痛批了,估计大概意思是:

XML/HTML代码
  1. 楼主作为NOKIA的内部从业者,忍受了这么多压力,发泄一下也是可以理解的。只是你不要以为众人皆醉我独醒。至少我所见过的ITer们上至部门总管下至工作人员,没有几个用NOKIA的。我自己在高校做手机研发。我实在看不出NOKIA好在哪里。之所以中国那么多人用,是因为中国大部分人的要求很低,功能多不多无所谓,只要耐用就行。大部分人买NOKIA也是冲着他瓷实才买的。但是,君不见现在农村市场也是山寨机盖过NOKIA的势头了么?300块一个山寨机,还带触摸屏。就是一年换一个。三年也就900块。而且每月还有话费赠送。你900块的NOKIA能买个什么货?没有性价比,迟早完蛋。LZ88。不送!  

XML/HTML代码
  1. 很明显,这篇是针对Android系统的,虽然提到了其它的,其实都只是为抹黑Android作铺垫罢了。。。估计发文者应该与诺基亚Symbian有关。Android现在非常红,联想,魅族都要用Android系统。。Symbian太差,可能被老总骂了,于是在网上发泄。发文者说别人喷诺基亚,其实别人没喷诺基亚,倒是作者在喷别人。。还有一处非常搞笑,“只有你们这伙自以为是的ITer才会干这些浪费生命的事情”其实发文者又何尝不是在自己在骂自己呢。。。。自己打自己的嘴巴。。。  

XML/HTML代码
  1. 初期的挪鸡鸭确实很不错,但自从进入彩屏时代开始,挪鸡鸭就开始吃老本了。屏幕烂,智能机响应慢,质量开始下滑。作者感觉只不过是一个用手机没几年的小孩,商品排名是有惯性存在的,moto在崩塌之前的几年不也是市场大牛,以前的爱立信也曾经强壮过,现在强不代表将来也强,如果一直依赖旧有口碑做买卖而不思进取,被淘汰只是迟早的问题  
果然是有钱没文化就用XXX。。

Tags: nokia, htc, dopod

Records:181234