盗墓笔记的CP坑

大IP总要搞出点新意才能吸引观众吗?拿莫名暧昧的两个男主角做噱头就有点过了,要么是为了取悦来看鲜肉的女性观众,要么为了增加大家的谈资把影片定位在了瓶邪Cp,编剧和三叔相视一笑,达成了一致。

吴邪的性格并没有被刻画出来,鹿晗长得太过清秀,一看就没有哪种逗比插科打诨的气质,每次搞笑都有牵强,强行取悦观众的感觉。

d1

 

 

 

 

 

张起灵在小说里的性格就是一眼不发,靠装酷耍帅很难出戏,之前网剧的张起灵也没有啥表情。虽然井柏然被化妆黑了点,弄个一个犀利哥的大衣,把领子竖起来,但很难表现出他的修为。光靠几个练功的镜头,出现了一头狼,好牵强。

三叔没啥狠劲啊 除了逗比啥乐,没啥原则,不知道保护同伴,没事就开枪搞死个自己的伙伴,都没尝试去救,印象中的三叔不应该这样子。

d323

 

 

 

 

 

 

 

阿宁英文中文切换很好,Not Bad。You stay, Action, 各种英文小短语用的很溜,更坑的是张起灵接的也很好,换成中文意思就是,阿宁说:诶,不错哟。张起灵说:我晓得。阿宁说:你得留下,张起灵说:不是现在。 一方面展示了张的自恋,另外还有点跟阿宁的暧昧,他不应该是喜欢吴邪吗!

还有王胖子,王胖子怎么彻底成了打酱油的了,虽然王胖子很逗比,但吴邪,三叔都很逗比啊,除了最后和阿宁莫名其妙的含泪对视,好像和阿宁有什么故事,前面完全没有看出来。

两大堆配角,国际佣兵一点性格没有,没有一个同学想出来抢个戏吗,大部分台词就是Yes, cation。三叔带的一小对,除了阿奎,潘子,其他几个动不动就说要回家,一看就知道要赴死的。更坑的是有一个逃跑的,跑到半步看到了虫子,就傻愣住了,赶紧往回跑啊,然后竟然被三叔开枪打死。最后去点炸药,牺牲自己的理由竟然是不能输给外国佬,MD,莫名其妙把炸药扔到坑了,怪谁?怪导演!

鹿晗跳的那段舞可能是全剧比较搞笑的一个地方,有音乐还有舞蹈,剧情不给力至少看了段群舞。

大boss最坑, 只会扭啊扭,一脸秃头老公快*我的样子。最后大boss出来的时候,长的明明有8米高,感觉是个大怪兽,后来莫名其妙剧情需要就缩小了吗?

做着大摆锤救起张起灵的吴邪,和张起灵在大摆锤上相视10秒,哈哈笑起来,观众也尴尬的哈哈笑起来,我想你们也尴尬了。

d3

 

 

 

 

 

 

 

一部好的IP电影,就这样被导演做成了CP,三叔监制也没有什么用,没有hold故事线,台词也没有斟酌,总之胡乱炒了炒就给上菜了,观众哈哈的吃完很尴尬。

丽江游记第二篇-束河小镇

离丽江游记第一篇已经过去了4年多了。游记第一篇刚出的时候“大量”读者就在问我第二篇何时写,拖延至今,时过境迁,旅游中的记忆也都忘记的差不多,但不写完总觉得是个未了的心事,即时的游记变成印象中的模糊游记便是。

 

另一个激发我继续写之前游记的原因,是看到妹妹的游记【叨叨的远方-我最想去的日本】都在短短数日全部写完,最终回都已放出,顿感自己太过拖延,那就写几篇试着赶超一下。

 

2011年4月正值春季,油菜花开,气温也适中。踏入丽江古城,那时的商业气氛都已经很浓,古城也明显是商业古城,包装了一下古城的外壳,里面大都是各种想法子赚钱的商家,古城小吃街,商业店铺街,很多是卖牛角梳,银饰和围巾的,今天走过几次南锣鼓巷后,现在回想跟南锣鼓巷的感觉很相似,偶尔蹦出来一个个性十足的小店,也会驻足留步,看得多买的少。媳妇买了一个偏紫红色条纹的披肩,配上特意带去复古的长裙,衣着打扮很是融入当地特色。

 

本身居住在城市,对这种已经实足商业化的地方并不感兴趣,后来到了束河小镇,并没有被商业化的开发的地方,更喜欢这样的小城,住店的时候也是那种四合院似的偏多,住在二层小楼,院子里有秋千,躺椅等,店老板如果是性情中人,那旅店也会被打磨的别有风味。束河的小城不大,走着绕一圈也会很快走完。石头路上会有牵着马的,可以选择骑着马绕城一周,也很有意思。小镇石头路边是一条开凿出的小河,河水清澈见底,沿路走着,清清的河水同行,心情也是格外的好。

 

绕着小镇走的时候,偶然走进一个染布的大作坊,里面各种挂着已经染好的布,颜色各种各样,拿起相机拍起来,怎么拍都是景。于是我穿起中山装,媳妇穿上旗袍,披上披肩,然后作悠然自得装,恍然回到了民国时期,远离了喧嚣的现代。这也让我想起妹妹写的日本游记的乡下,没有去过,但从字里行间看来,那种心情放松,悠闲快乐的生活也会有些相似吧。

 

束河的夜生活也是有的,酒吧不像是丽江的那样吵闹,现在记不清楚束河的晚上逛了什么地方,印象中是待着了一个酒吧,听着慵懒的音乐,喝了两杯。

 

在束河待的时间并不长,也就一天一夜,住在这个小镇后,后悔在丽江待的时间过长,如果下次再去束河还是那个束河,一定会在束河多住几日。下一篇预告:泸沽湖,泸沽湖也很美。

RED DOG

换台换到了CHC高清电影,正在放电影《红犬历险记》,看到翻译的这个名字,很难想象这是怎么样的片子,也许是科幻片,也许是狗狗拯救世界的片子。其实是一个很温情的家庭剧,翻译成红犬就完全可以。

于是从电影中间开始看来,虽然是主角是红犬,但讲的还是和红犬相关的每个人的故事。从美国来的流浪青年,和矿场的秘书相爱,女主说,你是害怕找到让你能够稳定下来的人。在他们相爱的期间,红犬因为忠于男主,会嫉妒,会在男女主人公看汽车电影时,趴到汽车前盖上等。红犬也和其他矿场上很多人发生了故事,因为某男要给红犬织红色毛衣,红犬就把毛衣叼走扔掉。借用红犬和社区女医生的搭讪,红犬叼着肉冲进水里救被鲨鱼围住的青年等。

当男主不在了之后,红犬忠诚的寻找了他好几年,不离不弃,最终回到了女主的身边。

红犬大战红猫算是电影的高潮,最终红犬和红猫惜惜相惜,成为了好友。

最终发现讲的是红犬,其实是在说人的故事,社会上的人,会有爱情,友情,有忠诚,有勇敢,红犬的纯粹让人深思。

夜车2

有些朋友可能要问为什么是夜车2,然而夜车1哪里去了,早在我刚毕业的那两年,我就出品了夜车1在qq空间了,而事实证明每当做夜车,总会有些写东西的冲动。

这是一个伟大的时代,有能力者总会发现机会并创造奇迹。我自认为能力还需精进,所以徘徊在被认可,自我怀疑,自我肯定,自我矛盾等状态。所以排除困难继续前进,夜车的终点是黎明,做一个我理想的人不是坏事,坚持不等于胜利,但强于安于享乐。

ps 这是一篇手机发出的文章,今天是一个新的时代的开启。

北京雨夜

在这样一个下雨的夜晚,我觉得必须要写点什么。

帝都是个神奇的城市,混杂着各种文化,各种元素,各种不可思议的人们做着平凡的不平凡的事。

刚看了大辉老师的《王小波如果还活着》的文艺文,也没有任何想法,毕竟只是听说那三部曲,但从来没有完整的看过。

看到卖桃君在朋友圈里各种卖萌,OK,作为依然在战斗中的人来说,着实没有什么能评论太多的。

开始新工作已经两个星期了,时间过的好过,但似乎还需要些许时间融入整个环境,加上本人的略沉默,略闷骚,略不够活泼的个性,在这样的雨夜需要一个呐喊,我并不只是这样。

依然渴求成功,渴求认可,所以我义无反顾的来了,前路必然有很多的坎坷,追逐梦想,开始了就勇往直前。

YESTERDAY ONCE MORE

昨天是3月4号,本来也没有什么特殊的日子,小田大清早的发来微信,说梦见顺子了,我们聊起来了,然后又沉默了。她说新西兰经常是蓝天白云,抬头看天的时候,就会常常想起顺子。我看完不知道该说什么,时光荏苒,这一转眼,各奔东西。

周末要启程了,迎接新的挑战,未来的旅途如何,我也无从得知,只能努力拼搏。看到卖桃君等经常在微信公众号畅所欲言,挥毫泼墨,也会想去开个账号写写,邮箱比较麻烦,还是在博客里发篇文章。

创业的小伙伴们还在继续拼搏,顶着压力,尝试着一个个机会,年前的OTT方向因为广电内部政策的原因,导致公司的方向发生转变,而学费出了,后面的方向能否打开局面也没办法确定,唯有一搏。

现在的外包项目往往比较坑,为什么坑,只因为甲方坑吗,乙方不够专业也有原因,需求在前期谈到不明确,后期甲方的功能添加,往往因为费用问题导致乙方的懈怠,那么逐渐使项目陷入恶性循环,解决问题的办法,乙方先专业起来,带动甲方专业。听起来是还是比较理想化啊。

元宵节快乐!子欲孝而亲不待,拼搏的同时也要珍惜和家人的时光。

使用Slim中间件

Slim是一个提供路由功能的小型PHP框架,这个框架提供了一个强大并且有特色的中间件的概念。Slim实现了Rack协议,在很多Rudy框架中实现的通用管道框架。然后中间件可以用来包装程序,并且能够访问并影响程序的环境。

对于各种不同的需要筛选服务的Slim项目来说中间件是一个很有说服力的解决方案。我会解释中间件是怎样工作,并分享一个简单的缓存实例,说明一下你可以怎么实现自定义的中间件。

理解中间件

Slim文档比喻Slim框架就像一个洋葱,洋葱的每一层都是一个中间件。更好的理解是,让我们假设我们正在编写一个有验证机制和缓存的程序。我们的架构可能看起来像以下的结构:

middleware

 

代码是负责生成被几层中间件包裹的页面内容,最重要的是验证逻辑和缓存逻辑。

执行的流程是经过每一层,并判断是允许到下一个或是跳出。首先进行检查以验证用户身份。如果不是,流程中断并反馈HTTP 401状态。然后检查看看缓存的拷贝是否可用。如果是,流程中断并返回的页面的缓存开呗。其他层的中间件可能直到最终负责生成页面的流程到达时才会生成在。

当我们的中间件方法返回,执行流程的气泡回到了他们。剩下的逻辑缓存中间件,例如,将为缓存页面内容以备后用。

中间件的实现

如何去实现自定义中间件,让我们看看代码,可以参考上面的缓存中间件。

实施任何基本的Slim中间件组件的要求实际上是相当小的。我们只需要写一个类,并重写call()并 slimmiddleware延伸方法。中间件的切入点是这个call()方法,我们可以回到从(从而中断执行流)或调用下一层

<?php
namespace MyMiddleware;
 
class Cache extends SlimMiddleware
{
    protected $db;
 
    public function __construct(PDO $db)
    {
        $this->db = $db;
    }
 
    public function call()
    {
        $key = $this->app->request()->getResourceUri();
        $rsp = $this->app->response();
 
        $data = $this->fetch($key);
        if ($data) {
            // cache hit... return the cached content
            $rsp["Content-Type"] = $data["content_type"];
            $rsp->body($data["body"]);
            return;
        }
 
        // cache miss... continue on to generate the page
        $this->next->call();
 
        if ($rsp->status() == 200) {
            // cache result for future look up
            $this->save($key, $rsp["Content-Type"], $rsp->body());
        }
    }
 
    protected function fetch($key)
    {
        $query = "SELECT content_type, body FROM cache
            WHERE key = " . $this->db->quote($key);
        $result = $this->db->query($query);
        $row = $result->fetch(PDO::FETCH_ASSOC);
        $result->closeCursor();
        return $row;
    }
 
    protected function save($key, $contentType, $body)
    {
        $query = sprintf("INSERT INTO cache (key, content_type, body)
            VALUES (%s, %s, %s)",
            $this->db->quote($key),
            $this->db->quote($contentType),
            $this->db->quote($body)
        );
        $this->db->query($query);
    }
 
}

 

该方法首先检查call()内容是否在缓存中可用。如果是,它设置响应的内容类型的头和身体,然后返回。如果有一个高速缓存未命中,那么$this->next->call()被执行调用下一层中间件。当流程其他中间件调用返回该点时,会进行快速检查当前请求的状态和并缓存相关的数据以备将来使用。

因为类扩展了Slim的中间件类,它可以通过$this->app来使用类的实例,从而间接访问响应和请求的对象。我们可以改变相应的头部,从而可以像数组一样使用返回数据,并且返回的数据使用了body()方法。

fetch()和 save()方法是受保护的帮助方法,进行数据库的查询,并保持数据的一致性。它假定表的结构是key,content_type和body。你的持久化机制可能不同,这取决于您的需要。同时,这里没有实现(为简单起见)缓存过期机制,可以在自己的项目中进行实现。

注册并配置中间件

注册中间件在Slim的add方法中实现。

<?php
require_once "../vendor/autoload.php";
 
$app = new SlimSlim();
$app->add(new MyMiddlewareCache($db));

当然,通过随后调用的add方法可以注册一个以上的中间件可以注册。因为新的中间件围绕任何以前添加的中间件这意味着他们必须根据他们的调用的顺序反向添加

<?php
$app = new SlimSlim();
$app->add(new MyMiddlewareCache($db));
$app->add(new MyMiddlewareAuth($db));
// ...

在上面的例子中,缓存中间件包装Slim的应用程序,然后验证中间件包的缓存。当$app->run()被调用执行的流程将类似于上图首先进入认证中间件,并根据路由的方式执行

配置中间件一般是通过服务的构造函数完成。在我们的例子中,我只是简单的建立了一活动数据库连接并访问缓存表,但是你可以根据自己的需求进行自定义。例如,组件可以被重新,并使用fetch()和save()方法处理对象;这将允许我们去掉实例方法,并根据他们的要求提供的组件的配置

 

原文链接

 

MYSQL mmap问题记录

阿里云服务器,用的最小的配置,上面放了三个站,分别是房产类,企业门户,以及会员卡管理。

自从把企业门户站放到服务器后,连续几天,mysql连续崩溃。

查看日志:

141201 10:42:50 [Note] Plugin 'FEDERATED' is disabled.
141201 10:42:50 InnoDB: The InnoDB memory heap is disabled
141201 10:42:50 InnoDB: Mutexes and rw_locks use GCC atomic builtins
141201 10:42:50 InnoDB: Compressed tables use zlib 1.2.3.4
141201 10:42:50 InnoDB: Initializing buffer pool, size = 128.0M
InnoDB: mmap(137363456 bytes) failed; errno 12
141201 10:42:50 InnoDB: Completed initialization of buffer pool
141201 10:42:50 InnoDB: Fatal error: cannot allocate memory for the buffer pool
141201 10:42:50 [ERROR] Plugin 'InnoDB' init function returned error.
141201 10:42:50 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
141201 10:42:50 [ERROR] Unknown/unsupported storage engine: InnoDB
141201 10:42:50 [ERROR] Aborting

141201 10:42:50 [Note] /usr/sbin/mysqld: Shutdown complete

使用命令: /etc/init.d/mysql restart 无法启动,提示无法找到服务。

这个时候需要重启apache才能成功启动mysql。

目前尝试在/etc/mysql/my.cnf里添加

[inonodb]
innodb_buffer_pool_size=64MB

看是否还会继续崩溃。待续

2014/12/2更新

将这个WP做的站移植到另一个nginx服务器,PHP5.4,依然会隔一段时间出现mysql崩溃,命令行重启mysql提示

Starting MySQL. ERROR! The server quit without updating PID file (/var/mysql/data/AY1305070924544.pid).

网上资料都说是物理内存太小,需要的内存大导致。

 

项目记录 CENTOS编码问题,VQmod问题

项目遇到一个很坑的问题。

Opencart使用get_basename替换basename后(见上一篇日志TOM的留言),如果不是在UTF-8编码的主机上上传中文目录,在Image Filemanger里看到的是正常的编码, 但是目录确实乱码。

用的国外的主机,CENTOS,也出现了这样的问题。

那么这个主机是应为没有安装中文字体才导致的。

可以使用yum install fonts-chinese来安装中文字体。

 

另外OPENCART项目转以后,如果是用了VQMOD,那么需要重新安装vqMOD,安装方法, 把admin/index.php和index.php重置为原始版本,然后重新访问http://server地址/vqmod/install即可

shuipfcms安装无法访问的问题(SSI, shtml)

朋友推荐了一个CMS,基于ThinkPHP的CMS, shuipfcms
功能简单,用户易上手,所以试一下
安装上之后更新了后台的栏目缓存,发现还是无法访问。
提示Not Found
看到根目录下面已经生成了缓存文件,看到生成的文件是shtml, 应该是apache不支持显示shtml.
解决办法:
找到
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
将前面的#去掉。
重启apache应该就可以了。

#注:
SHTML是包含有嵌入式服务器方包含命令的HTML文本。在被传送给浏览器之前,服务器会对SHTML文档进行完全地读取、分析以及修改。也被称作SSI, Server Side Include. 优势是可以更新静态页面的局部内容,比如新闻中的留言

例如