diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..063b0e4 --- /dev/null +++ b/.gitignore @@ -0,0 +1,7 @@ +.DS_Store +Thumbs.db +db.json +*.log +node_modules/ +public/ +.deploy*/ \ No newline at end of file diff --git a/.npmignore b/.npmignore new file mode 100644 index 0000000..063b0e4 --- /dev/null +++ b/.npmignore @@ -0,0 +1,7 @@ +.DS_Store +Thumbs.db +db.json +*.log +node_modules/ +public/ +.deploy*/ \ No newline at end of file diff --git "a/2016/05/01/\343\200\212\345\262\233\344\270\212\344\271\246\345\272\227\343\200\213\346\262\241\346\234\211\350\260\201\346\230\257\344\270\200\345\272\247\345\255\244\345\262\233/index.html" "b/2016/05/01/\343\200\212\345\262\233\344\270\212\344\271\246\345\272\227\343\200\213\346\262\241\346\234\211\350\260\201\346\230\257\344\270\200\345\272\247\345\255\244\345\262\233/index.html" deleted file mode 100644 index a4eb7aa..0000000 --- "a/2016/05/01/\343\200\212\345\262\233\344\270\212\344\271\246\345\272\227\343\200\213\346\262\241\346\234\211\350\260\201\346\230\257\344\270\200\345\272\247\345\255\244\345\262\233/index.html" +++ /dev/null @@ -1,372 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 《岛上书店》没有谁是一座孤岛 - 序员乱翻书 - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
-
-

- - 《岛上书店》没有谁是一座孤岛 - -

- - -
- - - - -
- -

下面写着这些只是想表明一下,为什么开始对读书热衷起来了。

-

发现自己太不懂人情世故,也欠缺很多生活的乐趣,所以决定让自己多看一些书。前一段时间在读金庸的作品,专门在网上查了一下,该从哪一本开始看,才能更好的了解金庸的作品。知乎有一个回答,好似说的有那么个道理,不愿去深究。就按照《书剑恩仇录》《飞狐外传》《雪山飞狐》《鸳鸯刀》《碧血剑》《连城诀》《白马啸西风》《射雕英雄传》《神雕侠侣》……一本一本看下来。其实现在也只是从上面的目录一本本看到了《神雕侠侣》的开头,就不忍让自己再看下去了。

- -

不得不说很喜欢《射雕英雄传》最后黄蓉和郭靖的结局。忍不住从网上查了03版李亚鹏饰演郭靖《射雕英雄传》电视剧,但是就只看了第1集和20多集的两集,也仅仅是快进着看了个开头就不再看了。当然胡歌版也同样是看了和03版同样的两集,也不愿再看。只能说没有从电视剧里从书里看到读书的感觉,把这个作品拍的水准低了。就像我从初中时就读了《那些年我们一起追的女孩》一样,要倒退到03年到07年之间了。直到11年这本书才拍成电影,仍然忍不住去看了电影,还是比较让人失望的,把我那些年在书里读来的感觉全都演没了。不过电影的最后柯景腾吻新郎的镜头,还是禁不住热泪盈眶。

-

入手了Kindle以后,会在亚马逊上看看有没有好的电子书推荐。无意间看到有满200元减120元的优惠券,领了以后就去看在选择范围内的书,无意间看到了《岛上书店》这边书,吸引我的是封面上的几句话:

-
-

“现象级全球畅销书”

-
-
-

“没有谁是一座孤岛”

-
-

懒得去查什么是“现象级”,读完了全书也不甚理解。当时已经把好几本书放到了购物车,包括《岛上书店》《无声告白》等,但最终也没有结算。因为习惯了在cn.bing.com搜索有没有免费的电子书,然后果然找到了,省下了买书钱^^。但心里也会有小小的愧疚,关于著作版权,关于作者。

-

在五一放假的两天,抽时间用kindle把《岛上书店》看完了。读这类书籍的速度有点快,也说不上来究竟能从书里获得什么。整体章节在刚开始的时候读得有点不明所以,但是一章一章读下来,才知道是串起来的。整体读下来感触并不深,可是就像很多人说的,一本好书,在不同的阶段,多读几遍才会生出不一样的理解,有不一样的收获。

-

书大致在讲:一个小岛上的书店店主A.J 费克里在中年时候,由于爱妻去世,书店经营等问题,心已是孤岛。却意外的在书店里收到了一个弃婴,而弃婴的母亲投海自尽。从此A.J 费克里 开始抚养小女孩长大成人,而这场意外却由此拯救了他,也让小岛上的几个生命紧紧相依。

-

情节娓娓道来,不禁引人入胜。其中一个章节《当我们谈论爱情时我们在谈论什么》有一句话“一个人无法自成孤岛,要么至少,一个人无法自成最理想的孤岛”。书中很多地方读来并不能很好的理解。

- - -
- - - - - -
- - - -
- - - - - - - - - - - -
- - -
- -
- -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/2016/05/17/\343\200\212\345\260\204\351\233\225\350\213\261\351\233\204\344\274\240\343\200\213\343\200\212\347\245\236\351\233\225\344\276\240\344\276\243\343\200\213\343\200\212\345\200\232\345\244\251\345\261\240\351\276\231\350\256\260\343\200\213/index.html" "b/2016/05/17/\343\200\212\345\260\204\351\233\225\350\213\261\351\233\204\344\274\240\343\200\213\343\200\212\347\245\236\351\233\225\344\276\240\344\276\243\343\200\213\343\200\212\345\200\232\345\244\251\345\261\240\351\276\231\350\256\260\343\200\213/index.html" deleted file mode 100644 index 3c26bf8..0000000 --- "a/2016/05/17/\343\200\212\345\260\204\351\233\225\350\213\261\351\233\204\344\274\240\343\200\213\343\200\212\347\245\236\351\233\225\344\276\240\344\276\243\343\200\213\343\200\212\345\200\232\345\244\251\345\261\240\351\276\231\350\256\260\343\200\213/index.html" +++ /dev/null @@ -1,366 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 《射雕英雄传》《神雕侠侣》《倚天屠龙记》 - 序员乱翻书 - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
-
-

- - 《射雕英雄传》《神雕侠侣》《倚天屠龙记》 - -

- - -
- - - - -
- -
    -
  • 看完《射雕英雄传》,实在不想再往后看《神雕侠侣》或者其他了,因为总觉得看到郭靖和黄蓉走到最后的结局很好。从金庸的《书剑恩仇录》开始,总觉得书中有好多个女主角,但都一个个的没有走到最后。然后就很不舍得,不舍得看到郭靖和黄蓉走到一起的这种感觉。
  • -
- -
    -
  • 偶然和同事聊起用kindle看书的事情,他说 《射雕英雄传》《神雕侠侣》和《倚天屠龙记》是金庸唯一的三部曲,忍不住,用了将近两周时间,把后两部书看完了。
  • -
  • 郭靖 黄蓉,杨康 小龙女,张无忌 赵敏。
  • -
  • 不得不说郭襄也给人留了很深的印象。她没有她姐姐郭芙的任性,骄横,反倒觉得是黄蓉和郭靖两个性格的结合体。有着黄蓉的机灵古怪和聪慧,却又事事知书达理。《神雕侠侣》看完后就在想郭襄的最后是怎样的。在《倚天屠龙记》中提到:她一直寻找杨过到四十岁,创立峨嵋派,成为一代宗师,却终身未嫁。
  • -
- - -
- - - - - -
- - - -
- - - - - - - - - - - -
- - -
- -
- -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/2016/05/28/\343\200\212\345\244\251\351\276\231\345\205\253\351\203\250\343\200\213/index.html" "b/2016/05/28/\343\200\212\345\244\251\351\276\231\345\205\253\351\203\250\343\200\213/index.html" deleted file mode 100644 index ac02b22..0000000 --- "a/2016/05/28/\343\200\212\345\244\251\351\276\231\345\205\253\351\203\250\343\200\213/index.html" +++ /dev/null @@ -1,366 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 《天龙八部》 - 序员乱翻书 - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
-
-

- - 《天龙八部》 - -

- - -
- - - - -
- -
    -
  • 用了差不多两周的时间,把《天龙八部》看完了,兴许花的时间还要多一些。偶尔晚上做好饭已经11点了,就一边吃饭一边看,一不小心就看到了两点。有一两次看到了四点,不多都是周末。
  • -
- -
    -
  • 每每看书看到夜里两点或者四点的时候,总是会后悔,怎么不早点睡觉,早上早些起来看呢?不一样是几个小时的时间吗?
  • -
  • 接下来看《笑傲江湖》和《鹿鼎记》,《侠客行》就不看了。记得很小的时候,《侠客行》是有电视剧的,看了几集就不再看了。《笑傲江湖》是每逢放学在家,都要追的。那时候应该不是在读小学,就是在读初中。
  • -
  • 只因《鹿鼎记》是金庸最后一部,也是必看的了。
  • -
- - -
- - - - - -
- - - -
- - - - - - - - - - - -
- - -
- -
- -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/2016/06/05/\343\200\212\347\254\221\345\202\262\346\261\237\346\271\226\343\200\213/index.html" "b/2016/06/05/\343\200\212\347\254\221\345\202\262\346\261\237\346\271\226\343\200\213/index.html" deleted file mode 100644 index e9e26ad..0000000 --- "a/2016/06/05/\343\200\212\347\254\221\345\202\262\346\261\237\346\271\226\343\200\213/index.html" +++ /dev/null @@ -1,365 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 《笑傲江湖》 - 序员乱翻书 - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
-
-

- - 《笑傲江湖》 - -

- - -
- - - - -
- -
    -
  • 现在是周日,周五晚上终于把笑傲江湖看完了。
  • -
  • 没有明白令狐冲的小师妹 岳灵珊在整本书里的角色定位,当然,不是说我就明白了其他人的定位。
  • -
- -
    -
  • 金庸的小说打算看的却没有看的只剩下《鹿鼎记》了。前面看的几部小说,还是要重新看看的,如果关于里面的人物角色定位都清楚了,那是不是关于现实里的人,也能给出一个定位呢?包括我自己的定位。
  • -
- - -
- - - - - -
- - - -
- - - - - - - - - - - -
- - -
- -
- -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/2016/06/05/\343\200\212\350\275\257\344\273\266\345\267\245\350\211\272\345\270\210\343\200\213-\350\213\261-\346\241\221\345\276\267\347\275\227-\346\233\274\345\215\241\347\264\242/index.html" "b/2016/06/05/\343\200\212\350\275\257\344\273\266\345\267\245\350\211\272\345\270\210\343\200\213-\350\213\261-\346\241\221\345\276\267\347\275\227-\346\233\274\345\215\241\347\264\242/index.html" deleted file mode 100644 index abb9b1a..0000000 --- "a/2016/06/05/\343\200\212\350\275\257\344\273\266\345\267\245\350\211\272\345\270\210\343\200\213-\350\213\261-\346\241\221\345\276\267\347\275\227-\346\233\274\345\215\241\347\264\242/index.html" +++ /dev/null @@ -1,367 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 《软件工艺师》[英]桑德罗.曼卡索 - 序员乱翻书 - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
-
-

- - 《软件工艺师》[英]桑德罗.曼卡索 - -

- - -
- - - - -
- -
    -
  • 读这本书是因为自己想成为一个资深开发者,更是被它的目录吸引,所以买了纸质书。
  • -
- -
    -
  • 书里讲到了软件工艺师的概念,以及成为软件工艺师需要秉承的理念和态度。这边书并没有读完,里面第二部分关于面试部分没有看,直接跳到了15 和 16 章。书里关于作为开发者做什么,怎么做,抱着什么样的态度去做,以及做到最后的目标,觉得阐述的挺好。

    -
  • -
  • 看了书,就要去实践。

    -
  • -
- - -
- - - - - -
- - - -
- - - - - - - - - - - -
- - -
- -
- -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/2016/06/09/\345\234\250\350\277\231\344\270\252\345\237\216\345\270\202\357\274\214\346\220\254\345\256\266/index.html" "b/2016/06/09/\345\234\250\350\277\231\344\270\252\345\237\216\345\270\202\357\274\214\346\220\254\345\256\266/index.html" deleted file mode 100644 index 67bde7a..0000000 --- "a/2016/06/09/\345\234\250\350\277\231\344\270\252\345\237\216\345\270\202\357\274\214\346\220\254\345\256\266/index.html" +++ /dev/null @@ -1,384 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 在这个城市,搬家 - 序员乱翻书 - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
-
-

- - 在这个城市,搬家 - -

- - -
- - - - -
- -
    -
  • 今天又一次搬家,其实就是换住的地方。
  • -
  • 细细想来,这已经是1,2,3,4,5,6,对的,是在上海住的第六个地方了。从14年十一月底到达上海到现在,已经一年零7个月了,好快呀!
  • -
- -
    -
  • 刚来上海住在小舅的公司宿舍,然后找到了这里第一份工作。

    -
  • -
  • 临近过年,搬到了第二个地方。是住在房东家里,里面不仅仅是我一个租客,还有3个其他的租客吧。印象最深的是有一次发烧,早上竟然睡过了,头疼,浑身没有一点力气,喉咙干涩疼痛,赶紧给公司请了一天假。房东家里的老奶奶给我端来了早上她熬的粥。然后就是每次晾晒衣服,奶奶都会在衣服晾干的时候,叠好放在我屋里椅子上。

    -
  • -
  • 这一住就是半年,然后在15年7月份,搬出去和巴西柔术教练一起住了一个半月,这段时间对我来说应该是最温暖的。关于巴西柔术的一切,人和事,满怀感激,希望自己提笔写点什么。

    -
  • -
  • 在巴柔老师那里住了一个半月后,和大学认识的朋友合租了两室一厅,从九月到12月中旬。那段日子幸运的是,有一段时间可以顺便蹭饭,朋友为第二天准备的午餐,我也会有一份,带到公司。因为这个,现在的我,一天三顿饭都自己解决,偶尔会偷懒出去吃一顿。

    -
  • -
  • 好日子并不长,因为其中一个朋友因公司需要,去另一个地方发展,剩下的只好再找住的地方。第五个地方是公寓,一住又是半年,从15年12月份到现在16年6月份。等搬到这里的时候才发现,和第二个住的地方是那样近,因为那时候一直去的超市,就在小区门口。在这个合同期还没到的时候,就搬去了第六个地方,正在发愁公寓的房间怎么租出去。58赶集都发了帖子,可是还无人问津……如果不能转租出去,我可有的损失了。= = : >–<

    -
  • -
  • 第六个地方在菜市场附近,以后去巴西柔术馆就可以走着去了,周末买菜再也不用走那么远的路了。而且离巴西柔术教练住的地方更近了呢,哈哈。希望第四个地方附近那个破旧的健身房还在。

    -
  • -
  • 因为搬家,这次端午节没有出去,争取把《上庄记》看完。

    -

    -

    [写在第五个地方的公寓里,晚]

    -
  • -
-

正在建设中的城市高楼

-

-

晚上跳绳锻炼的地方

-

- - -
- - - - - -
- - - -
- - - - - - - - - - - -
- - -
- -
- -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/2016/06/11/2016\344\271\246\345\215\225/index.html" "b/2016/06/11/2016\344\271\246\345\215\225/index.html" deleted file mode 100644 index d3b3718..0000000 --- "a/2016/06/11/2016\344\271\246\345\215\225/index.html" +++ /dev/null @@ -1,406 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 2016书单 - 序员乱翻书 - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
-
-

- - 2016书单 - -

- - -
- - - - -
- -
    -
  • 《Android编程实战》
  • -
  • 《Think in Java》
  • -
  • 《代码大全》
  • -
  • 《Head First 设计模式》
  • -
  • 《故事》
  • -
- -

06-30
不知觉的,又增加了几本书

-
    -
  • 《IT项目经理成长手记》
  • -
  • 《无声告白》 end
  • -
  • 《梦想与浮沉:A股十年上市博弈》
  • -
-

07-10
kindle原来用的勤的时候,一周充两次电,现在几周充一次。
每个月发工资第一件事就是买几本书。

-
    -
  • 《教父》end
  • -
  • 《教父.西西里人》
  • -
  • 《教父.最后的教父》
  • -
  • 《王小波. 时代三部曲》
  • -
  • 《java并发编程的艺术》
  • -
  • 《java多线程编程核心技术》 end
  • -
-

07-16

-
    -
  • 《二手时间》
  • -
  • 《商业的本质》
  • -
  • 《支付战争》 end
  • -
  • 《重新定义团队》
  • -
-

不得不说,又买了一些书:

-
    -
  • 《这就是台湾,这才是台湾》

    -
  • -
  • 《美国历史》

    -
  • -
  • 渡边淳一 《失乐园》《无影灯》《男人这东西》《再爱一次》《爱的流放地》

    -
  • -
  • 《红楼梦》(珍藏足本)

    -
  • -
-

09-04

-
    -
  • 《人月神话》
  • -
  • 《Head First PMP》
  • -
  • 《十年一觉电影梦》
  • -
  • 《一本摄影书》
  • -
  • 《全能项目经理的12堂必修课》
  • -
- - -
- - - - - -
- - - -
- - - - - - - - - - - -
- - -
- -
- -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/2016/06/11/\343\200\212\344\270\212\345\272\204\350\256\260\343\200\213\345\255\243\346\240\213\346\242\201/index.html" "b/2016/06/11/\343\200\212\344\270\212\345\272\204\350\256\260\343\200\213\345\255\243\346\240\213\346\242\201/index.html" deleted file mode 100644 index 291188f..0000000 --- "a/2016/06/11/\343\200\212\344\270\212\345\272\204\350\256\260\343\200\213\345\255\243\346\240\213\346\242\201/index.html" +++ /dev/null @@ -1,370 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 《上庄记》 季栋梁 - 序员乱翻书 - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
-
-

- - 《上庄记》 季栋梁 - -

- - -
- - - - -
- -

可能,书里的现实总是要比真正的现实要喜剧,书里的现实总是要比真正的现实要悲剧。

-

出版日期:2014年5月第一版 2015年5月第四次印刷。

-

老家的情况和作者描述的上庄与其说是相似,不如说就是真实的写照。虽历历在目,却从未映照在心上,一页页读来,从七八九岁到离家外出中间那段时间,家乡的人与事,都浮现在脑海。

- -

年轻的都在城市里打工,村子里剩下的都是没有什么一技之长的,或者年纪比较大的。能出去打工,谁还在家里种地呢?但,肯定也有书中所说的种种缘由。犹还记得,七八九岁时候,陪着姥爷姥姥在地里劳作,还有两个妹妹,一个亲妹子,一个是舅家的小妹。那时候姥爷怕我们累着,只是让我们一边玩,一边干一点活。湿湿的土里偶尔会翻出很大只得东西南北虫,这种虫子的一头总是不停地东西南北的指。

-

姥爷在我很小的时候,就让我学着抽烟了,其实也是逗着让我玩儿的。姥爷对我很严厉,姥姥向着我,姥爷向着两个小妹。我想,姥姥只是一味偏心,姥爷却是出于爱,对小妹好,对我严厉。对姥爷有些怕,更多的是想看他笑的时候那额头上的皱纹。

-

不懂的是为什么,老天爷不让姥爷在世上多呆几年,就让癌症带走了,走之前没来得及见上一面。我怀念那七八九岁和您一起在田地里面朝黄土背朝天,怀念您收了白菜拉了一架子车在家门口喊着让我帮忙,怀念您看着我学抽烟时候被呛到,怀念因为我没有忍着让着小妹您训斥我……

-

如果能早知道,那会不会能在您身边多陪一些时候,多叫您一生“姥爷”呢,能摸一下您微笑时候的皱纹呢……

-

本来想摘抄一些书中读来颇有感触的句子,等再往回翻起来,竟也找不到句子在哪里了。

-
-

这世上传下来的讲究都是有说法的,以后别糊弄。

-
-

[端午节,第三日,午 ]

- - -
- - - - - -
- - - -
- - - - - - - - - - - -
- - -
- -
- -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/2016/06/20/gradle\347\232\204\344\275\277\347\224\250/index.html" "b/2016/06/20/gradle\347\232\204\344\275\277\347\224\250/index.html" deleted file mode 100644 index de9ee01..0000000 --- "a/2016/06/20/gradle\347\232\204\344\275\277\347\224\250/index.html" +++ /dev/null @@ -1,380 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - gradle的使用 - 序员乱翻书 - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
-
-

- - gradle的使用 - -

- - -
- - - -
-

文章目录

-
-
  1. gradle 多分支使用不同的签名文件打包
    1. 打包命令:
  2. gradle 每一个分支使用不同签名文件打包
-
-
- - -
- -

gradle 多分支使用不同的签名文件打包

- -
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
    android {
signingConfigs {
debug {} //debug debug版本
release {} //正式签名版本
third {} //另一个签名配置
}
buildTypes {
debug {
applicationIdSuffix ".debug"
}
release {
signingConfig singingConfigs.release
}

third {
signingConfig singingConfigs.third
}
}
//产品不同分支
productFlavors {
alpha_fittime {
applicationId = ""
manifestPlaceholders = []
}
beta_fittime {
applicationId = ""
manifestPlaceholders = []
}
product_fittime {
applicationId = ""
manifestPlaceholders = []
}
}
}

//读取sign key配置 relese版本
File releaseFile = file('release.properties');
if (releaseFile.exists()) {
def Properties releasePt = new Properties()
releasePt.load(new FileInputStream(releaseFile))
if (releasePt.containsKey('STORE_FILE') && releasePt.containsKey('STORE_PASSWORD') &&
releasePt.containsKey('KEY_ALIAS') && releasePt.containsKey('KEY_PASSWORD')) {
android.signingConfigs.release.storeFile = file(releasePt['STORE_FILE'])
android.signingConfigs.release.storePassword = releasePt['STORE_PASSWORD']
android.signingConfigs.release.keyAlias = releasePt['KEY_ALIAS']
android.signingConfigs.release.keyPassword = releasePt['KEY_PASSWORD']
} else {
android.buildTypes.release.signingConfig = null
}
} else {
android.buildTypes.release.signingConfig = null
}

//读取sign key配置 third 版本
File thirdFile = file('third.properties');
if (thirdFile.exists()) {
def Properties thirdPt = new Properties()
thirdPt.load(new FileInputStream(thirdFile))
if (thirdPt.containsKey('STORE_FILE') && thirdPt.containsKey('STORE_PASSWORD') &&
thirdPt.containsKey('KEY_ALIAS') && thirdPt.containsKey('KEY_PASSWORD')) {
android.signingConfigs.third.storeFile = file(thirdPt['STORE_FILE'])
android.signingConfigs.third.storePassword = thirdPt['STORE_PASSWORD']
android.signingConfigs.third.keyAlias = thirdPt['KEY_ALIAS']
android.signingConfigs.third.keyPassword = thirdPt['KEY_PASSWORD']
} else {
android.buildTypes.third.signingConfig = null
}
} else {
android.buildTypes.third.signingConfig = null
}
-
-

打包命令:

    -
  • gradle aR 打包的release 使用 release.properties 文件配置的key信息,third 使用third.properties 文件配置的key信息
  • -
-

gradle 每一个分支使用不同签名文件打包

-
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
android {
signingConfigs {
debug {} //debug debug版本
release {} //正式签名版本
third {} //另一个签名配置
}
buildTypes {
debug {
applicationIdSuffix ".debug"
}
release {
signingConfig singingConfigs.release
}

third {
signingConfig singingConfigs.third
}
}
//产品不同分支
productFlavors {
//首先定义局部的打包需要的配置
def defaultSigning = signingConfigs.release
def thirdSigning = signingConfigs.third
alpha_fittime {
applicationId = ""
manifestPlaceholders = []
signingConfig defaultSigning //使用默认签名
}
beta_fittime {
applicationId = ""
manifestPlaceholders = []
signingConfig defaultSigning //使用默认签名
}
product_fittime {
applicationId = ""
manifestPlaceholders = []
signingConfig defaultSigning //使用默认签名
}
third_fittime {
applicationId = ""
manifestPlaceholders = []
signingConfig thirdSigning //使用third签名
}

}
}

//读取sign key配置 relese版本
File releaseFile = file('release.properties');
if (releaseFile.exists()) {
def Properties releasePt = new Properties()
releasePt.load(new FileInputStream(releaseFile))
if (releasePt.containsKey('STORE_FILE') && releasePt.containsKey('STORE_PASSWORD') &&
releasePt.containsKey('KEY_ALIAS') && releasePt.containsKey('KEY_PASSWORD')) {
android.signingConfigs.release.storeFile = file(releasePt['STORE_FILE'])
android.signingConfigs.release.storePassword = releasePt['STORE_PASSWORD']
android.signingConfigs.release.keyAlias = releasePt['KEY_ALIAS']
android.signingConfigs.release.keyPassword = releasePt['KEY_PASSWORD']
} else {
android.buildTypes.release.signingConfig = null
}
} else {
android.buildTypes.release.signingConfig = null
}

//读取sign key配置 third 版本
File thirdFile = file('third.properties');
if (thirdFile.exists()) {
def Properties thirdPt = new Properties()
thirdPt.load(new FileInputStream(thirdFile))
if (thirdPt.containsKey('STORE_FILE') && thirdPt.containsKey('STORE_PASSWORD') &&
thirdPt.containsKey('KEY_ALIAS') && thirdPt.containsKey('KEY_PASSWORD')) {
android.signingConfigs.third.storeFile = file(thirdPt['STORE_FILE'])
android.signingConfigs.third.storePassword = thirdPt['STORE_PASSWORD']
android.signingConfigs.third.keyAlias = thirdPt['KEY_ALIAS']
android.signingConfigs.third.keyPassword = thirdPt['KEY_PASSWORD']
} else {
android.buildTypes.third.signingConfig = null
}
} else {
android.buildTypes.third.signingConfig = null
}
-
    -
  • 这样就可以使得 productFlavors 中的third_fittime 单独只用自己的第三方签名
  • -
- - -
- - - - - -
- - - -
- - - - - - - - - - - -
- - -
- -
- -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/2016/06/24/\347\233\256\345\211\215\347\232\204\346\227\266\351\227\264\345\256\211\346\216\222/index.html" "b/2016/06/24/\347\233\256\345\211\215\347\232\204\346\227\266\351\227\264\345\256\211\346\216\222/index.html" deleted file mode 100644 index 6427583..0000000 --- "a/2016/06/24/\347\233\256\345\211\215\347\232\204\346\227\266\351\227\264\345\256\211\346\216\222/index.html" +++ /dev/null @@ -1,365 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 目前的时间安排 - 序员乱翻书 - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
-
-

- - 目前的时间安排 - -

- - -
- - - - -
- -

突然头脑一热,在6月18号的时候,又打算去朋友的健身房开始健身。然后现在的时间安排就变成了这样:周二四六日晚上去健身,周三五晚巴西柔术,周六日中午巴西柔术。周一休息,突然时间就变得很少很少。

-

想,如果这些事情把我的时间都占满,那我就没有时间去看电影电视剧,没有空去浪费时间。上下班的地铁带上纸质书或者kindle,偶尔就是发呆。

- -

健身,是因为感觉自己在巴西柔术上还差着力量,同时也是为了塑造一个好的身材。再说,社会这么的乱。

-

每天晚上到家也就10点左右,然后做个饭,11点,然后吃饭。

-

技术上也一定要努力提高才行,不然怎么涨工资呢?!

-

那些能看到结果,就像健身,身体会明显的给你反馈。就像你努力提高技术,你总能够在工作上越走越远。既然能看到结果,那就多多努力,不负时光。

-

期待成为一个中级开发者,成为一个巴西柔术爱好者,能够继续健身来增加力量塑造身材。

- - -
- - - - - -
- - - -
- - - - - - - - - - - -
- - -
- -
- -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/2016/07/03/\343\200\212\346\227\240\345\243\260\345\221\212\347\231\275\343\200\213-\347\276\216-\344\274\215\347\273\256\350\257\227/index.html" "b/2016/07/03/\343\200\212\346\227\240\345\243\260\345\221\212\347\231\275\343\200\213-\347\276\216-\344\274\215\347\273\256\350\257\227/index.html" deleted file mode 100644 index a832614..0000000 --- "a/2016/07/03/\343\200\212\346\227\240\345\243\260\345\221\212\347\231\275\343\200\213-\347\276\216-\344\274\215\347\273\256\350\257\227/index.html" +++ /dev/null @@ -1,361 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 《无声告白》(美)伍绮诗 - 序员乱翻书 - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
-
-

- - 《无声告白》(美)伍绮诗 - -

- - -
- - - - -
- -

有点像“望子成龙望女成凤”中国式教育味道,家长把原本自己的理想强加在孩子身上,造成的悲剧。要说也不是悲剧,毕竟莉迪亚是因为想要证明有能力做回真正的自己而在湖里溺亡。也因为如此,莉迪亚的父母才开始真正去正视他们在命运里面临的问题。

- -

读下来以为这个故事应该发生在中国,应该由中国人写出这样一本书。读完才知觉,是不是天下的父母都如此这般。可是书中的主人公却真真确确是中国人,故事的发生是否也与此有关?

-

至少,在书的结尾处:莉迪亚的父母,她的哥哥内斯,她的小妹汉娜,正在努力向更自由更快乐的生活努力。

- - -
- - - - - -
- - - -
- - - - - - - - - - - -
- - -
- -
- -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/2016/07/20/\351\205\222/index.html" "b/2016/07/20/\351\205\222/index.html" deleted file mode 100644 index fa5569c..0000000 --- "a/2016/07/20/\351\205\222/index.html" +++ /dev/null @@ -1,367 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 酒 - 序员乱翻书 - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
-
-

- - 酒 - -

- - -
- - - - -
- -

酒,对于生活肯定不是必不可少的,但是就像做饭的油盐酱醋,它是一剂调味料,也是酒逢知己千杯少的寂寥。

- -

偶尔会在晚上自斟自饮,在大学的时候是玻璃瓶的小麦啤。九点半左右下了晚自习,就去宿舍楼下小卖部买上一瓶,特别是夏天。偶尔碰上同班篮球队在楼下喝酒,基本就是不醉不归。

-

现在在上海这座城市,刚开那段时间一个月至少会有买一件青岛或者其他的罐装啤酒,晚上回到住的地方,想起来就喝上一瓶。那时候刚毕业在郑州,和大学同学合租也是如此。

-

后来就真的在一次柔术比赛后的馆内聚会上,喝醉了。在ktv里,不管是谁唱歌,都要跟着吼几句。走出ktv包厢,一遇到风,到现在也不知道自己怎么回到住的地方的。后来就克制,聚会的时候喝到清醒为止。再到后来自己一个人就不喝了。

-

知道百威这个牌子的啤酒还是在巴西柔术老馆,峰哥来的晚的那次,小明老师骑电动车带着我,和峰哥一起回去。路过类似全家便利店的时候,峰哥提议喝酒,那真是快意。就去买了三瓶百威,一路喝着回去的。自此,最少要喝百威,小麦啤,雪花就喝的很少很少了。后来又一次,峰哥,岚姐,小明老师一起在练完柔术后吃烧烤,这次峰哥提议喝黑啤。

-

转眼练习巴西柔术已经一年半了。释放压力,也找到一种工作之余的东西,来填充生活。

-

遇到一群人,we are together, we are stronger.

-

关于酒,肯定不止这几句话。关于柔术,肯定更多,希望会写成故事,至少应该是一步一步的叙事。

-

- - -
- - - - - -
- - - -
- - - - - - - - - - - -
- - -
- -
- -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/2016/07/24/\343\200\212\346\224\257\344\273\230\346\210\230\344\272\211\343\200\213/index.html" "b/2016/07/24/\343\200\212\346\224\257\344\273\230\346\210\230\344\272\211\343\200\213/index.html" deleted file mode 100644 index 9fc7a90..0000000 --- "a/2016/07/24/\343\200\212\346\224\257\344\273\230\346\210\230\344\272\211\343\200\213/index.html" +++ /dev/null @@ -1,376 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 《支付战争》 - 序员乱翻书 - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
-
-

- - 《支付战争》 - -

- - -
- - - - -
- -

昨天早上在银行大厅里,拿着kindle,把这本书看完了。以后周末要找一个有空调的地方,拿着kindle,最好是星巴克。

-

作者讲了关于美国paypal支付公司,从成立之初,到历经与ebay等众多公司,以及州法律之间的斗争,然后走向IPO,再到被ebay收购,到最后原拥有创业家精神的创始人和原始员工离开paypal。

- -

书中第六章讲到,从一个免费的互联网服务变成一个成功的付费服务,完成这一转型的网络公司寥寥无几。大多数公司并没有找到盈利模式,拿着资本的钱,在资本市场艰难生存。

-

一开始不明白上市公司为什么需要法律事务相关的工作人员,看了paypal的上市过程,才知道,有很多竞争对手会想办法阻挠上市。会遭到很多不良律师的起诉,因为知识产权/法律条文,等你想都想不到的原因,他们跟你并没有什么大的利益冲突,不过是要从上市公司分一杯羹。这些律师起诉的内容,如果处理不好,那就意味着几乎不能上市。

-
-

这种法律上和监管上的冲击让我们越发不知所措,因为我们这家创业公司岁这些挑战根本不熟悉。与ebay展开竞争是一回事—多少可以调整产品和营销团队应对竞争,然后让市场来决定谁输谁赢;甚至俄罗斯黑帮也是我们可以应对的,我们可以面对面地与他们斗智斗勇。但是阻碍我们成功的律师和监管者是全然不同的竞争对手,创业家拥有的创新/精力和灵活性可能不足以帮助我们走出这一困境。
PayPal厄运连连,我们的问题不仅仅是严峻的竞争形势。在IPO之后的几个月,PayPal官司不断,辩护律师纷纷登场,他们拿起了一个武器来对抗那些资金雄厚的公司–集体诉讼。

-
-

eBay举行的一个庆祝活动“eBay Live”上,由于PayPal的T恤衫营销,让eBay在这个自己的庆祝会上不愿意看到却多次看到的东西–PayPal,PayPal,还是PayPal。将近有四分之一的拍卖商参会者,穿着PayPal的T恤。 这一点让人体会到,关于一个名字,关于一个品牌,让其深入人心,让其无处不在,多么重要。

-

前一段时间,58和赶集合并,美团和大众点评合并,只知道是强强联合,却不知道为什么。看了PayPal被eBay收购,才知道,同一领域的两家巨头在相互竞争上那么耗费精力,以至于不能有更多的精力去提高自己的产品和服务。不过,就如书中所说:

-
-

其实我觉得,到底谁赢谁输还不明朗,在这种情况下,如果输赢那么清晰的话,通常也就达不成交易了。胜利者不希望被收购,因为他们知道自己会赢,而输家也将无法说服任何人来收购他们。

-
-

关于大公司的通病,书中也有提及,在PayPal被eBay收购之后:

-
-

随着进一步发展,PayPal变得更加公司化也更加有流程驱动,虽然已经到了把卢克·诺赛克 和 保罗·马丁 这种自由奔放的创新者逼走的地步,但是我们公司仍然保持着主人翁精神,并愿意鼓励员工争论。程序上的繁文缛节可能会减慢我们的创新脚步。

-
-

没办法去说读了这本书究竟让我对公司有了多少的了解,因为写这些类似读后感的时候,会觉得没有什么写的。

-

但是,似乎现在的公司还和当年的PayPal一样,仍然经历着同样的竞争与监管。似乎,现在的公司还没有当年的额PayPal做的好,虽然已经过去了那么多年、

- - -
- - - - - -
- - - -
- - - - - - - - - - - -
- - -
- -
- -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/2016/08/06/\343\200\212Java\345\244\232\347\272\277\347\250\213\347\274\226\347\250\213\346\240\270\345\277\203\346\212\200\346\234\257\343\200\213/index.html" "b/2016/08/06/\343\200\212Java\345\244\232\347\272\277\347\250\213\347\274\226\347\250\213\346\240\270\345\277\203\346\212\200\346\234\257\343\200\213/index.html" deleted file mode 100644 index fc6df2e..0000000 --- "a/2016/08/06/\343\200\212Java\345\244\232\347\272\277\347\250\213\347\274\226\347\250\213\346\240\270\345\277\203\346\212\200\346\234\257\343\200\213/index.html" +++ /dev/null @@ -1,359 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 《Java多线程编程核心技术》 - 序员乱翻书 - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
-
-

- - 《Java多线程编程核心技术》 - -

- - -
- - - - -
- -

总页数挺少,写的内容浅显易懂。还是在于多实践,在代码中多用。

-

关于技术的书,读完感觉没什么要写的,虽然并不真的会,多实践。

- - -
- - - - - -
- - - -
- - - - - - - - - - - -
- - -
- -
- -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/2016/09/02/\344\271\260\345\234\237\350\261\206\347\232\204\346\225\205\344\272\213/index.html" "b/2016/09/02/\344\271\260\345\234\237\350\261\206\347\232\204\346\225\205\344\272\213/index.html" deleted file mode 100644 index 6fd5d46..0000000 --- "a/2016/09/02/\344\271\260\345\234\237\350\261\206\347\232\204\346\225\205\344\272\213/index.html" +++ /dev/null @@ -1,366 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 买土豆的故事 - 序员乱翻书 - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
-
-

- - 买土豆的故事 - -

- - -
- - - - -
- -

突然想起《买土豆的故事》,因为最近发生的两件事情。当然,没有做到的肯定不止这两件事情。

-

第一件事:今天上司叫来了大楼里收废品的阿姨,要把办公室里面的饮料瓶全部处理掉。不一会儿阿姨就把瓶子收拾进编织袋,拖着往办公室门口走。平时办公室的门只开一扇,另一边一直关着。当阿姨走时,我准备去帮她开下门,发现拖着装满瓶子的编织袋,只开一扇门是不可能通过的。其实已经又一位同事在帮阿姨开门了,只是开了一直开的那一边。当他想把另一边打开的时候,他却不知道怎么开。然后我竟没有考虑的问另外一个同事,门的另一边怎么开。我的脑袋肯定是锈掉了,竟然没有把信息在脑袋里处理一下就扔出去了。

- -

常识:一边的门开的话,另一边的门一般都是由插销固定着。而插销的位置,不在上面就是在下面。

-

第二件事:记得一次巴西柔术训练结束,李哥在换衣室里拿着一条蓝带,说:“某某的带子”(某某是带子上有的名字)。那时我刚好站在门口,就接了过来。我便对着仅剩下的两个人问,谁的带子。情况是这样的,我知道其中一位是Cindy姐,另一位肯定就是带子的主人,张姐姐了。当时Cindy姐就问我:你是怎么混到你老板的公司的?(我的上司也是我的巴西柔术教练)。

-

带子明明有名字,稍微想一下就知道带子是谁的。更好地是,拿到带子以后可以马上改口张姐姐,竟然……没有动脑袋,仍是把信息不处理直接扔出去了。

-

还有:现在有几家商户使用我们的app,需要做一下后期维护更新的工作。如果这不到十家店铺都没办法更新维护好的话,那等有一天成百上千家,还怎么搞的定?!

-

需要做到的还很多,还能做得更好。

-

《买土豆的故事》 附上链接 https://www.douban.com/group/topic/21021554/

- - -
- - - - - -
- - - -
- - - - - - - - - - - -
- - -
- -
- -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/2016/09/04/\345\246\202\344\275\225\344\275\277\345\215\225\344\276\213\346\250\241\345\274\217\351\201\207\345\210\260\345\244\232\347\272\277\347\250\213\346\230\257\345\256\211\345\205\250\347\232\204\343\200\201\346\255\243\347\241\256\347\232\204/index.html" "b/2016/09/04/\345\246\202\344\275\225\344\275\277\345\215\225\344\276\213\346\250\241\345\274\217\351\201\207\345\210\260\345\244\232\347\272\277\347\250\213\346\230\257\345\256\211\345\205\250\347\232\204\343\200\201\346\255\243\347\241\256\347\232\204/index.html" deleted file mode 100644 index 00c6d5e..0000000 --- "a/2016/09/04/\345\246\202\344\275\225\344\275\277\345\215\225\344\276\213\346\250\241\345\274\217\351\201\207\345\210\260\345\244\232\347\272\277\347\250\213\346\230\257\345\256\211\345\205\250\347\232\204\343\200\201\346\255\243\347\241\256\347\232\204/index.html" +++ /dev/null @@ -1,371 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 如何使单例模式遇到多线程是安全的、正确的 - 序员乱翻书 - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
-
-

- - 如何使单例模式遇到多线程是安全的、正确的 - -

- - -
- - - - -
- -

注明:文中内容总结来自书籍《Java多线程编程核心技术》第六章
1)懒汉模式:以下代码是完全错误的,线程不安全。项目中写的代码大多属于这种情况,当不存在多线程访问时这种方式应该是可取的。

- -
1
2
3
4
5
6
7
8
9
10
11
12
13
  public static LazySingleton getInstance() {
try {
if (Instance != null) {

} else {
Thread.sleep(3000);
Instance = new LazySingleton();
}
} catch (InterruptedException exception) {
exception.printStackTrace();
}
return Instance;
}
-

1.1)针对懒汉模式解决方案1: geInstance声明synchronized关键字 ,整个方法上锁

1
2
3
4
5
6
7
8
9
10
11
12
13
14
  但是因为是同步运行,必须等到上一个线程释放锁以后才能继续执行,所以效率低下
synchronized public static LazySingleton getInstance() {
try {
if (Instance != null) {

} else {
Thread.sleep(3000);
Instance = new LazySingleton();
}
} catch (InterruptedException exception) {
exception.printStackTrace();
}
return Instance;
}

-

1.2)针对懒汉模式解决方案2: 同步代码块 和方案1一样效率低下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
     public static LazySingleton getInstance() {
try {
synchronized(LazySingleton.class){
if (Instance != null) {

} else {
Thread.sleep(3000);
Instance = new LazySingleton();
}
}
} catch (InterruptedException exception) {
exception.printStackTrace();
}
return Instance;
}

-

1.3)懒汉模式解决方案3: 针对重要代码进行单独同步,然并卵

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public static LazySingleton getInstance() {
try {

if (Instance != null) {

} else {
Thread.sleep(3000);
//然并卵,两个不同的线程,仍然会让代码跑到这里,当第一个线程释放锁后,Instance=new LazySingleton()
//会再次执行,就出现两个实例对象
synchronized (LazySingleton.class) {
Instance = new LazySingleton();
}
}
} catch (InterruptedException exception) {
exception.printStackTrace();
}
return Instance;
}

-

1.4)懒汉模式解决方案4:使用DCL双检查锁机制(双重检查Double-Check Locking),大多数多线程结合单例使用的解决方案

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public static LazySingleton getInstance() {
try {

if (Instance != null) {

} else {
Thread.sleep(3000);
//既保证了不需要同步代码的异步执行性,有保证了单例效果
//书中的同步代码的异步执行性这样的描述没懂???
synchronized (LazySingleton.class) {
//保证进入这块代码是异步,如果已经实例化,则不再执行初始化代码
if (Instance==null) {
Instance = new LazySingleton();
}
}
}
} catch (InterruptedException exception) {
exception.printStackTrace();
}
return Instance;
}

-

2)饿汉模式:书中说getInstance()没有同步 存在线程安全问题,但是在getInstance加了线程休眠,依然hasCode输出一致,所以还没想明白。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class HungrySingleton implements Serializable{
/**
* 不能有其他实例变量
*/
private static HungrySingleton Instance = new HungrySingleton();
public static HungrySingleton getInstance() {
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();

}
return Instance;
}
}

-

3)静态内置类实现单例模式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
public class StaticInnerSingleton {

/*
* 静态内之类实现单例模式
*/
private static class SingletonObject {
private static StaticInnerSingleton Instance = new StaticInnerSingleton();
}

private String content;

private StaticInnerSingleton() {
}

public static StaticInnerSingleton getInstance(String content) {
SingletonObject.Instance.setContent(content);
return SingletonObject.Instance;
}

public String getContent() {
return content;
}

public void setContent(String content) {
this.content = content;
}

@Override
public int hashCode() {
// TODO Auto-generated method stub
System.out.println(String.valueOf(super.hashCode()) + ": " + this.content);
return super.hashCode();
}

}

-

4) 序列化和反序列化的单例模式实现:书中代码是反序列化增加了readResolve 的实现。但是书中是用的protected 关键字修饰,然并卵。然后网址搜索了一篇文章,换成private修饰OK。附上链接[http://www.cnblogs.com/kakafra/archive/2012/10/26/2740436.html]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public class SeriealSingleton implements Serializable{

private static final long serialVersionUID = -4994911035515393248L;

private static class SingletonObject{
private static final SeriealSingleton Instance = new SeriealSingleton();
}
private SeriealSingleton() {
// TODO Auto-generated constructor stub
}

public static SeriealSingleton getInstance(){
return SingletonObject.Instance;
}

//如果这段代码注释掉,则还是多例 ,书中代码是用protected 修饰这个代码,还是多例模式
//网上搜到这边文章http://www.cnblogs.com/kakafra/archive/2012/10/26/2740436.html
//改为private 就是单例了。
private Object readResolve() throws ObjectStreamException{
System.out.println("调用了readResolve方法");
return SingletonObject.Instance;
}

}

-

5) static代码块实现单例模式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public class StaticBlockSingleton {
private static StaticBlockSingleton Instance = null;

private StaticBlockSingleton() {

}
/*
* 静态代码块在使用来的时候已经执行
*/
static{
Instance = new StaticBlockSingleton();
}

public static StaticBlockSingleton getInstance() {
return Instance;
}
}

-

6) enum枚举数据类型实现单例模式:应该很少会这样写吧。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
public enum EnumSingleton {
connectionFactory;
private Connection connection;
/*
* 枚举enum和静态代码块特性相似,使用枚举时,构造方法会被自动调用
* 但是却暴漏了枚举类,违反职责单一原则
* EnumBetterSingleton
*/
private EnumSingleton() {
try {
System.out.println("Enum Singleton Contructor");
String url = "jdbc:sqlserver://";
String username = "sa";
String password = "";
String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
Class.forName(driverName);
connection = DriverManager.getConnection(url, username, password);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}

public Connection getConnection(){
return connection;
}
}

-

enum枚举数据类型实现单例模式更好的实现方式:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
public class EnumBetterSingleton {
public enum SelfEnumSingleton {
connectionFactory;
private Connection connection;
private SelfEnumSingleton() {
try {
System.out.println("Enum Singleton Contructor");
String url = "jdbc:sqlserver://";
String username = "sa";
String password = "";
String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
Class.forName(driverName);
connection = DriverManager.getConnection(url, username, password);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}

public Connection getConnection(){
return connection;
}
}

public static Connection getConnection(){
return SelfEnumSingleton.connectionFactory.getConnection();
}
}

-

综上,关于单例模式总结结束。
源码地址:[https://github.com/chaozaiai/JavaTrain/tree/master/javamultithreading/chapter06]

- - -
- - - - - -
- - - -
- - - - - - - - - - - -
- - -
- -
- -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/2016/09/11/synchronized\344\270\216volatile\345\244\232\347\272\277\347\250\213\344\270\255\347\232\204\344\275\234\347\224\250/index.html" "b/2016/09/11/synchronized\344\270\216volatile\345\244\232\347\272\277\347\250\213\344\270\255\347\232\204\344\275\234\347\224\250/index.html" deleted file mode 100644 index 9044ed9..0000000 --- "a/2016/09/11/synchronized\344\270\216volatile\345\244\232\347\272\277\347\250\213\344\270\255\347\232\204\344\275\234\347\224\250/index.html" +++ /dev/null @@ -1,411 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - synchronized与volatile多线程中的作用 - 序员乱翻书 - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
-
-

- - synchronized与volatile多线程中的作用 - -

- - -
- - - -
-

文章目录

-
-
  1. 关键字synchronized
  2. 关键字volatile
-
-
- - -
- -

注明:文中内容总结来自书籍《Java多线程编程核心技术》第二章

-

关键字synchronized

-
    -
  • 同步
  • -
-

两个线程访问同一个对象中的同步方法时一定是线程安全的。

-

synchronized 修饰的方法一定是排队运行的,只有共享资源的读写访问才需要同步化,否则不需要。

-
    -
  • dirtyRead 脏读:
  • -
-

出现在读取实例变量时,该变量已经被其他线程修改。而解决脏读的一种方法就是在读取实例变量的方法加上synchronized关键字。这样,当线程A访问该实例的方法A(synchronized修饰)时,线程B如果需要访问该实例方法B(synchronized修饰),必须等线程A执行完方法A,释放该方法所在的对象锁。

-

需要留意的是,当线程A访问实例的synchronized方法时,并不影响线程B访问该实例对象的非synchronized方式。也就是说,线程之间的同步的方法只是同一实例对象的synchronized方法。

-
    -
  • synchronized锁重入
  • -
-

自己可以再次获取自己的内部锁。也就是说,当线程A获取获取了某个对象的锁,当这个对象锁还没有释放的时候,线程A需要再次获取这个对象锁的时候是可以获取到的,不然就会造成死锁。可重入锁支持父子类继承(子类可以通过“可重入锁”调用父类的同步方法)。

-
    -
  • 出现异常,锁会自动释放
  • -
  • 父类的synchronizd修饰的方法,并不会被子类继承。子类如果仍需要继承的方法是同步的,需要加上synchronized关键字
  • -
  • synchronized同步代码块
      -
    • synchronized(this)锁定当前对象
    • -
    • synchronized(非this对象)锁定 对象监视器必须为同一个,不然仍然是异步调用
    • -
    -
  • -
  • 静态同步synchronized方法与synchronized(class)代码块
      -
    • 两者持有Class锁等同,但与持有对象锁是不一样的。
    • -
    -
  • -
  • 数据类型String的常量池
      -
    • 因为JVM中具有String常量池缓存的功能,所以讲synchronized(String)同步快与String联合使用时,要注意常量池带来的意外。因为在常量池中两个String “AA” 其实是同一个对象,所以锁对象也是同一个。
    • -
    • 同步synchronized代码块都不适用String作为锁对象。
    • -
    -
  • -
-

关键字volatile

    -
  • 变量在多个线程可见,强制从公共堆栈中取值,不从线程私有数据栈中取值,但是却不能保证原子性。
  • -
  • volatile解决的是变量读时的可见性问题,但无法保证原子性,对于多个线程访问同一个实例变量还是需要加锁同步。
  • -
-
-

线程安全包含原子性和可见性两个方面,Java的同步机制都是围绕这两个方面来确保线程安全的。

-
-
-

关键字synchronized可以保证在同一时刻,只有一个线程可以执行某个方法或者某个代码块。包含两个特征:互斥性和可见性。同步synchronized不仅可以解决一个线程看到对象处于不一致的状态,还可以保证进入同步方法或者代码块的每个线程,都看到由同一个锁保护之前所有的修改效果。

-
-
-

外练互斥,内修可见

-
- - -
- - - - - -
- - - -
- - - - - - - - - - - -
- - -
- -
- -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/2016/10/05/16\345\215\201\344\270\200\345\201\207\346\234\237/index.html" "b/2016/10/05/16\345\215\201\344\270\200\345\201\207\346\234\237/index.html" deleted file mode 100644 index 6d26534..0000000 --- "a/2016/10/05/16\345\215\201\344\270\200\345\201\207\346\234\237/index.html" +++ /dev/null @@ -1,385 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 16年十一假期 - 序员乱翻书 - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
-
-

- - 16年十一假期 - -

- - -
- - - - -
- -
    -
  • 《十年一觉电影梦 李安传》 张靓蓓 编著
  • -
-

读这本书是因为在小雨厨房的公众号文章里,提到李安的一些话,然后就想买来读,想知道李安是谁。原来我只看过李安的《卧虎藏龙》。= =

- -
    -
  • 《新生-七年就是一辈子》 李笑来
  • -
-

还是通过一个单元测试的群,知道李笑来老师的。然后通过别人的分享,了解到知笔墨这个网站,开始看李老师的书。想说自己是不容易被“洗脑”的,是不是给自己找的不改变的接口?

-
    -
  • 《把时间当做朋友》 李笑来
  • -
-

这本书其实是在十一前读完的,暂且放在这里吧。就像李老师在《新生-七年就是一辈子》里总结的,这本书总结起来一句话:

-
-

一切都靠积累

-
-
    -
  • 《失乐园》渡边淳一
  • -
-

因为爱情两个人才走到一起,走进婚姻,决定并在婚礼上宣誓“执子之手,与子偕老”。可有多少人真的能走到最后呢?

-
-

如果签个字就算分手的话,那么二十几年来苦心经营的又是什么呢?

-
-
-

连女儿也催着他和妻子离婚,使久木觉得和家人更加疏远了。

-
-

中间也穿插看了王小波的《黄金时代》 ,《一本摄影书》。

-

想捡起来的吉他,总是没有拿起来,明天拿起来吧,千万不要发霉了。

- - -
- - - - - -
- - - -
- - - - - - - - - - - -
- - -
- -
- -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/2016/10/07/\343\200\212\344\272\272\344\272\272\351\203\275\350\203\275\347\224\250\350\213\261\350\257\255\343\200\213\346\235\216\347\254\221\346\235\245/index.html" "b/2016/10/07/\343\200\212\344\272\272\344\272\272\351\203\275\350\203\275\347\224\250\350\213\261\350\257\255\343\200\213\346\235\216\347\254\221\346\235\245/index.html" deleted file mode 100644 index 6d68bb9..0000000 --- "a/2016/10/07/\343\200\212\344\272\272\344\272\272\351\203\275\350\203\275\347\224\250\350\213\261\350\257\255\343\200\213\346\235\216\347\254\221\346\235\245/index.html" +++ /dev/null @@ -1,424 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 《人人都能用英语》李笑来 - 序员乱翻书 - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
-
-

- - 《人人都能用英语》李笑来 - -

- - -
- - - -
-

文章目录

-
-
  1. 口语
  2. 语音
  3. 朗读
  4. 词典
  5. 语法
  6. 精读
-
-
- - -
- -

本书可以在知笔墨上找到[http://zhibimo.com/read/xiaolai/everyone-can-use-english/index.html]

-
-

他们永远不相信自己所有的问题就出在自己从来都不肯耐心把最基础的东西弄清楚弄明白。

-
- -
-

读诗品意境,读散文品心境,读小说品情节,读报纸品现实。为了学而读,还要在读与品之外考虑很多事情,作者为什么这么写,这么写好的话好在哪儿,差的话差在哪儿,要是我去写应该怎么写才能更好……等等等等。

-
-
-

听Randy Pausch博士在他的“The Last Lecture”中说“The brick walls are there for a reason. They’re not there to keep us out. The brick walls are there to give us a chance to show how badly we want something…”

-
-

这些墙在那里只有一个原因。他不是为了把我们隔绝在外面,而是为了给我们一个了解自己有多渴望懂得一些事情的机会。(个人翻译)

-
-
    -
  • 就算因“早恋”发生了行动,拉拉手、亲亲嘴,他们也很可能不会太过紧张;然而,他们真的害怕自己的孩子发生“underage sexual behaviors”…… One of the reasons why many parents want to send their children to separate school is that they are worried about possible underage sexual behaviors.
  • -
-
-
-

获得知识的技巧:从观察到聆听,从阅读到反刍,从读书到笔记,从使用图书馆到使用搜索引擎,一切获得知识的手段需要技巧,并且还需要不停地打磨这些基本技巧。其次是逻辑思考的技巧,再次之是沟通的技巧。这三项是应该排在其他技巧之前,因为打磨任何一项技巧都需要时间,时间有限的情况下,只能划分轻重而为之。

-
-

口语

    -
  • 自己的口语书
  • -
  • 自己想要表达的内容中文记录,然后英文表达
  • -
  • 换一种说法
  • -
  • 使用平实 朴素 没有修辞的中文
  • -
  • 着重收集“不直观的对应”

    -
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    eg:
    * 如果我没记错的话……
    * 我从未想过……
    * 你竟然跟我这么说话!
    * 就知道你有这本事!
    * (这)听着耳熟吧?
    * 我想不起来那名字了……

    这些句子,基本上都是我们日常生活中必然用到的句子(或片段),可是,如果“直译”的话,就很别扭:

    * If I didn’t remembered wrong…
    * I never thought of/that…
    * How dare you talking to me like this!
    * I know you have such a capability!
    * Does it sound familiar?
    * I cannot remember that name…

    同样的语境里,“地道”的说法是这样的:

    * If my memory serves, …
    * It never occurred to me that…
    * Are we really having this conversation?
    * Always knew you had it in you!
    * Does it ring a bell to you?
    * That name escapes me….
    -
  • -
  • 长篇大论写出来

    -
  • -
  • 更重要的是思考能力
  • -
  • 复述 (秘密武器)读一篇文章然后可以复述
  • -
  • 哑巴英语也没什么不好,如果目的在于阅读
  • -
-

语音

这部分我看了一点,直接就跳过了。

-

朗读

朗读如果发音都是错的,那读的意义在哪里?

-
    -
  • 有助于提高文字理解能力
  • -
  • 提高阅读理解速度
  • -
  • 不要专门练听力,朗读
  • -
  • 提高语言文字记忆能力
  • -
  • 提高表达能力
  • -
  • 提高语言文字模式识别能力
  • -
-

词典

有道词典 金山词霸

-
    -
  • 单词 同义词
  • -
  • 搞定词组
  • -
  • 如何把word打造成学习英文的利器(方法请看原书)
    1
    2
    3
    4
    5
    6
    eg:
    It was attempting to suggest that every disease and condition for which there had been no previous effective treatments might be responsive to vitamin therapies.
    事实上,ETS从来不自己创作文章,这句话是Child Psychiatry and Human Development杂志 1998年第3期,Orthomolecular therapy: Its history and applicability to psychiatric disorders中的一段话。设计SAT考试的Colledge Board也是如此,SAT考试中的阅读文章几乎篇篇都可以在互联网上找到原文。
    也许读者会去词典里查“attempting”、“responsive”、或者“therapy”是什么意思,但我见过的学生中几乎就没有人去查“condition”在这句话里究竟应该是什么意思。他们之所以没有想到去查“condition”,是因为他们“认识”这个词,“condition:n. 条件、情况”。然而,就算除了“condition”之外的所有词汇都认识、并且每一个词在当前句子中的确切含义都完全了解的情况下,这句话如此理解难道就不觉得别扭么?
    “and”究竟是什么意思、应该怎么用,没有人不知道吧?“and”前后的往往应该属于同一范畴——这是基本的逻辑。现在“and”前面是“disease”,这个单词的含义是“疾病”,那么“every disease and condition”究竟应该是“每一种疾病和条件”?还是“每一种疾病和情况”?——其实无论哪一个都说不过去啊。只要在这里稍作一下思考,就会产生疑问,而后打开词典查“condition”原本应该是再自然不过的事情了。
    查查词典就知道了,“condition”这个单词作为名词还有另外一个含义,字典里说的是“(口语)病”。在查查同义词词典就知道了,“disease”是用来表达“疾病”最常用的词;而“condition”之所以经常在口语里使用,是因为“condition”通常指那些平日里常得也因此常常被提及的并不太严重的疾病。“She had a condition this morning. ”相当于在说“她今早上有点难受。”所以,“every disease and condition”相当于说“不管大病小病”。
    -
  • -
-

语法

    -
  • 语法书
    《朗文英语语法》和《朗文高级英语语法参考及练习》
    《剑桥中级英语语法》
    《Collins COBUILD 英语语法大全》
    《新编英语阅读手册》京东和亚马逊确实没找到呢
  • -
  • 反复通读至少一本语法书
  • -
  • 用模板造句
  • -
-

精读

    -
  • 构建自己的私人图书馆(在电脑上)
    1
    2
    3
    4
    5
    6
    7
    8
    9
    	1. 挣扎着搞清楚每一句话的确切含义。运用一切可以运用的手段——查词典,查语法书,甚至去查Google。“自己动手”比“花钱让别人替自己干活”(比如,报班上课听讲)在这方面不知道要有效多少倍。
    2. 理解每句话之间、每个段落之间的关系。处理段落还有另外一个任务——概括。
    3. 整理词汇。要知道,读完一篇文章之后,自己动手整理词汇,远比背单词书效率高出许多——可惜,大多数人并不相信。
    4. 反复阅读若干遍。读着读着就可能发现很多第一次读并没有注意到的东西。
    5. 复述文章。能够书面或者口头复述刚刚读过的文章,实际上需要很多综合能力:记忆力、逻辑能力、转述能力、重新组织能力、再理解能力等等。
    6. 养成相隔若干天后复习的习惯。

    (其实,无论哪一种考试,拿来真题,如此处理50篇左右的文章,就基本上所向披靡了。)
    鉴于大多数人学英语只是为了应付考试,所以,以上的文字里,是拿着考试文章作为示范的。事实上,读任何文字都可以这样“品”,只不过,不同类型的文章,“品”的要点不同而已。读诗品意境,读散文品心境,读小说品情节,读报纸品现实。为了学而读,还要在读与品之外考虑很多事情,作者为什么这么写,这么写好的话好在哪儿,差的话差在哪儿,要是我去写应该怎么写才能更好……等等等等。
    -
  • -
- - -
- - - - - -
- - - -
- - - - - - - - - - - -
- - -
- -
- -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/2017/01/10/2017\350\264\255\344\271\260\344\271\246\345\215\225/index.html" "b/2017/01/10/2017\350\264\255\344\271\260\344\271\246\345\215\225/index.html" deleted file mode 100644 index 08747fd..0000000 --- "a/2017/01/10/2017\350\264\255\344\271\260\344\271\246\345\215\225/index.html" +++ /dev/null @@ -1,367 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 2017购买书单 - 序员乱翻书 - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
-
-

- - 2017购买书单 - -

- - -
- - - - -
- -

一月份

-
    -
  • 纸质书
    《浪潮之巅》 第三版(上册读完)
    《硅谷之谜:浪潮之巅续集》
    《腾讯Android自动化测试实战》
    《移动App性能评测与优化》
    《Android C++高级编程 使用NDK》
  • -
- -
    -
  • kindle
    《黑客与画家》(读完)
  • -
-

二月份(写作)
《富爸爸穷爸爸》(读完)
《富爸爸提高你的财商》
《富爸爸穷爸爸实践篇》
《重新定位》
《一个广告人的自白》
《零售的本质》
《哈弗非虚构写作课:怎样讲好一个故事》
《我在底层的生活:当专栏作家化身女服务生》
《财经·17年第一期》
《故事 材质·结构·风格和银幕剧作的原理》
《小说写作教程 虚构文学速成全攻略》
《算法的乐趣》
《程序员的数学思维修炼》

-

三月份
实体书:
《数学之美》
《经济学原理 微观经济学分册+宏观经济学分册》
《麦肯锡教我的思考武器:从逻辑思考到真正解决问题》
《穷查理宝典:芒格智慧箴言与私人书单》[逻辑思维]
微信阅读:
《创业维艰》
《金色梦乡》

- - -
- - - - - -
- - - -
- - - - - - - - - - - -
- - -
- -
- -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/2017/01/15/\343\200\212\346\265\252\346\275\256\344\271\213\345\267\205\343\200\213\347\254\254\344\270\211\347\211\210\344\270\212\345\206\214/index.html" "b/2017/01/15/\343\200\212\346\265\252\346\275\256\344\271\213\345\267\205\343\200\213\347\254\254\344\270\211\347\211\210\344\270\212\345\206\214/index.html" deleted file mode 100644 index 572ea4f..0000000 --- "a/2017/01/15/\343\200\212\346\265\252\346\275\256\344\271\213\345\267\205\343\200\213\347\254\254\344\270\211\347\211\210\344\270\212\345\206\214/index.html" +++ /dev/null @@ -1,368 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 《浪潮之巅》第三版上册 - 序员乱翻书 - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
-
-

- - 《浪潮之巅》第三版上册 - -

- - -
- - - - -
- -

阅读本文可能需要花费您1分钟

-

每次看到好的书籍,不免要去豆瓣读书查一下评分,这里是《浪潮之巅》豆瓣读书的地址:
https://book.douban.com/subject/6709783/

-

大学时代,就有朋友推荐我看这本书,已经忘记那时候去干了什么,没有阅读大量的书籍。现在不断地去读书,回头看,后悔在大学时候没有疯狂的去阅读。

- -

昨天,北京的大学室友来到上海参加朋友的婚礼。我、从北京来的室友、在上海工作的室友,三人一起简单吃了个饭,在上海的室友感慨说:应该在大学里好好学习的。而我,觉得在大学应该依靠着书籍,去尽可能的了解外面的世界,去提高自己在大学里永远不会教授的技能。

-

本来想着把书里吴军对于几家大公司的成功失败分析,IT企业发展的几个关键的定律等内容提取出来(使用思维导图),但是竟然去youtube看Leandro lo 的Jiu Jistu 比赛了。

-

应该是花了大概4天时间,上下班地铁看,回到住的地方吃好饭接着看,周末连着看了两天,第一本终于看完。技术方面的东西暂时放了下来。

-

就像李开复在序言里所说:

-
-

对所有深处热爱高科技行业的人来说,对所有渴望创新、欣赏创新的中国创业者来说,《浪潮之巅》都是一本可读性很强的作品,足以做到“开卷有益”!

-
- - -
- - - - - -
- - - -
- - - - - - - - - - - -
- - -
- -
- -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/2017/01/17/\346\234\213\345\217\213\345\234\210\347\232\204\345\256\211\345\205\250\351\243\216\351\231\251\357\274\214\344\275\240\347\237\245\351\201\223\345\220\227\357\274\237/index.html" "b/2017/01/17/\346\234\213\345\217\213\345\234\210\347\232\204\345\256\211\345\205\250\351\243\216\351\231\251\357\274\214\344\275\240\347\237\245\351\201\223\345\220\227\357\274\237/index.html" deleted file mode 100644 index cd43234..0000000 --- "a/2017/01/17/\346\234\213\345\217\213\345\234\210\347\232\204\345\256\211\345\205\250\351\243\216\351\231\251\357\274\214\344\275\240\347\237\245\351\201\223\345\220\227\357\274\237/index.html" +++ /dev/null @@ -1,367 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 朋友圈的安全风险,你知道吗? - 序员乱翻书 - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
-
-

- - 朋友圈的安全风险,你知道吗? - -

- - -
- - - - -
- -

阅读本文可能需要花费您1分钟

-

类似这样标题《不要总羡慕朋友圈里的生活》的文章,在bing搜索一搜,竟然那么多。
但是这篇文章想说的却不是羡慕不羡慕的问题,而是发朋友圈分享个人生活是一件多么危险的事情。
纯属臆想,吓到你了或者觉得不屑还请君见谅。

- -

其实写下来主要是为了给朋友看的。

-

几个问题:
1 你发的朋友圈信息都谁可以看到?
你以为只有你添加的好友可以看?错了,有的人的朋友圈的所有消息其他人如果想的话,是可以全部看到。我做了如下尝试:在一个群聊里,点击一个陌生人(非好友)的头像,进入详细资料页面,你就能看到个人相册一栏。如果这个陌生人允许陌生人查看十条朋友圈,那么你就可以通过每天看他(她)的十条朋友圈,了解到这个陌生人的生活日常。留心观察,你能清楚分析出他(她)的职业、朋友、爱好,甚至还能知道那一天他(她)什么时间点出现在什么地方在做什么。

-

2 为什么能看到陌生人的十条朋友圈
在微信进入“我”页面,选择设置->隐私->允许陌生人查看十条朋友圈 。如果你的是打开的,还请关闭。

-

3 你的个人网络上的信息是安全的吗?
附上几个链接
3.1)《2011互联网用户信息泄露事件》http://www.techweb.com.cn/special/zt/2011xielou/
3.2)《信息泄露》来源网易新闻http://news.163.com/16/1011/11/C33H68FF00014SEH.html
3.3)《支付宝凌晨爆出新漏洞,朋友和快递小哥都有很大几率登录你的账户》
http://www.kejilie.com/geekpark/article/mmiimq.html
支付宝做支付的公司,应该是把用户的信息和权益放在最高优先级的吧?但是它却为了自己的应用内用户社交和公司利益,置全部用户的权益和利益而不顾!!!
黑客如果愿意,肯定还是有办法拿到用户的私人数据的。况且现在很多大公司只是一味的赚钱,因为很过公司能在创业大潮中活下来就很不错了,他们哪里能替用户想那么多。

-

4 请你留意一下从事IT行业的人,特别是技术人员,有谁经常在朋友圈发自拍,使用定位功能吗?
至少我几乎不在朋友圈发什么动态的。

-

几点建议:
1 发朋友圈停用所在位置功能
2 尽量少在朋友圈发自拍照:自己的,朋友的,更加不要发家人的。
3 不要在朋友圈留下个人相关的信息:比如火车票,工作证,名片等
4 不要发有位置定位信息的内容:比如电影票,因为通过电影票,应该能知道你几点几分肯定会出现在哪个电影院。
5 关闭允许陌生人查看十条朋友圈功能。
…………

-

当然不止微信的朋友圈,还有很多其他社交软件和网络,还有日常生活中的其他地方。

- - -
- - - - - -
- - - -
- - - - - - - - - - - -
- - -
- -
- -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/2017/02/08/\343\200\212\351\273\221\345\256\242\344\270\216\347\224\273\345\256\266\343\200\213/index.html" "b/2017/02/08/\343\200\212\351\273\221\345\256\242\344\270\216\347\224\273\345\256\266\343\200\213/index.html" deleted file mode 100644 index 309e182..0000000 --- "a/2017/02/08/\343\200\212\351\273\221\345\256\242\344\270\216\347\224\273\345\256\266\343\200\213/index.html" +++ /dev/null @@ -1,359 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 《黑客与画家》 - 序员乱翻书 - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
-
-

- - 《黑客与画家》 - -

- - -
- - - - -
- -

很早就看了这本书,但是只看了一半。回家过完今年,初六夜里一点返程,初七早五点半抵达上海。

-

然后就开始看剩下的一半,算是匆匆看完,还要再看一遍进行消化。= =

- - -
- - - - - -
- - - -
- - - - - - - - - - - -
- - -
- -
- -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/2017/02/12/\343\200\212\345\257\214\347\210\270\347\210\270\347\251\267\347\210\270\347\210\270\343\200\213/index.html" "b/2017/02/12/\343\200\212\345\257\214\347\210\270\347\210\270\347\251\267\347\210\270\347\210\270\343\200\213/index.html" deleted file mode 100644 index 9a21b7d..0000000 --- "a/2017/02/12/\343\200\212\345\257\214\347\210\270\347\210\270\347\251\267\347\210\270\347\210\270\343\200\213/index.html" +++ /dev/null @@ -1,475 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 《富爸爸穷爸爸》 - 序员乱翻书 - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
-
-

- - 《富爸爸穷爸爸》 - -

- - -
- - - - -
- -

这本书记得初中或者高中时候,就已经在集市的地摊上被我买回了家。只是看了开头,这次是朋友的推荐,利用周末两天一口气看完。

-

只能摘抄些句子,来提醒自己这些观念,批判的去看待。大多数人一生都在追求工资、加薪和职业保障,从来不问这种感情支配思想的生活之路通向哪里。就像下面的这头驴子,我也是其中一员:

-
-

驴子拉车,因为主人在它面前挂了个胡萝卜。主人清楚自己要去哪里,而驴子却只是在追逐一个幻想。但是第二天驴子依旧会去拉车,因为又有胡萝卜放在它的面前。

-
- -
    -
  • 其他书中的观念:
    -

    认为学校的教育能使你的孩子在毕业后准备好应对现实生活也是愚蠢的。每个孩子都需要得到更多的、不同的教育,他们得知道真实生活中的游戏规则,各种不同的规则。

    -
    -
  • -
-
-

当我幻想新棒球手套、糖果和玩具时,就像那头驴子和它面前的胡萝卜一样
(房子、车子就像小时候的棒球手套、糖果和玩具,是负债)

-
-
-

钱就是驴子面前的胡萝卜,是幻象。如果驴子能了解到全部事实,他坑你会重新想想是否还要去追求胡萝卜。

-
-
-

你们越快忘记你们的工资,你们未来的生活就会越轻松,继续用你们的头脑思考,不求回报的工作,很快就会发现比拿工资更挣钱的方法。你们会看到别人看不见的东西。机会就摆在人们面前,但是大多数人从来看不到这些机会,因为他们忙着追求金钱和安定,所以只能得到这些。

-
-
-

如果你们看到一个机会,就注定你们会在一生中不断发现机会。

-
-
-

重要的不是你挣了多少钱,而是你能留下多少钱,以及能够留住多久。

-
-
-

对成年人而言,把支出保持在低水平、减少借款并勤劳地工作会帮你打下一个稳固的资产基础。

-
-
-

拥有理财能力就意味着拥有更多的选择机会。如果机会并没按你的预想降临,那么你还能做点什么来改善自己的财务状况呢?如果机会来临了,你却没有钱,银行也不帮你,那你又该做些什么来利用这一机会是自己受益呢?如果你的预计的事情并没有发生,你又如何将一笔小钱变成数百万美元?这就是理财能力。
(就像我预想工作满一年会涨工资一样,虽然我不知道能涨多少,工资会不会达到10k以上。实际上预计的涨工资并没有发生。)

-
-
-

每当我听到某人对我说“在这你不能这么做”时,我就会提醒他们,也许正确的说法应该是:“其实,我不知道在这儿该如何做这个。”

-
-
-

理财能手必备三种技能:1. 如何寻找其他人都忽视的机会 2. 如何增加资金 3.怎样把精明的人组织起来。

-
-
-

当涉及钱的时候,只有一项技能的人不得不努力工作。

-
-
-

富爸爸认为如果要破产的话,一定要在30岁以前,他的建议是“这样你还有时间东山再起”。
(现在27岁,完全可以接受朋友的邀约,回郑州一起创业,还来得及去失败。)

-
-
-

如果你知道自己在某一问题上有所欠缺,你就应该找一位本领域的专家或是一本相关的书,马上开始教育自己。

-
-
-

在积累财富的过程中,最困难的事情莫过于坚持自己的选择而不盲目从众。因为在竞争激烈的市场上,群体往往会反应迟钝,成为被“宰割”的对象。

-
-
-

能否自律是将富人、穷人和中产阶级分开来的首要因素。

-
-
-

我跟随沃伦·巴菲特的选择进行投资,还阅读所有我能找到的他对市场看法的文章;我阅读彼得·林奇的书,以弄懂他怎样选股;我还读了唐纳德·川普的书,试图发现他谈判和组成交易的技巧。

-
-
-

当涉及金钱、爱情、幸福、销售和合约等时,都应记住要为自己想要的东西先付出,然后才能得到加倍的回报。

-
-
-

记住,做买卖就是一场有趣的游戏。你提出报价之后,可能对方就会说:“成交。”

-
-
-

金钱是一种观念,如果你想要更多的钱,只需要改变你的思想。

-
-
-

有关金钱的教育和智慧是非常重要的。早点动手,买一本好书,参加一些有用的研讨班,然后付诸实践,从小笔金额做起。

-
-
    -
  • 一个概念:

    -
      -
    • 财商:
        -
      • 会计(财务知识)
      • -
      • 投资(钱生钱的科学)
      • -
      • 了解市场(供给与需求的科学)
      • -
      • 法律(了解减税优惠政策和公司法的人会比雇员和小业主更快致富)
      • -
      -
    • -
    -
  • -
  • 四个人:

    -
      -
    • 彼得·林奇
    • -
    • 唐纳德·川普
    • -
    • 巴菲特
    • -
    • 索罗斯
    • -
    -
  • -
  • 三个方面的知识:

    -
      -
    • 为报纸撰稿的年轻女记者:广告文案和销售,学到成功的广告中运用的“用几秒钟交流”的技巧。
    • -
    • 成功所必需的管理技能包括:
        -
      1. 对现金流的管理
      2. -
      3. 对系统(包括你本人、时间及家庭)的管理
      4. -
      5. 对人员的管理
        最重要的专门技能是销售和对市场营销的理解。销售技能是个人成功的基本技能,它涉及与他们交往,包括与顾客、雇员、老板、配偶和孩子。而沟通能力,如书面表达、口头表达及谈判能力等对一个人的成功来说更是至关重要。我就是通过学习各种课程、听教学磁带等来扩展知识并不断提高自己的这一技能的。
      6. -
      -
    • -
    • 开创事业所必备的最重要的3中管理技巧:
        -
      1. 现金流管理
      2. -
      3. 人事管理
      4. -
      5. 个人时间管理
      6. -
      -
    • -
    -
  • -
  • 五本书:
    《开公司致富》(对私营公司所具有的能力提供了很好的看法)
    《巴比伦最富有的人》(一书在讲自律和坚毅的力量)
    《收益率达到16%的方法》 乔尔·莫斯科维茨
    《称雄华尔街》彼得·林奇 (介绍选择有升值潜力股的方法)
    《思考致富》(金钱是一种观念,而不是努力工作致富)

    -
  • -
  • 三个问题:

    -
      -
    1. 你终日忙碌的目的是什么?
    2. -
    3. 这样辛苦的工作到头来究竟是为了什么?
    4. -
    5. 未来的日子又会怎么样?
    6. -
    -
  • -
  • 资产负债表

    -
  • -
- - -
- - - - - -
- - - -
- - - - - - - - - - - -
- - -
- -
- -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/2017/02/17/\343\200\212\344\271\246\351\203\275\344\270\215\344\274\232\350\257\273\357\274\214\344\275\240\350\277\230\346\203\263\346\210\220\345\212\237\343\200\213/index.html" "b/2017/02/17/\343\200\212\344\271\246\351\203\275\344\270\215\344\274\232\350\257\273\357\274\214\344\275\240\350\277\230\346\203\263\346\210\220\345\212\237\343\200\213/index.html" deleted file mode 100644 index 8f4ca51..0000000 --- "a/2017/02/17/\343\200\212\344\271\246\351\203\275\344\270\215\344\274\232\350\257\273\357\274\214\344\275\240\350\277\230\346\203\263\346\210\220\345\212\237\343\200\213/index.html" +++ /dev/null @@ -1,361 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 《书都不会读,你还想成功》 - 序员乱翻书 - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
-
-

- - 《书都不会读,你还想成功》 - -

- - -
- - - - -
- -

豆瓣评分 7.2
https://book.douban.com/subject/21364188/

-

使用微信阅读读完,微信阅读的阅读体验比kindle好。

-

前段时间看了篇文章《电子书未火,Kindle已老?》http://mp.weixin.qq.com/s/EB53NluRs_qtjkyGwVya_Q

-

是的,kindle差交互,微信阅读甚至还有社交。

- - -
- - - - - -
- - - -
- - - - - - - - - - - -
- - -
- -
- -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/2017/02/17/\343\200\212\351\207\215\346\226\260\345\256\232\344\275\215\343\200\213/index.html" "b/2017/02/17/\343\200\212\351\207\215\346\226\260\345\256\232\344\275\215\343\200\213/index.html" deleted file mode 100644 index 1be40f6..0000000 --- "a/2017/02/17/\343\200\212\351\207\215\346\226\260\345\256\232\344\275\215\343\200\213/index.html" +++ /dev/null @@ -1,358 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 《重新定位》 - 序员乱翻书 - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
-
-

- - 《重新定位》 - -

- - -
- - - - -
- -

豆瓣评分 7.3
https://book.douban.com/subject/6536667/
在京东上买的,看的很快,大概三天时间看完。
接着在看《一个广告人的自白》,突然发现这本书开篇竟然也有《重新定位》关于品牌的概念。

- - -
- - - - - -
- - - -
- - - - - - - - - - - -
- - -
- -
- -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/2017/02/19/\344\270\212\346\265\267\347\254\254\345\215\201\344\270\200\345\261\212\345\217\214\345\271\264\345\261\225/index.html" "b/2017/02/19/\344\270\212\346\265\267\347\254\254\345\215\201\344\270\200\345\261\212\345\217\214\345\271\264\345\261\225/index.html" deleted file mode 100644 index 69e56b4..0000000 --- "a/2017/02/19/\344\270\212\346\265\267\347\254\254\345\215\201\344\270\200\345\261\212\345\217\214\345\271\264\345\261\225/index.html" +++ /dev/null @@ -1,361 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 上海第十一届双年展 - 序员乱翻书 - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
-
-

- - 上海第十一届双年展 - -

- - -
- - - - -
- -

主题《何不再问?正辩,反辩,故事》
这是上海双年展的官网,3月12号结束,周二免费,趁着还没有结束,去看看吧。
http://shanghaibiennale.org/cn/page/detail/308cw.htm

-

收获了一张已经检过的门票,导购册一本,以及how to visit a museum。

-

导购册还是要看一遍,因为上面包含了展览的内容。

- - - -
- - - - - -
- - - -
- - - - - - - - - - - -
- - -
- -
- -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/2017/02/25/\351\201\277\345\205\215\346\267\267\346\267\206\345\234\250\345\274\200\345\217\221\344\270\255\345\270\246\346\235\245\347\232\204\345\235\221/index.html" "b/2017/02/25/\351\201\277\345\205\215\346\267\267\346\267\206\345\234\250\345\274\200\345\217\221\344\270\255\345\270\246\346\235\245\347\232\204\345\235\221/index.html" deleted file mode 100644 index 3057fba..0000000 --- "a/2017/02/25/\351\201\277\345\205\215\346\267\267\346\267\206\345\234\250\345\274\200\345\217\221\344\270\255\345\270\246\346\235\245\347\232\204\345\235\221/index.html" +++ /dev/null @@ -1,379 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 避免混淆在开发中带来的坑 - 序员乱翻书 - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
-
-

- - 避免混淆在开发中带来的坑 - -

- - -
- - - - -
- -

每次代码写完,debug没有问题,测试人员一旦打包好beta分支,总是会出现因为混淆导致数据错误的情况。比如封装好的支付模块,debug没问题,但是打包好的却会出现支付返回的类的字段成了null。把混淆关掉,问题就好了。

- -

从做的第一个项目开始到现在,已经过去整整一年多了。因为混淆的问题,在演示或者product版本使用的时候,频繁出现功能不正常的情况。今天写下篇文章,一定要痛定思痛,吸取经验教训,不能再犯这样的错误了。

-

一个项目的开发总共有三个环境

-
    -
  1. alpha:开发
  2. -
  3. beta(demo):用于演示和测试
  4. -
  5. product:生产环境
  6. -
-

问题来了,究竟应该怎么去避免debug没问题,打包测试或者product就出现问题

-
    -
  • 开发人员
    本地配置打包环境,debug测试没问题后,一定要自己本地打包测试,确认没有问题,再提交代码
    试人员测试。
  • -
  • 测试人员
    打包后,使用beta版本测试,并且测试app的所有功能,千万不能只测试修改的部分。这样测试人员能够及早发现因为混淆导致的功能不正常的bug。
  • -
-

由于混淆导致的问题应该坚决杜绝,因为混淆打包的问题,已经严重的影响了演示、产品的部署,肯定已经达到了领导的忍耐极限,也达到了我的忍耐极限。= =

-

修改代码后务必做到以下步骤:

-
    -
  1. debug测试
  2. -
  3. 本地打包测试
  4. -
  5. 提交代码
  6. -
-

运维人员应该注意的问题
发布更新alpha环境后,beta环境的发布一定要从alpha同步过来,product环境的发布一定要从beta同步过来。
这样才能保证beta环境测试没有问题后,product同样没有问题。

- - -
- - - - - -
- - - -
- - - - - - - - - - - -
- - -
- -
- -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/2017/03/03/\343\200\212\345\255\246\344\274\232\346\217\220\351\227\256\343\200\213/index.html" "b/2017/03/03/\343\200\212\345\255\246\344\274\232\346\217\220\351\227\256\343\200\213/index.html" deleted file mode 100644 index da8c299..0000000 --- "a/2017/03/03/\343\200\212\345\255\246\344\274\232\346\217\220\351\227\256\343\200\213/index.html" +++ /dev/null @@ -1,359 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 《学会提问》 - 序员乱翻书 - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
-
-

- - 《学会提问》 - -

- - -
- - - - -
- -

豆瓣评分 8.4

-

https://book.douban.com/subject/20428922/

- - -
- - - - - -
- - - -
- - - - - - - - - - - -
- - -
- -
- -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/2017/03/06/\343\200\212\346\265\252\346\275\256\344\271\213\345\267\205\343\200\213\347\254\254\344\270\211\347\211\210-\344\270\213\345\206\214/index.html" "b/2017/03/06/\343\200\212\346\265\252\346\275\256\344\271\213\345\267\205\343\200\213\347\254\254\344\270\211\347\211\210-\344\270\213\345\206\214/index.html" deleted file mode 100644 index 997d59e..0000000 --- "a/2017/03/06/\343\200\212\346\265\252\346\275\256\344\271\213\345\267\205\343\200\213\347\254\254\344\270\211\347\211\210-\344\270\213\345\206\214/index.html" +++ /dev/null @@ -1,359 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 《浪潮之巅》第三版 下册 - 序员乱翻书 - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
-
-

- - 《浪潮之巅》第三版 下册 - -

- - -
- - - - -
- -

豆瓣评分9.1
https://book.douban.com/subject/6709783/

-

周末两天,把下册一口气读完,对于科技和互联网企业有了进一步的认识。

- - -
- - - - - -
- - - -
- - - - - - - - - - - -
- - -
- -
- -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/2017/03/12/2017\344\270\212\346\265\267\350\256\276\350\256\241\345\261\225/index.html" "b/2017/03/12/2017\344\270\212\346\265\267\350\256\276\350\256\241\345\261\225/index.html" deleted file mode 100644 index 4fd285e..0000000 --- "a/2017/03/12/2017\344\270\212\346\265\267\350\256\276\350\256\241\345\261\225/index.html" +++ /dev/null @@ -1,368 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 2017上海设计展 - 序员乱翻书 - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
-
-

- - 2017上海设计展 - -

- - -
- - - - -
- -

展会地点:上海
展会展馆:上海展览中心(SEC)
展会周期:一年一届
相关行业:建筑结构、家居陈列 、装饰、家具与设计

-

主要是上次去看了十一届双年展,觉得挺不错。虽然看不懂,也没有去总结,还是想着去看看吧。
这周六刚好最后一天,去主要是想看家具陈列,家具与设计。

- -

展区图:

-

-

尴尬的以为是两个布局一样的展区,却原来是上下两层。

-

现场只能用人山人海,摩肩接踵来形容了。

-

喜欢这个书架:

-

-

早上打算去的时候,瓦格拉已经停止售票了。给瓦格拉客服打电话,给了个现场的电话,打了很多次却一直占线。只好去现场碰运气买票。现场购票没有售票员,采用微信扫码、注册、问卷调查、选票、支付这几个步骤,才能辛苦买到普通票(220元),导致大门外都是黄牛。

-

有没有景区导航或者展区室内导航的应用,这样就能有效规划脚程了。

- - -
- - - - - -
- - - -
- - - - - - - - - - - -
- - -
- -
- -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/2017/03/19/\343\200\212\351\207\221\350\211\262\346\242\246\344\271\241\343\200\213\344\274\212\345\235\202\345\271\270\345\244\252\351\203\216/index.html" "b/2017/03/19/\343\200\212\351\207\221\350\211\262\346\242\246\344\271\241\343\200\213\344\274\212\345\235\202\345\271\270\345\244\252\351\203\216/index.html" deleted file mode 100644 index bbeab7b..0000000 --- "a/2017/03/19/\343\200\212\351\207\221\350\211\262\346\242\246\344\271\241\343\200\213\344\274\212\345\235\202\345\271\270\345\244\252\351\203\216/index.html" +++ /dev/null @@ -1,361 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 《金色梦乡》伊坂幸太郎 - 序员乱翻书 - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
-
-

- - 《金色梦乡》伊坂幸太郎 - -

- - -
- - - - -
- -

读完需要1分钟
豆瓣评分9.0
https://book.douban.com/subject/26864984/
中文版序中提到:“我习惯以悲观的角度看待事情,对于美好圆满的结局有些抵触心理……于是我选择了一个折中的方案,决定去写’在悲观的舞台上努力活下去的故事’。以好莱坞电影娱乐小说为目标的《金色梦乡》,或许也受到了这种想法的影响”。

书的最后有一篇文字《幸福的想象 独立的文学》讲到“正如伊坂自己所说,他一直以来只写一件事,那就是如何在无奈之中找寻希望,如何在一个万分消极的世界中积极地展望未来”。

-
-

轰叔扬扬自得地说道,”你们看那些烟火,总有不同的人在不同的地方观看。或许他们在眼前绽放的瞬间,某个老朋友也正在某处眺望着同样的景色—想到这些不是很快乐吗?而那个老朋友一定也正想着同样的事情。我一直这样觉得“
如果在纸上画一条直线,代表从大学开始到现在为止的那些岁月,樋口晴子现在的感觉就好像纸对折了,直线的两端连在一起,时光的距离一下子无限缩短,眼前仿佛见到了第一次在社团活动上露面的阿一。
青柳。她想到。在这片淋漓尽致的蓝天下,在脚下的大地延伸所至的某个角落,他正藏头掩面、奋力逃窜?那幅画面是多么的不真实啊。

-
- - -
- - - - - -
- - - -
- - - - - - - - - - - -
- - -
- -
- -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/2017/04/22/17\345\271\264\346\230\245\357\274\214\345\217\221\347\224\237\344\272\206\350\256\270\345\244\232\344\272\213/index.html" "b/2017/04/22/17\345\271\264\346\230\245\357\274\214\345\217\221\347\224\237\344\272\206\350\256\270\345\244\232\344\272\213/index.html" deleted file mode 100644 index 0ca88d9..0000000 --- "a/2017/04/22/17\345\271\264\346\230\245\357\274\214\345\217\221\347\224\237\344\272\206\350\256\270\345\244\232\344\272\213/index.html" +++ /dev/null @@ -1,382 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 17年春二三事 - 序员乱翻书 - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
-
-

- - 17年春二三事 - -

- - -
- - - - -
- -
    -
  • 二房东回了家乡
  • -
-

16年11月份左右,李婶他们一家回家呆了近两周左右,给在上海工作的大儿子买了一套房,在他们市里。他们希望自己的大儿子工作一段时间后,回家结婚。

-

16年6月份开始,租住在不足10平米的地方,遇见了这里的二房东。是一对夫妇,听叔说,他们已经在上海呆了13年之久了。年前,李婶说菜市场明年3-5月份要装修,那时候就要回老家山东了,于是就有了开头的买房。临走前,叔请了续租的亲戚到住的地方吃饭,那是晚上了,突然邀请我过去喝酒。我不好意思的推脱了,应该有半年不喝酒了吧。

-

在上海做了十几年生意的夫妇,回到了家乡,给儿子买了房,等着儿子结婚呢。

- -
    -
  • 公司发展的并不好
  • -
-

15年8月份进入这家公司,到17年4月份,竟然要两年了。

-

上海这边的研发中心总共有四个开发,一个技术总监,一个A负责后台接口,一个C负责管理后台界面,一个D负责app,全部都是资深工程师。我进去后,开始做app部分的工作。

-

我进来后,陆陆续续又招进来一个运维E,一个java工程师F,一个android开发工程师K,应该都是应届毕业生。后台又招进来两个测试人员L和H,一个实习生Z。

-

今年4月份,因为公司效益不好,公司辞退了A,D和F。了解公司情况后,E和K都向公司提出了离职。等他们离职办完离开了公司,测试人员L因为压力太大,也提出了离职。而测试人员H,因为刚毕业,还想着去进一步培训前端开发。

-

到现在,上海这边只剩下一个技术总监,测试人员H,实习生Z,和我。C算是公司内部创业,开了自己的公司,做外包。

-

去年因为没涨工资,不好意思回家。回到家问起工资,只能实话实说,然后在家工作的劝我回家,在外的劝我赶紧跳槽。

-

还没想好,在这个城市留下来,太难了,主要还是因为自己工资低呀。

-
    -
  • 其它
  • -
-

去年,大学的几个同学,都已经结婚,有的已经有了小孩儿。

-

5月6号刚好周六,回家去参加高中好友7号的婚礼。

-

7是个好数字呢,期待祝福,有情人终修成正果。

-

——————————————————

-

现在经常用微信阅读读书,读得久了,屏幕上方就会提示:“前路虽长,尤可期许”,感觉说的就是我现在的生活。

- - -
- - - - - -
- - - -
- - - - - - - - - - - -
- - -
- -
- -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/2017/04/22/\343\200\212\344\270\200\344\270\252\345\271\277\345\221\212\344\272\272\347\232\204\350\207\252\347\231\275\343\200\213\345\244\247\345\215\253\302\267\345\245\245\346\240\274\345\250\201/index.html" "b/2017/04/22/\343\200\212\344\270\200\344\270\252\345\271\277\345\221\212\344\272\272\347\232\204\350\207\252\347\231\275\343\200\213\345\244\247\345\215\253\302\267\345\245\245\346\240\274\345\250\201/index.html" deleted file mode 100644 index b7793d3..0000000 --- "a/2017/04/22/\343\200\212\344\270\200\344\270\252\345\271\277\345\221\212\344\272\272\347\232\204\350\207\252\347\231\275\343\200\213\345\244\247\345\215\253\302\267\345\245\245\346\240\274\345\250\201/index.html" +++ /dev/null @@ -1,431 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 《一个广告人的自白》大卫·奥格威 - 序员乱翻书 - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
-
-

- - 《一个广告人的自白》大卫·奥格威 - -

- - -
- - - -
-

文章目录

-
-
  1. 第一章 怎样经营广告公司
  2. 第二章 怎样争取客户
  3. 第三章 怎样维系客户
  4. 第四章 怎样当一个好客户
  5. 第五章 怎样创作高水平的广告
  6. 第六章 怎样写有效力的文案
  7. 第七章 怎样使用插图和编排文案
  8. 第八章 怎样制作上乘的电视广告
  9. 第九章 怎样为食品、旅游地和专利药品制作优良广告
  10. 第十章 怎样才能功成名就——对年轻人的进言
  11. 第十一章 广告是否应予废止
-
-
- - -
- -

奥美集团亚太区董事长序
中国正在经历着全球有史以来最短时间内最大规模的品牌创建运动。(商业和个人,而个人品牌的崛起,也正是为了商业)
以我们的经验来看,中国消费者乐于识别品牌的“无形特性”,而且,与一些外国学者的看法相反,他们也非常乐于同自己喜欢的品牌建立密切的关系。(小米论坛等)

- -

奥美大中华区董事长序
会讲道理的人不少,讲得好的却不多。D.O.(大卫·奥格威)写了4本书,可以说概括了广告的方方面面。
如果你看了这本书还想进来或继续做下去,那显然,你的脑袋或血液中,有些部分是与众不同的。阅读奥格威
他如是总结自己进入广告业前丰富得稍显杂乱的前半生:“他今年38岁,失业。大学中途辍学,做过厨师、推销员、外交官,也当过农夫。他完全不懂营销,也不曾写过任何广告文案。但他自称有志于广告,希望在这一行闯出一番事业(以38岁的年龄),而且也准备接受一年5000美元的薪水。
”正如奥格威所说:“消费者购买的东西仍然是广告向他们允诺的那些值得花钱买下的东西,那些有营养、那些美味可口、那些修眉后者那些可消除头痛或者别的什么病痛的东西,那些适合他们社会地位的东西。这在世界任何一个国家都一样正确。”
这其实也是一本写给广告主的书,而且奥格威的本意也是如此。奥格威大概是唯一一个向他的客户和未来的客户坦承自己如何经营广告公司、怎样争取客户、怎样维系客户。并且毫不客气的告诉对方怎样当一个好客户的广告人。
“俄罗斯套娃”的比喻:如果你经常雇佣比你弱小的人,将来我们就会变成一家侏儒公司。相反的,如果你每次都雇佣比你强大的人,日后我们必定成为一家巨人公司。
奥格威只以一句话就奠定了他“品牌形象之父”的地位——“品牌指的是个性”,形象、透辟、直指人们消费品牌的本质。每一个广告都是为建立品牌个性所作的长期投资。
为1991年中文版序
原则和技术可以放之四海而皆准,对原则和技术的解释和实施则会因为各国的经济、社会和文化背景的差异而有所不同。而中国的经济、社会和文化背景在许多地方都是很独特的。

-

第一章 怎样经营广告公司

主要讲奥格威在巴黎美琪饭店当厨师时学到的经验。效仿皮塔师傅的榜样,偶尔亲自动手撰写广告,以提醒我的广告文案撰稿人队伍,我的手写出来的东西还是很管用的。今天我像皮塔先生那样,很少夸奖我的部属,希望他们会比受到没完没了的夸奖更懂得受到赞扬的可贵。让员工见识大场面,增强使命感。在第一流的企业里,一定要信守诺言,不管要费多少神,加多少班。今天,我怕严格要求的我的志愿保持他们办公室桌的整洁。乱七八糟的办公室会产生一种懒散的气氛,使机密文件容易丢失。如果你能让你的客户感到你是不可或缺的,你就永远保住了你的工作。广告是文字性的行业,但在广告公司里却充斥着不能写作的男女。

-

第二章 怎样争取客户

第三章 怎样维系客户

第四章 怎样当一个好客户

第五章 怎样创作高水平的广告

广告佳作是不引公众注意它自己就把产品推销掉的作品。它应该把广告诉求对象的注意力引向产品。好广告要诉求对象说的不是:“多妙的广告啊!”而是:“我从来没有听说过这种产品,我一定要买它来试试。”
我的“神灯”建立于调查研究的基础之上,而调研的信息和数据则有以下五个主要来源:

-
    -
  1. 邮购公司的广告经验
  2. -
    1. -
    2. 研究什么技巧是百货商店成功或者失败
    3. -
    -
  3. -
    1. -
    2. 促使读者阅读广告的因素;使大家记得他们从广告里读到了些什么东西的因素。
    3. -
    -
  4. -
    1. -
    2. 对电视的认真调查
    3. -
    -
  5. -
    1. -
    2. 应用别人智慧的成果,应用我的先辈和竞争者对的智力活动的成果是最有效的。
    3. -
    -
  6. -
-

奥美公司11条戒律:

-
    -
  1. 广告内容比表现内容的方法重要
  2. -
  3. 若是你的广告的基础不是上乘的创意,它必遭失败
  4. -
  5. 讲事实消费者不是低能儿,她们是你的妻女。
  6. -
  7. 令人厌烦的广告是不能促使人买东西的
  8. -
  9. 举止彬彬有礼,但不装模作样
  10. -
  11. 使你的广告具有现代意识
  12. -
  13. 委员会可以批评广告,却不会写广告
  14. -
  15. 若是你运气好,创作了一则很好的广告,就不妨重复地使用它,直到它的号召力减退
  16. -
  17. 千万不要写那种你不愿让你的家人看的广告
  18. -
  19. 形象和品牌每一则广告都应该看成是对品牌形象这种复杂现象在做贡献。
  20. -
  21. 不要当文抄公
  22. -
-

第六章 怎样写有效力的文案

    -
  • 标题
    标题是大多数平面广告最重要的部分。它是决定读者是不是读正文的关键。
    读标题的人平均为读正文的人的5倍。换句话说,标题代表着为一则广告所花费用的80%。
  • -
-
    -
  1. 标题好比商品价码标签,用它来想你的潜在买主打招呼
  2. -
  3. 每个标题都应带出产品给潜在买主自身利益的承诺
  4. -
  5. 始终注意在标题中加进新的信息,因为消费者总是在寻找新产品或者老产品的新用法,或者老产品的新改进。
  6. -
  7. 使用其它会产生好影响的字眼
  8. -
  9. 至少应该告诉浏览者,广告宣传的是什么品牌
  10. -
  11. 在标题中写进你的销售承诺
  12. -
  13. 标题若能引起读者的好奇心,他们很可能就会去读你的广告正文
  14. -
  15. 你的标题必须以电报式文体讲清你要讲的东西,文字要简洁、直截了当。不要和读者捉迷藏
  16. -
  17. 调查表明,在标题中写否定词是很危险的
  18. -
  19. 避免使用有字无实的瞎标题
  20. -
-
    -
  • 正文
  • -
-
    -
  1. 不要旁敲侧击——要直截了当
  2. -
  3. 不要用最高级形容词、一般化字眼和陈词滥调。要有所指,而且要实事求是。要热忱、友善并且使人难以忘怀。把事实讲得引人入胜
  4. -
  5. 你应该常在你的文案中使用用户的经验之谈
  6. -
  7. 另一种很有利的窍门是向读者提供有用的咨询或者服务
  8. -
  9. 我从未欣赏过文学派的广告。精雕细刻的笔法会喧宾夺主的把对广告主题的注意力攫取走
  10. -
  11. 避免唱高调
  12. -
  13. 避免在广告里使用严肃、庄重的字,除非有特别的原因。一则好的广告和戏剧、讲演都有一个共同点,即使人一看便知,一听即晓,直接打动人心。
  14. -
  15. 不要贪图写那种获奖文案。**
  16. -
-

第七章 怎样使用插图和编排文案

第八章 怎样制作上乘的电视广告

第九章 怎样为食品、旅游地和专利药品制作优良广告

第十章 怎样才能功成名就——对年轻人的进言

第十一章 广告是否应予废止

如果一个中国广告人只知道一个外国广告人的名字,他知道的多半会是大卫·奥格威;同样,如果只知道一本广告经典,那本书多半就是《一个广告人的自白》。

- - -
- - - - - -
- - - -
- - - - - - - - - - - -
- - -
- -
- -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/2017/04/22/\343\200\212\351\233\266\345\224\256\347\232\204\346\234\254\350\264\250\343\200\2137-Eleven/index.html" "b/2017/04/22/\343\200\212\351\233\266\345\224\256\347\232\204\346\234\254\350\264\250\343\200\2137-Eleven/index.html" deleted file mode 100644 index 3e15b72..0000000 --- "a/2017/04/22/\343\200\212\351\233\266\345\224\256\347\232\204\346\234\254\350\264\250\343\200\2137-Eleven/index.html" +++ /dev/null @@ -1,401 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 《零售的本质》7-Eleven - 序员乱翻书 - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
-
-

- - 《零售的本质》7-Eleven - -

- - -
- - - -
-

文章目录

-
-
  1. 第一章 铃木敏文对第二商品部有何期望?
  2. 第二章 彻底的优势扩店策略
  3. 第三章 造就40年来日本最大流通业的铃木敏文的经营哲学
  4. 第四章 不模仿他人,7-Eleven网络
  5. 第五章 不断升级的信息系统:7-Eleven是营销公司
  6. 第六章 加盟店和总部是命运共同体:加盟店的严格监督促进总部的自我革新
  7. 第七章 站在顾客的立场上,坚持品质
  8. 第八章 商品创新的追求:创造新型的便利店
  9. 第九章 创造热销商品的流程表和策略联盟
  10. 第十章 创造“又近又方便”的服务
-
-
- - -
- -

7-Eleven B2B共享经济体
7—Eleven 铃木式经营哲学“彻底站在顾客的立场上来思考和实践”
经历着有传统百货向“生活中心化”体验平台的变革。
7-Eleven 共享经济学

-
    -
  1. 从利益共同体到命运共同体
    共享是互联网精神最本原的东西,资源的价值不在于拥有,而在于使用,只有使用才能体现资源的价值。通过两权(所有权和使用权)的分离、大数据智能算法和存量激活,我们就可以极好地实现共享经济价值的最大化。
  2. -
- -
    -
  1. 三峡大坝效应
    7-Eleven 将工厂、配送中心和加盟店与总部结尾命运共同体,前者的利益就是后者的利益,后者的革新则与前者的成果直接相关。
  2. -
  3. 小店赋能
    “对加盟店有最低保证”的承诺条款:假如加盟店的收入没有增加,甚至还低于标准的话,总部会反过来掏腰包填补差额。
    OFC(运营现场指导),帮助门店一起成长。
    每两周会议,重视加盟店经营相关的信息及沟通。
  4. -
  5. 信息就是生命
    信息系统的升级及更新
    “即使拥有店铺和卖场、持有工厂或生产设备,具备物流设施,掌握了充足的人手,但是如果不知道该卖什么、该怎么卖、该卖多少量、该在什么时机卖、该卖给谁、该如何提高人的产值,那么就算万事俱备,也是白搭。”
    产品是王道。
  6. -
  7. 顾客立场就是用户思维
    铃木先生提出实行单品管理,掌握天气营销,重视信息和数据,重视机会损失。
    一切都彻底站在顾客的立场来思考和实践。
  8. -
  9. 快速迭代:朝令夕改
    “假设、实践、验证”是7-Eleven快速迭代的经验根基。
  10. -
  11. 无知是美好的
    使用毫无经营经验的新人组建第二商品部,必须打破便利店过去的固定观念、既有概念和常识。
  12. -
-

销售规划:
厂商和流通业主根据市场调查对适销商品的开发、价格、数量和销售方式制定计划。商品经营力:能够持续不断地提供那些打动顾客并获取其支持力度的商品的能力。

-

第一章 铃木敏文对第二商品部有何期望?

打破封闭状态,创造新型便利店。
“又近又方便 ”的新理念 。
最重要的是建立以顾客需求为导向的商品结构:为有需要的人在他需要的时候,提供所需要的商品和服务,并且要超过顾客本身的期望(包括味道、新鲜度、安全、 安心等品质,卖场环境的舒适度以及价格等因素在内),同时真正实现顾客所需。

-

第二章 彻底的优势扩店策略

保持其他同行无法模仿的独特性,实现独一的存在价值

-

第三章 造就40年来日本最大流通业的铃木敏文的经营哲学

“站在顾客的立场 ”而非“为了顾客 ”
建立新的框架,要“创新”而非“改良”
“应对变化”和“落实根本”:
变化:从卖方市场转向买方市场
根本:基本四原则 1 亲切的服务 2 清洁干净 3 品质 4 品类齐全
建立“需求链管理”的架构体统

-

第四章 不模仿他人,7-Eleven网络

创业的原点在于实现不断的进化和创新
7-Eleven的创业动机就是扶持中小型零售商店的存续及兴盛。
策略联盟:六大共享化原则

-
    -
  1. 观念、理念、思想的共有化
  2. -
  3. 具体目标和目的的共有化
  4. -
  5. 顾客的共有化
  6. -
  7. 信息的共有化
  8. -
  9. 系统的共有化
  10. -
  11. 成果的共有化
  12. -
-

第五章 不断升级的信息系统:7-Eleven是营销公司

从供应链管理到需求链管理转变,通过互联网技术连接供应商、制造商、门店、物流配送和经营者。

-

第六章 加盟店和总部是命运共同体:加盟店的严格监督促进总部的自我革新

第七章 站在顾客的立场上,坚持品质

如果能站在顾客的立场上,开发出优质且有价值的商品,就一定能大卖。
开发价值诉求型的自由品牌商品,而非价格诉求型。
化解顾客的不满,其中蕴含着新价值

-

第八章 商品创新的追求:创造新型的便利店

压倒性的差异化
营销:如何挖掘出顾客的潜在需求

-

第九章 创造热销商品的流程表和策略联盟

    -
  • 流程表五个步骤:
    第一阶段,营销
    第二阶段,设定假设
    第三阶段 根据假设,生产出具体的商品
    第四阶段 使买方理解新开发商品的价值诉求和价值传达
    第五阶段 通过市场检验假设是否成立
    应该再加上第六阶段 收集顾客反馈,再返回第一阶段,形成有效的反馈机制,完善商品。

    -

    第十章 创造“又近又方便”的服务

    提供82家机构的行政服务,账单代收业务,外送餐(食品宅送)。
    将一人份或两人份的原料事先清洗并切配处理好(切配前期的工作准备妥当,不会浪费食物),只要依据随商品附上的食谱制作的社区菜原料配送。
    门店自提商品,采取会员登录制,网页和手机订购,可以是自己订购,也可以是为年长的双亲或是在异地生活的孩子订餐,与当地社区的人们形成紧密的关系。
    加盟店为集散中心进行配送。
    融合实体门店和虚拟网络的全渠道策略。

    -
  • -
  • 结语
    日本7-Eleven是用传统产业组织框架无法定义的新体制-网络型商业。
    大众网络包括了以下四项
    第一,据点的大众网络
    第二,信息的大众网络
    第三, 物流和后勤的大众网络
    第四, 人际的大众网络

    -
  • -
  • 后记
    一本书《铃木敏文·经营的原点》
  • -
- - -
- - - - - -
- - - -
- - - - - - - - - - - -
- - -
- -
- -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/2017/04/29/17\345\271\264\344\272\224\344\270\200\345\201\207\346\234\237\350\213\217\345\267\236\344\270\200\346\227\245\346\270\270\350\256\241\345\210\222/index.html" "b/2017/04/29/17\345\271\264\344\272\224\344\270\200\345\201\207\346\234\237\350\213\217\345\267\236\344\270\200\346\227\245\346\270\270\350\256\241\345\210\222/index.html" deleted file mode 100644 index 30f33e0..0000000 --- "a/2017/04/29/17\345\271\264\344\272\224\344\270\200\345\201\207\346\234\237\350\213\217\345\267\236\344\270\200\346\227\245\346\270\270\350\256\241\345\210\222/index.html" +++ /dev/null @@ -1,376 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 17年五一假期苏州一日游计划 - 序员乱翻书 - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
-
-

- - 17年五一假期苏州一日游计划 - -

- - -
- - - - -
- -

时间:2017年4月30号
交通工具:高铁,路程来回共1小时左右。
路线:上海火车站-苏州火车站(苏州市姑苏区苏站路27号)-拙政园(江苏省苏州市姑苏区东北街178号)-虎丘景区(江苏省苏州市姑苏区虎丘山门内8号)-留园(江苏省苏州市姑苏区留园路338号)-苏州火车站- 上海火车站。

- -

苏州火车站-拙政园

-

拙政园-虎丘景区

-

虎门景区-留园

-

留园-苏州火车站

-

为何选这几个地方?参考了驴妈妈,百度百科和其他搜到的苏州一日游计划与攻略。

-

拙政园:天下园林之典范。2017-04-11 - 2017-05-10 第二十一届杜鹃花节

-

虎丘景区:5A级景区,宋代大文豪苏东坡:“到苏州不游虎丘,乃憾事也”。2017-04-25 - 2017-05-07 艺术花会。

-

留园:始建于明万历21年,以园内建筑布局精巧,奇石众多而知名。独具风采、石峰景观。和苏州拙政园、北京颐和园、承德避暑山庄并称中国四大名园。

-

参考链接:

-

驴妈妈:

-

http://ticket.lvmama.com/scenic-100857#jdhd

-

http://ticket.lvmama.com/scenic-102931#jdhd

-

http://ticket.lvmama.com/scenic-100837

-

百度百科:

-

http://t.cn/RXr3BQz

-

http://t.cn/RXr19af

-

http://t.cn/RXr1Rcc

- - -
- - - - - -
- - - -
- - - - - - - - - - - -
- - -
- -
- -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/2018/04/07/180407\346\270\205\346\230\216\350\212\202\346\234\200\345\220\216\344\270\200\345\244\251/index.html" "b/2018/04/07/180407\346\270\205\346\230\216\350\212\202\346\234\200\345\220\216\344\270\200\345\244\251/index.html" deleted file mode 100644 index ad75869..0000000 --- "a/2018/04/07/180407\346\270\205\346\230\216\350\212\202\346\234\200\345\220\216\344\270\200\345\244\251/index.html" +++ /dev/null @@ -1,366 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 180407 - 序员乱翻书 - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
-
-

- - 180407 - -

- - -
- - - - -
- -

今天是清明节放假最后一天,总共做了几件事情:

-

《Node与Express开发》一边看一遍实践,基本完成。

-

需要写一个后台管理端,打算采用Vue.js,确实不太好入门。开始看《Vue.js实战》这本书了,目前看到了第三章。

-

昨天晚上去练习瑜伽,本来今晚也要去,但是去了的话从7点到9点半之间都会被占用。

- -

清明本来打算去某个地方,最后还是作罢。放假那天晚上。我微信问她:“清明有计划去哪里吗?”。并没有收到消息回复。也是,过年来已经过去近两个月了,只在抵达上海的那天,发消息问候了一下,基本就没有怎么联系了。还是怪自己不主动,不过确实,身边真的没有常联系的朋友。

-
-

近两个月了,没有给家里打电话了,确切说是给家人打电话。

-

刚刚拨了妈妈的电话,但是没人接。给妹妹打了电话,意外的妹妹在家。回家参加张元斌的婚礼了,她同学。张恒也订婚了。问了一下妹妹的近况,又和爸爸说了一会儿话。将近30分钟的通话。

- - -
- - - - - -
- - - -
- - - - - - - - - - - -
- - -
- -
- -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/2018/04/19/20180419\344\270\244\344\270\252\351\241\271\347\233\256\346\200\273\347\273\223/index.html" "b/2018/04/19/20180419\344\270\244\344\270\252\351\241\271\347\233\256\346\200\273\347\273\223/index.html" deleted file mode 100644 index b7c0d7f..0000000 --- "a/2018/04/19/20180419\344\270\244\344\270\252\351\241\271\347\233\256\346\200\273\347\273\223/index.html" +++ /dev/null @@ -1,349 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 20180419两个项目总结 - 序员乱翻书 - - -
- -
- - - -
-
- - - -
- - -
-
-
- - - - - -
- -
- -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/2018/05/03/\351\241\271\347\233\256\351\232\276\344\272\247\357\274\214\347\224\237\345\207\272\346\235\245\344\272\206\345\215\264\346\230\257\345\210\253\344\272\272\347\232\204/index.html" "b/2018/05/03/\351\241\271\347\233\256\351\232\276\344\272\247\357\274\214\347\224\237\345\207\272\346\235\245\344\272\206\345\215\264\346\230\257\345\210\253\344\272\272\347\232\204/index.html" deleted file mode 100644 index 45daf1a..0000000 --- "a/2018/05/03/\351\241\271\347\233\256\351\232\276\344\272\247\357\274\214\347\224\237\345\207\272\346\235\245\344\272\206\345\215\264\346\230\257\345\210\253\344\272\272\347\232\204/index.html" +++ /dev/null @@ -1,384 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 项目难产,生出来了却是别人的 - 序员乱翻书 - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
-
-

- - 项目难产,生出来了却是别人的 - -

- - -
- - - - -
- -

从3月份开始,具体到3月19号左右,投入到J项目做小程序开发。一直到5月初,把项目交接给公司的M团队。

-

为什么要交接,全部都是经验教训。

- -

J项目主要相关人员:J PM,W 后台管理端以及前端接口开发,Z 负责前端小程序开发,以及一些其他售前、商务等相关人员。PS: 开发方面遇到问题,还有公司资深工程师支持。

-

J项目共有三个小程序需要开发:一个资讯展示用户留资,一个问答游戏,一个资讯展示用户留资+问答游戏。

-

3月初,项目团队新招一个PM ,J进入我们团队。J进来后直接就开始负责J项目,主要工作就是内外沟通协调,和客户确认需求,给开发安排开发任务,实时把控项目进度,保证项目按时交付。

-

以下是整个项目过程中的几个片段

-

片段一

-

一次,Z和J去客户公司开会,沟通其中一个小程序的UE相关内容。双方人员就位后,PM的电脑,从开机到打开UE文件,用了将近20分钟左右,整个过程很是尴尬。主要原因是电脑已经用了好几年,配置略低。打开UE之后,PM开始讲解UE的相关流程和idea。打开之后,Z发现里面有好几个地方不太符合小程序的设计规范,

-

总结收获两点:

-

对外

-
    -
  • 明确责任:客户是找你来提供解决方案的,不要重新把问题和责任抛回给客户;该项目团队做的事情,交代给团队,应该客户去做的,一定要和客户沟通清楚,不能把客户该做的事情安排给团队,不然会引起成员的埋怨,不利于团队协作。
  • -
  • 相关领域知识一定要专业:比如这次项目小程序开发,PM几乎对小程序无了解,在做项目的过程中也没有主动去学习了解相关内容。
  • -
  • 回复客户要及时:就算客户提的问题不能立刻得到答案,也一定要回复“请稍等,我这边确认后给您回复”类似这样的话。
  • -
  • 不要和客户起冲突:在任何情况下,客户都是上帝。可以据理力争,但是千万不能在无知和不计较后果的情况下,和客户发生冲突。
  • -
-

对内:

-
    -
  • PM不一定正确,级别高的领导不一定会把控项目的所有细节
  • -
  • 开发进度需要每天汇总,主动汇报给PM,切记主动
  • -
  • PM技术方面、知识储备上面有短板一定要及时给予支持
  • -
  • 项目团队中的成员,当处理事情出现风险的时候,
  • -
  • 项目上有风险,一定要及时告知级别高的领导,让他们给予帮助
  • -
  • -
-

【待完善】

- - -
- - - - - -
- - - -
- - - - - - - - - - - -
- - -
- -
- -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/2018/07/09/\346\227\266\351\227\264\345\244\252\345\277\253\357\274\214\351\202\271\345\223\245\344\271\237\347\273\223\345\251\232\344\272\206/index.html" "b/2018/07/09/\346\227\266\351\227\264\345\244\252\345\277\253\357\274\214\351\202\271\345\223\245\344\271\237\347\273\223\345\251\232\344\272\206/index.html" deleted file mode 100644 index fc392fd..0000000 --- "a/2018/07/09/\346\227\266\351\227\264\345\244\252\345\277\253\357\274\214\351\202\271\345\223\245\344\271\237\347\273\223\345\251\232\344\272\206/index.html" +++ /dev/null @@ -1,366 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 时间太快,邹哥也结婚了 - 序员乱翻书 - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
-
-

- - 时间太快,邹哥也结婚了 - -

- - -
- - - - -
- -

嗯,时间很快。一晃,大学毕业已经4年了,再往前一晃,距离高一已经近11年了。

-

今天大学室友邹哥结婚,在一个美好的,大家过好一个慵懒的周末,新的一周上班的日子。趁哥从济源家里,明哥从出差的上海,返回郑州参加了婚礼。文晓在上海,牧青在北京,我在上海,因为太忙,没能请假前往,甚是遗憾。

-

邹哥应该比我大,也终于见到了嫂子真人的照片。再也不能说邹哥猥琐了,因为终于结婚了。邹哥在大学室友群里说:“有点困惑,竟然真的结婚了。”

- -

我们好像按照年龄排好了队,明哥老大,接着邹哥,下一个结婚的会是我吗?暴汗……

-

已经在上海呆了将近四年了,14年6月份毕业,11月份来上海,现在已经18年7月份了。我以为三年时间就能确定自己究竟是留在这里,还是返回郑州。

-

3年过去了,还是没有回去,也在犹豫,究竟什么时候回去,我还有机会留在这座城市吗?

-

从自学Android开发,到跨平台开发Xamarin,又到原生Android开发,到后台Java开发,再到H5开发,到小程序开发,学了Axure和墨刀做UE。因为似乎一直在做项目的公司,做的东西多又杂,觉得自己一直没有什么积累,比较恼人的一点。

-

挣得钱太少了,不说在上海买房,在郑州什么时候能够买一套房呢?看似又要好多年以后了。

- - -
- - - - - -
- - - -
- - - - - - - - - - - -
- - -
- -
- -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/2018/07/21/\346\210\264\351\241\271\351\223\276\347\232\204\345\245\263\345\255\251/index.html" "b/2018/07/21/\346\210\264\351\241\271\351\223\276\347\232\204\345\245\263\345\255\251/index.html" deleted file mode 100644 index 6c9dde9..0000000 --- "a/2018/07/21/\346\210\264\351\241\271\351\223\276\347\232\204\345\245\263\345\255\251/index.html" +++ /dev/null @@ -1,363 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 戴项链的女孩 - 序员乱翻书 - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
-
-

- - 戴项链的女孩 - -

- - -
- - - - -
- -

记得高中时候遇到过一个女孩,犹如不食人间烟火。文静,微笑时总有两个小小的小酒窝,眼睛像月亮,照亮人的心情。

- -

不知道为什么,面对戴项链或者首饰的女孩,心里一直坚定地以为,她们已经遇到了自己要共度一生的王子。

-

遇见的时候总是太迟,所以,有幸成为朋友,也是荣幸。可,时间这东西,真的带走了很多,包括这些友谊,天长地久。也只怪,不善言辞。

-

上周六下午遇见一个女孩,坐在旁边忍不住安静,就只愿静静看着她言语,她笑,她快乐。这周六晚上又看到她了,在临分开的时候,突然留意到她也是戴的有项链和手饰的。脑海里固执的念头又不断闪现,遇见的晚了,也可能她已经结婚了。

-

究竟要不要主动认识,想了想,悲情主义的交给时间。

- - -
- - - - - -
- - - -
- - - - - - - - - - - -
- - -
- -
- -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/2018/07/29/\343\200\212\346\277\200\350\215\241\345\215\201\345\271\264\357\274\214\346\260\264\345\244\247\351\261\274\345\244\247\343\200\213\345\220\264\346\231\223\346\263\242/index.html" "b/2018/07/29/\343\200\212\346\277\200\350\215\241\345\215\201\345\271\264\357\274\214\346\260\264\345\244\247\351\261\274\345\244\247\343\200\213\345\220\264\346\231\223\346\263\242/index.html" deleted file mode 100644 index 47f9de3..0000000 --- "a/2018/07/29/\343\200\212\346\277\200\350\215\241\345\215\201\345\271\264\357\274\214\346\260\264\345\244\247\351\261\274\345\244\247\343\200\213\345\220\264\346\231\223\346\263\242/index.html" +++ /dev/null @@ -1,349 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 《激荡十年,水大鱼大》吴晓波 - 序员乱翻书 - - -
- -
- - - -
-
- - - -
- - -
-
-
- - - - - -
- -
- -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/2018/07/29/\345\222\214Jery\346\262\237\351\200\232\346\224\266\350\216\267\344\272\206\344\270\244\347\202\271/index.html" "b/2018/07/29/\345\222\214Jery\346\262\237\351\200\232\346\224\266\350\216\267\344\272\206\344\270\244\347\202\271/index.html" deleted file mode 100644 index 4f08f27..0000000 --- "a/2018/07/29/\345\222\214Jery\346\262\237\351\200\232\346\224\266\350\216\267\344\272\206\344\270\244\347\202\271/index.html" +++ /dev/null @@ -1,367 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 和Jery沟通收获了两点 - 序员乱翻书 - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
-
-

- - 和Jery沟通收获了两点 - -

- - -
- - - - -
- -

比较难得,qq语音了将近45分钟,先说了目前的概况,然后又讲了个人职业发展方向的问题,有两点很受启发。

- -

1)领导布置一项任务下来,个人评估能完成90%或者80%,甚至就算能达到领导要求的100%。也要为自己预留空间,只能告诉领导自己只能完成到60%-70%的满意度。

-

因为要完成90%,可能需要日夜加班去完成,甚至最好也不一定能达到向领导承诺的90%,更不用说100%。事情在做的过程中,就算是已经很熟悉的流程,难免会遇到意外情况,一定要给自己留足空间。更多的不仅仅是为了自己,也是为了团队的其它成员。

-

话千万不能说满。

-

2)作为技术人员,应该着眼于未来某个时间节点技术大潮的发展,来安排眼下的学习和成长轨迹。

-

职业发展不应该以自己目前做在职位要求为导向。

-

原来地思想是:比如说目前所在团队,个人需要做的内容很多,Android开发、H5、小程序、后台开发,甚至是UE设计。有时候还需要面向客户,所以和别人沟通能力也是迫切需要提高的。针对以上情况,所有需要做的内容,都要去学习,去提高。这是因为在公司就需要以公司的利益为导向,让自己做什么,自己就做什么。毕竟工资是公司发的。但人不可能每一样内容都做得很好,都会有强项和弱项。

-

人应该着眼于未来某个时间点的职业发展需要,比如作为技术人员,人工智能、大数据、区块链在未来肯定是要落地,到时候相关人才会蜂拥而至。如果能很多好的判断未来的技术大潮,并制定眼下的学习计划,当未来时间点到的时候,刚好你又准备好了,你兴许就能赶上这一波技术浪潮,实现人生的超越。

-

就像移动互联网大潮来的时候,毕业大学生拼命的往android和ios培训机构涌去,导致出来了一批又一批竞争者。等真正流行起来开始落地的时候,再去追赶别人重复的脚步,总有不能够到达浪潮的顶端。

- - -
- - - - - -
- - - -
- - - - - - - - - - - -
- - -
- -
- -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/2018/08/01/\345\267\264\350\245\277\346\237\224\346\234\257\344\270\216\347\224\237\346\264\273\345\220\214\344\270\216\344\270\215\345\220\214/index.html" "b/2018/08/01/\345\267\264\350\245\277\346\237\224\346\234\257\344\270\216\347\224\237\346\264\273\345\220\214\344\270\216\344\270\215\345\220\214/index.html" deleted file mode 100644 index 68d5d24..0000000 --- "a/2018/08/01/\345\267\264\350\245\277\346\237\224\346\234\257\344\270\216\347\224\237\346\264\273\345\220\214\344\270\216\344\270\215\345\220\214/index.html" +++ /dev/null @@ -1,349 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 巴西柔术与生活同与不同 - 序员乱翻书 - - -
- -
- - - -
-
- - - -
- - -
-
-
- - - - - -
- -
- -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/2018/08/05/\346\200\216\350\203\275\351\235\240\350\277\221\347\210\261\346\203\205/index.html" "b/2018/08/05/\346\200\216\350\203\275\351\235\240\350\277\221\347\210\261\346\203\205/index.html" deleted file mode 100644 index 9033b0e..0000000 --- "a/2018/08/05/\346\200\216\350\203\275\351\235\240\350\277\221\347\210\261\346\203\205/index.html" +++ /dev/null @@ -1,370 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 怎能靠近爱情 - 序员乱翻书 - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
-
-

- - 怎能靠近爱情 - -

- - -
- - - - -
- -

太容易,因为一点点她的示好,而认为那就是所谓的好感,然后就错以为遇到了爱情。

- -

而只不过,她对所有的朋友都一样。

-

喜欢,亦或者爱情,

-

究竟应该是什么样子。

-

真的还如学生时代那样的青涩和梦幻?

-

要考虑现实,要讲究门当户对,要讲究郎才女貌。

-

但,就像海伦·凯勒的《假如给我三天光明》

-

为何那么不敢就表达?

-

就算一无所获,至少也能让她,明白你的心意。

-

可,你真的懂得喜欢,懂得爱情,

-

准备好去追寻一段感情了吗?

-

你没有答案。

- - -
- - - - - -
- - - -
- - - - - - - - - - - -
- - -
- -
- -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/2018/08/10/\344\270\200\345\221\250\346\227\266\351\227\264\346\230\257\346\200\216\344\271\210\350\277\207\345\216\273\344\272\206/index.html" "b/2018/08/10/\344\270\200\345\221\250\346\227\266\351\227\264\346\230\257\346\200\216\344\271\210\350\277\207\345\216\273\344\272\206/index.html" deleted file mode 100644 index 7b7cc1e..0000000 --- "a/2018/08/10/\344\270\200\345\221\250\346\227\266\351\227\264\346\230\257\346\200\216\344\271\210\350\277\207\345\216\273\344\272\206/index.html" +++ /dev/null @@ -1,369 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 一周时间是怎么过去了 - 序员乱翻书 - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
-
-

- - 一周时间是怎么过去了 - -

- - -
- - - - -
- -

今天是周五,不忙的日子里,这时候肯定还在馆里,可能在拉伸,也可能在躺着休息……

-

到了小区,走在路上,回想这五天的晚上时间究竟去了哪里?努力想,才终于记了起来。

-

训练的道服一直放在公司,只是没有去。

- -

周一:周日中午既然训练了,今天就不去了吧。周日中午去训练,是因为连着两周没训练了。

-

周二:嗯,今天一定要去活动一下,一到将近7点,马上拎着包,出发。走了一会儿,想起今天是拳击,练好以后,再加组力量。

-

周三:周二已经训练了,周四有时间还是去训练力量吧。要为10月份的比赛准备。

-

周四:早上瑜伽微信群里,老师终于旅游回来了,问大家谁来上课。结果晚上去练了瑜伽,加上老师三个人。老师问周五晚上是否回来上课,我回复说周五晚上约了人进行巴西柔术训练。对了,瑜伽练习结束,签到时候,发现上次上课时间是7月8号,已经整整过去一个月了。

-

周五:早上到公司,发现笔记本的机械硬盘找不到了。给领导请了假,跑到微星售后,结果还要预约周日的快修。有可能要更换硬盘,数据需要备份。耽误一早上没工作,晚上只好加班把工作任务补回来,结果没能去训练。

-

晚上的时间,真的就这样过去了。

-

这两周确实会很忙,一个项目增加新功能20号左右要上线,一个项目前端也是20号左右,要能看到演示效果,项目团队周日要加班。

-

欣慰的是,周六可以在馆里待一天,如果晚上也训练的话。

- - -
- - - - - -
- - - -
- - - - - - - - - - - -
- - -
- -
- -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/2018/08/12/\344\270\216\347\210\266\346\257\215\346\262\237\351\200\232/index.html" "b/2018/08/12/\344\270\216\347\210\266\346\257\215\346\262\237\351\200\232/index.html" deleted file mode 100644 index 2a8576b..0000000 --- "a/2018/08/12/\344\270\216\347\210\266\346\257\215\346\262\237\351\200\232/index.html" +++ /dev/null @@ -1,349 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 与父母沟通 - 序员乱翻书 - - -
- -
- - - -
-
- - - -
- - -
-
-
- - - - - -
- -
- -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/2018/08/19/\343\200\212Love\343\200\213-by-Roy-Croft/index.html" "b/2018/08/19/\343\200\212Love\343\200\213-by-Roy-Croft/index.html" deleted file mode 100644 index 8cba92f..0000000 --- "a/2018/08/19/\343\200\212Love\343\200\213-by-Roy-Croft/index.html" +++ /dev/null @@ -1,374 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 《Love》 by Roy Croft - 序员乱翻书 - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
-
-

- - 《Love》 by Roy Croft - -

- - -
- - - - -
- -

在有道百词斩爱阅读里面偶然听到一首英文诗。

-

I love you,   
Not for what you are,   
But for what I am   
When I am with you.

- -

I love you,
Not only for what
You have made of yourself,
But for what
You are making of me.

-

I love you
For the part of me
That you bring out;

-

I love you
For putting your hand
Into my heaped-up heart
And passing over
All the foolish, weak things
That you can’t help
Dimly seeing there,
And for drawing out
Into the light
All the beautiful belongings
That no one else had looked
Quite far enough to find.

-

I love you because you
Are helping me to make
Of the lumber of my life
Not a tavern
But a temple;
Out of the works
Of my every day
Not a reproach
But a song.

-

I love you
Because you have done
More than any creed
Could have done
To make me good
And more than any fate
Could have done
To make me happy.
You have done it
Without a touch,
Without a word,
Without a sign.
You have done it
By being yourself.
Perhaps that is what
Being a friend means,
After all. -  

-
-

《爱》   
罗伊·克里夫特(爱尔兰)   
我爱你,   
不光因为你的样子,   
还因为,   
和你在一起时,我的样子。   

-

我爱你,   
不光因为你为我而做的事,   
还因为,   
为了你,我能做成的事。   

-

我爱你,   
因为你能唤出,   
我最真的那部分。

-

我爱你,   
因为你穿越我心灵的旷野,   
如同阳光穿越水晶般容易。   
我的傻气,我的弱点,   
在你的目光里几乎不存在。   
而我心里最美丽的地方,   
却被你的光芒照得通亮。   

-

别人都不曾费心走那么远,   
别人都觉得寻找太麻烦,   
所以没人发现过我的美丽,   
所以没人到过这里。   

-

我爱你,   
因为你将我的生活化腐朽为神奇。   
因为有你,   
我的生命,   
不再是平凡的旅店,   
而成为了恢弘的庙宇,   
我日复一日的工作里,   
不再充满抱怨,   
而是美妙的旋律。   

-

我爱你,   
因为你比信念更能使我的生活变得无比美好,   
因为你比命运更能使我的生活变得充满欢乐。   
而你做出这一切的一切,   
不费一丝力气,   
一句言辞,   
一个暗示,   
你做出这一切的一切,   
只是因为你就是你,   
毕竟,   
这也许就是朋友的含义。

- - -
- - - - - -
- - - -
- - - - - - - - - - - -
- - -
- -
- -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/2018/08/19/\345\234\260\351\223\201\351\227\250\351\207\214\351\227\250\345\244\226/index.html" "b/2018/08/19/\345\234\260\351\223\201\351\227\250\351\207\214\351\227\250\345\244\226/index.html" deleted file mode 100644 index a77fb22..0000000 --- "a/2018/08/19/\345\234\260\351\223\201\351\227\250\351\207\214\351\227\250\345\244\226/index.html" +++ /dev/null @@ -1,378 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 地铁门里门外 - 序员乱翻书 - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
-
-

- - 地铁门里门外 - -

- - -
- - - - -
- -

在这个城市,我们和人分别说再见,基本都在地铁站。下午返回住的地方的时候,看到一个女孩和她男朋友(应该是吧)一起乘地铁,两人依偎在门边说话。到了长寿路地铁站,男孩先下车,他站在门外等列车通过再走,因为女孩还在车上,他们的终点站不同。男孩在外面低头看着手机,女孩在车内一直望着男孩微笑。直到列车门关上,开出那一站,男孩似乎都没有抬头和女孩说再见。女孩仍然看着男孩微笑,当列车开出走远,她脸上有些落寞的表情闪现,然后拿出红色的无线蓝牙耳机,开始听歌。

-

离开一座城市时,我们会在火车站或者候机室,和你道声珍重与再见。

- -

女孩周六晚上不来训练了

-

周六下午训练结束,安老师问女孩,晚上还来吗?她们说晚上不在。

-

应该是更喜欢有道服柔术,所以才晚上不来的吧。记得她们第一次来是周六,晚上如约出现。有一个周六,晚上仍然出现。后来渐渐周六晚上就见不到她们了。

-

周六下午训练结束,因为和瑜伽老师约了晚上要上课,所以等女孩训练结束走了之后,我也随后回住的地方,等着晚上7点一刻出发去瑜伽老师那里。

-

出门戴耳机

-

原来出门不太带耳机,最近开始也带着耳机。有时候不是为了听歌,只是为了挡住外界的喧哗。

-

社区的保安换了
大概在7月初,周围小区的保安全部换成了年轻的小伙子。早些时候,能够看到小区值班室里,上了年纪的大爷(头发白了)或者叔叔。或看报,或到了夜里出来乘凉。现在已经看不到他们的背影了。

-

高中同学结婚
11年过去了,不能回头。高中的文艺委员,每天中午午休睡醒后领着我们唱歌的男孩,10月6号要结婚了。记得高中刚毕业,同学聚会时候,由于提早去了一天,还在他家住了一晚,聊了一些星星和月亮。
过去的时光,真的只剩下怀念了吗?
那些昔日的同学、朋友、兄弟,时光抛下了我,让我一人在路上狂奔。可,谁不是呢?

-

爱情

-

想写下点关于爱情的东西,在我的爱情观里,什么才是重要的呢?门当户对还是其它?偶然间看到了豆瓣的一篇文章,关于《魅影缝匠》的观后感

-
-

在我有能力爱别人之前,我得先有能力爱自己。

-

用舒服自在的自己爱别人。

-

我们常常会固执的用自己的方式去爱别人,即使弄巧成拙,也甘之如饴

-

撕开自己亲手建立的屏障,说起来简单,做起来是很难的,你需要勇气,需要技巧,需要跟自己的惯性拉扯等等,但是只要你开始意识到这个问题的时候,一切都不晚。

-

想起一句话:好的爱情是唤醒对方的生命力。

-

当下的心意就当下说出来

-
- - -
- - - - - -
- - - -
- - - - - - - - - - - -
- - -
- -
- -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/2018/09/01/\343\200\212\346\265\201\346\230\237\351\233\250\343\200\213\344\270\211\346\257\233/index.html" "b/2018/09/01/\343\200\212\346\265\201\346\230\237\351\233\250\343\200\213\344\270\211\346\257\233/index.html" deleted file mode 100644 index e335150..0000000 --- "a/2018/09/01/\343\200\212\346\265\201\346\230\237\351\233\250\343\200\213\344\270\211\346\257\233/index.html" +++ /dev/null @@ -1,353 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 《流星雨》三毛 - 序员乱翻书 - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
-
-

- - 《流星雨》三毛 - -

- - -
- - - - -
- -

最近一直在看三毛的作品,读到《流星雨》,三毛写了她的门当户对:

-
-

所以我认为年龄、经济、国籍,甚至于学识都不是择偶的条件,固然对一般人来说这些条件当然是重要的,但是我认为最重要的,还是彼此的品格和心灵,这才是我们所要讲求的所谓“门当户对”的东西。

-
- - -
- - - - - -
- - - -
- - - - - - - - - - - -
- - -
- -
- -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/2018/09/20/\345\244\247\346\225\260\346\215\256-Centos7-\351\205\215\347\275\256\351\235\231\346\200\201ip/index.html" "b/2018/09/20/\345\244\247\346\225\260\346\215\256-Centos7-\351\205\215\347\275\256\351\235\231\346\200\201ip/index.html" deleted file mode 100644 index 883a06a..0000000 --- "a/2018/09/20/\345\244\247\346\225\260\346\215\256-Centos7-\351\205\215\347\275\256\351\235\231\346\200\201ip/index.html" +++ /dev/null @@ -1,349 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 大数据-Centos7 配置静态ip - 序员乱翻书 - - -
- -
- - - -
-
- - - -
- - -
-
-
- - - - - -
- -
- -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/2019/01/20/\344\270\233\351\233\206\346\200\247\345\244\264\347\226\274\347\232\204\346\262\273\347\226\227\345\222\214\351\242\204\351\230\262/index.html" "b/2019/01/20/\344\270\233\351\233\206\346\200\247\345\244\264\347\226\274\347\232\204\346\262\273\347\226\227\345\222\214\351\242\204\351\230\262/index.html" deleted file mode 100644 index 0812138..0000000 --- "a/2019/01/20/\344\270\233\351\233\206\346\200\247\345\244\264\347\226\274\347\232\204\346\262\273\347\226\227\345\222\214\351\242\204\351\230\262/index.html" +++ /dev/null @@ -1,415 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 丛集性头疼的治疗和预防 - 序员乱翻书 - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
-
-

- - 丛集性头疼的治疗和预防 - -

- - -
- - - -
-

文章目录

-
-
  1. 病因
  2. 就医
  3. 治疗
  4. 预防
-
-
- - -
- -

最近头痛又犯了,一直以为的偏头疼,原来是丛集性头痛。

- -

病因

目前,尚不清楚哪些因素会导致丛集性头痛。该病具有遗传性,但是不清楚为什么一些人会发生丛集性头疼。

-
    -
  • 发病原因
  • -
-

确切病因尚不清楚,但是发生方式表明他可能与人体生物钟有关,有人认为下丘脑在丛集性头痛中起关键作用。

-

不同于偏头疼和紧张型头疼,丛集性头疼一般没有诱发或触发因素,如食物、压力等。

-

但在发作期,饮酒可能会迅速引发剧烈疼痛。

-

其他可能的触发因素包括使用硝酸甘油。

-

就医

    -
  • 就诊科室
  • -
-

神经内科

-

治疗

丛集性头疼无法治愈,但治疗可减轻疼痛的严重程度,缩短头疼发作期,防止复发。由于丛集性头痛常会突然发生,需要给予能快速起效的镇痛治疗。还有些药物能预防丛集性头痛的发生。

-
    -
  • 如何治疗丛集性头疼?
  • -
-

头痛发作时,患者需要使用药物或者吸氧,来缓解疼痛或者止痛,只有在出现头痛时才使用这些治疗,没有必要每天都接受治疗。

-

当发生丛集性头痛时:

-
    -
  • 立即开始治疗,不要等到头痛家中后才开始治疗。遵医嘱正确使用药物。
  • -
  • 选择最舒服的方法。行走、慢跑、坐、跪或站立时可能缓解症状。躺下有可能使疼痛加重。
  • -
-

非处方止痛药,如:阿司匹林、对乙酰氨基酚和布洛芬,常常对丛集性头痛无效。

-

可寻找应对压力的方法和改善抑郁,有可能减低丛集性头痛的严重程度或发作频率。

-
    -
  • 发作期治疗药物包括:

    -

    1) 曲坦类药物。用于治疗偏头疼的舒马曲坦,也可使用佐米曲坦来缓解丛集性头痛。

    -

    2)局麻药

    -

    3) 二氢麦角胺。对一些丛集性头痛患者有效。

    -
  • -
  • 缓解期预防药物包括:

    -
    1)钙通道阻滞剂。 维拉帕米
    -

    2)糖皮质激素、如泼尼松,可短期使用(数天),但不适合长期使用

    -

    3)碳酸锂。

    -

    4)神经阻滞。

    -

    5) 退黑色素。有研究表明,褪黑色素可能会减低丛集性头痛的发生频率。

    -
  • -
-

预防

可采取定期睡眠,避免饮酒等方法来预防丛集性头痛变得更为严重。

-
    -
  • 如何预防丛集性头痛?
  • -
-

在一个周期内,一些特定因素更有可能导致头痛。避免这些触发因素,有助于预防头痛。

-

触发因素包括:

-

1) 饮酒

-

2) 睡眠问题。最佳做法是,每天在固定的时间睡觉和起床。不要打盹。

-

3)体温升高。运动、洗热水澡或发怒时,体温会升高。

-

4) 硝酸盐。酒、腌肉、陈年乳酪和一些药物中有硝酸盐。

-

5)组胺。季节性过敏可触发头痛。

- - -
- - - - - -
- - - -
- - - - - - - - - - - -
- - -
- -
- -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/2019/02/19/\343\200\212\345\205\263\344\272\216Vivian-Maier\343\200\213-\346\204\237\350\247\246/index.html" "b/2019/02/19/\343\200\212\345\205\263\344\272\216Vivian-Maier\343\200\213-\346\204\237\350\247\246/index.html" deleted file mode 100644 index 8f1dda0..0000000 --- "a/2019/02/19/\343\200\212\345\205\263\344\272\216Vivian-Maier\343\200\213-\346\204\237\350\247\246/index.html" +++ /dev/null @@ -1,365 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 《关于Vivian Maier》-感触 - 序员乱翻书 - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
-
-

- - 《关于Vivian Maier》-感触 - -

- - -
- - - - -
- -

他们那时候,人们在街上并没有今天这样过分强调隐私。在今天,隐私越来越受强调和保护,出现在街头的照相机却经常成为受到斥退的对象。

-

但是,隐私受到过分重视的一个结果是,隐私退回到室后的街头,却又再次成为可能捡拾人性隐私的剩余物的场所,甚至是唯一场所。

- -

她的照片仍然不失温情,尽管那也是有着一种莫名犀利在的温情。

-

Flaneur(漫游者)

-

人类走上走向城市的街头,不仅是社会活动的需要,也是自我展现和寻求来自自己与他人这两个方面的认同的需要。在与他人的相遇、擦肩而过中,从对方投来的视线,也从自己投出的视线,人类学会如何了解自身,也学会如何表示自己对于他人的欣赏。在城市街道中的游走,就是让城市与个体相互彰显、赋予个体以生命意义的一种生活实践。

-

对麦尔女士来说,加入到这个人性舞台上,也许需要照相机的鼓舞与壮胆。

-

也许对她来说,通过实验性强的拍摄探索来发现一种区别于他人的风格并不是吸引她从事摄影的理由。她根本不属于那些在风格上别出机杼的摄影家同道,也没有让同行承认与看重的心理要求。她只要老老实实地拍摄就是了。

- - -
- - - - - -
- - - -
- - - - - - - - - - - -
- - -
- -
- -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/2019/02/19/\345\205\263\344\272\216Vivian-Maier/index.html" "b/2019/02/19/\345\205\263\344\272\216Vivian-Maier/index.html" deleted file mode 100644 index 1aa9d78..0000000 --- "a/2019/02/19/\345\205\263\344\272\216Vivian-Maier/index.html" +++ /dev/null @@ -1,401 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 关于Vivian Maier - 序员乱翻书 - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
-
-

- - 关于Vivian Maier - -

- - -
- - - - -
- -

原文地址:[https://vivianmaier.cn/%E5%85%B3%E4%BA%8Evivian-maier/]

-

感谢顾铮发表在瑞像观点的文章

-

Vivian-Maier-Self-Portrait-18

- -

1984年,当街拍圣手、美国人加里·维诺格兰特去世后,人们发现在他的冰箱里还有大量胶卷没有冲洗。这位拍摄照片比冲洗胶卷快得多的摄影家,也因为这样的传说而更为传奇化。

-

事隔25年,2009年,一位芝加哥女保姆的去世,也引发了同样的传奇。在她的小阁楼里,人们发现,这位低调的孤独女子,竟然在众多收纳箱里还留下了2000多卷胶卷未及冲洗就离开了人世。一个名不见经传的业余摄影爱好者,从此走入人们的视野。

-

在数码摄影时代,只要愿意,手持手机与相机上街“扫街”已经成为稀松平常的事。街头摄影,似乎也已经翻不出什么新花样,而街头摄影史,似乎也已经穷尽了大师出现的可能性。就在这个当口,在美国,这个街头摄影的老巢,又出现一位将会改写摄影史的无名者:维维安·麦尔(Vivian Maier)。

-

我们至今仍然没有太多的有关这位身份卑微、身世神秘的女子的更多信息。人们只是约略知道,麦尔女士1926年出生于纽约。她的童年时代是在法国渡过。1951年,麦尔女士在她25岁时回到美国。至于她受过什么程度的教育,人们仍然一无所知。她先在纽约居停,然后于1956年到芝加哥工作。她的工作性质是给人带小孩,活动范围在芝加哥北岸地区。这是个相对富裕的地区,因此雇佣她的当然多为北岸地区的富人。也许芝加哥是个有魅力的地方,她来后从此就在芝加哥长住下来。

-

从她的自拍摄影作品(她给自己拍摄了不少)看,她的长相属于俏丽一路,五官紧凑眉眼处处透露聪明气,属于美貌兼智性型的女性。在艺术界、知识界中,多有这路知识分子型的美人。据认识麦尔女士的人描绘,她性格刚强,而且强烈保护自己的隐私,对于电影与政治有强烈的主见。她的雇主说,她其实很有主见,对于政治与艺术都有自己的看法。而且,她也对于社会不公有自己的应对之道。她会在自己的空暇时,去帮助无家可归者安排生活。自从她被发现后,人们仍然在试图拼凑有关她的人生的相对完整的图像,但似乎效果不彰。虽然芝加哥文化中心反应迅速,已经在今年一月为她大张旗鼓地举办了名为《寻找维维安·麦尔——芝加哥街道摄影家》展览,但如此轰动之下,却仍然没有她的直系亲戚出面“认领”这位女士。不过可以告慰世人的是,她的晚年并不算凄惨。她至死都受到那些她以前照看过的孩子们的关顾。

-

街头摄影史和麦尔

-

一个城市要成为街头摄影家的理想所在,一定程度上与它的体量大小有关。没有足够的体量,一个城市是发生、发展不出一个拥有大量人造物的“上相”空间的。

-

芝加哥虽然不像纽约这么更为密集、拥塞、噪动,却也并不缺少像纽约、尤其是曼哈顿这样的集中各种人造物而又“上相”的地方。其构成复杂的城市地貌与由钢铁、玻璃形成的城市肌理,也足以引得一些摄影家流连忘返,大展身手。石元泰博、哈里·卡拉汉、沃克·埃文斯等人都在此留下了一些上好的街头拍摄作品。

-

受包豪斯摄影观影响的石元泰博,感兴趣的是城市的建筑构成和人物组合。其构成感强烈的画面,令人感到城市的坚硬与冷峻。卡拉汉的极富实验性的影像,则围绕太太埃丽诺而展开完成,联缀成一部讴歌生命的华丽诗篇。而埃文斯照片中的街头(更确切地说是街角)男女,则是他的非取景拍摄手法下的猎物。对于这些男性摄影家来说,城市似乎就是一个摄影手法的实验室,街头更多是一个获取实验灵感与素材的地方,而不像是人性表演的剧场。更有甚者,像纽约摄影家如嘉里·维诺格兰特者,街头既是他放手扫射的地方,更是一个他表演自己作为一个摄影家的身段与身手的舞台。雄性伟岸的维诺格兰特的街头摄影是蓄意冲撞的,意在激起街头行人的各种反应并由此摄下人性的浮泛起伏。

-

而麦尔女士则完全不同于这些男性摄影家。她是静悄悄地游走于街头,温和宁静地等待一些小到不能再小的事件的发生,然后轻轻捕捉于她的镜头之中。她并不心存冒犯之意。她温柔敦厚地出手,无声无息地在街头寻找人类的各种形相并形诸照片。

-

在麦尔女士最为频繁地出没街头的1950、60年代,也是街头摄影的黄金时代。人们并没有像今天这样充分强调隐私权,因此面对照相机镜头时也并不敏感。甚至可以说,人们在街头就像在摄影棚里,往往有意盛装表演,而且一看到照相机,甚至起意配合也在情理之中。也因此,胆敢手持照相机上街者,总有不少好东西掠入镜头成像。但在今天,隐私越来越受强调与保护,头顶上的监视镜头无法回避,但出现在街头的照相机却经常成为受到斥退的对象。但是,隐私受到过分重视的一个结果是,隐私退回密室后的街头,却又再次成为可能捡拾人性隐私的剩余物的场所,甚至是唯一场所。因为以观察、揭示、揭发人性的幽深与幽微的摄影,只能在街头以更多的冒为代价来观察偸捡些许人性的残余了。这样,一个因为长期拍摄而积累了如此之多的精彩影像的摄影人的出现,当然要受到欢迎与喝彩了。

-

在富人聚居的芝加哥北岸区做保姆,这份工作显然不会轻松。据说她曾经为富人家照顾他们的残障女儿。一旦可能放假离开工作,我想,她会有一种心情放飞的可能。此时,拿起照相机也许就是一种自我释压。而且,生活范围相信不会太大的她,要去与人类打交道,除了东家之外,可能最好的地方就是街头了。于是,她来到街头,在行走中观察,一有发现就稳稳地把持照相机,埋头于一瞬间的捕捉。

-

在1950、60年代,在1950、60年代,女性手持照相机走上街头还是需要一点勇气的。当时女摄影家不多,能够以街头为剧场和影室的女摄影家更少。在纽约这个大地方,从1930年代一路算来,贝伦尼斯·阿波特以大手笔拍摄了纽约的激烈变化。但她是以大画幅照相机拍摄,机动性相对就弱,因此她的照片多是高耸挺拔的建筑,少有人间生活的气息与影子。海伦·莱维特则在1940年代以拍摄街头儿童与平民生活大显身手。在纽约下东区,丽塞特·莫德尔在1940年代专拣形态丑陋的人物下手。而到了1950与60年代年代,后来在美国最出名的女性摄影师,恐怕就是那个最具悲剧性的人物黛安·阿巴丝了。她也出没于纽约各处,以抓拍的手法拍摄都会中人,而且以生存于都市中的畸零人为对象。以上四位,均出没、成名于纽约,在摄影史上也都算得上是响当当的人物。她们或讴歌纽约的高阔大与阳刚,或着眼于儿童的天真与超现实,或只看奇形怪状的人事,甚至“影”走偏锋到阿巴丝镜头底下的畸型人物。若要从街头摄影的角度,以高度机动性的拍摄和快照抓拍为手法标志再作严格区分的话,这四位摄影家中,以大画幅相机工作的阿波特似乎还进不了这个类别。

-

身在芝加哥的麦尔女士与这些在纽约这个更大地方搏杀的摄影英雌们也有所不同。她定下心来长时期拍摄,一拍就是几十年。她集腋成裘地大量拍摄,通过量的积累实现一种观看的质量。而这量的累积又需要漫长的时间跨度来加以保障。因此,她的摄影,可以说是在以时间来换取在摄影史上的历史空间。当然,这只是我的看法,也许并不是她本人的有意识的“战术”。

-

把麦尔女士和她的同时代女摄影家放在一起考察也许不失为一个了解她的方式。人们至今无法找到她是否关注过同时代摄影人(无论男女)的证据,但知道她对于电影有着深厚的兴趣,而且往往见解深刻,虽然有时不免主观。也许,电影场景与画面是她摄影时的某种参照。

-

在经典意义上的美国街头摄影史,海伦·莱维特、丽赛特·莫德尔与黛安·阿巴丝三人属于不可放过的巨星。莫德尔与阿巴丝有师承关系,两人都以捕捉人物异态与异态人物为好,但这种嗜好发展到阿巴丝成为极端。最后,因为不堪自己的阴郁与所好,阿巴丝竟然割腕自杀。而莱维特的纽约街头摄影,似乎交织着乡村牧歌与都市民谣,为三人中步履最为轻盈者。如果说美国街头摄影有此三大女星奠定了其传统与取径的话,那么如今麦尔女士的出现,在这个街头摄影的风格光谱中,其位置可能居于莱维特与莫德尔之间。也就是说,比起莱维特的明快与活跃,麦尔的照片显得更为沉静些。莱维特的城市牧歌情调,也许并不被她所认可。而与莫德尔的勇猛、粗砺与颠狂相比,麦尔少了那份近身肉搏的胆略。她的照片总还保有一种基本的精致与平衡。同样是女性摄影家,相对于阿巴丝的阴郁甚至残忍,麦尔女士的人物形象也不像阿巴丝的人物那么绝望沮丧。她的人物照片仍然不失温情,尽管那也是有着一种莫名犀利在的温情。

-

而与所有其他摄影家的根本不同之处是,她对于人性似乎有她自己的理解,因此,也不像莫德尔那样通过特异视角来夸张、突显人性的某些方面。当然,她也不像莱维特那么以小型照相机来捕捉生活动态。

-

不过,这么说仍然感觉风险重重。因为她的照片面世的仍然只是一小部分,什么时候这个相对温和的摄影家形象,因为又一批新照片的整理出现而在一夜之间被推翻也并非不可能。当然,从现在出现的大量照片看,大致上可以断定她的心相、心性。所以说,即使有动摇她现在形象的变化,想来也不会天翻地覆。

-

总的来说,她的摄影可以端庄、温婉,婉约来形容却仍嫌不够。从画面看,她的照片张张周正与灵动兼具,有悲悯但也不失慈悲。而最打动人的,也许还有那份不输给画家爱德华·霍珀的孤寂与落寞。有的时候,她也不会放弃可能挖苦的机会,不过从中仍然可以感受她的善意在。总之,麦尔女士的摄影,是有她自己的独特气质的。她的自拍像不少。有一幅明暗光景把她从正中劈开,成为阴阳人。对于这样的自我处理,应该说颇为大胆,也说明她已经掌握黑白光影的关系。

-

手持照相机的漫游者(flaneur)

-

人类走上走向城市的街头,不仅是社会活动的需要,也是自我展现和寻求来自自己与他人这两个方面的认同的需要。在与他人的相遇、擦肩而过中,从对方投来的视线,也从自己投出的视线,人类学会如何了解自身,也学会如何表示自己对于他人的欣赏。在城市街道中的游走,就是让城市与个体相互彰显、赋予个体以生命意义的一种生活实践。而在街头行人视线的穿梭交错中,人类还发展出以照相机审视自身的一种视觉表现形式:街头摄影。

-

街头摄影,把行走街头这个人类活动提升为一种创造性活动。被本雅明作为拱廊街研究内容的巴黎的漫游者(flaneur),因为有了照相机在手,其漫游的性质就起了某种变化。从一个漫步街头的孤独观察者,到赋予这种行为以某种创造性,也许是街头摄影者不同于单纯的“漫游者”的根本之处。人类在街头的行走漫步中,不仅是相互一瞥而已,而且还要通过自己的观看而要为人类留下点什么。手持照相机的人们,向他、她之外的外部世界抛掷自己的视线,而被对象所掷回的视线的落实处则是自己手中的照相机的焦平面。所有结像于位于照相机焦平面上的胶片上的影像,都是观看视线的结晶。对于街头摄影师来说,照相机,就是一种视线的飞去来器。他抛出视线,他也接收视线。

-

现代社会,女性得以渐渐地公开走上街头。她们成为了“flaneuse”。如果在汉语单词中定归要体现出此一法语词的阴性,也许就可用“曼游者”来形容。在20世纪前,传统观念中的“正经”女人并不会在街头过多逗留。妓女会在街头漫游揽客,但“好女人”出门就不是一件简单的事。所谓“抛头露面”一说,其实就是指她们打破了不得出头、遮掩面孔的人为禁忌。

-

女性走上街头,其在街头的存在本身就丰富了街头景观,更不要说以妙曼的步态行走街头了。她们在街头的存在,无论是匿名的,像波德莱尔诗中的黑衣女子,还是像被布勒东这样的超现实主义作家起名为娜佳的浮浪女子,不是被浪漫化就是被神秘化。女人作为城市的化身,往往是以堕落和欲望的变种出现。她们往往只是表现者手中的素材,也鲜有成为表现者本身。她们在街头的行走,虽然以成为景观本身而具有了某种自动生产性,但这种行走与漫游本身,更多地属于一种被动的非生产性行为。然而,摄影的出现,尤其是小型照相机的出现,使得摄影成为了一种也比较适合于女性街头生活的文化实践。相比较而言,女性也许更擅长在街头的行走。摇滚歌手帕蒂史密斯会说“我会漫步街道数小时”。但是,从社会习俗来看,一个女人喜欢闲逛已属不雅,更不要说手里拿着也许被认为是男人才配拿的物件在街头且行且望野眼。社会习俗对于女性的限制,就包括了不能用眼光四处打量的要求。而一旦照相机在手,显然眼光就要四下散开、一副寻找猎物的样子。摄影与打猎这个行为本来就有类似性。这种见猎心喜的心态与姿态,被男权社会习俗想当然地视为是男性的专利,女性并不拥有这种特权,想要如此也并不受到鼓励。然而,恰恰是街头摄影这种将游走与“望野眼”行为结合一体的行动,也给现代女性带来一种机会。一种将她们所观察到的、感受到的东西视觉化为一种丰富了人类的感性与文化的机会。这种实践本身,也增添了有关城市与现代社会的视觉财富。

-

对于麦尔女士来说,加入到这个人性舞台上去,也许需要照相机的鼓舞与壮胆。当然,最吸引她的也许就是原本那么精彩的街头舞台本身。行走街头作为一种创作方式与态度,在她也许就是她的日常的一部分。在《浪游之歌——走路的历史》一书中,丽贝卡·索尼特(Rebecca Solnit)写道:“在城市,人因世界由陌生人组成而孤单,而当被陌生人围绕的陌生人,怀着秘密静静行走,想像通过的人的秘密是最奢侈的享受。”可以想像,当麦尔女士手持照相机在街头游走,她带走了多少在她面前通过的人的秘密。她的城市街头生活的照片,不仅仅有关她所不认识的陌生人士们的秘密,而且因为一种照片自身的独特神秘性而成为了有关秘密的秘密。

-

据说,走在街头的麦尔女士,她的脖子上老是吊挂着一台罗莱照相机。“只要是她的休息天,她准会在早上出门。脖子上挂着照相机,而且不到晚上她不会回来。”她的雇主马兰·贝莱恩德这么回忆道。她的标准行头几乎永远不变。那就是:尺码过大的风衣,既有迎风飘逸感,也可风雨无阻。头戴宽边帽子,既可遮阳保护皮肤,又可展现一派浪漫气质。脚蹬厚实的宽松的大鞋,显然为了经得起走路、而且是长路才这么选择。喜穿男装的作家乔治桑说:“我无法描述我的鞋子多么使我高兴……有了那些装有钢尖端的鞋跟我终于在人行道上健步如飞。我在巴黎来回走动,有如环游世界。我的衣服也是耐风雨的。我在任何天气都能外出,任何时候都能回家,能进任何戏院。”也许像乔治桑一样,麦尔女士的那身行头,考虑的就是一种全天候的拍摄。这既是一种作为室外活动所需要的基本配置,也是一种自我展现。这身行头,也许可以让行人少产生某些联想。但对于工作,却是实实在在的标配。

-

相机作为一种语言

-

从麦尔女士的自拍照片可以看见,她使用的是一架罗莱弗莱克斯双镜头反光照相机(俗称方镜箱)。这台属于画幅尺寸属于中型的双镜头反光照相机,就其抓拍的机动性来说,显然不及35毫米小型照相机(又称135相机)来得便捷。但是,其优越性也恰恰在于拍摄者可以稳当把持相机,定心凝视。只要拍摄者瞅见某种有趣情形,只管埋头于取景筒凝神细看,并且于瞬息之中按下快门,各种影像往往手到擒来。而且被拍摄对象基本上浑然不觉有人在拍摄他。因为不谙摄影者,会以为那人埋首于照相机中的什么物件,因而容易放松警惕。而这种双反照相机的快门按钮是水平方向发力,不似35毫米小型相机那样须要向下用力。因此,俗称“方镜箱”的双反照相机会在相机持有者身体的依托下,让拍摄者更为稳当地捉拿现形于镜箱中的“案犯”归案。这种相机的另外一个优点是,其镜间快门的声音甚小,因此不容易为被拍摄对象发现。当然,说到这里,又引出了偷窥这个观看上的伦理话题。不过,麦尔女士也偷了窥了,但这类相机的方形构图,好像天生有种堂堂正正获取影像的假象,因此,无论怎么看这些照片,似乎都无法生出偷窥的罪恶感。于她,于我们,都参与了某种程度的偷窥,却又都没有任何心理上的共犯感觉。这也许是这类照相机的心理救赎作用引得人们至今仍然喜欢的原因。在这里稍微讨论到照相机是文化的,而不是侧重于技术的。或者说,技术的也是文化的。技术提供的方便与去罪恶感也助长了一种观看文化的生成。

-

麦尔女士使用方镜箱照相机拍照时,更像是一种吸纳,而不是像35毫米照相机的点射。人们至今没有发现她用过135照相机。如果需要,她应该会有机会使用这类所谓相对方便的照相机。在135照相机甚嚣尘上的时候,许多人换马换鞍的理由就是为了抓拍上的更为快捷。她显然不作此想,不为所谓的轻便快捷等理由所动。她也许恰恰喜欢、需要的是那种“慢”而不是“快”。麦尔女士这些拍摄得极标致的照片的出现,可能会重新带动人们使用这类“慢”照相机的风潮。当初照相机的“进步”指标之一是快门速度越快越好。但像方镜箱照相机,受技术的限制,有1/500秒的快门速度就算到顶了。这,太慢了吗?未必。快,就能够捕捉到人的精彩吗?也未必。麦尔女士的照片让我们看到,1/500秒以下的快门速度所捕捉(还是用拥抱更妥帖)到的生活仍然精彩无比。所以说,选择什么样的照相机,既是一种需要,也是一种态度。一种对于时代风潮的态度。而方镜箱照相机的正方面画面,作为她的主要观看手段的双镜头反光照相机,其潜能被她发掘得淋漓尽致。方镜箱的胶片形制决定了构图相对周正。但她的构图周正却又不乏灵动。从画面看,她与对象的距离恰到好处,可以让我们一同感受对方的神情与气息。而且从这个相互距离判断,双方基本上有可能相互意识到对方的存在,但她却从来没有心慌意乱过,就那么从容地下手,没有半点仓皇。也许,方镜箱的观看方式是埋头向下成全了她。这么多的怪人异相,不是一个女人垂首观看,也许不致被这么利索地收入镜箱。

-

戏剧性的发现

-

麦尔女士的被发现也颇具戏剧性。

-

摄影史上,一些籍籍无名的摄影家的被发现,对于摄影史的书写与改写起到了不可低估的作用。拍摄了大量新奥尔良妓女影像的E.J.贝洛克,生前潦倒,死后默默无闻,最后却由美国摄影家李·弗里德兰德去那里拍摄爵士乐时被发掘出来。他的妓女肖像作品甚至引得苏珊·桑塔格以专文论述。同样的,法国上流布尔乔亚业余画家、摄影家雅克-亨利·拉蒂格的被发现,是因了美国摄影家理查德·阿维顿在法国与他的摄影的邂逅。他于偶然间发现了他的摄影并激赏之,于是一个法国老头开始步入老来俏的境界。更早的,还有被称为“19世纪巴黎的摄影家”摄影家欧仁·阿杰之被美国女摄影家贝蕾尼丝·阿波特所发现的故事。这些“被发现”,有点像我们今天学界的同行评审。但麦尔女士的被发现却不一样。她并不是由摄影家同道所发现并受到同行认可。她是被与摄影毫不相干的毛头小伙子约翰·马卢夫所发现。

-

从事房产中介生意的马卢夫,因为要写一本有关芝加哥波泰奇公园周边地区的小书,需要找些这个公园的历史照片。在2007年,他抱着这个希望来到拍卖会并且化了约400美元买下了一盒子照片。他想要赌一把。看看那箱子里有没有波泰奇公园的老照片。令他失望的是,他没有从这盒子中发现与波泰奇公园有关的老照片。虽然他为找历史照片下的赌注不大,但他的收获却意外并且令人惊喜。他从拍卖来的麦尔女士的照片看出了门道,而且渐渐自己也爱上了摄影。他起意要为这个神秘女子做点什么,于是再作进一步搜寻。现在,他拥有了她的3000多张照片,10万多张底片,还有2000多卷未及冲洗的胶卷。马卢夫还为麦尔女士建立了博客,为出版她的摄影集而展开募捐。据说如果募捐顺利的话,今年应该看到她的摄影集的出版。

-

美国摄影评论家大卫·邓禄普在《纽约时报》上发表文章,认为她是“美国最深邃的街头摄影家之一”。我认为这个评价颇为允当。从灿烂辉煌的街头摄影的历史来看,她已无可能结构性地改变这个历史。麦尔女士的拍摄手法灵活多变,但并不具有实验意识。当然,她根本不在乎实验不实验的。也许对于她来说,通过实验性强的拍摄探索来发现一种区别于他人的风格并不是吸引她从事摄影的理由。她根本不属于那些在风格上别出机杼的摄影家同道,也没有让同行承认与看重的心理要求。她只要老老实实地拍摄就是了。但她的出现,更为丰富了这个表现样式的历史却是无可置疑。但是,这对于她来说,这些追认都不重要。

-

虽然一度坊间、摄影界还有摄影理论界传出街头摄影已经衰落的长吁短叹,但近来人们再次见证了街头摄影的重生。无论是学术研究还是具体实践,都出现了一系列新动向。伦敦的泰特美术馆在2008年举办了名为《街道与影室——都市摄影史》的回顾性展览。街头即影室(照相馆)是这个学术性展览的重点诉求。2009年,美国的米尔沃基美术馆举办了《被看见的街道——1940年到1959年间的美国摄影中的心理姿态》。而在2010年,英国老牌出版社Thames & Hudson,出版了《街头摄影现况》一书。可以这么说,正是在街头摄影再次受到关注、甚至出现复兴之兆头的时候,麦尔女士出现了。

-

她来得正是时候。

-

《浪游之歌——走路的历史》(雷贝嘉·索尔尼著,刁筱华译,麦田出版,2001)

-

Street & Studio:An Urban History of Photography(Ed.,Ute Eskildsen,Tate Publishing,2008)

-

Street Seen: The psychological Gesture in American Photography,1940-1959(Lisa Hostetler,Milwaukee Art Museum,2009 )

-

Street Photography Now(Sophie Howarth and Stephen McLaren,Thames & Hudson,2010)

- - -
- - - - - -
- - - -
- - - - - - - - - - - -
- - -
- -
- -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/2019/03/10/\345\272\224\350\257\245\346\230\257\346\234\200\345\220\216\344\270\200\346\254\241\346\220\254\345\256\266/index.html" "b/2019/03/10/\345\272\224\350\257\245\346\230\257\346\234\200\345\220\216\344\270\200\346\254\241\346\220\254\345\256\266/index.html" deleted file mode 100644 index 1bfdbbc..0000000 --- "a/2019/03/10/\345\272\224\350\257\245\346\230\257\346\234\200\345\220\216\344\270\200\346\254\241\346\220\254\345\256\266/index.html" +++ /dev/null @@ -1,376 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 希望是最后一次搬家 - 序员乱翻书 - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
-
-

- - 希望是最后一次搬家 - -

- - -
- - - -
-

文章目录

-
-
  1. 吃一碗烩面,怎么成了家常便饭
-
-
- - -
- -

刚才吃士力架,竟然有口水滴在桌子上……

- -

###最后一次搬家

-

大概从去年7月份开始,一直想要换一个大点的房间。

-

龙潭小区、自如、58同城,一直有留意合适的地方,但有的离工作地太远,有的太贵,终于还是在58上找到了现在的房东,离原来住的地方1.5km,离工作地5站地铁左右。

-

来上海的第一天,背着包,扛着一麻袋的行李,一个人足够了。在上海呆了4年,东西越积越多,光书应该有100多本,几乎7个大收纳箱(被子,衣服,其他杂物)。在上家住时买的锅碗瓢盆、冰箱、书桌都丢掉了。

-

希望是最后一次搬家。

-

吃一碗烩面,怎么成了家常便饭

时间回到10年前,18岁那时还在高中,08年,除了在学校吃饭,基本都是在家吃。

-

时间再往回退3年,15岁那时在初中,05年,初二。由于学校离家近,所以就让妈妈或者爸爸每天中午做好饭,送到学校。其实现在想来,那时妈妈也是很不容易,要出去上班,然后中午赶到家做好饭,给我和小妹送到学校,不知道她在家饭是否做的够,是否给自己留足了分量。

-

终于,我们长大了。为了工作,在异乡,做饭变成了一件花费时间、繁琐、亦或者没有条件做的事情。有些早上干脆就不吃饭了,中午和晚上基本都在外面吃。这次新的住的地方,有一家24小时烩面馆。与别人提起河南特色,关于吃唯一知道的就是烩面。

-

时间再退到05年,那时候外出去吃烩面真的是一件比较奢侈的事情。偶尔会把几人份的烩面装在锅里,一路小心翼翼拿回家里吃。

-

那时,吃一碗烩面是一件很奢侈的事情。甚至现在老家,虽然外出吃烩面不能说奢侈,但至少一定要在家里自己做着吃的,吃的基本都是自己种的菜,磨的面……这样,花费才能尽可能的少。

- - -
- - - - - -
- - - -
- - - - - - - - - - - -
- - -
- -
- -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/2019/03/10/\346\203\263\345\256\266/index.html" "b/2019/03/10/\346\203\263\345\256\266/index.html" deleted file mode 100644 index 73b6055..0000000 --- "a/2019/03/10/\346\203\263\345\256\266/index.html" +++ /dev/null @@ -1,377 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 想家 - 序员乱翻书 - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
-
-

- - 想家 - -

- - -
- - - -
-

文章目录

-
-
  1. 阅读与写作
  2. 想家
-
-
- - -
- -

现在时间22:22,听着轻音乐,我真的好想家。

- -

阅读与写作

一直想要求自己要多看,多写。看确实看了,但是看了忘记,写这件事做的真不够。什么时候能够积累100万字呢。

-

有点知道自己为什么写的少了,总觉得停下来写这件事要花费多的时间,心里还在想着要去学习工作相关的内容,静不下来。可以一旦停下来,静下来写,也是一件很简单的事情,只是静下来后,真的好想家。

-

突然想起,我刚来上海的时候,还会给大舅写邮件,说明自己的情况。现在时间真的好快,好快。身边的朋友,几乎都不在身边。一封之后,竟然再也没有写过邮件。

-

从前车马很慢,见一个人要穿山越岭,要踏破铁鞋无觅处,只能出现在面前,能能算见面。而如今,借助微信,足不出户就能见到想见的人。

-

从前车马还很慢,书信很长。家书与情书,只能通过一封封长信,历时多天甚至数月,才能送达收信人手里。收信之人知道的话,在没有到达的日子里,天天翘首期盼。而送信的人,从送出去的那一刻起,就在等待着回信了。

-

想家

当然,不仅仅是想家,还想那些朋友,那些亲人,可大家都有自己的生活,以及各自的方向。

-

今年出发来上海之前,先去大舅家待了一天。小妹虽然是第二天的车出发去北京,但是也和我一起出发到大舅家。由于是夜里1点的车,我不用担心会晚点,乘坐最后一班地铁到火车站就行。到了大舅家以后,和大妗子、大舅聊天,到了6点左右,由大妗子主厨,不一会就做了一桌子的菜。

-

吃好饭后,大妗子、小妹和我,一起下楼到外面新建的商场一楼,转了一圈。虽是冬天,有些冷,但是真的很温馨。那时,我就在想,尽早能够和爸妈一起,在郑州,也能吃好饭后,一起出去溜溜弯。

-
-

-

Vivian-Maier-Self-Portrait-18

- - -
- - - - - -
- - - -
- - - - - - - - - - - -
- - -
- -
- -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/2019/05/10/\346\211\200\350\260\223\350\276\233\350\213\246\357\274\214\344\270\216\345\212\237\344\270\215\346\212\265\350\277\207/index.html" "b/2019/05/10/\346\211\200\350\260\223\350\276\233\350\213\246\357\274\214\344\270\216\345\212\237\344\270\215\346\212\265\350\277\207/index.html" deleted file mode 100644 index 999ecb2..0000000 --- "a/2019/05/10/\346\211\200\350\260\223\350\276\233\350\213\246\357\274\214\344\270\216\345\212\237\344\270\215\346\212\265\350\277\207/index.html" +++ /dev/null @@ -1,382 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 所谓辛苦,与功不抵过 - 序员乱翻书 - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
-
-

- - 所谓辛苦,与功不抵过 - -

- - -
- - - - -
- -

2月14号过完年回到上海,到现在过去3个月,项目上没有再写过代码了。接手两个品牌官网运维的事情,总算是有点了技术方面的管理经验。

-

几句话总结这三个月就是:

-

“所谓辛苦加班,都是为了填前面自己挖的坑”

-

“技术能力很强,但是总是思考不周全或者马虎犯错,终究功不抵过”

-

“站在客户的立场,检查你交付的内容,你会检查出来好多需要完善的点”

-

“主动做重要不紧急的事情,规避项目风险”

-

“假设自己是领导,你希望别人提交内容的相关要求(不管是格式还是命名),就是你现在提交内容的要求,包括沟通方式”

- -

上面的总结应该不够,需要把发生的一些事情大致说明一下。

-
-
    -
  • 官网活动相关产品发生超卖时,没有引起足够重视。没有安排开发持续监控,导致超卖有一段时间完全无法控制。开发人员夜里发现了问题,竟然没有电话及时通知。第二天问起“为何发现了超卖而不联系我”,回答:“夜里三点,难道我给你打电话吗?” 开发人员完全没有意识到超卖事件的严重性,对于电商来说要在可控范围。但就算在可控范围,商家也面临着消费者的投诉,以及品牌的失信。

    -
  • -
  • 能力不行,态度也不行,步步挖坑,总是要别人帮忙来填,但是团队所有人进来,都填不满。一个人如果能力不行,考虑问题不全面,遇到问题还不知道寻求他人帮忙,那基本注定了只能做不好。

    -
  • -
  • 项目代码一定要git 版本管理起来,接收任何项目,第一件事情第一件事情第一件事情,正式环境代码拉取到本地进行备份,然后一定一定一定用git 管理起来。

    -

    不仅仅是代码的版本管理,任何开发过程中的优秀习惯,都会让你在后期项目开发和维护中,受益良多。

    -
  • -
  • 任务没有搞明白,就不要去做,直到搞清楚才去做,不然最后只会是一个错误的结果。

    -
  • -
  • 如果你是领导,交代别人一个任务,肯定希望可以定时了解进展情况,并在deadline 拿到满意的结果。如果你不是,那你要学会站在领导的角度考虑问题,并且像领导一样要求自己。

    -
  • -
-

在近一段时间里,开发人员会存在一下问题:

-
    -
  • 能力不行,态度不行,做事方法不行
  • -
  • 技术能力很强,态度好,但是会犯严重的错误,关键节点掉链子。犯错和掉链子现在看来应该是缺乏责任心,这个责任心不是对自己的,是能够站在客户角度的责任心
  • -
  • 没有很好的解决问题的思路
  • -
-
-

PS: 总想把这些内容写成一个故事,可是写这件事情真的很消耗时间啊。

- - -
- - - - - -
- - - -
- - - - - - - - - - - -
- - -
- -
- -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_config.yml b/_config.yml new file mode 100644 index 0000000..e2901e2 --- /dev/null +++ b/_config.yml @@ -0,0 +1,71 @@ +# Hexo Configuration +## Docs: https://hexo.io/docs/configuration.html +## Source: https://github.com/hexojs/hexo/ + +# Site +title: North Nanshan +subtitle: Ϊмߣ +description: ֻϣܶ飬Ȼдʲô +author: zhangchao +language: +timezone: + +# URL +## If your site is put in a subdirectory, set url as 'http://yoursite.com/child' and root as '/child/' +url: http://yoursite.com +root: / +permalink: :year/:month/:day/:title/ +permalink_defaults: + +# Directory +source_dir: source +public_dir: public +tag_dir: tags +archive_dir: archives +category_dir: categories +code_dir: downloads/code +i18n_dir: :lang +skip_render: + +# Writing +new_post_name: :title.md # File name of new posts +default_layout: post +titlecase: false # Transform title into titlecase +external_link: true # Open external links in new tab +filename_case: 0 +render_drafts: false +post_asset_folder: false +relative_link: false +future: true +highlight: + enable: true + line_number: true + auto_detect: false + tab_replace: + +# Category & Tag +default_category: uncategorized +category_map: +tag_map: + +# Date / Time format +## Hexo uses Moment.js to parse and display date +## You can customize the date format as defined in +## http://momentjs.com/docs/#/displaying/format/ +date_format: YYYY-MM-DD +time_format: HH:mm:ss + +# Pagination +## Set per_page to 0 to disable pagination +per_page: 10 +pagination_dir: page + +# Extensions +## Plugins: https://hexo.io/plugins/ +## Themes: https://hexo.io/themes/ +theme: even + +# Deployment +## Docs: https://hexo.io/docs/deployment.html +deploy: + type: diff --git a/_config.yml.bak b/_config.yml.bak new file mode 100644 index 0000000..b932f3e --- /dev/null +++ b/_config.yml.bak @@ -0,0 +1,71 @@ +# Hexo Configuration +## Docs: https://hexo.io/docs/configuration.html +## Source: https://github.com/hexojs/hexo/ + +# Site +title: Hexo +subtitle: +description: +author: John Doe +language: +timezone: + +# URL +## If your site is put in a subdirectory, set url as 'http://yoursite.com/child' and root as '/child/' +url: http://yoursite.com +root: / +permalink: :year/:month/:day/:title/ +permalink_defaults: + +# Directory +source_dir: source +public_dir: public +tag_dir: tags +archive_dir: archives +category_dir: categories +code_dir: downloads/code +i18n_dir: :lang +skip_render: + +# Writing +new_post_name: :title.md # File name of new posts +default_layout: post +titlecase: false # Transform title into titlecase +external_link: true # Open external links in new tab +filename_case: 0 +render_drafts: false +post_asset_folder: false +relative_link: false +future: true +highlight: + enable: true + line_number: true + auto_detect: false + tab_replace: + +# Category & Tag +default_category: uncategorized +category_map: +tag_map: + +# Date / Time format +## Hexo uses Moment.js to parse and display date +## You can customize the date format as defined in +## http://momentjs.com/docs/#/displaying/format/ +date_format: YYYY-MM-DD +time_format: HH:mm:ss + +# Pagination +## Set per_page to 0 to disable pagination +per_page: 10 +pagination_dir: page + +# Extensions +## Plugins: https://hexo.io/plugins/ +## Themes: https://hexo.io/themes/ +theme: even + +# Deployment +## Docs: https://hexo.io/docs/deployment.html +deploy: + type: diff --git a/about/index.html b/about/index.html deleted file mode 100644 index a369ab9..0000000 --- a/about/index.html +++ /dev/null @@ -1,276 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 序员乱翻书 - - -
- -
- - - -
-
- - - -
- - -
-
-
- - - -
- -
- -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/archives/2016/05/index.html b/archives/2016/05/index.html deleted file mode 100644 index 37311ec..0000000 --- a/archives/2016/05/index.html +++ /dev/null @@ -1,350 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 归档 - 序员乱翻书 - - - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
- - -
- - 目前共计 57 篇日志 - -
- - - - - - - - - - -
-

2016

-
- - - -
- - - 05-28 - - - - - 《天龙八部》 - - -
- - - - - - - - -
- - - 05-17 - - - - - 《射雕英雄传》《神雕侠侣》《倚天屠龙记》 - - -
- - - - - - - - -
- - - 05-01 - - - - - 《岛上书店》没有谁是一座孤岛 - - -
- -
- - - - - - -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/archives/2016/06/index.html b/archives/2016/06/index.html deleted file mode 100644 index 033de0a..0000000 --- a/archives/2016/06/index.html +++ /dev/null @@ -1,430 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 归档 - 序员乱翻书 - - - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
- - -
- - 目前共计 57 篇日志 - -
- - - - - - - - - - -
-

2016

-
- - - -
- - - 06-24 - - - - - 目前的时间安排 - - -
- - - - - - - - -
- - - 06-20 - - - - - gradle的使用 - - -
- - - - - - - - -
- - - 06-11 - - - - - 2016书单 - - -
- - - - - - - - -
- - - 06-11 - - - - - 《上庄记》 季栋梁 - - -
- - - - - - - - -
- - - 06-09 - - - - - 在这个城市,搬家 - - -
- - - - - - - - -
- - - 06-05 - - - - - 《软件工艺师》[英]桑德罗.曼卡索 - - -
- - - - - - - - -
- - - 06-05 - - - - - 《笑傲江湖》 - - -
- -
- - - - - - -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/archives/2016/07/index.html b/archives/2016/07/index.html deleted file mode 100644 index 1dbb181..0000000 --- a/archives/2016/07/index.html +++ /dev/null @@ -1,350 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 归档 - 序员乱翻书 - - - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
- - -
- - 目前共计 57 篇日志 - -
- - - - - - - - - - -
-

2016

-
- - - -
- - - 07-24 - - - - - 《支付战争》 - - -
- - - - - - - - -
- - - 07-20 - - - - - 酒 - - -
- - - - - - - - -
- - - 07-03 - - - - - 《无声告白》(美)伍绮诗 - - -
- -
- - - - - - -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/archives/2016/08/index.html b/archives/2016/08/index.html deleted file mode 100644 index 688e876..0000000 --- a/archives/2016/08/index.html +++ /dev/null @@ -1,310 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 归档 - 序员乱翻书 - - - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
- - -
- - 目前共计 57 篇日志 - -
- - - - - - - - - - -
-

2016

-
- - - -
- - - 08-06 - - - - - 《Java多线程编程核心技术》 - - -
- -
- - - - - - -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/archives/2016/09/index.html b/archives/2016/09/index.html deleted file mode 100644 index ca12499..0000000 --- a/archives/2016/09/index.html +++ /dev/null @@ -1,350 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 归档 - 序员乱翻书 - - - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
- - -
- - 目前共计 57 篇日志 - -
- - - - - - - - - - -
-

2016

-
- - - -
- - - 09-11 - - - - - synchronized与volatile多线程中的作用 - - -
- - - - - - - - -
- - - 09-04 - - - - - 如何使单例模式遇到多线程是安全的、正确的 - - -
- - - - - - - - -
- - - 09-02 - - - - - 买土豆的故事 - - -
- -
- - - - - - -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/archives/2016/10/index.html b/archives/2016/10/index.html deleted file mode 100644 index 0e910fc..0000000 --- a/archives/2016/10/index.html +++ /dev/null @@ -1,330 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 归档 - 序员乱翻书 - - - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
- - -
- - 目前共计 57 篇日志 - -
- - - - - - - - - - -
-

2016

-
- - - -
- - - 10-07 - - - - - 《人人都能用英语》李笑来 - - -
- - - - - - - - -
- - - 10-05 - - - - - 16年十一假期 - - -
- -
- - - - - - -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/archives/2016/index.html b/archives/2016/index.html deleted file mode 100644 index f76b28c..0000000 --- a/archives/2016/index.html +++ /dev/null @@ -1,495 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 归档 - 序员乱翻书 - - - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
- - -
- - 目前共计 57 篇日志 - -
- - - - - - - - - - -
-

2016

-
- - - -
- - - 10-07 - - - - - 《人人都能用英语》李笑来 - - -
- - - - - - - - -
- - - 10-05 - - - - - 16年十一假期 - - -
- - - - - - - - -
- - - 09-11 - - - - - synchronized与volatile多线程中的作用 - - -
- - - - - - - - -
- - - 09-04 - - - - - 如何使单例模式遇到多线程是安全的、正确的 - - -
- - - - - - - - -
- - - 09-02 - - - - - 买土豆的故事 - - -
- - - - - - - - -
- - - 08-06 - - - - - 《Java多线程编程核心技术》 - - -
- - - - - - - - -
- - - 07-24 - - - - - 《支付战争》 - - -
- - - - - - - - -
- - - 07-20 - - - - - 酒 - - -
- - - - - - - - -
- - - 07-03 - - - - - 《无声告白》(美)伍绮诗 - - -
- - - - - - - - -
- - - 06-24 - - - - - 目前的时间安排 - - -
- -
- - - - - - -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/archives/2016/page/2/index.html b/archives/2016/page/2/index.html deleted file mode 100644 index 727b137..0000000 --- a/archives/2016/page/2/index.html +++ /dev/null @@ -1,467 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 归档 - 序员乱翻书 - - - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
- - - - - - - - - -
-

2016

-
- - - -
- - - 06-20 - - - - - gradle的使用 - - -
- - - - - - - - -
- - - 06-11 - - - - - 2016书单 - - -
- - - - - - - - -
- - - 06-11 - - - - - 《上庄记》 季栋梁 - - -
- - - - - - - - -
- - - 06-09 - - - - - 在这个城市,搬家 - - -
- - - - - - - - -
- - - 06-05 - - - - - 《软件工艺师》[英]桑德罗.曼卡索 - - -
- - - - - - - - -
- - - 06-05 - - - - - 《笑傲江湖》 - - -
- - - - - - - - -
- - - 05-28 - - - - - 《天龙八部》 - - -
- - - - - - - - -
- - - 05-17 - - - - - 《射雕英雄传》《神雕侠侣》《倚天屠龙记》 - - -
- - - - - - - - -
- - - 05-01 - - - - - 《岛上书店》没有谁是一座孤岛 - - -
- -
- - - - - - -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/archives/2017/01/index.html b/archives/2017/01/index.html deleted file mode 100644 index 89ed22e..0000000 --- a/archives/2017/01/index.html +++ /dev/null @@ -1,350 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 归档 - 序员乱翻书 - - - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
- - -
- - 目前共计 57 篇日志 - -
- - - - - - - - - - -
-

2017

-
- - - -
- - - 01-17 - - - - - 朋友圈的安全风险,你知道吗? - - -
- - - - - - - - -
- - - 01-15 - - - - - 《浪潮之巅》第三版上册 - - -
- - - - - - - - -
- - - 01-10 - - - - - 2017购买书单 - - -
- -
- - - - - - -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/archives/2017/02/index.html b/archives/2017/02/index.html deleted file mode 100644 index 3cc422d..0000000 --- a/archives/2017/02/index.html +++ /dev/null @@ -1,410 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 归档 - 序员乱翻书 - - - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
- - -
- - 目前共计 57 篇日志 - -
- - - - - - - - - - -
-

2017

-
- - - -
- - - 02-25 - - - - - 避免混淆在开发中带来的坑 - - -
- - - - - - - - -
- - - 02-19 - - - - - 上海第十一届双年展 - - -
- - - - - - - - -
- - - 02-17 - - - - - 《书都不会读,你还想成功》 - - -
- - - - - - - - -
- - - 02-17 - - - - - 《重新定位》 - - -
- - - - - - - - -
- - - 02-12 - - - - - 《富爸爸穷爸爸》 - - -
- - - - - - - - -
- - - 02-08 - - - - - 《黑客与画家》 - - -
- -
- - - - - - -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/archives/2017/03/index.html b/archives/2017/03/index.html deleted file mode 100644 index 440ac6c..0000000 --- a/archives/2017/03/index.html +++ /dev/null @@ -1,370 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 归档 - 序员乱翻书 - - - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
- - -
- - 目前共计 57 篇日志 - -
- - - - - - - - - - -
-

2017

-
- - - -
- - - 03-19 - - - - - 《金色梦乡》伊坂幸太郎 - - -
- - - - - - - - -
- - - 03-12 - - - - - 2017上海设计展 - - -
- - - - - - - - -
- - - 03-06 - - - - - 《浪潮之巅》第三版 下册 - - -
- - - - - - - - -
- - - 03-03 - - - - - 《学会提问》 - - -
- -
- - - - - - -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/archives/2017/04/index.html b/archives/2017/04/index.html deleted file mode 100644 index 21fe9f0..0000000 --- a/archives/2017/04/index.html +++ /dev/null @@ -1,370 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 归档 - 序员乱翻书 - - - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
- - -
- - 目前共计 57 篇日志 - -
- - - - - - - - - - -
-

2017

-
- - - -
- - - 04-29 - - - - - 17年五一假期苏州一日游计划 - - -
- - - - - - - - -
- - - 04-22 - - - - - 17年春二三事 - - -
- - - - - - - - -
- - - 04-22 - - - - - 《零售的本质》7-Eleven - - -
- - - - - - - - -
- - - 04-22 - - - - - 《一个广告人的自白》大卫·奥格威 - - -
- -
- - - - - - -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/archives/2017/index.html b/archives/2017/index.html deleted file mode 100644 index 2566814..0000000 --- a/archives/2017/index.html +++ /dev/null @@ -1,495 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 归档 - 序员乱翻书 - - - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
- - -
- - 目前共计 57 篇日志 - -
- - - - - - - - - - -
-

2017

-
- - - -
- - - 04-29 - - - - - 17年五一假期苏州一日游计划 - - -
- - - - - - - - -
- - - 04-22 - - - - - 17年春二三事 - - -
- - - - - - - - -
- - - 04-22 - - - - - 《零售的本质》7-Eleven - - -
- - - - - - - - -
- - - 04-22 - - - - - 《一个广告人的自白》大卫·奥格威 - - -
- - - - - - - - -
- - - 03-19 - - - - - 《金色梦乡》伊坂幸太郎 - - -
- - - - - - - - -
- - - 03-12 - - - - - 2017上海设计展 - - -
- - - - - - - - -
- - - 03-06 - - - - - 《浪潮之巅》第三版 下册 - - -
- - - - - - - - -
- - - 03-03 - - - - - 《学会提问》 - - -
- - - - - - - - -
- - - 02-25 - - - - - 避免混淆在开发中带来的坑 - - -
- - - - - - - - -
- - - 02-19 - - - - - 上海第十一届双年展 - - -
- -
- - - - - - -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/archives/2017/page/2/index.html b/archives/2017/page/2/index.html deleted file mode 100644 index addd7a1..0000000 --- a/archives/2017/page/2/index.html +++ /dev/null @@ -1,427 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 归档 - 序员乱翻书 - - - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
- - - - - - - - - -
-

2017

-
- - - -
- - - 02-17 - - - - - 《书都不会读,你还想成功》 - - -
- - - - - - - - -
- - - 02-17 - - - - - 《重新定位》 - - -
- - - - - - - - -
- - - 02-12 - - - - - 《富爸爸穷爸爸》 - - -
- - - - - - - - -
- - - 02-08 - - - - - 《黑客与画家》 - - -
- - - - - - - - -
- - - 01-17 - - - - - 朋友圈的安全风险,你知道吗? - - -
- - - - - - - - -
- - - 01-15 - - - - - 《浪潮之巅》第三版上册 - - -
- - - - - - - - -
- - - 01-10 - - - - - 2017购买书单 - - -
- -
- - - - - - -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/archives/2018/04/index.html b/archives/2018/04/index.html deleted file mode 100644 index b3c6b74..0000000 --- a/archives/2018/04/index.html +++ /dev/null @@ -1,330 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 归档 - 序员乱翻书 - - - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
- - -
- - 目前共计 57 篇日志 - -
- - - - - - - - - - -
-

2018

-
- - - -
- - - 04-19 - - - - - 20180419两个项目总结 - - -
- - - - - - - - -
- - - 04-07 - - - - - 180407 - - -
- -
- - - - - - -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/archives/2018/05/index.html b/archives/2018/05/index.html deleted file mode 100644 index 86bac59..0000000 --- a/archives/2018/05/index.html +++ /dev/null @@ -1,310 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 归档 - 序员乱翻书 - - - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
- - -
- - 目前共计 57 篇日志 - -
- - - - - - - - - - -
-

2018

-
- - - -
- - - 05-03 - - - - - 项目难产,生出来了却是别人的 - - -
- -
- - - - - - -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/archives/2018/07/index.html b/archives/2018/07/index.html deleted file mode 100644 index 605b68e..0000000 --- a/archives/2018/07/index.html +++ /dev/null @@ -1,370 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 归档 - 序员乱翻书 - - - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
- - -
- - 目前共计 57 篇日志 - -
- - - - - - - - - - -
-

2018

-
- - - -
- - - 07-29 - - - - - 和Jery沟通收获了两点 - - -
- - - - - - - - -
- - - 07-29 - - - - - 《激荡十年,水大鱼大》吴晓波 - - -
- - - - - - - - -
- - - 07-21 - - - - - 戴项链的女孩 - - -
- - - - - - - - -
- - - 07-09 - - - - - 时间太快,邹哥也结婚了 - - -
- -
- - - - - - -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/archives/2018/08/index.html b/archives/2018/08/index.html deleted file mode 100644 index 09d3ae5..0000000 --- a/archives/2018/08/index.html +++ /dev/null @@ -1,410 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 归档 - 序员乱翻书 - - - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
- - -
- - 目前共计 57 篇日志 - -
- - - - - - - - - - -
-

2018

-
- - - -
- - - 08-19 - - - - - 《Love》 by Roy Croft - - -
- - - - - - - - -
- - - 08-19 - - - - - 地铁门里门外 - - -
- - - - - - - - -
- - - 08-12 - - - - - 与父母沟通 - - -
- - - - - - - - -
- - - 08-10 - - - - - 一周时间是怎么过去了 - - -
- - - - - - - - -
- - - 08-05 - - - - - 怎能靠近爱情 - - -
- - - - - - - - -
- - - 08-01 - - - - - 巴西柔术与生活同与不同 - - -
- -
- - - - - - -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/archives/2018/09/index.html b/archives/2018/09/index.html deleted file mode 100644 index bcce830..0000000 --- a/archives/2018/09/index.html +++ /dev/null @@ -1,330 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 归档 - 序员乱翻书 - - - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
- - -
- - 目前共计 57 篇日志 - -
- - - - - - - - - - -
-

2018

-
- - - -
- - - 09-20 - - - - - 大数据-Centos7 配置静态ip - - -
- - - - - - - - -
- - - 09-01 - - - - - 《流星雨》三毛 - - -
- -
- - - - - - -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/archives/2018/index.html b/archives/2018/index.html deleted file mode 100644 index e6ffc05..0000000 --- a/archives/2018/index.html +++ /dev/null @@ -1,495 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 归档 - 序员乱翻书 - - - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
- - -
- - 目前共计 57 篇日志 - -
- - - - - - - - - - -
-

2018

-
- - - -
- - - 09-20 - - - - - 大数据-Centos7 配置静态ip - - -
- - - - - - - - -
- - - 09-01 - - - - - 《流星雨》三毛 - - -
- - - - - - - - -
- - - 08-19 - - - - - 《Love》 by Roy Croft - - -
- - - - - - - - -
- - - 08-19 - - - - - 地铁门里门外 - - -
- - - - - - - - -
- - - 08-12 - - - - - 与父母沟通 - - -
- - - - - - - - -
- - - 08-10 - - - - - 一周时间是怎么过去了 - - -
- - - - - - - - -
- - - 08-05 - - - - - 怎能靠近爱情 - - -
- - - - - - - - -
- - - 08-01 - - - - - 巴西柔术与生活同与不同 - - -
- - - - - - - - -
- - - 07-29 - - - - - 和Jery沟通收获了两点 - - -
- - - - - - - - -
- - - 07-29 - - - - - 《激荡十年,水大鱼大》吴晓波 - - -
- -
- - - - - - -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/archives/2018/page/2/index.html b/archives/2018/page/2/index.html deleted file mode 100644 index 795209c..0000000 --- a/archives/2018/page/2/index.html +++ /dev/null @@ -1,387 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 归档 - 序员乱翻书 - - - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
- - - - - - - - - -
-

2018

-
- - - -
- - - 07-21 - - - - - 戴项链的女孩 - - -
- - - - - - - - -
- - - 07-09 - - - - - 时间太快,邹哥也结婚了 - - -
- - - - - - - - -
- - - 05-03 - - - - - 项目难产,生出来了却是别人的 - - -
- - - - - - - - -
- - - 04-19 - - - - - 20180419两个项目总结 - - -
- - - - - - - - -
- - - 04-07 - - - - - 180407 - - -
- -
- - - - - - -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/archives/2019/01/index.html b/archives/2019/01/index.html deleted file mode 100644 index f8273df..0000000 --- a/archives/2019/01/index.html +++ /dev/null @@ -1,310 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 归档 - 序员乱翻书 - - - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
- - -
- - 目前共计 57 篇日志 - -
- - - - - - - - - - -
-

2019

-
- - - -
- - - 01-20 - - - - - 丛集性头疼的治疗和预防 - - -
- -
- - - - - - -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/archives/2019/02/index.html b/archives/2019/02/index.html deleted file mode 100644 index 3c480d4..0000000 --- a/archives/2019/02/index.html +++ /dev/null @@ -1,330 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 归档 - 序员乱翻书 - - - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
- - -
- - 目前共计 57 篇日志 - -
- - - - - - - - - - -
-

2019

-
- - - -
- - - 02-19 - - - - - 《关于Vivian Maier》-感触 - - -
- - - - - - - - -
- - - 02-19 - - - - - 关于Vivian Maier - - -
- -
- - - - - - -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/archives/2019/03/index.html b/archives/2019/03/index.html deleted file mode 100644 index 5ad27e7..0000000 --- a/archives/2019/03/index.html +++ /dev/null @@ -1,330 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 归档 - 序员乱翻书 - - - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
- - -
- - 目前共计 57 篇日志 - -
- - - - - - - - - - -
-

2019

-
- - - -
- - - 03-10 - - - - - 想家 - - -
- - - - - - - - -
- - - 03-10 - - - - - 希望是最后一次搬家 - - -
- -
- - - - - - -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/archives/2019/05/index.html b/archives/2019/05/index.html deleted file mode 100644 index 3587d7e..0000000 --- a/archives/2019/05/index.html +++ /dev/null @@ -1,310 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 归档 - 序员乱翻书 - - - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
- - -
- - 目前共计 57 篇日志 - -
- - - - - - - - - - -
-

2019

-
- - - -
- - - 05-10 - - - - - 所谓辛苦,与功不抵过 - - -
- -
- - - - - - -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/archives/2019/index.html b/archives/2019/index.html deleted file mode 100644 index 9b79fa9..0000000 --- a/archives/2019/index.html +++ /dev/null @@ -1,410 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 归档 - 序员乱翻书 - - - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
- - -
- - 目前共计 57 篇日志 - -
- - - - - - - - - - -
-

2019

-
- - - -
- - - 05-10 - - - - - 所谓辛苦,与功不抵过 - - -
- - - - - - - - -
- - - 03-10 - - - - - 想家 - - -
- - - - - - - - -
- - - 03-10 - - - - - 希望是最后一次搬家 - - -
- - - - - - - - -
- - - 02-19 - - - - - 《关于Vivian Maier》-感触 - - -
- - - - - - - - -
- - - 02-19 - - - - - 关于Vivian Maier - - -
- - - - - - - - -
- - - 01-20 - - - - - 丛集性头疼的治疗和预防 - - -
- -
- - - - - - -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/archives/index.html b/archives/index.html deleted file mode 100644 index 80799d9..0000000 --- a/archives/index.html +++ /dev/null @@ -1,500 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 归档 - 序员乱翻书 - - - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
- - -
- - 目前共计 57 篇日志 - -
- - - - - - - - - - -
-

2019

-
- - - -
- - - 05-10 - - - - - 所谓辛苦,与功不抵过 - - -
- - - - - - - - -
- - - 03-10 - - - - - 想家 - - -
- - - - - - - - -
- - - 03-10 - - - - - 希望是最后一次搬家 - - -
- - - - - - - - -
- - - 02-19 - - - - - 《关于Vivian Maier》-感触 - - -
- - - - - - - - -
- - - 02-19 - - - - - 关于Vivian Maier - - -
- - - - - - - - -
- - - 01-20 - - - - - 丛集性头疼的治疗和预防 - - -
- - - - - - - -
-

2018

-
- - - -
- - - 09-20 - - - - - 大数据-Centos7 配置静态ip - - -
- - - - - - - - -
- - - 09-01 - - - - - 《流星雨》三毛 - - -
- - - - - - - - -
- - - 08-19 - - - - - 《Love》 by Roy Croft - - -
- - - - - - - - -
- - - 08-19 - - - - - 地铁门里门外 - - -
- -
- - - - - - -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/archives/page/2/index.html b/archives/page/2/index.html deleted file mode 100644 index f20a8ba..0000000 --- a/archives/page/2/index.html +++ /dev/null @@ -1,492 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 归档 - 序员乱翻书 - - - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
- - - - - - - - - -
-

2018

-
- - - -
- - - 08-12 - - - - - 与父母沟通 - - -
- - - - - - - - -
- - - 08-10 - - - - - 一周时间是怎么过去了 - - -
- - - - - - - - -
- - - 08-05 - - - - - 怎能靠近爱情 - - -
- - - - - - - - -
- - - 08-01 - - - - - 巴西柔术与生活同与不同 - - -
- - - - - - - - -
- - - 07-29 - - - - - 和Jery沟通收获了两点 - - -
- - - - - - - - -
- - - 07-29 - - - - - 《激荡十年,水大鱼大》吴晓波 - - -
- - - - - - - - -
- - - 07-21 - - - - - 戴项链的女孩 - - -
- - - - - - - - -
- - - 07-09 - - - - - 时间太快,邹哥也结婚了 - - -
- - - - - - - - -
- - - 05-03 - - - - - 项目难产,生出来了却是别人的 - - -
- - - - - - - - -
- - - 04-19 - - - - - 20180419两个项目总结 - - -
- -
- - - - - - -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/archives/page/3/index.html b/archives/page/3/index.html deleted file mode 100644 index c8b7c25..0000000 --- a/archives/page/3/index.html +++ /dev/null @@ -1,497 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 归档 - 序员乱翻书 - - - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
- - - - - - - - - -
-

2018

-
- - - -
- - - 04-07 - - - - - 180407 - - -
- - - - - - - -
-

2017

-
- - - -
- - - 04-29 - - - - - 17年五一假期苏州一日游计划 - - -
- - - - - - - - -
- - - 04-22 - - - - - 17年春二三事 - - -
- - - - - - - - -
- - - 04-22 - - - - - 《零售的本质》7-Eleven - - -
- - - - - - - - -
- - - 04-22 - - - - - 《一个广告人的自白》大卫·奥格威 - - -
- - - - - - - - -
- - - 03-19 - - - - - 《金色梦乡》伊坂幸太郎 - - -
- - - - - - - - -
- - - 03-12 - - - - - 2017上海设计展 - - -
- - - - - - - - -
- - - 03-06 - - - - - 《浪潮之巅》第三版 下册 - - -
- - - - - - - - -
- - - 03-03 - - - - - 《学会提问》 - - -
- - - - - - - - -
- - - 02-25 - - - - - 避免混淆在开发中带来的坑 - - -
- -
- - - - - - -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/archives/page/4/index.html b/archives/page/4/index.html deleted file mode 100644 index 1f08fae..0000000 --- a/archives/page/4/index.html +++ /dev/null @@ -1,497 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 归档 - 序员乱翻书 - - - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
- - - - - - - - - -
-

2017

-
- - - -
- - - 02-19 - - - - - 上海第十一届双年展 - - -
- - - - - - - - -
- - - 02-17 - - - - - 《书都不会读,你还想成功》 - - -
- - - - - - - - -
- - - 02-17 - - - - - 《重新定位》 - - -
- - - - - - - - -
- - - 02-12 - - - - - 《富爸爸穷爸爸》 - - -
- - - - - - - - -
- - - 02-08 - - - - - 《黑客与画家》 - - -
- - - - - - - - -
- - - 01-17 - - - - - 朋友圈的安全风险,你知道吗? - - -
- - - - - - - - -
- - - 01-15 - - - - - 《浪潮之巅》第三版上册 - - -
- - - - - - - - -
- - - 01-10 - - - - - 2017购买书单 - - -
- - - - - - - -
-

2016

-
- - - -
- - - 10-07 - - - - - 《人人都能用英语》李笑来 - - -
- - - - - - - - -
- - - 10-05 - - - - - 16年十一假期 - - -
- -
- - - - - - -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/archives/page/5/index.html b/archives/page/5/index.html deleted file mode 100644 index acad352..0000000 --- a/archives/page/5/index.html +++ /dev/null @@ -1,492 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 归档 - 序员乱翻书 - - - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
- - - - - - - - - -
-

2016

-
- - - -
- - - 09-11 - - - - - synchronized与volatile多线程中的作用 - - -
- - - - - - - - -
- - - 09-04 - - - - - 如何使单例模式遇到多线程是安全的、正确的 - - -
- - - - - - - - -
- - - 09-02 - - - - - 买土豆的故事 - - -
- - - - - - - - -
- - - 08-06 - - - - - 《Java多线程编程核心技术》 - - -
- - - - - - - - -
- - - 07-24 - - - - - 《支付战争》 - - -
- - - - - - - - -
- - - 07-20 - - - - - 酒 - - -
- - - - - - - - -
- - - 07-03 - - - - - 《无声告白》(美)伍绮诗 - - -
- - - - - - - - -
- - - 06-24 - - - - - 目前的时间安排 - - -
- - - - - - - - -
- - - 06-20 - - - - - gradle的使用 - - -
- - - - - - - - -
- - - 06-11 - - - - - 2016书单 - - -
- -
- - - - - - -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/archives/page/6/index.html b/archives/page/6/index.html deleted file mode 100644 index 8cdbe12..0000000 --- a/archives/page/6/index.html +++ /dev/null @@ -1,427 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 归档 - 序员乱翻书 - - - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
- - - - - - - - - -
-

2016

-
- - - -
- - - 06-11 - - - - - 《上庄记》 季栋梁 - - -
- - - - - - - - -
- - - 06-09 - - - - - 在这个城市,搬家 - - -
- - - - - - - - -
- - - 06-05 - - - - - 《软件工艺师》[英]桑德罗.曼卡索 - - -
- - - - - - - - -
- - - 06-05 - - - - - 《笑傲江湖》 - - -
- - - - - - - - -
- - - 05-28 - - - - - 《天龙八部》 - - -
- - - - - - - - -
- - - 05-17 - - - - - 《射雕英雄传》《神雕侠侣》《倚天屠龙记》 - - -
- - - - - - - - -
- - - 05-01 - - - - - 《岛上书店》没有谁是一座孤岛 - - -
- -
- - - - - - -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/categories/\346\235\202\350\257\273/index.html" "b/categories/\346\235\202\350\257\273/index.html" deleted file mode 100644 index a2e9f3d..0000000 --- "a/categories/\346\235\202\350\257\273/index.html" +++ /dev/null @@ -1,303 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 杂读 · 序员乱翻书 - - - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
- - -
-

杂读

-
- - - - - - -
- - - 2016-05-01 - - - - - 《岛上书店》没有谁是一座孤岛 - - -
- -
- - - - - - -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/css/style.css b/css/style.css deleted file mode 100644 index d99a97f..0000000 --- a/css/style.css +++ /dev/null @@ -1,1395 +0,0 @@ -@charset "UTF-8"; -@font-face { - font-family: 'Chancery'; - src: url("../fonts/chancery/apple-chancery-webfont.eot"); - src: local("Apple Chancery"), url("../fonts/chancery/apple-chancery-webfont.eot?#iefix") format("embedded-opentype"), url("../fonts/chancery/apple-chancery-webfont.woff2") format("woff2"), url("../fonts/chancery/apple-chancery-webfont.woff") format("woff"), url("../fonts/chancery/apple-chancery-webfont.ttf") format("truetype"), url("../fonts/chancery/apple-chancery-webfont.svg#apple-chancery") format("svg"); - font-weight: lighter; - font-style: normal; } - -/*! normalize.css v3.0.2 | MIT License | git.io/normalize */ -/** - * 1. Set default font family to sans-serif. - * 2. Prevent iOS text size adjust after orientation change, without disabling - * user zoom. - */ -html { - font-family: sans-serif; - /* 1 */ - -ms-text-size-adjust: 100%; - /* 2 */ - -webkit-text-size-adjust: 100%; - /* 2 */ } - -/** - * Remove default margin. - */ -body { - margin: 0; } - -/* HTML5 display definitions - ========================================================================== */ -/** - * Correct `block` display not defined for any HTML5 element in IE 8/9. - * Correct `block` display not defined for `details` or `summary` in IE 10/11 - * and Firefox. - * Correct `block` display not defined for `main` in IE 11. - */ -article, -aside, -details, -figcaption, -figure, -footer, -header, -hgroup, -main, -menu, -nav, -section, -summary { - display: block; } - -/** - * 1. Correct `inline-block` display not defined in IE 8/9. - * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. - */ -audio, -canvas, -progress, -video { - display: inline-block; - /* 1 */ - vertical-align: baseline; - /* 2 */ } - -/** - * Prevent modern browsers from displaying `audio` without controls. - * Remove excess height in iOS 5 devices. - */ -audio:not([controls]) { - display: none; - height: 0; } - -/** - * Address `[hidden]` styling not present in IE 8/9/10. - * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22. - */ -[hidden], -template { - display: none; } - -/* Links - ========================================================================== */ -/** - * Remove the gray background color from active links in IE 10. - */ -a { - background-color: transparent; } - -/** - * Improve readability when focused and also mouse hovered in all browsers. - */ -a:active, -a:hover { - outline: 0; } - -/* Text-level semantics - ========================================================================== */ -/** - * Address styling not present in IE 8/9/10/11, Safari, and Chrome. - */ -abbr[title] { - border-bottom: 1px dotted; } - -/** - * Address style set to `bolder` in Firefox 4+, Safari, and Chrome. - */ -b, -strong { - font-weight: bold; } - -/** - * Address styling not present in Safari and Chrome. - */ -dfn { - font-style: italic; } - -/** - * Address variable `h1` font-size and margin within `section` and `article` - * contexts in Firefox 4+, Safari, and Chrome. - */ -h1 { - font-size: 2em; - margin: 0.67em 0; } - -/** - * Address styling not present in IE 8/9. - */ -mark { - background: #ff0; - color: #000; } - -/** - * Address inconsistent and variable font size in all browsers. - */ -small { - font-size: 80%; } - -/** - * Prevent `sub` and `sup` affecting `line-height` in all browsers. - */ -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; } - -sup { - top: -0.5em; } - -sub { - bottom: -0.25em; } - -/* Embedded content - ========================================================================== */ -/** - * Remove border when inside `a` element in IE 8/9/10. - */ -img { - border: 0; } - -/** - * Correct overflow not hidden in IE 9/10/11. - */ -svg:not(:root) { - overflow: hidden; } - -/* Grouping content - ========================================================================== */ -/** - * Address margin not present in IE 8/9 and Safari. - */ -figure { - margin: 1em 40px; } - -/** - * Address differences between Firefox and other browsers. - */ -hr { - -moz-box-sizing: content-box; - box-sizing: content-box; - height: 0; } - -/** - * Contain overflow in all browsers. - */ -pre { - overflow: auto; } - -/** - * Address odd `em`-unit font size rendering in all browsers. - */ -code, -kbd, -pre, -samp { - font-family: monospace, monospace; - font-size: 1em; } - -/* Forms - ========================================================================== */ -/** - * Known limitation: by default, Chrome and Safari on OS X allow very limited - * styling of `select`, unless a `border` property is set. - */ -/** - * 1. Correct color not being inherited. - * Known issue: affects color of disabled elements. - * 2. Correct font properties not being inherited. - * 3. Address margins set differently in Firefox 4+, Safari, and Chrome. - */ -button, -input, -optgroup, -select, -textarea { - color: inherit; - /* 1 */ - font: inherit; - /* 2 */ - margin: 0; - /* 3 */ } - -/** - * Address `overflow` set to `hidden` in IE 8/9/10/11. - */ -button { - overflow: visible; } - -/** - * Address inconsistent `text-transform` inheritance for `button` and `select`. - * All other form control elements do not inherit `text-transform` values. - * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. - * Correct `select` style inheritance in Firefox. - */ -button, -select { - text-transform: none; } - -/** - * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` - * and `video` controls. - * 2. Correct inability to style clickable `input` types in iOS. - * 3. Improve usability and consistency of cursor style between image-type - * `input` and others. - */ -button, -html input[type="button"], -input[type="reset"], -input[type="submit"] { - -webkit-appearance: button; - /* 2 */ - cursor: pointer; - /* 3 */ } - -/** - * Re-set default cursor for disabled elements. - */ -button[disabled], -html input[disabled] { - cursor: default; } - -/** - * Remove inner padding and border in Firefox 4+. - */ -button::-moz-focus-inner, -input::-moz-focus-inner { - border: 0; - padding: 0; } - -/** - * Address Firefox 4+ setting `line-height` on `input` using `!important` in - * the UA stylesheet. - */ -input { - line-height: normal; } - -/** - * It's recommended that you don't attempt to style these elements. - * Firefox's implementation doesn't respect box-sizing, padding, or width. - * - * 1. Address box sizing set to `content-box` in IE 8/9/10. - * 2. Remove excess padding in IE 8/9/10. - */ -input[type="checkbox"], -input[type="radio"] { - box-sizing: border-box; - /* 1 */ - padding: 0; - /* 2 */ } - -/** - * Fix the cursor style for Chrome's increment/decrement buttons. For certain - * `font-size` values of the `input`, it causes the cursor style of the - * decrement button to change from `default` to `text`. - */ -input[type="number"]::-webkit-inner-spin-button, -input[type="number"]::-webkit-outer-spin-button { - height: auto; } - -/** - * 1. Address `appearance` set to `searchfield` in Safari and Chrome. - * 2. Address `box-sizing` set to `border-box` in Safari and Chrome - * (include `-moz` to future-proof). - */ -input[type="search"] { - -webkit-appearance: textfield; - /* 1 */ - -moz-box-sizing: content-box; - -webkit-box-sizing: content-box; - /* 2 */ - box-sizing: content-box; } - -/** - * Remove inner padding and search cancel button in Safari and Chrome on OS X. - * Safari (but not Chrome) clips the cancel button when the search input has - * padding (and `textfield` appearance). - */ -input[type="search"]::-webkit-search-cancel-button, -input[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; } - -/** - * Define consistent border, margin, and padding. - */ -fieldset { - border: 1px solid #c0c0c0; - margin: 0 2px; - padding: 0.35em 0.625em 0.75em; } - -/** - * 1. Correct `color` not being inherited in IE 8/9/10/11. - * 2. Remove padding so people aren't caught out if they zero out fieldsets. - */ -legend { - border: 0; - /* 1 */ - padding: 0; - /* 2 */ } - -/** - * Remove default vertical scrollbar in IE 8/9/10/11. - */ -textarea { - overflow: auto; } - -/** - * Don't inherit the `font-weight` (applied by a rule above). - * NOTE: the default cannot safely be changed in Chrome and Safari on OS X. - */ -optgroup { - font-weight: bold; } - -/* Tables - ========================================================================== */ -/** - * Remove most spacing between table cells. - */ -table { - border-collapse: collapse; - border-spacing: 0; } - -td, -th { - padding: 0; } - -html { - font-size: 16px; - box-sizing: border-box; } - -body { - padding: 0; - margin: 0; - font-family: "Source Sans Pro", "Helvetica Neue", Arial, sans-serif; - font-weight: normal; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - line-height: 1.5; - color: #34495e; - background: #fefefe; - scroll-behavior: smooth; - border-top: 3px solid #c05b4d; } - -@media screen and (max-width: 800px) { - body { - border-top: 0; } } - -::selection { - background: #c05b4d; - color: #fff; } - -img { - max-width: 100%; - height: auto; - display: inline-block; - vertical-align: middle; } - -a { - color: #34495e; - text-decoration: none; } - -h1 { - font-size: 26px; - font-family: Athelas, STHeiti, Microsoft Yahei, serif; } - -h2 { - font-size: 24px; - font-family: Athelas, STHeiti, Microsoft Yahei, serif; } - -h3 { - font-size: 20px; - font-family: Athelas, STHeiti, Microsoft Yahei, serif; } - -h4 { - font-size: 16px; - font-family: Athelas, STHeiti, Microsoft Yahei, serif; } - -h5 { - font-size: 14px; - font-family: Athelas, STHeiti, Microsoft Yahei, serif; } - -h6 { - font-size: 14px; - font-family: Athelas, STHeiti, Microsoft Yahei, serif; } - -.container { - margin: 0 auto; - width: 800px; } - -@media screen and (max-width: 800px) { - .container { - width: 100%; - box-shadow: -1px -5px 5px #cacaca; } } - -.content-wrapper { - padding: 0 20px; } - -.video-container { - position: relative; - padding-bottom: 56.25%; - /* 16:9 */ - padding-top: 25px; - height: 0; } - -.video-container iframe { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; } - -.header { - padding: 20px 20px; } - .header:before, .header:after { - content: " "; - display: table; } - .header:after { - clear: both; } - .header .logo-wrapper { - float: left; } - .header .logo-wrapper .logo { - font-size: 48px; - font-family: "Chancery", cursive, LiSu, sans-serif; } - @media screen and (max-width: 800px) { - .header .logo-wrapper { - display: none; } } - .header .site-navbar { - float: right; } - .header .site-navbar .menu { - display: inline-block; - position: relative; - padding-left: 0; - padding-right: 25px; - font-family: Athelas, STHeiti, Microsoft Yahei, serif; } - .header .site-navbar .menu .menu-item { - display: inline-block; - display: inline-block; - vertical-align: middle; - transform: translateZ(0); - backface-visibility: hidden; - box-shadow: 0 0 1px transparent; - position: relative; - overflow: hidden; } - .header .site-navbar .menu .menu-item + .menu-item { - margin-left: 10px; } - .header .site-navbar .menu .menu-item:before { - content: ''; - position: absolute; - z-index: -1; - height: 2px; - bottom: 0; - left: 51%; - right: 51%; - background: #c05b4d; - transition-duration: 0.2s; - transition-property: right, left; - transition-timing-function: ease-out; } - .header .site-navbar .menu .menu-item.active:before, .header .site-navbar .menu .menu-item:active:before, .header .site-navbar .menu .menu-item:focus:before, .header .site-navbar .menu .menu-item:hover:before { - right: 0; - left: 0; } - .header .site-navbar .menu .menu-item-link { - font-size: 18px; } - @media screen and (max-width: 800px) { - .header .site-navbar { - display: none; } } - -@media screen and (max-width: 800px) { - .header { - padding: 50px 0 0; - text-align: center; } } - -.posts { - margin-bottom: 20px; - border-bottom: 1px solid #e6e6e6; } - -.post { - padding: 1.5em 0; } - .post + .post { - border-top: 1px solid #e6e6e6; } - .post .post-header { - margin-bottom: 20px; } - .post .post-header .post-title { - margin: 0; - font-size: 27px; - font-weight: 400; - font-family: Athelas, STHeiti, Microsoft Yahei, serif; } - .post .post-header .post-link { - display: inline-block; - vertical-align: middle; - transform: translateZ(0); - backface-visibility: hidden; - box-shadow: 0 0 1px transparent; - position: relative; - overflow: hidden; } - .post .post-header .post-link:before { - content: ''; - position: absolute; - z-index: -1; - height: 2px; - bottom: 0; - left: 51%; - right: 51%; - background: #c05b4d; - transition-duration: 0.2s; - transition-property: right, left; - transition-timing-function: ease-out; } - .post .post-header .post-link.active:before, .post .post-header .post-link:active:before, .post .post-header .post-link:focus:before, .post .post-header .post-link:hover:before { - right: 0; - left: 0; } - .post .post-header .post-meta .post-time { - font-size: 15px; - color: #8a8a8a; } - .post .post-header .post-meta .post-category { - display: inline; - font-size: 14px; - color: #8a8a8a; } - .post .post-header .post-meta .post-category::before { - content: '·'; } - .post .post-header .post-meta .post-category a { - color: inherit; } - .post .post-header .post-meta .post-category a + a::before { - content: '/'; - margin-right: 3px; - color: #8a8a8a !important; } - .post .post-header .post-meta .post-category a:hover { - color: #c05b4d; } - .post .post-header .post-meta .post-visits { - display: inline-block; - font-size: 14px; - color: #8a8a8a; - visibility: hidden; } - .post .post-header .post-meta .post-visits::before { - content: '·'; } - .post .post-toc { - position: absolute; - width: 200px; - margin-left: 785px; - padding: 10px; - font-family: Athelas, STHeiti, Microsoft Yahei, serif; - border-radius: 5px; - background: rgba(248, 245, 236, 0.6); - box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.125); - word-wrap: break-word; - box-sizing: border-box; } - .post .post-toc .post-toc-title { - margin: 0 10px; - font-size: 20px; - font-weight: 400; - text-transform: uppercase; } - .post .post-toc .post-toc-content { - font-size: 15px; } - .post .post-toc .post-toc-content .toc, - .post .post-toc .post-toc-content .toc-child { - list-style: square; } - .post .post-toc .post-toc-content .toc { - margin: 10px 0; - padding-left: 20px; } - .post .post-toc .post-toc-content .toc .toc-child { - padding-left: 15px; } - .post .post-toc .post-toc-content .toc-link.active { - color: #c05b4d; } - @media screen and (max-width: 1185px) { - .post .post-toc { - display: none; } } - .post .post-content h1 { - font-weight: 400; - font-family: Athelas, STHeiti, Microsoft Yahei, serif; } - .post .post-content h2 { - font-weight: 400; - font-family: Athelas, STHeiti, Microsoft Yahei, serif; } - .post .post-content h3 { - font-weight: 400; - font-family: Athelas, STHeiti, Microsoft Yahei, serif; } - .post .post-content h4 { - font-weight: 400; - font-family: Athelas, STHeiti, Microsoft Yahei, serif; } - .post .post-content h5 { - font-weight: 400; - font-family: Athelas, STHeiti, Microsoft Yahei, serif; } - .post .post-content h6 { - font-weight: 400; - font-family: Athelas, STHeiti, Microsoft Yahei, serif; } - .post .post-content .headerlink:hover { - border-bottom: 0; } - .post .post-content .headerlink::before { - content: ""; - margin-right: 5px; - font-size: 1.1em; - color: #c05b4d; } - .post .post-content a { - color: #c05b4d; - word-break: break-all; } - .post .post-content a:hover { - border-bottom: 1px solid #c05b4d; } - .post .post-content a.fancybox { - border: 0; } - .post .post-content blockquote { - margin: 2em 0; - padding: 10px 20px; - position: relative; - color: rgba(52, 73, 94, 0.8); - background-color: rgba(192, 91, 77, 0.05); - border-left: 3px solid rgba(192, 91, 77, 0.3); - box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.125); } - .post .post-content blockquote p { - margin: 0; } - .post .post-content img { - display: inline-block; - max-width: 100%; } - .post .post-content > table { - max-width: 100%; - margin: 10px 0; - border-spacing: 0; - box-shadow: 2px 2px 3px rgba(0, 0, 0, 0.125); } - .post .post-content > table thead { - background: #f8f5ec; } - .post .post-content > table th, .post .post-content > table td { - padding: 5px 15px; - border: 1px double #f4efe1; } - .post .post-content code, .post .post-content pre { - padding: 7px; - font-size: 13px; - font-family: Consolas, Monaco, Menlo, Consolas, monospace; - background: #f8f5ec; } - .post .post-content code { - padding: 3px 5px; - border-radius: 4px; - color: #c7254e; } - .post .post-content .highlight { - margin: 1em 0; - border-radius: 5px; - overflow-x: auto; - box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.125); - position: relative; } - .post .post-content .highlight table { - position: relative; } - .post .post-content .highlight table::after { - position: absolute; - top: 0; - right: 0; - left: 0; - padding: 2px 7px; - font-size: 13px; - font-weight: bold; - color: #b1b1b1; - background: #f4efe1; - content: 'Code'; } - .post .post-content .highlight.html > table::after { - content: "HTML"; } - .post .post-content .highlight.html > figcaption > span::after { - content: " · HTML"; } - .post .post-content .highlight.html figcaption + table::after { - display: none; } - .post .post-content .highlight.js > table::after { - content: "JavaScript"; } - .post .post-content .highlight.js > figcaption > span::after { - content: " · JavaScript"; } - .post .post-content .highlight.js figcaption + table::after { - display: none; } - .post .post-content .highlight.bash > table::after { - content: "Bash"; } - .post .post-content .highlight.bash > figcaption > span::after { - content: " · Bash"; } - .post .post-content .highlight.bash figcaption + table::after { - display: none; } - .post .post-content .highlight.css > table::after { - content: "CSS"; } - .post .post-content .highlight.css > figcaption > span::after { - content: " · CSS"; } - .post .post-content .highlight.css figcaption + table::after { - display: none; } - .post .post-content .highlight.scss > table::after { - content: "Scss"; } - .post .post-content .highlight.scss > figcaption > span::after { - content: " · Scss"; } - .post .post-content .highlight.scss figcaption + table::after { - display: none; } - .post .post-content .highlight.java > table::after { - content: "Java"; } - .post .post-content .highlight.java > figcaption > span::after { - content: " · Java"; } - .post .post-content .highlight.java figcaption + table::after { - display: none; } - .post .post-content .highlight.xml > table::after { - content: "XML"; } - .post .post-content .highlight.xml > figcaption > span::after { - content: " · XML"; } - .post .post-content .highlight.xml figcaption + table::after { - display: none; } - .post .post-content .highlight.python > table::after { - content: "Python"; } - .post .post-content .highlight.python > figcaption > span::after { - content: " · Python"; } - .post .post-content .highlight.python figcaption + table::after { - display: none; } - .post .post-content .highlight.json > table::after { - content: "JSON"; } - .post .post-content .highlight.json > figcaption > span::after { - content: " · JSON"; } - .post .post-content .highlight.json figcaption + table::after { - display: none; } - .post .post-content .highlight.swift > table::after { - content: "Swift"; } - .post .post-content .highlight.swift > figcaption > span::after { - content: " · Swift"; } - .post .post-content .highlight.swift figcaption + table::after { - display: none; } - .post .post-content .highlight.ruby > table::after { - content: "Ruby"; } - .post .post-content .highlight.ruby > figcaption > span::after { - content: " · Ruby"; } - .post .post-content .highlight.ruby figcaption + table::after { - display: none; } - .post .post-content .highlight.php > table::after { - content: "PHP"; } - .post .post-content .highlight.php > figcaption > span::after { - content: " · PHP"; } - .post .post-content .highlight.php figcaption + table::after { - display: none; } - .post .post-content .highlight.c > table::after { - content: "C"; } - .post .post-content .highlight.c > figcaption > span::after { - content: " · C"; } - .post .post-content .highlight.c figcaption + table::after { - display: none; } - .post .post-content .highlight.cpp > table::after { - content: "C++"; } - .post .post-content .highlight.cpp > figcaption > span::after { - content: " · C++"; } - .post .post-content .highlight.cpp figcaption + table::after { - display: none; } - .post .post-content .highlight.scheme > table::after { - content: "Scheme"; } - .post .post-content .highlight.scheme > figcaption > span::after { - content: " · Scheme"; } - .post .post-content .highlight.scheme figcaption + table::after { - display: none; } - .post .post-content .highlight.objectivec > table::after { - content: "Objective-C"; } - .post .post-content .highlight.objectivec > figcaption > span::after { - content: " · Objective-C"; } - .post .post-content .highlight.objectivec figcaption + table::after { - display: none; } - .post .post-content .highlight.yml > table::after { - content: "YAML"; } - .post .post-content .highlight.yml > figcaption > span::after { - content: " · YAML"; } - .post .post-content .highlight.yml figcaption + table::after { - display: none; } - .post .post-content .highlight.stylus > table::after { - content: "Stylus"; } - .post .post-content .highlight.stylus > figcaption > span::after { - content: " · Stylus"; } - .post .post-content .highlight.stylus figcaption + table::after { - display: none; } - .post .post-content .highlight.sql > table::after { - content: "SQL"; } - .post .post-content .highlight.sql > figcaption > span::after { - content: " · SQL"; } - .post .post-content .highlight.sql figcaption + table::after { - display: none; } - .post .post-content .highlight.http > table::after { - content: "HTTP"; } - .post .post-content .highlight.http > figcaption > span::after { - content: " · HTTP"; } - .post .post-content .highlight.http figcaption + table::after { - display: none; } - .post .post-content .highlight.go > table::after { - content: "Go"; } - .post .post-content .highlight.go > figcaption > span::after { - content: " · Go"; } - .post .post-content .highlight.go figcaption + table::after { - display: none; } - .post .post-content .highlight figcaption { - position: absolute; - top: 0; - width: 100%; - padding: 2px 7px; - font-size: 13px; - font-weight: bold; - color: #b1b1b1; - background: #f4efe1; - z-index: 20; - overflow-x: hidden; - box-sizing: border-box; } - .post .post-content .highlight figcaption > a { - position: absolute; - right: 0; - display: inline-box; - margin-right: 7px; - font-weight: 400; } - .post .post-content .highlight figcaption > a:hover { - text-decoration: none; - border: 0; } - .post .post-content .highlight .code pre { - margin: 0; - padding: 30px 10px 10px; } - .post .post-content .highlight .gutter { - width: 10px; - color: #cacaca; } - .post .post-content .highlight .gutter pre { - margin: 0; - padding: 30px 7px 10px; } - .post .post-content .highlight .line { - height: 20px; } - .post .post-content .highlight table, .post .post-content .highlight tr, .post .post-content .highlight td { - margin: 0; - padding: 0; - width: 100%; - border-collapse: collapse; } - .post .post-content .highlight .code .comment, - .post .post-content .highlight .code .quote { - color: #93a1a1; } - .post .post-content .highlight .code .keyword, - .post .post-content .highlight .code .selector-tag, - .post .post-content .highlight .code .addition { - color: #859900; } - .post .post-content .highlight .code .number, - .post .post-content .highlight .code .string, - .post .post-content .highlight .code .meta .meta-string, - .post .post-content .highlight .code .literal, - .post .post-content .highlight .code .doctag, - .post .post-content .highlight .code .regexp { - color: #2aa198; } - .post .post-content .highlight .code .title, - .post .post-content .highlight .code .section, - .post .post-content .highlight .code .name, - .post .post-content .highlight .code .selector-id, - .post .post-content .highlight .code .selector-class { - color: #268bd2; } - .post .post-content .highlight .code .attribute, - .post .post-content .highlight .code .attr, - .post .post-content .highlight .code .variable, - .post .post-content .highlight .code .template-variable, - .post .post-content .highlight .code .class .title, - .post .post-content .highlight .code .type { - color: #b58900; } - .post .post-content .highlight .code .symbol, - .post .post-content .highlight .code .bullet, - .post .post-content .highlight .code .subst, - .post .post-content .highlight .code .meta, - .post .post-content .highlight .code .meta .keyword, - .post .post-content .highlight .code .selector-attr, - .post .post-content .highlight .code .selector-pseudo, - .post .post-content .highlight .code .link { - color: #cb4b16; } - .post .post-content .highlight .code .built_in, - .post .post-content .highlight .code .deletion { - color: #dc322f; } - .post .post-content .read-more .read-more-link { - color: #c05b4d; - font-size: 1.1em; - font-family: Athelas, STHeiti, Microsoft Yahei, serif; } - .post .post-content .read-more .read-more-link:hover { - border-bottom: 1px solid #c05b4d; } - .post .post-copyright { - margin-top: 20px; - padding-top: 10px; - border-top: 1px dashed #e6e6e6; } - .post .post-copyright .copyright-item { - margin: 5px 0; } - .post .post-copyright .copyright-item a { - color: #c05b4d; } - .post .post-reward { - margin-top: 20px; - padding-top: 10px; - text-align: center; - border-top: 1px dashed #e6e6e6; } - .post .post-reward .reward-button { - margin: 15px 0; - padding: 3px 7px; - display: inline-block; - color: #c05b4d; - border: 1px solid #c05b4d; - border-radius: 5px; - cursor: pointer; } - .post .post-reward .reward-button:hover { - color: #fefefe; - background-color: #c05b4d; - transition: 0.5s; } - .post .post-reward #reward:checked ~ .qr-code { - display: block; } - .post .post-reward #reward:checked ~ .reward-button { - display: none; } - .post .post-reward .qr-code { - display: none; - margin-top: 15px; } - .post .post-reward .qr-code .qr-code-image { - display: inline-block; - min-width: 200px; - width: 40%; } - .post .post-reward .qr-code .image { - width: 200px; - height: 200px; } - .post .post-footer { - margin-top: 20px; - border-top: 1px solid #e6e6e6; - font-family: Athelas, STHeiti, Microsoft Yahei, serif; } - .post .post-footer .post-tags { - padding: 15px 0; } - .post .post-footer .post-tags a { - margin-right: 5px; - color: #c05b4d; - word-break: break-all; } - .post .post-footer .post-tags a::before { - content: '#'; } - .post .post-footer .post-nav { - margin: 1em 0; } - .post .post-footer .post-nav:before, .post .post-footer .post-nav:after { - content: " "; - display: table; } - .post .post-footer .post-nav:after { - clear: both; } - .post .post-footer .post-nav .prev, - .post .post-footer .post-nav .next { - font-weight: 600; - font-size: 18px; - font-family: Athelas, STHeiti, Microsoft Yahei, serif; - transition-property: transform; - transition-timing-function: ease-out; - transition-duration: 0.3s; } - .post .post-footer .post-nav .prev { - float: left; } - .post .post-footer .post-nav .prev:hover { - color: #c05b4d; - transform: translateX(-4px); } - .post .post-footer .post-nav .next { - float: right; } - .post .post-footer .post-nav .next:hover { - color: #c05b4d; - transform: translateX(4px); } - .post .post-footer .post-nav .nav-mobile { - display: none; } - @media screen and (max-width: 800px) { - .post .post-footer .post-nav .nav-default { - display: none; } - .post .post-footer .post-nav .nav-mobile { - display: inline; } } - -.pagination { - margin: 2em 0; } - .pagination:before, .pagination:after { - content: " "; - display: table; } - .pagination:after { - clear: both; } - .pagination .prev, - .pagination .next { - font-weight: 600; - font-size: 20px; - font-family: Athelas, STHeiti, Microsoft Yahei, serif; - transition-property: transform; - transition-timing-function: ease-out; - transition-duration: 0.3s; } - .pagination .prev { - float: left; } - .pagination .prev:hover { - color: #c05b4d; - transform: translateX(-4px); } - .pagination .next { - float: right; } - .pagination .next:hover { - color: #c05b4d; - transform: translateX(4px); } - -.footer { - margin-top: 2em; } - .footer .social-links { - text-align: center; } - .footer .social-links .iconfont { - font-size: 30px; } - .footer .social-links .iconfont + .iconfont { - margin-left: 10px; } - .footer .social-links .iconfont:hover { - color: #c05b4d; } - .footer .copyright { - margin: 10px 0; - color: #8a8a8a; - text-align: center; - font-family: Athelas, STHeiti, Microsoft Yahei, serif; } - .footer .copyright .hexo-link, - .footer .copyright .theme-link { - color: #c05b4d; } - .footer .copyright .copyright-year { - display: block; } - .footer .copyright .copyright-year .heart { - font-size: 14px; } - -.archive { - margin: 2em 0px; - max-width: 550px; } - .archive .archive-title { - font-family: Athelas, STHeiti, Microsoft Yahei, serif; } - .archive .archive-title.tag, .archive .archive-title.category { - margin: 15px 0; } - .archive .archive-title .archive-name { - margin: 0; - display: inline-block; - font-weight: 400; - font-size: 30px; - line-height: 32px; } - .archive .archive-title .archive-post-counter { - display: none; - color: #8a8a8a; } - .archive .collection-title { - font-family: Athelas, STHeiti, Microsoft Yahei, serif; } - .archive .collection-title .archive-year { - margin: 15px 0; - font-weight: 400; - font-size: 28px; - line-height: 30px; } - .archive .archive-post { - padding: 3px 20px; - border-left: 1px solid #cacaca; } - .archive .archive-post .archive-post-time { - margin-right: 10px; - color: #8a8a8a; } - .archive .archive-post .archive-post-title .archive-post-link { - color: #c05b4d; } - .archive .archive-post::first-child { - margin-top: 10px; } - .archive .archive-post:hover { - border-left: 3px solid #c05b4d; - transition: 0.2s ease-out; - transform: translateX(4px); } - .archive .archive-post:hover .archive-post-time { - color: #717171; } - .archive .archive-post:hover .archive-post-title .archive-post-link { - color: #a14639; } - -@media screen and (max-width: 800px) { - .archive { - margin-left: auto; - margin-right: auto; } - .archive .archive-title .archive-name { - font-size: 26px; } - .archive .collection-title .archive-year { - margin: 10px 0; - font-size: 24px; } - .archive .archive-post { - padding: 5px 10px; } - .archive .archive-post .archive-post-time { - font-size: 13px; - display: block; } } - -.tag-cloud { - margin: 2em 0 3em; - text-align: center; - font-family: Athelas, STHeiti, Microsoft Yahei, serif; } - .tag-cloud .tag-cloud-title { - display: inline-block; - font-size: 18px; - color: #c05b4d; - border-bottom: 2px solid #c05b4d; } - .tag-cloud .tag-cloud-tags { - margin: 10px 0; } - .tag-cloud .tag-cloud-tags a { - display: inline-block; - position: relative; - margin: 5px 10px; - word-wrap: break-word; - transition-duration: 0.2s; - transition-property: transform; - transition-timing-function: ease-out; } - .tag-cloud .tag-cloud-tags a:active, .tag-cloud .tag-cloud-tags a:focus, .tag-cloud .tag-cloud-tags a:hover { - color: #c05b4d; - transform: scale(1.1); } - -.categories { - margin: 2em 0 3em; - text-align: center; - font-family: Athelas, STHeiti, Microsoft Yahei, serif; } - .categories .categories-title { - display: inline-block; - font-size: 18px; - color: #c05b4d; - border-bottom: 2px solid #c05b4d; } - .categories .categories-tags { - margin: 10px 0; } - .categories .categories-tags .category-link { - display: inline-block; - position: relative; - margin: 5px 10px; - word-wrap: break-word; - transition-duration: 0.2s; - transition-property: transform; - transition-timing-function: ease-out; } - .categories .categories-tags .category-link .category-count { - display: inline-block; - position: relative; - top: -8px; - right: -2px; - color: #c05b4d; - font-size: 12px; } - .categories .categories-tags .category-link:active, .categories .categories-tags .category-link:focus, .categories .categories-tags .category-link:hover { - color: #c05b4d; - transform: scale(1.1); } - -@font-face { - font-family: 'iconfont'; - /* project id 96542 */ - src: url("//at.alicdn.com/t/font_96542_ixz9jngnf1sb57b9.eot"); - src: url("//at.alicdn.com/t/font_96542_ixz9jngnf1sb57b9.eot?#iefix") format("embedded-opentype"), url("//at.alicdn.com/t/font_96542_ixz9jngnf1sb57b9.woff") format("woff"), url("//at.alicdn.com/t/font_96542_ixz9jngnf1sb57b9.ttf") format("truetype"), url("//at.alicdn.com/t/font_96542_ixz9jngnf1sb57b9.svg#iconfont") format("svg"); } - -.iconfont { - font-family: "iconfont" !important; - font-style: normal; - -webkit-font-smoothing: antialiased; - -webkit-text-stroke-width: 0.2px; - -moz-osx-font-smoothing: grayscale; - cursor: pointer; } - -.icon-instagram:before { - font-size: .95em; - content: "\e611"; - position: relative; - top: -1px; } - -.icon-douban:before { - content: "\e610"; } - -.icon-tumblr:before { - content: "\e69f"; - font-size: .85em; - position: relative; - top: -4px; } - -.icon-linkedin:before { - content: "\e60d"; - position: relative; - top: -4px; } - -.icon-twitter:before { - content: "\e600"; } - -.icon-weibo:before { - content: "\e602"; } - -.icon-stack-overflow:before { - content: "\e603"; - font-size: .85em; - position: relative; - top: -4px; } - -.icon-email:before { - content: "\e605"; - position: relative; - top: -2px; } - -.icon-facebook:before { - content: "\e601"; - font-size: .95em; - position: relative; - top: -2px; } - -.icon-github:before { - content: "\e606"; - position: relative; - top: -3px; } - -.icon-rss:before { - content: "\e604"; } - -.icon-google:before { - content: "\e609"; } - -.icon-zhihu:before { - content: "\e607"; - font-size: .9em; - position: relative; - top: -2px; } - -.icon-pocket:before { - content: "\e856"; } - -/* Generic Icon */ -.icon-heart:before { - content: "\e608"; } - -.icon-right:before { - content: "\e60a"; } - -.icon-left:before { - content: "\e60b"; } - -.icon-up:before { - content: "\e60c"; } - -.icon-close:before { - content: "\e60f"; } - -.slideout-menu { - position: fixed; - top: 0; - left: 0px; - bottom: 0; - width: 180px; - min-height: 100vh; - overflow-y: hidden; - -webkit-overflow-scrolling: touch; - z-index: 0; - display: none; } - -.slideout-panel { - position: relative; - z-index: 1; - background-color: #fefefe; - min-height: 100vh; } - -.slideout-open, -.slideout-open body, -.slideout-open .slideout-panel { - overflow: hidden; } - -.slideout-open .slideout-menu { - display: block; } - -.mobile-navbar { - display: none; - position: fixed; - top: 0; - left: 0; - width: 100%; - height: 50px; - background: #fefefe; - box-shadow: 0px 2px 2px #cacaca; - text-align: center; - transition: transform 300ms ease; - z-index: 99; } - .mobile-navbar.fixed-open { - transform: translate3d(180px, 0px, 0px); } - .mobile-navbar .mobile-header-logo { - display: inline-block; - margin-right: 50px; } - .mobile-navbar .mobile-header-logo .logo { - font-size: 22px; - line-height: 50px; - font-family: "Chancery", cursive, LiSu, sans-serif; } - .mobile-navbar .mobile-navbar-icon { - color: #c05b4d; - height: 50px; - width: 50px; - font-size: 24px; - text-align: center; - float: left; - position: relative; - transition: background 0.5s; } - -@keyframes clickfirst { - 0% { - transform: translateY(6px) rotate(0deg); } - 100% { - transform: translateY(0) rotate(45deg); } } - -@keyframes clickmid { - 0% { - opacity: 1; } - 100% { - opacity: 0; } } - -@keyframes clicklast { - 0% { - transform: translateY(-6px) rotate(0deg); } - 100% { - transform: translateY(0) rotate(-45deg); } } - -@keyframes outfirst { - 0% { - transform: translateY(0) rotate(-45deg); } - 100% { - transform: translateY(-6px) rotate(0deg); } } - -@keyframes outmid { - 0% { - opacity: 0; } - 100% { - opacity: 1; } } - -@keyframes outlast { - 0% { - transform: translateY(0) rotate(45deg); } - 100% { - transform: translateY(6px) rotate(0deg); } } - .mobile-navbar .mobile-navbar-icon span { - position: absolute; - left: calc((100% - 20px) / 2); - top: calc((100% - 1px) / 2); - width: 20px; - height: 1px; - background-color: #c05b4d; } - .mobile-navbar .mobile-navbar-icon span:nth-child(1) { - transform: translateY(6px) rotate(0deg); } - .mobile-navbar .mobile-navbar-icon span:nth-child(3) { - transform: translateY(-6px) rotate(0deg); } - .mobile-navbar .mobile-navbar-icon.icon-click span:nth-child(1) { - animation-duration: 0.5s; - animation-fill-mode: both; - animation-name: clickfirst; } - .mobile-navbar .mobile-navbar-icon.icon-click span:nth-child(2) { - animation-duration: 0.2s; - animation-fill-mode: both; - animation-name: clickmid; } - .mobile-navbar .mobile-navbar-icon.icon-click span:nth-child(3) { - animation-duration: 0.5s; - animation-fill-mode: both; - animation-name: clicklast; } - .mobile-navbar .mobile-navbar-icon.icon-out span:nth-child(1) { - animation-duration: 0.5s; - animation-fill-mode: both; - animation-name: outfirst; } - .mobile-navbar .mobile-navbar-icon.icon-out span:nth-child(2) { - animation-duration: 0.2s; - animation-fill-mode: both; - animation-name: outmid; } - .mobile-navbar .mobile-navbar-icon.icon-out span:nth-child(3) { - animation-duration: 0.5s; - animation-fill-mode: both; - animation-name: outlast; } - -.mobile-menu { - background-color: rgba(248, 245, 236, 0.5); } - .mobile-menu .mobile-menu-list { - position: relative; - list-style: none; - margin-top: 50px; - padding: 0; - border-top: 1px solid #f8f5ec; } - .mobile-menu .mobile-menu-list .mobile-menu-item { - padding: 10px 30px; - border-bottom: 1px solid #f8f5ec; } - .mobile-menu .mobile-menu-list a { - font-size: 18px; - font-family: Athelas, STHeiti, Microsoft Yahei, serif; } - .mobile-menu .mobile-menu-list a:hover { - color: #c05b4d; } - -@media screen and (max-width: 800px) { - .mobile-navbar { - display: block; } } - -.back-to-top { - display: none; - position: fixed; - right: 20px; - bottom: 20px; - transition-property: transform; - transition-timing-function: ease-out; - transition-duration: 0.3s; - z-index: 10; } - .back-to-top:hover { - transform: translateY(-5px); } - -@media screen and (max-width: 800px) { - .back-to-top { - display: none !important; } } diff --git a/deploy.sh b/deploy.sh new file mode 100644 index 0000000..baa6523 --- /dev/null +++ b/deploy.sh @@ -0,0 +1,6 @@ +hexo generate +cp -R public/* .deploy/techidea.github.io +cd .deploy/techidea.github.io +git add . +git commit -m “first” +git push origin master \ No newline at end of file diff --git a/deploy.sh.bak b/deploy.sh.bak new file mode 100644 index 0000000..d43b051 --- /dev/null +++ b/deploy.sh.bak @@ -0,0 +1,6 @@ +hexo generate +cp -R public/* .deploy/chaozaiai.github.io +cd .deploy/chaozaiai.github.io +git add . +git commit -m “《人人都能用英语》” +git push origin master \ No newline at end of file diff --git a/favicon.ico b/favicon.ico deleted file mode 100644 index 60299ae..0000000 Binary files a/favicon.ico and /dev/null differ diff --git a/fonts/chancery/apple-chancery-webfont.eot b/fonts/chancery/apple-chancery-webfont.eot deleted file mode 100644 index 39c3936..0000000 Binary files a/fonts/chancery/apple-chancery-webfont.eot and /dev/null differ diff --git a/fonts/chancery/apple-chancery-webfont.svg b/fonts/chancery/apple-chancery-webfont.svg deleted file mode 100644 index 2b18b6a..0000000 --- a/fonts/chancery/apple-chancery-webfont.svg +++ /dev/null @@ -1,228 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/fonts/chancery/apple-chancery-webfont.ttf b/fonts/chancery/apple-chancery-webfont.ttf deleted file mode 100644 index 8238aa4..0000000 Binary files a/fonts/chancery/apple-chancery-webfont.ttf and /dev/null differ diff --git a/fonts/chancery/apple-chancery-webfont.woff b/fonts/chancery/apple-chancery-webfont.woff deleted file mode 100644 index e476776..0000000 Binary files a/fonts/chancery/apple-chancery-webfont.woff and /dev/null differ diff --git a/fonts/chancery/apple-chancery-webfont.woff2 b/fonts/chancery/apple-chancery-webfont.woff2 deleted file mode 100644 index 922dfb3..0000000 Binary files a/fonts/chancery/apple-chancery-webfont.woff2 and /dev/null differ diff --git a/image/reward/alipay.png b/image/reward/alipay.png deleted file mode 100644 index fa72f72..0000000 Binary files a/image/reward/alipay.png and /dev/null differ diff --git a/image/reward/wechat.png b/image/reward/wechat.png deleted file mode 100644 index 68fe622..0000000 Binary files a/image/reward/wechat.png and /dev/null differ diff --git a/images/Vivian-Maier-Self-Portrait-18.jpg b/images/Vivian-Maier-Self-Portrait-18.jpg deleted file mode 100644 index 79435bd..0000000 Binary files a/images/Vivian-Maier-Self-Portrait-18.jpg and /dev/null differ diff --git a/images/note/design2017bookshelf.jpg b/images/note/design2017bookshelf.jpg deleted file mode 100644 index caff463..0000000 Binary files a/images/note/design2017bookshelf.jpg and /dev/null differ diff --git a/images/note/design2017zhanqu.jpg b/images/note/design2017zhanqu.jpg deleted file mode 100644 index 7c6fa5d..0000000 Binary files a/images/note/design2017zhanqu.jpg and /dev/null differ diff --git a/images/note/huqiu_liuyuan.png b/images/note/huqiu_liuyuan.png deleted file mode 100644 index 1e95d75..0000000 Binary files a/images/note/huqiu_liuyuan.png and /dev/null differ diff --git a/images/note/liuyuan_suzhou.png b/images/note/liuyuan_suzhou.png deleted file mode 100644 index 4afee57..0000000 Binary files a/images/note/liuyuan_suzhou.png and /dev/null differ diff --git a/images/note/suzhou_zhuozheng.png b/images/note/suzhou_zhuozheng.png deleted file mode 100644 index 5144ada..0000000 Binary files a/images/note/suzhou_zhuozheng.png and /dev/null differ diff --git a/images/note/zhengzhou2.jpg b/images/note/zhengzhou2.jpg deleted file mode 100644 index 31c9fcb..0000000 Binary files a/images/note/zhengzhou2.jpg and /dev/null differ diff --git a/images/note/zhengzhoudongfenglu.jpg b/images/note/zhengzhoudongfenglu.jpg deleted file mode 100644 index f4938a9..0000000 Binary files a/images/note/zhengzhoudongfenglu.jpg and /dev/null differ diff --git a/images/note/zhuozheng_huqiu.png b/images/note/zhuozheng_huqiu.png deleted file mode 100644 index 8c2e12d..0000000 Binary files a/images/note/zhuozheng_huqiu.png and /dev/null differ diff --git a/images/zhengzhou2.jpg b/images/zhengzhou2.jpg deleted file mode 100644 index 31c9fcb..0000000 Binary files a/images/zhengzhou2.jpg and /dev/null differ diff --git a/images/zhengzhoudongfenglu.jpg b/images/zhengzhoudongfenglu.jpg deleted file mode 100644 index f4938a9..0000000 Binary files a/images/zhengzhoudongfenglu.jpg and /dev/null differ diff --git a/index.html b/index.html deleted file mode 100644 index 95acab2..0000000 --- a/index.html +++ /dev/null @@ -1,729 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 序员乱翻书 - - -
- -
- - - -
-
- - - -
- - -
-
-
- -
- - -
-
-

- - 所谓辛苦,与功不抵过 - -

- - -
- - - - -
- - - - - - - -

2月14号过完年回到上海,到现在过去3个月,项目上没有再写过代码了。接手两个品牌官网运维的事情,总算是有点了技术方面的管理经验。

-

几句话总结这三个月就是:

-

“所谓辛苦加班,都是为了填前面自己挖的坑”

-

“技术能力很强,但是总是思考不周全或者马虎犯错,终究功不抵过”

-

“站在客户的立场,检查你交付的内容,你会检查出来好多需要完善的点”

-

“主动做重要不紧急的事情,规避项目风险”

-

“假设自己是领导,你希望别人提交内容的相关要求(不管是格式还是命名),就是你现在提交内容的要求,包括沟通方式”

- - - -
- - - - - -
- - - -
-
-

- - 想家 - -

- - -
- - - - -
- - - - - - - -

现在时间22:22,听着轻音乐,我真的好想家。

- - - -
- - - - - -
- - - -
-
-

- - 希望是最后一次搬家 - -

- - -
- - - - -
- - - - - - - -

刚才吃士力架,竟然有口水滴在桌子上……

- - - -
- - - - - -
- - - -
-
-

- - 《关于Vivian Maier》-感触 - -

- - -
- - - - -
- - - - - - - -

他们那时候,人们在街上并没有今天这样过分强调隐私。在今天,隐私越来越受强调和保护,出现在街头的照相机却经常成为受到斥退的对象。

-

但是,隐私受到过分重视的一个结果是,隐私退回到室后的街头,却又再次成为可能捡拾人性隐私的剩余物的场所,甚至是唯一场所。

- - - -
- - - - - -
- - - - - - - -
-
-

- - 丛集性头疼的治疗和预防 - -

- - -
- - - - -
- - - - - - - -

最近头痛又犯了,一直以为的偏头疼,原来是丛集性头痛。

- - - -
- - - - - -
- - - - - - - -
-
-

- - 《流星雨》三毛 - -

- - -
- - - - -
- - - - - -

最近一直在看三毛的作品,读到《流星雨》,三毛写了她的门当户对:

-
-

所以我认为年龄、经济、国籍,甚至于学识都不是择偶的条件,固然对一般人来说这些条件当然是重要的,但是我认为最重要的,还是彼此的品格和心灵,这才是我们所要讲求的所谓“门当户对”的东西。

-
- - - -
- - - - - -
- - - -
-
-

- - 《Love》 by Roy Croft - -

- - -
- - - - -
- - - - - - - -

在有道百词斩爱阅读里面偶然听到一首英文诗。

-

I love you,   
Not for what you are,   
But for what I am   
When I am with you.

- - - -
- - - - - -
- - - -
-
-

- - 地铁门里门外 - -

- - -
- - - - -
- - - - - - - -

在这个城市,我们和人分别说再见,基本都在地铁站。下午返回住的地方的时候,看到一个女孩和她男朋友(应该是吧)一起乘地铁,两人依偎在门边说话。到了长寿路地铁站,男孩先下车,他站在门外等列车通过再走,因为女孩还在车上,他们的终点站不同。男孩在外面低头看着手机,女孩在车内一直望着男孩微笑。直到列车门关上,开出那一站,男孩似乎都没有抬头和女孩说再见。女孩仍然看着男孩微笑,当列车开出走远,她脸上有些落寞的表情闪现,然后拿出红色的无线蓝牙耳机,开始听歌。

-

离开一座城市时,我们会在火车站或者候机室,和你道声珍重与再见。

- - - -
- - - - - -
- - -
- - - - - -
- - -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/js/src/bootstrap.js b/js/src/bootstrap.js deleted file mode 100644 index 7b1ff52..0000000 --- a/js/src/bootstrap.js +++ /dev/null @@ -1,7 +0,0 @@ -$(document).ready(function () { - Even.backToTop(); - Even.mobileNavbar(); - Even.toc(); - Even.fancybox(); - Even.visits(); -}); diff --git a/js/src/even.js b/js/src/even.js deleted file mode 100644 index 96fe0f8..0000000 --- a/js/src/even.js +++ /dev/null @@ -1,201 +0,0 @@ -(function (window) { - 'use strict'; - - var Even = {}; - - Even.backToTop = function () { - var $backToTop = $('#back-to-top'); - - $(window).scroll(function () { - if ($(window).scrollTop() > 100) { - $backToTop.fadeIn(1000); - } else { - $backToTop.fadeOut(1000); - } - }); - - $backToTop.click(function () { - $('body,html').animate({ scrollTop: 0 }); - }); - }; - - Even.mobileNavbar = function () { - var $mobileNav = $('#mobile-navbar'); - var $mobileNavIcon = $('.mobile-navbar-icon'); - var slideout = new Slideout({ - 'panel': document.getElementById('mobile-panel'), - 'menu': document.getElementById('mobile-menu'), - 'padding': 180, - 'tolerance': 70 - }); - slideout.disableTouch(); - - $mobileNavIcon.click(function () { - slideout.toggle(); - }); - - slideout.on('beforeopen', function () { - $mobileNav.addClass('fixed-open'); - $mobileNavIcon.addClass('icon-click').removeClass('icon-out'); - }); - - slideout.on('beforeclose', function () { - $mobileNav.removeClass('fixed-open'); - $mobileNavIcon.addClass('icon-out').removeClass('icon-click'); - }); - - $('#mobile-panel').on('touchend', function () { - slideout.isOpen() && $mobileNavIcon.click(); - }); - }; - - Even.toc = function () { - var SPACING = 20; - var $toc = $('.post-toc'), - $footer = $('.post-footer'); - - if ($toc.length) { - var minScrollTop = $toc.offset().top - SPACING; - var maxScrollTop = $footer.offset().top - $toc.height() - SPACING; - - var tocState = { - start: { - 'position': 'absolute', - 'top': minScrollTop - }, - process: { - 'position': 'fixed', - 'top': SPACING - }, - end: { - 'position': 'absolute', - 'top': maxScrollTop - } - } - - $(window).scroll(function () { - var scrollTop = $(window).scrollTop(); - - if (scrollTop < minScrollTop) { - $toc.css(tocState.start); - } else if (scrollTop > maxScrollTop) { - $toc.css(tocState.end); - } else { - $toc.css(tocState.process); - } - }) - } - - var HEADERFIX = 30; - var $toclink = $('.toc-link'), - $headerlink = $('.headerlink'); - - var headerlinkTop = $.map($headerlink, function (link) { - return $(link).offset().top; - }); - - $(window).scroll(function () { - var scrollTop = $(window).scrollTop(); - - for (var i = 0; i < $toclink.length; i++) { - var isLastOne = i + 1 === $toclink.length, - currentTop = headerlinkTop[i] - HEADERFIX, - nextTop = isLastOne ? Infinity : headerlinkTop[i+1] - HEADERFIX; - - if (currentTop < scrollTop && scrollTop <= nextTop) { - $($toclink[i]).addClass('active'); - } else { - $($toclink[i]).removeClass('active'); - } - } - }); - }; - - Even.fancybox = function () { - if ($.fancybox){ - $('.post').each(function () { - $(this).find('img').each(function () { - $(this).wrap(''); - }); - }); - - $('.fancybox').fancybox({ - openEffect : 'elastic', - closeEffect : 'elastic' - }); - } - }; - - Even.visits = function () { - var $visits = $('.post-visits'); - - function updateVisits(dom, time) { - var text = dom.text() + ' ' + time; - dom.text(text).css('visibility', 'visible'); - } - - function addCounter(Counter) { - var query = new AV.Query(Counter); - - var url = $visits.data('url').trim(); - var title = $visits.data('title').trim(); - - query.equalTo('url', url); - query.find().then(function (results) { - if (results.length > 0) { - var counter = results[0]; - counter.save(null, { - fetchWhenSave: true - }).then(function (counter) { - counter.increment('time', 1); - return counter.save(); - }).then(function (counter) { - updateVisits($visits, counter.get('time')); - }); - } else { - var newcounter = new Counter(); - newcounter.set('title', title); - newcounter.set('url', url); - newcounter.set('time', 1); - - newcounter.save().then(function (counter) { - updateVisits($visits, newcounter.get('time')); - }); - } - }, function (error) { - console.log('Error:' + error.code + " " + error.message); - }); - } - - function showTime(Counter) { - $visits.each(function () { - var $this = $(this); - var query = new AV.Query(Counter); - var url = $this.data('url').trim(); - - query.equalTo('url', url); - query.find().then(function (results) { - if (results.length === 0) { - updateVisits($this, 0); - } else { - var counter = results[0]; - updateVisits($this, counter.get('time')); - } - }, function (error) { - console.log('Error:' + error.code + " " + error.message); - }); - }) - } - - if (typeof AV === 'object') { - var Counter = AV.Object.extend('Counter'); - if ($visits.length === 1) { - addCounter(Counter); - } else { - showTime(Counter); - } - } - } - - window.Even = Even; -})(window); diff --git a/lib/fancybox/jquery.fancybox.pack.js b/lib/fancybox/jquery.fancybox.pack.js deleted file mode 100644 index 73f7578..0000000 --- a/lib/fancybox/jquery.fancybox.pack.js +++ /dev/null @@ -1,46 +0,0 @@ -/*! fancyBox v2.1.5 fancyapps.com | fancyapps.com/fancybox/#license */ -(function(r,G,f,v){var J=f("html"),n=f(r),p=f(G),b=f.fancybox=function(){b.open.apply(this,arguments)},I=navigator.userAgent.match(/msie/i),B=null,s=G.createTouch!==v,t=function(a){return a&&a.hasOwnProperty&&a instanceof f},q=function(a){return a&&"string"===f.type(a)},E=function(a){return q(a)&&0
',image:'',iframe:'",error:'

The requested content cannot be loaded.
Please try again later.

',closeBtn:'',next:'',prev:''},openEffect:"fade",openSpeed:250,openEasing:"swing",openOpacity:!0, -openMethod:"zoomIn",closeEffect:"fade",closeSpeed:250,closeEasing:"swing",closeOpacity:!0,closeMethod:"zoomOut",nextEffect:"elastic",nextSpeed:250,nextEasing:"swing",nextMethod:"changeIn",prevEffect:"elastic",prevSpeed:250,prevEasing:"swing",prevMethod:"changeOut",helpers:{overlay:!0,title:!0},onCancel:f.noop,beforeLoad:f.noop,afterLoad:f.noop,beforeShow:f.noop,afterShow:f.noop,beforeChange:f.noop,beforeClose:f.noop,afterClose:f.noop},group:{},opts:{},previous:null,coming:null,current:null,isActive:!1, -isOpen:!1,isOpened:!1,wrap:null,skin:null,outer:null,inner:null,player:{timer:null,isActive:!1},ajaxLoad:null,imgPreload:null,transitions:{},helpers:{},open:function(a,d){if(a&&(f.isPlainObject(d)||(d={}),!1!==b.close(!0)))return f.isArray(a)||(a=t(a)?f(a).get():[a]),f.each(a,function(e,c){var k={},g,h,j,m,l;"object"===f.type(c)&&(c.nodeType&&(c=f(c)),t(c)?(k={href:c.data("fancybox-href")||c.attr("href"),title:c.data("fancybox-title")||c.attr("title"),isDom:!0,element:c},f.metadata&&f.extend(!0,k, -c.metadata())):k=c);g=d.href||k.href||(q(c)?c:null);h=d.title!==v?d.title:k.title||"";m=(j=d.content||k.content)?"html":d.type||k.type;!m&&k.isDom&&(m=c.data("fancybox-type"),m||(m=(m=c.prop("class").match(/fancybox\.(\w+)/))?m[1]:null));q(g)&&(m||(b.isImage(g)?m="image":b.isSWF(g)?m="swf":"#"===g.charAt(0)?m="inline":q(c)&&(m="html",j=c)),"ajax"===m&&(l=g.split(/\s+/,2),g=l.shift(),l=l.shift()));j||("inline"===m?g?j=f(q(g)?g.replace(/.*(?=#[^\s]+$)/,""):g):k.isDom&&(j=c):"html"===m?j=g:!m&&(!g&& -k.isDom)&&(m="inline",j=c));f.extend(k,{href:g,type:m,content:j,title:h,selector:l});a[e]=k}),b.opts=f.extend(!0,{},b.defaults,d),d.keys!==v&&(b.opts.keys=d.keys?f.extend({},b.defaults.keys,d.keys):!1),b.group=a,b._start(b.opts.index)},cancel:function(){var a=b.coming;a&&!1!==b.trigger("onCancel")&&(b.hideLoading(),b.ajaxLoad&&b.ajaxLoad.abort(),b.ajaxLoad=null,b.imgPreload&&(b.imgPreload.onload=b.imgPreload.onerror=null),a.wrap&&a.wrap.stop(!0,!0).trigger("onReset").remove(),b.coming=null,b.current|| -b._afterZoomOut(a))},close:function(a){b.cancel();!1!==b.trigger("beforeClose")&&(b.unbindEvents(),b.isActive&&(!b.isOpen||!0===a?(f(".fancybox-wrap").stop(!0).trigger("onReset").remove(),b._afterZoomOut()):(b.isOpen=b.isOpened=!1,b.isClosing=!0,f(".fancybox-item, .fancybox-nav").remove(),b.wrap.stop(!0,!0).removeClass("fancybox-opened"),b.transitions[b.current.closeMethod]())))},play:function(a){var d=function(){clearTimeout(b.player.timer)},e=function(){d();b.current&&b.player.isActive&&(b.player.timer= -setTimeout(b.next,b.current.playSpeed))},c=function(){d();p.unbind(".player");b.player.isActive=!1;b.trigger("onPlayEnd")};if(!0===a||!b.player.isActive&&!1!==a){if(b.current&&(b.current.loop||b.current.index=c.index?"next":"prev"],b.router=e||"jumpto",c.loop&&(0>a&&(a=c.group.length+a%c.group.length),a%=c.group.length),c.group[a]!==v&&(b.cancel(),b._start(a)))},reposition:function(a,d){var e=b.current,c=e?e.wrap:null,k;c&&(k=b._getPosition(d),a&&"scroll"===a.type?(delete k.position,c.stop(!0,!0).animate(k,200)):(c.css(k),e.pos=f.extend({},e.dim,k)))},update:function(a){var d= -a&&a.type,e=!d||"orientationchange"===d;e&&(clearTimeout(B),B=null);b.isOpen&&!B&&(B=setTimeout(function(){var c=b.current;c&&!b.isClosing&&(b.wrap.removeClass("fancybox-tmp"),(e||"load"===d||"resize"===d&&c.autoResize)&&b._setDimension(),"scroll"===d&&c.canShrink||b.reposition(a),b.trigger("onUpdate"),B=null)},e&&!s?0:300))},toggle:function(a){b.isOpen&&(b.current.fitToView="boolean"===f.type(a)?a:!b.current.fitToView,s&&(b.wrap.removeAttr("style").addClass("fancybox-tmp"),b.trigger("onUpdate")), -b.update())},hideLoading:function(){p.unbind(".loading");f("#fancybox-loading").remove()},showLoading:function(){var a,d;b.hideLoading();a=f('
').click(b.cancel).appendTo("body");p.bind("keydown.loading",function(a){if(27===(a.which||a.keyCode))a.preventDefault(),b.cancel()});b.defaults.fixed||(d=b.getViewport(),a.css({position:"absolute",top:0.5*d.h+d.y,left:0.5*d.w+d.x}))},getViewport:function(){var a=b.current&&b.current.locked||!1,d={x:n.scrollLeft(), -y:n.scrollTop()};a?(d.w=a[0].clientWidth,d.h=a[0].clientHeight):(d.w=s&&r.innerWidth?r.innerWidth:n.width(),d.h=s&&r.innerHeight?r.innerHeight:n.height());return d},unbindEvents:function(){b.wrap&&t(b.wrap)&&b.wrap.unbind(".fb");p.unbind(".fb");n.unbind(".fb")},bindEvents:function(){var a=b.current,d;a&&(n.bind("orientationchange.fb"+(s?"":" resize.fb")+(a.autoCenter&&!a.locked?" scroll.fb":""),b.update),(d=a.keys)&&p.bind("keydown.fb",function(e){var c=e.which||e.keyCode,k=e.target||e.srcElement; -if(27===c&&b.coming)return!1;!e.ctrlKey&&(!e.altKey&&!e.shiftKey&&!e.metaKey&&(!k||!k.type&&!f(k).is("[contenteditable]")))&&f.each(d,function(d,k){if(1h[0].clientWidth||h[0].clientHeight&&h[0].scrollHeight>h[0].clientHeight),h=f(h).parent();if(0!==c&&!j&&1g||0>k)b.next(0>g?"up":"right");d.preventDefault()}}))},trigger:function(a,d){var e,c=d||b.coming||b.current;if(c){f.isFunction(c[a])&&(e=c[a].apply(c,Array.prototype.slice.call(arguments,1)));if(!1===e)return!1;c.helpers&&f.each(c.helpers,function(d,e){if(e&&b.helpers[d]&&f.isFunction(b.helpers[d][a]))b.helpers[d][a](f.extend(!0, -{},b.helpers[d].defaults,e),c)});p.trigger(a)}},isImage:function(a){return q(a)&&a.match(/(^data:image\/.*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg)((\?|#).*)?$)/i)},isSWF:function(a){return q(a)&&a.match(/\.(swf)((\?|#).*)?$/i)},_start:function(a){var d={},e,c;a=l(a);e=b.group[a]||null;if(!e)return!1;d=f.extend(!0,{},b.opts,e);e=d.margin;c=d.padding;"number"===f.type(e)&&(d.margin=[e,e,e,e]);"number"===f.type(c)&&(d.padding=[c,c,c,c]);d.modal&&f.extend(!0,d,{closeBtn:!1,closeClick:!1,nextClick:!1,arrows:!1, -mouseWheel:!1,keys:null,helpers:{overlay:{closeClick:!1}}});d.autoSize&&(d.autoWidth=d.autoHeight=!0);"auto"===d.width&&(d.autoWidth=!0);"auto"===d.height&&(d.autoHeight=!0);d.group=b.group;d.index=a;b.coming=d;if(!1===b.trigger("beforeLoad"))b.coming=null;else{c=d.type;e=d.href;if(!c)return b.coming=null,b.current&&b.router&&"jumpto"!==b.router?(b.current.index=a,b[b.router](b.direction)):!1;b.isActive=!0;if("image"===c||"swf"===c)d.autoHeight=d.autoWidth=!1,d.scrolling="visible";"image"===c&&(d.aspectRatio= -!0);"iframe"===c&&s&&(d.scrolling="scroll");d.wrap=f(d.tpl.wrap).addClass("fancybox-"+(s?"mobile":"desktop")+" fancybox-type-"+c+" fancybox-tmp "+d.wrapCSS).appendTo(d.parent||"body");f.extend(d,{skin:f(".fancybox-skin",d.wrap),outer:f(".fancybox-outer",d.wrap),inner:f(".fancybox-inner",d.wrap)});f.each(["Top","Right","Bottom","Left"],function(a,b){d.skin.css("padding"+b,w(d.padding[a]))});b.trigger("onReady");if("inline"===c||"html"===c){if(!d.content||!d.content.length)return b._error("content")}else if(!e)return b._error("href"); -"image"===c?b._loadImage():"ajax"===c?b._loadAjax():"iframe"===c?b._loadIframe():b._afterLoad()}},_error:function(a){f.extend(b.coming,{type:"html",autoWidth:!0,autoHeight:!0,minWidth:0,minHeight:0,scrolling:"no",hasError:a,content:b.coming.tpl.error});b._afterLoad()},_loadImage:function(){var a=b.imgPreload=new Image;a.onload=function(){this.onload=this.onerror=null;b.coming.width=this.width/b.opts.pixelRatio;b.coming.height=this.height/b.opts.pixelRatio;b._afterLoad()};a.onerror=function(){this.onload= -this.onerror=null;b._error("image")};a.src=b.coming.href;!0!==a.complete&&b.showLoading()},_loadAjax:function(){var a=b.coming;b.showLoading();b.ajaxLoad=f.ajax(f.extend({},a.ajax,{url:a.href,error:function(a,e){b.coming&&"abort"!==e?b._error("ajax",a):b.hideLoading()},success:function(d,e){"success"===e&&(a.content=d,b._afterLoad())}}))},_loadIframe:function(){var a=b.coming,d=f(a.tpl.iframe.replace(/\{rnd\}/g,(new Date).getTime())).attr("scrolling",s?"auto":a.iframe.scrolling).attr("src",a.href); -f(a.wrap).bind("onReset",function(){try{f(this).find("iframe").hide().attr("src","//about:blank").end().empty()}catch(a){}});a.iframe.preload&&(b.showLoading(),d.one("load",function(){f(this).data("ready",1);s||f(this).bind("load.fb",b.update);f(this).parents(".fancybox-wrap").width("100%").removeClass("fancybox-tmp").show();b._afterLoad()}));a.content=d.appendTo(a.inner);a.iframe.preload||b._afterLoad()},_preloadImages:function(){var a=b.group,d=b.current,e=a.length,c=d.preload?Math.min(d.preload, -e-1):0,f,g;for(g=1;g<=c;g+=1)f=a[(d.index+g)%e],"image"===f.type&&f.href&&((new Image).src=f.href)},_afterLoad:function(){var a=b.coming,d=b.current,e,c,k,g,h;b.hideLoading();if(a&&!1!==b.isActive)if(!1===b.trigger("afterLoad",a,d))a.wrap.stop(!0).trigger("onReset").remove(),b.coming=null;else{d&&(b.trigger("beforeChange",d),d.wrap.stop(!0).removeClass("fancybox-opened").find(".fancybox-item, .fancybox-nav").remove());b.unbindEvents();e=a.content;c=a.type;k=a.scrolling;f.extend(b,{wrap:a.wrap,skin:a.skin, -outer:a.outer,inner:a.inner,current:a,previous:d});g=a.href;switch(c){case "inline":case "ajax":case "html":a.selector?e=f("
").html(e).find(a.selector):t(e)&&(e.data("fancybox-placeholder")||e.data("fancybox-placeholder",f('
').insertAfter(e).hide()),e=e.show().detach(),a.wrap.bind("onReset",function(){f(this).find(e).length&&e.hide().replaceAll(e.data("fancybox-placeholder")).data("fancybox-placeholder",!1)}));break;case "image":e=a.tpl.image.replace("{href}", -g);break;case "swf":e='',h="",f.each(a.swf,function(a,b){e+='';h+=" "+a+'="'+b+'"'}),e+='"}(!t(e)||!e.parent().is(a.inner))&&a.inner.append(e);b.trigger("beforeShow");a.inner.css("overflow","yes"===k?"scroll": -"no"===k?"hidden":k);b._setDimension();b.reposition();b.isOpen=!1;b.coming=null;b.bindEvents();if(b.isOpened){if(d.prevMethod)b.transitions[d.prevMethod]()}else f(".fancybox-wrap").not(a.wrap).stop(!0).trigger("onReset").remove();b.transitions[b.isOpened?a.nextMethod:a.openMethod]();b._preloadImages()}},_setDimension:function(){var a=b.getViewport(),d=0,e=!1,c=!1,e=b.wrap,k=b.skin,g=b.inner,h=b.current,c=h.width,j=h.height,m=h.minWidth,u=h.minHeight,n=h.maxWidth,p=h.maxHeight,s=h.scrolling,q=h.scrollOutside? -h.scrollbarWidth:0,x=h.margin,y=l(x[1]+x[3]),r=l(x[0]+x[2]),v,z,t,C,A,F,B,D,H;e.add(k).add(g).width("auto").height("auto").removeClass("fancybox-tmp");x=l(k.outerWidth(!0)-k.width());v=l(k.outerHeight(!0)-k.height());z=y+x;t=r+v;C=E(c)?(a.w-z)*l(c)/100:c;A=E(j)?(a.h-t)*l(j)/100:j;if("iframe"===h.type){if(H=h.content,h.autoHeight&&1===H.data("ready"))try{H[0].contentWindow.document.location&&(g.width(C).height(9999),F=H.contents().find("body"),q&&F.css("overflow-x","hidden"),A=F.outerHeight(!0))}catch(G){}}else if(h.autoWidth|| -h.autoHeight)g.addClass("fancybox-tmp"),h.autoWidth||g.width(C),h.autoHeight||g.height(A),h.autoWidth&&(C=g.width()),h.autoHeight&&(A=g.height()),g.removeClass("fancybox-tmp");c=l(C);j=l(A);D=C/A;m=l(E(m)?l(m,"w")-z:m);n=l(E(n)?l(n,"w")-z:n);u=l(E(u)?l(u,"h")-t:u);p=l(E(p)?l(p,"h")-t:p);F=n;B=p;h.fitToView&&(n=Math.min(a.w-z,n),p=Math.min(a.h-t,p));z=a.w-y;r=a.h-r;h.aspectRatio?(c>n&&(c=n,j=l(c/D)),j>p&&(j=p,c=l(j*D)),cz||y>r)&&(c>m&&j>u)&&!(19n&&(c=n,j=l(c/D)),g.width(c).height(j),e.width(c+x),a=e.width(),y=e.height();else c=Math.max(m,Math.min(c,c-(a-z))),j=Math.max(u,Math.min(j,j-(y-r)));q&&("auto"===s&&jz||y>r)&&c>m&&j>u;c=h.aspectRatio?cu&&j
').appendTo(b.coming?b.coming.parent:a.parent);this.fixed=!1;a.fixed&&b.defaults.fixed&&(this.overlay.addClass("fancybox-overlay-fixed"),this.fixed=!0)},open:function(a){var d=this;a=f.extend({},this.defaults,a);this.overlay?this.overlay.unbind(".overlay").width("auto").height("auto"):this.create(a);this.fixed||(n.bind("resize.overlay",f.proxy(this.update,this)),this.update());a.closeClick&&this.overlay.bind("click.overlay",function(a){if(f(a.target).hasClass("fancybox-overlay"))return b.isActive? -b.close():d.close(),!1});this.overlay.css(a.css).show()},close:function(){var a,b;n.unbind("resize.overlay");this.el.hasClass("fancybox-lock")&&(f(".fancybox-margin").removeClass("fancybox-margin"),a=n.scrollTop(),b=n.scrollLeft(),this.el.removeClass("fancybox-lock"),n.scrollTop(a).scrollLeft(b));f(".fancybox-overlay").remove().hide();f.extend(this,{overlay:null,fixed:!1})},update:function(){var a="100%",b;this.overlay.width(a).height("100%");I?(b=Math.max(G.documentElement.offsetWidth,G.body.offsetWidth), -p.width()>b&&(a=p.width())):p.width()>n.width()&&(a=p.width());this.overlay.width(a).height(p.height())},onReady:function(a,b){var e=this.overlay;f(".fancybox-overlay").stop(!0,!0);e||this.create(a);a.locked&&(this.fixed&&b.fixed)&&(e||(this.margin=p.height()>n.height()?f("html").css("margin-right").replace("px",""):!1),b.locked=this.overlay.append(b.wrap),b.fixed=!1);!0===a.showEarly&&this.beforeShow.apply(this,arguments)},beforeShow:function(a,b){var e,c;b.locked&&(!1!==this.margin&&(f("*").filter(function(){return"fixed"=== -f(this).css("position")&&!f(this).hasClass("fancybox-overlay")&&!f(this).hasClass("fancybox-wrap")}).addClass("fancybox-margin"),this.el.addClass("fancybox-margin")),e=n.scrollTop(),c=n.scrollLeft(),this.el.addClass("fancybox-lock"),n.scrollTop(e).scrollLeft(c));this.open(a)},onUpdate:function(){this.fixed||this.update()},afterClose:function(a){this.overlay&&!b.coming&&this.overlay.fadeOut(a.speedOut,f.proxy(this.close,this))}};b.helpers.title={defaults:{type:"float",position:"bottom"},beforeShow:function(a){var d= -b.current,e=d.title,c=a.type;f.isFunction(e)&&(e=e.call(d.element,d));if(q(e)&&""!==f.trim(e)){d=f('
'+e+"
");switch(c){case "inside":c=b.skin;break;case "outside":c=b.wrap;break;case "over":c=b.inner;break;default:c=b.skin,d.appendTo("body"),I&&d.width(d.width()),d.wrapInner(''),b.current.margin[2]+=Math.abs(l(d.css("margin-bottom")))}d["top"===a.position?"prependTo":"appendTo"](c)}}};f.fn.fancybox=function(a){var d, -e=f(this),c=this.selector||"",k=function(g){var h=f(this).blur(),j=d,k,l;!g.ctrlKey&&(!g.altKey&&!g.shiftKey&&!g.metaKey)&&!h.is(".fancybox-wrap")&&(k=a.groupAttr||"data-fancybox-group",l=h.attr(k),l||(k="rel",l=h.get(0)[k]),l&&(""!==l&&"nofollow"!==l)&&(h=c.length?f(c):e,h=h.filter("["+k+'="'+l+'"]'),j=h.index(this)),a.index=j,!1!==b.open(h,a)&&g.preventDefault())};a=a||{};d=a.index||0;!c||!1===a.live?e.unbind("click.fb-start").bind("click.fb-start",k):p.undelegate(c,"click.fb-start").delegate(c+ -":not('.fancybox-item, .fancybox-nav')","click.fb-start",k);this.filter("[data-fancybox-start=1]").trigger("click");return this};p.ready(function(){var a,d;f.scrollbarWidth===v&&(f.scrollbarWidth=function(){var a=f('
').appendTo("body"),b=a.children(),b=b.innerWidth()-b.height(99).innerWidth();a.remove();return b});if(f.support.fixedPosition===v){a=f.support;d=f('
').appendTo("body");var e=20=== -d[0].offsetTop||15===d[0].offsetTop;d.remove();a.fixedPosition=e}f.extend(b.defaults,{scrollbarWidth:f.scrollbarWidth(),fixed:f.support.fixedPosition,parent:f("body")});a=f(r).width();J.addClass("fancybox-lock-test");d=f(r).width();J.removeClass("fancybox-lock-test");f("").appendTo("head")})})(window,document,jQuery); \ No newline at end of file diff --git a/lib/jquery/jquery-3.1.1.min.js b/lib/jquery/jquery-3.1.1.min.js deleted file mode 100644 index 4c5be4c..0000000 --- a/lib/jquery/jquery-3.1.1.min.js +++ /dev/null @@ -1,4 +0,0 @@ -/*! jQuery v3.1.1 | (c) jQuery Foundation | jquery.org/license */ -!function(a,b){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){"use strict";var c=[],d=a.document,e=Object.getPrototypeOf,f=c.slice,g=c.concat,h=c.push,i=c.indexOf,j={},k=j.toString,l=j.hasOwnProperty,m=l.toString,n=m.call(Object),o={};function p(a,b){b=b||d;var c=b.createElement("script");c.text=a,b.head.appendChild(c).parentNode.removeChild(c)}var q="3.1.1",r=function(a,b){return new r.fn.init(a,b)},s=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,t=/^-ms-/,u=/-([a-z])/g,v=function(a,b){return b.toUpperCase()};r.fn=r.prototype={jquery:q,constructor:r,length:0,toArray:function(){return f.call(this)},get:function(a){return null==a?f.call(this):a<0?this[a+this.length]:this[a]},pushStack:function(a){var b=r.merge(this.constructor(),a);return b.prevObject=this,b},each:function(a){return r.each(this,a)},map:function(a){return this.pushStack(r.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(f.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(a<0?b:0);return this.pushStack(c>=0&&c0&&b-1 in a)}var x=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=function(a,b){for(var c=0,d=a.length;c+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(N),U=new RegExp("^"+L+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L+"|[*])"),ATTR:new RegExp("^"+M),PSEUDO:new RegExp("^"+N),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),aa=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:d<0?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ba=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ca=function(a,b){return b?"\0"===a?"\ufffd":a.slice(0,-1)+"\\"+a.charCodeAt(a.length-1).toString(16)+" ":"\\"+a},da=function(){m()},ea=ta(function(a){return a.disabled===!0&&("form"in a||"label"in a)},{dir:"parentNode",next:"legend"});try{G.apply(D=H.call(v.childNodes),v.childNodes),D[v.childNodes.length].nodeType}catch(fa){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s=b&&b.ownerDocument,w=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==w&&9!==w&&11!==w)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==w&&(l=Z.exec(a)))if(f=l[1]){if(9===w){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(s&&(j=s.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(l[2])return G.apply(d,b.getElementsByTagName(a)),d;if((f=l[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==w)s=b,r=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(ba,ca):b.setAttribute("id",k=u),o=g(a),h=o.length;while(h--)o[h]="#"+k+" "+sa(o[h]);r=o.join(","),s=$.test(a)&&qa(b.parentNode)||b}if(r)try{return G.apply(d,s.querySelectorAll(r)),d}catch(x){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(P,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("fieldset");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&a.sourceIndex-b.sourceIndex;if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return function(b){return"form"in b?b.parentNode&&b.disabled===!1?"label"in b?"label"in b.parentNode?b.parentNode.disabled===a:b.disabled===a:b.isDisabled===a||b.isDisabled!==!a&&ea(b)===a:b.disabled===a:"label"in b&&b.disabled===a}}function pa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function qa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return!!b&&"HTML"!==b.nodeName},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),v!==n&&(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(n.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){return a.getAttribute("id")===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}}):(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c,d,e,f=b.getElementById(a);if(f){if(c=f.getAttributeNode("id"),c&&c.value===a)return[f];e=b.getElementsByName(a),d=0;while(f=e[d++])if(c=f.getAttributeNode("id"),c&&c.value===a)return[f]}return[]}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){if("undefined"!=typeof b.getElementsByClassName&&p)return b.getElementsByClassName(a)},r=[],q=[],(c.qsa=Y.test(n.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){a.innerHTML="";var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+K+"*[*^$|!~]?="),2!==a.querySelectorAll(":enabled").length&&q.push(":enabled",":disabled"),o.appendChild(a).disabled=!0,2!==a.querySelectorAll(":disabled").length&&q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Y.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"*"),s.call(a,"[s!='']:x"),r.push("!=",N)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Y.test(o.compareDocumentPosition),t=b||Y.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?I(k,a)-I(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?I(k,a)-I(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?la(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(S,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.escape=function(a){return(a+"").replace(ba,ca)},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(_,aa),a[3]=(a[3]||a[4]||a[5]||"").replace(_,aa),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return V.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&T.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(_,aa).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:!b||(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(O," ")+" ").indexOf(c)>-1:"|="===b&&(e===c||e.slice(0,c.length+1)===c+"-"))}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(P,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(_,aa),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return U.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(_,aa).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:oa(!1),disabled:oa(!0),checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return X.test(a.nodeName)},input:function(a){return W.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:pa(function(){return[0]}),last:pa(function(a,b){return[b-1]}),eq:pa(function(a,b,c){return[c<0?c+b:c]}),even:pa(function(a,b){for(var c=0;c=0;)a.push(d);return a}),gt:pa(function(a,b,c){for(var d=c<0?c+b:c;++d1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function va(a,b,c){for(var d=0,e=b.length;d-1&&(f[j]=!(g[j]=l))}}else r=wa(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ya(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ta(function(a){return a===b},h,!0),l=ta(function(a){return I(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];i1&&ua(m),i>1&&sa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(P,"$1"),c,i0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=E.call(i));u=wa(u)}G.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&ga.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=ya(b[c]),f[u]?d.push(f):e.push(f);f=A(a,za(e,d)),f.selector=a}return f},i=ga.select=function(a,b,c,e){var f,i,j,k,l,m="function"==typeof a&&a,n=!e&&g(a=m.selector||a);if(c=c||[],1===n.length){if(i=n[0]=n[0].slice(0),i.length>2&&"ID"===(j=i[0]).type&&9===b.nodeType&&p&&d.relative[i[1].type]){if(b=(d.find.ID(j.matches[0].replace(_,aa),b)||[])[0],!b)return c;m&&(b=b.parentNode),a=a.slice(i.shift().value.length)}f=V.needsContext.test(a)?0:i.length;while(f--){if(j=i[f],d.relative[k=j.type])break;if((l=d.find[k])&&(e=l(j.matches[0].replace(_,aa),$.test(i[0].type)&&qa(b.parentNode)||b))){if(i.splice(f,1),a=e.length&&sa(i),!a)return G.apply(c,e),c;break}}}return(m||h(a,n))(e,b,!p,c,!b||$.test(a)&&qa(b.parentNode)||b),c},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("fieldset"))}),ja(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){if(!c)return a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){if(!c&&"input"===a.nodeName.toLowerCase())return a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(J,function(a,b,c){var d;if(!c)return a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);r.find=x,r.expr=x.selectors,r.expr[":"]=r.expr.pseudos,r.uniqueSort=r.unique=x.uniqueSort,r.text=x.getText,r.isXMLDoc=x.isXML,r.contains=x.contains,r.escapeSelector=x.escape;var y=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&r(a).is(c))break;d.push(a)}return d},z=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},A=r.expr.match.needsContext,B=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,C=/^.[^:#\[\.,]*$/;function D(a,b,c){return r.isFunction(b)?r.grep(a,function(a,d){return!!b.call(a,d,a)!==c}):b.nodeType?r.grep(a,function(a){return a===b!==c}):"string"!=typeof b?r.grep(a,function(a){return i.call(b,a)>-1!==c}):C.test(b)?r.filter(b,a,c):(b=r.filter(b,a),r.grep(a,function(a){return i.call(b,a)>-1!==c&&1===a.nodeType}))}r.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?r.find.matchesSelector(d,a)?[d]:[]:r.find.matches(a,r.grep(b,function(a){return 1===a.nodeType}))},r.fn.extend({find:function(a){var b,c,d=this.length,e=this;if("string"!=typeof a)return this.pushStack(r(a).filter(function(){for(b=0;b1?r.uniqueSort(c):c},filter:function(a){return this.pushStack(D(this,a||[],!1))},not:function(a){return this.pushStack(D(this,a||[],!0))},is:function(a){return!!D(this,"string"==typeof a&&A.test(a)?r(a):a||[],!1).length}});var E,F=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,G=r.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||E,"string"==typeof a){if(e="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:F.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof r?b[0]:b,r.merge(this,r.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),B.test(e[1])&&r.isPlainObject(b))for(e in b)r.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}return f=d.getElementById(e[2]),f&&(this[0]=f,this.length=1),this}return a.nodeType?(this[0]=a,this.length=1,this):r.isFunction(a)?void 0!==c.ready?c.ready(a):a(r):r.makeArray(a,this)};G.prototype=r.fn,E=r(d);var H=/^(?:parents|prev(?:Until|All))/,I={children:!0,contents:!0,next:!0,prev:!0};r.fn.extend({has:function(a){var b=r(a,this),c=b.length;return this.filter(function(){for(var a=0;a-1:1===c.nodeType&&r.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?r.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?i.call(r(a),this[0]):i.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(r.uniqueSort(r.merge(this.get(),r(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function J(a,b){while((a=a[b])&&1!==a.nodeType);return a}r.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return y(a,"parentNode")},parentsUntil:function(a,b,c){return y(a,"parentNode",c)},next:function(a){return J(a,"nextSibling")},prev:function(a){return J(a,"previousSibling")},nextAll:function(a){return y(a,"nextSibling")},prevAll:function(a){return y(a,"previousSibling")},nextUntil:function(a,b,c){return y(a,"nextSibling",c)},prevUntil:function(a,b,c){return y(a,"previousSibling",c)},siblings:function(a){return z((a.parentNode||{}).firstChild,a)},children:function(a){return z(a.firstChild)},contents:function(a){return a.contentDocument||r.merge([],a.childNodes)}},function(a,b){r.fn[a]=function(c,d){var e=r.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=r.filter(d,e)),this.length>1&&(I[a]||r.uniqueSort(e),H.test(a)&&e.reverse()),this.pushStack(e)}});var K=/[^\x20\t\r\n\f]+/g;function L(a){var b={};return r.each(a.match(K)||[],function(a,c){b[c]=!0}),b}r.Callbacks=function(a){a="string"==typeof a?L(a):r.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h-1)f.splice(c,1),c<=h&&h--}),this},has:function(a){return a?r.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=g=[],c||b||(f=c=""),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j};function M(a){return a}function N(a){throw a}function O(a,b,c){var d;try{a&&r.isFunction(d=a.promise)?d.call(a).done(b).fail(c):a&&r.isFunction(d=a.then)?d.call(a,b,c):b.call(void 0,a)}catch(a){c.call(void 0,a)}}r.extend({Deferred:function(b){var c=[["notify","progress",r.Callbacks("memory"),r.Callbacks("memory"),2],["resolve","done",r.Callbacks("once memory"),r.Callbacks("once memory"),0,"resolved"],["reject","fail",r.Callbacks("once memory"),r.Callbacks("once memory"),1,"rejected"]],d="pending",e={state:function(){return d},always:function(){return f.done(arguments).fail(arguments),this},"catch":function(a){return e.then(null,a)},pipe:function(){var a=arguments;return r.Deferred(function(b){r.each(c,function(c,d){var e=r.isFunction(a[d[4]])&&a[d[4]];f[d[1]](function(){var a=e&&e.apply(this,arguments);a&&r.isFunction(a.promise)?a.promise().progress(b.notify).done(b.resolve).fail(b.reject):b[d[0]+"With"](this,e?[a]:arguments)})}),a=null}).promise()},then:function(b,d,e){var f=0;function g(b,c,d,e){return function(){var h=this,i=arguments,j=function(){var a,j;if(!(b=f&&(d!==N&&(h=void 0,i=[a]),c.rejectWith(h,i))}};b?k():(r.Deferred.getStackHook&&(k.stackTrace=r.Deferred.getStackHook()),a.setTimeout(k))}}return r.Deferred(function(a){c[0][3].add(g(0,a,r.isFunction(e)?e:M,a.notifyWith)),c[1][3].add(g(0,a,r.isFunction(b)?b:M)),c[2][3].add(g(0,a,r.isFunction(d)?d:N))}).promise()},promise:function(a){return null!=a?r.extend(a,e):e}},f={};return r.each(c,function(a,b){var g=b[2],h=b[5];e[b[1]]=g.add,h&&g.add(function(){d=h},c[3-a][2].disable,c[0][2].lock),g.add(b[3].fire),f[b[0]]=function(){return f[b[0]+"With"](this===f?void 0:this,arguments),this},f[b[0]+"With"]=g.fireWith}),e.promise(f),b&&b.call(f,f),f},when:function(a){var b=arguments.length,c=b,d=Array(c),e=f.call(arguments),g=r.Deferred(),h=function(a){return function(c){d[a]=this,e[a]=arguments.length>1?f.call(arguments):c,--b||g.resolveWith(d,e)}};if(b<=1&&(O(a,g.done(h(c)).resolve,g.reject),"pending"===g.state()||r.isFunction(e[c]&&e[c].then)))return g.then();while(c--)O(e[c],h(c),g.reject);return g.promise()}});var P=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;r.Deferred.exceptionHook=function(b,c){a.console&&a.console.warn&&b&&P.test(b.name)&&a.console.warn("jQuery.Deferred exception: "+b.message,b.stack,c)},r.readyException=function(b){a.setTimeout(function(){throw b})};var Q=r.Deferred();r.fn.ready=function(a){return Q.then(a)["catch"](function(a){r.readyException(a)}),this},r.extend({isReady:!1,readyWait:1,holdReady:function(a){a?r.readyWait++:r.ready(!0)},ready:function(a){(a===!0?--r.readyWait:r.isReady)||(r.isReady=!0,a!==!0&&--r.readyWait>0||Q.resolveWith(d,[r]))}}),r.ready.then=Q.then;function R(){d.removeEventListener("DOMContentLoaded",R), -a.removeEventListener("load",R),r.ready()}"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(r.ready):(d.addEventListener("DOMContentLoaded",R),a.addEventListener("load",R));var S=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===r.type(c)){e=!0;for(h in c)S(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,r.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(r(a),c)})),b))for(;h1,null,!0)},removeData:function(a){return this.each(function(){W.remove(this,a)})}}),r.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=V.get(a,b),c&&(!d||r.isArray(c)?d=V.access(a,b,r.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=r.queue(a,b),d=c.length,e=c.shift(),f=r._queueHooks(a,b),g=function(){r.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return V.get(a,c)||V.access(a,c,{empty:r.Callbacks("once memory").add(function(){V.remove(a,[b+"queue",c])})})}}),r.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length\x20\t\r\n\f]+)/i,ka=/^$|\/(?:java|ecma)script/i,la={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};la.optgroup=la.option,la.tbody=la.tfoot=la.colgroup=la.caption=la.thead,la.th=la.td;function ma(a,b){var c;return c="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):[],void 0===b||b&&r.nodeName(a,b)?r.merge([a],c):c}function na(a,b){for(var c=0,d=a.length;c-1)e&&e.push(f);else if(j=r.contains(f.ownerDocument,f),g=ma(l.appendChild(f),"script"),j&&na(g),c){k=0;while(f=g[k++])ka.test(f.type||"")&&c.push(f)}return l}!function(){var a=d.createDocumentFragment(),b=a.appendChild(d.createElement("div")),c=d.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),o.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="",o.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var qa=d.documentElement,ra=/^key/,sa=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,ta=/^([^.]*)(?:\.(.+)|)/;function ua(){return!0}function va(){return!1}function wa(){try{return d.activeElement}catch(a){}}function xa(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)xa(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=va;else if(!e)return a;return 1===f&&(g=e,e=function(a){return r().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=r.guid++)),a.each(function(){r.event.add(this,b,e,d,c)})}r.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=V.get(a);if(q){c.handler&&(f=c,c=f.handler,e=f.selector),e&&r.find.matchesSelector(qa,e),c.guid||(c.guid=r.guid++),(i=q.events)||(i=q.events={}),(g=q.handle)||(g=q.handle=function(b){return"undefined"!=typeof r&&r.event.triggered!==b.type?r.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(K)||[""],j=b.length;while(j--)h=ta.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n&&(l=r.event.special[n]||{},n=(e?l.delegateType:l.bindType)||n,l=r.event.special[n]||{},k=r.extend({type:n,origType:p,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&r.expr.match.needsContext.test(e),namespace:o.join(".")},f),(m=i[n])||(m=i[n]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,o,g)!==!1||a.addEventListener&&a.addEventListener(n,g)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),r.event.global[n]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=V.hasData(a)&&V.get(a);if(q&&(i=q.events)){b=(b||"").match(K)||[""],j=b.length;while(j--)if(h=ta.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n){l=r.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&p!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,o,q.handle)!==!1||r.removeEvent(a,n,q.handle),delete i[n])}else for(n in i)r.event.remove(a,n+b[j],c,d,!0);r.isEmptyObject(i)&&V.remove(a,"handle events")}},dispatch:function(a){var b=r.event.fix(a),c,d,e,f,g,h,i=new Array(arguments.length),j=(V.get(this,"events")||{})[b.type]||[],k=r.event.special[b.type]||{};for(i[0]=b,c=1;c=1))for(;j!==this;j=j.parentNode||this)if(1===j.nodeType&&("click"!==a.type||j.disabled!==!0)){for(f=[],g={},c=0;c-1:r.find(e,this,null,[j]).length),g[e]&&f.push(d);f.length&&h.push({elem:j,handlers:f})}return j=this,i\x20\t\r\n\f]*)[^>]*)\/>/gi,za=/\s*$/g;function Da(a,b){return r.nodeName(a,"table")&&r.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a:a}function Ea(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function Fa(a){var b=Ba.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Ga(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(V.hasData(a)&&(f=V.access(a),g=V.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;c1&&"string"==typeof q&&!o.checkClone&&Aa.test(q))return a.each(function(e){var f=a.eq(e);s&&(b[0]=q.call(this,e,f.html())),Ia(f,b,c,d)});if(m&&(e=pa(b,a[0].ownerDocument,!1,a,d),f=e.firstChild,1===e.childNodes.length&&(e=f),f||d)){for(h=r.map(ma(e,"script"),Ea),i=h.length;l")},clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=r.contains(a.ownerDocument,a);if(!(o.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||r.isXMLDoc(a)))for(g=ma(h),f=ma(a),d=0,e=f.length;d0&&na(g,!i&&ma(a,"script")),h},cleanData:function(a){for(var b,c,d,e=r.event.special,f=0;void 0!==(c=a[f]);f++)if(T(c)){if(b=c[V.expando]){if(b.events)for(d in b.events)e[d]?r.event.remove(c,d):r.removeEvent(c,d,b.handle);c[V.expando]=void 0}c[W.expando]&&(c[W.expando]=void 0)}}}),r.fn.extend({detach:function(a){return Ja(this,a,!0)},remove:function(a){return Ja(this,a)},text:function(a){return S(this,function(a){return void 0===a?r.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=a)})},null,a,arguments.length)},append:function(){return Ia(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Da(this,a);b.appendChild(a)}})},prepend:function(){return Ia(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Da(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return Ia(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Ia(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(r.cleanData(ma(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null!=a&&a,b=null==b?a:b,this.map(function(){return r.clone(this,a,b)})},html:function(a){return S(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!za.test(a)&&!la[(ja.exec(a)||["",""])[1].toLowerCase()]){a=r.htmlPrefilter(a);try{for(;c1)}});function Ya(a,b,c,d,e){return new Ya.prototype.init(a,b,c,d,e)}r.Tween=Ya,Ya.prototype={constructor:Ya,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||r.easing._default,this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(r.cssNumber[c]?"":"px")},cur:function(){var a=Ya.propHooks[this.prop];return a&&a.get?a.get(this):Ya.propHooks._default.get(this)},run:function(a){var b,c=Ya.propHooks[this.prop];return this.options.duration?this.pos=b=r.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):Ya.propHooks._default.set(this),this}},Ya.prototype.init.prototype=Ya.prototype,Ya.propHooks={_default:{get:function(a){var b;return 1!==a.elem.nodeType||null!=a.elem[a.prop]&&null==a.elem.style[a.prop]?a.elem[a.prop]:(b=r.css(a.elem,a.prop,""),b&&"auto"!==b?b:0)},set:function(a){r.fx.step[a.prop]?r.fx.step[a.prop](a):1!==a.elem.nodeType||null==a.elem.style[r.cssProps[a.prop]]&&!r.cssHooks[a.prop]?a.elem[a.prop]=a.now:r.style(a.elem,a.prop,a.now+a.unit)}}},Ya.propHooks.scrollTop=Ya.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},r.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2},_default:"swing"},r.fx=Ya.prototype.init,r.fx.step={};var Za,$a,_a=/^(?:toggle|show|hide)$/,ab=/queueHooks$/;function bb(){$a&&(a.requestAnimationFrame(bb),r.fx.tick())}function cb(){return a.setTimeout(function(){Za=void 0}),Za=r.now()}function db(a,b){var c,d=0,e={height:a};for(b=b?1:0;d<4;d+=2-b)c=ba[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function eb(a,b,c){for(var d,e=(hb.tweeners[b]||[]).concat(hb.tweeners["*"]),f=0,g=e.length;f1)},removeAttr:function(a){return this.each(function(){r.removeAttr(this,a)})}}),r.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return"undefined"==typeof a.getAttribute?r.prop(a,b,c):(1===f&&r.isXMLDoc(a)||(e=r.attrHooks[b.toLowerCase()]||(r.expr.match.bool.test(b)?ib:void 0)), -void 0!==c?null===c?void r.removeAttr(a,b):e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:(a.setAttribute(b,c+""),c):e&&"get"in e&&null!==(d=e.get(a,b))?d:(d=r.find.attr(a,b),null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!o.radioValue&&"radio"===b&&r.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},removeAttr:function(a,b){var c,d=0,e=b&&b.match(K);if(e&&1===a.nodeType)while(c=e[d++])a.removeAttribute(c)}}),ib={set:function(a,b,c){return b===!1?r.removeAttr(a,c):a.setAttribute(c,c),c}},r.each(r.expr.match.bool.source.match(/\w+/g),function(a,b){var c=jb[b]||r.find.attr;jb[b]=function(a,b,d){var e,f,g=b.toLowerCase();return d||(f=jb[g],jb[g]=e,e=null!=c(a,b,d)?g:null,jb[g]=f),e}});var kb=/^(?:input|select|textarea|button)$/i,lb=/^(?:a|area)$/i;r.fn.extend({prop:function(a,b){return S(this,r.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[r.propFix[a]||a]})}}),r.extend({prop:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return 1===f&&r.isXMLDoc(a)||(b=r.propFix[b]||b,e=r.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=r.find.attr(a,"tabindex");return b?parseInt(b,10):kb.test(a.nodeName)||lb.test(a.nodeName)&&a.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),o.optSelected||(r.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null},set:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}}),r.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){r.propFix[this.toLowerCase()]=this});function mb(a){var b=a.match(K)||[];return b.join(" ")}function nb(a){return a.getAttribute&&a.getAttribute("class")||""}r.fn.extend({addClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).addClass(a.call(this,b,nb(this)))});if("string"==typeof a&&a){b=a.match(K)||[];while(c=this[i++])if(e=nb(c),d=1===c.nodeType&&" "+mb(e)+" "){g=0;while(f=b[g++])d.indexOf(" "+f+" ")<0&&(d+=f+" ");h=mb(d),e!==h&&c.setAttribute("class",h)}}return this},removeClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).removeClass(a.call(this,b,nb(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof a&&a){b=a.match(K)||[];while(c=this[i++])if(e=nb(c),d=1===c.nodeType&&" "+mb(e)+" "){g=0;while(f=b[g++])while(d.indexOf(" "+f+" ")>-1)d=d.replace(" "+f+" "," ");h=mb(d),e!==h&&c.setAttribute("class",h)}}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):r.isFunction(a)?this.each(function(c){r(this).toggleClass(a.call(this,c,nb(this),b),b)}):this.each(function(){var b,d,e,f;if("string"===c){d=0,e=r(this),f=a.match(K)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else void 0!==a&&"boolean"!==c||(b=nb(this),b&&V.set(this,"__className__",b),this.setAttribute&&this.setAttribute("class",b||a===!1?"":V.get(this,"__className__")||""))})},hasClass:function(a){var b,c,d=0;b=" "+a+" ";while(c=this[d++])if(1===c.nodeType&&(" "+mb(nb(c))+" ").indexOf(b)>-1)return!0;return!1}});var ob=/\r/g;r.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=r.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,r(this).val()):a,null==e?e="":"number"==typeof e?e+="":r.isArray(e)&&(e=r.map(e,function(a){return null==a?"":a+""})),b=r.valHooks[this.type]||r.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=r.valHooks[e.type]||r.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(ob,""):null==c?"":c)}}}),r.extend({valHooks:{option:{get:function(a){var b=r.find.attr(a,"value");return null!=b?b:mb(r.text(a))}},select:{get:function(a){var b,c,d,e=a.options,f=a.selectedIndex,g="select-one"===a.type,h=g?null:[],i=g?f+1:e.length;for(d=f<0?i:g?f:0;d-1)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),r.each(["radio","checkbox"],function(){r.valHooks[this]={set:function(a,b){if(r.isArray(b))return a.checked=r.inArray(r(a).val(),b)>-1}},o.checkOn||(r.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var pb=/^(?:focusinfocus|focusoutblur)$/;r.extend(r.event,{trigger:function(b,c,e,f){var g,h,i,j,k,m,n,o=[e||d],p=l.call(b,"type")?b.type:b,q=l.call(b,"namespace")?b.namespace.split("."):[];if(h=i=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!pb.test(p+r.event.triggered)&&(p.indexOf(".")>-1&&(q=p.split("."),p=q.shift(),q.sort()),k=p.indexOf(":")<0&&"on"+p,b=b[r.expando]?b:new r.Event(p,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=q.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:r.makeArray(c,[b]),n=r.event.special[p]||{},f||!n.trigger||n.trigger.apply(e,c)!==!1)){if(!f&&!n.noBubble&&!r.isWindow(e)){for(j=n.delegateType||p,pb.test(j+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),i=h;i===(e.ownerDocument||d)&&o.push(i.defaultView||i.parentWindow||a)}g=0;while((h=o[g++])&&!b.isPropagationStopped())b.type=g>1?j:n.bindType||p,m=(V.get(h,"events")||{})[b.type]&&V.get(h,"handle"),m&&m.apply(h,c),m=k&&h[k],m&&m.apply&&T(h)&&(b.result=m.apply(h,c),b.result===!1&&b.preventDefault());return b.type=p,f||b.isDefaultPrevented()||n._default&&n._default.apply(o.pop(),c)!==!1||!T(e)||k&&r.isFunction(e[p])&&!r.isWindow(e)&&(i=e[k],i&&(e[k]=null),r.event.triggered=p,e[p](),r.event.triggered=void 0,i&&(e[k]=i)),b.result}},simulate:function(a,b,c){var d=r.extend(new r.Event,c,{type:a,isSimulated:!0});r.event.trigger(d,null,b)}}),r.fn.extend({trigger:function(a,b){return this.each(function(){r.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];if(c)return r.event.trigger(a,b,c,!0)}}),r.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(a,b){r.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),r.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),o.focusin="onfocusin"in a,o.focusin||r.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){r.event.simulate(b,a.target,r.event.fix(a))};r.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=V.access(d,b);e||d.addEventListener(a,c,!0),V.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=V.access(d,b)-1;e?V.access(d,b,e):(d.removeEventListener(a,c,!0),V.remove(d,b))}}});var qb=a.location,rb=r.now(),sb=/\?/;r.parseXML=function(b){var c;if(!b||"string"!=typeof b)return null;try{c=(new a.DOMParser).parseFromString(b,"text/xml")}catch(d){c=void 0}return c&&!c.getElementsByTagName("parsererror").length||r.error("Invalid XML: "+b),c};var tb=/\[\]$/,ub=/\r?\n/g,vb=/^(?:submit|button|image|reset|file)$/i,wb=/^(?:input|select|textarea|keygen)/i;function xb(a,b,c,d){var e;if(r.isArray(b))r.each(b,function(b,e){c||tb.test(a)?d(a,e):xb(a+"["+("object"==typeof e&&null!=e?b:"")+"]",e,c,d)});else if(c||"object"!==r.type(b))d(a,b);else for(e in b)xb(a+"["+e+"]",b[e],c,d)}r.param=function(a,b){var c,d=[],e=function(a,b){var c=r.isFunction(b)?b():b;d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(null==c?"":c)};if(r.isArray(a)||a.jquery&&!r.isPlainObject(a))r.each(a,function(){e(this.name,this.value)});else for(c in a)xb(c,a[c],b,e);return d.join("&")},r.fn.extend({serialize:function(){return r.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=r.prop(this,"elements");return a?r.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!r(this).is(":disabled")&&wb.test(this.nodeName)&&!vb.test(a)&&(this.checked||!ia.test(a))}).map(function(a,b){var c=r(this).val();return null==c?null:r.isArray(c)?r.map(c,function(a){return{name:b.name,value:a.replace(ub,"\r\n")}}):{name:b.name,value:c.replace(ub,"\r\n")}}).get()}});var yb=/%20/g,zb=/#.*$/,Ab=/([?&])_=[^&]*/,Bb=/^(.*?):[ \t]*([^\r\n]*)$/gm,Cb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Db=/^(?:GET|HEAD)$/,Eb=/^\/\//,Fb={},Gb={},Hb="*/".concat("*"),Ib=d.createElement("a");Ib.href=qb.href;function Jb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(K)||[];if(r.isFunction(c))while(d=f[e++])"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Kb(a,b,c,d){var e={},f=a===Gb;function g(h){var i;return e[h]=!0,r.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Lb(a,b){var c,d,e=r.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&r.extend(!0,a,d),a}function Mb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}if(f)return f!==i[0]&&i.unshift(f),c[f]}function Nb(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}r.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:qb.href,type:"GET",isLocal:Cb.test(qb.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Hb,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":r.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Lb(Lb(a,r.ajaxSettings),b):Lb(r.ajaxSettings,a)},ajaxPrefilter:Jb(Fb),ajaxTransport:Jb(Gb),ajax:function(b,c){"object"==typeof b&&(c=b,b=void 0),c=c||{};var e,f,g,h,i,j,k,l,m,n,o=r.ajaxSetup({},c),p=o.context||o,q=o.context&&(p.nodeType||p.jquery)?r(p):r.event,s=r.Deferred(),t=r.Callbacks("once memory"),u=o.statusCode||{},v={},w={},x="canceled",y={readyState:0,getResponseHeader:function(a){var b;if(k){if(!h){h={};while(b=Bb.exec(g))h[b[1].toLowerCase()]=b[2]}b=h[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return k?g:null},setRequestHeader:function(a,b){return null==k&&(a=w[a.toLowerCase()]=w[a.toLowerCase()]||a,v[a]=b),this},overrideMimeType:function(a){return null==k&&(o.mimeType=a),this},statusCode:function(a){var b;if(a)if(k)y.always(a[y.status]);else for(b in a)u[b]=[u[b],a[b]];return this},abort:function(a){var b=a||x;return e&&e.abort(b),A(0,b),this}};if(s.promise(y),o.url=((b||o.url||qb.href)+"").replace(Eb,qb.protocol+"//"),o.type=c.method||c.type||o.method||o.type,o.dataTypes=(o.dataType||"*").toLowerCase().match(K)||[""],null==o.crossDomain){j=d.createElement("a");try{j.href=o.url,j.href=j.href,o.crossDomain=Ib.protocol+"//"+Ib.host!=j.protocol+"//"+j.host}catch(z){o.crossDomain=!0}}if(o.data&&o.processData&&"string"!=typeof o.data&&(o.data=r.param(o.data,o.traditional)),Kb(Fb,o,c,y),k)return y;l=r.event&&o.global,l&&0===r.active++&&r.event.trigger("ajaxStart"),o.type=o.type.toUpperCase(),o.hasContent=!Db.test(o.type),f=o.url.replace(zb,""),o.hasContent?o.data&&o.processData&&0===(o.contentType||"").indexOf("application/x-www-form-urlencoded")&&(o.data=o.data.replace(yb,"+")):(n=o.url.slice(f.length),o.data&&(f+=(sb.test(f)?"&":"?")+o.data,delete o.data),o.cache===!1&&(f=f.replace(Ab,"$1"),n=(sb.test(f)?"&":"?")+"_="+rb++ +n),o.url=f+n),o.ifModified&&(r.lastModified[f]&&y.setRequestHeader("If-Modified-Since",r.lastModified[f]),r.etag[f]&&y.setRequestHeader("If-None-Match",r.etag[f])),(o.data&&o.hasContent&&o.contentType!==!1||c.contentType)&&y.setRequestHeader("Content-Type",o.contentType),y.setRequestHeader("Accept",o.dataTypes[0]&&o.accepts[o.dataTypes[0]]?o.accepts[o.dataTypes[0]]+("*"!==o.dataTypes[0]?", "+Hb+"; q=0.01":""):o.accepts["*"]);for(m in o.headers)y.setRequestHeader(m,o.headers[m]);if(o.beforeSend&&(o.beforeSend.call(p,y,o)===!1||k))return y.abort();if(x="abort",t.add(o.complete),y.done(o.success),y.fail(o.error),e=Kb(Gb,o,c,y)){if(y.readyState=1,l&&q.trigger("ajaxSend",[y,o]),k)return y;o.async&&o.timeout>0&&(i=a.setTimeout(function(){y.abort("timeout")},o.timeout));try{k=!1,e.send(v,A)}catch(z){if(k)throw z;A(-1,z)}}else A(-1,"No Transport");function A(b,c,d,h){var j,m,n,v,w,x=c;k||(k=!0,i&&a.clearTimeout(i),e=void 0,g=h||"",y.readyState=b>0?4:0,j=b>=200&&b<300||304===b,d&&(v=Mb(o,y,d)),v=Nb(o,v,y,j),j?(o.ifModified&&(w=y.getResponseHeader("Last-Modified"),w&&(r.lastModified[f]=w),w=y.getResponseHeader("etag"),w&&(r.etag[f]=w)),204===b||"HEAD"===o.type?x="nocontent":304===b?x="notmodified":(x=v.state,m=v.data,n=v.error,j=!n)):(n=x,!b&&x||(x="error",b<0&&(b=0))),y.status=b,y.statusText=(c||x)+"",j?s.resolveWith(p,[m,x,y]):s.rejectWith(p,[y,x,n]),y.statusCode(u),u=void 0,l&&q.trigger(j?"ajaxSuccess":"ajaxError",[y,o,j?m:n]),t.fireWith(p,[y,x]),l&&(q.trigger("ajaxComplete",[y,o]),--r.active||r.event.trigger("ajaxStop")))}return y},getJSON:function(a,b,c){return r.get(a,b,c,"json")},getScript:function(a,b){return r.get(a,void 0,b,"script")}}),r.each(["get","post"],function(a,b){r[b]=function(a,c,d,e){return r.isFunction(c)&&(e=e||d,d=c,c=void 0),r.ajax(r.extend({url:a,type:b,dataType:e,data:c,success:d},r.isPlainObject(a)&&a))}}),r._evalUrl=function(a){return r.ajax({url:a,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},r.fn.extend({wrapAll:function(a){var b;return this[0]&&(r.isFunction(a)&&(a=a.call(this[0])),b=r(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this},wrapInner:function(a){return r.isFunction(a)?this.each(function(b){r(this).wrapInner(a.call(this,b))}):this.each(function(){var b=r(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=r.isFunction(a);return this.each(function(c){r(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(a){return this.parent(a).not("body").each(function(){r(this).replaceWith(this.childNodes)}),this}}),r.expr.pseudos.hidden=function(a){return!r.expr.pseudos.visible(a)},r.expr.pseudos.visible=function(a){return!!(a.offsetWidth||a.offsetHeight||a.getClientRects().length)},r.ajaxSettings.xhr=function(){try{return new a.XMLHttpRequest}catch(b){}};var Ob={0:200,1223:204},Pb=r.ajaxSettings.xhr();o.cors=!!Pb&&"withCredentials"in Pb,o.ajax=Pb=!!Pb,r.ajaxTransport(function(b){var c,d;if(o.cors||Pb&&!b.crossDomain)return{send:function(e,f){var g,h=b.xhr();if(h.open(b.type,b.url,b.async,b.username,b.password),b.xhrFields)for(g in b.xhrFields)h[g]=b.xhrFields[g];b.mimeType&&h.overrideMimeType&&h.overrideMimeType(b.mimeType),b.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest");for(g in e)h.setRequestHeader(g,e[g]);c=function(a){return function(){c&&(c=d=h.onload=h.onerror=h.onabort=h.onreadystatechange=null,"abort"===a?h.abort():"error"===a?"number"!=typeof h.status?f(0,"error"):f(h.status,h.statusText):f(Ob[h.status]||h.status,h.statusText,"text"!==(h.responseType||"text")||"string"!=typeof h.responseText?{binary:h.response}:{text:h.responseText},h.getAllResponseHeaders()))}},h.onload=c(),d=h.onerror=c("error"),void 0!==h.onabort?h.onabort=d:h.onreadystatechange=function(){4===h.readyState&&a.setTimeout(function(){c&&d()})},c=c("abort");try{h.send(b.hasContent&&b.data||null)}catch(i){if(c)throw i}},abort:function(){c&&c()}}}),r.ajaxPrefilter(function(a){a.crossDomain&&(a.contents.script=!1)}),r.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(a){return r.globalEval(a),a}}}),r.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),r.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(e,f){b=r(" - - - - - - - - - - 序员乱翻书 - - -
- -
- - - -
-
- - - -
- - -
-
-
- -
- - -
-
-

- - 与父母沟通 - -

- - -
- - - - -
- - - - - - - - -
- - - - - -
- - - -
-
-

- - 一周时间是怎么过去了 - -

- - -
- - - - -
- - - - - - - -

今天是周五,不忙的日子里,这时候肯定还在馆里,可能在拉伸,也可能在躺着休息……

-

到了小区,走在路上,回想这五天的晚上时间究竟去了哪里?努力想,才终于记了起来。

-

训练的道服一直放在公司,只是没有去。

- - - -
- - - - - -
- - - -
-
-

- - 怎能靠近爱情 - -

- - -
- - - - -
- - - - - - - -

太容易,因为一点点她的示好,而认为那就是所谓的好感,然后就错以为遇到了爱情。

- - - -
- - - - - -
- - - - - - - -
-
-

- - 和Jery沟通收获了两点 - -

- - -
- - - - -
- - - - - - - -

比较难得,qq语音了将近45分钟,先说了目前的概况,然后又讲了个人职业发展方向的问题,有两点很受启发。

- - - -
- - - - - -
- - - - - - - -
-
-

- - 戴项链的女孩 - -

- - -
- - - - -
- - - - - - - -

记得高中时候遇到过一个女孩,犹如不食人间烟火。文静,微笑时总有两个小小的小酒窝,眼睛像月亮,照亮人的心情。

- - - -
- - - - - -
- - - -
-
-

- - 时间太快,邹哥也结婚了 - -

- - -
- - - - -
- - - - - - - -

嗯,时间很快。一晃,大学毕业已经4年了,再往前一晃,距离高一已经近11年了。

-

今天大学室友邹哥结婚,在一个美好的,大家过好一个慵懒的周末,新的一周上班的日子。趁哥从济源家里,明哥从出差的上海,返回郑州参加了婚礼。文晓在上海,牧青在北京,我在上海,因为太忙,没能请假前往,甚是遗憾。

-

邹哥应该比我大,也终于见到了嫂子真人的照片。再也不能说邹哥猥琐了,因为终于结婚了。邹哥在大学室友群里说:“有点困惑,竟然真的结婚了。”

- - - -
- - - - - -
- - - -
-
-

- - 项目难产,生出来了却是别人的 - -

- - -
- - - - -
- - - - - - - -

从3月份开始,具体到3月19号左右,投入到J项目做小程序开发。一直到5月初,把项目交接给公司的M团队。

-

为什么要交接,全部都是经验教训。

- - - -
- - - - - -
- - - - - - -
- - - - - -
- - -
-
- -
- - - - - - -
- -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/page/3/index.html b/page/3/index.html deleted file mode 100644 index 631e89d..0000000 --- a/page/3/index.html +++ /dev/null @@ -1,743 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 序员乱翻书 - - -
- -
- - - -
-
- - - -
- - -
-
-
- -
- - -
-
-

- - 180407 - -

- - -
- - - - -
- - - - - - - -

今天是清明节放假最后一天,总共做了几件事情:

-

《Node与Express开发》一边看一遍实践,基本完成。

-

需要写一个后台管理端,打算采用Vue.js,确实不太好入门。开始看《Vue.js实战》这本书了,目前看到了第三章。

-

昨天晚上去练习瑜伽,本来今晚也要去,但是去了的话从7点到9点半之间都会被占用。

- - - -
- - - - - -
- - - -
-
-

- - 17年五一假期苏州一日游计划 - -

- - -
- - - - -
- - - - - - - -

时间:2017年4月30号
交通工具:高铁,路程来回共1小时左右。
路线:上海火车站-苏州火车站(苏州市姑苏区苏站路27号)-拙政园(江苏省苏州市姑苏区东北街178号)-虎丘景区(江苏省苏州市姑苏区虎丘山门内8号)-留园(江苏省苏州市姑苏区留园路338号)-苏州火车站- 上海火车站。

- - - -
- - - - - -
- - - -
-
-

- - 17年春二三事 - -

- - -
- - - - -
- - - - - - - -
    -
  • 二房东回了家乡
  • -
-

16年11月份左右,李婶他们一家回家呆了近两周左右,给在上海工作的大儿子买了一套房,在他们市里。他们希望自己的大儿子工作一段时间后,回家结婚。

-

16年6月份开始,租住在不足10平米的地方,遇见了这里的二房东。是一对夫妇,听叔说,他们已经在上海呆了13年之久了。年前,李婶说菜市场明年3-5月份要装修,那时候就要回老家山东了,于是就有了开头的买房。临走前,叔请了续租的亲戚到住的地方吃饭,那是晚上了,突然邀请我过去喝酒。我不好意思的推脱了,应该有半年不喝酒了吧。

-

在上海做了十几年生意的夫妇,回到了家乡,给儿子买了房,等着儿子结婚呢。

- - - -
- - - - - -
- - - -
-
-

- - 《零售的本质》7-Eleven - -

- - -
- - - - -
- - - - - - - -

7-Eleven B2B共享经济体
7—Eleven 铃木式经营哲学“彻底站在顾客的立场上来思考和实践”
经历着有传统百货向“生活中心化”体验平台的变革。
7-Eleven 共享经济学

-
    -
  1. 从利益共同体到命运共同体
    共享是互联网精神最本原的东西,资源的价值不在于拥有,而在于使用,只有使用才能体现资源的价值。通过两权(所有权和使用权)的分离、大数据智能算法和存量激活,我们就可以极好地实现共享经济价值的最大化。
  2. -
- - - -
- - - - - -
- - - -
-
-

- - 《一个广告人的自白》大卫·奥格威 - -

- - -
- - - - -
- - - - - - - -

奥美集团亚太区董事长序
中国正在经历着全球有史以来最短时间内最大规模的品牌创建运动。(商业和个人,而个人品牌的崛起,也正是为了商业)
以我们的经验来看,中国消费者乐于识别品牌的“无形特性”,而且,与一些外国学者的看法相反,他们也非常乐于同自己喜欢的品牌建立密切的关系。(小米论坛等)

- - - -
- - - - - -
- - - -
-
-

- - 《金色梦乡》伊坂幸太郎 - -

- - -
- - - - -
- - - - - - - -

读完需要1分钟
豆瓣评分9.0
https://book.douban.com/subject/26864984/
中文版序中提到:“我习惯以悲观的角度看待事情,对于美好圆满的结局有些抵触心理……于是我选择了一个折中的方案,决定去写’在悲观的舞台上努力活下去的故事’。以好莱坞电影娱乐小说为目标的《金色梦乡》,或许也受到了这种想法的影响”。
-

- - -
- - - - - -
- - - -
-
-

- - 2017上海设计展 - -

- - -
- - - - -
- - - - - - - -

展会地点:上海
展会展馆:上海展览中心(SEC)
展会周期:一年一届
相关行业:建筑结构、家居陈列 、装饰、家具与设计

-

主要是上次去看了十一届双年展,觉得挺不错。虽然看不懂,也没有去总结,还是想着去看看吧。
这周六刚好最后一天,去主要是想看家具陈列,家具与设计。

- - - -
- - - - - -
- - - - - - - - - - - -
-
-

- - 避免混淆在开发中带来的坑 - -

- - -
- - - - -
- - - - - - - -

每次代码写完,debug没有问题,测试人员一旦打包好beta分支,总是会出现因为混淆导致数据错误的情况。比如封装好的支付模块,debug没问题,但是打包好的却会出现支付返回的类的字段成了null。把混淆关掉,问题就好了。

- - - -
- - - - - -
- - -
- - - - - -
- - -
-
- -
- - - - - - -
- -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/page/4/index.html b/page/4/index.html deleted file mode 100644 index bc57b08..0000000 --- a/page/4/index.html +++ /dev/null @@ -1,751 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 序员乱翻书 - - -
- -
- - - -
-
- - - -
- - -
-
-
- -
- - -
-
-

- - 上海第十一届双年展 - -

- - -
- - - - -
- - - - - - - -

主题《何不再问?正辩,反辩,故事》
这是上海双年展的官网,3月12号结束,周二免费,趁着还没有结束,去看看吧。
http://shanghaibiennale.org/cn/page/detail/308cw.htm

-

收获了一张已经检过的门票,导购册一本,以及how to visit a museum。

-

导购册还是要看一遍,因为上面包含了展览的内容。

- - - -
- - - - - -
- - - - - - - -
-
-

- - 《重新定位》 - -

- - -
- - - - -
- - - - - - - -

豆瓣评分 7.3
https://book.douban.com/subject/6536667/
在京东上买的,看的很快,大概三天时间看完。
接着在看《一个广告人的自白》,突然发现这本书开篇竟然也有《重新定位》关于品牌的概念。

- - - -
- - - - - -
- - - -
-
-

- - 《富爸爸穷爸爸》 - -

- - -
- - - - -
- - - - - - - -

这本书记得初中或者高中时候,就已经在集市的地摊上被我买回了家。只是看了开头,这次是朋友的推荐,利用周末两天一口气看完。

-

只能摘抄些句子,来提醒自己这些观念,批判的去看待。大多数人一生都在追求工资、加薪和职业保障,从来不问这种感情支配思想的生活之路通向哪里。就像下面的这头驴子,我也是其中一员:

-
-

驴子拉车,因为主人在它面前挂了个胡萝卜。主人清楚自己要去哪里,而驴子却只是在追逐一个幻想。但是第二天驴子依旧会去拉车,因为又有胡萝卜放在它的面前。

-
- - - -
- - - - - -
- - - -
-
-

- - 《黑客与画家》 - -

- - -
- - - - -
- - - - - - - -

很早就看了这本书,但是只看了一半。回家过完今年,初六夜里一点返程,初七早五点半抵达上海。

-

然后就开始看剩下的一半,算是匆匆看完,还要再看一遍进行消化。= =

- - - -
- - - - - -
- - - -
-
-

- - 朋友圈的安全风险,你知道吗? - -

- - -
- - - - -
- - - - - - - -

阅读本文可能需要花费您1分钟

-

类似这样标题《不要总羡慕朋友圈里的生活》的文章,在bing搜索一搜,竟然那么多。
但是这篇文章想说的却不是羡慕不羡慕的问题,而是发朋友圈分享个人生活是一件多么危险的事情。
纯属臆想,吓到你了或者觉得不屑还请君见谅。

- - - -
- - - - - -
- - - -
-
-

- - 《浪潮之巅》第三版上册 - -

- - -
- - - - -
- - - - - - - -

阅读本文可能需要花费您1分钟

-

每次看到好的书籍,不免要去豆瓣读书查一下评分,这里是《浪潮之巅》豆瓣读书的地址:
https://book.douban.com/subject/6709783/

-

大学时代,就有朋友推荐我看这本书,已经忘记那时候去干了什么,没有阅读大量的书籍。现在不断地去读书,回头看,后悔在大学时候没有疯狂的去阅读。

- - - -
- - - - - -
- - - -
-
-

- - 2017购买书单 - -

- - -
- - - - -
- - - - - - - -

一月份

-
    -
  • 纸质书
    《浪潮之巅》 第三版(上册读完)
    《硅谷之谜:浪潮之巅续集》
    《腾讯Android自动化测试实战》
    《移动App性能评测与优化》
    《Android C++高级编程 使用NDK》
  • -
- - - -
- - - - - -
- - - - - - - -
-
-

- - 16年十一假期 - -

- - -
- - - - -
- - - - - - - -
    -
  • 《十年一觉电影梦 李安传》 张靓蓓 编著
  • -
-

读这本书是因为在小雨厨房的公众号文章里,提到李安的一些话,然后就想买来读,想知道李安是谁。原来我只看过李安的《卧虎藏龙》。= =

- - - -
- - - - - -
- - -
- - - - - -
- - -
-
- -
- - - - - - -
- -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/page/5/index.html b/page/5/index.html deleted file mode 100644 index c6b2176..0000000 --- a/page/5/index.html +++ /dev/null @@ -1,738 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 序员乱翻书 - - -
- -
- - - -
-
- - - -
- - -
-
-
- -
- - - - - - -
-
-

- - 如何使单例模式遇到多线程是安全的、正确的 - -

- - -
- - - - -
- - - - - - - -

注明:文中内容总结来自书籍《Java多线程编程核心技术》第六章
1)懒汉模式:以下代码是完全错误的,线程不安全。项目中写的代码大多属于这种情况,当不存在多线程访问时这种方式应该是可取的。

- - - -
- - - - - -
- - - -
-
-

- - 买土豆的故事 - -

- - -
- - - - -
- - - - - - - -

突然想起《买土豆的故事》,因为最近发生的两件事情。当然,没有做到的肯定不止这两件事情。

-

第一件事:今天上司叫来了大楼里收废品的阿姨,要把办公室里面的饮料瓶全部处理掉。不一会儿阿姨就把瓶子收拾进编织袋,拖着往办公室门口走。平时办公室的门只开一扇,另一边一直关着。当阿姨走时,我准备去帮她开下门,发现拖着装满瓶子的编织袋,只开一扇门是不可能通过的。其实已经又一位同事在帮阿姨开门了,只是开了一直开的那一边。当他想把另一边打开的时候,他却不知道怎么开。然后我竟没有考虑的问另外一个同事,门的另一边怎么开。我的脑袋肯定是锈掉了,竟然没有把信息在脑袋里处理一下就扔出去了。

- - - -
- - - - - -
- - - -
-
-

- - 《Java多线程编程核心技术》 - -

- - -
- - - - -
- - - - - -

总页数挺少,写的内容浅显易懂。还是在于多实践,在代码中多用。

-

关于技术的书,读完感觉没什么要写的,虽然并不真的会,多实践。

- - - -
- - - - - -
- - - -
-
-

- - 《支付战争》 - -

- - -
- - - - -
- - - - - - - -

昨天早上在银行大厅里,拿着kindle,把这本书看完了。以后周末要找一个有空调的地方,拿着kindle,最好是星巴克。

-

作者讲了关于美国paypal支付公司,从成立之初,到历经与ebay等众多公司,以及州法律之间的斗争,然后走向IPO,再到被ebay收购,到最后原拥有创业家精神的创始人和原始员工离开paypal。

- - - -
- - - - - -
- - - -
-
-

- - - -

- - -
- - - - -
- - - - - - - -

酒,对于生活肯定不是必不可少的,但是就像做饭的油盐酱醋,它是一剂调味料,也是酒逢知己千杯少的寂寥。

- - - -
- - - - - -
- - - -
-
-

- - 《无声告白》(美)伍绮诗 - -

- - -
- - - - -
- - - - - - - -

有点像“望子成龙望女成凤”中国式教育味道,家长把原本自己的理想强加在孩子身上,造成的悲剧。要说也不是悲剧,毕竟莉迪亚是因为想要证明有能力做回真正的自己而在湖里溺亡。也因为如此,莉迪亚的父母才开始真正去正视他们在命运里面临的问题。

- - - -
- - - - - -
- - - -
-
-

- - 目前的时间安排 - -

- - -
- - - - -
- - - - - - - -

突然头脑一热,在6月18号的时候,又打算去朋友的健身房开始健身。然后现在的时间安排就变成了这样:周二四六日晚上去健身,周三五晚巴西柔术,周六日中午巴西柔术。周一休息,突然时间就变得很少很少。

-

想,如果这些事情把我的时间都占满,那我就没有时间去看电影电视剧,没有空去浪费时间。上下班的地铁带上纸质书或者kindle,偶尔就是发呆。

- - - -
- - - - - -
- - - - - - - -
-
-

- - 2016书单 - -

- - -
- - - - -
- - - - - - - -
    -
  • 《Android编程实战》
  • -
  • 《Think in Java》
  • -
  • 《代码大全》
  • -
  • 《Head First 设计模式》
  • -
  • 《故事》
  • -
- - - -
- - - - - -
- - -
- - - - - -
- - -
-
- -
- - - - - - -
- -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/page/6/index.html b/page/6/index.html deleted file mode 100644 index a7e9969..0000000 --- a/page/6/index.html +++ /dev/null @@ -1,610 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 序员乱翻书 - - -
- -
- - - -
-
- - - -
- - -
-
-
- -
- - -
-
-

- - 《上庄记》 季栋梁 - -

- - -
- - - - -
- - - - - - - -

可能,书里的现实总是要比真正的现实要喜剧,书里的现实总是要比真正的现实要悲剧。

-

出版日期:2014年5月第一版 2015年5月第四次印刷。

-

老家的情况和作者描述的上庄与其说是相似,不如说就是真实的写照。虽历历在目,却从未映照在心上,一页页读来,从七八九岁到离家外出中间那段时间,家乡的人与事,都浮现在脑海。

- - - -
- - - - - -
- - - -
-
-

- - 在这个城市,搬家 - -

- - -
- - - - -
- - - - - - - -
    -
  • 今天又一次搬家,其实就是换住的地方。
  • -
  • 细细想来,这已经是1,2,3,4,5,6,对的,是在上海住的第六个地方了。从14年十一月底到达上海到现在,已经一年零7个月了,好快呀!
  • -
- - - -
- - - - - -
- - - - - - - -
-
-

- - 《笑傲江湖》 - -

- - -
- - - - -
- - - - - - - -
    -
  • 现在是周日,周五晚上终于把笑傲江湖看完了。
  • -
  • 没有明白令狐冲的小师妹 岳灵珊在整本书里的角色定位,当然,不是说我就明白了其他人的定位。
  • -
- - - -
- - - - - -
- - - -
-
-

- - 《天龙八部》 - -

- - -
- - - - -
- - - - - - - -
    -
  • 用了差不多两周的时间,把《天龙八部》看完了,兴许花的时间还要多一些。偶尔晚上做好饭已经11点了,就一边吃饭一边看,一不小心就看到了两点。有一两次看到了四点,不多都是周末。
  • -
- - - -
- - - - - -
- - - -
-
-

- - 《射雕英雄传》《神雕侠侣》《倚天屠龙记》 - -

- - -
- - - - -
- - - - - - - -
    -
  • 看完《射雕英雄传》,实在不想再往后看《神雕侠侣》或者其他了,因为总觉得看到郭靖和黄蓉走到最后的结局很好。从金庸的《书剑恩仇录》开始,总觉得书中有好多个女主角,但都一个个的没有走到最后。然后就很不舍得,不舍得看到郭靖和黄蓉走到一起的这种感觉。
  • -
- - - -
- - - - - -
- - - -
-
-

- - 《岛上书店》没有谁是一座孤岛 - -

- - -
- - - - -
- - - - - - - -

下面写着这些只是想表明一下,为什么开始对读书热衷起来了。

-

发现自己太不懂人情世故,也欠缺很多生活的乐趣,所以决定让自己多看一些书。前一段时间在读金庸的作品,专门在网上查了一下,该从哪一本开始看,才能更好的了解金庸的作品。知乎有一个回答,好似说的有那么个道理,不愿去深究。就按照《书剑恩仇录》《飞狐外传》《雪山飞狐》《鸳鸯刀》《碧血剑》《连城诀》《白马啸西风》《射雕英雄传》《神雕侠侣》……一本一本看下来。其实现在也只是从上面的目录一本本看到了《神雕侠侣》的开头,就不忍让自己再看下去了。

- - - -
- - - - - -
- - -
- - - - - -
- - -
-
- -
- - - - - - -
- -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/robots.txt b/robots.txt deleted file mode 100644 index 07a00e7..0000000 --- a/robots.txt +++ /dev/null @@ -1,4 +0,0 @@ -User-agent: * -Disallow: /tags/ -Disallow: /page/ -Disallow: /categories/ diff --git a/scaffolds/draft.md b/scaffolds/draft.md new file mode 100644 index 0000000..498e95b --- /dev/null +++ b/scaffolds/draft.md @@ -0,0 +1,4 @@ +--- +title: {{ title }} +tags: +--- diff --git a/scaffolds/page.md b/scaffolds/page.md new file mode 100644 index 0000000..f01ba3c --- /dev/null +++ b/scaffolds/page.md @@ -0,0 +1,4 @@ +--- +title: {{ title }} +date: {{ date }} +--- diff --git a/scaffolds/post.md b/scaffolds/post.md new file mode 100644 index 0000000..1f9b9a4 --- /dev/null +++ b/scaffolds/post.md @@ -0,0 +1,5 @@ +--- +title: {{ title }} +date: {{ date }} +tags: +--- diff --git "a/source/_posts/16\345\215\201\344\270\200\345\201\207\346\234\237.md" "b/source/_posts/16\345\215\201\344\270\200\345\201\207\346\234\237.md" new file mode 100644 index 0000000..3667140 --- /dev/null +++ "b/source/_posts/16\345\215\201\344\270\200\345\201\207\346\234\237.md" @@ -0,0 +1,34 @@ +--- +title: 16年十一假期 +date: 2016-10-05 16:45:09 +tags: 杂读 +--- + +- 《十年一觉电影梦 李安传》 张靓蓓 编著 + +读这本书是因为在小雨厨房的公众号文章里,提到李安的一些话,然后就想买来读,想知道李安是谁。原来我只看过李安的《卧虎藏龙》。= = + +- 《新生-七年就是一辈子》 李笑来 + +还是通过一个单元测试的群,知道李笑来老师的。然后通过别人的分享,了解到知笔墨这个网站,开始看李老师的书。想说自己是不容易被“洗脑”的,是不是给自己找的不改变的接口? + +- 《把时间当做朋友》 李笑来 + +这本书其实是在十一前读完的,暂且放在这里吧。就像李老师在《新生-七年就是一辈子》里总结的,这本书总结起来一句话: + +> 一切都靠积累 + +- 《失乐园》渡边淳一 + +因为爱情两个人才走到一起,走进婚姻,决定并在婚礼上宣誓“执子之手,与子偕老”。可有多少人真的能走到最后呢? + +> 如果签个字就算分手的话,那么二十几年来苦心经营的又是什么呢? + +> 连女儿也催着他和妻子离婚,使久木觉得和家人更加疏远了。 + +中间也穿插看了王小波的《黄金时代》 ,《一本摄影书》。 + +想捡起来的吉他,总是没有拿起来,明天拿起来吧,千万不要发霉了。 + + + diff --git "a/source/_posts/2016\344\271\246\345\215\225.md" "b/source/_posts/2016\344\271\246\345\215\225.md" new file mode 100644 index 0000000..4e2f970 --- /dev/null +++ "b/source/_posts/2016\344\271\246\345\215\225.md" @@ -0,0 +1,50 @@ +--- +title: 2016书单 +date: 2016-06-11 22:17:30 +tags: 书单 +--- +- 《Android编程实战》 +- 《Think in Java》 +- 《代码大全》 +- 《Head First 设计模式》 +- 《故事》 + +*06-30* +不知觉的,又增加了几本书 + +- 《IT项目经理成长手记》 +- 《无声告白》 end +- 《梦想与浮沉:A股十年上市博弈》 + +*07-10* +kindle原来用的勤的时候,一周充两次电,现在几周充一次。 +每个月发工资第一件事就是买几本书。 +- 《教父》end +- 《教父.西西里人》 +- 《教父.最后的教父》 +- 《王小波. 时代三部曲》 +- 《java并发编程的艺术》 +- 《java多线程编程核心技术》 end + +*07-16* +- 《二手时间》 +- 《商业的本质》 +- 《支付战争》 end +- 《重新定义团队》 + +不得不说,又买了一些书: + +- 《这就是台湾,这才是台湾》 + +- 《美国历史》 + +- 渡边淳一 《失乐园》《无影灯》《男人这东西》《再爱一次》《爱的流放地》 + +- 《红楼梦》(珍藏足本) + +*09-04* +- 《人月神话》 +- 《Head First PMP》 +- 《十年一觉电影梦》 +- 《一本摄影书》 +- 《全能项目经理的12堂必修课》 \ No newline at end of file diff --git "a/source/_posts/gradle\347\232\204\344\275\277\347\224\250.md" "b/source/_posts/gradle\347\232\204\344\275\277\347\224\250.md" new file mode 100644 index 0000000..8860764 --- /dev/null +++ "b/source/_posts/gradle\347\232\204\344\275\277\347\224\250.md" @@ -0,0 +1,180 @@ +--- +title: gradle的使用 +date: 2016-06-20 23:31:50 +tags: Android +--- + +### gradle 多分支使用不同的签名文件打包 + +- 参考链接[https://chobitly.github.io/2016/02/05/Android-Gradle-Build/index.html] + +``` + android { + signingConfigs { + debug {} //debug debug版本 + release {} //正式签名版本 + third {} //另一个签名配置 + } + buildTypes { + debug { + applicationIdSuffix ".debug" + } + release { + signingConfig singingConfigs.release + } + + third { + signingConfig singingConfigs.third + } + } + //产品不同分支 + productFlavors { + alpha_fittime { + applicationId = "" + manifestPlaceholders = [] + } + beta_fittime { + applicationId = "" + manifestPlaceholders = [] + } + product_fittime { + applicationId = "" + manifestPlaceholders = [] + } + } + } + +//读取sign key配置 relese版本 +File releaseFile = file('release.properties'); +if (releaseFile.exists()) { + def Properties releasePt = new Properties() + releasePt.load(new FileInputStream(releaseFile)) + if (releasePt.containsKey('STORE_FILE') && releasePt.containsKey('STORE_PASSWORD') && + releasePt.containsKey('KEY_ALIAS') && releasePt.containsKey('KEY_PASSWORD')) { + android.signingConfigs.release.storeFile = file(releasePt['STORE_FILE']) + android.signingConfigs.release.storePassword = releasePt['STORE_PASSWORD'] + android.signingConfigs.release.keyAlias = releasePt['KEY_ALIAS'] + android.signingConfigs.release.keyPassword = releasePt['KEY_PASSWORD'] + } else { + android.buildTypes.release.signingConfig = null + } +} else { + android.buildTypes.release.signingConfig = null +} + +//读取sign key配置 third 版本 +File thirdFile = file('third.properties'); +if (thirdFile.exists()) { + def Properties thirdPt = new Properties() + thirdPt.load(new FileInputStream(thirdFile)) + if (thirdPt.containsKey('STORE_FILE') && thirdPt.containsKey('STORE_PASSWORD') && + thirdPt.containsKey('KEY_ALIAS') && thirdPt.containsKey('KEY_PASSWORD')) { + android.signingConfigs.third.storeFile = file(thirdPt['STORE_FILE']) + android.signingConfigs.third.storePassword = thirdPt['STORE_PASSWORD'] + android.signingConfigs.third.keyAlias = thirdPt['KEY_ALIAS'] + android.signingConfigs.third.keyPassword = thirdPt['KEY_PASSWORD'] + } else { + android.buildTypes.third.signingConfig = null + } +} else { + android.buildTypes.third.signingConfig = null +} +``` + +--- + +#### 打包命令: + +- gradle aR 打包的release 使用 release.properties 文件配置的key信息,third 使用third.properties 文件配置的key信息 + + +### gradle 每一个分支使用不同签名文件打包 + +- 参考链接[http://stackoverflow.com/questions/17040494/signing-product-flavors-with-gradle] + +``` +android { + signingConfigs { + debug {} //debug debug版本 + release {} //正式签名版本 + third {} //另一个签名配置 + } + buildTypes { + debug { + applicationIdSuffix ".debug" + } + release { + signingConfig singingConfigs.release + } + + third { + signingConfig singingConfigs.third + } + } + //产品不同分支 + productFlavors { + //首先定义局部的打包需要的配置 + def defaultSigning = signingConfigs.release + def thirdSigning = signingConfigs.third + alpha_fittime { + applicationId = "" + manifestPlaceholders = [] + signingConfig defaultSigning //使用默认签名 + } + beta_fittime { + applicationId = "" + manifestPlaceholders = [] + signingConfig defaultSigning //使用默认签名 + } + product_fittime { + applicationId = "" + manifestPlaceholders = [] + signingConfig defaultSigning //使用默认签名 + } + third_fittime { + applicationId = "" + manifestPlaceholders = [] + signingConfig thirdSigning //使用third签名 + } + + } +} + +//读取sign key配置 relese版本 +File releaseFile = file('release.properties'); +if (releaseFile.exists()) { + def Properties releasePt = new Properties() + releasePt.load(new FileInputStream(releaseFile)) + if (releasePt.containsKey('STORE_FILE') && releasePt.containsKey('STORE_PASSWORD') && + releasePt.containsKey('KEY_ALIAS') && releasePt.containsKey('KEY_PASSWORD')) { + android.signingConfigs.release.storeFile = file(releasePt['STORE_FILE']) + android.signingConfigs.release.storePassword = releasePt['STORE_PASSWORD'] + android.signingConfigs.release.keyAlias = releasePt['KEY_ALIAS'] + android.signingConfigs.release.keyPassword = releasePt['KEY_PASSWORD'] + } else { + android.buildTypes.release.signingConfig = null + } +} else { + android.buildTypes.release.signingConfig = null +} + +//读取sign key配置 third 版本 +File thirdFile = file('third.properties'); +if (thirdFile.exists()) { + def Properties thirdPt = new Properties() + thirdPt.load(new FileInputStream(thirdFile)) + if (thirdPt.containsKey('STORE_FILE') && thirdPt.containsKey('STORE_PASSWORD') && + thirdPt.containsKey('KEY_ALIAS') && thirdPt.containsKey('KEY_PASSWORD')) { + android.signingConfigs.third.storeFile = file(thirdPt['STORE_FILE']) + android.signingConfigs.third.storePassword = thirdPt['STORE_PASSWORD'] + android.signingConfigs.third.keyAlias = thirdPt['KEY_ALIAS'] + android.signingConfigs.third.keyPassword = thirdPt['KEY_PASSWORD'] + } else { + android.buildTypes.third.signingConfig = null + } +} else { + android.buildTypes.third.signingConfig = null +} +``` + +- 这样就可以使得 productFlavors 中的third_fittime 单独只用自己的第三方签名 \ No newline at end of file diff --git "a/source/_posts/synchronized\344\270\216volatile\345\244\232\347\272\277\347\250\213\344\270\255\347\232\204\344\275\234\347\224\250.md" "b/source/_posts/synchronized\344\270\216volatile\345\244\232\347\272\277\347\250\213\344\270\255\347\232\204\344\275\234\347\224\250.md" new file mode 100644 index 0000000..5b69420 --- /dev/null +++ "b/source/_posts/synchronized\344\270\216volatile\345\244\232\347\272\277\347\250\213\344\270\255\347\232\204\344\275\234\347\224\250.md" @@ -0,0 +1,47 @@ +--- +title: synchronized与volatile多线程中的作用 +date: 2016-09-11 15:21:45 +tags: 程序员book +--- + +注明:文中内容总结来自书籍《Java多线程编程核心技术》第二章 + +### 关键字synchronized + +- 同步 + +两个线程访问同一个对象中的同步方法时一定是线程安全的。 + +synchronized 修饰的方法一定是排队运行的,只有共享资源的读写访问才需要同步化,否则不需要。 + +- dirtyRead 脏读: + +出现在读取实例变量时,该变量已经被其他线程修改。而解决脏读的一种方法就是在读取实例变量的方法加上synchronized关键字。这样,当线程A访问该实例的方法A(synchronized修饰)时,线程B如果需要访问该实例方法B(synchronized修饰),必须等线程A执行完方法A,释放该方法所在的对象锁。 + +需要留意的是,当线程A访问实例的synchronized方法时,并不影响线程B访问该实例对象的非synchronized方式。也就是说,线程之间的同步的方法只是同一实例对象的synchronized方法。 + +- synchronized锁重入 + +自己可以再次获取自己的内部锁。也就是说,当线程A获取获取了某个对象的锁,当这个对象锁还没有释放的时候,线程A需要再次获取这个对象锁的时候是可以获取到的,不然就会造成死锁。可重入锁支持父子类继承(子类可以通过“可重入锁”调用父类的同步方法)。 + +- 出现异常,锁会自动释放 +- 父类的synchronizd修饰的方法,并不会被子类继承。子类如果仍需要继承的方法是同步的,需要加上synchronized关键字 +- synchronized同步代码块 + - synchronized(this)锁定当前对象 + - synchronized(非this对象)锁定 对象监视器必须为同一个,不然仍然是异步调用 +- 静态同步synchronized方法与synchronized(class)代码块 + - 两者持有Class锁等同,但与持有对象锁是不一样的。 +- 数据类型String的常量池 + - 因为JVM中具有String常量池缓存的功能,所以讲synchronized(String)同步快与String联合使用时,要注意常量池带来的意外。因为在常量池中两个String “AA” 其实是同一个对象,所以锁对象也是同一个。 + - 同步synchronized代码块都不适用String作为锁对象。 + +### 关键字volatile + +- 变量在多个线程可见,强制从公共堆栈中取值,不从线程私有数据栈中取值,但是却不能保证原子性。 +- volatile解决的是变量读时的可见性问题,但无法保证原子性,对于多个线程访问同一个实例变量还是需要加锁同步。 + +> 线程安全包含原子性和可见性两个方面,Java的同步机制都是围绕这两个方面来确保线程安全的。 + +> 关键字synchronized可以保证在同一时刻,只有一个线程可以执行某个方法或者某个代码块。包含两个特征:互斥性和可见性。同步synchronized不仅可以解决一个线程看到对象处于不一致的状态,还可以保证进入同步方法或者代码块的每个线程,都看到由同一个锁保护之前所有的修改效果。 + +> 外练互斥,内修可见 \ No newline at end of file diff --git "a/source/_posts/\343\200\212Java\345\244\232\347\272\277\347\250\213\347\274\226\347\250\213\346\240\270\345\277\203\346\212\200\346\234\257\343\200\213.md" "b/source/_posts/\343\200\212Java\345\244\232\347\272\277\347\250\213\347\274\226\347\250\213\346\240\270\345\277\203\346\212\200\346\234\257\343\200\213.md" new file mode 100644 index 0000000..0b623c5 --- /dev/null +++ "b/source/_posts/\343\200\212Java\345\244\232\347\272\277\347\250\213\347\274\226\347\250\213\346\240\270\345\277\203\346\212\200\346\234\257\343\200\213.md" @@ -0,0 +1,8 @@ +--- +title: 《Java多线程编程核心技术》 +date: 2016-08-06 17:09:58 +tags: 程序员book +--- +总页数挺少,写的内容浅显易懂。还是在于多实践,在代码中多用。 + +关于技术的书,读完感觉没什么要写的,虽然并不真的会,多实践。 \ No newline at end of file diff --git "a/source/_posts/\343\200\212\344\270\212\345\272\204\350\256\260\343\200\213\345\255\243\346\240\213\346\242\201.md" "b/source/_posts/\343\200\212\344\270\212\345\272\204\350\256\260\343\200\213\345\255\243\346\240\213\346\242\201.md" new file mode 100644 index 0000000..11bfb44 --- /dev/null +++ "b/source/_posts/\343\200\212\344\270\212\345\272\204\350\256\260\343\200\213\345\255\243\346\240\213\346\242\201.md" @@ -0,0 +1,27 @@ +--- +title: 《上庄记》 季栋梁 +date: 2016-06-11 11:37:53 +tags: 杂读 +--- + +可能,书里的现实总是要比真正的现实要喜剧,书里的现实总是要比真正的现实要悲剧。 + +出版日期:2014年5月第一版 2015年5月第四次印刷。 + +**老家的情况和作者描述的上庄与其说是相似,不如说就是真实的写照。虽历历在目,却从未映照在心上,一页页读来,从七八九岁到离家外出中间那段时间,家乡的人与事,都浮现在脑海。** + +年轻的都在城市里打工,村子里剩下的都是没有什么一技之长的,或者年纪比较大的。能出去打工,谁还在家里种地呢?但,肯定也有书中所说的种种缘由。犹还记得,七八九岁时候,陪着姥爷姥姥在地里劳作,还有两个妹妹,一个亲妹子,一个是舅家的小妹。那时候姥爷怕我们累着,只是让我们一边玩,一边干一点活。湿湿的土里偶尔会翻出很大只得东西南北虫,这种虫子的一头总是不停地东西南北的指。 + +姥爷在我很小的时候,就让我学着抽烟了,其实也是逗着让我玩儿的。姥爷对我很严厉,姥姥向着我,姥爷向着两个小妹。我想,姥姥只是一味偏心,姥爷却是出于爱,对小妹好,对我严厉。对姥爷有些怕,更多的是想看他笑的时候那额头上的皱纹。 + +不懂的是为什么,老天爷不让姥爷在世上多呆几年,就让癌症带走了,走之前没来得及见上一面。我怀念那七八九岁和您一起在田地里面朝黄土背朝天,怀念您收了白菜拉了一架子车在家门口喊着让我帮忙,怀念您看着我学抽烟时候被呛到,怀念因为我没有忍着让着小妹您训斥我…… + +**如果能早知道,那会不会能在您身边多陪一些时候,多叫您一生“姥爷”呢,能摸一下您微笑时候的皱纹呢……** + +本来想摘抄一些书中读来颇有感触的句子,等再往回翻起来,竟也找不到句子在哪里了。 + +> 这世上传下来的讲究都是有说法的,以后别糊弄。 + + + +*[端午节,第三日,午 ]* \ No newline at end of file diff --git "a/source/_posts/\343\200\212\344\272\272\344\272\272\351\203\275\350\203\275\347\224\250\350\213\261\350\257\255\343\200\213\346\235\216\347\254\221\346\235\245.md" "b/source/_posts/\343\200\212\344\272\272\344\272\272\351\203\275\350\203\275\347\224\250\350\213\261\350\257\255\343\200\213\346\235\216\347\254\221\346\235\245.md" new file mode 100644 index 0000000..88cba32 --- /dev/null +++ "b/source/_posts/\343\200\212\344\272\272\344\272\272\351\203\275\350\203\275\347\224\250\350\213\261\350\257\255\343\200\213\346\235\216\347\254\221\346\235\245.md" @@ -0,0 +1,112 @@ +--- +title: 《人人都能用英语》李笑来 +date: 2016-10-07 14:08:57 +tags: 读书笔记 +--- +本书可以在知笔墨上找到[http://zhibimo.com/read/xiaolai/everyone-can-use-english/index.html] 。 + +> 他们永远不相信自己所有的问题就出在自己从来都不肯耐心把最基础的东西弄清楚弄明白。 + +> 读诗品意境,读散文品心境,读小说品情节,读报纸品现实。为了学而读,还要在读与品之外考虑很多事情,作者为什么这么写,这么写好的话好在哪儿,差的话差在哪儿,要是我去写应该怎么写才能更好……等等等等。 + +> 听Randy Pausch博士在他的“The Last Lecture”中说“The brick walls are there for a reason. They're not there to keep us out. The brick walls are there to give us a chance to show how badly we want something…” + +*这些墙在那里只有一个原因。他不是为了把我们隔绝在外面,而是为了给我们一个了解自己有多渴望懂得一些事情的机会。(个人翻译)* + +> - 就算因“早恋”发生了行动,拉拉手、亲亲嘴,他们也很可能不会太过紧张;然而,他们真的害怕自己的孩子发生“underage sexual behaviors”…… One of the reasons why many parents want to send their children to separate school is that they are worried about possible underage sexual behaviors. + +> 获得知识的技巧:从观察到聆听,从阅读到反刍,从读书到笔记,从使用图书馆到使用搜索引擎,一切获得知识的手段需要技巧,并且还需要不停地打磨这些基本技巧。其次是逻辑思考的技巧,再次之是沟通的技巧。这三项是应该排在其他技巧之前,因为打磨任何一项技巧都需要时间,时间有限的情况下,只能划分轻重而为之。 + +## 口语 +- 自己的口语书 +- 自己想要表达的内容中文记录,然后英文表达 +- 换一种说法 +- 使用平实 朴素 没有修辞的中文 +- 着重收集“不直观的对应” +``` +eg: + * 如果我没记错的话…… + * 我从未想过…… + * 你竟然跟我这么说话! + * 就知道你有这本事! + * (这)听着耳熟吧? + * 我想不起来那名字了…… + +这些句子,基本上都是我们日常生活中必然用到的句子(或片段),可是,如果“直译”的话,就很别扭: + + * If I didn’t remembered wrong… + * I never thought of/that… + * How dare you talking to me like this! + * I know you have such a capability! + * Does it sound familiar? + * I cannot remember that name… + +同样的语境里,“地道”的说法是这样的: + + * If my memory serves, … + * It never occurred to me that… + * Are we really having this conversation? + * Always knew you had it in you! + * Does it ring a bell to you? + * That name escapes me…. +``` + +- 长篇大论写出来 +- 更重要的是思考能力 +- 复述 (秘密武器)读一篇文章然后可以复述 +- 哑巴英语也没什么不好,如果目的在于阅读 + +## 语音 + +这部分我看了一点,直接就跳过了。 + +## 朗读 + +朗读如果发音都是错的,那读的意义在哪里? +- 有助于提高文字理解能力 +- 提高阅读理解速度 +- 不要专门练听力,朗读 +- 提高语言文字记忆能力 +- 提高表达能力 +- 提高语言文字模式识别能力 + +## 词典 + +有道词典 金山词霸 +- 单词 同义词 +- 搞定词组 +- 如何把word打造成学习英文的利器(方法请看原书) +``` +eg: +It was attempting to suggest that every disease and condition for which there had been no previous effective treatments might be responsive to vitamin therapies. +事实上,ETS从来不自己创作文章,这句话是Child Psychiatry and Human Development杂志 1998年第3期,Orthomolecular therapy: Its history and applicability to psychiatric disorders中的一段话。设计SAT考试的Colledge Board也是如此,SAT考试中的阅读文章几乎篇篇都可以在互联网上找到原文。 +也许读者会去词典里查“attempting”、“responsive”、或者“therapy”是什么意思,但我见过的学生中几乎就没有人去查“condition”在这句话里究竟应该是什么意思。他们之所以没有想到去查“condition”,是因为他们“认识”这个词,“condition:n. 条件、情况”。然而,就算除了“condition”之外的所有词汇都认识、并且每一个词在当前句子中的确切含义都完全了解的情况下,这句话如此理解难道就不觉得别扭么? +“and”究竟是什么意思、应该怎么用,没有人不知道吧?“and”前后的往往应该属于同一范畴——这是基本的逻辑。现在“and”前面是“disease”,这个单词的含义是“疾病”,那么“every disease and condition”究竟应该是“每一种疾病和条件”?还是“每一种疾病和情况”?——其实无论哪一个都说不过去啊。只要在这里稍作一下思考,就会产生疑问,而后打开词典查“condition”原本应该是再自然不过的事情了。 +查查词典就知道了,“condition”这个单词作为名词还有另外一个含义,字典里说的是“(口语)病”。在查查同义词词典就知道了,“disease”是用来表达“疾病”最常用的词;而“condition”之所以经常在口语里使用,是因为“condition”通常指那些平日里常得也因此常常被提及的并不太严重的疾病。“She had a condition this morning. ”相当于在说“她今早上有点难受。”所以,“every disease and condition”相当于说“不管大病小病”。 +``` + +## 语法 + +- 语法书 + 《朗文英语语法》和《朗文高级英语语法参考及练习》 + 《剑桥中级英语语法》 + 《Collins COBUILD 英语语法大全》 + 《新编英语阅读手册》京东和亚马逊确实没找到呢 +- 反复通读至少一本语法书 +- 用模板造句 + +## 精读 + +- 构建自己的私人图书馆(在电脑上) +``` + 1. 挣扎着搞清楚每一句话的确切含义。运用一切可以运用的手段——查词典,查语法书,甚至去查Google。“自己动手”比“花钱让别人替自己干活”(比如,报班上课听讲)在这方面不知道要有效多少倍。 + 2. 理解每句话之间、每个段落之间的关系。处理段落还有另外一个任务——概括。 + 3. 整理词汇。要知道,读完一篇文章之后,自己动手整理词汇,远比背单词书效率高出许多——可惜,大多数人并不相信。 + 4. 反复阅读若干遍。读着读着就可能发现很多第一次读并没有注意到的东西。 + 5. 复述文章。能够书面或者口头复述刚刚读过的文章,实际上需要很多综合能力:记忆力、逻辑能力、转述能力、重新组织能力、再理解能力等等。 + 6. 养成相隔若干天后复习的习惯。 + +(其实,无论哪一种考试,拿来真题,如此处理50篇左右的文章,就基本上所向披靡了。) +鉴于大多数人学英语只是为了应付考试,所以,以上的文字里,是拿着考试文章作为示范的。事实上,读任何文字都可以这样“品”,只不过,不同类型的文章,“品”的要点不同而已。读诗品意境,读散文品心境,读小说品情节,读报纸品现实。为了学而读,还要在读与品之外考虑很多事情,作者为什么这么写,这么写好的话好在哪儿,差的话差在哪儿,要是我去写应该怎么写才能更好……等等等等。 +``` + diff --git "a/source/_posts/\343\200\212\345\244\251\351\276\231\345\205\253\351\203\250\343\200\213.md" "b/source/_posts/\343\200\212\345\244\251\351\276\231\345\205\253\351\203\250\343\200\213.md" new file mode 100644 index 0000000..ab2f99b --- /dev/null +++ "b/source/_posts/\343\200\212\345\244\251\351\276\231\345\205\253\351\203\250\343\200\213.md" @@ -0,0 +1,10 @@ +--- +title: 《天龙八部》 +date: 2016-05-28 13:06:18 +tags: 杂读 +--- + +- 用了差不多两周的时间,把《天龙八部》看完了,兴许花的时间还要多一些。偶尔晚上做好饭已经11点了,就一边吃饭一边看,一不小心就看到了两点。有一两次看到了四点,不多都是周末。 +- 每每看书看到夜里两点或者四点的时候,总是会后悔,怎么不早点睡觉,早上早些起来看呢?不一样是几个小时的时间吗? +- 接下来看《笑傲江湖》和《鹿鼎记》,《侠客行》就不看了。记得很小的时候,《侠客行》是有电视剧的,看了几集就不再看了。《笑傲江湖》是每逢放学在家,都要追的。那时候应该不是在读小学,就是在读初中。 +- 只因《鹿鼎记》是金庸最后一部,也是必看的了。 \ No newline at end of file diff --git "a/source/_posts/\343\200\212\345\260\204\351\233\225\350\213\261\351\233\204\344\274\240\343\200\213\343\200\212\347\245\236\351\233\225\344\276\240\344\276\243\343\200\213\343\200\212\345\200\232\345\244\251\345\261\240\351\276\231\350\256\260\343\200\213.md" "b/source/_posts/\343\200\212\345\260\204\351\233\225\350\213\261\351\233\204\344\274\240\343\200\213\343\200\212\347\245\236\351\233\225\344\276\240\344\276\243\343\200\213\343\200\212\345\200\232\345\244\251\345\261\240\351\276\231\350\256\260\343\200\213.md" new file mode 100644 index 0000000..8c15bfa --- /dev/null +++ "b/source/_posts/\343\200\212\345\260\204\351\233\225\350\213\261\351\233\204\344\274\240\343\200\213\343\200\212\347\245\236\351\233\225\344\276\240\344\276\243\343\200\213\343\200\212\345\200\232\345\244\251\345\261\240\351\276\231\350\256\260\343\200\213.md" @@ -0,0 +1,12 @@ +--- +title: 《射雕英雄传》《神雕侠侣》《倚天屠龙记》 +date: 2016-05-17 21:15:00 +tags: 杂读 +--- +- 看完《射雕英雄传》,实在不想再往后看《神雕侠侣》或者其他了,因为总觉得看到郭靖和黄蓉走到最后的结局很好。从金庸的《书剑恩仇录》开始,总觉得书中有好多个女主角,但都一个个的没有走到最后。然后就很不舍得,不舍得看到郭靖和黄蓉走到一起的这种感觉。 + +- 偶然和同事聊起用kindle看书的事情,他说 《射雕英雄传》《神雕侠侣》和《倚天屠龙记》是金庸唯一的三部曲,忍不住,用了将近两周时间,把后两部书看完了。 + +- 郭靖 黄蓉,杨康 小龙女,张无忌 赵敏。 + +- 不得不说郭襄也给人留了很深的印象。她没有她姐姐郭芙的任性,骄横,反倒觉得是黄蓉和郭靖两个性格的结合体。有着黄蓉的机灵古怪和聪慧,却又事事知书达理。《神雕侠侣》看完后就在想郭襄的最后是怎样的。在《倚天屠龙记》中提到:她一直寻找杨过到四十岁,创立峨嵋派,成为一代宗师,却终身未嫁。 diff --git "a/source/_posts/\343\200\212\345\262\233\344\270\212\344\271\246\345\272\227\343\200\213\346\262\241\346\234\211\350\260\201\346\230\257\344\270\200\345\272\247\345\255\244\345\262\233.md" "b/source/_posts/\343\200\212\345\262\233\344\270\212\344\271\246\345\272\227\343\200\213\346\262\241\346\234\211\350\260\201\346\230\257\344\270\200\345\272\247\345\255\244\345\262\233.md" new file mode 100644 index 0000000..a799851 --- /dev/null +++ "b/source/_posts/\343\200\212\345\262\233\344\270\212\344\271\246\345\272\227\343\200\213\346\262\241\346\234\211\350\260\201\346\230\257\344\270\200\345\272\247\345\255\244\345\262\233.md" @@ -0,0 +1,25 @@ +--- +title: 《岛上书店》没有谁是一座孤岛 +date: 2016-05-01 23:39:31 +categories: 杂读 +tags: 杂读 +--- +下面写着这些只是想表明一下,为什么开始对读书热衷起来了。 + +发现自己太不懂人情世故,也欠缺很多生活的乐趣,所以决定让自己多看一些书。前一段时间在读金庸的作品,专门在网上查了一下,该从哪一本开始看,才能更好的了解金庸的作品。知乎有一个回答,好似说的有那么个道理,不愿去深究。就按照《书剑恩仇录》《飞狐外传》《雪山飞狐》《鸳鸯刀》《碧血剑》《连城诀》《白马啸西风》《射雕英雄传》《神雕侠侣》……一本一本看下来。其实现在也只是从上面的目录一本本看到了《神雕侠侣》的开头,就不忍让自己再看下去了。 + +不得不说很喜欢《射雕英雄传》最后黄蓉和郭靖的结局。忍不住从网上查了03版李亚鹏饰演郭靖《射雕英雄传》电视剧,但是就只看了第1集和20多集的两集,也仅仅是快进着看了个开头就不再看了。当然胡歌版也同样是看了和03版同样的两集,也不愿再看。只能说没有从电视剧里从书里看到读书的感觉,把这个作品拍的水准低了。就像我从初中时就读了《那些年我们一起追的女孩》一样,要倒退到03年到07年之间了。直到11年这本书才拍成电影,仍然忍不住去看了电影,还是比较让人失望的,把我那些年在书里读来的感觉全都演没了。不过电影的最后柯景腾吻新郎的镜头,还是禁不住热泪盈眶。 + +入手了Kindle以后,会在亚马逊上看看有没有好的电子书推荐。无意间看到有满200元减120元的优惠券,领了以后就去看在选择范围内的书,无意间看到了《岛上书店》这边书,吸引我的是封面上的几句话: + +> “现象级全球畅销书” + +> “没有谁是一座孤岛” + +懒得去查什么是“现象级”,读完了全书也不甚理解。当时已经把好几本书放到了购物车,包括《岛上书店》《无声告白》等,但最终也没有结算。因为习惯了在cn.bing.com搜索有没有免费的电子书,然后果然找到了,省下了买书钱^^。但心里也会有小小的愧疚,关于著作版权,关于作者。 + +在五一放假的两天,抽时间用kindle把《岛上书店》看完了。读这类书籍的速度有点快,也说不上来究竟能从书里获得什么。整体章节在刚开始的时候读得有点不明所以,但是一章一章读下来,才知道是串起来的。整体读下来感触并不深,可是就像很多人说的,一本好书,在不同的阶段,多读几遍才会生出不一样的理解,有不一样的收获。 + +书大致在讲:一个小岛上的书店店主A.J 费克里在中年时候,由于爱妻去世,书店经营等问题,心已是孤岛。却意外的在书店里收到了一个弃婴,而弃婴的母亲投海自尽。从此A.J 费克里 开始抚养小女孩长大成人,而这场意外却由此拯救了他,也让小岛上的几个生命紧紧相依。 + +情节娓娓道来,不禁引人入胜。其中一个章节《当我们谈论爱情时我们在谈论什么》有一句话“一个人无法自成孤岛,要么至少,一个人无法自成最理想的孤岛”。书中很多地方读来并不能很好的理解。 \ No newline at end of file diff --git "a/source/_posts/\343\200\212\346\224\257\344\273\230\346\210\230\344\272\211\343\200\213.md" "b/source/_posts/\343\200\212\346\224\257\344\273\230\346\210\230\344\272\211\343\200\213.md" new file mode 100644 index 0000000..ea31e06 --- /dev/null +++ "b/source/_posts/\343\200\212\346\224\257\344\273\230\346\210\230\344\272\211\343\200\213.md" @@ -0,0 +1,30 @@ +--- +title: 《支付战争》 +date: 2016-07-24 10:41:28 +tags: 程序员book +--- +昨天早上在银行大厅里,拿着kindle,把这本书看完了。以后周末要找一个有空调的地方,拿着kindle,最好是星巴克。 + +作者讲了关于美国paypal支付公司,从成立之初,到历经与ebay等众多公司,以及州法律之间的斗争,然后走向IPO,再到被ebay收购,到最后原拥有创业家精神的创始人和原始员工离开paypal。 + +书中第六章讲到,从一个免费的互联网服务变成一个成功的付费服务,完成这一转型的网络公司寥寥无几。大多数公司并没有找到盈利模式,拿着资本的钱,在资本市场艰难生存。 + +一开始不明白上市公司为什么需要法律事务相关的工作人员,看了paypal的上市过程,才知道,有很多竞争对手会想办法阻挠上市。会遭到很多不良律师的起诉,因为知识产权/法律条文,等你想都想不到的原因,他们跟你并没有什么大的利益冲突,不过是要从上市公司分一杯羹。这些律师起诉的内容,如果处理不好,那就意味着几乎不能上市。 + +> 这种法律上和监管上的冲击让我们越发不知所措,因为我们这家创业公司岁这些挑战根本不熟悉。与ebay展开竞争是一回事---多少可以调整产品和营销团队应对竞争,然后让市场来决定谁输谁赢;甚至俄罗斯黑帮也是我们可以应对的,我们可以面对面地与他们斗智斗勇。但是阻碍我们成功的律师和监管者是全然不同的竞争对手,创业家拥有的创新/精力和灵活性可能不足以帮助我们走出这一困境。 +> PayPal厄运连连,我们的问题不仅仅是严峻的竞争形势。在IPO之后的几个月,PayPal官司不断,辩护律师纷纷登场,他们拿起了一个武器来对抗那些资金雄厚的公司--集体诉讼。 + +eBay举行的一个庆祝活动“eBay Live”上,由于PayPal的T恤衫营销,让eBay在这个自己的庆祝会上不愿意看到却多次看到的东西--PayPal,PayPal,还是PayPal。将近有四分之一的拍卖商参会者,穿着PayPal的T恤。 这一点让人体会到,关于一个名字,关于一个品牌,让其深入人心,让其无处不在,多么重要。 + +前一段时间,58和赶集合并,美团和大众点评合并,只知道是强强联合,却不知道为什么。看了PayPal被eBay收购,才知道,同一领域的两家巨头在相互竞争上那么耗费精力,以至于不能有更多的精力去提高自己的产品和服务。不过,就如书中所说: + +> 其实我觉得,到底谁赢谁输还不明朗,在这种情况下,如果输赢那么清晰的话,通常也就达不成交易了。胜利者不希望被收购,因为他们知道自己会赢,而输家也将无法说服任何人来收购他们。 + +关于大公司的通病,书中也有提及,在PayPal被eBay收购之后: + +> 随着进一步发展,PayPal变得更加公司化也更加有流程驱动,虽然已经到了把卢克·诺赛克 和 保罗·马丁 这种自由奔放的创新者逼走的地步,但是我们公司仍然保持着主人翁精神,并愿意鼓励员工争论。程序上的繁文缛节可能会减慢我们的创新脚步。 + +没办法去说读了这本书究竟让我对公司有了多少的了解,因为写这些类似读后感的时候,会觉得没有什么写的。 + +但是,似乎现在的公司还和当年的PayPal一样,仍然经历着同样的竞争与监管。似乎,现在的公司还没有当年的额PayPal做的好,虽然已经过去了那么多年、 + diff --git "a/source/_posts/\343\200\212\346\227\240\345\243\260\345\221\212\347\231\275\343\200\213-\347\276\216-\344\274\215\347\273\256\350\257\227.md" "b/source/_posts/\343\200\212\346\227\240\345\243\260\345\221\212\347\231\275\343\200\213-\347\276\216-\344\274\215\347\273\256\350\257\227.md" new file mode 100644 index 0000000..1e2f49a --- /dev/null +++ "b/source/_posts/\343\200\212\346\227\240\345\243\260\345\221\212\347\231\275\343\200\213-\347\276\216-\344\274\215\347\273\256\350\257\227.md" @@ -0,0 +1,12 @@ +--- +title: 《无声告白》(美)伍绮诗 +date: 2016-07-03 20:06:36 +tags: 杂读 +--- + +有点像“望子成龙望女成凤”中国式教育味道,家长把原本自己的理想强加在孩子身上,造成的悲剧。要说也不是悲剧,毕竟莉迪亚是因为想要证明有能力做回真正的自己而在湖里溺亡。也因为如此,莉迪亚的父母才开始真正去正视他们在命运里面临的问题。 + +读下来以为这个故事应该发生在中国,应该由中国人写出这样一本书。读完才知觉,是不是天下的父母都如此这般。可是书中的主人公却真真确确是中国人,故事的发生是否也与此有关? + +至少,在书的结尾处:莉迪亚的父母,她的哥哥内斯,她的小妹汉娜,正在努力向更自由更快乐的生活努力。 + diff --git "a/source/_posts/\343\200\212\347\254\221\345\202\262\346\261\237\346\271\226\343\200\213.md" "b/source/_posts/\343\200\212\347\254\221\345\202\262\346\261\237\346\271\226\343\200\213.md" new file mode 100644 index 0000000..72836c3 --- /dev/null +++ "b/source/_posts/\343\200\212\347\254\221\345\202\262\346\261\237\346\271\226\343\200\213.md" @@ -0,0 +1,9 @@ +--- +title: 《笑傲江湖》 +date: 2016-06-05 22:18:00 +tags: 杂读 +--- + +- 现在是周日,周五晚上终于把笑傲江湖看完了。 +- 没有明白令狐冲的小师妹 岳灵珊在整本书里的角色定位,当然,不是说我就明白了其他人的定位。 +- 金庸的小说打算看的却没有看的只剩下《鹿鼎记》了。前面看的几部小说,还是要重新看看的,如果关于里面的人物角色定位都清楚了,那是不是关于现实里的人,也能给出一个定位呢?包括我自己的定位。 \ No newline at end of file diff --git "a/source/_posts/\343\200\212\350\275\257\344\273\266\345\267\245\350\211\272\345\270\210\343\200\213-\350\213\261-\346\241\221\345\276\267\347\275\227-\346\233\274\345\215\241\347\264\242.md" "b/source/_posts/\343\200\212\350\275\257\344\273\266\345\267\245\350\211\272\345\270\210\343\200\213-\350\213\261-\346\241\221\345\276\267\347\275\227-\346\233\274\345\215\241\347\264\242.md" new file mode 100644 index 0000000..9750378 --- /dev/null +++ "b/source/_posts/\343\200\212\350\275\257\344\273\266\345\267\245\350\211\272\345\270\210\343\200\213-\350\213\261-\346\241\221\345\276\267\347\275\227-\346\233\274\345\215\241\347\264\242.md" @@ -0,0 +1,9 @@ +--- +title: '《软件工艺师》[英]桑德罗.曼卡索' +date: 2016-06-05 22:26:09 +tags: 开发者 +--- + +- 读这本书是因为自己想成为一个资深开发者,更是被它的目录吸引,所以买了纸质书。 +- 书里讲到了软件工艺师的概念,以及成为软件工艺师需要秉承的理念和态度。这边书并没有读完,里面第二部分关于面试部分没有看,直接跳到了15 和 16 章。书里关于作为开发者做什么,怎么做,抱着什么样的态度去做,以及做到最后的目标,觉得阐述的挺好。 +- 看了书,就要去实践。 \ No newline at end of file diff --git "a/source/_posts/\344\271\260\345\234\237\350\261\206\347\232\204\346\225\205\344\272\213.md" "b/source/_posts/\344\271\260\345\234\237\350\261\206\347\232\204\346\225\205\344\272\213.md" new file mode 100644 index 0000000..e6ffc66 --- /dev/null +++ "b/source/_posts/\344\271\260\345\234\237\350\261\206\347\232\204\346\225\205\344\272\213.md" @@ -0,0 +1,22 @@ +--- +title: 买土豆的故事 +date: 2016-09-02 00:05:08 +tags: 杂记 +--- +突然想起《买土豆的故事》,因为最近发生的两件事情。当然,没有做到的肯定不止这两件事情。 + +第一件事:今天上司叫来了大楼里收废品的阿姨,要把办公室里面的饮料瓶全部处理掉。不一会儿阿姨就把瓶子收拾进编织袋,拖着往办公室门口走。平时办公室的门只开一扇,另一边一直关着。当阿姨走时,我准备去帮她开下门,发现拖着装满瓶子的编织袋,只开一扇门是不可能通过的。其实已经又一位同事在帮阿姨开门了,只是开了一直开的那一边。当他想把另一边打开的时候,他却不知道怎么开。然后我竟没有考虑的问另外一个同事,门的另一边怎么开。我的脑袋肯定是锈掉了,竟然没有把信息在脑袋里处理一下就扔出去了。 + +常识:一边的门开的话,另一边的门一般都是由插销固定着。而插销的位置,不在上面就是在下面。 + +第二件事:记得一次巴西柔术训练结束,李哥在换衣室里拿着一条蓝带,说:“某某的带子”(某某是带子上有的名字)。那时我刚好站在门口,就接了过来。我便对着仅剩下的两个人问,谁的带子。情况是这样的,我知道其中一位是Cindy姐,另一位肯定就是带子的主人,张姐姐了。当时Cindy姐就问我:你是怎么混到你老板的公司的?(我的上司也是我的巴西柔术教练)。 + +带子明明有名字,稍微想一下就知道带子是谁的。更好地是,拿到带子以后可以马上改口张姐姐,竟然……没有动脑袋,仍是把信息不处理直接扔出去了。 + +还有:现在有几家商户使用我们的app,需要做一下后期维护更新的工作。如果这不到十家店铺都没办法更新维护好的话,那等有一天成百上千家,还怎么搞的定?! + +需要做到的还很多,还能做得更好。 + +《买土豆的故事》 附上链接 https://www.douban.com/group/topic/21021554/ + + diff --git "a/source/_posts/\345\234\250\350\277\231\344\270\252\345\237\216\345\270\202\357\274\214\346\220\254\345\256\266.md" "b/source/_posts/\345\234\250\350\277\231\344\270\252\345\237\216\345\270\202\357\274\214\346\220\254\345\256\266.md" new file mode 100644 index 0000000..a3fcb58 --- /dev/null +++ "b/source/_posts/\345\234\250\350\277\231\344\270\252\345\237\216\345\270\202\357\274\214\346\220\254\345\256\266.md" @@ -0,0 +1,35 @@ +--- +title: 在这个城市,搬家 +date: 2016-06-09 20:03:11 +tags: 杂记 +--- + +- 今天又一次搬家,其实就是换住的地方。 + +- 细细想来,这已经是1,2,3,4,5,6,对的,是在上海住的第六个地方了。从14年十一月底到达上海到现在,已经一年零7个月了,好快呀! + +- 刚来上海住在小舅的公司宿舍,然后找到了这里第一份工作。 + +- 临近过年,搬到了第二个地方。是住在房东家里,里面不仅仅是我一个租客,还有3个其他的租客吧。印象最深的是有一次发烧,早上竟然睡过了,头疼,浑身没有一点力气,喉咙干涩疼痛,赶紧给公司请了一天假。房东家里的老奶奶给我端来了早上她熬的粥。然后就是每次晾晒衣服,奶奶都会在衣服晾干的时候,叠好放在我屋里椅子上。 + +- 这一住就是半年,然后在15年7月份,搬出去和巴西柔术教练一起住了一个半月,这段时间对我来说应该是最温暖的。关于巴西柔术的一切,人和事,满怀感激,希望自己提笔写点什么。 + +- 在巴柔老师那里住了一个半月后,和大学认识的朋友合租了两室一厅,从九月到12月中旬。那段日子幸运的是,有一段时间可以顺便蹭饭,朋友为第二天准备的午餐,我也会有一份,带到公司。因为这个,现在的我,一天三顿饭都自己解决,偶尔会偷懒出去吃一顿。 + +- 好日子并不长,因为其中一个朋友因公司需要,去另一个地方发展,剩下的只好再找住的地方。第五个地方是公寓,一住又是半年,从15年12月份到现在16年6月份。等搬到这里的时候才发现,和第二个住的地方是那样近,因为那时候一直去的超市,就在小区门口。在这个合同期还没到的时候,就搬去了第六个地方,正在发愁公寓的房间怎么租出去。58赶集都发了帖子,可是还无人问津……如果不能转租出去,我可有的损失了。= = : >--< + +- 第六个地方在菜市场附近,以后去巴西柔术馆就可以走着去了,周末买菜再也不用走那么远的路了。而且离巴西柔术教练住的地方更近了呢,哈哈。希望第四个地方附近那个破旧的健身房还在。 + +- 因为搬家,这次端午节没有出去,争取把《上庄记》看完。 + + ​ + + *[写在第五个地方的公寓里,晚]* + +正在建设中的城市高楼 + +![](../../../../images/note/1.png) + +晚上跳绳锻炼的地方 + +![](../../../../images/note/2.png) \ No newline at end of file diff --git "a/source/_posts/\345\246\202\344\275\225\344\275\277\345\215\225\344\276\213\346\250\241\345\274\217\351\201\207\345\210\260\345\244\232\347\272\277\347\250\213\346\230\257\345\256\211\345\205\250\347\232\204\343\200\201\346\255\243\347\241\256\347\232\204.md" "b/source/_posts/\345\246\202\344\275\225\344\275\277\345\215\225\344\276\213\346\250\241\345\274\217\351\201\207\345\210\260\345\244\232\347\272\277\347\250\213\346\230\257\345\256\211\345\205\250\347\232\204\343\200\201\346\255\243\347\241\256\347\232\204.md" new file mode 100644 index 0000000..d87d114 --- /dev/null +++ "b/source/_posts/\345\246\202\344\275\225\344\275\277\345\215\225\344\276\213\346\250\241\345\274\217\351\201\207\345\210\260\345\244\232\347\272\277\347\250\213\346\230\257\345\256\211\345\205\250\347\232\204\343\200\201\346\255\243\347\241\256\347\232\204.md" @@ -0,0 +1,284 @@ +--- +title: 如何使单例模式遇到多线程是安全的、正确的 +date: 2016-09-04 20:49:04 +tags: 程序员book +--- +注明:文中内容总结来自书籍《Java多线程编程核心技术》第六章 +1)懒汉模式:以下代码是完全错误的,线程不安全。项目中写的代码大多属于这种情况,当不存在多线程访问时这种方式应该是可取的。 +``` + public static LazySingleton getInstance() { + try { + if (Instance != null) { + + } else { + Thread.sleep(3000); + Instance = new LazySingleton(); + } + } catch (InterruptedException exception) { + exception.printStackTrace(); + } + return Instance; + } +``` +1.1)针对懒汉模式解决方案1: geInstance声明synchronized关键字 ,整个方法上锁 +``` + 但是因为是同步运行,必须等到上一个线程释放锁以后才能继续执行,所以效率低下 + synchronized public static LazySingleton getInstance() { + try { + if (Instance != null) { + + } else { + Thread.sleep(3000); + Instance = new LazySingleton(); + } + } catch (InterruptedException exception) { + exception.printStackTrace(); + } + return Instance; + } +``` +1.2)针对懒汉模式解决方案2: 同步代码块 和方案1一样效率低下 +``` + public static LazySingleton getInstance() { + try { + synchronized(LazySingleton.class){ + if (Instance != null) { + + } else { + Thread.sleep(3000); + Instance = new LazySingleton(); + } + } + } catch (InterruptedException exception) { + exception.printStackTrace(); + } + return Instance; + } +``` +1.3)懒汉模式解决方案3: 针对重要代码进行单独同步,然并卵 +``` + public static LazySingleton getInstance() { + try { + + if (Instance != null) { + + } else { + Thread.sleep(3000); + //然并卵,两个不同的线程,仍然会让代码跑到这里,当第一个线程释放锁后,Instance=new LazySingleton() + //会再次执行,就出现两个实例对象 + synchronized (LazySingleton.class) { + Instance = new LazySingleton(); + } + } + } catch (InterruptedException exception) { + exception.printStackTrace(); + } + return Instance; + } +``` +1.4)懒汉模式解决方案4:使用DCL双检查锁机制(双重检查Double-Check Locking),大多数多线程结合单例使用的解决方案 +``` +public static LazySingleton getInstance() { + try { + + if (Instance != null) { + + } else { + Thread.sleep(3000); + //既保证了不需要同步代码的异步执行性,有保证了单例效果 + //书中的同步代码的异步执行性这样的描述没懂??? + synchronized (LazySingleton.class) { + //保证进入这块代码是异步,如果已经实例化,则不再执行初始化代码 + if (Instance==null) { + Instance = new LazySingleton(); + } + } + } + } catch (InterruptedException exception) { + exception.printStackTrace(); + } + return Instance; + } +``` +2)饿汉模式:书中说getInstance()没有同步 存在线程安全问题,但是在getInstance加了线程休眠,依然hasCode输出一致,所以还没想明白。 +``` +public class HungrySingleton implements Serializable{ + /** + * 不能有其他实例变量 + */ + private static HungrySingleton Instance = new HungrySingleton(); + public static HungrySingleton getInstance() { + try { + Thread.sleep(3000); + } catch (InterruptedException e) { + e.printStackTrace(); + + } + return Instance; + } +} +``` +3)静态内置类实现单例模式 +``` +public class StaticInnerSingleton { + + /* + * 静态内之类实现单例模式 + */ + private static class SingletonObject { + private static StaticInnerSingleton Instance = new StaticInnerSingleton(); + } + + private String content; + + private StaticInnerSingleton() { + } + + public static StaticInnerSingleton getInstance(String content) { + SingletonObject.Instance.setContent(content); + return SingletonObject.Instance; + } + + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content; + } + + @Override + public int hashCode() { + // TODO Auto-generated method stub + System.out.println(String.valueOf(super.hashCode()) + ": " + this.content); + return super.hashCode(); + } + +} +``` +4) 序列化和反序列化的单例模式实现:书中代码是反序列化增加了readResolve 的实现。但是书中是用的protected 关键字修饰,然并卵。然后网址搜索了一篇文章,换成private修饰OK。附上链接[http://www.cnblogs.com/kakafra/archive/2012/10/26/2740436.html] +``` +public class SeriealSingleton implements Serializable{ + + private static final long serialVersionUID = -4994911035515393248L; + + private static class SingletonObject{ + private static final SeriealSingleton Instance = new SeriealSingleton(); + } + private SeriealSingleton() { + // TODO Auto-generated constructor stub + } + + public static SeriealSingleton getInstance(){ + return SingletonObject.Instance; + } + + //如果这段代码注释掉,则还是多例 ,书中代码是用protected 修饰这个代码,还是多例模式 + //网上搜到这边文章http://www.cnblogs.com/kakafra/archive/2012/10/26/2740436.html + //改为private 就是单例了。 + private Object readResolve() throws ObjectStreamException{ + System.out.println("调用了readResolve方法"); + return SingletonObject.Instance; + } + +} +``` +5) static代码块实现单例模式 +``` +public class StaticBlockSingleton { + private static StaticBlockSingleton Instance = null; + + private StaticBlockSingleton() { + + } + /* + * 静态代码块在使用来的时候已经执行 + */ + static{ + Instance = new StaticBlockSingleton(); + } + + public static StaticBlockSingleton getInstance() { + return Instance; + } +} +``` +6) enum枚举数据类型实现单例模式:应该很少会这样写吧。 +``` +public enum EnumSingleton { + connectionFactory; + private Connection connection; + /* + * 枚举enum和静态代码块特性相似,使用枚举时,构造方法会被自动调用 + * 但是却暴漏了枚举类,违反职责单一原则 + * EnumBetterSingleton + */ + private EnumSingleton() { + try { + System.out.println("Enum Singleton Contructor"); + String url = "jdbc:sqlserver://"; + String username = "sa"; + String password = ""; + String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; + Class.forName(driverName); + connection = DriverManager.getConnection(url, username, password); + } catch (ClassNotFoundException e) { + e.printStackTrace(); + } catch (SQLException e) { + e.printStackTrace(); + } + } + + public Connection getConnection(){ + return connection; + } +} + +``` +enum枚举数据类型实现单例模式更好的实现方式: +``` +public class EnumBetterSingleton { + public enum SelfEnumSingleton { + connectionFactory; + private Connection connection; + private SelfEnumSingleton() { + try { + System.out.println("Enum Singleton Contructor"); + String url = "jdbc:sqlserver://"; + String username = "sa"; + String password = ""; + String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; + Class.forName(driverName); + connection = DriverManager.getConnection(url, username, password); + } catch (ClassNotFoundException e) { + e.printStackTrace(); + } catch (SQLException e) { + e.printStackTrace(); + } + } + + public Connection getConnection(){ + return connection; + } + } + + public static Connection getConnection(){ + return SelfEnumSingleton.connectionFactory.getConnection(); + } +} +``` + +综上,关于单例模式总结结束。 +源码地址:[https://github.com/chaozaiai/JavaTrain/tree/master/javamultithreading/chapter06] + + + + + + + + + + + + diff --git "a/source/_posts/\347\233\256\345\211\215\347\232\204\346\227\266\351\227\264\345\256\211\346\216\222.md" "b/source/_posts/\347\233\256\345\211\215\347\232\204\346\227\266\351\227\264\345\256\211\346\216\222.md" new file mode 100644 index 0000000..ed01c79 --- /dev/null +++ "b/source/_posts/\347\233\256\345\211\215\347\232\204\346\227\266\351\227\264\345\256\211\346\216\222.md" @@ -0,0 +1,19 @@ +--- +title: 目前的时间安排 +date: 2016-06-24 23:40:41 +tags: 杂记 +--- + +突然头脑一热,在6月18号的时候,又打算去朋友的健身房开始健身。然后现在的时间安排就变成了这样:周二四六日晚上去健身,周三五晚巴西柔术,周六日中午巴西柔术。周一休息,突然时间就变得很少很少。 + +想,如果这些事情把我的时间都占满,那我就没有时间去看电影电视剧,没有空去浪费时间。上下班的地铁带上纸质书或者kindle,偶尔就是发呆。 + +健身,是因为感觉自己在巴西柔术上还差着力量,同时也是为了塑造一个好的身材。再说,社会这么的乱。 + +每天晚上到家也就10点左右,然后做个饭,11点,然后吃饭。 + +技术上也一定要努力提高才行,不然怎么涨工资呢?! + +那些能看到结果,就像健身,身体会明显的给你反馈。就像你努力提高技术,你总能够在工作上越走越远。既然能看到结果,那就多多努力,不负时光。 + +期待成为一个中级开发者,成为一个巴西柔术爱好者,能够继续健身来增加力量塑造身材。 \ No newline at end of file diff --git "a/source/_posts/\351\205\222.md" "b/source/_posts/\351\205\222.md" new file mode 100644 index 0000000..041c033 --- /dev/null +++ "b/source/_posts/\351\205\222.md" @@ -0,0 +1,24 @@ +--- +title: 酒 +date: 2016-07-20 23:29:48 +tags: 杂记 +--- +酒,对于生活肯定不是必不可少的,但是就像做饭的油盐酱醋,它是一剂调味料,也是酒逢知己千杯少的寂寥。 + +偶尔会在晚上自斟自饮,在大学的时候是玻璃瓶的小麦啤。九点半左右下了晚自习,就去宿舍楼下小卖部买上一瓶,特别是夏天。偶尔碰上同班篮球队在楼下喝酒,基本就是不醉不归。 + +现在在上海这座城市,刚开那段时间一个月至少会有买一件青岛或者其他的罐装啤酒,晚上回到住的地方,想起来就喝上一瓶。那时候刚毕业在郑州,和大学同学合租也是如此。 + +后来就真的在一次柔术比赛后的馆内聚会上,喝醉了。在ktv里,不管是谁唱歌,都要跟着吼几句。走出ktv包厢,一遇到风,到现在也不知道自己怎么回到住的地方的。后来就克制,聚会的时候喝到清醒为止。再到后来自己一个人就不喝了。 + +知道百威这个牌子的啤酒还是在巴西柔术老馆,峰哥来的晚的那次,小明老师骑电动车带着我,和峰哥一起回去。路过类似全家便利店的时候,峰哥提议喝酒,那真是快意。就去买了三瓶百威,一路喝着回去的。自此,最少要喝百威,小麦啤,雪花就喝的很少很少了。后来又一次,峰哥,岚姐,小明老师一起在练完柔术后吃烧烤,这次峰哥提议喝黑啤。 + +转眼练习巴西柔术已经一年半了。释放压力,也找到一种工作之余的东西,来填充生活。 + +遇到一群人,we are together, we are stronger. + +关于酒,肯定不止这几句话。关于柔术,肯定更多,希望会写成故事,至少应该是一步一步的叙事。 + +![](../../../../images/note/budweiser.png) + + diff --git a/source/about/index.md b/source/about/index.md new file mode 100644 index 0000000..65b7343 --- /dev/null +++ b/source/about/index.md @@ -0,0 +1,2 @@ +- https://github.com/chaozaiai + diff --git a/images/note/1.png b/source/images/note/1.png similarity index 100% rename from images/note/1.png rename to source/images/note/1.png diff --git a/images/note/2.png b/source/images/note/2.png similarity index 100% rename from images/note/2.png rename to source/images/note/2.png diff --git a/images/note/budweiser.png b/source/images/note/budweiser.png similarity index 100% rename from images/note/budweiser.png rename to source/images/note/budweiser.png diff --git a/images/social-github.png b/source/images/social-github.png similarity index 100% rename from images/social-github.png rename to source/images/social-github.png diff --git a/tags/Android/index.html b/tags/Android/index.html deleted file mode 100644 index 30f68c3..0000000 --- a/tags/Android/index.html +++ /dev/null @@ -1,303 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Android · 序员乱翻书 - - - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
- - -
-

Android

-
- - - - - - -
- - - 2016-06-20 - - - - - gradle的使用 - - -
- -
- - - - - - -
- - -
-
- -
- - - - - - -
- -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/tags/\344\271\246\345\215\225/index.html" "b/tags/\344\271\246\345\215\225/index.html" deleted file mode 100644 index 9895214..0000000 --- "a/tags/\344\271\246\345\215\225/index.html" +++ /dev/null @@ -1,318 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 书单 · 序员乱翻书 - - - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
- - -
-

书单

-
- - - - - - -
- - - 2017-01-10 - - - - - 2017购买书单 - - -
- - - -
- - - 2016-06-11 - - - - - 2016书单 - - -
- -
- - - - - - -
- - -
-
- -
- - - - - - -
- -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/tags/\345\244\264\347\227\233/index.html" "b/tags/\345\244\264\347\227\233/index.html" deleted file mode 100644 index 47d7cc3..0000000 --- "a/tags/\345\244\264\347\227\233/index.html" +++ /dev/null @@ -1,303 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 头痛 · 序员乱翻书 - - - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
- - -
-

头痛

-
- - - - - - -
- - - 2019-01-20 - - - - - 丛集性头疼的治疗和预防 - - -
- -
- - - - - - -
- - -
-
- -
- - - - - - -
- -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/tags/\345\274\200\345\217\221\350\200\205/index.html" "b/tags/\345\274\200\345\217\221\350\200\205/index.html" deleted file mode 100644 index bf60e6d..0000000 --- "a/tags/\345\274\200\345\217\221\350\200\205/index.html" +++ /dev/null @@ -1,303 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 开发者 · 序员乱翻书 - - - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
- - -
-

开发者

-
- - - - - - -
- - - 2016-06-05 - - - - - 《软件工艺师》[英]桑德罗.曼卡索 - - -
- -
- - - - - - -
- - -
-
- -
- - - - - - -
- -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/tags/\346\200\273\347\273\223/index.html" "b/tags/\346\200\273\347\273\223/index.html" deleted file mode 100644 index 40c4ab3..0000000 --- "a/tags/\346\200\273\347\273\223/index.html" +++ /dev/null @@ -1,303 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 总结 · 序员乱翻书 - - - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
- - -
-

总结

-
- - - - - - -
- - - 2018-05-03 - - - - - 项目难产,生出来了却是别人的 - - -
- -
- - - - - - -
- - -
-
- -
- - - - - - -
- -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/tags/\346\221\204\345\275\261/index.html" "b/tags/\346\221\204\345\275\261/index.html" deleted file mode 100644 index bc03c12..0000000 --- "a/tags/\346\221\204\345\275\261/index.html" +++ /dev/null @@ -1,303 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 摄影 · 序员乱翻书 - - - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
- - -
-

摄影

-
- - - - - - -
- - - 2019-02-19 - - - - - 关于Vivian Maier - - -
- -
- - - - - - -
- - -
-
- -
- - - - - - -
- -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/tags/\346\235\202\346\212\200/index.html" "b/tags/\346\235\202\346\212\200/index.html" deleted file mode 100644 index e01cea0..0000000 --- "a/tags/\346\235\202\346\212\200/index.html" +++ /dev/null @@ -1,318 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 杂技 · 序员乱翻书 - - - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
- - -
-

杂技

-
- - - - - - -
- - - 2019-03-10 - - - - - 想家 - - -
- - - -
- - - 2019-02-19 - - - - - 《关于Vivian Maier》-感触 - - -
- -
- - - - - - -
- - -
-
- -
- - - - - - -
- -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/tags/\346\235\202\350\256\260/index.html" "b/tags/\346\235\202\350\256\260/index.html" deleted file mode 100644 index 7e19d3c..0000000 --- "a/tags/\346\235\202\350\256\260/index.html" +++ /dev/null @@ -1,443 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 杂记 · 序员乱翻书 - - - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
- - -
-

杂记

-
- - - - - - -
- - - 2019-05-10 - - - - - 所谓辛苦,与功不抵过 - - -
- - - -
- - - 2019-03-10 - - - - - 希望是最后一次搬家 - - -
- - - -
- - - 2018-08-19 - - - - - 地铁门里门外 - - -
- - - -
- - - 2018-08-10 - - - - - 一周时间是怎么过去了 - - -
- - - -
- - - 2018-08-05 - - - - - 怎能靠近爱情 - - -
- - - -
- - - 2018-07-29 - - - - - 和Jery沟通收获了两点 - - -
- - - -
- - - 2018-07-21 - - - - - 戴项链的女孩 - - -
- - - -
- - - 2018-07-09 - - - - - 时间太快,邹哥也结婚了 - - -
- - - -
- - - 2018-04-07 - - - - - 180407 - - -
- - - -
- - - 2017-04-29 - - - - - 17年五一假期苏州一日游计划 - - -
- -
- - - - - - -
- - -
-
- -
- - - - - - -
- -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/tags/\346\235\202\350\256\260/page/2/index.html" "b/tags/\346\235\202\350\256\260/page/2/index.html" deleted file mode 100644 index 6136aa7..0000000 --- "a/tags/\346\235\202\350\256\260/page/2/index.html" +++ /dev/null @@ -1,377 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 杂记 · 序员乱翻书 - - - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
- - - - - -
- - - 2017-04-22 - - - - - 17年春二三事 - - -
- - - -
- - - 2017-01-17 - - - - - 朋友圈的安全风险,你知道吗? - - -
- - - -
- - - 2016-09-02 - - - - - 买土豆的故事 - - -
- - - -
- - - 2016-07-20 - - - - - 酒 - - -
- - - -
- - - 2016-06-24 - - - - - 目前的时间安排 - - -
- - - -
- - - 2016-06-09 - - - - - 在这个城市,搬家 - - -
- -
- - - - - - -
- - -
-
- -
- - - - - - -
- -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/tags/\346\235\202\350\257\273/index.html" "b/tags/\346\235\202\350\257\273/index.html" deleted file mode 100644 index b090fe6..0000000 --- "a/tags/\346\235\202\350\257\273/index.html" +++ /dev/null @@ -1,408 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 杂读 · 序员乱翻书 - - - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
- - -
-

杂读

-
- - - - - - -
- - - 2017-03-19 - - - - - 《金色梦乡》伊坂幸太郎 - - -
- - - -
- - - 2016-10-05 - - - - - 16年十一假期 - - -
- - - -
- - - 2016-07-03 - - - - - 《无声告白》(美)伍绮诗 - - -
- - - -
- - - 2016-06-11 - - - - - 《上庄记》 季栋梁 - - -
- - - -
- - - 2016-06-05 - - - - - 《笑傲江湖》 - - -
- - - -
- - - 2016-05-28 - - - - - 《天龙八部》 - - -
- - - -
- - - 2016-05-17 - - - - - 《射雕英雄传》《神雕侠侣》《倚天屠龙记》 - - -
- - - -
- - - 2016-05-01 - - - - - 《岛上书店》没有谁是一座孤岛 - - -
- -
- - - - - - -
- - -
-
- -
- - - - - - -
- -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/tags/\346\270\270\350\256\260/index.html" "b/tags/\346\270\270\350\256\260/index.html" deleted file mode 100644 index d21f283..0000000 --- "a/tags/\346\270\270\350\256\260/index.html" +++ /dev/null @@ -1,318 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 游记 · 序员乱翻书 - - - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
- - -
-

游记

-
- - - - - - -
- - - 2017-03-12 - - - - - 2017上海设计展 - - -
- - - -
- - - 2017-02-19 - - - - - 上海第十一届双年展 - - -
- -
- - - - - - -
- - -
-
- -
- - - - - - -
- -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/tags/\347\250\213\345\272\217\345\221\230book/index.html" "b/tags/\347\250\213\345\272\217\345\221\230book/index.html" deleted file mode 100644 index 95b95d2..0000000 --- "a/tags/\347\250\213\345\272\217\345\221\230book/index.html" +++ /dev/null @@ -1,378 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 程序员book · 序员乱翻书 - - - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
- - -
-

程序员book

-
- - - - - - -
- - - 2017-02-08 - - - - - 《黑客与画家》 - - -
- - - -
- - - 2017-01-15 - - - - - 《浪潮之巅》第三版上册 - - -
- - - -
- - - 2016-09-11 - - - - - synchronized与volatile多线程中的作用 - - -
- - - -
- - - 2016-09-04 - - - - - 如何使单例模式遇到多线程是安全的、正确的 - - -
- - - -
- - - 2016-08-06 - - - - - 《Java多线程编程核心技术》 - - -
- - - -
- - - 2016-07-24 - - - - - 《支付战争》 - - -
- -
- - - - - - -
- - -
-
- -
- - - - - - -
- -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/tags/\347\274\226\347\250\213/index.html" "b/tags/\347\274\226\347\250\213/index.html" deleted file mode 100644 index 1fedfdb..0000000 --- "a/tags/\347\274\226\347\250\213/index.html" +++ /dev/null @@ -1,303 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 编程 · 序员乱翻书 - - - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
- - -
-

编程

-
- - - - - - -
- - - 2017-02-25 - - - - - 避免混淆在开发中带来的坑 - - -
- -
- - - - - - -
- - -
-
- -
- - - - - - -
- -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/tags/\350\257\273\344\271\246\347\254\224\350\256\260/index.html" "b/tags/\350\257\273\344\271\246\347\254\224\350\256\260/index.html" deleted file mode 100644 index 377112a..0000000 --- "a/tags/\350\257\273\344\271\246\347\254\224\350\256\260/index.html" +++ /dev/null @@ -1,408 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 读书笔记 · 序员乱翻书 - - - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
- - -
-

读书笔记

-
- - - - - - -
- - - 2017-04-22 - - - - - 《零售的本质》7-Eleven - - -
- - - -
- - - 2017-04-22 - - - - - 《一个广告人的自白》大卫·奥格威 - - -
- - - -
- - - 2017-03-06 - - - - - 《浪潮之巅》第三版 下册 - - -
- - - -
- - - 2017-03-03 - - - - - 《学会提问》 - - -
- - - -
- - - 2017-02-17 - - - - - 《书都不会读,你还想成功》 - - -
- - - -
- - - 2017-02-17 - - - - - 《重新定位》 - - -
- - - -
- - - 2017-02-12 - - - - - 《富爸爸穷爸爸》 - - -
- - - -
- - - 2016-10-07 - - - - - 《人人都能用英语》李笑来 - - -
- -
- - - - - - -
- - -
-
- -
- - - - - - -
- -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/tags/\351\230\205\350\257\273/index.html" "b/tags/\351\230\205\350\257\273/index.html" deleted file mode 100644 index 24b2cfb..0000000 --- "a/tags/\351\230\205\350\257\273/index.html" +++ /dev/null @@ -1,303 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 阅读 · 序员乱翻书 - - - - -
- -
- - - -
-
- - - -
- - -
-
-
- - -
- - -
-

阅读

-
- - - - - - -
- - - 2018-08-19 - - - - - 《Love》 by Roy Croft - - -
- -
- - - - - - -
- - -
-
- -
- - - - - - -
- -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/themes/_config.yml b/themes/_config.yml new file mode 100644 index 0000000..d748b4c --- /dev/null +++ b/themes/_config.yml @@ -0,0 +1,70 @@ +# =========================================== +# Site Information Settings +# =========================================== + +# Site creation time +since: 2015 + +# Custom your favicon.ico in `site/source` +favicon: /favicon.ico + +# Set feed link (false | default | your feed link) +# false: disable +# default: use `atom.xml`, generator for `hexo-generator-feed` +rss: false + +# =========================================== +# Menu Settings +# =========================================== +menu: + Home: / + Archives: /archives/ + # Tags: /tags + # Categories: /categories + About: /about + +# site search option +search: false + +# Fancybox +fancybox: true + +# =========================================== +# Theme Settings +# =========================================== +# theme styling +# color: Default | Mint Green | Cobalt Blue | Hot Pink | Dark Violet +theme: + color: Default + +# =========================================== +# Social links Settings +# =========================================== +social: + email: your@email.com + stack-overflow: + twitter: + facebook: + github: + weibo: + zhihu: + +# =========================================== +# Third Party Services Settings +# =========================================== + +# Baidu Analytics +baidu_analytics: +# Google Analytics +google_analytics: + +# Duoshuo +duoshuo_shortname: +# Disqus +disqus_shortname: northnanshan + + +# =========================================== +# Version +# =========================================== +version: 2.1.0 \ No newline at end of file diff --git a/themes/even b/themes/even new file mode 160000 index 0000000..b76a562 --- /dev/null +++ b/themes/even @@ -0,0 +1 @@ +Subproject commit b76a5629057222d42717585f9c79091e6c395f86 diff --git a/themes/landscape/.gitignore b/themes/landscape/.gitignore new file mode 100644 index 0000000..6e3a08a --- /dev/null +++ b/themes/landscape/.gitignore @@ -0,0 +1,3 @@ +.DS_Store +node_modules +tmp \ No newline at end of file diff --git a/themes/landscape/.npmignore b/themes/landscape/.npmignore new file mode 100644 index 0000000..6e3a08a --- /dev/null +++ b/themes/landscape/.npmignore @@ -0,0 +1,3 @@ +.DS_Store +node_modules +tmp \ No newline at end of file diff --git a/themes/landscape/Gruntfile.js b/themes/landscape/Gruntfile.js new file mode 100644 index 0000000..59fd5df --- /dev/null +++ b/themes/landscape/Gruntfile.js @@ -0,0 +1,46 @@ +module.exports = function(grunt){ + grunt.initConfig({ + gitclone: { + fontawesome: { + options: { + repository: 'https://github.com/FortAwesome/Font-Awesome.git', + directory: 'tmp/fontawesome' + }, + }, + fancybox: { + options: { + repository: 'https://github.com/fancyapps/fancyBox.git', + directory: 'tmp/fancybox' + } + } + }, + copy: { + fontawesome: { + expand: true, + cwd: 'tmp/fontawesome/fonts/', + src: ['**'], + dest: 'source/css/fonts/' + }, + fancybox: { + expand: true, + cwd: 'tmp/fancybox/source/', + src: ['**'], + dest: 'source/fancybox/' + } + }, + _clean: { + tmp: ['tmp'], + fontawesome: ['source/css/fonts'], + fancybox: ['source/fancybox'] + } + }); + + require('load-grunt-tasks')(grunt); + + grunt.renameTask('clean', '_clean'); + + grunt.registerTask('fontawesome', ['gitclone:fontawesome', 'copy:fontawesome', '_clean:tmp']); + grunt.registerTask('fancybox', ['gitclone:fancybox', 'copy:fancybox', '_clean:tmp']); + grunt.registerTask('default', ['gitclone', 'copy', '_clean:tmp']); + grunt.registerTask('clean', ['_clean']); +}; \ No newline at end of file diff --git a/themes/landscape/LICENSE b/themes/landscape/LICENSE new file mode 100644 index 0000000..9ce4d32 --- /dev/null +++ b/themes/landscape/LICENSE @@ -0,0 +1,7 @@ +Copyright (c) 2013 Tommy Chen + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/themes/landscape/README.md b/themes/landscape/README.md new file mode 100644 index 0000000..8295fbe --- /dev/null +++ b/themes/landscape/README.md @@ -0,0 +1,111 @@ +# Landscape + +A brand new default theme for [Hexo]. + +- [Preview](http://hexo.io/hexo-theme-landscape/) + +## Installation + +### Install + +``` bash +$ git clone https://github.com/hexojs/hexo-theme-landscape.git themes/landscape +``` + +**Landscape requires Hexo 2.4 and above.** + +### Enable + +Modify `theme` setting in `_config.yml` to `landscape`. + +### Update + +``` bash +cd themes/landscape +git pull +``` + +## Configuration + +``` yml +# Header +menu: + Home: / + Archives: /archives +rss: /atom.xml + +# Content +excerpt_link: Read More +fancybox: true + +# Sidebar +sidebar: right +widgets: +- category +- tag +- tagcloud +- archives +- recent_posts + +# Miscellaneous +google_analytics: +favicon: /favicon.png +twitter: +google_plus: +``` + +- **menu** - Navigation menu +- **rss** - RSS link +- **excerpt_link** - "Read More" link at the bottom of excerpted articles. `false` to hide the link. +- **fancybox** - Enable [Fancybox] +- **sidebar** - Sidebar style. You can choose `left`, `right`, `bottom` or `false`. +- **widgets** - Widgets displaying in sidebar +- **google_analytics** - Google Analytics ID +- **favicon** - Favicon path +- **twitter** - Twiiter ID +- **google_plus** - Google+ ID + +## Features + +### Fancybox + +Landscape uses [Fancybox] to showcase your photos. You can use Markdown syntax or fancybox tag plugin to add your photos. + +``` +![img caption](img url) + +{% fancybox img_url [img_thumbnail] [img_caption] %} +``` + +### Sidebar + +You can put your sidebar in left side, right side or bottom of your site by editing `sidebar` setting. + +Landscape provides 5 built-in widgets: + +- category +- tag +- tagcloud +- archives +- recent_posts + +All of them are enabled by default. You can edit them in `widget` setting. + +## Development + +### Requirements + +- [Grunt] 0.4+ +- Hexo 2.4+ + +### Grunt tasks + +- **default** - Download [Fancybox] and [Font Awesome]. +- **fontawesome** - Only download [Font Awesome]. +- **fancybox** - Only download [Fancybox]. +- **clean** - Clean temporarily files and downloaded files. + +[Hexo]: http://zespia.tw/hexo/ +[Fancybox]: http://fancyapps.com/fancybox/ +[Font Awesome]: http://fontawesome.io/ +[Grunt]: http://gruntjs.com/ diff --git a/themes/landscape/_config.yml b/themes/landscape/_config.yml new file mode 100644 index 0000000..4c1bb96 --- /dev/null +++ b/themes/landscape/_config.yml @@ -0,0 +1,36 @@ +# Header +menu: + Home: / + Archives: /archives +rss: /atom.xml + +# Content +excerpt_link: Read More +fancybox: true + +# Sidebar +sidebar: right +widgets: +- category +- tag +- tagcloud +- archive +- recent_posts + +# display widgets at the bottom of index pages (pagination == 2) +index_widgets: +# - category +# - tagcloud +# - archive + +# widget behavior +archive_type: 'monthly' +show_count: false + +# Miscellaneous +google_analytics: +favicon: /favicon.png +twitter: +google_plus: +fb_admins: +fb_app_id: diff --git a/themes/landscape/languages/default.yml b/themes/landscape/languages/default.yml new file mode 100644 index 0000000..3ef7e92 --- /dev/null +++ b/themes/landscape/languages/default.yml @@ -0,0 +1,19 @@ +categories: Categories +search: Search +tags: Tags +tagcloud: Tag Cloud +tweets: Tweets +prev: Prev +next: Next +comment: Comments +archive_a: Archives +archive_b: "Archives: %s" +page: Page %d +recent_posts: Recent Posts +newer: Newer +older: Older +share: Share +powered_by: Powered by +rss_feed: RSS Feed +category: Category +tag: Tag \ No newline at end of file diff --git a/themes/landscape/languages/fr.yml b/themes/landscape/languages/fr.yml new file mode 100644 index 0000000..e45a6f0 --- /dev/null +++ b/themes/landscape/languages/fr.yml @@ -0,0 +1,19 @@ +categories: Catégories +search: Rechercher +tags: Mot-clés +tagcloud: Nuage de mot-clés +tweets: Tweets +prev: Précédent +next: Suivant +comment: Commentaires +archive_a: Archives +archive_b: "Archives: %s" +page: Page %d +recent_posts: Articles récents +newer: Récent +older: Ancien +share: Partager +powered_by: Propulsé by +rss_feed: Flux RSS +category: Catégorie +tag: Mot-clé diff --git a/themes/landscape/languages/nl.yml b/themes/landscape/languages/nl.yml new file mode 100644 index 0000000..568d33e --- /dev/null +++ b/themes/landscape/languages/nl.yml @@ -0,0 +1,20 @@ + +categories: Categorieën +search: Zoeken +tags: Labels +tagcloud: Tag Cloud +tweets: Tweets +prev: Vorige +next: Volgende +comment: Commentaren +archive_a: Archieven +archive_b: "Archieven: %s" +page: Pagina %d +recent_posts: Recente berichten +newer: Nieuwer +older: Ouder +share: Delen +powered_by: Powered by +rss_feed: RSS Feed +category: Categorie +tag: Label diff --git a/themes/landscape/languages/no.yml b/themes/landscape/languages/no.yml new file mode 100644 index 0000000..b997691 --- /dev/null +++ b/themes/landscape/languages/no.yml @@ -0,0 +1,19 @@ +categories: Kategorier +search: Søk +tags: Tags +tagcloud: Tag Cloud +tweets: Tweets +prev: Forrige +next: Neste +comment: Kommentarer +archive_a: Arkiv +archive_b: "Arkiv: %s" +page: Side %d +recent_posts: Siste innlegg +newer: Newer +older: Older +share: Share +powered_by: Powered by +rss_feed: RSS Feed +category: Category +tag: Tag \ No newline at end of file diff --git a/themes/landscape/languages/ru.yml b/themes/landscape/languages/ru.yml new file mode 100644 index 0000000..625a83c --- /dev/null +++ b/themes/landscape/languages/ru.yml @@ -0,0 +1,19 @@ +categories: Категории +search: Поиск +tags: Метки +tagcloud: Облако меток +tweets: Твиты +prev: Назад +next: Вперед +comment: Комментарии +archive_a: Архив +archive_b: "Архив: %s" +page: Страница %d +recent_posts: Недавние записи +newer: Следующий +older: Предыдущий +share: Поделиться +powered_by: Создано с помощью +rss_feed: RSS-каналы +category: Категория +tag: Метка \ No newline at end of file diff --git a/themes/landscape/languages/zh-CN.yml b/themes/landscape/languages/zh-CN.yml new file mode 100644 index 0000000..51e1321 --- /dev/null +++ b/themes/landscape/languages/zh-CN.yml @@ -0,0 +1,19 @@ +categories: 分类 +search: 搜索 +tags: 标签 +tagcloud: 标签云 +tweets: 推文 +prev: 上一页 +next: 下一页 +comment: 留言 +archive_a: 归档 +archive_b: 归档:%s +page: 第 %d 页 +recent_posts: 最新文章 +newer: Newer +older: Older +share: Share +powered_by: Powered by +rss_feed: RSS Feed +category: Category +tag: Tag \ No newline at end of file diff --git a/themes/landscape/languages/zh-TW.yml b/themes/landscape/languages/zh-TW.yml new file mode 100644 index 0000000..76d2916 --- /dev/null +++ b/themes/landscape/languages/zh-TW.yml @@ -0,0 +1,19 @@ +categories: 分類 +search: 搜尋 +tags: 標籤 +tagcloud: 標籤雲 +tweets: 推文 +prev: 上一頁 +next: 下一頁 +comment: 留言 +archive_a: 彙整 +archive_b: 彙整:%s +page: 第 %d 頁 +recent_posts: 最新文章 +newer: Newer +older: Older +share: Share +powered_by: Powered by +rss_feed: RSS Feed +category: Category +tag: Tag \ No newline at end of file diff --git a/themes/landscape/layout/_partial/after-footer.ejs b/themes/landscape/layout/_partial/after-footer.ejs new file mode 100644 index 0000000..3ddfbee --- /dev/null +++ b/themes/landscape/layout/_partial/after-footer.ejs @@ -0,0 +1,24 @@ +<% if (config.disqus_shortname){ %> + +<% } %> + + + +<% if (theme.fancybox){ %> + <%- css('fancybox/jquery.fancybox') %> + <%- js('fancybox/jquery.fancybox.pack') %> +<% } %> + +<%- js('js/script') %> diff --git a/themes/landscape/layout/_partial/archive-post.ejs b/themes/landscape/layout/_partial/archive-post.ejs new file mode 100644 index 0000000..36f2cc3 --- /dev/null +++ b/themes/landscape/layout/_partial/archive-post.ejs @@ -0,0 +1,8 @@ +
+
+
+ <%- partial('post/date', {class_name: 'archive-article-date', date_format: 'MMM D'}) %> + <%- partial('post/title', {class_name: 'archive-article-title'}) %> +
+
+
\ No newline at end of file diff --git a/themes/landscape/layout/_partial/archive.ejs b/themes/landscape/layout/_partial/archive.ejs new file mode 100644 index 0000000..7d7c8ba --- /dev/null +++ b/themes/landscape/layout/_partial/archive.ejs @@ -0,0 +1,33 @@ +<% if (pagination == 2){ %> + <% page.posts.each(function(post){ %> + <%- partial('article', {post: post, index: true}) %> + <% }) %> +<% } else { %> + <% var last; %> + <% page.posts.each(function(post, i){ %> + <% var year = post.date.year(); %> + <% if (last != year){ %> + <% if (last != null){ %> +
+ <% } %> + <% last = year; %> +
+ +
+ <% } %> + <%- partial('archive-post', {post: post, even: i % 2 == 0}) %> + <% }) %> + <% if (page.posts.length){ %> +
+ <% } %> +<% } %> +<% if (page.total > 1){ %> + +<% } %> \ No newline at end of file diff --git a/themes/landscape/layout/_partial/article.ejs b/themes/landscape/layout/_partial/article.ejs new file mode 100644 index 0000000..0f951a9 --- /dev/null +++ b/themes/landscape/layout/_partial/article.ejs @@ -0,0 +1,44 @@ +
+ +
+ <%- partial('post/gallery') %> + <% if (post.link || post.title){ %> +
+ <%- partial('post/title', {class_name: 'article-title'}) %> +
+ <% } %> +
+ <% if (post.excerpt && index){ %> + <%- post.excerpt %> + <% if (theme.excerpt_link){ %> +

+ <%= theme.excerpt_link %> +

+ <% } %> + <% } else { %> + <%- post.content %> + <% } %> +
+ +
+ <% if (!index){ %> + <%- partial('post/nav') %> + <% } %> +
+ +<% if (!index && post.comments && config.disqus_shortname){ %> +
+
+ +
+
+<% } %> \ No newline at end of file diff --git a/themes/landscape/layout/_partial/footer.ejs b/themes/landscape/layout/_partial/footer.ejs new file mode 100644 index 0000000..3aca618 --- /dev/null +++ b/themes/landscape/layout/_partial/footer.ejs @@ -0,0 +1,11 @@ +
+ <% if (theme.sidebar === 'bottom'){ %> + <%- partial('_partial/sidebar') %> + <% } %> +
+ +
+
\ No newline at end of file diff --git a/themes/landscape/layout/_partial/google-analytics.ejs b/themes/landscape/layout/_partial/google-analytics.ejs new file mode 100644 index 0000000..84e75f0 --- /dev/null +++ b/themes/landscape/layout/_partial/google-analytics.ejs @@ -0,0 +1,14 @@ +<% if (theme.google_analytics){ %> + + + +<% } %> diff --git a/themes/landscape/layout/_partial/head.ejs b/themes/landscape/layout/_partial/head.ejs new file mode 100644 index 0000000..5288d16 --- /dev/null +++ b/themes/landscape/layout/_partial/head.ejs @@ -0,0 +1,36 @@ + + + + + <% + var title = page.title; + + if (is_archive()){ + title = __('archive_a'); + + if (is_month()){ + title += ': ' + page.year + '/' + page.month; + } else if (is_year()){ + title += ': ' + page.year; + } + } else if (is_category()){ + title = __('category') + ': ' + page.category; + } else if (is_tag()){ + title = __('tag') + ': ' + page.tag; + } + %> + <% if (title){ %><%= title %> | <% } %><%= config.title %> + + <%- open_graph({twitter_id: theme.twitter, google_plus: theme.google_plus, fb_admins: theme.fb_admins, fb_app_id: theme.fb_app_id}) %> + <% if (theme.rss){ %> + + <% } %> + <% if (theme.favicon){ %> + + <% } %> + <% if (config.highlight.enable){ %> + + <% } %> + <%- css('css/style') %> + <%- partial('google-analytics') %> + diff --git a/themes/landscape/layout/_partial/header.ejs b/themes/landscape/layout/_partial/header.ejs new file mode 100644 index 0000000..aa4aad6 --- /dev/null +++ b/themes/landscape/layout/_partial/header.ejs @@ -0,0 +1,32 @@ + \ No newline at end of file diff --git a/themes/landscape/layout/_partial/mobile-nav.ejs b/themes/landscape/layout/_partial/mobile-nav.ejs new file mode 100644 index 0000000..7c1d2af --- /dev/null +++ b/themes/landscape/layout/_partial/mobile-nav.ejs @@ -0,0 +1,5 @@ + \ No newline at end of file diff --git a/themes/landscape/layout/_partial/post/category.ejs b/themes/landscape/layout/_partial/post/category.ejs new file mode 100644 index 0000000..db2ed48 --- /dev/null +++ b/themes/landscape/layout/_partial/post/category.ejs @@ -0,0 +1,10 @@ +<% if (post.categories && post.categories.length){ %> + +<% } %> \ No newline at end of file diff --git a/themes/landscape/layout/_partial/post/date.ejs b/themes/landscape/layout/_partial/post/date.ejs new file mode 100644 index 0000000..3f49613 --- /dev/null +++ b/themes/landscape/layout/_partial/post/date.ejs @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/themes/landscape/layout/_partial/post/gallery.ejs b/themes/landscape/layout/_partial/post/gallery.ejs new file mode 100644 index 0000000..886c8ec --- /dev/null +++ b/themes/landscape/layout/_partial/post/gallery.ejs @@ -0,0 +1,11 @@ +<% if (post.photos && post.photos.length){ %> +
+
+ <% post.photos.forEach(function(photo, i){ %> + + + + <% }) %> +
+
+<% } %> \ No newline at end of file diff --git a/themes/landscape/layout/_partial/post/nav.ejs b/themes/landscape/layout/_partial/post/nav.ejs new file mode 100644 index 0000000..720798a --- /dev/null +++ b/themes/landscape/layout/_partial/post/nav.ejs @@ -0,0 +1,22 @@ +<% if (post.prev || post.next){ %> + +<% } %> \ No newline at end of file diff --git a/themes/landscape/layout/_partial/post/tag.ejs b/themes/landscape/layout/_partial/post/tag.ejs new file mode 100644 index 0000000..e0f327f --- /dev/null +++ b/themes/landscape/layout/_partial/post/tag.ejs @@ -0,0 +1,6 @@ +<% if (post.tags && post.tags.length){ %> + <%- list_tags(post.tags, { + show_count: false, + class: 'article-tag' + }) %> +<% } %> \ No newline at end of file diff --git a/themes/landscape/layout/_partial/post/title.ejs b/themes/landscape/layout/_partial/post/title.ejs new file mode 100644 index 0000000..69d646f --- /dev/null +++ b/themes/landscape/layout/_partial/post/title.ejs @@ -0,0 +1,15 @@ +<% if (post.link){ %> +

+ +

+<% } else if (post.title){ %> + <% if (index){ %> +

+ <%= post.title %> +

+ <% } else { %> +

+ <%= post.title %> +

+ <% } %> +<% } %> \ No newline at end of file diff --git a/themes/landscape/layout/_partial/sidebar.ejs b/themes/landscape/layout/_partial/sidebar.ejs new file mode 100644 index 0000000..c1e48e5 --- /dev/null +++ b/themes/landscape/layout/_partial/sidebar.ejs @@ -0,0 +1,5 @@ + \ No newline at end of file diff --git a/themes/landscape/layout/_widget/archive.ejs b/themes/landscape/layout/_widget/archive.ejs new file mode 100644 index 0000000..a20c58c --- /dev/null +++ b/themes/landscape/layout/_widget/archive.ejs @@ -0,0 +1,8 @@ +<% if (site.posts.length){ %> +
+

<%= __('archive_a') %>

+
+ <%- list_archives({show_count: theme.show_count, type: theme.archive_type}) %> +
+
+<% } %> diff --git a/themes/landscape/layout/_widget/category.ejs b/themes/landscape/layout/_widget/category.ejs new file mode 100644 index 0000000..8d9e5e9 --- /dev/null +++ b/themes/landscape/layout/_widget/category.ejs @@ -0,0 +1,8 @@ +<% if (site.categories.length){ %> +
+

<%= __('categories') %>

+
+ <%- list_categories({show_count: theme.show_count}) %> +
+
+<% } %> diff --git a/themes/landscape/layout/_widget/recent_posts.ejs b/themes/landscape/layout/_widget/recent_posts.ejs new file mode 100644 index 0000000..7a38547 --- /dev/null +++ b/themes/landscape/layout/_widget/recent_posts.ejs @@ -0,0 +1,14 @@ +<% if (site.posts.length){ %> +
+

<%= __('recent_posts') %>

+
+ +
+
+<% } %> \ No newline at end of file diff --git a/themes/landscape/layout/_widget/tag.ejs b/themes/landscape/layout/_widget/tag.ejs new file mode 100644 index 0000000..ea5fb2c --- /dev/null +++ b/themes/landscape/layout/_widget/tag.ejs @@ -0,0 +1,8 @@ +<% if (site.tags.length){ %> +
+

<%= __('tags') %>

+
+ <%- list_tags({show_count: theme.show_count}) %> +
+
+<% } %> diff --git a/themes/landscape/layout/_widget/tagcloud.ejs b/themes/landscape/layout/_widget/tagcloud.ejs new file mode 100644 index 0000000..5feb435 --- /dev/null +++ b/themes/landscape/layout/_widget/tagcloud.ejs @@ -0,0 +1,8 @@ +<% if (site.tags.length){ %> +
+

<%= __('tagcloud') %>

+
+ <%- tagcloud() %> +
+
+<% } %> \ No newline at end of file diff --git a/themes/landscape/layout/archive.ejs b/themes/landscape/layout/archive.ejs new file mode 100644 index 0000000..52f9b21 --- /dev/null +++ b/themes/landscape/layout/archive.ejs @@ -0,0 +1 @@ +<%- partial('_partial/archive', {pagination: config.archive, index: true}) %> \ No newline at end of file diff --git a/themes/landscape/layout/category.ejs b/themes/landscape/layout/category.ejs new file mode 100644 index 0000000..3ffe252 --- /dev/null +++ b/themes/landscape/layout/category.ejs @@ -0,0 +1 @@ +<%- partial('_partial/archive', {pagination: config.category, index: true}) %> \ No newline at end of file diff --git a/themes/landscape/layout/index.ejs b/themes/landscape/layout/index.ejs new file mode 100644 index 0000000..60a2c68 --- /dev/null +++ b/themes/landscape/layout/index.ejs @@ -0,0 +1 @@ +<%- partial('_partial/archive', {pagination: 2, index: true}) %> \ No newline at end of file diff --git a/themes/landscape/layout/layout.ejs b/themes/landscape/layout/layout.ejs new file mode 100644 index 0000000..cf88daf --- /dev/null +++ b/themes/landscape/layout/layout.ejs @@ -0,0 +1,18 @@ +<%- partial('_partial/head') %> + +
+
+ <%- partial('_partial/header', null, {cache: !config.relative_link}) %> +
+
<%- body %>
+ <% if (theme.sidebar && theme.sidebar !== 'bottom'){ %> + <%- partial('_partial/sidebar', null, {cache: !config.relative_link}) %> + <% } %> +
+ <%- partial('_partial/footer', null, {cache: !config.relative_link}) %> +
+ <%- partial('_partial/mobile-nav', null, {cache: !config.relative_link}) %> + <%- partial('_partial/after-footer') %> +
+ + \ No newline at end of file diff --git a/themes/landscape/layout/page.ejs b/themes/landscape/layout/page.ejs new file mode 100644 index 0000000..bea6318 --- /dev/null +++ b/themes/landscape/layout/page.ejs @@ -0,0 +1 @@ +<%- partial('_partial/article', {post: page, index: false}) %> \ No newline at end of file diff --git a/themes/landscape/layout/post.ejs b/themes/landscape/layout/post.ejs new file mode 100644 index 0000000..bea6318 --- /dev/null +++ b/themes/landscape/layout/post.ejs @@ -0,0 +1 @@ +<%- partial('_partial/article', {post: page, index: false}) %> \ No newline at end of file diff --git a/themes/landscape/layout/tag.ejs b/themes/landscape/layout/tag.ejs new file mode 100644 index 0000000..048cdb0 --- /dev/null +++ b/themes/landscape/layout/tag.ejs @@ -0,0 +1 @@ +<%- partial('_partial/archive', {pagination: config.tag, index: true}) %> \ No newline at end of file diff --git a/themes/landscape/package.json b/themes/landscape/package.json new file mode 100644 index 0000000..a11e9f6 --- /dev/null +++ b/themes/landscape/package.json @@ -0,0 +1,12 @@ +{ + "name": "hexo-theme-landscape", + "version": "0.0.1", + "private": true, + "devDependencies": { + "grunt": "~0.4.2", + "load-grunt-tasks": "~0.2.0", + "grunt-git": "~0.2.2", + "grunt-contrib-clean": "~0.5.0", + "grunt-contrib-copy": "~0.4.1" + } +} diff --git a/themes/landscape/scripts/fancybox.js b/themes/landscape/scripts/fancybox.js new file mode 100644 index 0000000..83f1fdc --- /dev/null +++ b/themes/landscape/scripts/fancybox.js @@ -0,0 +1,24 @@ +var rUrl = /((([A-Za-z]{3,9}:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+|(?:www.|[-;:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+~%\/.\w-_]*)?\??(?:[-\+=&;%@.\w_]*)#?(?:[.\!\/\\w]*))?)/; + +/** +* Fancybox tag +* +* Syntax: +* {% fancybox /path/to/image [/path/to/thumbnail] [title] %} +*/ + +hexo.extend.tag.register('fancybox', function(args){ + var original = args.shift(), + thumbnail = ''; + + if (args.length && rUrl.test(args[0])){ + thumbnail = args.shift(); + } + + var title = args.join(' '); + + return '' + + '' + title + '' + '' + + (title ? '' + title + '' : ''); +}); \ No newline at end of file diff --git a/themes/landscape/source/css/_extend.styl b/themes/landscape/source/css/_extend.styl new file mode 100644 index 0000000..96a1817 --- /dev/null +++ b/themes/landscape/source/css/_extend.styl @@ -0,0 +1,63 @@ +$block-caption + text-decoration: none + text-transform: uppercase + letter-spacing: 2px + color: color-grey + margin-bottom: 1em + margin-left: 5px + line-height: 1em + text-shadow: 0 1px #fff + font-weight: bold + +$block + background: #fff + box-shadow: 1px 2px 3px #ddd + border: 1px solid color-border + border-radius: 3px + +$base-style + h1 + font-size: 2em + h2 + font-size: 1.5em + h3 + font-size: 1.3em + h4 + font-size: 1.2em + h5 + font-size: 1em + h6 + font-size: 1em + color: color-grey + hr + border: 1px dashed color-border + strong + font-weight: bold + em, cite + font-style: italic + sup, sub + font-size: 0.75em + line-height: 0 + position: relative + vertical-align: baseline + sup + top: -0.5em + sub + bottom: -0.2em + small + font-size: 0.85em + acronym, abbr + border-bottom: 1px dotted + ul, ol, dl + margin: 0 20px + line-height: line-height + ul, ol + ul, ol + margin-top: 0 + margin-bottom: 0 + ul + list-style: disc + ol + list-style: decimal + dt + font-weight: bold \ No newline at end of file diff --git a/themes/landscape/source/css/_partial/archive.styl b/themes/landscape/source/css/_partial/archive.styl new file mode 100644 index 0000000..90ef053 --- /dev/null +++ b/themes/landscape/source/css/_partial/archive.styl @@ -0,0 +1,80 @@ +.archives-wrap + margin: block-margin 0 + +.archives + clearfix() + +.archive-year-wrap + margin-bottom: 1em + +.archive-year + @extend $block-caption + +.archives + column-gap: 10px + @media mq-tablet + column-count: 2 + @media mq-normal + column-count: 3 + +.archive-article + avoid-column-break() + +.archive-article-inner + @extend $block + padding: 10px + margin-bottom: 15px + +.archive-article-title + text-decoration: none + font-weight: bold + color: color-default + transition: color 0.2s + line-height: line-height + &:hover + color: color-link + +.archive-article-footer + margin-top: 1em + +.archive-article-date + color: color-grey + text-decoration: none + font-size: 0.85em + line-height: 1em + margin-bottom: 0.5em + display: block + +#page-nav + clearfix() + margin: block-margin auto + background: #fff + box-shadow: 1px 2px 3px #ddd + border: 1px solid color-border + border-radius: 3px + text-align: center + color: color-grey + overflow: hidden + a, span + padding: 10px 20px + line-height: 1 + height: 2ex + a + color: color-grey + text-decoration: none + &:hover + background: color-grey + color: #fff + .prev + float: left + .next + float: right + .page-number + display: inline-block + @media mq-mobile + display: none + .current + color: color-default + font-weight: bold + .space + color: color-border \ No newline at end of file diff --git a/themes/landscape/source/css/_partial/article.styl b/themes/landscape/source/css/_partial/article.styl new file mode 100644 index 0000000..46094f9 --- /dev/null +++ b/themes/landscape/source/css/_partial/article.styl @@ -0,0 +1,357 @@ +.article + margin: block-margin 0 + +.article-inner + @extend $block + overflow: hidden + +.article-meta + clearfix() + +.article-date + @extend $block-caption + float: left + +.article-category + float: left + line-height: 1em + color: #ccc + text-shadow: 0 1px #fff + margin-left: 8px + &:before + content: "\2022" + +.article-category-link + @extend $block-caption + margin: 0 12px 1em + +.article-header + padding: article-padding article-padding 0 + +.article-title + text-decoration: none + font-size: 2em + font-weight: bold + color: color-default + line-height: line-height-title + transition: color 0.2s + a&:hover + color: color-link + +.article-entry + @extend $base-style + clearfix() + color: color-default + padding: 0 article-padding + p, table + line-height: line-height + margin: line-height 0 + h1, h2, h3, h4, h5, h6 + font-weight: bold + h1, h2, h3, h4, h5, h6 + line-height: line-height-title + margin: line-height-title 0 + a + color: color-link + text-decoration: none + &:hover + text-decoration: underline + ul, ol, dl + margin-top: line-height + margin-bottom: line-height + img, video + max-width: 100% + height: auto + display: block + margin: auto + iframe + border: none + table + width: 100% + border-collapse: collapse + border-spacing: 0 + th + font-weight: bold + border-bottom: 3px solid color-border + padding-bottom: 0.5em + td + border-bottom: 1px solid color-border + padding: 10px 0 + blockquote + font-family: font-serif + font-size: 1.4em + margin: line-height 20px + text-align: center + footer + font-size: font-size + margin: line-height 0 + font-family: font-sans + cite + &:before + content: "—" + padding: 0 0.5em + .pullquote + text-align: left + width: 45% + margin: 0 + &.left + margin-left: 0.5em + margin-right: 1em + &.right + margin-right: 0.5em + margin-left: 1em + .caption + color: color-grey + display: block + font-size: 0.9em + margin-top: 0.5em + position: relative + text-align: center + // http://webdesignerwall.com/tutorials/css-elastic-videos + .video-container + position: relative + padding-top: (9 / 16 * 100)% // 16:9 ratio + height: 0 + overflow: hidden + iframe, object, embed + position: absolute + top: 0 + left: 0 + width: 100% + height: 100% + margin-top: 0 + +.article-more-link a + display: inline-block + line-height: 1em + padding: 6px 15px + border-radius: 15px + background: color-background + color: color-grey + text-shadow: 0 1px #fff + text-decoration: none + &:hover + background: color-link + color: #fff + text-decoration: none + text-shadow: 0 1px darken(color-link, 20%) + +.article-footer + clearfix() + font-size: 0.85em + line-height: line-height + border-top: 1px solid color-border + padding-top: line-height + margin: 0 article-padding article-padding + a + color: color-grey + text-decoration: none + &:hover + color: color-default + +.article-tag-list-item + float: left + margin-right: 10px + +.article-tag-list-link + &:before + content: "#" + +.article-comment-link + float: right + &:before + content: "\f075" + font-family: font-icon + padding-right: 8px + +.article-share-link + cursor: pointer + float: right + margin-left: 20px + &:before + content: "\f064" + font-family: font-icon + padding-right: 6px + +#article-nav + clearfix() + position: relative + @media mq-normal + margin: block-margin 0 + &:before + absolute-center(8px) + content: "" + border-radius: 50% + background: color-border + box-shadow: 0 1px 2px #fff + +.article-nav-link-wrap + text-decoration: none + text-shadow: 0 1px #fff + color: color-grey + box-sizing: border-box + margin-top: block-margin + text-align: center + display: block + &:hover + color: color-default + @media mq-normal + width: 50% + margin-top: 0 + +#article-nav-newer + @media mq-normal + float: left + text-align: right + padding-right: 20px + +#article-nav-older + @media mq-normal + float: right + text-align: left + padding-left: 20px + +.article-nav-caption + text-transform: uppercase + letter-spacing: 2px + color: color-border + line-height: 1em + font-weight: bold + #article-nav-newer & + margin-right: -2px + +.article-nav-title + font-size: 0.85em + line-height: line-height + margin-top: 0.5em + +.article-share-box + position: absolute + display: none + background: #fff + box-shadow: 1px 2px 10px rgba(0, 0, 0, 0.2) + border-radius: 3px + margin-left: -145px + overflow: hidden + z-index: 1 + &.on + display: block + +.article-share-input + width: 100% + background: none + box-sizing: border-box + font: 14px font-sans + padding: 0 15px + color: color-default + outline: none + border: 1px solid color-border + border-radius: 3px 3px 0 0 + height: 36px + line-height: 36px + +.article-share-links + clearfix() + background: color-background + +$article-share-link + width: 50px + height: 36px + display: block + float: left + position: relative + color: #999 + text-shadow: 0 1px #fff + &:before + font-size: 20px + font-family: font-icon + absolute-center(@font-size) + text-align: center + &:hover + color: #fff + +.article-share-twitter + @extend $article-share-link + &:before + content: "\f099" + &:hover + background: color-twitter + text-shadow: 0 1px darken(color-twitter, 20%) + +.article-share-facebook + @extend $article-share-link + &:before + content: "\f09a" + &:hover + background: color-facebook + text-shadow: 0 1px darken(color-facebook, 20%) + +.article-share-pinterest + @extend $article-share-link + &:before + content: "\f0d2" + &:hover + background: color-pinterest + text-shadow: 0 1px darken(color-pinterest, 20%) + +.article-share-google + @extend $article-share-link + &:before + content: "\f0d5" + &:hover + background: color-google + text-shadow: 0 1px darken(color-google, 20%) + +.article-gallery + background: #000 + position: relative + +.article-gallery-photos + position: relative + overflow: hidden + +.article-gallery-img + display: none + max-width: 100% + &:first-child + display: block + &.loaded + position: absolute + display: block + img + display: block + max-width: 100% + margin: 0 auto +/* +$article-gallery-ctrl + position: absolute + top: 0 + height: 100% + width: 60px + color: #fff + text-shadow: 0 0 3px rgba(0, 0, 0, 0.3) + opacity: 0.3 + transition: opacity 0.2s + cursor: pointer + &:hover + opacity: 0.8 + &:before + font-size: 30px + font-family: font-icon + position: absolute + top: 50% + margin-top: @font-size * -0.5 + +.article-gallery-prev + @extend $article-gallery-ctrl + left: 0 + &:before + content: "\f053" + left: 15px + +.article-gallery-next + @extend $article-gallery-ctrl + right: 0 + &:before + content: "\f054" + right: 15px*/ \ No newline at end of file diff --git a/themes/landscape/source/css/_partial/comment.styl b/themes/landscape/source/css/_partial/comment.styl new file mode 100644 index 0000000..296b7dd --- /dev/null +++ b/themes/landscape/source/css/_partial/comment.styl @@ -0,0 +1,9 @@ +#comments + background: #fff + box-shadow: 1px 2px 3px #ddd + padding: article-padding + border: 1px solid color-border + border-radius: 3px + margin: block-margin 0 + a + color: color-link \ No newline at end of file diff --git a/themes/landscape/source/css/_partial/footer.styl b/themes/landscape/source/css/_partial/footer.styl new file mode 100644 index 0000000..fe2fd24 --- /dev/null +++ b/themes/landscape/source/css/_partial/footer.styl @@ -0,0 +1,14 @@ +#footer + background: color-footer-background + padding: 50px 0 + border-top: 1px solid color-border + color: color-grey + a + color: color-link + text-decoration: none + &:hover + text-decoration: underline + +#footer-info + line-height: line-height + font-size: 0.85em \ No newline at end of file diff --git a/themes/landscape/source/css/_partial/header.styl b/themes/landscape/source/css/_partial/header.styl new file mode 100644 index 0000000..d18ebc8 --- /dev/null +++ b/themes/landscape/source/css/_partial/header.styl @@ -0,0 +1,165 @@ +#header + height: banner-height + position: relative + border-bottom: 1px solid color-border + &:before, &:after + content: "" + position: absolute + left: 0 + right: 0 + height: 40px + &:before + top: 0 + background: linear-gradient(rgba(0, 0, 0, 0.2), transparent) + &:after + bottom: 0 + background: linear-gradient(transparent, rgba(0, 0, 0, 0.2)) + +#header-outer + height: 100% + position: relative + +#header-inner + position: relative + overflow: hidden + +#banner + position: absolute + top: 0 + left: 0 + width: 100% + height: 100% + background: url(banner-url) center #000 + background-size: cover + z-index: -1 + +#header-title + text-align: center + height: logo-size + position: absolute + top: 50% + left: 0 + margin-top: logo-size * -0.5 + +$logo-text + text-decoration: none + color: #fff + font-weight: 300 + text-shadow: 0 1px 4px rgba(0, 0, 0, 0.3) + +#logo + @extend $logo-text + font-size: logo-size + line-height: logo-size + letter-spacing: 2px + +#subtitle + @extend $logo-text + font-size: subtitle-size + line-height: subtitle-size + letter-spacing: 1px + +#subtitle-wrap + margin-top: subtitle-size + +#main-nav + float: left + margin-left: -15px + +$nav-link + float: left + color: #fff + opacity: 0.6 + text-decoration: none + text-shadow: 0 1px rgba(0, 0, 0, 0.2) + transition: opacity 0.2s + display: block + padding: 20px 15px + &:hover + opacity: 1 + +.nav-icon + @extend $nav-link + font-family: font-icon + text-align: center + font-size: font-size + width: font-size + height: font-size + padding: 20px 15px + position: relative + cursor: pointer + +.main-nav-link + @extend $nav-link + font-weight: 300 + letter-spacing: 1px + @media mq-mobile + display: none + +#main-nav-toggle + display: none + &:before + content: "\f0c9" + @media mq-mobile + display: block + +#sub-nav + float: right + margin-right: -15px + +#nav-rss-link + &:before + content: "\f09e" + +#nav-search-btn + &:before + content: "\f002" + +#search-form-wrap + position: absolute + top: 15px + width: 150px + height: 30px + right: -150px + opacity: 0 + transition: 0.2s ease-out + &.on + opacity: 1 + right: 0 + @media mq-mobile + width: 100% + right: -100% + +.search-form + position: absolute + top: 0 + left: 0 + right: 0 + background: #fff + padding: 5px 15px + border-radius: 15px + box-shadow: 0 0 10px rgba(0, 0, 0, 0.3) + +.search-form-input + border: none + background: none + color: color-default + width: 100% + font: 13px font-sans + outline: none + &::-webkit-search-results-decoration + &::-webkit-search-cancel-button + -webkit-appearance: none + +.search-form-submit + position: absolute + top: 50% + right: 10px + margin-top: -7px + font: 13px font-icon + border: none + background: none + color: #bbb + cursor: pointer + &:hover, &:focus + color: #777 \ No newline at end of file diff --git a/themes/landscape/source/css/_partial/highlight.styl b/themes/landscape/source/css/_partial/highlight.styl new file mode 100644 index 0000000..c932ec3 --- /dev/null +++ b/themes/landscape/source/css/_partial/highlight.styl @@ -0,0 +1,158 @@ +// https://github.com/chriskempson/tomorrow-theme +highlight-background = #2d2d2d +highlight-current-line = #393939 +highlight-selection = #515151 +highlight-foreground = #cccccc +highlight-comment = #999999 +highlight-red = #f2777a +highlight-orange = #f99157 +highlight-yellow = #ffcc66 +highlight-green = #99cc99 +highlight-aqua = #66cccc +highlight-blue = #6699cc +highlight-purple = #cc99cc + +$code-block + background: highlight-background + margin: 0 article-padding * -1 + padding: 15px article-padding + border-style: solid + border-color: color-border + border-width: 1px 0 + overflow: auto + color: highlight-foreground + line-height: font-size * line-height + +$line-numbers + color: #666 + font-size: 0.85em + +.article-entry + pre, code + font-family: font-mono + code + background: color-background + text-shadow: 0 1px #fff + padding: 0 0.3em + pre + @extend $code-block + code + background: none + text-shadow: none + padding: 0 + .highlight + @extend $code-block + pre + border: none + margin: 0 + padding: 0 + table + margin: 0 + width: auto + td + border: none + padding: 0 + figcaption + clearfix() + font-size: 0.85em + color: highlight-comment + line-height: 1em + margin-bottom: 1em + a + float: right + .gutter pre + @extend $line-numbers + text-align: right + padding-right: 20px + .line + height: font-size * line-height + .line.marked + background: highlight-selection + .gist + margin: 0 article-padding * -1 + border-style: solid + border-color: color-border + border-width: 1px 0 + background: highlight-background + padding: 15px article-padding 15px 0 + .gist-file + border: none + font-family: font-mono + margin: 0 + .gist-data + background: none + border: none + .line-numbers + @extend $line-numbers + background: none + border: none + padding: 0 20px 0 0 + .line-data + padding: 0 !important + .highlight + margin: 0 + padding: 0 + border: none + .gist-meta + background: highlight-background + color: highlight-comment + font: 0.85em font-sans + text-shadow: 0 0 + padding: 0 + margin-top: 1em + margin-left: article-padding + a + color: color-link + font-weight: normal + &:hover + text-decoration: underline + +pre + .comment + .title + color: highlight-comment + .variable + .attribute + .tag + .regexp + .ruby .constant + .xml .tag .title + .xml .pi + .xml .doctype + .html .doctype + .css .id + .css .class + .css .pseudo + color: highlight-red + .number + .preprocessor + .built_in + .literal + .params + .constant + color: highlight-orange + .class + .ruby .class .title + .css .rules .attribute + color: highlight-green + .string + .value + .inheritance + .header + .ruby .symbol + .xml .cdata + color: highlight-green + .css .hexcolor + color: highlight-aqua + .function + .python .decorator + .python .title + .ruby .function .title + .ruby .title .keyword + .perl .sub + .javascript .title + .coffeescript .title + color: highlight-blue + .keyword + .javascript .function + color: highlight-purple diff --git a/themes/landscape/source/css/_partial/mobile.styl b/themes/landscape/source/css/_partial/mobile.styl new file mode 100644 index 0000000..eb68b3a --- /dev/null +++ b/themes/landscape/source/css/_partial/mobile.styl @@ -0,0 +1,19 @@ +@media mq-mobile + #mobile-nav + position: absolute + top: 0 + left: 0 + width: mobile-nav-width + height: 100% + background: color-mobile-nav-background + border-right: 1px solid #fff + +@media mq-mobile + .mobile-nav-link + display: block + color: color-grey + text-decoration: none + padding: 15px 20px + font-weight: bold + &:hover + color: #fff diff --git a/themes/landscape/source/css/_partial/sidebar-aside.styl b/themes/landscape/source/css/_partial/sidebar-aside.styl new file mode 100644 index 0000000..838b167 --- /dev/null +++ b/themes/landscape/source/css/_partial/sidebar-aside.styl @@ -0,0 +1,27 @@ +#sidebar + @media mq-normal + column(sidebar-column) + +.widget-wrap + margin: block-margin 0 + +.widget-title + @extend $block-caption + +.widget + color: color-sidebar-text + text-shadow: 0 1px #fff + background: color-widget-background + box-shadow: 0 -1px 4px color-widget-border inset + border: 1px solid color-widget-border + padding: 15px + border-radius: 3px + a + color: color-link + text-decoration: none + &:hover + text-decoration: underline + ul, ol, dl + ul, ol, dl + margin-left: 15px + list-style: disc \ No newline at end of file diff --git a/themes/landscape/source/css/_partial/sidebar-bottom.styl b/themes/landscape/source/css/_partial/sidebar-bottom.styl new file mode 100644 index 0000000..e2403fd --- /dev/null +++ b/themes/landscape/source/css/_partial/sidebar-bottom.styl @@ -0,0 +1,27 @@ +.widget-wrap + margin-bottom: block-margin !important + @media mq-normal + column(main-column) + +.widget-title + color: #ccc + text-transform: uppercase + letter-spacing: 2px + margin-bottom: .5em + line-height: 1em + font-weight: bold + +.widget + color: color-grey + ul, ol + li + display: inline-block + zoom:1 + *display:inline + padding-right: .75em +/* Having problems getting balanced white space between items + li:before + content: " | " + li:first-child:before + content: none + */ diff --git a/themes/landscape/source/css/_partial/sidebar.styl b/themes/landscape/source/css/_partial/sidebar.styl new file mode 100644 index 0000000..e43d66a --- /dev/null +++ b/themes/landscape/source/css/_partial/sidebar.styl @@ -0,0 +1,35 @@ +if sidebar is bottom + @import "sidebar-bottom" +else + @import "sidebar-aside" + +.widget + @extend $base-style + line-height: line-height + word-wrap: break-word + font-size: 0.9em + ul, ol + list-style: none + margin: 0 + ul, ol + margin: 0 20px + ul + list-style: disc + ol + list-style: decimal + +.category-list-count +.tag-list-count +.archive-list-count + padding-left: 5px + color: color-grey + font-size: 0.85em + &:before + content: "(" + &:after + content: ")" + +.tagcloud + a + margin-right: 5px + display: inline-block diff --git a/themes/landscape/source/css/_util/grid.styl b/themes/landscape/source/css/_util/grid.styl new file mode 100644 index 0000000..2a14dd2 --- /dev/null +++ b/themes/landscape/source/css/_util/grid.styl @@ -0,0 +1,38 @@ +///////////////// +// Semantic.gs // for Stylus: http://learnboost.github.com/stylus/ +///////////////// + +// Utility function — you should never need to modify this +// _gridsystem-width = (column-width + gutter-width) * columns +gridsystem-width(_columns = columns) + (column-width + gutter-width) * _columns + +// Set @total-width to 100% for a fluid layout +// total-width = gridsystem-width(columns) +total-width = 100% + +////////// +// GRID // +////////// + +body + clearfix() + width: 100% + +row(_columns = columns) + clearfix() + display: block + width: total-width * ((gutter-width + gridsystem-width(_columns)) / gridsystem-width(_columns)) + margin: 0 total-width * (((gutter-width * .5) / gridsystem-width(_columns)) * -1) + +column(x, _columns = columns) + display: inline + float: left + width: total-width * ((((gutter-width + column-width) * x) - gutter-width) / gridsystem-width(_columns)) + margin: 0 total-width * ((gutter-width * .5) / gridsystem-width(_columns)) + +push(offset = 1) + margin-left: total-width * (((gutter-width + column-width) * offset) / gridsystem-width(columns)) + +pull(offset = 1) + margin-right: total-width * (((gutter-width + column-width) * offset) / gridsystem-width(columns)) \ No newline at end of file diff --git a/themes/landscape/source/css/_util/mixin.styl b/themes/landscape/source/css/_util/mixin.styl new file mode 100644 index 0000000..b56f037 --- /dev/null +++ b/themes/landscape/source/css/_util/mixin.styl @@ -0,0 +1,31 @@ +// http://www.zeldman.com/2012/03/01/replacing-the-9999px-hack-new-image-replacement/ +hide-text() + text-indent: 100% + white-space: nowrap + overflow: hidden + +// http://codepen.io/shshaw/full/gEiDt +absolute-center(width, height = width) + // margin: auto + // position: absolute + // top: 50% + // top: 0 + // left: 0 + // bottom: 0 + // right: 0 + // width: width + // height: height + // overflow: auto + width: width + height: height + position: absolute + top: 50% + left: 50% + margin-top: width * -0.5 + margin-left: height * -0.5 + +avoid-column-break() + vendor("column-break-inside", avoid, only: webkit) + page-break-inside: avoid // for firefox + overflow: hidden // fix for firefox + break-inside: avoid-column diff --git a/themes/landscape/source/css/_variables.styl b/themes/landscape/source/css/_variables.styl new file mode 100644 index 0000000..1215bb1 --- /dev/null +++ b/themes/landscape/source/css/_variables.styl @@ -0,0 +1,60 @@ +// Config +support-for-ie = false +vendor-prefixes = webkit moz ms official + +// Colors +color-default = #555 +color-grey = #999 +color-border = #ddd +color-link = #258fb8 +color-background = #eee +color-sidebar-text = #777 +color-widget-background = #ddd +color-widget-border = #ccc +color-footer-background = #262a30 +color-mobile-nav-background = #191919 +color-twitter = #00aced +color-facebook = #3b5998 +color-pinterest = #cb2027 +color-google = #dd4b39 + +// Fonts +font-sans = "Helvetica Neue", Helvetica, Arial, sans-serif +font-serif = Georgia, "Times New Roman", serif +font-mono = "Source Code Pro", Consolas, Monaco, Menlo, Consolas, monospace +font-icon = FontAwesome +font-icon-path = "fonts/fontawesome-webfont" +font-icon-version = "4.0.3" +font-size = 14px +line-height = 1.6em +line-height-title = 1.1em + +// Header +logo-size = 40px +subtitle-size = 16px +banner-height = 300px +banner-url = "images/banner.jpg" + +sidebar = hexo-config("sidebar") + +// Layout +block-margin = 50px +article-padding = 20px +mobile-nav-width = 280px +main-column = 9 +sidebar-column = 3 + +if sidebar and sidebar isnt bottom + _sidebar-column = sidebar-column +else + _sidebar-column = 0 + +// Grids +column-width = 80px +gutter-width = 20px +columns = main-column + _sidebar-column + +// Media queries +mq-mobile = "screen and (max-width: 479px)" +mq-tablet = "screen and (min-width: 480px) and (max-width: 767px)" +mq-normal = "screen and (min-width: 768px)" \ No newline at end of file diff --git a/themes/landscape/source/css/fonts/FontAwesome.otf b/themes/landscape/source/css/fonts/FontAwesome.otf new file mode 100644 index 0000000..8b0f54e Binary files /dev/null and b/themes/landscape/source/css/fonts/FontAwesome.otf differ diff --git a/themes/landscape/source/css/fonts/fontawesome-webfont.eot b/themes/landscape/source/css/fonts/fontawesome-webfont.eot new file mode 100644 index 0000000..7c79c6a Binary files /dev/null and b/themes/landscape/source/css/fonts/fontawesome-webfont.eot differ diff --git a/themes/landscape/source/css/fonts/fontawesome-webfont.svg b/themes/landscape/source/css/fonts/fontawesome-webfont.svg new file mode 100644 index 0000000..45fdf33 --- /dev/null +++ b/themes/landscape/source/css/fonts/fontawesome-webfont.svg @@ -0,0 +1,414 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/themes/landscape/source/css/fonts/fontawesome-webfont.ttf b/themes/landscape/source/css/fonts/fontawesome-webfont.ttf new file mode 100644 index 0000000..e89738d Binary files /dev/null and b/themes/landscape/source/css/fonts/fontawesome-webfont.ttf differ diff --git a/themes/landscape/source/css/fonts/fontawesome-webfont.woff b/themes/landscape/source/css/fonts/fontawesome-webfont.woff new file mode 100644 index 0000000..8c1748a Binary files /dev/null and b/themes/landscape/source/css/fonts/fontawesome-webfont.woff differ diff --git a/themes/landscape/source/css/images/banner.jpg b/themes/landscape/source/css/images/banner.jpg new file mode 100644 index 0000000..b963e06 Binary files /dev/null and b/themes/landscape/source/css/images/banner.jpg differ diff --git a/themes/landscape/source/css/style.styl b/themes/landscape/source/css/style.styl new file mode 100644 index 0000000..c51f8e4 --- /dev/null +++ b/themes/landscape/source/css/style.styl @@ -0,0 +1,89 @@ +@import "nib" +@import "_variables" +@import "_util/mixin" +@import "_util/grid" + +global-reset() + +input, button + margin: 0 + padding: 0 + &::-moz-focus-inner + border: 0 + padding: 0 + +@font-face + font-family: FontAwesome + font-style: normal + font-weight: normal + src: url(font-icon-path + ".eot?v=#" + font-icon-version) + src: url(font-icon-path + ".eot?#iefix&v=#" + font-icon-version) format("embedded-opentype"), + url(font-icon-path + ".woff?v=#" + font-icon-version) format("woff"), + url(font-icon-path + ".ttf?v=#" + font-icon-version) format("truetype"), + url(font-icon-path + ".svg#fontawesomeregular?v=#" + font-icon-version) format("svg") + +html, body, #container + height: 100% + +body + background: color-background + font: font-size font-sans + -webkit-text-size-adjust: 100% + +.outer + clearfix() + max-width: (column-width + gutter-width) * columns + gutter-width + margin: 0 auto + padding: 0 gutter-width + +.inner + column(columns) + +.left, .alignleft + float: left + +.right, .alignright + float: right + +.clear + clear: both + +#container + position: relative + +.mobile-nav-on + overflow: hidden + +#wrap + height: 100% + width: 100% + position: absolute + top: 0 + left: 0 + transition: 0.2s ease-out + z-index: 1 + background: color-background + .mobile-nav-on & + left: mobile-nav-width + +if sidebar and sidebar isnt bottom + #main + @media mq-normal + column(main-column) + +if sidebar is left + @media mq-normal + #main + float: right + +@import "_extend" +@import "_partial/header" +@import "_partial/article" +@import "_partial/comment" +@import "_partial/archive" +@import "_partial/footer" +@import "_partial/highlight" +@import "_partial/mobile" + +if sidebar + @import "_partial/sidebar" \ No newline at end of file diff --git a/lib/fancybox/blank.gif b/themes/landscape/source/fancybox/blank.gif similarity index 100% rename from lib/fancybox/blank.gif rename to themes/landscape/source/fancybox/blank.gif diff --git a/lib/fancybox/fancybox_loading.gif b/themes/landscape/source/fancybox/fancybox_loading.gif similarity index 100% rename from lib/fancybox/fancybox_loading.gif rename to themes/landscape/source/fancybox/fancybox_loading.gif diff --git a/lib/fancybox/fancybox_loading@2x.gif b/themes/landscape/source/fancybox/fancybox_loading@2x.gif similarity index 100% rename from lib/fancybox/fancybox_loading@2x.gif rename to themes/landscape/source/fancybox/fancybox_loading@2x.gif diff --git a/lib/fancybox/fancybox_overlay.png b/themes/landscape/source/fancybox/fancybox_overlay.png similarity index 100% rename from lib/fancybox/fancybox_overlay.png rename to themes/landscape/source/fancybox/fancybox_overlay.png diff --git a/lib/fancybox/fancybox_sprite.png b/themes/landscape/source/fancybox/fancybox_sprite.png similarity index 100% rename from lib/fancybox/fancybox_sprite.png rename to themes/landscape/source/fancybox/fancybox_sprite.png diff --git a/lib/fancybox/fancybox_sprite@2x.png b/themes/landscape/source/fancybox/fancybox_sprite@2x.png similarity index 100% rename from lib/fancybox/fancybox_sprite@2x.png rename to themes/landscape/source/fancybox/fancybox_sprite@2x.png diff --git a/lib/fancybox/helpers/fancybox_buttons.png b/themes/landscape/source/fancybox/helpers/fancybox_buttons.png similarity index 100% rename from lib/fancybox/helpers/fancybox_buttons.png rename to themes/landscape/source/fancybox/helpers/fancybox_buttons.png diff --git a/lib/fancybox/helpers/jquery.fancybox-buttons.css b/themes/landscape/source/fancybox/helpers/jquery.fancybox-buttons.css similarity index 100% rename from lib/fancybox/helpers/jquery.fancybox-buttons.css rename to themes/landscape/source/fancybox/helpers/jquery.fancybox-buttons.css diff --git a/lib/fancybox/helpers/jquery.fancybox-buttons.js b/themes/landscape/source/fancybox/helpers/jquery.fancybox-buttons.js similarity index 99% rename from lib/fancybox/helpers/jquery.fancybox-buttons.js rename to themes/landscape/source/fancybox/helpers/jquery.fancybox-buttons.js index fd8b955..352bb5f 100644 --- a/lib/fancybox/helpers/jquery.fancybox-buttons.js +++ b/themes/landscape/source/fancybox/helpers/jquery.fancybox-buttons.js @@ -13,7 +13,7 @@ * }); * */ -(function ($) { +;(function ($) { //Shortcut for fancyBox object var F = $.fancybox; diff --git a/lib/fancybox/helpers/jquery.fancybox-media.js b/themes/landscape/source/fancybox/helpers/jquery.fancybox-media.js similarity index 99% rename from lib/fancybox/helpers/jquery.fancybox-media.js rename to themes/landscape/source/fancybox/helpers/jquery.fancybox-media.js index 3584c8a..62737a5 100644 --- a/lib/fancybox/helpers/jquery.fancybox-media.js +++ b/themes/landscape/source/fancybox/helpers/jquery.fancybox-media.js @@ -62,7 +62,7 @@ * http://maps.google.com/?ll=48.857995,2.294297&spn=0.007666,0.021136&t=m&z=16 * http://maps.google.com/?ll=48.859463,2.292626&spn=0.000965,0.002642&t=m&z=19&layer=c&cbll=48.859524,2.292532&panoid=YJ0lq28OOy3VT2IqIuVY0g&cbp=12,151.58,,0,-15.56 */ -(function ($) { +;(function ($) { "use strict"; //Shortcut for fancyBox object diff --git a/lib/fancybox/helpers/jquery.fancybox-thumbs.css b/themes/landscape/source/fancybox/helpers/jquery.fancybox-thumbs.css similarity index 100% rename from lib/fancybox/helpers/jquery.fancybox-thumbs.css rename to themes/landscape/source/fancybox/helpers/jquery.fancybox-thumbs.css diff --git a/lib/fancybox/helpers/jquery.fancybox-thumbs.js b/themes/landscape/source/fancybox/helpers/jquery.fancybox-thumbs.js similarity index 96% rename from lib/fancybox/helpers/jquery.fancybox-thumbs.js rename to themes/landscape/source/fancybox/helpers/jquery.fancybox-thumbs.js index 5db3d4a..58c9719 100644 --- a/lib/fancybox/helpers/jquery.fancybox-thumbs.js +++ b/themes/landscape/source/fancybox/helpers/jquery.fancybox-thumbs.js @@ -14,7 +14,7 @@ * }); * */ -(function ($) { +;(function ($) { //Shortcut for fancyBox object var F = $.fancybox; @@ -62,7 +62,8 @@ //Load each thumbnail $.each(obj.group, function (i) { - var href = thumbSource( obj.group[ i ] ); + var el = obj.group[ i ], + href = thumbSource( el ); if (!href) { return; @@ -105,7 +106,9 @@ $(this).hide().appendTo(parent).fadeIn(300); - }).attr('src', href); + }) + .attr('src', href) + .attr('title', el.title); }); //Set initial width diff --git a/lib/fancybox/jquery.fancybox.css b/themes/landscape/source/fancybox/jquery.fancybox.css similarity index 92% rename from lib/fancybox/jquery.fancybox.css rename to themes/landscape/source/fancybox/jquery.fancybox.css index 367890a..c75d051 100644 --- a/lib/fancybox/jquery.fancybox.css +++ b/themes/landscape/source/fancybox/jquery.fancybox.css @@ -76,7 +76,7 @@ } #fancybox-loading, .fancybox-close, .fancybox-prev span, .fancybox-next span { - background-image: url('fancybox_sprite.png'); + background-image: url(fancybox_sprite.png); } #fancybox-loading { @@ -94,7 +94,7 @@ #fancybox-loading div { width: 44px; height: 44px; - background: url('fancybox_loading.gif') center center no-repeat; + background: url(fancybox_loading.gif) center center no-repeat; } .fancybox-close { @@ -114,7 +114,7 @@ height: 100%; cursor: pointer; text-decoration: none; - background: transparent url('blank.gif'); /* helps IE */ + background: transparent url(blank.gif); /* helps IE */ -webkit-tap-highlight-color: rgba(0,0,0,0); z-index: 8040; } @@ -156,7 +156,6 @@ position: absolute; top: -99999px; left: -99999px; - visibility: hidden; max-width: 99999px; max-height: 99999px; overflow: visible !important; @@ -165,7 +164,7 @@ /* Overlay helper */ .fancybox-lock { - overflow: hidden !important; + overflow: visible !important; width: auto; } @@ -184,7 +183,7 @@ overflow: hidden; display: none; z-index: 8010; - background: url('fancybox_overlay.png'); + background: url(fancybox_overlay.png); } .fancybox-overlay-fixed { @@ -263,12 +262,12 @@ only screen and (min-device-pixel-ratio: 1.5){ #fancybox-loading, .fancybox-close, .fancybox-prev span, .fancybox-next span { - background-image: url('fancybox_sprite@2x.png'); + background-image: url(fancybox_sprite@2x.png); background-size: 44px 152px; /*The size of the normal image, half the size of the hi-res image*/ } #fancybox-loading div { - background-image: url('fancybox_loading@2x.gif'); + background-image: url(fancybox_loading@2x.gif); background-size: 24px 24px; /*The size of the normal image, half the size of the hi-res image*/ } } \ No newline at end of file diff --git a/lib/fancybox/jquery.fancybox.js b/themes/landscape/source/fancybox/jquery.fancybox.js similarity index 97% rename from lib/fancybox/jquery.fancybox.js rename to themes/landscape/source/fancybox/jquery.fancybox.js index e8e1987..7a0f8ac 100644 --- a/lib/fancybox/jquery.fancybox.js +++ b/themes/landscape/source/fancybox/jquery.fancybox.js @@ -1,7 +1,7 @@ /*! * fancyBox - jQuery Plugin * version: 2.1.5 (Fri, 14 Jun 2013) - * @requires jQuery v1.6 or later + * requires jQuery v1.6 or later * * Examples at http://fancyapps.com/fancybox/ * License: www.fancyapps.com/fancybox/#license @@ -10,7 +10,7 @@ * */ -(function (window, document, $, undefined) { +;(function (window, document, $, undefined) { "use strict"; var H = $("html"), @@ -261,7 +261,7 @@ if (isQuery(element)) { obj = { href : element.data('fancybox-href') || element.attr('href'), - title : element.data('fancybox-title') || element.attr('title'), + title : $('
').text( element.data('fancybox-title') || element.attr('title') ).html(), isDom : true, element : element }; @@ -363,12 +363,16 @@ cancel: function () { var coming = F.coming; - if (!coming || false === F.trigger('onCancel')) { + if (coming && false === F.trigger('onCancel')) { return; } F.hideLoading(); + if (!coming) { + return; + } + if (F.ajaxLoad) { F.ajaxLoad.abort(); } @@ -546,7 +550,7 @@ }, update: function (e) { - var type = (e && e.type), + var type = (e && e.originalEvent && e.originalEvent.type), anyway = !type || type === 'orientationchange'; if (anyway) { @@ -630,6 +634,8 @@ left : (viewport.w * 0.5) + viewport.x }); } + + F.trigger('onLoading'); }, getViewport: function () { @@ -639,7 +645,7 @@ y: W.scrollTop() }; - if (locked) { + if (locked && locked.length) { rez.w = locked[0].clientWidth; rez.h = locked[0].clientHeight; @@ -741,24 +747,22 @@ trigger: function (event, o) { var ret, obj = o || F.coming || F.current; - if (!obj) { - return; - } - - if ($.isFunction( obj[event] )) { - ret = obj[event].apply(obj, Array.prototype.slice.call(arguments, 1)); - } + if (obj) { + if ($.isFunction( obj[event] )) { + ret = obj[event].apply(obj, Array.prototype.slice.call(arguments, 1)); + } - if (ret === false) { - return false; - } + if (ret === false) { + return false; + } - if (obj.helpers) { - $.each(obj.helpers, function (helper, opts) { - if (opts && F.helpers[helper] && $.isFunction(F.helpers[helper][event])) { - F.helpers[helper][event]($.extend(true, {}, F.helpers[helper].defaults, opts), obj); - } - }); + if (obj.helpers) { + $.each(obj.helpers, function (helper, opts) { + if (opts && F.helpers[helper] && $.isFunction(F.helpers[helper][event])) { + F.helpers[helper][event]($.extend(true, {}, F.helpers[helper].defaults, opts), obj); + } + }); + } } D.trigger(event); @@ -1117,7 +1121,7 @@ break; case 'image': - content = current.tpl.image.replace('{href}', href); + content = current.tpl.image.replace(/\{href\}/g, href); break; case 'swf': @@ -1426,7 +1430,7 @@ F.isOpen = F.isOpened = true; - F.wrap.css('overflow', 'visible').addClass('fancybox-opened'); + F.wrap.css('overflow', 'visible').addClass('fancybox-opened').hide().show(0); F.update(); @@ -1465,12 +1469,13 @@ // Stop the slideshow if this is the last item if (!current.loop && current.index === current.group.length - 1) { + F.play( false ); } else if (F.opts.autoPlay && !F.player.isActive) { F.opts.autoPlay = false; - F.play(); + F.play(true); } }, @@ -1703,13 +1708,17 @@ // Public methods create : function(opts) { + var parent; + opts = $.extend({}, this.defaults, opts); if (this.overlay) { this.close(); } - this.overlay = $('
').appendTo( F.coming ? F.coming.parent : opts.parent ); + parent = F.coming ? F.coming.parent : opts.parent; + + this.overlay = $('
').appendTo( parent && parent.lenth ? parent : 'body' ); this.fixed = false; if (opts.fixed && F.defaults.fixed) { @@ -1755,19 +1764,14 @@ }, close : function() { - var scrollV, scrollH; - W.unbind('resize.overlay'); if (this.el.hasClass('fancybox-lock')) { $('.fancybox-margin').removeClass('fancybox-margin'); - scrollV = W.scrollTop(); - scrollH = W.scrollLeft(); - this.el.removeClass('fancybox-lock'); - W.scrollTop( scrollV ).scrollLeft( scrollH ); + W.scrollTop( this.scrollV ).scrollLeft( this.scrollH ); } $('.fancybox-overlay').remove().hide(); @@ -1812,10 +1816,6 @@ } if (opts.locked && this.fixed && obj.fixed) { - if (!overlay) { - this.margin = D.height() > W.height() ? $('html').css('margin-right').replace("px", "") : false; - } - obj.locked = this.overlay.append( obj.wrap ); obj.fixed = false; } @@ -1826,23 +1826,21 @@ }, beforeShow : function(opts, obj) { - var scrollV, scrollH; - - if (obj.locked) { - if (this.margin !== false) { + if (obj.locked && !this.el.hasClass('fancybox-lock')) { + if (this.fixPosition !== false) { $('*').filter(function(){ return ($(this).css('position') === 'fixed' && !$(this).hasClass("fancybox-overlay") && !$(this).hasClass("fancybox-wrap") ); }).addClass('fancybox-margin'); - - this.el.addClass('fancybox-margin'); } - scrollV = W.scrollTop(); - scrollH = W.scrollLeft(); + this.el.addClass('fancybox-margin'); + + this.scrollV = W.scrollTop(); + this.scrollH = W.scrollLeft(); this.el.addClass('fancybox-lock'); - W.scrollTop( scrollV ).scrollLeft( scrollH ); + W.scrollTop( this.scrollV ).scrollLeft( this.scrollH ); } this.open(opts); @@ -1857,7 +1855,6 @@ afterClose: function (opts) { // Remove overlay if exists and fancyBox is not opening // (e.g., it is not being open using afterClose callback) - //if (this.overlay && !F.isActive) { if (this.overlay && !F.coming) { this.overlay.fadeOut(opts.speedOut, $.proxy( this.close, this )); } diff --git a/themes/landscape/source/fancybox/jquery.fancybox.pack.js b/themes/landscape/source/fancybox/jquery.fancybox.pack.js new file mode 100644 index 0000000..2db1280 --- /dev/null +++ b/themes/landscape/source/fancybox/jquery.fancybox.pack.js @@ -0,0 +1,46 @@ +/*! fancyBox v2.1.5 fancyapps.com | fancyapps.com/fancybox/#license */ +(function(s,H,f,w){var K=f("html"),q=f(s),p=f(H),b=f.fancybox=function(){b.open.apply(this,arguments)},J=navigator.userAgent.match(/msie/i),C=null,t=H.createTouch!==w,u=function(a){return a&&a.hasOwnProperty&&a instanceof f},r=function(a){return a&&"string"===f.type(a)},F=function(a){return r(a)&&0
',image:'',iframe:'",error:'

The requested content cannot be loaded.
Please try again later.

',closeBtn:'',next:'',prev:''},openEffect:"fade",openSpeed:250,openEasing:"swing",openOpacity:!0, +openMethod:"zoomIn",closeEffect:"fade",closeSpeed:250,closeEasing:"swing",closeOpacity:!0,closeMethod:"zoomOut",nextEffect:"elastic",nextSpeed:250,nextEasing:"swing",nextMethod:"changeIn",prevEffect:"elastic",prevSpeed:250,prevEasing:"swing",prevMethod:"changeOut",helpers:{overlay:!0,title:!0},onCancel:f.noop,beforeLoad:f.noop,afterLoad:f.noop,beforeShow:f.noop,afterShow:f.noop,beforeChange:f.noop,beforeClose:f.noop,afterClose:f.noop},group:{},opts:{},previous:null,coming:null,current:null,isActive:!1, +isOpen:!1,isOpened:!1,wrap:null,skin:null,outer:null,inner:null,player:{timer:null,isActive:!1},ajaxLoad:null,imgPreload:null,transitions:{},helpers:{},open:function(a,d){if(a&&(f.isPlainObject(d)||(d={}),!1!==b.close(!0)))return f.isArray(a)||(a=u(a)?f(a).get():[a]),f.each(a,function(e,c){var l={},g,h,k,n,m;"object"===f.type(c)&&(c.nodeType&&(c=f(c)),u(c)?(l={href:c.data("fancybox-href")||c.attr("href"),title:f("
").text(c.data("fancybox-title")||c.attr("title")).html(),isDom:!0,element:c}, +f.metadata&&f.extend(!0,l,c.metadata())):l=c);g=d.href||l.href||(r(c)?c:null);h=d.title!==w?d.title:l.title||"";n=(k=d.content||l.content)?"html":d.type||l.type;!n&&l.isDom&&(n=c.data("fancybox-type"),n||(n=(n=c.prop("class").match(/fancybox\.(\w+)/))?n[1]:null));r(g)&&(n||(b.isImage(g)?n="image":b.isSWF(g)?n="swf":"#"===g.charAt(0)?n="inline":r(c)&&(n="html",k=c)),"ajax"===n&&(m=g.split(/\s+/,2),g=m.shift(),m=m.shift()));k||("inline"===n?g?k=f(r(g)?g.replace(/.*(?=#[^\s]+$)/,""):g):l.isDom&&(k=c): +"html"===n?k=g:n||g||!l.isDom||(n="inline",k=c));f.extend(l,{href:g,type:n,content:k,title:h,selector:m});a[e]=l}),b.opts=f.extend(!0,{},b.defaults,d),d.keys!==w&&(b.opts.keys=d.keys?f.extend({},b.defaults.keys,d.keys):!1),b.group=a,b._start(b.opts.index)},cancel:function(){var a=b.coming;a&&!1===b.trigger("onCancel")||(b.hideLoading(),a&&(b.ajaxLoad&&b.ajaxLoad.abort(),b.ajaxLoad=null,b.imgPreload&&(b.imgPreload.onload=b.imgPreload.onerror=null),a.wrap&&a.wrap.stop(!0,!0).trigger("onReset").remove(), +b.coming=null,b.current||b._afterZoomOut(a)))},close:function(a){b.cancel();!1!==b.trigger("beforeClose")&&(b.unbindEvents(),b.isActive&&(b.isOpen&&!0!==a?(b.isOpen=b.isOpened=!1,b.isClosing=!0,f(".fancybox-item, .fancybox-nav").remove(),b.wrap.stop(!0,!0).removeClass("fancybox-opened"),b.transitions[b.current.closeMethod]()):(f(".fancybox-wrap").stop(!0).trigger("onReset").remove(),b._afterZoomOut())))},play:function(a){var d=function(){clearTimeout(b.player.timer)},e=function(){d();b.current&&b.player.isActive&& +(b.player.timer=setTimeout(b.next,b.current.playSpeed))},c=function(){d();p.unbind(".player");b.player.isActive=!1;b.trigger("onPlayEnd")};!0===a||!b.player.isActive&&!1!==a?b.current&&(b.current.loop||b.current.index=c.index?"next":"prev"],b.router=e||"jumpto",c.loop&&(0>a&&(a=c.group.length+a%c.group.length),a%=c.group.length),c.group[a]!==w&&(b.cancel(),b._start(a)))},reposition:function(a,d){var e=b.current,c=e?e.wrap:null,l;c&&(l=b._getPosition(d),a&&"scroll"===a.type?(delete l.position,c.stop(!0,!0).animate(l,200)):(c.css(l),e.pos=f.extend({},e.dim,l)))}, +update:function(a){var d=a&&a.originalEvent&&a.originalEvent.type,e=!d||"orientationchange"===d;e&&(clearTimeout(C),C=null);b.isOpen&&!C&&(C=setTimeout(function(){var c=b.current;c&&!b.isClosing&&(b.wrap.removeClass("fancybox-tmp"),(e||"load"===d||"resize"===d&&c.autoResize)&&b._setDimension(),"scroll"===d&&c.canShrink||b.reposition(a),b.trigger("onUpdate"),C=null)},e&&!t?0:300))},toggle:function(a){b.isOpen&&(b.current.fitToView="boolean"===f.type(a)?a:!b.current.fitToView,t&&(b.wrap.removeAttr("style").addClass("fancybox-tmp"), +b.trigger("onUpdate")),b.update())},hideLoading:function(){p.unbind(".loading");f("#fancybox-loading").remove()},showLoading:function(){var a,d;b.hideLoading();a=f('
').click(b.cancel).appendTo("body");p.bind("keydown.loading",function(a){27===(a.which||a.keyCode)&&(a.preventDefault(),b.cancel())});b.defaults.fixed||(d=b.getViewport(),a.css({position:"absolute",top:0.5*d.h+d.y,left:0.5*d.w+d.x}));b.trigger("onLoading")},getViewport:function(){var a=b.current&& +b.current.locked||!1,d={x:q.scrollLeft(),y:q.scrollTop()};a&&a.length?(d.w=a[0].clientWidth,d.h=a[0].clientHeight):(d.w=t&&s.innerWidth?s.innerWidth:q.width(),d.h=t&&s.innerHeight?s.innerHeight:q.height());return d},unbindEvents:function(){b.wrap&&u(b.wrap)&&b.wrap.unbind(".fb");p.unbind(".fb");q.unbind(".fb")},bindEvents:function(){var a=b.current,d;a&&(q.bind("orientationchange.fb"+(t?"":" resize.fb")+(a.autoCenter&&!a.locked?" scroll.fb":""),b.update),(d=a.keys)&&p.bind("keydown.fb",function(e){var c= +e.which||e.keyCode,l=e.target||e.srcElement;if(27===c&&b.coming)return!1;e.ctrlKey||e.altKey||e.shiftKey||e.metaKey||l&&(l.type||f(l).is("[contenteditable]"))||f.each(d,function(d,l){if(1h[0].clientWidth||h[0].clientHeight&&h[0].scrollHeight>h[0].clientHeight),h=f(h).parent();0!==c&&!k&&1g||0>l)&&b.next(0>g?"up":"right"),d.preventDefault())}))},trigger:function(a,d){var e,c=d||b.coming||b.current;if(c){f.isFunction(c[a])&&(e=c[a].apply(c,Array.prototype.slice.call(arguments,1)));if(!1===e)return!1;c.helpers&&f.each(c.helpers,function(d,e){if(e&& +b.helpers[d]&&f.isFunction(b.helpers[d][a]))b.helpers[d][a](f.extend(!0,{},b.helpers[d].defaults,e),c)})}p.trigger(a)},isImage:function(a){return r(a)&&a.match(/(^data:image\/.*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg)((\?|#).*)?$)/i)},isSWF:function(a){return r(a)&&a.match(/\.(swf)((\?|#).*)?$/i)},_start:function(a){var d={},e,c;a=m(a);e=b.group[a]||null;if(!e)return!1;d=f.extend(!0,{},b.opts,e);e=d.margin;c=d.padding;"number"===f.type(e)&&(d.margin=[e,e,e,e]);"number"===f.type(c)&&(d.padding=[c,c, +c,c]);d.modal&&f.extend(!0,d,{closeBtn:!1,closeClick:!1,nextClick:!1,arrows:!1,mouseWheel:!1,keys:null,helpers:{overlay:{closeClick:!1}}});d.autoSize&&(d.autoWidth=d.autoHeight=!0);"auto"===d.width&&(d.autoWidth=!0);"auto"===d.height&&(d.autoHeight=!0);d.group=b.group;d.index=a;b.coming=d;if(!1===b.trigger("beforeLoad"))b.coming=null;else{c=d.type;e=d.href;if(!c)return b.coming=null,b.current&&b.router&&"jumpto"!==b.router?(b.current.index=a,b[b.router](b.direction)):!1;b.isActive=!0;if("image"=== +c||"swf"===c)d.autoHeight=d.autoWidth=!1,d.scrolling="visible";"image"===c&&(d.aspectRatio=!0);"iframe"===c&&t&&(d.scrolling="scroll");d.wrap=f(d.tpl.wrap).addClass("fancybox-"+(t?"mobile":"desktop")+" fancybox-type-"+c+" fancybox-tmp "+d.wrapCSS).appendTo(d.parent||"body");f.extend(d,{skin:f(".fancybox-skin",d.wrap),outer:f(".fancybox-outer",d.wrap),inner:f(".fancybox-inner",d.wrap)});f.each(["Top","Right","Bottom","Left"],function(a,b){d.skin.css("padding"+b,x(d.padding[a]))});b.trigger("onReady"); +if("inline"===c||"html"===c){if(!d.content||!d.content.length)return b._error("content")}else if(!e)return b._error("href");"image"===c?b._loadImage():"ajax"===c?b._loadAjax():"iframe"===c?b._loadIframe():b._afterLoad()}},_error:function(a){f.extend(b.coming,{type:"html",autoWidth:!0,autoHeight:!0,minWidth:0,minHeight:0,scrolling:"no",hasError:a,content:b.coming.tpl.error});b._afterLoad()},_loadImage:function(){var a=b.imgPreload=new Image;a.onload=function(){this.onload=this.onerror=null;b.coming.width= +this.width/b.opts.pixelRatio;b.coming.height=this.height/b.opts.pixelRatio;b._afterLoad()};a.onerror=function(){this.onload=this.onerror=null;b._error("image")};a.src=b.coming.href;!0!==a.complete&&b.showLoading()},_loadAjax:function(){var a=b.coming;b.showLoading();b.ajaxLoad=f.ajax(f.extend({},a.ajax,{url:a.href,error:function(a,e){b.coming&&"abort"!==e?b._error("ajax",a):b.hideLoading()},success:function(d,e){"success"===e&&(a.content=d,b._afterLoad())}}))},_loadIframe:function(){var a=b.coming, +d=f(a.tpl.iframe.replace(/\{rnd\}/g,(new Date).getTime())).attr("scrolling",t?"auto":a.iframe.scrolling).attr("src",a.href);f(a.wrap).bind("onReset",function(){try{f(this).find("iframe").hide().attr("src","//about:blank").end().empty()}catch(a){}});a.iframe.preload&&(b.showLoading(),d.one("load",function(){f(this).data("ready",1);t||f(this).bind("load.fb",b.update);f(this).parents(".fancybox-wrap").width("100%").removeClass("fancybox-tmp").show();b._afterLoad()}));a.content=d.appendTo(a.inner);a.iframe.preload|| +b._afterLoad()},_preloadImages:function(){var a=b.group,d=b.current,e=a.length,c=d.preload?Math.min(d.preload,e-1):0,f,g;for(g=1;g<=c;g+=1)f=a[(d.index+g)%e],"image"===f.type&&f.href&&((new Image).src=f.href)},_afterLoad:function(){var a=b.coming,d=b.current,e,c,l,g,h;b.hideLoading();if(a&&!1!==b.isActive)if(!1===b.trigger("afterLoad",a,d))a.wrap.stop(!0).trigger("onReset").remove(),b.coming=null;else{d&&(b.trigger("beforeChange",d),d.wrap.stop(!0).removeClass("fancybox-opened").find(".fancybox-item, .fancybox-nav").remove()); +b.unbindEvents();e=a.content;c=a.type;l=a.scrolling;f.extend(b,{wrap:a.wrap,skin:a.skin,outer:a.outer,inner:a.inner,current:a,previous:d});g=a.href;switch(c){case "inline":case "ajax":case "html":a.selector?e=f("
").html(e).find(a.selector):u(e)&&(e.data("fancybox-placeholder")||e.data("fancybox-placeholder",f('
').insertAfter(e).hide()),e=e.show().detach(),a.wrap.bind("onReset",function(){f(this).find(e).length&&e.hide().replaceAll(e.data("fancybox-placeholder")).data("fancybox-placeholder", +!1)}));break;case "image":e=a.tpl.image.replace(/\{href\}/g,g);break;case "swf":e='',h="",f.each(a.swf,function(a,b){e+='';h+=" "+a+'="'+b+'"'}),e+='"}u(e)&&e.parent().is(a.inner)||a.inner.append(e);b.trigger("beforeShow"); +a.inner.css("overflow","yes"===l?"scroll":"no"===l?"hidden":l);b._setDimension();b.reposition();b.isOpen=!1;b.coming=null;b.bindEvents();if(!b.isOpened)f(".fancybox-wrap").not(a.wrap).stop(!0).trigger("onReset").remove();else if(d.prevMethod)b.transitions[d.prevMethod]();b.transitions[b.isOpened?a.nextMethod:a.openMethod]();b._preloadImages()}},_setDimension:function(){var a=b.getViewport(),d=0,e=!1,c=!1,e=b.wrap,l=b.skin,g=b.inner,h=b.current,c=h.width,k=h.height,n=h.minWidth,v=h.minHeight,p=h.maxWidth, +q=h.maxHeight,t=h.scrolling,r=h.scrollOutside?h.scrollbarWidth:0,y=h.margin,z=m(y[1]+y[3]),s=m(y[0]+y[2]),w,A,u,D,B,G,C,E,I;e.add(l).add(g).width("auto").height("auto").removeClass("fancybox-tmp");y=m(l.outerWidth(!0)-l.width());w=m(l.outerHeight(!0)-l.height());A=z+y;u=s+w;D=F(c)?(a.w-A)*m(c)/100:c;B=F(k)?(a.h-u)*m(k)/100:k;if("iframe"===h.type){if(I=h.content,h.autoHeight&&1===I.data("ready"))try{I[0].contentWindow.document.location&&(g.width(D).height(9999),G=I.contents().find("body"),r&&G.css("overflow-x", +"hidden"),B=G.outerHeight(!0))}catch(H){}}else if(h.autoWidth||h.autoHeight)g.addClass("fancybox-tmp"),h.autoWidth||g.width(D),h.autoHeight||g.height(B),h.autoWidth&&(D=g.width()),h.autoHeight&&(B=g.height()),g.removeClass("fancybox-tmp");c=m(D);k=m(B);E=D/B;n=m(F(n)?m(n,"w")-A:n);p=m(F(p)?m(p,"w")-A:p);v=m(F(v)?m(v,"h")-u:v);q=m(F(q)?m(q,"h")-u:q);G=p;C=q;h.fitToView&&(p=Math.min(a.w-A,p),q=Math.min(a.h-u,q));A=a.w-z;s=a.h-s;h.aspectRatio?(c>p&&(c=p,k=m(c/E)),k>q&&(k=q,c=m(k*E)),cA||z>s)&&c>n&&k>v&&!(19p&&(c=p,k=m(c/E)),g.width(c).height(k),e.width(c+y),a=e.width(),z=e.height();else c=Math.max(n,Math.min(c,c-(a-A))),k=Math.max(v,Math.min(k,k-(z-s)));r&&"auto"===t&&kA||z>s)&&c>n&&k>v;c=h.aspectRatio?cv&&k
').appendTo(d&&d.lenth?d:"body");this.fixed=!1;a.fixed&&b.defaults.fixed&&(this.overlay.addClass("fancybox-overlay-fixed"),this.fixed=!0)},open:function(a){var d=this;a=f.extend({},this.defaults,a);this.overlay?this.overlay.unbind(".overlay").width("auto").height("auto"):this.create(a);this.fixed||(q.bind("resize.overlay",f.proxy(this.update,this)),this.update());a.closeClick&&this.overlay.bind("click.overlay", +function(a){if(f(a.target).hasClass("fancybox-overlay"))return b.isActive?b.close():d.close(),!1});this.overlay.css(a.css).show()},close:function(){q.unbind("resize.overlay");this.el.hasClass("fancybox-lock")&&(f(".fancybox-margin").removeClass("fancybox-margin"),this.el.removeClass("fancybox-lock"),q.scrollTop(this.scrollV).scrollLeft(this.scrollH));f(".fancybox-overlay").remove().hide();f.extend(this,{overlay:null,fixed:!1})},update:function(){var a="100%",b;this.overlay.width(a).height("100%"); +J?(b=Math.max(H.documentElement.offsetWidth,H.body.offsetWidth),p.width()>b&&(a=p.width())):p.width()>q.width()&&(a=p.width());this.overlay.width(a).height(p.height())},onReady:function(a,b){var e=this.overlay;f(".fancybox-overlay").stop(!0,!0);e||this.create(a);a.locked&&this.fixed&&b.fixed&&(b.locked=this.overlay.append(b.wrap),b.fixed=!1);!0===a.showEarly&&this.beforeShow.apply(this,arguments)},beforeShow:function(a,b){b.locked&&!this.el.hasClass("fancybox-lock")&&(!1!==this.fixPosition&&f("*").filter(function(){return"fixed"=== +f(this).css("position")&&!f(this).hasClass("fancybox-overlay")&&!f(this).hasClass("fancybox-wrap")}).addClass("fancybox-margin"),this.el.addClass("fancybox-margin"),this.scrollV=q.scrollTop(),this.scrollH=q.scrollLeft(),this.el.addClass("fancybox-lock"),q.scrollTop(this.scrollV).scrollLeft(this.scrollH));this.open(a)},onUpdate:function(){this.fixed||this.update()},afterClose:function(a){this.overlay&&!b.coming&&this.overlay.fadeOut(a.speedOut,f.proxy(this.close,this))}};b.helpers.title={defaults:{type:"float", +position:"bottom"},beforeShow:function(a){var d=b.current,e=d.title,c=a.type;f.isFunction(e)&&(e=e.call(d.element,d));if(r(e)&&""!==f.trim(e)){d=f('
'+e+"
");switch(c){case "inside":c=b.skin;break;case "outside":c=b.wrap;break;case "over":c=b.inner;break;default:c=b.skin,d.appendTo("body"),J&&d.width(d.width()),d.wrapInner(''),b.current.margin[2]+=Math.abs(m(d.css("margin-bottom")))}d["top"===a.position?"prependTo": +"appendTo"](c)}}};f.fn.fancybox=function(a){var d,e=f(this),c=this.selector||"",l=function(g){var h=f(this).blur(),k=d,l,m;g.ctrlKey||g.altKey||g.shiftKey||g.metaKey||h.is(".fancybox-wrap")||(l=a.groupAttr||"data-fancybox-group",m=h.attr(l),m||(l="rel",m=h.get(0)[l]),m&&""!==m&&"nofollow"!==m&&(h=c.length?f(c):e,h=h.filter("["+l+'="'+m+'"]'),k=h.index(this)),a.index=k,!1!==b.open(h,a)&&g.preventDefault())};a=a||{};d=a.index||0;c&&!1!==a.live?p.undelegate(c,"click.fb-start").delegate(c+":not('.fancybox-item, .fancybox-nav')", +"click.fb-start",l):e.unbind("click.fb-start").bind("click.fb-start",l);this.filter("[data-fancybox-start=1]").trigger("click");return this};p.ready(function(){var a,d;f.scrollbarWidth===w&&(f.scrollbarWidth=function(){var a=f('
').appendTo("body"),b=a.children(),b=b.innerWidth()-b.height(99).innerWidth();a.remove();return b});f.support.fixedPosition===w&&(f.support.fixedPosition=function(){var a=f('
').appendTo("body"), +b=20===a[0].offsetTop||15===a[0].offsetTop;a.remove();return b}());f.extend(b.defaults,{scrollbarWidth:f.scrollbarWidth(),fixed:f.support.fixedPosition,parent:f("body")});a=f(s).width();K.addClass("fancybox-lock-test");d=f(s).width();K.removeClass("fancybox-lock-test");f("").appendTo("head")})})(window,document,jQuery); \ No newline at end of file diff --git a/themes/landscape/source/js/script.js b/themes/landscape/source/js/script.js new file mode 100644 index 0000000..1e58767 --- /dev/null +++ b/themes/landscape/source/js/script.js @@ -0,0 +1,137 @@ +(function($){ + // Search + var $searchWrap = $('#search-form-wrap'), + isSearchAnim = false, + searchAnimDuration = 200; + + var startSearchAnim = function(){ + isSearchAnim = true; + }; + + var stopSearchAnim = function(callback){ + setTimeout(function(){ + isSearchAnim = false; + callback && callback(); + }, searchAnimDuration); + }; + + $('#nav-search-btn').on('click', function(){ + if (isSearchAnim) return; + + startSearchAnim(); + $searchWrap.addClass('on'); + stopSearchAnim(function(){ + $('.search-form-input').focus(); + }); + }); + + $('.search-form-input').on('blur', function(){ + startSearchAnim(); + $searchWrap.removeClass('on'); + stopSearchAnim(); + }); + + // Share + $('body').on('click', function(){ + $('.article-share-box.on').removeClass('on'); + }).on('click', '.article-share-link', function(e){ + e.stopPropagation(); + + var $this = $(this), + url = $this.attr('data-url'), + encodedUrl = encodeURIComponent(url), + id = 'article-share-box-' + $this.attr('data-id'), + offset = $this.offset(); + + if ($('#' + id).length){ + var box = $('#' + id); + + if (box.hasClass('on')){ + box.removeClass('on'); + return; + } + } else { + var html = [ + '
', + '', + '
', + '', + '', + '', + '', + '
', + '
' + ].join(''); + + var box = $(html); + + $('body').append(box); + } + + $('.article-share-box.on').hide(); + + box.css({ + top: offset.top + 25, + left: offset.left + }).addClass('on'); + }).on('click', '.article-share-box', function(e){ + e.stopPropagation(); + }).on('click', '.article-share-box-input', function(){ + $(this).select(); + }).on('click', '.article-share-box-link', function(e){ + e.preventDefault(); + e.stopPropagation(); + + window.open(this.href, 'article-share-box-window-' + Date.now(), 'width=500,height=450'); + }); + + // Caption + $('.article-entry').each(function(i){ + $(this).find('img').each(function(){ + if ($(this).parent().hasClass('fancybox')) return; + + var alt = this.alt; + + if (alt) $(this).after('' + alt + ''); + + $(this).wrap(''); + }); + + $(this).find('.fancybox').each(function(){ + $(this).attr('rel', 'article' + i); + }); + }); + + if ($.fancybox){ + $('.fancybox').fancybox(); + } + + // Mobile nav + var $container = $('#container'), + isMobileNavAnim = false, + mobileNavAnimDuration = 200; + + var startMobileNavAnim = function(){ + isMobileNavAnim = true; + }; + + var stopMobileNavAnim = function(){ + setTimeout(function(){ + isMobileNavAnim = false; + }, mobileNavAnimDuration); + } + + $('#main-nav-toggle').on('click', function(){ + if (isMobileNavAnim) return; + + startMobileNavAnim(); + $container.toggleClass('mobile-nav-on'); + stopMobileNavAnim(); + }); + + $('#wrap').on('click', function(){ + if (isMobileNavAnim || !$container.hasClass('mobile-nav-on')) return; + + $container.removeClass('mobile-nav-on'); + }); +})(jQuery); \ No newline at end of file