云上git服务器

使用gitosis用户管理

→安装

首先,切换python2来安装
yum install -y python-setuptools 
git clone git://github.com/res0nat0r/gitosis.git 
cd gitosis 
python setup.py install 
然后,修改/user/local/bin/gitosis-三个文件的第一行,python后面加2.7
经过上面的修改,大环境中python版本仍为3.6,而gitosis会自行应用2.7

→环境搭建

本地公钥生成,做为管理的初始公钥
生成公钥命令:ssh-keygen -t rsa
注意生成后把
.pub的结尾,把@后面数字开头或者有_的都去掉,本人直接改成@localhost.
为此,我还去改造了命令提示符,但生成的公钥匙结果依然依赖hostname
https://www.cnblogs.com/xiaofeiIDO/p/8037331.html
并使用

  1. su - gitfarmer
  2. gitosis-init<~/new.pub
上面这条命令2,后台会执行一系列操作,比如生成一个gitosis-admin的仓库,把new.pub中的内容移至仓库的keydir目录中,同时公钥文件名称与仓库中的gitosis.conf里的memebers名一致。 最后,由于公钥匙是gitfarmer用户下生成的,所以,另建立了manage_instance目录,在里面
  1. git clone gitfarmer@127.0.0.1:repositories/gitosis-admin.git
此时,管理已经具备功能而且是在服务端本地来管理,安全分离。

客户端应用

→生成应用者的公钥

https://www.jianshu.com/p/ba6efe6bf60d 一般客户端为window且安装了git bash。下面就是在git bash中生成自己公钥匙的过程。 把id2cvm.pub上传到keydir中,然后,修改gitosis.conf增加你要管理的代码仓库。 然后,git commit. 事实上发现,通过命令行建立的好像并不被git bash接受,最后,还是用了git gui中的工具,生成了默认的id_rsa.pub才有效果。 ssh -Tv gitfarmer@hostname是很好的工具,但有时你发现没有反应这是因为你的服务端并未设置欢迎语录而已,需要看日志中是否22端口已经登录成功。并且要看最后的返回值是否为0来证明测试成功。

→在服务端建立裸仓库来对应客户端

原以为gitosis会代劳这个动作,实践发现需要自己来,有些帖子说的不对。

→客户建立仓库关联,推送代码

本人在git bash中操作系列命令:
mkdir BL_main

cd BL_main

git init

vim readme.md

git add .

git commit -m "first import"

git remote add origin gitfarmer@182.XXX.181.XXX:repositories/BL_YTF_prj.git

git push origin master
最后一条会跳出让你输入服务端登录ssh密码,并且此前在服务端~/respositories/已经建立了相应的裸仓库。

→在客户端多个公钥匙对应多个仓库的管理

在windows下,git bash会找到用户目录下.ssh/config文件来判断,如果你配置了分支,就会根据你请求的@后面值来查找config中的HostName来匹配
$ cat ~/.ssh/config 
HOST mycvm
HostName 182.XXX.181.XXX
User gitfarmerXXX
Port 22
#PreferredAuthentications publickey
IdentityFile C:\Users\user\.ssh\id_rsa

HOST github
HostName github.com
PreferredAuthentications publickey
IdentityFile C:\Users\user\.ssh\id2cvm
上面的mycvm就是你命令中要给出的
ssh -Tv gitfarmer@mycvm
 
如果测试成功,就说明分支判断了,支持多公钥管理

附录

https://blog.csdn.net/harry_haiwei/article/details/77714651 https://www.cnblogs.com/yshyee/p/4288465.html https://www.webyang.net/Html/web/article_257.html 原理指导
把用户gitfarmer加入到sudo组中: https://blog.csdn.net/qq_39290007/article/details/81125750 同一主机多个git ssh公钥配置: https://blog.csdn.net/yigehui12/article/details/89333264

读一本安全的书—-《清单革命-持续,正确,安全地把事情做好》读书笔记

本书的作者是阿图·葛文德,他是2010年《时代周刊》“全球100位最具影响力人物”榜单中的唯一一位医生。他是位外科医生,能握手术刀,妙手著文章。他通过大量的医学案例与研究发现,尽管医学科技愈发昌明高超,医生技能水平日趋完备,却仍不能避免各类医疗差错、误诊误治的发生。例如,有近30%的中风病人、45%的哮喘病人和60%的肺炎病人,未能得到妥善治疗。所以,他发起一项影响深远的行动—即清单革命。

为什么需要清单革命

这虽然是一个医学人士写的著作,文章里面充斥了一些医院救治生命的场景。但是当我读到作者对错误的深刻剖析时,就已经抛弃了试读了几页的心态,而对其奉若至宝,对作者的观点也是深以为是。
首先,错误是分为:无知之错和无能之错的。

人们犯下无知之错是一个人在未正确掌握知识的条件下所发生的错误,而无能之错是尽管掌握了正确的知识,却因未能正确使用而出错。很显然,前者可以被原谅,后者却无法被谅解。
人们犯无能之错的原因有两个:
第一:人并不能把所有的事情都记住。人往往在高压的情况下很容易忘掉一些事情。
第二:记忆和经验会让人麻痹大意。我们凭借自以为熟练的经验和记忆,麻痹大意地跳过了一些基础但重要的步骤。而清单可以帮助我们去避免犯无能之错。
了解到犯错可能是“人之常情”之后,再次“升维”深入论述一下,犯错中的两种情况:事情的复杂性与做事没有责任心。当今社会在技术力量复杂的专业领域里,“复杂性”这一点导致的失败,远比没有责任心所致失败要多得多。当工作的复杂性远超出个人正确并稳定发挥个人技能的范围时,即便最能干的超级专家都无法避免错误的发生。

我们的目标却是持续,正确,安全地把事情做好。
那么就是要进化,既然学会使用和制造工具是人类进化的标志,那么这个工具,是什么呢?系统吗?软件吗?可大可小,为了不限制想象力,我们抽象的称它为“清单”。
同时,管理的入口是基于“不相信”或者说“承认”。承认任何人或者团体做事情不是万能的,不出错的。也不相信每个人都是有责任心的。于是能让人们“于无声之处听惊雷”的反应机制的设计也是“清单”。

进阶到“清单”的应用层

为了清单真正发挥作用,作者总结了几个原则,分别是:
第一,设计要简单高效可测。
第二,执行上要有明确的检查节点。
第三,编制者要在操作-确认和边读边做这两种清单类型中做一个适合具体情况的选择。
第四,清单不能太长。
第五,要不断更新。
事实上,让领域内的资深人员编制是前提,因为,这样会保证专业的术语应用,同时,在实践中接受检验。
执行上上要有明确的检查点是说在执行清单的时候,提前安排某个节点或者某个情况下要使用指定的清单。比方说,你开车的时候,突然仪表盘上的电瓶灯亮了,这个时候你可能要停车,拿汽车手册翻到电瓶仪表灯亮的那章看看接下来该怎么样去处理。仪表灯亮就意味着是一个检查点。要让清单用起来,就要设置这样的检查点,告诉我们什么时候使用这个清单。另外清单要及时更新,清单要使用,必须要不断地进化来符合实际情况。

书中的例子:在医疗界,阿图医生所推行的手术安全核查清单,已演化为一场全球性行动,因为他真的使患者手术医学专用期的病死率由原来的1.5%降低为0.08%,下降了一倍!与之相关的并发症发生率,也降低了四个百分点。每天早晨,当笔者在手术室开始工作时,核查核对已成为一项制度,必须执行。
自己做为一个软件工程师,从软件工程的层面去解析,做的一个个系统,里面有一个个模块,模块中一个个todo list……最后才是一行行代码。开发经验越丰富的人,代码会更健壮,出bug的机率越少。所以,国内大的互联网公司,一线开发人员上岗前一定会学习“老鸟儿们”(经验丰富的人员相对于菜鸟而言的)写的编程规范,同时在coding过程中做到一行代码,十行注释要求,还有的公司在实行结伴编程。颇像汽车拉力比赛中导航员和车手的关系。一个手持清单,一人执行操作。

清单背后的意义

清单本质上体现了外包和可靠,梳理和概括。外包就是指我们把大脑需要记忆的工作,外包给清单。清单的精髓不是罗列注意事项然后去打钩,而是改变你的价值观,任何时刻都要清醒的认识到主角仍是人。事实上它还有多方面的价值,清单在指导人们学习方向也更有帮助,擅长做清单的人,学习中做笔记也一定是高手。很多人不喜欢用清单的执行标准程序,觉得丧失了灵活性,会变得死板,但是恰恰相反,使用精心设计的清单不会让你变得死板,他们会帮助你节约有限的脑力,不让你的大脑被繁杂的检查项目所占据,而是释放出来处理更加困难的问题。这里错用一句老子的“绝学无忧”,可能表达的更好。清单不是一种僵化的教条,而是一个实用的支持体系,使用清单反而会带来最大的灵活性。
本人也推荐一款软件,来实操清单,就是印象笔记。你可以用传统方式使用它,也可以结合日历来做计划安排,分享给团队等等。

“上士闻道,勤而行之”相信那些高效能的人士或行业已经觉醒,从上层到基层都开展了相关的活动。作者的调研来看,美国的航空和建筑业是最为受益于清单的。而医疗行业也正在变革。
当行业践行它时,一定会保障到行业的持续安全生产。
当清单出现在更多人的观念中时,它足够让一个国家有更好的未来。让我们开始清单吧。

他们的武侠之倚天屠龙记

金庸—人生如戏

丧儿之痛
大儿子在美国自杀之时,金庸先生正在香港连载武侠小说。中年丧子的悲伤和痛苦,还有深深的自责。你又想到什么情节?
想到张翠山被逼自杀,谢逊得知的心如刀割。张三丰目睹这一切的悲壮。不得不说,金庸笔下的好父亲形象太少了。虽然我读的不多,但看过的杨过,张三丰,令狐冲,胡一刀,他们都有着一个撒手人间的父亲或善或恶。也许正是父爱少,命运的多舛,让英雄们找到自己的救赎。

李连杰—戏如人生

命运张三丰
第一任老婆是练武时师姐–黄秋燕,第二任老婆是事业起步时遇到的香港美女,外表强大,内心温婉的女生意人–利智。你会想到什么情节?
如果你看过两个女人的相片,你会更准确的发现答案。
只能是周芷若和赵敏。李连杰两段刻骨铭心的爱情,也有着两双性格迥异的女儿。
前一双女儿,前妻所生,北京成长,美国上学,学霸。
后一双女儿,利智所生,社交名媛方向培养。

父亲节的故事

恰逢夏至,日全食,父亲节,周日。还出了一个小故事。

下午4点左右,我父亲微信说,现在北京看不到日全食了,深圳还可以观测到。看到微信后上衣也没有穿,拿起太阳镜夹片,唤了家人一声,就拖上鞋上飞跑到顶楼天台。儿子也迅速跟了上来。果然,已经有两三人在天台看。但他们不得要领。用太阳镜直视太阳是很难看到小牙的。我知道只有用手机反射太阳,同时,再用太阳镜看手机屏是个好办法,这下子,多多首次看到了那个美妙的小牙。有些激动人心。其它人也效仿我们的方式来看这十年一遇的天文奇观。但我们来晚了,已经是日偏食的复圆阶段了。


fqj_20200623140241

fqj_20200623140334

fqj_20200623140406


非常开心能和孩子,老婆拥有一个共同的,有关日全食的记忆了。当回到家里,记忆也被拉回到N年前,自己正和多多一样大。无聊的下午,爸爸也说有日全食,可是怎么也看不到,没有墨镜,找了有色玻璃看,最后有人说,用水盆来反射,于是打了水,果然,这下子看到了。原来太阳和月亮和地球有着如此的约会。也是父亲点燃了一颗未来科技工作者的好奇心。如今,父亲老迈,而我不在身边,可是又是他让我们天涯共此刻。
思念父亲的心情,也一直持续着,其实并不在意今天如何过的有意义。但一件小事却让我重新审视对多多的教育。多多9岁,三年级,作业多,每晚效率低,几乎磨到9点多,才能收书包。

睡觉前,我已经上床,多多离蚊香近,于是让他去打开。可是,小儿一心玩乐高,回复让我自己去。我执意让他去,同时又灌了些“鸡汤”。如何为孝,我又如何做一个好儿子的。如果是他爷让我去做一件力所能及的事,我一定立即执行。最后,我也搬出了“今天可是父亲节”的话束。结果是让人失望的。我当然很生气,但高情商的我,不会出手,但是基于他最近的表现,我决定了一系列的措施。我最后一次警告他,“首孝悌,次见闻。做不到孝,学太多知识也是没用,快去执行点蚊香,不然你就会后悔的。”多多的性格有点倔。所以,我跳下床把他的书包清空,把书本放到我上班用的包里。并告诉他我的决定,即明天周一不让他上学了。作业也不用写,反省一天,帮助妈妈做家务。虽然,他知道我来真格儿的了,他表面平静,但我的举措是撼动了他。他知道我言出必行,于是,去讨好他妈,告诉我的决定。当然,已经没有用了。虽然期末考试快到了,缺课会让他落下很重要的知识。但我真的认为,学校只是解决了教育的一部分,而重要的德育,还得父母亲自来。妻子也支持我了。第二天,是漫长的一天,老婆在家里和他斗法。上午的时刻,他的脾气还挺硬,让他下楼锻炼他坚决不去。到了下午,据老婆反映,他开始配合了,帮做了很多家务,甚至还炒了两盘菜………。

于是,这篇文章又成了我的教育日志。要说禁足小朋友在有人权的国外可能是犯罪,而且,我知道此策虽好,但不能持续。但让他每天中午放学回家后,抄写《弟子规》。他无法拒绝,并且,能再次回到学校,应该也会珍惜读书机会了。


fqj_20200623140417

fqj_20200623140431

人是植物

十年树木,百年树人。

miles to go

动物对环境依赖相对于植物更少。猎豹有速度,狮子有矫健,狼群有耐力,野狗有团队,而人要想活的有意义,当然也需要“枝枝蔓蔓”。记得《士兵突击》中的成才,离开老A说:为了成才,我把自己砍的太干净了,要回去找我的枝枝蔓蔓了。

你要像植物生长一样,对自己不断的变革,终生学习。努力去营造有阳光和水分的土壤,如果没有就用耐心等待到阳光,但当有了阳光时就要灿烂,如果你却错过机会,那么你的命运可能是,永远在阴暗中成为一株风雨中的弱小杂草。
同时,既然人是植物,那么人就是脆弱的。做人,做事,在社会中需要如履薄冰。同时对周边环境实时检测。不是让你与人斗,厚黑。而是让你做一个像树生活的人而不是一颗逆来顺受的生存中的小草。

根深不怕风摇动,树正不怕月影斜。

这句也是我太爷墨宝中的句子。once more.

画水无风空作浪,绣花有色不闻香。
但将冷眼观螃蟹,看你横行到几何。

我也期望我的孩子们,去长成参天大树吧,去成为栋梁吧。
很久以前,有个叫李阳的人教英语,火极一时,那股劲是在现在的英语教育机构感觉不到的,我也买了本《疯狂英语》资料,用walkman听学。
其中有一个英语短文,一匹马在雪夜里和主人前行。
马儿驻足,轻摇驼铃,与主人对话。
当然,我印象最深的只是最后一句。

and miles to go before I sleep.

也正是这一句,让我百度到了它。

弗罗斯特《雪夜林边驻马》

是呀,当了父亲后,我知道,人生停顿听蝉呜,and then.
I promises miles to go before I sleep.

祖传墨宝开源

我太爷是位教书先生。福薄未得见面,但只能通过其墨宝来穿越受教。古人用功之深,吾辈不及二三。这毛笔小楷不啻于一些当代书法家的。少说也有五,六年的功夫。如今,我将其扫描编辑成pdf。开源给宋氏家庭的亲人和朋友,当然仁者见之谓之仁。大家喜欢只管下载,打印,临摹。用太爷的文字来表达说:

宝珠玉不如宝善论,善为至宝。

其文开头的部分硬笔书法是我爷爷写的。看来,中华文化不断流,吾家幸甚。

 

IMG_3425 IMG_3422 IMG_3421 IMG_3420 IMG_3419

喜欢的人可以在左侧菜单中的特色下载中找到,也可以在点击下面链接。

新版墨宝 (下载338105)

上面链接如果比较慢,就点击如下百度网盘链接:

https://pan.baidu.com/s/1xs2EbWao3Vp2qmtsWRxDkg

提取码:2z3h

在过去写给未来孩子的信

此文送给多多8岁生日,是爸爸在过去你还未出生时写下的。希望你过的每天都快乐并且有意义。我们一起加油吧!


 

2011年2月25日
16:27
这天也许是普通的一天,但是同时你让大家知道了你在孕育中.
这让上海,北京,分隔两地的,你的爸妈.倍儿感动.那天我冥冥中无法入眠,因为
你妈说,她买了个测试怀孕的东东,因为,好久没来事了.(至于啥事等会儿,我跟
你解释)反正,我也是对着电脑,无法入睡,便开始写作至凌晨4点,当我被7点,你
妈的电话叫醒时,我还伏在桌上.这个消息,让我很想高喊,想飞上天.不过,旁边
还有同事在睡觉,我便把这份欣喜放到了心里的深处.我要记得这一刻,就不如把
它写下来,并把它用自己的方式记录.所以,这是永远的,新的开始.你的,我的,
大家的…

要想让一个孩子,变成大人,那就给他一个孩子…
如果要想加快这个进程,那就再来一个。

事实上,上帝怕我成熟太慢,后来又给我一个女娃子,让我成了女儿奴。当然也没有想到你当哥哥情况,但对你的期望现在多了一条,就是再当个好哥哥。

当你差不多明年5月出来的时候,
你要首先感谢你妈,她很不容易的,开始时一个人在北京,怀着你,还天天上班,即
使嗜睡,呕吐,还要猛吃食物来补充营养.并不顾对少女苗条体型的留恋,总之,她
的一切都牵动着五个人的心,你外公,外婆,爷,奶还有我.孕育你出生,就是一家
之望,不容有失.本来我想担任这个任务,后来考虑了一下,还是算了.

希望你以后是个健康个孩子.小学时品优学可以不优.素质教育从小做起.
至于原因,你得9-10岁时才能整明白,在这期间,我得培养你的动脑筋,爱读书的
兴趣.不会有很多学业的压力.我不像你爷和奶一样教育我,我的童年基本上被我
的童年给毁了.到了你上13-14岁时,你应该有一项天赋被我发现了,并起步了.虽
然,你爸妈没啥太多艺术细胞,但生你时,上帝不会打盹儿的.如果你是个男孩,可
能会爱足球,没办法,老鼠的孩子会打洞.但你不能成为职业球员.因为,别看他们
风光,出名的还是不多,而且,人运动的黄金时间一般只能是4年左右,此后,你还
是需要其它的技能来打拼.更重要的一点,你不能踢职业足球,因为你在中国,就
算进了国足,算了,还是进行下一话题.该上初高中了,这时你应该有些欲望,那
就是通过努力,达成目标的想法.上好的高中,让你爸妈都有面子,并且,还能少
操点心.因为,基础教育还是很重要的.

学历虽然也只是一纸黑字,但还是要有,既然如此,把它搞定不就得了嘛.也不用
太高,研究生就OK了.学久了,我还怕你傻了呢.我还是愿意你成为学霸的,毕竟
在你们的时代里,只要你主动,就会有资源,有资源了就会被推向更高阔的天空。

在我毕业多年的时候,才悟出来教育其实就是一个骗局,在里面你什么也学不到,
除非自己思考,主动追求.你老爸我就是受害者.幸好,我悬崖拉马,没有越陷越
深,阿门,上帝,耶酥啥的~~
大学时,你会找到真正的方向,但你要学会聆听自己的心声.发现,你最喜欢,最
专注做的那件事,和做事时的那个感觉.
if (boy==you)

IT术语,意思是如果你是个男孩

读大学时,你自由了,警告你,什么不敢尝试,就去做什么,因为,年轻是你的本钱.
我当然会有些监管,你是否挥霍无道.处了对象,也别掖着藏着,爱情,选修一下吧.
不然,你到社会还是不解风情,甚至,不懂女人就会很受伤~~~.
的瑟了差不多了就多看几本书.大一至大三,每年,我都会给你开出书单,当然是
有考核的.看完书后,要给我讲一便.
交一帮哥们儿去,但要有几个靠谱的,将来,他们可能是你可以倚重的人。
if (girl==you)

IT术语,意思是如果你是个女孩,这块的内容可以让佳音听听

总不能非主流,早恋吧。这个要你妈多费心了。学习她是相夫之术,你妈眼睛
就是独,看人很准,全方位评估。
我就试过被施三十六计,不过,你学个十计就够用了。
但注意,想同时拿毕业证和结婚证是不允许的。你还需要经过一下社会的诱惑
和考验,方可知道何是爱情。

进入社会后,大的原则保持住.
那就是不吸烟,不酗酒,不涉黄赌毒,不涉黑,不进娱乐圈.
好像说的比较严重,因为正规流水线下来之后,世界观,价值观都成型了,沾不着
这些,但天知道,你们那时代,世风日下会到什么程度。

附记:
只所以有if boy or girl,因为当时你未出世。而现在又有仙女下凡到我家了。你已经快上了三年级,感谢一切。

我变成了另一个基类(IT面象对象开发术语),需要初始化好成员,并且析构函数声明成virtual,防止内存泄露,最好来几个纯虚函数,以免扩展性差,尤其是今生未了之梦想……,就不玩模板了,他的人生自己设蓝图。

同时当了爹,也就是成了鸡肋哈,虽然说地位低了,并且父母不再唠叨了,但负担大了,要承上启下了。生活更有意义了,以前不屑于当一个挣钱机器,但现在你会为了几斗米折腰,也会为了失掉一个职位而担心。所以,我们家人一起相互理解,共同努力吧!

80后的40岁

再过几个月,80后的第一批“一支花”将隆重上岗。

再过几个月,年代星球上,生活和居住在80区的人们将迎接第一缕曙光,能率先观测到这一“百年不遇”,“一生一次”的奇观的是出生在1980年人

再过几个月,盛大的,持续十年的大型原创征文比赛将拉开序幕,征文的题目要求是:不限篇幅长短,不限文体语言,只要与80的40有关系即可。大赛组委会将在未来十年内评定论证,并在“知天命”节点给予颁奖。

没错,我是在夸大某个时间节点的意义,但纵观古代至今,明月,思乡,秋凉,蝉呜……,贤可往,我亦可追。80后们用你切身的纪念,不为名利,只为共鸣和情怀。赵雷会不会给四十岁的女人再写一首歌不知道,但可以确定每个喜欢文学的都应该留一篇与自己不惑之年的小文。再看了《飞驰人生》后,我这只小花,更有表达的冲动,开始表演吧。

相比于其它年代,80后文人算是寥寥的,这事实上有些必然,80后是一批社会主义生产线的产品。没有了“大江大河”的背景。让他们用想象的经历和情感去打动有真实经历的前一代人?还是给眼球经济下,读图时代的后一代人描绘他们懂的东东?有点玩笑吧。
但我坚信如果我们80后作家坚持写作,20年后会有一茬文人。最近,韩寒,刘慈欣比较火。他选对了方向。写生活的好作品都是需要根植于自我的经历的。PK老江湖?况且上一代的老革命没有交班的意思。而科幻是他们早早放弃的领域。而城市化的人们,又最想抛弃钢筋水泥去看看外面空间和宇宙。流浪地球很不错,点赞。

当今时代,每个擅长悟的人都在努力寻找属于自己的独特性。然后换钱,然后欺世盗名,再放任自我,沉沦在圈里。当然后半句是我style的,能习惯最好了。青黄不接,百废待兴,困兽犹斗。庆幸80后是过来人,但需要反思浮躁的过往。近日,偶得我太爷爷的一本线装书,实在是感叹先人之用功。毛笔小楷,隽永秀美。同时,书中的言论也尽是国学经典。以下摘录一二吧。

兄弟同胞一母生,祖辈遗业何须争。
一番相见一番老,能再几时为弟兄。

宝珠玉不如宝善论,珠玉有毁也,而善为至宝……

这块我还特意严谨去百度上找找,只看到一条是如下:

【晋商家训】
宝珠玉不如宝善,友富贵莫若友仁。——语出灵石王家大院楹联。

异曲同工,这也和犹太人教子的价值关一致。生命为善,钱财在外。妻子也把线装书页页扫描,让它成为育子利器,精神支撑。看来太爷在点拨我宋家为数不多的男性文化人。说到这里,清明将近了,愚孙回乡亲上坟时,一定多叩首,望你九泉含笑知。
震撼先人用功,吾辈岂做蓬蒿人。

读了些大家的散文,花草物事皆入文,信手拈来,最多是喜欢看他们讲童年,而我们总是感叹,为何他们讲起琐事有趣,难道是我们没有经历童年,没有经历贫穷和旧中国丰富的发展阶段。这都是给自己找的借口。在我们记忆的沙砾中一定也能找到宝钻,只要80后用心去再次经历,二次曝光和再发酵。重要的是放下手机,先拿起笔。

人生整明白后,就是一过河小卒,就是投石问路,就是一个C语言的指针,指向不同的对象在不同的上下文中。看似君临天下,实则冥冥注定。说“不惑”,古人有点戏谑了。因为这时的大叔是最可能“自惑”或“被众惑”的时候。心大之人,就拿不惑两个字来快刀乱麻,痛快的与自己平合,与世事不争,与青春告别,做点自己喜欢的,想做不敢做的事。借用高晓松的书名《我们终于老到可以谈谈未来》。
40岁的人能在独处是幸福的,也是无耐的。有些人在乱中寻找独处,有些人被逼,风欲静而风不止,欲养恩而亲不待。独处是前提,有悟,则喜。而悟是一种需要不断修炼的能力。每个生命经历40年,都值得喝彩和聆听。这时,我姥要听到这话,一定笑话,她都快90了,我有啥出奇的,也对,低调点,回头带礼物给她。文化革命时,还有人提出过了60就要处理的言论。所以,40岁再不醒就可能要长辞了。

动物世界里,赵老师总会给成年的角马,羚羊,狮子更多的磁性解说,因为他们才能代表草原的生活状态,他们是统计数字背后与我们共享天地的生灵。说到数字,渐渐的娱乐场所的出勤率40先告别了。夜太美,尽管再危险 总有人黑着眼眶熬着夜,反正大叔我看球都要考虑,更不能摇晃红酒杯,暂时霸占嘴唇像染着鲜血的皮囊。当然,即使偶尔去玩一二次了,也更肆无忌惮。就像40岁的男人在大街看到PPMM,眼光会毫无保留的赤热,不眼软,但君子赏美不上手,更与猥琐无关。只是看透了女人的心理。她们精心打扮,我们顺水推舟,即使擦肩后,MM白眼,嘲讽,但她们心里是窃喜的,心情也好上几小时。这就是40岁带给我们的能力,鉴赏人的一套技法。别说大于40的你没有,可能水平比我还高,不善表达而已。

40岁还有一项技法—现实。在商场,看到喜欢的东东,问问价钱然后一笑而过。理个发都要在40元以内解决,的确,太多的装饰对现实的大叔没有意义。当然,我保养的还可以,顶上发,发际线,眼角纹都控制好好。大叔做的更有意义的事是让孩子和家人过更好一点的生活,发现自己越来越像我爸,这是好事。记得很久以前春晚有个小品,夫妻开早餐店,收了个50的假币,老婆又想办法找钱给了某个顾客,回头向老公汇报了,希望老公批评,可是老公说了句让我坚持看春晚这么久的可爱的话,“我就是喜欢看你缺德的样子!”哈,每个40岁的人,为别人活的意义渐大于为自己活。所有,他们有更强的生命力,更大的决心和韧性。我们已经来不及惑,也不再困惑于那些不值得困惑的人或事情上。

男人40后面往往还有“一枝花”,而我这朵花下还有两个果,老婆还没到“豆腐渣”。古人对此花厚爱,让开的晚了一点,也希望能开的久一点,给绿叶和果实们更多的爱和关怀。
80后,你们过的好吗?青春就酱,再见。

python的debug方法

经过摸索在两大层面都可以进行debug调试。
一,命令行
debug是编码是非常重要的调试技巧,通过在运行过程中设置断点,帮助开发人员更好的理解运行过程。
Python中debug不像JAVA或者C++那样在IDE中设置断点那么直观。
Python的debug有两种方式: 1.在命令行中运行, 2.在脚本当中运行。两种方式都需要使用pdb模块。
方式一:在命令行中运行
$ python -m pdb my_script.py
方式二:脚本中运行

在需要设置断点的地方,插入方法 pdb.set_trace()

import pdb

def make_bread():
pdb.set_trace()
return “I don’t have time”

print(make_bread())
命令: 在进入调试状态之后,就可以输入命令进行调试了。
c: (continue)继续执行
w:(words)显示当前行的上下文信息
a:(arguments)打印当前函数的参数列表
s:(stop)执行当前行,并在顶一个可能的时机停止
n:(next)继续执行直到当前函数的下一行或者函数返回值

二,IDE中
本人使用IDLE(即python安装时带的)。
打开shell,代码窗口,和debugger。三大窗口。
第一步,在代码中可以加断点。
第二步,
在shell命令行中可以准备些环境引用,包括,
import sys
sys.path.append(“”)
当然,可以再import你写的包,或者第三方的包。
第三步,可以通过包引用来选择测试你要的任意函数。在单步调试时,可以看到所有的变量,一目了然。

对于IDE中调试,改了代码后,要重启shell,并再次引用。这一点来看不如命令行调试。

VC权威剖析:MFC原理、机制与开发实例—-读后感

基础概念和消息映射

Image
窗口:
按级别分:
桌面窗口
     顶级窗口
          子窗口
     重叠或弹出窗口
CS_PARENTDC:
     有此属性(并不是窗口风格),它可以继承父窗口的显示设备上下文。edit,button都是如此的。
WS_CHILD:
     纯子窗口,只有客户区,并且客户区的显示界面要在WM_PAINT消息处理中进行绘制。edit,button都是如此的。
WS_OVERLAPPED:
     若不同时指定WS_CHILD那么它是顶级窗口,总有标题栏WS_CAPTION和边框,并且自动设置WS_CLIPSIBLINGS。创建重叠窗口时可以指定默认大小选项CW_USEDEFAULT。
WS_POPUP:
     弹出窗口创建时,也会自动设置WS_CLIPSIBLINGS。但其它风格必须专门指定,包括WS_CAPTION,也不能指定默认大小选项。
检索窗口:可以跨进程找到窗口的句柄,因为用的是CWnd的静态函数,如下:
FindWindow()
GetWindow()
以下相对来说是内部查找了。
用于找父窗口的:
CWnd::GetParent(),可以省略CWnd
但有可能父又是别人的子,所以
CWnd::GetParentOwner()
用于找子窗口的:
CWnd::GetTopWindow()
CWnd::GetDlgItem()
CWnd::GetDescendantWindow()——–通过ID号取得窗口指针
CWnd::GetWindowFromPoint(POINT)函数取得占用父窗口客户区指定点的子窗口。实参POINT是客户区坐标。
消息:
Image
窗口消息(区别于线程消息):
     窗口消息:除了WM_COMMAND外,所有WM_开关的消息。与某类窗口紧密相关。
1,系统自动生成的窗口消息映射
2,通过类向导来生成的消息映射
3,通过宏ON_MESSAGE(message,memberFxn)
主要讲解以下三类消息,原因是类向导不能自动帮助生成,也没有系统建立好,要手工添加。包括自定义消息。
     命令消息
          菜单(工具栏,加速键)、按钮向窗口发送,要求执行某个功能操作的消息,与程序动作相关。
          用宏ON_COMMAND(id,memberFxn)来建立消息映射。加入数组的第二参数为,CN_COMMAND(内容是0,而通知消息则是非零值)
     通知消息
          MFC为每个通知消息都定义了宏,如果控件的内容变化ON_EN_CHANGE,ON_EN_UPDATE,鼠标滚动等。
          通过ON_CONTROL(wNotifyCode,id,memberFxn)来生成消息映射。其实它是ON_COMAND的重载而己。新控件都使用专门的ON_NOTIFY来建立了。它能传递更多的附加信息。如:
         纯正,新式的通知消息使用如下:
          ON_NOTIFY(TVN_KEYDOWN,IDC_TREE,OnKeydown)
          注:在两层面变化了,通知代码和处理的函数原型上,后者有实参,并引入新的结构了。
          不通过ON_CONTROL来消息映射的特殊通知消息。WM_CTLCOLOR
     反射消息
          由主窗口通过CWnd::ReflectLastMsg()发给子窗口,此函数调用了子窗口的OnChildNotify()—-ReflectChildNotify()
          在其中,就是原始的switch了。
               对旧式通知消息的反射消息和通知消息的反射消息时
               —–OnCmdMsg()
Image
命令ID:
     [0x8000,0xF000)———–全局命令,可由不同对象处理。菜单项的的ID值都在此范围内。
     小于0x8000—————-局部命令,按钮
MFC应用程序角度—-CWndApp分析

接开发者地气的些设计。它的父和子,都是一个程序从生到死的维护者。在继承的应用类实例中,把这爷仨的属性都设置了,找到相应的归宿。
有三种主窗口:单选的。事实看看MFC应用程序向导即可。
单,多文档的主窗口都是CFrameWnd(后者派生的)。而基于对话框的就不用多说了。
Image
m_pszAppName
向导中填写的工程名称,可以在CWndApp构造时传参指定。如果没有指定,会使用字符串资源“AFX_IDS_APP_TITLE”,如果还没设置这个串,将由可执行文件名代替。
属于CWndApp类
m_pszExeName
属于CWndApp类
m_pszProfileName
应用程序的INI配置文件名,在继承应用类中设置自己的配置文件 。
GetProfileString()等系列函数来配合。
属于CWndApp类(默认是执行程序.ini)
m_hInstance
模块在进程中的装入地址
属于CWndApp类
m_pMainWnd
在CSingleDocTemplate或CMultiDocTemplate构造时,就把资源文件绑定和主窗口框架类,文档类,视图类全都实例化,同时设置了此指针。基于对话框的也按其方式会设置此指针。注:没有命令行参数时,默认执行ID_FILE_NEW
文档,视图,都是MFC管理的,实例在堆上,不用手动回收。
当设置好,别忘记
ShowWindow(SW_SHOW);
UpdateWindow();
SetWindowText(“XXX程序”);
这样这个主窗口的消息循环,在Run时触发。
属于CWinThread。设置了此指针的UI窗口,在销毁时,都是安全的。
用向导也好,自己个性化改造也好,反正重载的initInstance函数至少有有模有样了。
命令行参数功能,有时在不同进程启动的相互调用时很有用。