作者: admin

  • 为了心中那一抹「蓝」

    为了心中那一抹「蓝」

    离开果戈里书屋,没走几步路我就找到了位于居民楼内的一凡的工作室,那种感觉很奇妙,仿佛穿过时空隧道,忽然间从一个车水马龙的国度走到一个清静安宁的所在。

    这是一凡为何会选择它作为工作室的出发点之一。

    这种对「清静」的追求,我从一凡的刺绣或者是扎染的用色上,也可见一斑——她偏爱浓淡相宜,深深浅浅的蓝色。

    画框里模仿崔西女士的欧式花鸟画的蓝色羽毛的小鸟、低温却澄明的银光上精细小巧的蓝色荷花、以荷叶荷花为特色的蓝色手帕,或者是茶具,比比皆是。

    眼神凝住在上面,感到舒服惬意,不张扬不喧哗,不浮夸,有缓缓入梦的错觉,用手轻轻抚摸,有温良的质感。

    「蓝色、荷叶、荷花」是破解一凡的精神密码的一串钥匙。

    一种色彩能够象征一种性格,红色代表昂扬热烈,黑色代表含蓄深沉,蓝色代表的,或许就是一种淡泊沉静。

    提起「荷叶、荷花」瞬间便想到了唐诗,想到了江南,想到了周敦颐的词,想到了佛,想到了莫奈的花园,心里便浮起静谧,浅淡,悠远,清静的情愫。

    这三样事物,又恰恰好是我极其喜欢的,所以冥冥中,我心里产生了某种亲切的感情,仿佛是山水之外,遇见知己。

    我方在想,这个生活在北方都市的女子,莫不是有一颗烟雨江南的灵魂,谁知她告诉我,她曾经南下苏州进修过一段时间,学习苏绣,瞬间被苏绣的精致细腻震撼打动,也进而影响了后来,她自己的手工创作。

    我问她如何与刺绣结下不解之缘,她告诉我,她从小就很喜欢做手工,五岁的时候,就爱上了织毛衣,本来是一个生龙活虎,男孩儿气的女孩子,只要给她一团毛线,两只织针,她就能一坐一下午。

    后来,小小年纪的她参加过许多次手工比赛,用绣出来的一朵花,一个小背包征服了众人,屡屡斩获佳绩,在收获成就感的同时,她对布艺的痴心与热爱其实也越来越深。

    许多年后,回忆起这些小细节,她的脸上依然荡漾着感人的欣慰和愉悦的神采,作为一个观众的我,都不觉为之与有荣焉。

    后来因为学业,她暂时搁置了自己内心的热爱。踏入社会以后,她陆陆续续涉足过不同的行业,但是没有一份工作真正的让她感到身心畅快,愉悦自在。

    与其给别人打工,看别人脸色,为什么不给自己打工,自给自足?

    正是怀着这样的念想,一凡离开了从前的生活,独自一人,瞒着家里学起了扎染和刺绣,其实对于从小就「心灵手巧」的她来说,这也不过是一段不断精进的过程。

    她的母亲对此抱以不解的态度,第一是她不能够欣赏,认为这样的产品,这样的价格,她无法接受,时间放在这些东西上面,是一种奢侈浪费,第二是她不能够理解,传统的观点认为,只有一份安安稳稳,朝九晚五,日出而作日落而息的工作才算是「好好过日子」。

    除此之外,一凡的丈夫也并非百分百赞同,但是作为家庭的重要一份子,作为一个女人的坚强后盾,他选择理解与包容。

    来自家人的反对,这还只是压力的一个来源,另一个是来自每个人都不得不去屈尊俯就,忍气吞声从容应对的生活。

    开设一家独立的工作室,她不得不面临租金的问题,为了顺应自己的性情,她不愿意假手于人,所以店里大大小小的布艺作品,大多都是她独立完成,一件手工艺作品的完成,往往需要大几个小时的时间,她的作品输出有限,卖出去的成品更加有限,用这有限的所得去供养一座工作室,供养她自己的生活,其实是拮据而捉襟见肘的。

    而且,作品的出手也经常面临十分尴尬的处境——制作者自己珍惜耗费的光阴和心血,价格不可能定得太低,太高的话自然「曲高和寡」,然而手工艺者自身觉着高不成低不就的价格落在许多消费者眼中,依然是物不抵所值,他们想要的是物美价廉的产品,这也无可厚非,但是如果一意孤行,不知适当地换位思考,这里面就存在着某种价值的断层。

    其实这也是大多数手工艺者们共同的生存困境——为了寻找一种更加符合自己心意的生活方式,抛弃了四平八稳,五险一金的工作,但是自给自足,自主创业也并非一蹴而就,行云流水的事情,这其中夹杂着重重叠叠,不为人知的苦辛。

    尽管面临的是种种压力,一凡却并未泄气,她说,因为热爱,所以愿意坚持。

    她的工作室也在向更好的态势发展,新的工作室即将圆满成立,届时一凡会设置专门的体验课以及手作小伙伴的课,一方面给其他手工艺人们一个展示自我的舞台,另一方面也给了对手作感兴趣的人一个学习的平台。

    她也将新的计划纳入日程,就是制作出更多针对幼儿的布艺作品——肚兜,小被儿之类的东西。

    离开一凡工作室的时候,阳光依然明媚地盛放,我相信,在未知的前途,她能够攻坚克难,一步一步,经营好属于自己的布艺人生。

  • 贪吃日记:八月早餐合集

    贪吃日记:八月早餐合集

    假期最后的早餐

    梁实秋先生说:“美食者不必是饕餮客”,一言以蔽之:美食重在质,而非量。明天要回学校了,看到相册里的早餐图,或许比不了美食博主的手艺,但是还是想和大家分享一下~

    我属于自由的灵魂,说着要减肥,但是有时候吃的并不是低脂食物,抵抗不了诱惑哇,毕竟吃肉的感觉超幸福的,嘿嘿。开始啦~

    贪吃日记:八月早餐合集

    三明治君~一口咬下去可以吃到火腿+芝士+黄瓜+胡萝卜,大满足~而且煎蛋易作,懒人福音,哈哈

    贪吃日记:八月早餐合集

    蒸茄子+秋葵,低热量,放少量调味品就可以啦,不会吃起来很腻。凉拌的话也超棒,加入小米椒和香醋,不说了要流口水了,出去吃饭也必点茄子,哈哈。

    看着这盘早餐,莫名想唱“一闪一闪亮晶晶”。。

    贪吃日记:八月早餐合集

    水煮蛋+土司+秋葵,很清淡的一款早餐,适合减脂期间的你哦,而且唯一需要花点时间的就只有煮鸡蛋和秋葵,也是一款快手早餐~推荐

    贪吃日记:八月早餐合集

    莲蓉蛋黄夹心饼+蒸茄子。这是好朋友来的时候一起吃的早餐,她喜欢吃莲蓉,所以还特地跑了好远买的,为了吃,拼尽全力啦

    贪吃日记:八月早餐合集

    这是最偷懒的一款早餐了,是用了市场买来的薄饼,直接卷了炒过的黄瓜丝和胡萝卜丝,再加番茄酱夹心土司,哈哈。果然不能偷懒,不然颜色就会不太好看啦,反思ing。。。

    贪吃日记:八月早餐合集

    烤面包片+煎火腿片+什锦鸡蛋碎,颜色还是可以的吧,除了火腿煎的时间短了,没有煎出来特别香的味道,所以颜色也差了一点。

    贪吃日记:八月早餐合集

    燕麦酸奶~七夕小福利,嘿嘿

    贪吃日记:八月早餐合集

    自制煎馍片+鸡蛋碎+水蜜桃片+黄瓜条+小番茄+爱心火腿片~现在看着才发现内容好丰富,嘿嘿

    贪吃日记:八月早餐合集

    超爱的秋葵君,水煮加盐就觉得很好吃,火腿片这次煎的时间足够了,超级香哦。

    贪吃日记:八月早餐合集

    豆腐豆腐!我的一枚真爱,而且热量低~煎的过程中加入少量盐和孜然粉,味道不熟外面做的豆腐呢,哈哈

    贪吃日记:八月早餐合集

    今天早上的主食是紫薯夹心三明治+炒鸡蛋+黄瓜胡萝卜+小番茄,不得不说,颜色很不错哦(允许自恋一下,哈哈)

    贪吃日记:八月早餐合集

    秋葵炒鸡胸肉丁+紫薯球,七夕的午餐~之前一篇文章写过哒,现在看到又想吃了,可是并不可以了,只能等寒假啦,等着我,我一定会回来的$_$

    贪吃日记:八月早餐合集

    酸奶+紫薯泥,心有所属~七夕节给自己的安慰早餐,吃完瞬间被治愈^o^不需要加糖的紫薯泥+酸奶,不怕长胖,嘿嘿

    贪吃日记:八月早餐合集

    突然咽口水……生菜丝+煎蛋+香煎鸡胸肉+黄瓜和小番茄。自己居然被食物颜色征服了。。。

    除了这一盘子呀,另外还吃了一片土司,味道好到停不下来,哈哈

    贪吃日记:八月早餐合集

    香菇青菜+馍片+鸡蛋+羊角瓜,简单日常的一款早餐,青菜香菇也都是我的心头爱呢,于是就有了下面一款早餐:

    贪吃日记:八月早餐合集

    内容很像吧,但是我是忍着到第二天才做来吃的,毕竟要减肥,要瘦瘦瘦哇~~

    贪吃日记:八月早餐合集

    紫薯+水煮蛋+鸡肉丁+黄瓜+蒸胡萝卜+番茄,仿佛那一天胃口特别大,两个紫薯块我都给吃完了,呜,罪过(但是可以满足胃的需求,也很开心啊,哈哈)

    贪吃日记:八月早餐合集

    全麦杂粮土司(超市采购回来的特产,味道超好)+秋葵+鸡肉+黄瓜+鸡蛋+胡萝卜,或许这款早餐叫“众星拱月”?$_$

    贪吃日记:八月早餐合集

    全麦面包+香菇青菜+火腿+黄瓜胡萝卜,吃过又收获满满的元气~

    贪吃日记:八月早餐合集

    全麦三明治+黑布林+黄瓜胡萝卜~最后一片芝士在三明治中被消灭,默默心疼一秒,然后继续吃吃吃,哈哈,因为好吃停不下来~

    贪吃日记:八月早餐合集

    全麦土司+什锦鸡蛋碎+黑布林+胡萝卜黄瓜。杂粮全麦土司中间部分也有南瓜瓜子仁,意外之喜,真的超好吃,下次回去还要再去买买买~

    贪吃日记:八月早餐合集

    紫薯片+火腿+黄瓜胡萝卜片+水蜜桃味QQ糖,也是一份心爱的早餐啊,又开始期待假期,可以回去自己动手丰衣足食。。。但是才开学啊,要忍住忍住

    贪吃日记:八月早餐合集

    蔬果碗集合~番茄+黄瓜+胡萝卜是常客,有时候也会加入其他的,比如黑布林、葡萄、羊角瓜,下午可以吃到一碗蔬果拼,幸福感爆棚~没错,吃货就是这么容易满足,哈哈

    贪吃日记:八月早餐合集

    点击有惊喜哦

    以一张神奇的拼图结束分享咯,我知道在吃吃吃的道路上有很多小伙伴都在勇往直前,但是在贪吃的时候也要注意合理分配卡路里哦。

    我们的目标是:贪吃却不胖!T^T

    享受美食的时间是快乐的,但是等待美食出炉的时间是最快乐的。所以爱吃就开始动手吧~

    (小问答:大家说标题里两个“好”字怎么读? ( ˙-˙ ))

  • 妈咪,我要嫁给你(1)

    妈咪,我要嫁给你(1)

    “菏泽到了,有下车旅客的抓紧时间准备一下。来,让一让。菏泽到了……”

    嘈杂和闷热企图撑开我的睡眼,迷离之中,我看到一个三十出头的乘务员从我身旁挪过,旺盛的皮脂腺分泌物从他脸上的毛孔中溢出。他小心翼翼地穿梭在人潮涌动的车厢,不知是怕踩到过道儿里熟睡的乘客,还是怕脸上的油花摔到地上。

    “阿蔡,醒醒吧,别睡了。”屁股嵌在座位里的老温摘下眼镜,朝着鼻托吹了口气,奇迹般的变出一只小虫儿。

    “呦,什么时候学的这招?”我揉了下惺忪的睡眼,站起来伸了个懒腰。

    “这是秘密。黑夜给了我们黑色的眼睛,而你却用来投降,委实佩服。”戴上眼镜的老温冲我嗤笑了一声,抚弄起他那头秀发来。

    笑而不语的我拿起了餐桌上的杯子,轻轻地拧开了盖子,缓缓放到了嘴边。

    从沈阳北——西安的k2045列车沉重地喘着粗气,像一头刚做完噩梦的老牛,在黑暗的世界里疲惫的醒来,静静地看着这个乱成一锅粥的世界。

    坐在我身旁的妙龄少女抬起了被修身牛仔紧裹的臀部,纤细白嫩的玉手熟练地从鬓角延伸到后脑勺,紧接着优美的淡黄色波浪夹着香气扫过我的鼻尖。我低垂的眼睑刹那间似乎要跳上眉毛,再也盖不住不安分的眸子,任它流露着垂涎,从妙龄少女脚下的银白色百丽开始,一直延伸并定格到她胸前的两座高耸。

    “看什么看,人家睡会觉都睡不踏实。”妙龄少女临走前用眼睛剜了我一眼,恶狠狠地说道,同时也惊扰了我为自己编织的梦。

    “噗,看什么看,人家睡会觉都睡不踏实。”坐在我对面的老温已笑的蜷缩起了身子。

    “老温,她说这话什么意思?这个人是什么时候上的车?”一脸懵逼的我踢了老温一脚,望着妙龄少女远去的背影舔了舔嘴唇。

    “逗逼,笑死我了。”

    无语的我轻咽了下唾液,放到餐桌上的右手不小心打翻了水杯。

    “你真不知道铁钉什么时候上的车吗?”片刻,老温用无名指扫了下眼角,涨红着脸开了口。

    “铁钉?”

    “就是刚才勾起你欲火的那个姑娘。”老温一本正经道。

    “欲火?明明是怒火好不好,你看看她……”老温的揶揄换了我一个鄙视的眼神。

    “欲盖弥彰。不过这姑娘真仗义。”

    “你们两个认识?是不是还有故事?”我换了个姿势,瘫在座位上,打趣道。

    “认识啊。”老温抽搐了下鼻子,傲娇下掩盖不住的是风骚。

    “认识多久了?”

    “大概两个小时左右吧。”

    “那个女的在聊城上的车?”瘫在座位上的我近乎跳了起来,目瞪口呆地盯着正襟危坐的老温。

    “你不傻。”老温冲我淡淡笑了一下。

    “两个小时就……就认识了?”

    “张铁钉,26岁,北京某刊物知名撰稿人。六点左右的时候还在天津塘沽陪男朋友,正打算吃饭的时候接了个失恋朋友的电话,随即上了火车……”

    我被一股力量徐徐拉回到座位,老温下巴上的毛囊在稀疏挺立的胡子下、在我的视线里,慢慢消失。

    “你当真不知道那姑娘什么时候上的车?”老温翘起二郎腿,浓郁的腿毛从小腿一直蔓延到黑色大裤衩里。

    “嗯?真不知道。”我摇了摇头,脑海里挥不去的是两座高耸。

    “二新,我真服了你。你的睡眠质量、体重甚至智商,想必真和你老祖宗的遗传有关。”

    我点点头,倏地又觉得不对劲,双目怒视着老温。

    “唉,真替张铁钉感到不甘啊,一副年轻香滑的肩膀,愣是让一头留着哈喇子的呆猪靠了一路,推都推不开,叫也叫不醒。”说罢,老温啧啧起来。

    炙热的座位开始烘烤我的身体,沸腾的血液在血管里翻滚,冲进我的大脑,然后从我还算白嫩的脸上流出。我的心猛地咯噔了一下,一个熟悉又陌生的人将它推开,温柔地亲吻、舔舐、调弄、撕咬。

    “够了。”我大声喝道。

    “你丫有病吧!”老温一掌拍在我的肩膀,然后侧身从餐桌上的纸抽里抽出两张餐巾纸,在裤裆附近反复摩擦起来。

    “对……对不起啊老温,我来帮你。”从思绪中抽离回来的我来不及去看周围乘客惊愕的目光,慌忙从纸抽里抽出两张餐巾纸。

    “停,你要干嘛?坐回去。”老温一把推开我那向他靠近的手臂,双腿慌忙拢在一起。

    “不好意思啊老温,我刚才做了个噩梦。”

    “梦到个母的吧?”老温说着,将一团湿润的餐巾纸丢进餐桌上的垃圾袋。

    “嗯,不,你乱说什么啊。”昏暗中,我咒骂着自己。往昔的泪海再次于内心的伤口处涨潮,冲刷起无尽的猩红,我的脑袋里恍若一团浆糊,克制的思绪被一阵轻风拂过,搅揉成一个人形。

    “是不是你自己心里清楚。”老温掸了下裤裆附近的白色纸沫,直勾勾地看着我,他的眼睛仿若能洞察一切。

    “菏泽到了,有下车的旅客抓紧时间下车。列车马上要起动了,请大家抓紧时间。菏泽到了…”恰逢此时,原路返回的中年乘务员走到我们身旁。

    “温兄,十分钟后,老地方见。”乘务员揩了一把脸上的皮脂腺分泌物,真诚地看着老温。

    “好的小安,十分钟后,老地方见。”老温向对方投以笑意。

    “这个小安不会也是刚认识两个小时左右吧?”我呷了口水,瞥了眼窗外的昏暗,扯开了话题。

    “不是,认识他两年多了,那次大概是去洛阳,我们聊了很久。”老温说的那么自然。

    “乘务员这工作够辛苦的。”

    “是的,但终归要有人做这份工作。他觉得还行吧,只是不想让他的老婆做这个了。”

    “他老婆也是乘务员?”显然,我有些惊讶,但我说不清楚是为什么。

    “他老婆也在这趟列车上。”老温再次抽搐了下鼻子。

    “挺幸福的。”老温的话像一阵轻风,吹起我一些思绪的片段。

    “由于长期的生物钟紊乱,小安的第二个孩子刚刚成型,就先兆性流产了。”讲到这儿,老温叹了口气。

    “底层老百姓都不容易。”听了老温的话,我瞬间对那个满脸皮脂腺分泌物的中年男子,对,小安,有了好感。“他说的老地方是哪?”

    “在他们休息区的厕所和车厢的接头处。你可以一起去,小安的媳妇老周是西安人,做的糯藕酥好吃的一逼,每次在他们上车前一天,老周都会做一些带着。”老温眯着眼,一脸陶醉。

    “糯藕酥?是不是藕去两头节,藕孔中填塞糯米,煨酥然后切片,还可以蘸着白糖吃?”

    “想不到你还是见过一些世面的嘛!”

  • web学习笔记13-移动端搜索框提示功能

        最近项目一直在迭代更新,说忙也不算忙,说不忙也还挺忙的,没有什么新的东西做,所以拿出来一个搜索的小模块分享下,功能就是输入关键字能出来相关字的联想吧,删除一些字的时候顺带可以保存上一段的联想,从外观上来看,效果还罢了,这里分享给大家,可以供大家看看。最近也在初步学习nodejs的基础,虽然之前写过node相关的,但是现在再看这些,感觉有点懵。不过这些以后再写文说吧。

        搜索功能效果图如下,github链接在此search_demo

    web学习笔记13-移动端搜索框提示功能

    9月-05-2017 16-32-02.gif

    按照老规矩,下面就直接写编写过程了

    第一步:创建文件

        创建相应的html,js,css文件,引入jquery。

    web学习笔记13-移动端搜索框提示功能

    图片.png

    第二步:引入文件,设置meta,编写html以及样式

    html:

    <!DOCTYPE html> <html lang="en"> <head>     <!--通用媒体查询-->     <meta charset="UTF-8" />     <meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=0,minimum-scale=1, maximum-scale=1" />     <link rel="stylesheet" href="search.css">     <title>搜索</title> </head> <body> <div class="search_nav">     <input type="search" class="search_input searchProduct" placeholder="查找您需要的商品">     <div class="search_cancel">取消</div> </div> <div class="search_find">     <div class="search_history">         历史搜索     </div>     <div class="search_find_line">        <!--搜索结果和搜索历史-->     </div> </div>  <script src="jquery.js"></script> <script src="search.js" type="application/javascript"></script> </body> </html> 

    css:

     *{     margin: 0;     padding: 0; } body{     background-color: #f5f5f9; } .search_nav{     width: 100%;     height: 45px;     position: fixed;     top:0;     left: 0;     background-color: #20232b; } .search_input{     float: left;     width: 75%;     height: 35px;     margin-left: 30px;     margin-top: 5px;     font-size: 15px;     text-indent: 30px;     /*border: none;*/     border: 1px solid black;     border-radius: 40px;     outline: none; } input::-webkit-search-cancel-button {display: none;} .search_cancel{     float: right;     width: 15%;     height: 100%;     color:white;     text-align: center;     line-height: 45px;     /*background-color: lightblue;*/ } .search_find{     background:#fff;     line-height:42px;     margin-top: 45px; } .search_history{     padding-left:10px;     font-weight:700;     font-size:16px } .search_find_title{     display:block;     /*margin-top: 45px;*/     position:relative;     padding-left:15px;     padding-right:10px;     font-size:14px;     color:#8a8a8a;     width:100%;     box-sizing:border-box } .search_find_title:after{     content:'';     position:absolute;     top:0;     left:15px;     box-sizing:border-box;     width:92%;     height:1px;     color:#ddd;     border-bottom:1px solid #ddd;     -webkit-transform-origin:0 0;     transform-origin:0 0;     -webkit-transform:scaleY(.4);     transform:scaleY(.4) }   

        当然了,这里面的样式格局什么的在自己实际项目中需要根据自己的项目来调整,不需要跟我这写的一样,重要的是逻辑部分。

    第三步:编写js逻辑

        一般情况下,我们在进入搜索页面的时候,大多数会出现历史搜索,也就是搜索记录,我们首先需要的就是进行历史搜索的渲染,我这里历史搜索都是用localStorage进行存储,大家根据需要可以进行对应的存储或者获取。

    var history_search = [];//存储历史搜索数据  //获取历史搜索数据,若没有则为空 if(localStorage.getItem("history_search")){     history_search = JSON.parse(localStorage.getItem("history_search"));//获取历史搜索数据 }else{     history_search = []; } 

        接下来在获取了历史记录的前提下,我们要把历史记录渲染到页面上

    //渲染历史记录 function setpage(){     var product_list = '';     //动态添加元素至页面上     if(history_search.length != 0){         $(".search_history").show();         if(history_search.length >= 10){             for(var i = 0; i < 10 ;i++){                 product_list = '<a class="search_find_title">'+history_search[i]+'</a>';                 $(".search_find_line").append(product_list);             }         }else{             for(var i = 0; i < history_search.length;i++){                 product_list = '<a class="search_find_title">'+history_search[i]+'</a>';                 $(".search_find_line").append(product_list);             }         }     }else{         $(".search_history").hide();     } } setpage(); 

        这里我们需要注意的是,一般的历史记录不会是太多的,一般会显示前十条最近搜索的,我这边在渲染的时候做了截取,其实在存的时候就应该去做判断,在超出10条或者规定条数的时候我们只保存十条或者规定条数,然后在渲染的时候就不需要再去截取了。

        接下来需要做的处理就是在输入关键字的时候,一些请求和缓存搜索出来的提示数据

    var obj_arr = [];//请求结果 var timeout = 0; var keyName = '';//搜索关键字 var ajaxCache = {};//定义缓存对象(保存请求出来的数据) 

        这里我先把另外两个方法先提出来先写了,一个是渲染页面的方法,一个是判断字符串是否为空的方法,这两个方法在接下来的逻辑中需要调用。

    //渲染页面方法 function setListPage(obj,no){     console.log(obj);     console.log(no);     ajaxCache = {};     obj_arr = obj;     $(".search_find_line").empty();     if(no == 1){         $(".search_history").hide();     }else{         $(".search_history").show();     }      var search_res = '';     for(var i = 0; i < obj.length;i++){         search_res = '<a class="search_find_title">'+obj[i]+'</a>';         $(".search_find_line").append(search_res);     } }  //判断字符串是不是为空 function isNull( str ){     if ( str == "" ) return true;     var regu = "^[ ]+$";     var re = new RegExp(regu);     return re.test(str); } 

        这里就是最重要的一部分了。

    //当按钮被松开时,触发事件 $('.searchProduct').keyup(function(evt){ //获取到关键字     keyName = $(this).val(); //判断关键字是否为空     if(isNull(keyName) == false || keyName != ''){         //若输入字符串不为空,则显示网络请求搜索。         clearTimeout(timeout);         timeout = setTimeout(function(){             if(!!ajaxCache[keyName]){                 //显示自动提示框,给框里填关联词条的内容                 setListPage(ajaxCache[keyName],1);                 ajaxCache = {};             }else{                 var sendData = {                     "keyName":keyName                 };                  $.ajax({                     type: "POST",                     url: url,//我们自个的接口没法公开,大
    家可以用自己的。                     data:JSON.stringify(sendData),                     dataType: 'json',                     success: function (data) {                         console.log(data);                         if(data){                             if(data.data){                                 //显示自动提示框,给框里填关联词条的内容                                 ajaxCache[keyName]=[];                                 ajaxCache[keyName]=data.data;//给缓存对象赋值                                 setListPage(data.data,1);                             }                         }                     },                     error: function (err) {                         console.log(err);                     }                 });             }         },200);     }else{         //若输入字符串为空,则显示历史搜索。         ajaxCache = {};         if(history_search.length == 0){             //若数组为空,历史搜索不显示             $(".search_history").hide();         }else{             $(".search_history").show();             setListPage(history_search,2)         }     } //手机端按下右下角的搜索按钮的时候触发事件    if (evt.keyCode == 13) {         localStorage.setItem('search_keyName',keyName);         var count = 0;         //判断历史搜索中是否已经存在当前搜索的关键字         for(var j = 0; j < history_search.length;j++){             if(keyName == history_search[j]){                 count += 1;             }else{                 count += 0;             }         }         //如果没有,则添加进历史搜索         if(count == 0){             history_search.unshift(keyName);         }         //这边缺少的处理是历史搜索排序的问题。         localStorage.setItem("history_search",JSON.stringify(history_search));         window.location.href="";//跳转到搜索结果页之类的页面     } 

        这就基本完成了,这里没有加一个搜索结果页,在出现提示搜索的时候,应该在<a class="search_find_title"></a>上添加点击事件,以跳转到搜索结果页之类的,这边可以根据自己的需求来处理。
        这上面的流程基本上就能编写出移动端搜索功能,要是有什么问题可以留言探讨。

  • Apache CVE-2017-7659漏洞重现及利用分析

    近日,apache在其网站发布了最新的安全公告,其中涉及多个漏洞。针对CVE-2017-7659漏洞的介绍是这样的:

    A maliciously constructedHTTP/2 request could cause mod_http2 to dereference a NULL pointer and crashthe server process.

    可以看到这是apache WEB服务器(httpd)中的一个HTTP 2.0协议处理的漏洞。未然实验室安全研究人员针对此漏洞的技术细节和利用方法进行了深入的研究,欢迎安全爱好者们一起分享和讨论。

    0×01补丁分析

    在redhat的bugzilla上可以找到该漏洞:

    https://bugzilla.redhat.com/show_bug.cgi?id=1463199

    在github上有对该漏洞的修复提交:

    https://github.com/apache/httpd/commit/672187c168b94b562d8065e08e2cad5b00cdd0e3

    修改前后的代码差异比较如下:

    Apache CVE-2017-7659漏洞重现及利用分析

    可以看到,修复内容很简单,就是增加了对h2_request_rcreate函数返回值的判断。官方推荐升级到2.4.26修复漏洞。

    0×02漏洞成因

    https://archive.apache.org/dist/httpd/httpd-2.4.25.tar.gz下载到有漏洞的服务器代码后,通过补丁的修改进行漏洞成因的逆向分析。

    首先查看漏洞函数h2_stream_set_request_rec,发现是调用h2_request_rcreat创建http 2.0请求的数据结构req,h2_request_rcreat执行失败时req为空,此时在日志函数ap_log_rerror中直接解引用req导致进程崩溃:

    Apache CVE-2017-7659漏洞重现及利用分析

    继续查看函数h2_request_rcreate,看到首先会把req置为0,然后判断4个变量r->method,scheme,r->hostname,path,任何一个为空则返回失败,而此时req还是0,就会导致进程崩溃:

    Apache CVE-2017-7659漏洞重现及利用分析

    那么这4个变量是哪一个为空导致的漏洞呢?scheme是先判断了是否为空再赋值的,首先排除;path是从r->parsed_uri中解析出来,解析函数apr_uri_unparse在其它地方有多次使用,直觉path也不会为空;r->method保存请求的方法字段,在HTTP请求中必须存在,因此也不应该为空;因此只有r->hostname,保存请求的主机名,也就是域名,可能为空。

    我们知道,HTTP请求中,有2个地方可以表示主机名:

    1) 请求的路径以完整URL方式表示,URL中包含主机名,例如GET http://www.example.com/ HTTP/1.1,这里主机名就是 www.example.com。服务器中是在ap_parse_uri函数中解析这种主机名的

    2) 在Host请求头中包含主机名,例如:

    GET / HTTP/1.1

    Host: www.example.com

    服务器中是在fix_hostname函数中解析这种主机名的

    分别审计ap_parse_uri和fix_hostname函数,发现如果请求中没有Host头,那么r->hostname确实是空。但是服务器也考虑到了这种情况,在ap_read_request函数中做了判断:

    Apache CVE-2017-7659漏洞重现及利用分析

    这里的判断逻辑,如果满足下面2个条件之一

    1) r->hostname为空,且请求的HTTP版本大于等于1.1

    2) 没有Host头,且请求的HTTP版本等于1.1

    就会立刻回复400状态码的错误页面,并不会触发后面的漏洞。在注释里也说明了,HTTP/1.1的RFC2616的14.23节中明确指明,HTTP/1.1请求必须包含Host头。

    但是,开发者是不是忘了什么,HTTP还有1.0版本啊,且HTTP/1.0和HTTP/1.1的处理流程一样,虽然HTTP/1.0确实没有规定请求必须包含Host头。因此HTTP/1.0请求是可以没有Host头的,程序会一直按照流程执行,最终执行到h2_stream_set_request_rec函数,此时r->hostname为空,从而触发漏洞。

    0×03漏洞验证及漏洞利用

    综合上面的分析,该漏洞利用成功需要如下条件:

    1) 服务器支持HTTP/2

    2) 请求是HTTP/1.0版本

    3) 请求中没有Host头

    服务器配置

    在server上要配置开启HTTP/2功能,使用apache默认的站点配置,在配置文件中首先加载mod_http2.so:

    Apache CVE-2017-7659漏洞重现及利用分析

    然后加入下面配置,重新启动apache httpd就可以了:

    Apache CVE-2017-7659漏洞重现及利用分析

    验证POC

    验证时,我们首先起一个单一进程的apache httpd服务,方便验证进程崩溃后的效果:

    Apache CVE-2017-7659漏洞重现及利用分析

    正常访问,返回欢迎页面:

    Apache CVE-2017-7659漏洞重现及利用分析

    将构造的POC通过burpsuite发送:

    Apache CVE-2017-7659漏洞重现及利用分析

    果然超时没有响应,同时在服务器上发现httpd进程已经崩溃:

    Apache CVE-2017-7659漏洞重现及利用分析

    再次访问服务器时,页面已经无法访问了:

    Apache CVE-2017-7659漏洞重现及利用分析

    漏洞利用

    在上一节,我们已经验证了在单一进程模式下,如何通过该漏洞导致apache服务器异常终止。但是通常情况下apache服务器在启动时,会同时启动多个工作进程:

    Apache CVE-2017-7659漏洞重现及利用分析

    而且当worker进程崩溃时,apache会自动启动新的worker进程。那么在真实的网络环境中,黑客会如何利用此漏洞对服务器进行攻击呢?

    我们尝试编写了一个多线程(并发100个线程)的程序,同时发起多个畸形请求,以不断触发后台worker崩溃,并让apache服务器不断陷入重新分配worker的处理之中:

    Apache CVE-2017-7659漏洞重现及利用分析

    执行脚本时,发起的请求:

    Apache CVE-2017-7659漏洞重现及利用分析

    请求发起后,我们发现,并不需要特别的并发连接,便可以让服务器进入拒绝服务状态:

    Apache CVE-2017-7659漏洞重现及利用分析

    0×04 漏洞影响

    在apache的漏洞公告中,只有2.4.25版本的httpd服务器受此漏洞影响。但是根据未然实验室的测试,从2.4.17开始的所有版本的httpd服务器,受到这段POC攻击时都会崩溃,而httpd也是从2.4.17版本开始支持HTTP 2.0协议的。因此可以说这个漏洞会影响httpd的所有支持HTTP 2.0的版本,未然实验室强烈建议用户更新到最新的2.4.26版本。

    2.4.25之前的版本代码与2.4.25版本不尽相同,以2.4.17为例,在h2_request_rwrite函数中:

    Apache CVE-2017-7659漏洞重现及利用分析

    收到攻击POC后,r->hostname为空,因此req->authority也为空,而ap_strchr_c其实通过下面的宏进行定义的:

    Apache CVE-2017-7659漏洞重现及利用分析

    因此在上面的函数中,调用strchr的第一个参数为空,此时会导致进程崩溃。

    0×05总结

    apache在其HTTP Server 2.4.26版本修复了多个漏洞,业界普遍认为这些漏洞比较鸡肋,难以利用。未然实验室挑选其中个别漏洞进行了深入的分析和利用尝试,发现其中有些漏洞其实影响还是很大,尤其是对于一些高价值站点。

    本文讨论的部分方法可能会造成目标网站拒绝服务,影响目标网站的业务正常运行,所以请勿对真实目标进行尝试,否则由此引起的一切后果未然实验室概不负责。

    水平所限,文章内容难免有不足之处,欢迎大家指正。您可通过未然实验室公共邮箱weiran.labs@huawei.com或关注我们的微信公众号“WeiRanLabs”与我们联系,期待与各位专家交流。

    *

  • 辩论题,论大学老师的思想是规矩老实好,还是灵活应用好。

          今天逛简书,看到了简书首页的辩论咖专题,思前想后,还是决定听一听大家的意见。一起来辩论吧!

    辩论题,论大学老师的思想是规矩老实好,还是灵活应用好。

        上大学以后,来自四面八方的不只是同学,还有老师,所以总会和同学或者是老师在思想上产生分歧。

          人类真的是矛盾综合体,一方面希望遇到一个负责人的好老师,为自己指点迷津,一方面又希望老师可以给学生足够的自由,毕竟现在是大学生了嘛。

          我是学音乐专业的,自然每周都会有专业课,也就是唱歌,然后老师挑毛病,其实我是特别喜欢我的专业老师的,因为他会很认真的听每一个学生唱歌,然后细心的点评,不像有些老师一边听,一边玩手机,一心二用,我觉得在这种讲专业的时候不是特别的适用。

            然而现在,就在今年九月份,我已经是一名大三的学生了,专业课自然也要增加了,所以每周有了两节专业课。大三了,自然就有很多事情需要自己去办了,比如说考教师资格证(分了三科,十一月份就要考试,时间紧,任务重),背英语单词,准备英语四级考试(事情那么多不一定考得过,虽然我已经考过三次了),健身减肥(这学期必须要减肥了,为了健康和未来)现实真的是特别的残酷,你不漂亮,别人可以慢慢了解你的才华(这样的人,仅限于有心人)或者直接不接受你的简历,你太胖,别人也是不会对你有好感的(因为,连自己的身材都管控不好的人,还能做好什么事,这是一个通论),所以事情特别多,一件事情也不想要放弃。

          介绍完我自己的任务了,现在来说说我为什么要辩论这个主题:论大学老师的思想是规矩老实好,还是灵活应用好。

        上学期我们的专业课是早上八点半上课,十一点半放学。下午是两点半上课(有一段时间老师自己把时间调到一点半上课,这样可以早点下课,早点回家),五点半放学。我们是四个人一组上课,一共要唱两轮歌曲,第一轮每人唱两遍,第二轮,有时候是唱两遍,有时候是唱一遍。一首歌大概是四分钟左右,所以,在上课时间内,我们自己真正在上课的时间也就四十五分钟左右,但是我们每次却要花三个小时在那里上课加等待,我们也有给老师提过这样太浪费时间,我们可以换成两个人一组,一组一个半小时这样上课吗,但是老师拒绝了,他觉得那样的分组特别麻烦,很容易弄错,万一有同学要请假的话,分组就不好调整。而且学校现在监控检查得很严格,上课期间,必须要有人在教室。因为那个时候是大二,课本来也挺多,事情没有大三这么多,所以就只有算了。

          现在大三了,一周两节专业课,我们再一次向老师提出同上的请求,但是老师还是无情的拒绝了我们的请求,拒绝的理由基本同上,新加入的一点就是,我们告诉老师,另外有一个老师的学生就是两个人一组来上课,也没有出现没人上课的现象,老师却来了一句,四个人一组上课是系上规定的,没有办法,我们真的很无语,这个老师是很好,对我们很负责,但是他这样,让我们也很为难呀,以后一上课,一坐又是一上午,真的太浪费时间了,他还说我们在那里听,可以借鉴同学的好处,我们想说的是,听同样的同学唱歌已经两年了,也没有进步呀。

    而且这学期调整成了,早上八点五十上课,十二点下课,下午两点半上课,五点四十下课。真的觉得好恼火的安排啊,简友们,你们说,是有一个规矩老实的老实好,还是有一个灵活应用的老师好!!!

  • 先别去死,再试着活一活看!——《我与地坛》

    先别去死,再试着活一活看!——《我与地坛》

    文/林则徐则林

    有些事情,就这么在你身上发生了,不管你愿意不愿意,也不管你能不能接受的了,没有任何预兆,也没有给你任何准备的时间,这就是生命的无常。让人无奈的是,无常本就是生命的一种常态。你愤怒也好、你抗议也罢,反正,你是无论如何也奈何不了它的!除了接受,还能做什么?

    《我与地坛》里,史铁生在一个人最美好、最狂妄的年纪双腿突然残废,我想无论换做是谁,谁也接受不了。但这件事情就这样发生在了史老身上,他和很多人一样。起初,面对突如其来的厄运,他也愤怒,也觉得不公平,为什么是自己?当他知道一味地埋怨并不能改变什么的时候,在房间里一待就是一整天。好像只要不出去,自己的残疾别人就不会知道。

    那段时间,一直都是母亲在陪着他。母亲不敢走的太近,因为他就像一颗不定时炸弹,动不动就发脾气。也不敢离的太远,就站在门口默默地守护着。因为母亲不知道他什么时候会需要他,她因此时刻准备着。

    对于史老来说,那段时间无疑是黑暗的。他曾经说过,那段时间总是一连好几个小时想着关于死亡的事情。还好,他没有,不然世界将会少了一位伟大的作家。

    终于是渡过了心理接受期,他开始试着从黑暗里走出来,去观察自己的周边。他发现母亲在他面前,就像个做错事了的小孩,战战兢兢,颤颤巍巍。他才知道自己是多么的可恶!

    阳光适时地照进了房间。母亲看到儿子的状态比之前好了一些,她终于“斗胆”试探性地问了一句:今天,天气很好,要不我推着你出去走走吧?他说好,母亲的脸上露出了许久未见的笑容。

    母亲在后面推着他,两人来到了离家不远的地坛公园。他没想到,在偌大的北京、在繁华的都市里,竟有一处如此静谧的好去处。他觉得,这里很适合像自己这种情况的人长时间地待着。是自己以前没注意到吗?还是注意到了,却没有往心里去。毕竟,年轻人都是向往走南闯北的生活,喜欢去海阔天空的地方。大多只有上了年纪和恋爱的年轻人,或小孩才会来这种地方吧!如今,于他而言,走南闯北是不太可能了,海阔天空更是难,他连像平常人一样走都不行。所以,这里将会成为自己以后经常来的去处了吧!

    而后,母亲经常推着他来这里。推着他,他不说话,母亲就说,她又不知道说什么好,家长里短怕他烦,高谈阔论她又不会。她就说些有的没的,但总是小心、小心、再小心,她生怕自己说的话会伤害到他的自尊心。

    再后来,母亲生病去世,有时候妹妹会推着他来,妹妹没空,他就自己摇着轮椅来。从妹妹的口中,他知道了在那段时间,其实母亲已经病的很严重了。这件事给他的心来了一次迎头痛击,若是没有母亲,他不可能从那段黑暗的日子里走出来。若不是因为自己,母亲也不可能心力憔悴到走的那么快。

    母亲的去世和自己突然残疾的那一天,我作为读者,看到这里时,不知道两者给他的打击哪个更重。但我知道,这一波接一波的打击,足以摧毁一个坚强的人。

    他在书里写道:有一年,十月的风又翻动起安详的落叶,我在园中读书,听见两个散步的老人说:“,没想到这园子有这么大。”我放下收,想,这么大一座园子,要在其中找到她的儿子,母亲走过了多少焦灼的路。多年来我头一次意识到,这园中不单是处处都有过我的车辙,有过我的车辙的地方也都有过母亲的脚印。

    是母亲用无私的爱唤醒了他,让他对生产生了依恋,让他拥有了敢于与命运作斗争的意志。是母亲带着他来到了地坛,给了他一个既可以不被打扰、又能够与外界接触的好去处。在这里,每天都有人和他一样准时出现在这里,他们是一个喜欢通过散步思考人生的陌生人、是一对相携相伴的老夫妇、是一位下班顺便路过的女老师、是一个来这里练声的歌唱青年、是一名曾经辉煌过的长跑运动员、还有一位天真烂漫的弱智小女孩。女孩的哥哥让他想起了自己的母亲。他妹妹玩到哪,他就不远不近地跟到哪,有危险他就出现,没危险的时候,他就在一旁看着。

    即便有些人,他们从来不说话,连个招呼几乎都没有,却已经像是认识了许久的老朋友。他无数次地从他们的眼神里感觉到了对方的鼓励,他们无心中为他创造了一片生机盎然的生命之林,在这片充满了生命力的森林里,他找到了生命的意义——先别去死,再试着活一活看!

    从母亲带他来的那一天开始,他的一生就仿佛与地坛粘在了一起。往后,数次搬家都是围绕着地坛在打转,没有更远,反而是越搬越近。而这地坛好像是在等他,像是宿命轮回一般。

    在地坛,他开始了他的写作生涯。地坛里的花草树木让他仿佛置身于美丽的大自然之中,在这里可以明显地感受到一年四季的变化。对于几乎每天都来的人,这里的一草一木的变化,他都知道。这也是为什么在史老的文章里,我们可以看到如此细腻的景物描写。

    比如:“满园子都是草木竞相生长弄出的响动,窸窸窣窣片刻不宁。”

    草木生长只用肉眼去观察,是感觉不到它的生长过程的,相对而言它是静态的。而史老在后面加了“响动”和“窸窸窣”,草木生长的过程变成了动态的,整座园子一下子就热闹起来了。这是要用心才能感受得到的。

    作为一个与命运作斗争多年的斗士,他对死亡的理解比其他人都要真实许多。他写死亡总是那么的一针见血。

    比如:“我一连几个小时专心致志地想关于死的事,也以同样的耐心和方式想过我为什么要出生。这样想了好几年,最后事情终于弄明白了;一个人,出生了,这就不再是一个可以辩论的问题,而只是上帝交给他的一个事实;上帝在交给我们这件事实的时候,已经顺便保证了它的结果,所以死是一件不必急于求成的事,死是一个必然会降临的节日。”

    写作于史老而言无疑是一次生命的拯救。如果不是忽然残疾,他也不会这么坚定地走上文学创作的道路。他可能会去干别的,那么我们也就看不到这本《我与地坛》和他更多的作品了。史老的忽然残疾,于他是一种磨难,于读者却是一个“福音”。我知道这样说,对史老是不公平的。

    可有时候,命运根本就不会跟你讲什么公不公平。厄运当头,说一句都是多余!

    生命只有一次,而且短暂。在这颗生命之树上,会有风催雨打、会有虫咬蛀蚀,这些我们避免不了。而开什么花、结什么果,也早已注定。我们能做的就是活下去,只有活下去,唯有活下去,我们才有资格去谈其他的。

  • 踽踽——致敬青春奋斗的孤独

      “既然选择了远方,那便只顾风雨兼程”,在蒲公英远行的日子里,卸下年少浮华,孤寞伴着不安,虚狂共着无措在白驹过隙的夹缝里,踽踽独行。

        记忆末端的勾勾缠缠,或春上缱绻清明,或芒夏婵媛含露,或清秋消减挽装,或流冬贻荡添黛。蟾光,长风,寒露,长天一色,重光未至,清风所到唯有依归,无处安放。今宵枝头,几世轮回,寸心难舍,这枝低眉垂首萦萦难绕,那叶欲语还休慌慌难逃,只能,困了心,羁了步,厌厌人绝。最苦不过之事莫过身处荒芜,却倔强咀含欢好。

        踽踽,拖着蹒跚的步子,踌踌躇躇;踽踽,在梦的没有边际的光影里,默默彳亍。我多想在万水千山中赏略你的微笑,我就会想不到,我付出了跋山涉水也不敢期望的代价,我淌过风雨,乘着滔天巨浪,在时光的轴迹里,岁月的烙痕里,细数自己的脚步,却数不清,数不到与你相逢的一程。

        多么美丽的相逢共生着多么难舍的离别,浮萍伴着漂泊生生世世;枯藤缠着老根几世轮回。

        清风卷裹闲云万里长冬,也甘也愿;叶落辗尘棂里长卷恒存,无怨无悔;花败入泥纸上情思难绘,匪怖匪忧。

        踽踽,不若长刀立马,铁戟沉沙,倒似那闺中红娘西浪子:一念尘起尘落几度花开,轻扰忄曼捻,复复挑扌兆。一针一线,日日年年。

        我不敢半盏清茶,闲庭信步。亦不能披坚执锐,血战黄沙。是否千帆过尽,这世间真有如斯执着,一往如初?还是纵纵涟漪,只此芳华?所有的长烟落日,所有的舒风流云,流溢在眉间掩饰不全,熔炼不细的精致而浓稠的憾恨,我也许懂,那不可重来的遗憾,那悬而未决的不甘,隔着岁月和世事,也隔开了太多的人。春花秋月何时能了?命运的回答是在这条不知依归的路上,亦步亦趋。

        独行的人,最是要禁得住孤独的侵蚀。我没有多余的眼泪,禁得住秋流到冬春流到夏,也没有芜杂的浮念贪荣,禁得住一梦经年。我们都是一朝而起,又一朝而落的花草,在生死纵横,血雨腥风的命数里单枪匹马,孤军奋斗,一切的一切,风依尘,尘归土,因为无枝可依,终究选择踽踽独行。那一切零碎斑驳的回忆,终究会成为青春那座静谧庭院中的飞短流长。

        后来,这些消逝的岁月,我虔诚地用它去装点人生与梦境。

        再没有离别,再没有不安,

        再没有人知道。

  • 你还在岁月里无声痛哭,叫我怎能不努力成长

    你教会我的诗和远方:飞雪连天射白鹿,笑书神侠倚碧鸳

    你还在岁月里无声痛哭,叫我怎能不努力成长

    在我没有记忆的年纪,没有你觉得记忆;在我刚刚开始记事的年纪,还是没有你的记忆。你的归来,不是因为我,而我的生活却因你而改变。

    我应当看动画片的年纪,我和爷爷一起看新闻联播;当同学在看偶像剧的时候,我和爸爸一起看这武侠剧。爸爸在我上了小学一年级之后,才出现在我的世界。他告诉我江湖儿女江湖事,他说女子应当有所为;他告诉我“飞雪连天射白鹿,笑书神侠倚碧鸳”是金庸作品的首字组成的对联,他说江湖儿女多英雄……

    我爸爸只读过初中,却非常喜欢看书,当然各种武侠小说。他用他的智慧启发这我做人,他用他有限的知识告诉我诗和远方,他教会了我诗和远方。

    他打算教我喝酒,我却无法学会

    孤独的心灵,总在追寻孤独的寂寞。那个教会我诗和远方的人,还在他的江湖里磨练这。而闯荡江湖怎能没有酒呢,他曾经试图教我喝酒,而我却无法学会。

    我爸爸把一小杯酒,偷偷的拿给我喝,却被妈妈发现了。妈妈把爸爸臭骂一顿,自此爸爸再也没有提过了。而我也是在高中毕业之后,才知道原来我酒精过敏,喝酒这件事怕是永远学不会了。

    不会喝酒,去闯江湖,去追寻诗和远方,这一切似乎早已预示着故事的结局。

    你在岁月里奔波,失去了英俊的外貌,染上了尘埃

    我从来不知道我是可以脆弱的,在别人家的小孩子天天打电话给父母抱怨这抱怨那,我们却很少通话,因为江湖里的好汉都是“打碎的牙往肚里吞”。

    而我后知后觉得知道,原来那样的小孩这找人喜欢时,我试着给你打过一个电话,可是这通电话,却是冰冷的机器的声音,没有任何人回我。在所有的室友都和爸妈哭诉完考试难之后,还是没有回电话。知道晚上,妈妈打电话告诉我你身体不舒服,在睡觉,我才弱弱的开口,告诉我考试好难,好多做不来……

    那时候的妈妈是前所未有的温柔,原来爱哭的小孩真的有糖吃。直到放假时,妈妈才叫我回家,在我回家的路上妈妈才告诉我你出事了。

    那是我第一次示弱得来的舒适感,到最后却是晴天霹雳的打击。妈妈让我回家马上去医院,我爸爸从三楼摔下来,隔壁人家的地基上的钢筋穿透了大腿,还有一个工友摔在她身上……

    那是我第一次学会向父母哭泣,没想到却是那个结果。我清楚的记得,那是我高一的期中考试,而那个岁月深深的印在了我的脑海里。从此岁月漫长,我更要学着接受一个人努力的成长。

    其实我早该想到,我爸爸是一个英雄,怎么会因为一点小病而一直睡着不给我打电话。爸爸是个英雄却也是个普通人,在岁月里奔波,他被风吹雨打,他被岁月打磨,他失去了英俊的外表,他的皮肤变得黝黑,他的身上沾满了风尘……

    故事还没结束,我的爸爸

    我的爸爸和别人谈起我时,总是满满的骄傲“我女儿很独立,从来不要我来管”。我学着独立成长的路上,我就是爸爸要我做的那个大侠……江湖凶显,自己去闯。

    当我自以为足够独立的时候,其实我还在靠着我的爸爸。还在读书的我,依旧花着父母的钱,依旧是个不太成熟的孩子,依旧还会惹父母生气……

    我以为我的成长,比起同龄人已经足够成熟了,却不知道那是不够的。我爸后来一直身体不好,加上一直以来就有的结石,他终究抵不过年轻的时候了。

    就算身体一日不如一日的时候,他还在用他的倔犟强撑着去工作。爸爸总是习惯性的工作,习惯性的倔犟。他身体里的结石,就像一个定时炸弹,在我不在家的时候,他结石痛的时候,他一个人骑着电动车到十几里外的陈爷爷家去看病;放我在家的时候,爸爸在路上结石痛得不行,独自去陈爷爷家打针,最后是在制不住陈爷爷只好给他打了一针吗啡;然后这个提着大袋中药,刚刚打过点滴的男人回家放下中药有继续工作去了。

    他的背影很快消失,却在我的心里泛滥成灾

    我要怎样才能追的上他的脚步,那样步履匆匆,那样马不停蹄……当岁月再一次将他的身影从我的眼中拉开,我只知道他在岁月里无声的痛苦,我要怎样努力才能追上他。

    你还在岁月里无声的痛哭,我怎能不努力成长。我要用你遗传给我的倔犟去包容你的倔犟;我要怎样才能最快的接过你身上的重担;我要怎样才能让你的哭声不再是抑制的、无声的;我要怎样才能阻止岁月的风尘沾染你的身躯;我要怎样才能让你正真的快乐……

    你在岁月里无声痛苦,只因瞥见你眼眶尚未了流出的泪水,我更要努力成长。长到能与你并肩,长到我可以潇洒的告诉你“还做什么工作,我养你”!

  • 最后的唢呐

    最后的唢呐

    太阳快要落山的时候,整个村子笼罩在一片昏黄之中,村民们三三两两的从田里回来,孩子们雀跃在回家的路上,随着炊烟袅袅升起,村子里又慢慢开始热闹了起来。

    刘金山穿着背心踩着宽口老布鞋,提着一壶茶走出了屋子,在院子里的石桌前伸了个懒腰,喝上一口茶水,清了清嗓子,白毛巾往脖子上一搭,挺直腰杆,深吸一口气,唢呐声顿时在整个村子里漫开了。

    那唢呐声悠扬而醇厚,时而高亢激昂,时而悲壮凄凉,千转百回,引人入胜,忙完了一天的村里人坐在院子里,搬一把凳子,摇一摇蒲扇,享受免费的音乐盛宴。

    刘金山的唢呐技术很好,好到什么程度?每逢喜事,唢呐一响,高昂欢快,每个人都像踏着唢呐的节拍走路,把气氛烘托的热闹异常。每逢白事,唢呐声低沉哀怨,如泣如诉,令听者动容,旁观者往往听着听着就流出了眼泪。

    刘家班的唢呐,在方圆几十里无人不知,在很长一段时间内,周围村里的人以能请到刘家班为荣,有要办事的,总会提上两瓶好酒去找班主刘金山。

    刘金山走在村子里时,迈着方步,挺着腰杆,谁见到了都会热情地打声招呼,递上一根烟,神气的不行,犹如古代时皇帝出游,场面大的不得了。

    刘家班在村里不仅地位高人缘好,收入也相当不错,东家不仅要好吃好喝、好烟好酒的伺候着,红包也必不可少,刘家班的唢呐技术也向来不外传,刘进金山的徒弟便是他的侄子刘二利。

    刘二利悟性很高,上手很快,脑子很灵活,常常在刘金山吹完传统曲目后,别有风味地即兴吹上一两首流行歌曲,而且曲调拿捏地非常到位,惹的年轻人一阵欢叫。

    吹唢呐是个力气活,憋气出气间,常常累得满头大汗,刘二利年轻体壮,也非常卖力,吹到兴起,即使在大冬天,也一把拽掉衣服,赤裸的背上冒着水汽,刘金山每每看到,都感叹自己老了。

    刘二利三十五岁的时候,刘金山正式把班主的位子让给了刘二利,自己退居二线做了甩手掌柜,他看好自己的侄子,这小子脑子活、肯卖力,有自己年轻时候的那股劲。

    村子往东二十里,有一村子叫高家庄,村里也有一个唢呐班子,班主是个年轻人,唢呐技术一般,生意也远不如刘家班的红火,但年轻的班主脑瓜灵活,没几年,高家班就把刘家班的生意抢了过来。

    刘二利不服气,专门去看了高家班的演出,那叫一个热闹,他发现原来电子琴架子鼓比唢呐二胡更有冲击力,他发现原来流行音乐比传统戏曲更有气氛,更重要的是,他发现女人脱衣服比他脱衣服更具吸引力。

    他没和老班主商量,一个人到城里操办了比较现代的设备,脑瓜一转,又到不出名的KTV找了几个浓妆艳抹的女人,大旗一展,刘家唢呐班变成了二利歌舞团。

    改制后的第一笔生意让他坚定了自己的判断,根本不用自己那么卖力的吹唢呐,几个女孩上台一扭一摆,连歌都不用唱几首,打情骂俏、脱一两件衣服,观者如云,收入也是原来的四五倍!

    老班主刘金山不干了,他指着刘二利骂这是伤风败俗,骂他辱没祖先败坏门庭,老刘家靠手艺吃饭,什么时候需要这些乱七八糟、乌烟瘴气的东西?老班主带着班子里的老人不干了,退出了江湖。

    刘二利有自己的想法,他认为世事总是要变的,这年代靠本事赚钱不丢人,因循守旧已经不合时宜了,他就是要赚钱,要从高家班手里把头把交椅夺回来,至于丢不丢人,他可管不了这么多。

    二利歌舞团和高家班的竞争越来越激烈,现代设备越来越多,音响动静越来越大,流行歌曲唱的越来越多,传统戏曲越来越少,女演员们穿的也越来越少、尺度越来大,你敢脱一件,我就敢脱两件,连大冬天都能脱。

    与此同时,唢呐声越来越少,到最后,几乎听不到了唢呐声,看演出的老人孩子越看越少,年轻人越来越多,虽很热闹,但没有了以往的温馨。

    刘金山再走在村里的路上时,主动给他打招呼套近乎的人少了,背后指指点点的人倒是不少,想想二利,他常常觉得臊的不行,有时候一声长叹,叹收徒不慎,叹世风日下,如此下去,那唢呐班还能叫唢呐班吗?

    他经常在晚上独自一人坐在院子里吹唢呐,没有往日的欢快高昂,唉声叹气,断断续续,但依旧原汁原味,淳朴的如村子里的风一样,让人感到舒服。

    有时候他甚至在想,等他死了的时候,二利能不能给他吹上一次干净的唢呐,以后村里老人去世的时候,谁还能吹唢呐,至于二利的歌舞团,他可看不上那些乱七八糟的东西。

    又是一个夕阳西下的傍晚,刘金山脖子上搭着白毛巾,手里提着茶水壶,脚踩着宽口老布鞋来到了院子里,提起唢呐吹了起来,不知怎的,有一个调子怎么也吹不上去。

    他停下来,喝了口茶水,用毛巾擦了把汗,深吸一口气,鼓起双腮,依旧没有吹上去,他似乎有些缺氧,在院子里晃了几下,呆住了,岁月不饶人啊。

    他索性把唢呐放在石桌上,勒了一下腰带,憋了一口气,清了一下嗓子唱了起来,听腔调唱的是豫剧《辕门斩子》,他嗓子粗哑,唱出来别具一番风味,一曲未完,刘金山老泪纵横,泣不成声。

    从那天以后,村里再也没有响起过唢呐声,村里人都说,方圆几十里最好的一个唢呐班彻底没了。

    【乡土故事&行业故事汇&微小说首届联合征文】:家乡老行当的故事