字符串相关库,对应书中第五章 字符串与文本处理,大大增强了C++在文本处理上的能力。 lexical_cast 实现了字符串和数字之间的方便转换;format库提供了C++ 类似 printf() 的能力,用以格式化输出;string_algo 是一个算法库,提供了大量与字符串和文本处理相关的算法;tokenizer 库专注于文本处理领域的分词功能;xpressive 是一个灵活且功能强大的正则表达式解析库。
之前单独有一篇文章讲 lexical_cast 这里不再重复。
format 基本集成了 printf 的格式化语法,每个 printf 格式化选项都以 % 符号开始,后面是格式规则,例如
新增格式:
需要包含头文件
#include <boost/format.hpp>
using namespace boost;
例子:
cout << format ("%s:%d+%d=%d\n" )% "sum" % 1 % 2 % (1+2);
format fmt("(%1% + %2%) * %2% = %3%\n" );
fmt % 2 % 5 % ((2+5) * 5);
cout << fmt.str();
/**
* 程序结果
* sum:1+2=3
* (2 + 5) * 5 = 35
*/
format 还有很多高级的用法,参见文档。
C++98 标准库中提供了字符串标准类 std::string , 它有一些基本成员函数用以查询子串,访问字符,等基本功能。
提供全面的字符串算法库
包含头文件
#include <boost/algorithm/string.hpp>
using namespace boost;
例子:
#include <iostream>
#include <vector>
#include <boost/algorithm/string.hpp>
using namespace std;
using namespace boost;
int main() {
string str("readme.txt");
if (ends_with(str, " txt")) {
cout << to_upper_copy(str) + "UPPER" << endl; // upper case
}
replace_first(str, "readme ", "followme "); // replace
cout << str << endl;
vector<char> v(str.begin(), str.end());
vector<char> v2 = to_upper_copy(erase_first_copy(v, "txt ")); // delete sub string
for (int i = 0; i < v2.size(); ++i) {
cout << v2[i];
}
return 0;
}
string_algo 库命名遵循标准库惯例,算法名均为小写形式,并使用不同前缀或者后缀来区分不同版本,命名规则如下:
string_algo 库提供算法共分为五大类:
每一类算法中都会包含一系列函数。
tokenizer 库是专门用于分词 token 字符串处理库,可以用简单方法把一个字符串分解成若干单词。
tokenizer 库可以容易地执行分词操作,但是它存在一些固有的缺陷。
需包含头文件:
#include <boost/bokenizer.hpp>
using namespace boost;
例子:
#include <iostream>
#include <vector>
#include <cstring>
#include <boost/assign.hpp>
#include <boost/typeof/typeof.hpp>
#include <boost/tokenizer.hpp>
using namespace std;
using namespace boost;
template<typename T>
void print(T &tok) {
for (BOOST_AUTO(pos, tok.begin()); pos != tok.end(); ++pos) {
cout << *pos << "|\t";
}
cout << endl;
}
int main() {
string str("Link radfe the dfafe -adfead");
tokenizer<> tok(str);
print(tok);
/**
* char_separator
* 第一个参数 dropped_delims 分隔符集合,这个集合中的字符不会作为分词结果出现
* 第二个参数 kept_delims 分隔符集合,其中的字符会保留在分词结果中
* 第三个参数 empty_tokens 类似 split 算法 eCompress 参数,处理两个连续出现的分隔符。 keep_empty_tokens 表示连续出现的分隔符标识了一个空字符串。
* 使用默认构造函数,不传入任何参数,行为等同于 char_separator(" ",标点符号字符, drop_empty_tokens) ,以空格和标点符号分词,保留标点符号,不输出空白单词。
*/
char * s = "xxx ;; <yyy-zzz> !!!";
char_separator<char> sep;
tokenizer<char_separator<char>, char *> tok1(s, s + strlen(s), sep);
print(tok1);
char_separator<char> sep1(";-<>!", "", keep_empty_tokens);
tok1.assign(s, s + strlen(s), sep1);
print(tok1);
char_separator<char> sep2(" ;-!", "<>", drop_empty_tokens);
tok1.assign(s, s + strlen(s), sep2);
print(tok1);
/**
* escaped_list_separator
* 专门处理 CSV 格式(Comma Split Value,逗号分割值)的分词对象
* 第一个参数 e 指定了字符串中的转义字符,默认是斜杠\
* 第二个参数是分隔符,默认是逗号
* 第三个参数是引号字符,默认是"
*/
string strcom = "id,100,name,\" mario\"";
escaped_list_separator<char> sepcom;
tokenizer<escaped_list_separator<char> > tokcom(strcom, sepcom);
print(tokcom);
/**
* offset_separator
* 不是基于分隔符,而是使用偏移量,在处理某些不使用分隔符,而使用固定字段宽度文本时非常有用。
* 构造函数接受两个迭代器,也可以是数组指针begin end,指定分词用的整数偏移量序列,整个序列每个元素是分词的宽度
*
bool 参数 bwrapoffsets ,决定是否在偏移量用完之后继续分词
*
bool 参数 return_partial_last 决定在偏移量序列最后是否返回分词不足的部分
* 最后两个参数默认值都是true
*/
string stroffset = "2233344445566666666";
int offsets[] = { 2, 3, 4 };
offset_separator sepoff(offsets, offsets + 3, true, false);
tokenizer<offset_separator> tokoff(stroffset, sepoff);
print(tokoff);
offset_separator sepoff2(offsets, offsets + 3, false);
tokoff.assign(stroffset, sepoff2);
print(tokoff);
offset_separator sepoff3(offsets, offsets + 3, true, false);
print(tokoff);
return 0;
}
正则表达式是处理文本强有力的工具,使用复杂的语法规则,能够解决文本处理领域绝大多数问题,诸如验证、匹配、查找、替换等等。xpressive 是一个先进的、灵活的、功能强大的正则表达式库,提供了对正则表达式全面的支持,而且比原正则表达式库 boost.regex 要好的是它不需要编译,速度快,同时语法又很类似。
xpressive 提供动态和静态两种方式。静态方式使用操作符重载生成编译期的表达对象,可以在编译期进行正则表达式的语法检查。动态的方式则是较传统的用法,与 boost.regex 和 Python 中的 re 模块相似,以字符串作为一个表达式对象,在运行时进行语法检查和处理。
正则表达式定义了一套完善而复杂的语法规则,用于匹配特定模式的字符串,少量字符被用于定义特殊匹配模式语法,它们是: .^$()*+?{}[]\|。
其他经常使用 \d 匹配数字 [0-9] , \w 匹配字母 [a-z] , \s 匹配空格等。
C++ 代码中的斜杠需要变成双斜杠,在使用正则表达式时,在语句前使用注释保存原始表达式,以方便未来的调试和维护。
sregex
和 cregex
用于操作std::string ,和 C风格字符串。须有如下命名空间:
using namespace boost::xpressive;
例子:
#include <iostream>
#include <vector>
#include <cstring>
#include <boost/assign.hpp>
#include <boost/typeof/typeof.hpp>
#include <boost/tokenizer.hpp>
#include <boost/xpressive/xpressive_dynamic.hpp>
using namespace std;
using namespace boost;
int main() {
using namespace boost::xpressive;
string s = "Hi world, I am from Mars!";
sregex reg = sregex::compile("(M\\w{3})");
bool ret = regex_match(s, reg);
// match identity card number
// 18 number , first 6 area code, middle 8 birthday, last 4 random number possible x
// \d{6}(1|2)\d{3}(0|1)\d[0-3]\d\d{3}(X|\d)
// regex_search
// regex_search 检测输入表达式中是否包含正则表达式,即存在一个匹配正则表达式的子串
char* str = "there is a power-suit item";
cregex creg = cregex::compile("(power)-(.{4})\\s(\\w{4})", icase);
ret = regex_search(str, creg);
cmatch what;
regex_search(str , what, creg);
for (int i = 0; i < what.size() ; ++i){
cout << what[i] << endl;
}
// 替换
// regex_replace()
cout << regex_replace(s , reg , "Earth") << endl; // replace Mars with Earth
cout << regex_replace(s , reg , "$1 haha") << endl;
cout << regex_replace(s , reg , "$1 $&") << endl;
s = regex_replace(s , reg , "Earth");
cout << s << endl;
// regex_iterator<>
string ss = "boost1, Boost2, BoOst3, etc";
sregex ssreg = sregex::compile("boost\\d",icase);
sregex_iterator pos(ss.begin(), ss.end(), ssreg);
sregex_iterator end;
while(pos != end){
cout << (*pos)[0] << "\t";
++pos;
}
return 0;
}
如果要更加了解 JVM 启动参数,那么对 JVM 的内存结构需要有一定的了解。JVM 内存主要分为三大块:
初始堆大小,默认值是物理内存的 1/64 . 默认 (MinHeapFreeRatio 参数可以调整)空余堆内存小于 40% 时,JVM 就会增大堆直到 -Xmx 的最大限制。
最大堆大小,物理内存的 1/4(小于 1GB), 默认 (MaxHeapFreeRatio 参数可以调整)空余堆内存大于 70% 时,JVM 会减少堆直到 -Xms 的最小限制。
当堆内存空间溢出时输出堆的内存快照
通常配合 -XX:HeapDumpPath
使用,输出到文件
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/path/to/java_error_xxx.hprof
只有当发生 java.lang.OutOfMemo-ryError
时,才会 dump 到指定文件。
得到 hprof 文件后使用 memory analyzer tool(比如http://eclipse.org/mat/) 来分析。
设置每次年轻代垃圾回收的最长时间,如果无法满足此时间,JVM 会自动调整年轻代大小,以满足此值。
整个堆占用量,开始 GC 。 默认值为 45,当值为 0 时,表示 “do constant GC cycles”。
使用 Garbage First(G1) Collector.
JVM 人为设置了 stack trace 的限制为 1024,可以使用该参数来增加该限制。-1
值表示没有限制。
JVM 致命错误。
该文件包含如下几类关键信息:
查看系统版本和发行版的命令有很多,这里就列一些比较常见的。
uname -a
Linux ev 4.4.0-66-generic #87-Ubuntu SMP Fri Mar 3 15:29:05 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
uname -r
print distribution-specific information
lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04.1 LTS
Release: 16.04
Codename: xenial
inxi -S
用 Google 日历很多年,但却一直没有体会到 Google Calendar 的精髓,最近在使用过程中越来越得心应手,原因是结合手机的通知栏,能够非常方便的提醒日程。而 Google Calendar 在安排日程之外很棒的一点就是能够共享日历,不管是小到自己的行程安排,再到团队的时间规划安排,再大到一个国家的节假日都能非常轻松的分享出去。
早之前就已经添加了 中国的节假日日历,还有历史上的今天一些有趣的日历,这里就做个总结,在默认情况下 Google Calendar 在左边侧边会有一项 添加日历,在菜单中可以选择 “Browse calendars of interest” 然后在 Google 提供的清单中能够轻松的找到 “宗教日历”,包括 Christian,Jewish,Muslim,Orthodox 的日历,然后还有基于地区的日历,其中包括世界上很多国家的节假日日历,另外还有体育运动的日历,包括篮球、橄榄球、英式足球等各种赛事分类,甚至还有月相(Phases of the Moon) 的日历。简单的勾选即可添加到日历中。
比如说:
其实仔细观察一下就能发现这些日历的 ID,都是语言加上地区,比如说 zh-cn.china#holiday
,zh_cn.china#holiday
表示的就是中文显示中国的节假日,而 en.china#holiday
就表示英文显示中国的假日。
不得不说,其实已经不用添加农历日历了,Google Calendar 已经默认自带了农历,并且和整体搭配非常美观。在设置中,“视图选项”,其中有其他日历选项,选择中文简体,那么就会添加农历日历到界面中。
一个综合型日历分享网站
萨勒姆的女巫
朋友邀请,去北影看了场话剧—-萨勒姆的女巫—-原本对话剧并不了解,最开始了解话剧也才是从《夏洛特烦恼》主演开心麻花,而对于话剧的概念只停留在了电影电视剧的创作中。话剧的表演确实于电影电视剧作品不同,我要刷新一下我的世界观。原来我错过了世界上很多美好的东西,而我却不知道。
原剧本为,亚瑟 米勒 1953年剧本,四幕剧。该剧于1953年1月22日于百老汇的贝克剧院首次演出。之后成为了话剧经典。
小说原标题为 坩埚 “Crucible”,金属容器,可以将金属或者其他物质放入其中高温加热。剧中每个角色隐喻某种金属,接受着周围环境高温的考验。那些拥有超越死亡的道德人物,例如 约翰 普罗克托 和 瑞贝卡 寓指拒绝融化的物质。
帕里斯 牧师
艾比 帕里斯侄女
蒂图巴 Tituba
约翰 普罗克托 John Proctor 率直正直的农场主,剧本的绝对男主
伊丽莎白 普罗克托 John妻子
黑尔 牧师
托马斯帕特南 想要占领别人的土地
安 帕特南 托马斯的妻子,怀孕8次,流产7次
几个想留住的画面:
开场时全员亮相的时候,开场时虽然有一些恐怖,但开场幽灵似得全员亮相震慑住了我。
第二幕家中的对白,虽平淡,故事也很悲伤,但画面却很美好。
第四幕开场伊丽莎白从台阶上出场,画面太美了。
约翰和伊丽莎白的告别戏,将矛盾与个人命运推向高潮,命运的选择只在一瞬间。
很可惜的是这些画面并没有全部留下成为影像,观看的时候,我更愿意融入剧情而不愿意跳脱出来拿起相机。最后只从朋友那边盗来一些影像,不过我个人更加愿意将这些画面留在脑海。
在第一幕,最开始以为 帕里斯牧师 是非常正直的人物形象,而到后面几幕中形象大转变,从收受房契,到金子做的烛台,人物形象一落万丈。而同样人物形象转变的还有黑尔牧师,本来善良正直的牧师,到后来只能堕落颓废到劝说人们认罪。同样帕特南无理指控别人想要强行占他人领土地等等。人物形象的转变和刻画推动着剧情的发展。
而从第二幕开始约翰和伊丽莎白的戏开始,我才渐渐的进入剧情的设定,或者说,到第二幕的时候所有的背景故事,背景人物都才有所交代,故事才得以铺展开来。而第二幕过后剧情渐渐走向高潮,第三幕的审判,引入法官,将矛盾凸显,再到第四幕约翰伊丽莎白以及观众感到深深的绝望,将故事推向结局。
剧情中,几乎每个人的形象都刻画的比较生动。反派为各自的私心陷害别人,受到奴隶遭遇的女孩们的反抗,帕特南为夺取地产而进行的无理指控,而身为牧师的帕里斯为个人的私欲利用人们对上帝的信仰收敛钱财。(这里让我想到了那部印度电影《我个神啊》)而正面的角色,约翰虽然诚实正直,却也背叛了妻子,犯有奸淫罪,在为人上略有瑕疵,一直理性的黑尔牧师也在最后一幕变成了说服别人认罪的绝望者,而 伊丽莎白 为了拯救自己的丈夫,无奈得在法庭上作出了谎言。人人都在萨勒姆这样的炼狱中遭受折磨。
在真正的压抑和悲伤中让剧情达到高潮,然后结束整个舞台,才是真正好的剧本。
对于表演真是,没办法说,就像之前一位同学和我说的一样,无论是电影还是话剧等等的剧情和表演中,在第一遍观看的时候总是让人无法集中到演员的表演上。我在看话剧的时候,第一二幕基本将注意力放到了剧情上,记忆剧情中人物的名字和相貌,整理故事中发生主角的关系,了解故事发生的地点和背景。直到第二幕过后才渐渐的融入到故事的本身。哎,真应该在事前就做一下功课的,不然观看太累太累。当然没有做事前功课也带来另外的好处,也就是剧情发展无法预料到,只有真正到黑幕降下才能知道最后的结局。有的时候心中会设定一个剧情,就像最后我会希望那些女孩会为自己的说谎和无理指控而受到惩罚,而约翰和伊丽莎白会被判为无罪,而这其实都是无力的空想,如果剧作真的做了此结局那就落入了俗套。
关于表演,第一幕中的帕里斯牧师和艾比的表演,后几幕中约翰和妻子的表演都让我印象深刻。其实个人最初的时候最喜欢帕里斯牧师的表演,但是在后来剧情的推进中帕里斯牧师渐渐地走向反面,对角色的厌恶消弱了帕里斯的表演。自第二幕起就喜欢上了约翰和伊丽莎白,就个人偏好来说,其实更加喜欢伊丽莎白平铺的对白,没有约翰激动时口喷唾沫,也没有艾比陷害别人时的高声呐喊,伊丽莎白的表演最能让我感受到自然。虽然伊丽莎白在剧中不是唯一女主,剧情扮演上分量适中,但是其诚实正直的基督徒形象让人无法忘却。
或许我们在评价一个角色表演的时候经常带入角色形象,观众永远只会喜欢剧中的正面角色,从而忽略反派角色,而事实上此剧的艾比和蒂图巴 这两个反面的角色表演同样精彩,hen 同样在第三幕出现的审判长,出现再对立面,而我却无法喜欢上他,或许是因为对长官的天然敌意,亦或许是对审判长审判的公平性的质疑,总之无法让我公正地去评价他的形象。
类Unix系统下最棒的gif录屏应用—- byzanz record 。可能大部分的人会在需要用到gif时,会先用录屏软件将需要截取的内容录成视频,然后用 ffmpeg 或者其他的应用将视频转成 gif 动画。而这样会产生几个问题:
convert
优化,大小依然不乐观。而现在要介绍的 byzanz-record 就是一个轻量级的直接录屏产生 gif 的应用。Byzanz 可以直接避免以上两个问题,将录屏这件事情变得非常容易。看Debian package上面的介绍:
Byzanz is a desktop recorder and command line tool allowing you to record your current desktop or parts of it to an animated GIF, Ogg Theora, Flash or WebM. This is especially useful for publishing on the web.
Byzanz also allows recording of audio, when the output format supports it.
上面的介绍能够看到 Byzanz 的主要功能,同时说了支持的格式 GIF, Ogg Theora, Flash 和 WebM。同时使用的情况就是想要将内容发布到互联网上的时候。如果输出文件支持音频 Byzanz 也支持。
有维护者将 Debian 的代码移植到 PPA,这样我们可以通过 PPA 来安装使用,打开终端,输入以下内容安装:
sudo add-apt-repository ppa:fossfreedom/byzanz
sudo apt-get update && sudo apt-get install byzanz
如果 Ubuntu 14.04 和以上版本,直接使用:
sudo apt-get install byzanz
安装完毕之后可以在终端使用如下命名来熟悉使用 Byzanz:
byzanz-record --duration=10 --x=100 --y=200 --width=700 --height=400 out.gif
通过参数名字能够非常容易的知道含义,duration
就是时长,x
和 y
就是坐标,截取画面左上角的值,width
和 height
就是截取画面的寛和高,也就是画面的大小,最后就是输出文件的名字。
到现在可能有人发现 Byzanz 比较麻烦的地方了,有的时候我不知道要截取的目标的屏幕坐标和大小的时候呢,有的时候只想截取屏幕的某一个部分呢,如果只想录制一个窗口呢?
于是有人写了三个shell脚本文件:
byzanz-record-window
选择一个窗口录制byzanz-record-region
选择部分窗口录制下面分别介绍这三个脚本使用,分别将这些脚本保存到本地,赋予执行权限 chmod +x filename
,如果想要在终端任何地方使用,加入 $PATH
系统环境变量。
下载脚本,加入 $PATH
,使用例子:
byzanz-record-window 30 -c output.gif
$DELAY
变量设置)-c
参数表示byzanz将录制鼠标。
需要依赖: xrectsel
link. 使用 make
命令编译获取可执行的二进制。更多的配置参考项目文件。
使用详情参考上一个 section。
脚本由MHC提供。修改了以上脚本,做出了一个简单的GUI版本。
长达30s钟的gif,而文件大小只有3.5M,对于Web使用来说这是非常可喜的一个大小。而对于10s左右的动画,几乎1M左右的大小,让我感到非常的震惊。
下面就是30s的gif,画质虽然损失较大,但是完全不影响观感。
在我的 https://github.com/einverne/dotfiles 项目中有自动安装 byzanz 的脚本,一键安装然后使用即可。
年初的时候定下计划2015年一年至少阅读20本书,不管是小说还是专业书,现在离2015结束只有短短几天时间了,就梳理一下看过的书好了,顺带检查一下是否完成了任务。可惜结果很令我伤心。满心以为今年能读20本书,最后满打满算也只算读了16本书。今年欠了4本的债,明年2016年期望自己能够看下24本书吧。
看完电影之后还是不过瘾,于是乎补完小说。小说比电影更加精彩,电影因为时长的原因做了很多删减和改编,看小说更能体会到那种在绝境中想要生存下去的力量。
小说摘录
舍友推荐,舍友因为是英语文学专业,推荐的这本黑色预言式的小说非常的赞,小说对人性的刻画实在是不能让人忘记。这本小说更让我认识了威廉·戈尔丁,英国很著名的小说家。这部小说主要讲述的就是因为战争流失到荒岛的一群小孩,因为利益形成各自集团,之间发生的冲突与矛盾。
摘录
乔治奥威尔 反乌托邦小说,很早以前就想看不过没有坚持下来,今年总算是看完了。然后摘录一些警句。
约翰密尔,其实是很薄的书,因为当时英语课做presentation查资料找到,所以一直保存在待看列表。
全书要义可以概括为两条基本原则:
摘录
快乐学哲学 英语课课程材料,通俗易懂的语言介绍西方哲学。推荐看英文原版。
学习bash 今年系统的学习一下Linux,但Linux体系太复杂,先从bash看起。
更加详细一点的bash教程
参考bash 学习笔记.
很经典,很详细,却也略显啰嗦的Linux入门书
笔记可以参考 linux 学习笔记
因项目需要C++,Python的结合,看了boost.python部分,后来又自学了boost中的property_tree用来解析json。其他部分未详细看,只大略扫过。
学期中做了个讲座,大略的看了一些知识,Git实在强大,很多特性到现在我也没搞懂。这书要一直备着。
笔记参考git 学习笔记
只学了个大概,因为平时用C++多。
年初的时候读的,似乎已经忘得差不多了,总之“大数据”很玄乎。
剧本结构设计 忘记了什么时候200-100的时候买的了,喜欢看电影,而我们总是谈论到剧情设计,于是就买了一本看。
一直订阅着这位作者的博客,看完这本书之后就全面使用Evernote中,放弃了OneNote,和Google Keep
摘录
在观看纪录片《操作系统革命》中提到的这本书的作者,正好实验室有这本书,就拿了看了。这本书主要将软件开发的两大方式,正如书名所述,一种是公司内部集中式的开发,另外一种就是类似 GitHub 上那种分工合作式开发。这两者各有利弊,但作者作为 GNU 的倡导者必然是支持开源的。
别告诉我你会记笔记 学会记笔记是很重要的事情。
摘录
看到最后一句话其实感触挺大,回想起 Google Reader 关闭,这真是 Google 做出的很差的一件事情。Reader 中的东西都曾经是阅读过,甚至做过笔记的东西,那也就是自己的东西,再怎么使用 Google 搜索,出来的东西也都不是自己的经验。所以现在我也在培养我隔断时间总结上一阶段的习惯,这样自己总结,自己写下来的东西才真正属于自己。
期待2016年美好的开始。
很久没有看到这样反正真实中国的电影了,近两年的国产电影不是被早恋打胎的青春片,就是被各种古怪离奇的古装片,在就是无厘头的喜剧片所霸占。幸而有这样一部电影能够让2015年的国产电影画上一个稍稍圆满的句号。
剧情上,这样一部电影融入了太多真实的新闻,以至于会让人一一和某某事件联系上,人们往往说,电影往往是现实的表现。而这样一部老炮儿正是在真实这件事情上花了太多的功夫。从老北京的腔调到巷口胡同,从酒吧夜宿到马路飙车,从故友借钱到朋友援手,一件一件的小事敲打着人们的心,虽然故事发生在北京,虽然故事的主人公有着特殊的经历,可正是从这样的角度让我们看到了现代人们的人情冷漠,看到了整个中国的一个缩影,城管会不顾形象的殴打底层的百姓,匆匆的行人不会停下匆忙的脚步帮助路边无助的少女,甚至在看到别人跳楼时无情的煽动,更甚至于几十年的友情会在金钱面前变得一文不值。电影中的情节虽是虚构,却真实的让人发抖。电影看至一半就无法忍住打转的眼泪,同情六爷以及他的遭遇,为六爷的仁义感动。我们的社会正迈向黑暗,却少有六爷这样的人出面维护。为何我们会不相信路边求助的少女?为何我们不敢搀扶跌倒的老人?为何我们的眼里只有金钱?是我们少了什么东西吗?是我们被欺骗多次吗?亦或是像电影中说得那样“现在的人们,遇事都躲”。越来越多的人都不讲理,不讲规矩。往小了说就是百姓的日常百态,而往大了说就是三环十二少无法无天,在大就是他爹千万的账单。社会越来越没有理,越来越混乱,而这也仅仅是电影所表现出来的一部分而已。
在说到剧本设计上面,到现在很少的国产电影能够做到情节上的呼应,很多的时候就是主角想要做什么就凭空能够出现什么,而老炮儿在这方面做的非常的棒。现在能够列举的很多情节在前后发展中都能找打影子,六爷用报纸裹挟遗物扔到理发店呼应话匣子在理发店发现用报纸卷着的房产证,六爷心脏病发作呼应早先话匣子一直说心脏的问题,六爷在路边给建工女孩200元钱呼应片末女孩从远方寄来的挂号信,六爷在片尾穿军大衣用日本军刀独自约架呼应儿子和话匣子对话中对六爷十几年前一人单挑十几人的回忆。这样的剧本设计无意让故事的说服力大大增强。电影虽然有很多未交待的事情,但也正是因为这样才造就一部好电影的剧情。一部好电影就应该是将故事的一个切片展现给人们看,甚至能让人们产生就是电影结束了故事还在继续的错觉。如果真能做到那样,这样的电影离佳片也就不远了。而老炮儿正是这样一部电影,剧情没有交代六爷的妻子,也没有交代六爷故友的生活种种,同样也没有交代三环十二少,但是通过一些侧面的描述,通过电影的叙事交代,电影想要讲述的故事是完整的,那就够了。
不得不说的冯小刚表演,早在电影上映之前就被无数的消息所报道,冯小刚凭借此片获得了金马影帝。一直很想看一看一个导演的表演功力,但是不得不说我被冯小刚的演技震撼到失语。可能原先还有一丝的“嘲讽”,只刚刚开头的城管戏,就让我对冯小刚刮目相看。以至于到最后和三环十二少演对手戏,再到拜访故人借钱救子,一丝一毫的表情动作,刷新了我对冯小刚的认识。片中饰演的六爷有着无比庞大的气场,平时看只是胡同巷子里面普普通通的市井小民,而一旦遇事,六爷凭借自己地位打抱不平,用“规矩”解决所有事情。
六爷的几场戏深深的印在了我的脑海里,一是开场和城管的戏,再就是到修车厂和三环十二少的戏,再到朋友(洋火儿)家借钱,到最后颐和园后野湖。每一个和冯小刚演对手戏的演员,无不给冯小刚的气场所压倒。
而其他的表演也就不想说什么了,这部电影只需要看冯小刚一个人演就够了,而六爷身边的一身肌肉的闷三儿(张涵予),无时不刻不在帮助六爷的话匣子(许晴),还有老实憨厚的灯罩儿,他们都个性十足,表演也到没有太大的瑕疵。尤其是闷三儿在修车厂,还有六爷被打闷三儿带领一帮人砸修车厂的几个镜头让张涵予非常帅气。只是在六爷面前就显得弱很多了。
因此最后在剧本上给7.5分,表演给8分,娱乐性思考性给8分。
观影风向标做了一期引进片的排名,我顺便也简单地回忆了一下。然后根据2015年引进片豆列,找出了10部我非常喜欢的引进片。
就像观影风向标中所说,每个人都有一个自己的排名,没有最终的标准答案,每个人都有自己的喜好,不需要迁就谁,喜欢就好。
当之无愧的年度最佳—-王牌特工:特工学院 2015-04-19,记得这部电影上映的时候并不是很了解,只是之后听了节目并看到一些影评觉得非常值得一看,在最后快下线的时候找了很远的一家影院看了。虽然当时同去的朋友对最后脑袋放烟花的镜头颇有微词,但是依然不减这部电影的魅力,我最喜欢的几大类电影中特工片一直靠前。而自从谍影重重马特达蒙不在参演,碟中谍系列,007系列偏离出我的口味稍远之后,很久没有看到一部对胃口的特工片了。不过很遗憾的是国内上映版的阉割。
年度最佳科幻—-火星救援 2015-11-25,如果说2014年的星际穿越让我开始重拾起对宇宙的兴趣,那么这一部火星救援让我重拾起了对科幻片的兴趣。演员上有我很喜欢的马特达蒙,还有很多很多熟悉的脸孔,故事情节上有我喜欢的火星宇宙题材,这样一部电影如何能让我忘记。
模仿游戏 2015-02-19,虽然是一部去年的电影,但是要是放到今年依然是一部非常棒的传记类电影,先不说图灵在计算机界的名声和地位,就卷福的生动表演也能让这部电影出彩。
最佳动画—-头脑特工队 2015-11-01,天马行空的想象力,虽然说不上什么道理却非常有说服力的情节设定,以及让我找回的那份童真,无疑让这部电影在我这里的得分要高于大白 (●—●),说到超能陆战队,当然也是很不错的一部电影,剧本,情节设计毫无问题,只是我觉得过于好莱坞流水线产品,我在年初的时候就看完了这部片子,那时候这部片子还没有在国内上映,而过了一些时候之后,突然满大街,身边大家都在说着大白,我其实有些疑惑,后来才发现是因为国内上了,然后布天盖地的宣传,其实我不太明白是因为宣传造就了这部电影还是因为其他。
我的个神啊 PK 2015-05-29,宗教题材的电影,观影风向标中波米总结的很好,这样一部电影有着自己的底线,没有否定宗教,也没有否定信仰,只是否定了打着宗教信仰招摇撞骗的神棍。这样一部电影在我们这样一个无神论的国家里,没有批判什么,但是身边的好多人却都以为这样的一部电影是反宗教的,真是太天真。
前目的地 2014-12-04,虽然在14年年末的时候已经看了,看到时候甚至一度以为是一部超级烂的电影,因为剧情设定在前半段时间推进太缓慢,在酒店叙事那一段差点让我睡着,但是之后的剧情发展让我深深的膜拜这部电影。
超能查派 2015-05-21,个人很喜欢的电影,一直对机器,人性很感兴趣,导演很聪明,将机器人形容成新生的婴儿,他的成长环境决定了机器人的人格,他的是非判断基于他所学习到的东西,而这不正也是一个人之所以为为一个人的基本常识吗?我们如何做一个判断?无非也就是从生活经历或听,或读,或看到的来下决定。当然这样一部电影,有主题,有思想,有特效,对我来说也就够了。
碟中谍5:神秘国度 2015-09-13 之前也提到过碟中谍系列的特工片一直是很喜欢的系列,当然这一部也差,只是相较其他传达思考的电影来说,这真是纯粹的爆米花电影了。
速度与激情7 2015-04-12 话题大片啦,加上保罗沃克的离世,加上片尾的煽情歌曲,这样一部有剧情,有动作,有视效的大片总有其一席之位。
歌曲改变人生 Begin Again 2014-12-01 舍友推荐,虽然去年年末已看过,放到今年这样一部音乐类电影依然给我非常棒的感觉。
极速风流 Rush
两年前的片子,如果不听节目真的不知道这样一部电影。
思悼
年末的时候不止一遍的在各种榜单上看过,总之有其上榜的理由吧。
小王子
准备看小说,然后再补一下好了。
早晨 初雪
中午 披萨
中午 火锅
饭后
人生如此夫复何求。