作者归档:songtianlun

WordPress邮件通知插件Notification使用小记

Notification是wordpress上一款功能强劲的插件,可以实现wordpress各种事件的邮件通知功能,更可以根据自己的实际需求定制自己的邮件通知内容,插件提供了很多的短代码,能够很方便的协助用户完成邮件的模板创建。

在这里,简单记下几种常见通知中可以使用的段代码,方便以后使用。

【发布新文章通知(New Post Published)】

网站简码
这些短代码可用于任何通知。

网站标题:[global_site_title]
网站标语:[global_site_tagline]
网站网址:[global_site_url]
网站管理员电子邮件:[admin_email]
当前日期:[current_date]
当前时间:[current_time]

收件人用户密码
这些短代码只能用于具有“发送至”字段的通知以及在您的网站上拥有WordPress帐户的用户,即它们不适用于使用“ 发送到任意电子邮件”手动添加的电子邮件地址 – 在。

收件人用户ID:[email_user_id]
收件人用户登录:[email_user_login]
收件人用户Nicename:[email_user_nicename]
收件人用户电子邮件:[email_user_email]
收件人用户URL:[email_user_url]
收件人用户注册:[email_user_registered]
收件人显示名称:[email_user_display_name]
收件人用户名:[email_user_firstname]
收件人用户姓氏:[email_user_lastname] 收件人
昵称:[email_user_nickname]
收件人用户说明:[email_user_description]
收件人功能:[email_user_wp_capabilities]
收件人用户头像:[email_user_avatar]
收件人用户配置文件自定义字段:[email_user_custom_field field =“ X“] (仅限自定义字段附加组件
管理WP管理员配置文件中的BNFW通知订阅:[user_subscription_page](仅限订阅附加组件)

发布/页面/自定义发布类型短代码
永久链接:[ permalink ]
帖子ID:[ID]
原帖帖子作者:[post_author]
发布日期:[post_date]
发布日期(GMT):[post_date_gmt]
帖子内容:[post_content]
帖子标题:[post_title]
帖子分类:[post_category ]
帖子的第一类分类:[post_category_slug]
帖子术语:[post_term taxonomy =“TAXONOMY_NAME”]
帖子标签:[post_tag]
帖子摘录:[post_excerpt]
帖子状态:[post_status]
评论状态:[comment_status ]
Ping状态:[ping_status]
发布密码:[post_password]
帖子名称:[post_name]
要Ping:[to_ping] Pinged
:[pinged]
Post Modified:[post_modified]
修改后的(GMT):[post_modified_gmt]
过滤后的内容:[post_content_filtered]
后期父母:[post_parent]
GUID:[guid]
菜单顺序:[menu_order]
帖子类型:[post_type]
发布MIME类型:[post_mime_type]
评论数:[ comment_count]
编辑帖子链接:[edit_post]
Post Slug:[post_slug]
永久链接到帖子后:[post_parent_permalink] 链接到帖子
作者档案:[author_link]
链接到帖子类型档案:[post_type_archive]
特色图片:[featured_image]
第一张图片发布:[first_image]
自定义字段:[custom_field field =“X”] (仅限自定义字段附加组件)

用户简码
这些多用途短代码涉及触发通知的人。这很可能是帖子的作者或正在注册的用户。

用户ID:[user_id]
用户登录:[user_login]
用户角色:[user_role]
用户Nicename:[user_nicename]
用户电子邮件:[user_email]
用户URL:[user_url]
用户注册:[user_registered]
显示名称:[display_name]
用户名:[user_firstname]
用户姓氏:[user_lastname]
昵称:[昵称]
用户说明:[user_description]
功能:[wp_capabilities]
用户头像:[user_avatar]
用户配置文件自定义字段:[user_custom_field field =“X”] (自定义字段添加 -上唯一)

更多内容见Notification帮助文档:Shortcodes

【影评】爱情公寓2018电影观后感

切不可听信谗言,不可只听周遭人的评价。事情究竟是怎么样,必定得是眼见为实。也只有一个眼见为实!

电影《爱情公寓》剧照

今天突然兴起,打算看一下《爱情公寓》。爱情公寓是陪伴我长大的一部电视剧,不仅如此,还是陪伴我们这代人长大的一部电视剧,在我们的记忆中留下了深刻的印象。这部电影可以说是令我期待很久。可惜的是由于以下两个原因,没有得意去电影院观影。
1.听信了周遭人的传闻,说不好看,于是信以为真,就在当时失去了兴趣。
2.实际原因没有抽出来时间观赏。

可就在今天,在宿舍里用电脑看过这个电影之后,心中涌起的潮浪久久难以褪去,勾起了我太多太多的回忆!是一部“盗墓片”,但是所谓的“山寨”,是制作的如此认真,那么动人,导演韦正,至少在我心中的地位越来越高。
这部电影,让我想起来那年暑假,在家里的小平房里,和兄弟姐妹一起看爱情公寓的场景,爱情公寓让我看到了原来生活可以这么有意思,原来每一天都可以过的那么充满活力,真的是当时乏味的生活中一缕阳光,每一集的时光都过的那么快。

也许就是通过爱情公寓,我才了解在祖国的东方,在上海。哪里的一切是那样的发达,那里的生活是那样的多姿多彩。看过许多许多纪录片,虽说也是纪实,但着实没有这个来的直接。爱情公寓是直击生活的,是最接地气的,是真的让我感同身受,至少在我与爱情公寓见建立了非常强烈的链接。也许就像是上一代人喜欢看《还珠格格》一样吧。每一代人都有这样的一些作品能与当代人建立强烈的链接。也正是因为此,影视作品是反应一个时代人生活状态及流行趋势有效途径之一!

谈会2018年的《爱情公寓》吧。整片总结下来确乎是可以总结为一种爱情公寓和盗墓笔记的结合体。但是事情就是那么奇怪,怎么就那么奇怪的让我觉得非常好看。特别是到最后最后的彩蛋,不管怎么着,我就是感觉这就是全世界电影里最走心最戳人的彩蛋了。最受不了的就是悠悠谈到想跟关谷说的话那一部分,真的是泪水就在眼里打转了。想想如果自己真的去了电影院看,估计当场也是要潸然泪下,不会比《我不是药神》差。

感性归感性,如果全看理性的话,这部电影确实是一部极其符合一代人个性的作品,不见得有经典作品那样子的普适,可就是那么动人。就像是为我们量身定制的一般。就是这几个人在一起,就是导演韦正导演,就是觉得好看。没什么理由,也许这就是所谓的人性,或是自然规律吧。当我还是少年,这部电视剧在我脑海中留下了太深刻的映像。触及了心中最柔软的地方。毫无反击之力。就是喜欢吧。喜欢一个东西真的是不需要理由的。就像是忠于热爱,有时候这个世界,不全是通过逻辑来走通的。

虽然网上评价褒贬不一,难以从中看出什么,但不能否认的是这部剧在我们这一代人心中留下了太深刻的映像。对于爱情公寓,我真的很难接受有人说他不好,也许这就是一种喜欢至深吧,真的,说不出来是什么,但就是喜欢。

虽说是这样,但是爱情公寓在我心里确实是良心之作,上面我的态度很多受到了网上的影响,但是一开头我就说了, 眼见为实!我的态度才是最重要的,我的生活我做主,我要按照我的想法去活,我要活出自己的样子。
爱情公寓,就演技、拍摄、特效、配音,在我看来都是很自然,恰到好处。特别是配乐,极其深入人心,极其动人。我真的想不出来爱情公寓哪里不好。

爱情公寓是陪伴我们这代人长大的一部剧,至少在我心中有着沉甸甸的重量。说真的,对于爱情公寓,我 恰恰不希望它变得太过隆重,太过注重收视率和效率。这是真正拍到我们心中的一部剧。只是希望,爱情公寓这帮人,能一直演自己喜欢的片子,不忘初心。

宋天伦

2019.1.17

【书评】白鹿原

这学期看过许多记录上世纪故事的纪实作品。
《蛙》
《一百个人的十年》
《1942河南大饥荒》
再有今晚刚刚结束的
《白鹿原》
终于,今夜,我失眠了。

《白鹿原》是一部小说,获得茅盾文学奖。刚开始阅读是以一种小说的态度阅读的,开始阅读《白鹿原》跟父亲最近喜欢看同名电视剧也有一定关系,剧情确实曲折,引人入胜。不过看过原著真的是被震撼!这哪里是一部小说,这讲述的明明就是一个个有血有肉的故事!

白鹿原中给我留下深刻印象的有如下几人:

1.白嘉轩。白鹿氏族老族长,做事情果敢勇猛,从不遮遮掩掩,一生光明磊落,做事深得民心!他一生与人为善,从不作恶。褪去族长职务后更是悉心教导后一代,拿得起放得下, 肚量极大,君子作风!黑娃作恶多端,甚至打断了他的腰让白嘉轩永远直不起腰,面对归善的黑娃,他还是完全接纳甚至动用最高规格礼仪接纳黑娃回原祭奠祖先。一生可谓是尽到了一个族长全部的义务!
2.朱先生。坚持早读,儒者风范,本可以享尽荣华富贵,却看淡一切,甘愿走最难走的一条路。大道至简,一生也是勤俭到一种境界。极具头脑,洞察极深,口才极好,甚至遇见了自己入土多年后的事,可谓神人也。
3.鹿兆鹏。用尽一生的力量和封建世俗做斗争,后儿新中国成立立下汗马功劳,做事极具韧性,坚持到底,令人倾佩!
4.黑娃。年轻时作恶多端,后而改邪归正成为朱先生最后一个,也是最“好”的一个,真的是为了学问而学习的关门的弟子。新中国成立后,虽本着功过互补的理念,但是还是因为作恶太多难抵功劳,最终被执行死刑。
5.白灵。让人“可怜”的百灵,有勇有谋,极具勇气,敢想敢做,不具权威,新中国成立后被冠以“革命烈士”。农历十一月初七。化身白鹿,永远的离去。

除此之外还有冷先生、田乡约、三哥、兆鹏、兆海、孝文、孝武等人,均是有血有肉的人物,成就一个个值得人反复咀嚼的故事。待阅读到后半部分,才惊觉这么厚的一本书讲述的是两代、三代甚至更多人的事情,详略得当的文笔叙述了各式各样的民间轶事,更是用关中地区特有的家乡话叙述,更是令人仿佛置身其中,揭示了许许多度做人的道理,用最通俗易懂的话指出当时社会存在的主要矛盾并揭示了种种自然发展道理。

刚开始的时候文章甚至用很多笔墨叙述了国民党当红时期的场景,也正如次令当今的人读来着实为一些人捏了一把汗,这也让我想通了为什么电视剧会在2017年播出一集后就被紧急叫停,后再播。可通读全文才懂得,这讲述的是国民党种种风光,可实际叙述的明明就是未来世界是属于“朱毛”的,此中叙述方式令人拍案叫绝!更是让我看到了所谓之人才亦或是一个新世界是如何一步步跌宕起伏,后而涅槃重生的。

灾祸摧毁村庄摧毁历史也摧毁记忆,只有荒诞不经的传说经久不衰。

有意思的事情总是可以更好的流传,更加印证了做学问、传授知识不仅仅是要保证严谨性、科学性,若要达到教化人的目的就更要考虑起传颂程度。所谓大学者,非谓有大楼也,有大师也。而大学者,一来做学问也,而来培养人才也。

一件事情做到至深是可以深入骨子里的,就像是朱先生。

诵读已经不是习惯而是他生命的需要。

读书却忽是能体会到人间一种极乐,这样的乐趣不同于大富大贵、灯红酒绿,而是一种持久的,真正源于内心而且滋润人的。

好饭耐不得三顿吃,好衣架不住半月穿,好书却经得住一辈子诵读。

农家人说话总是接地气又言简意赅,一句话点中要害,就像是家里人教育孩子出去闯要有颜色。

甭叫人家先宠后恼

任谁的生活都不是一帆风顺的,起起落落才谓之生活,想要做一个好人更是如此,就像是书中早早的就发出慨叹:

好人难活

书中有这么一个细节让我映像至深,共产党员白灵,在共产党被大力打压,甚至宁可错杀一百也不漏掉一个,共产党的“疑似分子”均一个个被丢进枯井或是活埋。这样一个时期果断加入共产党,可谓忠心耿耿,可就在一次内奸事件后,当时的总负责毕某为了将内奸斩草除根,将所有和内奸有这同样来历的同志一个个判死刑,白灵在廖军长保护下,得以熬过一阵,可惜还是没有挺过去,最后被活埋。多年以后,她的孩子鹿鸣无意间寻到这段历史,还意外发现原来白灵就是自己的亲生母亲!可也许就是这样一种善良,或者说是一种看透,亦或是遗传下来的那种不作恶的品质。

作家鹿鸣也不执意要找到毕某问询什么。他觉得重要的已不是烈士的死亡细节和具体过程,那仅仅只是对未来的创作有用,重要的是对发生这一幕历史悲剧的根源的反省。

事情从来都不是顺利的,国民政府不惜放缓对于日本人的抗击也要消灭共产党,令当今人听了也忍不住要破口大骂。“王师北定中原日,捷报勿忘告先生。”可捷报没等到,却等来的是一件让国人对国民政府进一步失望的消息……

” 你跟兆海都上了中条山,你说得准这四十三个野兽残害了多少中原同胞? ” 马营长 ” 哇 ” 地一声哭了: ” 谁算得清啊 ……”

这样一个非常时期,朱先生一行文人墨客,再也坐不住,浩浩荡荡的要上前线“投笔从戎”,坚定信念令人动容,虽说意外的得到了又一个让人对国民政权彻底失望的消息,可也给我一个教训,做事情就要做到干干脆脆,别拖泥带水扭扭捏捏,不该发生的事,自找都不一定找得到;该发生的事情,躲是一定过不去的。没有一定要做的事情,成事在人。

他们在星光下涉过滋水,翻上北岭,登上北岭峰巅时正好赶上一个难得的时辰,一团颤悠悠的熔岩似的火球从远方大地里浮冒出来,炽红的桔黄的烈焰把大地和天空熔为一体。

随着故事情节的深入,国民政府的脆弱性,满满的显露出来。

原上现存的年龄最长的老者开启记忆,说从没有见过这样普遍的征丁和这么大数目的军粮,即使清朝也没在原上公开征召过一兵一卒,除了给皇上交纳皇粮外,也再没增收过任何名堂的军粮。

灾难中看人心,也只有在逆境中才能看出一个人是不是真人。在所谓“千载难逢”的机会面前,白家和鹿家展现出的是截然不同的两种态度,这也似乎在一步步证实为什么鹿家会一步步衰败,而白家总是能在灾难后站起来。

他没有幸灾乐祸,反而当急做出搭救鹿子霖的举措,就是要在白鹿村乃至整个原上树立一种精神。

家风不正,教子不严,是白鹿家族里鹿氏这一股儿的根深蒂固的弱点

没有密不透风的墙,更没有完全的人。黑娃有些时日作恶多端,但却在后来“改邪归正”

别人是先趸下学问再出去闯世事,你是闯过了世事才来求学问;别人趸下学问为发财升官,你才是真个求学问为修身为做人的。 ” 黑娃谦然地说: ” 我学一点就做到一点,为的再不做混帐事。 “

下面的这段描述更是应证了这点,世界之大,无奇不有,不一定是顺风顺水才能成事,逆境事儿是激励一个人不二之选,甚至是心力重要源泉,还是没有绝对的事情

那劣种跟我咬筋的时光,我的心劲倒足,这崽娃子回心转意了,我反倒觉得心劲跑丢了,气也撒光咧 ……”

随着故事的深入,国民政权即将宣告灭亡的预告越来越明显。

白鹿原出现了一个前所未闻的卖壮丁的职业。这种纯粹以自身性命为赌注的买卖派生于国民政府的大征兵。

一个靠绳索捆绑的士兵所支撑的政权无疑是世界上最残暴的政权,也是最虚弱无能的政权 ……

小的时候总是想要离开家去远方,可真正去了远方却又越来越想家,就像是书中描述道朱先生带领的八位先生,在投笔从戎途中看到的一切,不禁赞叹自己生活的这片土地是多么的富饶、有活力而且是那么的宏伟。

八位先生散居滋水县的山区河川和原上,朱先生趁送书的机会又一次游览了滋水故地,感受愈加深刻,滋水县境的秦岭是真正的山,挺拔陡峭巍然耸立是山中的伟丈夫;滋水县辖的白鹿原是典型的原,平实敦厚坦荡如砥,是大丈夫是胸襟;滋水县的滋川道刚柔相济,是自信自尊的女子。

朱先生真乃一代奇人,是一个有这预见性视野的人,看事情总是看很多步,做事情总是基于一些思考,事实不断的印证他的判断,令人称奇!我总觉这里最值得称赞的还是朱先生乃好思考之人吧!

不蒙蒙脸纸,不用棺材,不要吹鼓手,不向亲友报丧,不接待任何吊孝者,不用砖箍墓,总而言之,不要铺张,不要喧嚷,尽早入土。

 ”白鹿原最好的一个先生谢世了……世上再也出不了这样好的先生了!”

 这个人一生留下了数不清的奇事逸闻,全都是与人为善的事,竟而找不出一件害人利已的事来。

朱先生一生光明磊落,想做就做,与人和善,从不违心。可更让人称赞的地方,他不但与人和善,更是能治恶!

朱先生死前就算定了要被人揭墓,所以不装棺木,也不用砖箍砌墓室。整个墓道里只搜出一块经过烧制和打磨的砖头,就是封堵暗室小孔的那一块,两面都刻着字。
朱先生死前就算定了要被人揭墓,所以不装棺木,也不用砖箍砌墓室。整个墓道里只搜出一块经过烧制和打磨的砖头,就是封堵暗室小孔的那一块,两面都刻着字。

内里还是双层的,里面还有一行字。

折腾到何日为止

不管黑夜有多么的漫长,终有天明之日,当全国上下不计其数的仁人志士们,不和现实妥协,而是要用双手去改变的人,此刻终于看到了光明。

他终于亲自迎接了五月二十日这个早晨,亲眼目睹了一个旧政权的灭亡和一个新政权诞生的最初过程。面对钟楼上迎风招展的红旗,他流下一行热泪,这正是祭奠无数烈士的最珍贵的东西。

最后,一生光明磊落的白嘉轩,动情的对着一辈子的同事也是明争暗斗了一辈子的“好邻居”,已经失去全部记忆大小便失禁的鹿子霖说到:

子霖,我对不住你。我一辈子就做下这一件见不人的事,我来生再世给你还债补心。

有一些令人唏嘘,可有时那么的真实。人无完人,就算是一生如此磊落之人,却也是在自己最困难的时期,有过这样的事情,难怪如此重视黑娃改过之心。也是把我拉回现实,人无完人,更没有完全的正确。在这个世界上,没有什么事情是一定正确的,同样的,阴暗之事也终有一天要见到光明。

简单的书评到此住笔,感受不用写太多,说出即可。此刻感慨作者构思之深刻的同时,也是感叹精神力量之强大,天,亮了。

宋天伦

2019.1.16

ArcGis综合运用实践

准备工作

环境:windows 10 home
软件:Arcgis 10.5
数据:
(1)新乡市矢量边界
(2)包含新乡及周边的dem高程数据
(3)新乡市多波段合成遥感数据

环境:windows 10 home
软件:Arcgis 10.5
数据:
(1)新乡市矢量边界
(2)包含新乡及周边的dem高程数据
(3)新乡市多波段合成遥感数据

环境:windows 10 home
软件:Arcgis 10.5
数据:
(1)新乡市矢量边界
(2)包含新乡及周边的dem高程数据
(3)新乡市多波段合成遥感数据

在进行综合实验之前先总结一下小实验都做过哪些内容。

小实验内容总结:

实验四:
(1)dem数据掩膜提取
(2)投影转换
(3)矢量数据选择提取
实验五:
(1)专题图表达
实验七
(1)居住适宜性分析
(2)最短路径分析
实验八:
(1)学校选址适宜性分析
(2)最佳路径分析
(3)熊猫分布密度分析(插值)
(4)GDP区域分布图(插值)
(5)山顶点提取
实验九:
(1)地形指标提取(坡度、坡度变率、地形起伏度、地面粗糙度)
(2)地形特征信息提取(正负地形、山脊线、山谷线 -栅格提取)
(3)三维表面创建
(4)污物蓄水层分布可视化
(5)模拟飞行
(6)爆炸影响分析
实验十:
(1)克里金方法内插生成高程曲面
实验十一:
(1)地形提取(水文分析方法提取-山脊线、山谷线、正负地形)
(2)鞍部提取
(3)沟壑网络提取及沟壑密度计算

综合实验目标:

(1)制作山体阴影晕渲图
(2)提取山脊线
(3)提取山谷线
(4)创建研究区三维表面(TIN)
(5)在三维表面上显示山脊线、山谷线
(6)制作三维场景飞行动画

计划拓展:
(1)鞍部提取
(2)沟壑网络提取

准备工作:dem数据掩模提取

dem属于栅格数据,常常是长宽相同的正方形形状,想要准确的提取研究区dem数据首先进行掩膜提取。

在arcgis软件中打开dem数据和研究区边界栅格数据

实用掩模提取工具

设置输入的dem,按照矢量数据提取,生成结果如下:

任务一、晕渲图制作

首先,使用arcgis山体阴影制作工具制作山体阴影

生成山体阴影后,改变其透明度为60%,放在dem数据上层,再将dem数据配色修改为如下色块:

最终叠置生成山体晕渲图。

任务二、提取山脊线

在这里采用水文分析中的方法进行山脊线提取。

1)正负地形的提取。

(1)使用arcgis领域分析→焦点统计工具,利用领域分析方法以11*11的的窗口计算平均值。

(2)使用地图代数→栅格计算器。使用上一步进行过领域分析后的数据同源dem数据做减法运算

(3)重分类。使用重分类→重分类工具,首先分类给大于“1”的数据赋值“1”其余“0”,得出正地形;再给小于“1”的数据赋值“1”
其余“0” ,得到负地形。得出的二值化数据如下图。

2)山脊线提取

(1)洼地填充。首先处理洼地数据,避免流域分析过程中将洼地误提取为河流导致关系错误。使用space analyse工具→水文分析→填洼,输入原始dem数据,输出填洼后的dem数据。

(2)水流流向计算。使用水文分析→流向,对去洼地后的数据进行流向分析。

(3)汇流流量计算。使用水流分析→流量,分析水流汇流流量。

(4)汇流流量为零值提取。使用地图代数→栅格计算器,计算汇流流量图层==0的数据。

(5)进一步提取。会发现提取出来的线很多不是山脊线,此时需要进行一次处理,将求出的内容进行一次领域分析,使用3*3领域分析,求均值,使数据变得平滑。

(6)制作等值线。使用表面分析→等值线,制作50、100、200三种等值线,作为下一步提取山脊线的依据。

(7)提取山脊线。进入上一步数据的属性,打开山体阴影作为底图,配合山体阴影和等值线对数据进行重分类。结合直方图,发现在0.5附近出现了断点,因此选择在这个部分取值。

再结合晕渲图及等高线图,选择最终的中断值为0.546496469。

(8)重分类,根据中断值提取山脊线所在位置。使用重分类→重分类,将接近1的部分赋值1,其余为0。

(9)得到山脊线。将重分类后的结果和正地形相乘,去除错误山脊线。再将结果重分类,将属性不为“1”的值赋为“NO DATA”,得到山脊线。

任务三、提取山谷线

山谷线的提取方法同山脊线,只是对反地形(即使用一个足够大的值减去dem得到反地形,再求得山脊线,即正地形的山谷线)。
提过过程中的几个部分如图所示。

中断点

根据如图所示的直方图和等高线及晕渲图,选择中断值为:0.751669156

再进行重分类、将结果和负地形相乘,去除错误山谷线,然后将数据重分类,将赋值为1的值提取出来,就得到了山谷线。

任务四、创建研究区三维表面

1)打开软件ArcScna

2)加载50米等高线数据

3)创建区域TIN表面
(1)打开工具箱 3D ANALYSE→TIN管理→创建TIN
(2)输入等高线数据,选择软边,生成TIN

此时显示效果不够明显,可以右键tin数据选择属性,进入对高程夸张显示,在下图位置设置夸大倍率。

最终显示效果如图所示:

还可以对数据显示符号进行重分类,将分类个数选择为32,显示效果更为精细。

《西南联大》之八音合奏读后感

今日观看纪录片《西南联大》第一集,西南联大,感触良多,一个关键词则为西南联大之团结合作,互相退让令人感触良多。

本片的第一集《八音合奏》围绕北大、清华、南开三校长展开,从他们各自的经历、性格、理念、方略,探究三校可以成功“联合”的原因;同时,展现这“共同的经验和价值观”形成的时代背景和走向——爱国、进步、民主和科学的新思想在五四时期得以创造、发现和孕育,在抗战时期走向成熟。在这三大师的背后,实际上是整整一代中国知识分子上下求索的身影。

一代大师者也,三校合办,得有个家底,在战中北大、南开均损失惨重,主要家底来自清华,于是梅先生担当重任,三人中做事最多。

正如冯友兰撰写的《国立西南联合大学纪念碑》碑文写到的那样:“三校有不同之历史,各异之学风,八年之久,合作无间。同无妨异,异不害同,五色交辉,相得益彰;八音合奏,终和且平。”

1937年7月,平津陷落。8月 北京大学、清华大学和南开大学陆续南迁。

1938年,三校在昆明组建国立西南联合大学,直到1946年抗战胜利结束使命,各自北归。

西南联大成立以后,三位校长成为联大最高权力机构——校常委会的常务委员,而最年轻的梅贻琦成为联大的实际掌舵人。在空前的国难面前,没有职务高低,没有论资排辈,共同的目的是:坚持办学,联合到底。三个人各自的担当、退让、隐忍,成就了西南联大联合办学的成功。

梅贻琦、蒋梦麟、张伯苓三人,是中国大学办学第二次大进步的主要推进人选,

蒋梦麟《西潮》中记录了那段历史。

先后发生的九一八事变、卢沟桥事变,三校彻底沦陷,喜迁昆明,成立国立西南联合大学。

当时的惨痛,正如纪录片中所说“那时的事,很难用现在的语言说清”。

钱穆《师生杂谈》中记录了那段岁月。

蒋梦麟的“让”,张伯苓的“退”,是西南联大得以维系,成为中国抗战时期唯一一所坚持下来的联合大学。

西南联大,三人校委会,成就了当时一段佳话。

宋天伦

2019.1.15

参考文献:纪录片《西南联大》|《八音合奏》:清华、北大、南开,三校之合何以可能?

WordPress评论区爆炸特效

一直羡慕别人的博客输入有这样一个特效,想自己做一个,终于在这个博客找到了解决方案,于是尝试一下成功了!

WordPress优化:给博客添加评论输入特效

第一步:下载js代码,放入网站目录某文件夹下,我放在【/www/wwwroot/blog.songtianlun.cn/wp-content/themes/hestia/mouseclink】目录下

js文件:下载

第二步:在主题目录下footer.php文件中添加如下依赖

<script src="https://blog.songtianlun.cn/wp-content/uploads/2018/10/WordpressCommentBomb/activate-power-mode.js"></script>  
<script>  
POWERMODE.colorful = true; // make power mode colorful  
POWERMODE.shake = false; // turn off shake  
document.body.addEventListener('input', POWERMODE);  
</script> 

保存,测试一下,大功告成!

Linux 常用命令

Linux常用命令

端口占用查询

netstat -apn

Centos查看端口占用情况命令

比如查看80端口占用情况使用如下命令:

lsof -i tcp:80

列出所有端口

netstat -ntlp

程序归属(master为例)

locate  master | grep '/master$'

初始化(新安装命令生效)

sudo updatedb

进程管理

查进程

ps命令查找与进程相关的PID号:
    ps a 显示现行终端机下的所有程序,包括其他用户的程序。
    ps -A 显示所有程序。
    ps c 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。
    ps -e 此参数的效果和指定"A"参数相同。
    ps e 列出程序时,显示每个程序所使用的环境变量。
    ps f 用ASCII字符显示树状结构,表达程序间的相互关系。
    ps -H 显示树状结构,表示程序间的相互关系。
    ps -N 显示所有的程序,除了执行ps指令终端机下的程序之外。
    ps s 采用程序信号的格式显示程序状况。
    ps S 列出程序时,包括已中断的子程序资料。
    ps -t<终端机编号> 指定终端机编号,并列出属于该终端机的程序的状况。
    ps u 以用户为主的格式来显示程序状况。
    ps x 显示所有程序,不以终端机来区分。

杀进程

使用kill命令结束进程:kill xxx
 例:kill -9 324
   Linux下还提供了一个killall命令,可以直接使用进程的名字而不是进程标识号,例如:# killall -9 NAME

SSH使用

1 ssh远程登录服务器

ssh username@remote_ip 
#将username换成自己的用户名,将remote_ip换成远程服务器的ip地址

2 将文件/文件夹从远程服务器拷至本地(scp)

scp -r username@remote_ip:/home/username/remotefile.txt 

3 将文件/文件夹从本地拷至远程服务器(scp)

scp -r localfile.txt username@remote_ip:/home/username/

4 将文件/文件夹从远程服务器拷至本地(rsync)

rsync -v -u -a --delete --rsh=ssh –stats username@remote_ip:/home/username/remotefile.txt .

5 将文件/文件夹从本地拷至远程服务器(rsync)

rsync -v -u -a --delete --rsh=ssh --stats localfile.txt username@remote_ip:/home/username/

6 连接远程ssh非22端口的服务器(ssh端口为12345)

ssh -p 12345 username@remote_ip

7 远程拷贝ssh非22端口的服务器文件(ssh端口为12345)

scp -P 12345 local_file username@remote_ip:remote_dir

scp -P 12345 username@remote_ip:remote_file local_dir

scp -o port=12345 username@remote_ip:remote_file local_dir

scp -P 12345 -r local_dir/.* username@remote_ip:remote_dir

拷贝目录,-r是将目录下的目录递归拷贝。”.*”是将隐藏文件也拷贝过去。需要先在远端创建好相应的目录。

sftp用法

sftp -o port=12345 username@remote_ip:remote_dir

Docker

Docker stop停止/remove删除所有容器

    $ docker ps // 查看所有正在运行容器
    $ docker stop containerId // containerId 是容器的ID

    $ docker ps -a // 查看所有容器
    $ docker ps -a -q // 查看所有容器ID

    $ docker stop $(docker ps -a -q) //  stop停止所有容器
    $ docker  rm $(docker ps -a -q) //   remove删除所有容器

批量删除Docker中已经停止的容器

方法一: 

#显示所有的容器,过滤出Exited状态的容器,取出这些容器的ID, 

sudo docker ps -a|grep Exited|awk '{print $1}' 

#查询所有的容器,过滤出Exited状态的容器,列出容器ID,删除这些容器 

sudo docker rm \`docker ps -a|grep Exited|awk '{print $1}'\` 

方法二: #删除所有未运行的容器(已经运行的删除不了,未运行的就一起被删除了) 

sudo docker rm $(sudo docker ps -a -q) 

方法三: #根据容器的状态,删除Exited状态的容器 

sudo docker rm $(sudo docker ps -qf status=exited) 

方法四: 

#Docker 1.13版本以后,可以使用 

docker containers prune 命令,删除孤立的容器。 

sudo docker container prune #删除所有镜像 

sudo docker rmi $(docker images -q)

实用指令

统计当前目录下所有文件及文件夹大小

    du -h --max-depth=1

创建任意网站镜像

wget -mk -w 20 http://www.example.com/

//命令行中的20代表间隔20秒下载一个文件,这样可以避免网站的访问过于频繁。你可以调小点,但当你是备份别人的站时,还是为别人的服务器考虑下吧。

问题解决

git “ssh-add ~/.ssh/id_rsa” Could not open a connection to your authentication agent问题解决

使用git,添加私钥时发生如下错误

ssh-add ~/.ssh/id_rsa 输出错误: Could not open a connection to your authentication agent

解决此问题的方法是执行下 eval `ssh-agent -s 然后再次执行ssh-add ~/.ssh/id_rsa就可以顺利执行了

vps使用Shadowsocks搭建vpn

Create a SOCKS5 Proxy Server with Shadowsocks on Ubuntu and CentOS 7

简介

编程需要经常需要翻墙,当年的我天真无邪上了不少当,每次的 vpn 经历无一不遇奸商!于是下决心搭建自己的 vpn!就在今天,vpn 终于搭建成功,在这里分享一下成功的喜悦同时贴出自己搭建的过程仅供参考!

服务器端配置

环境

vps 提供商:阿里云 系统:CentOS 7.3 节点:香港 峰值带宽:35MB

方法一

第一步:远程登入服务器,运行如下代码

wget --no-check-certificate -O shadowsocks-all.sh https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks-all.sh
chmod +x shadowsocks-all.sh
./shadowsocks-all.sh 2>&1 | tee shadowsocks-all.log

第二步:选择一种脚本

Which Shadowsocks server you'd select:
1.Shadowsocks-Python
2.ShadowsocksR
3.Shadowsocks-Go
4.Shadowsocks-libev
Please enter a number (default 1):

在这里我选择了第一个 python,输入 3,回车!

第三步:输入密码和端口,回车!

第四步:等待安装完成!

安装完成后的标志如下:

Congratulations, Shadowsocks-Python server install completed!
Your Server IP        :  *************************
Your Server Port      :  ****
Your Password         :  ********
Your Encryption Method:  aes-256-cfb
Your QR Code: (For Shadowsocks Windows, OSX, Android and iOS clients)
 ss://YWVzLTI1Ni1jZmI6c290aWx1ODM4OEAxNDkuMTI5Ljg5LjIxMjo4Mzg4
Your QR Code has been saved as a PNG file path:
 /root/shadowsocks_python_qr.png
Welcome to visit: https://teddysun.com/486.html
Enjoy it!

方法二

shadowsocks Python 一键安装

获取脚本

使用 root 用户登录,运行以下命令:

wget --no-check-certificate https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks.sh
chmod +x shadowsocks.sh
./shadowsocks.sh 2>&1 | tee shadowsocks.log

安装完成后,脚本提示如下:

Congratulations, shadowsocks install completed!   
Your Server IP:your_server_ip   
Your Server Port:your_server_port   
Your Password:your_password   
Your Local IP:127.0.0.1   
Your Local Port:1080   
Your Encryption Method:aes-256-cfb   

Welcome to visit:http://teddysun.com/342.html   
Enjoy it!

卸载方法:

使用 root 用户登录,运行以下命令:

./shadowsocks.sh uninstall

单用户配置文件 Sample

配置文件路径: vi /etc/shadowsocks.json

{  
    "server":"0.0.0.0",  
    "server_port":8989,   
    "local_address":"127.0.0.1",  
    "local_port":1080,  
    "password":"yourpassword",  
    "timeout":300,  
    "method":"aes-256-cfb",  
    "fast_open": false  
}

多用户多端口配置文件 Sample

配置文件路径:

vi /etc/shadowsocks.json
{  
    "server":"0.0.0.0",
    "local_address":"127.0.0.1",
    "local_port":1080,
    "port_password":{
         "8989":"password0",
         "9001":"password1",
         "9002":"password2",
         "9003":"password3",
         "9004":"password4"
    },
    "timeout":300,
    "method":"aes-256-cfb",
    "fast_open": false
}

使用命令

(2015 年 08 月 28 日修正):

启动:/etc/init.d/shadowsocks start
停止:/etc/init.d/shadowsocks stop
重启:/etc/init.d/shadowsocks restart
状态:/etc/init.d/shadowsocks status
写入自启echo "ssserver -c /etc/shadowsocks.json -d restart" >> /etc/rc.local
查看日志less /var/log/shadowsocks.log

说明: 从 Shadowsocks 2.6 开始,你可以直接在后台运行 Shadowsocks,无需 Supervisor 。 这样省掉了 Supervisor 进程占用的内存。

ssserver -c /etc/shadowsocks.json -d start
ssserver -c /etc/shadowsocks.json -d stop
ssserver -c /etc/shadowsocks.json -d restart

查看连接的人数

Ubuntu:apt-get install lsof -y
CentOs:yum install lsof -y

假设服务器端口 1080, 查看连接数 sudo lsof -i -n -P | egrep -c ':1080.+ESTABLISHED'

查看连接列表

sudo lsof -i -n -P | egrep ':1080.+ESTABLISHED'

监控

利用脚本查看连接列表,并添加定时任务 新建目录 mkdir test 里添加以下脚本

#!/bin/bash
#
# File: port-ip-monitor.sh
#
# Created: Wednesday, August 27 2014 by Hua Liang[Stupid ET] <et@everet.org>
#

filename="port-ip-monitor.log"
regex="8888"  # monitor 你的端口

date +"[%Y-%m-%d %H:%M:%S]" >> $filename
netstat -anp | egrep $regex | grep -E "tcp.*ESTABLISHED" | awk '{print $4, $5}' | cut -d: -f2 | sort -u >> $filename

编辑 crontab -e 里增加 * (cd /test/ && bash port-ip-monitor.sh) 启动服务 service crond start 然后我们在/test/里就看到 port-ip-monitor.log 了 查看日志 less /test/port-ip-monitor.log

参考链接: https://shadowsocks.be/1.html http://everet.org/shadowsocks.html

客户端

第一步:下载客户端登陆

安卓、windows 的客户端均已上传至本站资源共享站,苹果可在应用商店搜索shadowsocks下载安装即可。

安卓客户端:下载

windows 客户端:下载

第二步:客户端配置参数

以 windows 配置为例,首先打开软件(若在 c 盘下需以管理员身份运行),之后填写相关参数,完成。

之后在任务栏右键,选择启动系统代理

大功告成!

主要参考文献:

WordPress鼠标指针样式自定义

继续折腾自己的博客!

今天要做的事自定义鼠标样式!需要做的是增加css样式!

第一步:选择鼠标样式,最好是两个状态,正常和链接,即普通的箭头和小手

第二步:将样式的cur文件上传至服务器

第三步:进入后台→主题→自定义→额外css

第四步:在输入框输入如下代码

/** 鼠标样式 开始**/ 
/** 普通指针样式**/ 
body {
cursor: url(https://blog.songtianlun.cn/wp-content/themes/hestia/mouseclink/normal.cur), default;
}

/** 链接指针样式**/ 
a:hover{cursor:url(https://blog.songtianlun.cn/wp-content/themes/hestia/mouseclink/link.cur), pointer;}

/** 鼠标样式 结束**/

注:根据自己的实际情况修改其中的链接部分,我使用的鼠标样式可以从中获取

第五步:发布,就可以看到效果啦!

本文参考文章:wordpress指针样式自定义——美化你的blog

更多鼠标样式下载:鼠标样式

WordPress鼠标点击出现爱心

同上文,眼馋各大博主博客令人眼前一亮的设计,想要给自己博客也打扮打扮,今天就来弄弄鼠标点击出现爱心的效果吧!

采用了代码方式实现,很简单:

第一步:在主题根目录创建js文件,写入如下代码:

(function(window,document,undefined){
var hearts = [];
window.requestAnimationFrame = (function(){
return window.requestAnimationFrame ||
window.webkitRequestAnimationFrame ||
window.mozRequestAnimationFrame ||
window.oRequestAnimationFrame ||
window.msRequestAnimationFrame ||
function (callback){
setTimeout(callback,1000/60);
}
})();
init();
function init(){
css(".heart{width: 10px;height: 10px;position: fixed;background: #f00;transform: rotate(45deg);-webkit-transform: rotate(45deg);-moz-transform: rotate(45deg);}.heart:after,.heart:before{content: '';width: inherit;height: inherit;background: inherit;border-radius: 50%;-webkit-border-radius: 50%;-moz-border-radius: 50%;position: absolute;}.heart:after{top: -5px;}.heart:before{left: -5px;}");
attachEvent();
gameloop();
}
function gameloop(){
for(var i=0;i<hearts.length;i++){
if(hearts[i].alpha <=0){
document.body.removeChild(hearts[i].el);
hearts.splice(i,1);
continue;
}
hearts[i].y--;
hearts[i].scale += 0.004;
hearts[i].alpha -= 0.013;
hearts[i].el.style.cssText = "left:"+hearts[i].x+"px;top:"+hearts[i].y+"px;opacity:"+hearts[i].alpha+";transform:scale("+hearts[i].scale+","+hearts[i].scale+") rotate(45deg);background:"+hearts[i].color;
}
requestAnimationFrame(gameloop);
}
function attachEvent(){
var old = typeof window.onclick==="function" && window.onclick;
window.onclick = function(event){
old && old();
createHeart(event);
}
}
function createHeart(event){
var d = document.createElement("div");
d.className = "heart";
hearts.push({
el : d,
x : event.clientX - 5,
y : event.clientY - 5,
scale : 1,
alpha : 1,
color : randomColor()
});
document.body.appendChild(d);
}
function css(css){
var style = document.createElement("style");
style.type="text/css";
try{
style.appendChild(document.createTextNode(css));
}catch(ex){
style.styleSheet.cssText = css;
}
document.getElementsByTagName('head')[0].appendChild(style);
}
function randomColor(){
return "rgb("+(~~(Math.random()*255))+","+(~~(Math.random()*255))+","+(~~(Math.random()*255))+")";
}
})(window,document);

第二步:修改主题目录下footer.php文件,引入代码

<script type="text/javascript" src="https://***/wp-content/themes/hestia/mouseclink/clink.js"></script>

第三步:清缓存,刷新!

本文参考了下列博文内容:

鼠标点击出现爱心js特效代码分享