SExtractor 安装步骤
下载: http://www.astromatic.net/software/sextractor
http://www.astromatic.net/download/sextractor/sextractor-2.19.5.tar.gz
需要安装PGPLOT、WCSLIB和CFITSIO
1 | tar zxvf sextractor-2.19.5.tar.gz |
下载: http://www.astromatic.net/software/sextractor
http://www.astromatic.net/download/sextractor/sextractor-2.19.5.tar.gz
需要安装PGPLOT、WCSLIB和CFITSIO
1 | tar zxvf sextractor-2.19.5.tar.gz |
假定文件hello.txt的内容如下所示:
1 | Hello World! |
源文件为:
.. literalinclude:: ../../src/hello.txt
现在有一个诉求就是,如果在文件的行首增加一行文本,比如Hello letsProgramming!
解决方法有两个,如下:
1 | $ sed '1s/^/hello letsProgramming! /' hello.txt > hello_new.txt |
执行完后的内容如下所示:
此时文件hello_new.txt的内容如下所示:
1 | Hello letsProgramming! |
源文件为:
.. literalinclude:: ../../src/hello_new.txt
假定希望把一下的内容增加到行首:
1 | Hello letsProgramming! 1 |
.. literalinclude:: ../../src/content.txt
此时可以使用如下的方式:
1 | { cat content.txt ; cat hello.txt; } > hello_multi.txt |
1 | $ cat hello_multi.txt |
.. literalinclude:: ../../src/hello_multi.txt
If you do not have an GPG key, you can generate a new key by using gpg
to use in git commit and tags to identify that it’s absolute you did it.
以MacOSX系统为例.
1 | # first install gpg on MacOSX |
生成key
1 | $ gpg --full-generate-key |
列出GPG key
1 | $ gpg --list-secret-keys --keyid-format LONG |
or
1 | # or for SHORT format |
The different between LONG and SHORT is the
If you want show a Verified
label in Github, now you should add a GPG key in github setting.
Using the following command to get a ASCII-armored format of GPG then paste it in Github,
following Settings -> SSH and GPG keys -> New GPGP key
1 | $ gpg --armor --export <key ID> |
the
is ABCDABCD when using LONG or SHORT.
GPG sign签名默认情况下是禁用的,可以通过以下设置来使能这个功能。
1 | $ gpg --list-secret-keys --keyid-format SHORT |
Some post said that you should do
export GPG_TTY=$(tty)
,
I am not encounter this problems fortunately.
在SourceTree中的 “Enable GPG key signing for commit” 一直是灰色的,并且终端中支持提交前,而SourceTree无法push成功,此时主要是以为gpg程序没有设置,执行下面的命令,然后重启SourceTree即可解决。
1 | $ which gpg |
其中的gpg路径不同的操作系统可能不同,需要根据具体情况来设置。
在提交的时候,出现
1 | error: gpg 数据签名失败 |
解决方法,在zshrc中加上一句export GPG_TTY=$(tty)
,然后重启gpg-agent就可以了
重启命令为
1 | $ gpgconf --kill gpg-agent |
博恩·崔西
1)人生一定要有梦想,因为它一定会实现。梦想再大也不嫌大,追梦的人再小也不嫌小,每年年初给自己做一个梦想板,把今年的梦想或目标可视化,激励自己每天向它靠近。(2)人生不在于做多少事,而在于把重要的事做到极致。事情是永远做不完的,我们只能有选择地做最重要的事。每天挑出最重要的3件事优先完成,每天花80%的时间和精力吃掉3只青蛙,然后花20%的时间和精力处理杂事,这就是能让我们人生快速出成果的二八法则。(3)没有愿景,一切都是空想;没有行动,一切都是噩梦。行动力是我们获得成功的关键:烂开始、好开展、好结果。把一个巨大的目标分解成可以马上行动的一个个小步骤,一步一步地迈进,最终就能走到你想到达的地方。(4)精力管理是时间管理的基础,身体健康才能保证做事高效,所以为了确保自己每天都有充足的精力应对挑战,我倡导大家一定要养成“3+1”的人生基础习惯:早睡早起、健康饮食、运动健身+正念·冥想。
你永远不可能完成所有事情,也永远无法完成你要做的所有任务。对你来说,完成所有任务,然后全身心地放松、享受休闲时光,似乎是一个遥不可及的梦。
你只有学会放弃,把时间和精力放在那些能够改变你生活的重要事情上,才能有效地安排你所要面对的那些事情。
集中精力去完成最重要的事情,彻底地完成它们,并把它们做好,这是人一生取得巨大的成功、成就,赢得受人尊重的社会地位,获取幸福感的关键所在。
成功的关键在于行动,这些原理可以帮助你快速地实现个人绩效的增长,完成可预测的结果,你越快掌握这些技巧和原理,并把它们运用在实际的工作和生活中,你在职业道路上就会进步得越快,比别人更早地突破职业天花板
曾经有一句谚语说的是,如果你每天早上醒来做的第一件事情是吃掉一只活的青蛙,你就会欣喜地发现,在这一天接下来的时间里,将没有什么比这个更糟糕的事情了。这只“青蛙”就意味着你最艰巨、最重要的任务。如果你不对最艰巨的任务立刻采取行动的话,很可能你会因为它耽误很多时间。吃掉你的“青蛙”也可能会对你目前的生活产生最大的积极影响。
为了养成专注的习惯,你需要具备3种品质:决定(decision)、自律(discipline)和决心(determination)
首先,下定决心养成做事有始有终的习惯。其次,约束自己反复练习那些想要学习的原则,直至完全掌握为止。最后,无论做什么事情,都要坚定不移,直至养成这种习惯,并使之成为你性格中不可分割的一部分。
要想更快成为你理想中的高效能人士,这里有一种特殊的方法。你可以不断地在大脑中想象:你已经是一个踌躇满志、马上行动、处事果断、专注的人,你的回报和收益将会如何。你要经常把自己想象成为一个挑大梁的人,而且总是能够迅速而又圆满地完成你的各项工作。在大脑中为自己勾画的蓝图,会对自己的行为产生至关重要的作用。因此,一定要把自己想象成为你理想中的人。你在内心为自己刻画的形象,以及你对自己的评价,在很大程度上决定着你的外在表现如何。你能看到什么样的人,你就会成为什么样的人。事实上,每个人学习新技能、培养新习惯、挖掘新能力的潜力都是无穷的。如果能通过反复练习,培养自己克服拖延、迅速完成最重要任务的习惯,你就将进入工作和生活的快车道,踏上成功的加速器。
一个人对自己的目标越明确,对实现目标的步骤越清晰,就越容易克服拖延的弊病,
茫然、思维混乱、态度模糊……比如一个人不知道自己应该做什么、应该先做什么后做什么、为什么做这些事情,都是造成他拖延和缺乏积极态度的主要因素。只有积极地寻找更明确的目标和任务,才能克服这些常见的问题。如果一个人对自己想要什么非常明确,他会更清楚地知道如何才能实现自己的目标,会更容易克服拖延的弊病,实现目标。
把目标写在纸上。
研究表明:大约只有3%的成年人拥有明确的目标,并把目标用书面化的方式记录下来。但在受教育程度和能力相等的条件下,那些写下自己目标的人,比没有写下自己目标的人的成就高出5~10倍。
有一个方法对设定并实现自己的目标非常有效,你也可以在自己的生活中运用这一方法。该方法包括7个简单的步骤。
第一步:明确你究竟想要什么。你可以自己决定自己究竟想要什么,也可以和你的老板坐下来,就你为自己设定的目标进行讨论,直到你彻底弄清楚自己应该做些什么,应该按照什么顺序来做这些事情为止。
最糟糕的利用时间的情形之一,是把根本不需要做的事情做得很完美。
第二步:把你的目标写下来。也就是说,将你的想法付诸笔端。一方面,当你把目标写在纸上以后,你为自己制定的目标就清晰化、具体化了。你为自己创造了一个能看得见、摸得着的东西。
第三步:为你的目标设定一个完成的最后期限;在必要的情况下,设定出子目标的期限。一个目标或者决定如果没有应该完成的最后期限,就没有紧迫性,没有真正的起点和终点。如果没有一个最后期限,以及相应的应该完成的任务,你做起事情来就会不由自主地拖延,
第四步:为了实现目标,把你所能想到的、所有要完成的事项都列在一个清单上。只要你一想起新的活动,就添加到清单上。然后不断地完善你的清单,直到把所有事项罗列完整为止。这样的一份清单能够将你的目标和任务具象化。
第五步:进一步梳理整个清单,使之成为一份计划。根据优先级顺序来整理计划。请你花一点时间,决定什么事情要放在其他事情之前做,什么事情应该先做,什么事情可以往后放。这里还有一个更有效的方法:你需要在一张单页纸上,把计划中的任务用一系列具象的方框或圆形的流程符号表示出来,然后用直线和箭头把每个任务连接起来,标明相互之间的关系。
第六步:根据计划马上采取行动。你应该马上做点什么事情,做什么都行。即使这个计划平淡无奇,只要你充满激情地按照计划执行,就好过制订一份出色的计划,却无任何行动。
第七步:每天解决一部分问题,向前推进主要目标的实现。你需要在每日行动表中列出一天的活动。
明确的书面目标对你的思想有不可思议的影响力。它能激励你不断地采取行动,它能像其他要素那样,激发你的创造力,释放你的能量,帮助你克服拖延症。
现在就拿出一张纸来,列出你明年最想实现的10个目标。在写下这些目标的时候,设想着明年已经过去,这些目标已经实现。
然后,检查你前面列出的10个目标,并从中挑出一个,设想一下如果这个目标实现了,就会对你的生活产生最大程度的积极影响。无论这个目标是什么,都把它写在另外一张纸上,给这个目标设定一个实现的最后期限,然后制订一份计划,并针对计划采取相应的行动,而且坚持每天都做一些有助于你实现这一计划的事情。坚持去做,这项练习会改变你的生活。
你在脑海中思考如何行动,制订出计划并做出决定,是你克服拖延症、提高生产力的最有效的手段。这些行动可能包括明确目标、制订计划、采取行动,所有这一切会决定你的生活轨迹。对如何行动进行思考,并进行周密计划的过程会释放你心智中的潜能,激发你的创造力,增强你精神和身体的力量。
计划制订得越周密,你就越容易克服拖延症、迅速行动、吃掉青蛙,并能不间断地保持行动的状态
据观察,每拿出一分钟制订计划,在行动时将会节省出相当于制订计划10倍的时间。所以,每天你只要拿出10~12分钟来制订计划,就能节省出将近两小时的时间(约为100~120分钟)。
不管你是借助最先进的掌上电脑、最复杂的电脑程序,还是借助时间管理器来工作,原理都是一样的:在开始工作之前先坐下来,把你要做的每一件事情都逐条写出来。
无论你准备做什么,都应该先列出一份清单。每次想到什么新的事项,在开始做之前都先把它加在清单上。如果你一直坚持先列出清单再开始工作,那么,从一开始你的生产力就能提高25%,相当于每天节省出两小时。当前一天的工作结束以后,要开始制订第二天的计划。把尚未完成的事项、需要在第二天完成的事项,都写在第二天的计划上。当你在前一天晚上制订了计划之后,即使你入睡了,你的潜意识也会围绕这个计划转。通常情况下,当你第二天早上醒来时,你的脑海中就会涌现出灵感,从而使你能更快、更好地完成工作。在制订必须完成的工作计划上,你提前花费的时间越多,你的工作效率、工作的有效性就越高。
你需要针对不同的目标制订不同的计划。首先,你必须拟订一份总计划,在这份计划上,你把能想到的、未来能做的每一件事情都写下来。在这份总计划上,你要写下脑海中想到的所有任务以及相应的职责。之后你可以对计划中的事项做进一步整理。其次,你应该在每个月月末,为下一个月要做的工作制订一份每月计划。其中的某些事项可以是从总计划上分解到这里的。再次,在每周工作开始前,你要提前制订一份每周计划,来计划一周的工作。每周计划是基于你对整周工作的统筹而制订的。
不论你要完成什么项目,都应该在行动之前先制订一份计划,在这份计划上把你要完成的工作、所需要执行的每一步工作都写下来,然后根据它们的重要程度安排先后顺序。
个人高效能工作的最重要的法则之一是10/90法则,即整个工作的前10%的时间用于制订计划、组织工作,那么在实际完成工作的过程中将节约90%的时间。
80/20法则是时间管理与生活管理方面最有用的概念之一。
通常来讲,如果在一张项目计划上列出10项任务,其中一项你必须完成的任务远比其他9个剩下的任务更有价值。那么这项任务就是你应当最先吃掉的青蛙
很多人的拖延清单中最多的就是能产生最大价值的最重要的10%~20%的项目,这些项目是“极重要的少数”。人们忙碌于那些不重要的80%的项目部分,在对回报没有太大影响的“不重要的多数”工作上花了很长时间。
你常常能够看到有的人终日忙忙碌碌,但几乎看不到工作的结果。这几乎可以全部归因于:他们忙碌的是一些低价值的任务,但对某项重要的活动却一再拖延。如果他们能又快又好地完成这些重要的活动,无论对公司还是他们个人的事业都会产生实质性的、重大的影响。每天你能完成的最重要的任务通常是最艰难、最复杂的任务,但是,圆满地完成这些任务所带给你的回报和奖励也是巨大的。鉴于此,如果你还有最重要的20%的工作没有完成,你必须坚定地拒绝做重要性很低的那80%的工作。
抵制诱惑,不被小事所引诱。你要记住,不管你选择先完成什么任务,久而久之都会形成一种固化的习惯。如果你选择每天先做低价值的任务,你将很快养成先做低价值任务的习惯。这一定不是你希望养成或保持的习惯。你要在一开始就处理重要的任务中最难的部分。一旦你开始处理最有价值的任务,你才会很自然地有兴趣继续往下做。如果你在思想上愿意为了有意义的任务来忙前忙后地工作的话,那么你会看到完全不同的结果。然后你要通过不断地以这种思维工作,进一步强化头脑中的这种意识
如果你在脑海中设想一下,开始完成重要的任务以及完成了重要的任务的场景,你就能以此激励自己,战胜拖延症。事实上,完成一项重要的工作所需要的时间与完成一项不重要的工作所需的时间通常是一样的。区别是你完成重要的、有意义的工作能获得极大的自豪感和满足感。然而,当你完成一项低价值的工作时,即使耗费了同样多的时间和精力,你也只能得到很少的满足感,甚至一点满足感也得不到。
成功基于个人对于时间的态度,不论是工作还是生活,成功人士在做每天、每周、每月的活动规划时,都会用长期的观点去考量。
你对时间的处理态度、你的“投资回报期”会对你的行为和选择产生重大的影响。与没有长期时间观念的人相比,能够运用长期时间观念规划生活和职业前途的人似乎能对自己的时间和活动做出更好的决定。
成功人士是那些懂得延迟满足感,愿意做出短期牺牲来追求长期高回报的人。
不断地鼓舞自己,激励自己。如果一项活动或行为会对你的生活产生重大的、积极的影响,那么一旦你清晰地锁定目标,你会不断地被激励,从而有动力克服拖延症,并迅速把它做好。然后,持续地启动、完成那些能对你的公司和未来产生重大影响的任务,你会集中精力、勇往直前。
经常思考你做出的选择、决定和行为是否能产生积极的发展前景及对未来的影响,这是确定你的工作和个人生活中的优先级顺序的最好方法之一。
强迫效率法则的详细解释是:“时间有限,任何人都无法做完所有的事情。但只做那些以后能获得正面效果的工作,做与完成最大目标有关的工作,你的时间是足够的。”换句话说,你无法吃掉池塘里的所有蝌蚪和青蛙,但是在当下,你能吃掉最大、最丑陋的那只就够了。
一个人如果在最后期限的压力下工作,通常他会不由自主地拖延,也会承受更大的压力、犯更多的错误,比无压力状态下的返工率更高。
如果你想专注地完成计划上最重要的任务,每次要问自己3个固定的问题。第一个问题是,“我的最高价值的工作是什么?
第二个问题:“我只有把哪件事情做好了才会产生非凡的影响?
第三个问题是:“在此时此刻,对我来说最有价值的事情是什么
第三个问题是时间管理的核心问题。能否正确地回答这个问题,是一个人克服拖延症、成为一个高效率的人的关键。每一天中的每个小时,你当时完成的任务,代表着你利用那段时间的最大价值。你要反复问自己第三个问题,要不厌其烦地一次次地重复问自己,不管答案是什么,都要不断地着手处理它。
每天都抽出时间推进那些艰巨任务的实施。提前计划好一天的工作量,用最高效的时间完成最重要的工作。每天早晨先挑选出一些最紧迫的简单工作,继而直接开始完成大任务,专注地去做,一直到完成为止。
事实上,每个人都不可能做完所有的事情。你必须有选择地去延迟完成一些事情,一些简单任务不立刻去完成,而是实行创造性拖延。也就是说,有些事情必须向后拖延。选出一些较小、不太丑的“青蛙”,向后推迟一段时间再吃。把那些最大、最丑的“青蛙”安排在第一时间吃掉。先处理最艰难、最复杂的任务
当你不再去做那些低优先级的工作时,你的时间和生活才能完全掌握在自己手中。
大多数人都会无意识地拖延,人们的拖延往往是没有经过周密考虑的结果。这会导致人们拖延工作量浩大的、高价值的、重要的任务,从长期来看,这些任务将对他们的事业和生活产生重大的影响。因此,你必须想尽一切办法,避免这些跟别人趋同的规律发生在你身上。你的任务就是,对那些优先级低的任务进行拖延,从而可以腾出更多的时间来做那些改变你的工作和生活的任务。
成功的第一定律是专注,是把所有精力聚焦在一点上,然后向着这一点的目标努力推进,不要瞻前顾后。
在开始处理一项工作之前,你在制订计划、设定优先顺序方面投入得越多,你所做的事情就越重要,一旦开始工作,你的效率就越高。你所从事的工作越重要、越有价值,你克服拖延症、全力投入该工作的劲头也就越足。
关键结果领域是你工作成功所必须取得的结果。它是完全由你负责的工作领域。如果你不把它做好,那么没有人代替你完成。关键结果领域是在你控制下的活动。它是你工作的产出,同时也会成为别人工作的输入或有用的因素。
管理的关键结果领域是计划、组织、配备人员、授权、监督、检查和报告。
无论从事什么工作,你都必须掌握完成工作所必需的知识和技能。对知识和技能的要求是不断变化的。你只有提高核心竞争力,才能很好地完成你的工作。但是,关键结果领域永远是你工作的中心并决定你工作的成败。
提高生产力的起点是,首先搞清楚你工作的关键结果领域。你可以同领导讨论这些关键结果领域。列出你的产出责任并确保你的领导、同级和下级都同意你所列出的产出责任清单。
请你在30秒之内,把生活中最重要的3个目标写下来。”通过这个练习我们发现,如果只给人们30秒钟让他们写下3个最重要的目标,他们的答案非常准确,结果跟经过30分钟或3小时思考的一样。
80%的人的3个目标是一样的:第1个目标是经济和事业方面的;第2个是家庭或人际关系方面的;第3个是健康或身体方面的。
学习时间管理技巧的一个主要目的是,从现在开始,你可以去做那些真正重要的工作,并腾出更多的时间去做那些生活中能给你带来最大的幸福感和满足感的事情。
生活中有85%的幸福感来自与他人的和谐的关系,尤其是与那些和你关系最密切的人,以及家人的关系。决定你人际关系质量的关键因素是,你与爱人相处时间的长短。学习时间管理的目的在于提高效率,这样你会有更多的时间去陪自己爱的人,有更多的时间去做那些能最大限度地给自己带来快乐的事情。
不管与生俱来的能力是高是低,你的潜力永远大于你一生所表现出来的能力
克服拖延、提高工作效率最好的方法之一,就是在开始工作之前做好充分准备。如果你的准备工作做得很充分,那么开始工作的时候你就会像满弓上的箭一样,蓄势待发,只需要一点点动力,就能着手处理最重要的工作了
将所有与完成工作有关的信息、报告、详图、文件等资料收集在一起,全部放在手边,当你需要的时候,不需要起身或离开座位去找它们。确保你收集齐了所有的书面资料,包括登录信息、密码、邮箱地址,以及从工作开始到完成所需的都已经准备妥当。
所有成功都有共通的意义,无论你的任务是什么,坚持更多、更好地付出,都是确保你获得成功的不二法门。
成为大师的3个步骤
首先,每天至少阅读1小时,以了解行业最新动态。每天早晨尽量早一点起床,阅读30~60分钟的图书或杂志,其中应包含有助于你提高生产力和工作效率的信息。
其次,参加有助于你提高工作技能的每一堂课程和讲座。参加行业内的研讨会和专业会议。更不要错过任何高水平的培训和讲习。坐在前排认真做笔记,并购买活动的音像和影像资料。下决心把自己培养成业内知识最渊博、最有竞争力的人。最后,一边开车一边收听你购买的音像资料。
找出能够帮助你更快更好地实现目标的、最有效的关键技能。决定你必须具备哪些核心竞争力,这些核心竞争力能够在未来让你在专业领域脱颖而出。不管这些能力是什么,你都要设定目标、制订计划、开始构建和提升该领域的能力。在自己能力所及的范围内做到最好。2. 为了出色地完成最重要的任务,你应该制订一项个人计划,让自己充分地做好准备。专注于那些你具有特殊天分,并且非常感兴趣的领域。这是打开个人潜能的钥匙。
找出限制因素
现在就确定你生活中最重要的目标。这个目标是什么?一旦实现这个目标,是否会对你的生活产生极大的积极影响?你工作中的哪项成就会对你的职业生涯产生非常积极的影响?2. 一旦明确了自己最重要的目标,你可以问自己这些问题:“是什么制约了我实现这个目标?为什么我还没有实现自己的目标?是什么制约着我的进步?”找到答案后,立刻行动起来解决这些问题。你想做什么都可以,但必须要行动起来。
成功的第一要素是:必须全身心地做一件事情,决不能有任何懈怠。
只有约2%的人能在完全没有监督的情况下工作,这样的人可以说寥若晨星。我们称这些人为“领导”。只要你愿意,并且下定决心做一个能自我监督的人,那么你一定能成功。
有一个最好的办法能帮助你克服拖延症:假设距离完成最重要的工作的最后期限只有一天。
你对自己的评价、自爱、自尊的程度,在很大程度上决定你工作时自我激励的程度,及能否坚持不懈地工作
维克多·弗兰克尔(Viktor Frankl)在畅销书《活出意义来》(Man’s Search for Meaning)中所写的那样:“人类的终极自由是在现有的任何一种环境中选择做自己的态度
“乐观”的性格是事业成功、生活幸福的最重要的品质。几乎在生活中的方方面面,乐观的人的做事效率都更高。
乐观主义者有4个显著的特征,而这些特征都是通过反复实践学来的。第一个特征,乐观主义者在任何情况下都会去看事情好的一面。无论出现什么状况,他们都会努力寻求有益的一面。第二个特征,乐观主义者总是能从挫折和苦难中总结经验,吸取教训。他们相信,“困难的出现不是为了挡住去路,而是为了指明出路”。他们相信,每一个挫折和障碍中都蕴含着有用的教训,他们会从中吸取教训。第三个特征,乐观主义者总是极力找出问题的解决方法。出现问题的时候,他们不是指责他人或不停地发牢骚,相反,他们总是尽自己的最大努力去寻求解决问题的办法。他们提出的问题是:“解决这个问题的方法是什么?我们现在应该怎么做?下一步应该怎么做?”第四个特征,性格积极、乐观的人会不断地思考和谈论他们的目标。他们总是在思考自己究竟想得到什么,如何得到他们想要的。他们所想所说的是未来,是他们想要实现什么样的目标,而不是过去曾经得到过什么。他们总是向前看,而不是向后看。
“每天我会定时查看两次邮件。当我看到您的消息后,会尽快回复。如有紧急事宜,请致电我的手机。”
生命完全是一场专注力的修行,你专注于哪里,你的生命就在哪里。
处理完网络上的一个突发事件后,人们通常需要花费7分钟才能完全将注意力从前一件事情上转回到原来的任务中,然后继续工作。
已经被各行业的高效能人士广泛采用。第一,清晨不要检查邮件,这样才会避免新邮件刺激大脑,释放出全天的多巴胺,分散注意力。让你的设备仍处于关闭的状态。第二,如果由于特殊原因,你需要查看邮件,那么你需要尽快切换到邮件处理状态,然后迅速地结束。关掉电脑的声音提示音,让你的手机处于“震动”状态。停止刺激和触发多巴胺的释放,停止其他不断引发注意力中断的刺激。第三,下定决心每天查看两次邮件,把时间定在上午11点和下午3点半,处理完之后就关闭邮箱。给他人提供一个在紧急情况下可以找到你的电话号码。不论你是跟别人一对一开会,还是给更多人开会,都采用上述的协议。把电子设备关掉。不要打断别人与你的在线合作,或者中途接听第三人的来电,因为这些举动对对方而言都是不礼貌的。一定要为对方100%地专注。这一条协议也适用于在家里发生的情况。
第一,每天提前制订一整天的计划,选择出你最重要的任务,然后开始完成该任务,直到全部结束为止,在彻底完成该任务之后,再开始做其他的工作。第二,持续不间断地连续工作90分钟,期间不要有任何的干扰和注意力的分散,然后让自己休息15分钟。第三,投入全部精力再次开始下一个90分钟的工作。第四,完成了为期三小时的工作后,你终于可以奖励自己查看邮件,刺激多巴胺冲击你的大脑了。当你建立了这一习惯,在每天上午首先抽出连续3小时完成重要工作后,你将让你的生产力提升到两倍,并能够克服全天不定期查看邮箱的陋习。你将会全面掌控自己的生活。
吃掉那只青蛙1. 立刻将这些技巧付诸实践。选择一项你拖延的复杂而艰巨的任务,无论是用“香肠工作法”还是“奶酪工作法”,都去立即着手处理这项任务。2. 把自己变身为“行动派”。高效能人士有一个共同点,每当他们听到一个好点子,就会立刻行动。所以他们学得更多,学得更快,并能得到更好的结果。不要迟疑。今天就试试这种方法!
如果你把全部精力集中于一组有限的目标上,那么你的未来将不可限量。
许多重要任务都要花费大块的时间不间断地完成。你能否找到大块的、可利用的时间,关系到你能否在工作、生活中取得大的成就。
许多人把每天晚上睡觉之前的15分钟用来阅读精品图书。
很多高效能人士都是这样做的,他们总是提前安排每一天的工作,安排特定的时间段来处理特定的事情。他们的目标是一次完成一项重要工作,并根据这一原则来规划自己的职业生涯。
在这段工作时间之内,你关闭手机,不受任何来自外界的干扰,不间断地进行工作。最好的工作习惯之一就是每天早早起床,然后在家里工作几个小时。在这段时间里,没有人打搅你的工作。而在忙碌的办公室里,你的周围可能人满为患,电话也狂轰滥炸地响个没完没了。相比之下,你在家里可以完成3倍的工作量。
不要盲目地等待,时机永远不会“恰到好处”地到来。从你现在的位置开始工作,运用你需要的、能找到的任何工具。在前进的过程中,你还会找到更好的工具。
生产力高的人愿意花费时间去思考、制订计划、确定事件的优先级。然后,他们就行动迅速、意志坚定地投入工作,朝着自己的理想和目标前进。他们从容不迫地、循序渐进地工作,在一般人盲目地社交,浪费时间,从事那些无谓的、低价值回报的工作的时候,他们却完成了不计其数的工作。
当你精力充沛、活力四射地投入自己的工作的时候,你会觉得自己的大脑进入了一种充满激情的状态。几乎每个人都有过这样的经历。而真正的成功人士,体验到这种状态的频率要比普通人高得多。这种状态是一个人在工作生产力和效能方面所表现出来的最佳状态。在这种状态下,你的思想和情感通常会发生一些近乎奇迹的事情。在这种状态下,你会感到自己头脑清醒,工作热情高涨,无论做什么事情都既有效又精准。你会觉得自己兴高采烈、充满活力。你会觉得自己做事有条不紊,工作效率非常高。
好的结果是,你行动的速度越快,你的能量就越大;你行动的速度越快,你完成的工作就越多,你的工作效率就越高;你行动的速度越快,你积累的经验就越多,学到的知识也越多;你行动的速度越快,你的工作能力就越强,才能就越出众。
力量的真正秘密在于此。学习如何使用资源,然后在特定的时刻把它集中使用在特定的事情上。这一习惯要通过反复实践才能形成。
全力以赴地投入一项工作的要求是,一旦开始做这件事情,就全身心地投入进来,不受外界干扰,不转移注意力,直到100%地完成工作。每当你想停下来,或想要做其他事情的时候,你要不断对自己重复“继续工作”这句话,然后敦促自己不断前进。只要你能全身心地投入对你最重要的事情,就能把完成工作所需要的时间缩短50%甚至更多。
在应该做某件事情的时候,约束自己去做那件事情,无论自己当时想做还是不想做”。归根结底,在任何一个领域内,要想获得成功,都需要极强的自律能力。自律、自制是一个人性格塑造和高效能的基石。
这是一本值得常读常看的书籍
“Just do it”是幸福行动家们在实践相关内容时的真实案例和经验。
第一个习惯是“先吃掉那只青蛙”,第二个习惯是“清空收件夹”,第三个习惯是“每日重开机”
时间管理不是让人变得一味忙碌,而是让人变得轻松,有时间享受生活。
如果每天早晨你先做最有挑战性的事情,一天中其他的事情都会显得无比轻松。
高效的人并不是每天做很多小事,而是把时间花在最重要的几件事情上
A代表“Action List”,英文中的行动清单。把今天要做的事情列成清单,之后就专注地一项一项做完。每天早上花点儿时间,列出包含13只青蛙、57只蝌蚪的每日行动计划。青蛙之后的其他任务就是“蝌蚪”,就是我们所说的琐事或小任务,相对来说不是非常重要的事。蝌蚪意味着如果今天做不完可以适当舍弃。这份清单除了自己使用,还可以和团队共享,让队员互相了解彼此的进度。
S是“Slice”的缩写,代表切成小片。有些青蛙,不是一口能吃完的,需要分成几天甚至几周才能吃完,那么就需要切成小片。
第二章 F吃青蛙:要事为先的三个关键
进入心流状态四步法:
挑战最难的事情,正是生活中最有趣的部分。
我会回顾昨天在笔记上记录下来的事情。把需要执行的部分移到行动清单中,剩下的保存在笔记资料库中。
一封信一封信地依次检视,每看完一封信,你可以选择存档、立刻回信、授权他人处理,或者转寄到行动清单作为下一步行动。
我写晨间日记的习惯已经坚持了将近十年,每天记录前一天发生的事情或心情,对于了解自己有莫大帮助。
推荐四个数字化清单应用除了把清单写在笔记本上,现代人应该懂得善用“数字化清单”工具,这里我先做一个简单推荐。OmniFocus是老牌又专业的清单工具,效率非常高,美中不足的是只能在Mac和iOS系统下使用,没有PC版。Wunderlist,又称奇妙清单,有很漂亮的界面与亲切的使用流程,目前属于微软旗下的服务。滴答清单,基础功能免费,比较符合大陆用户的使用习惯,可以语音输入,还可以把微信的内容直接复制到清单里。
第五章 T训练自己的时间感知能力
番茄工作法的基本原则是最高强度地专注于一件事情上25分钟,例如看书、背诵、写作、思考或进行各种工作任务,然后让自己精神放松5分钟,例如站起来走走、刷网页、聊聊天。只要一直重复这个循环过程,可以让自己掌控时间并维持最佳专注力
所以,通常我会利用上午的时间来吃青蛙,这是我一天中工作效率最高的时段。到了下午,我的精神已经疲惫,不适合吃青蛙,就处理一些比较轻松的工作,这样才能劳逸平衡
番茄土豆:结合任务清单与番茄钟,有各平台的APP与网页版,是很适合吃青蛙的番茄钟工具。Focus:有Mac和iOS版,好处是可以列出待办事项。Focus Booster:有Windows与Mac版本,可以在桌面上使用的番茄钟计时工具。
我们需要顺应身体的节律,集中注意力、休息放松,保持规律的生活、充足的睡眠。保持节律,只靠大脑是不够的,我们还需要一个闹钟。现代人习惯用手机、电脑、实体倒计时器作为闹钟。这些形态的闹钟都可以使用,更重要的是如何有效地用好它们。
电脑上的计时软件我是用Due做电脑上的计时软件。Due是一个专业的闹钟APP,可以快速输入几个自己需要的闹钟,或设定倒计时,整个过程行云流水,更棒的是可以同步到iOS设备,就算离开电脑也能够提醒自己。
FAST原则除了可以帮你个人完成一天的重要任务,其实也可以管理一个团队的工作流程。F,就是找出团队专案里最重要的事情有哪些。A,就是列出整个团队专案的进度清单。S,就是分配任务、切割任务,根据每个团队成员的能力去分配工作。T,就是分配专案时间,让每个团队成员有时间去完成任务。
第八章 清空收件夹:将杂事加工成行动
这个世界上的信息固然非常多,但终会被信息组成者宰制,这些人能在对的时间点,归纳整合正确的信息,批判性地思考,明智地做出重要决定。—— 哈佛大学教授 爱德华·奥斯本·威尔森(Edward Osborne Wilson)
清空收件夹分三步:收集杂事、将杂事加工成行动、贯通收件夹与行动提示系统。
学习好“清空收件夹”的三个流程,就是练习三个基本功:首先,管理好杂事收件夹系统;其次,架构好行动提示系统;最后,清空收件夹,贯通从杂事到行动的高速铁路。让杂事有明确可以放置的地方,有明确的流程让杂事变成行动,最后做事的速度与质量因为有良好的行动提示系统而得到提升,这就是清空收件夹的目的。
人生中一半的麻烦源于答应得太快,拒绝得太慢。——格雷戈·麦吉沃恩(Greg Mckeown)
重开机(Reboot):使用时间管理系统帮助我们推进任务,久而久之,系统会产生一些“阻力”,需要定期重开机,清空CPU及RAM内存,让时间管理系统恢复应有的速度。
Schedule,日程表我每天早上检查日程表,确认自己一天的行程。每周在做检视时,也会确认自己上一周与下一周的各项任务,并列出任务清单,安排执行任务的时间,并设定闹钟自动提醒。Task,任务现代知识工作者会同时进行许多任务,有的耗时短,几天可以完成,有的耗时长,需要数周或数月才能完成。任务分个人及组织的任务,有的是独立完成,有的要和团队成员协作才能完成。要对任务做好适当的规划,借此了解整个任务的全貌,这样执行时才能够持续推动,减少边想边做出现的状况。
若是能管控好下周要推动的任务清单及下一步行动,这样时间管理的功力就很不错了。Action,行动每天都需要推动许多行动,有些是单独的行动,有些则是和某个任务相关的行动。行动不容易推动有两方面原因,一方面是没能做好任务规划工作,一直找不到关键行动;另一方面就是今天有太多可以做的行动,需要花时间厘清先后次序。
因此每天要先列出三只青蛙,几只蝌蚪,努力推动,当有杂事进入收件夹,迅速加工确认是否必须今天做。可能的话尽量不要安排在今天,而是安排特定日期来做该行动。这样才能顺利推动今天的青蛙,吃完青蛙和蝌蚪,拥有高效的一天。Reference,参考资料库为了持续做好时间管理,需要建立参考资料库,例如之前提过的晨间日记,爱画画及拍照的人会建立图片资料库,讲师会有幻灯片资料库,上班族则有Office文件管理。这些资料可以帮助我们将任务执行得更好。
第十九章 晨间日记:为检视自己而写
每天清晨,我会打开印象笔记,开始写晨间日记,在窗帘透进来的曙光中,只聆听键盘敲击及内心对话这两种声音。而每周每年的坚持检视,帮助我归纳整合信息,做批判性的思考,不断升级自己的人生操作系统。每一次阅读日记,都会觉得好像面对一个不太熟悉的自己。有时发现,自己生命中的每一天都是如此认真地活,这些体验是如此地真实生动。有些时候,也会有点懊恼,为何当初没有好好对待那件事情。日积月累,人生变得更加丰润成熟
一年一次的深度检视,仿佛在一条长路中,停下来歇歇脚。回看之前的轨道,依稀看出形成一条直线,再一转头,望向未来的目标,就知道如何修订生活与工作的角度,向目标继续前进,拥有一个值得拥有的人生
1.选一个早晨自己可以接受的起床时间。2.选一件没有压力,但是可以让自己振奋精神的事,当成早晨起床的第一个动力。3.不急着行动,从晨间日记的每日检视开始。4.选一件对自己具有“高价值”的工作开始做,让自己在早晨就感受到强大回馈。
第二十章 每周检视:提升时间管理高度
每周检视的一小时,是一周168小时中最珍贵的一小时。这一小时让我得以从高空俯瞰生活的全局,这样充分地检视后,我的头脑才能获得真正的宁静。
如果你已经下定决心做好每周检视,可以按照如下流程进行:先清空收件夹检视晨间日记本下周日程表思考下周任务检视年度计划
1.设定每周某一固定时段进行每周检视。2.练习快速完成检视。3.每周检视的目的先从找到下周目标开始。4.执行几次后,在每周检视中找到未来计划。
★★★☆☆
重要的事,琐事如何排序 还有定时日记,自己重开机都是很好的习惯!
git-svn用于Git和SVN的转换,可以把Git仓库迁移成SVN仓库,反之亦可
安装git-svn
1 | $ yum install -y git-svn |
创建一个空目录
1 | $ mkdir /opt/git |
创建svn用户和git用户对应表
vim userinfo.txt
格式如下
svn用户=git用户<邮箱地址>
例如
1 | Linus=Linus<linus@linux.com> |
1 | $ git svn clone /the/path/of/svn/repo --authors-file=userinfo.txt |
如果出现
Author: XX not defined in userinfo.txt file
那就在userinfo.txt里面添加一个XX用户
重新执行git svn clone命令
其中userinfo.txt的内容可以通过下面的命令获得:
1 | cat log.txt | awk -F '|' '{print $2}' | sort -u | awk '/./{print}' |awk '{print $1 " " $1 " <" $1"@mail>"}' > users.txt |
其中log.txt为svn log的内容
上传到 git 服务器
1 | $ cd svn_repo |
用git push命令推送全部的分支和标签信息到git服务器上面
1 | $ git push origin master --tags |
登录到gitlab/github,查看更改记录是否存在.
Git Actions是一个好东西,回头有时间要研究一下。
可以参考 http://www.ruanyifeng.com/blog/2019/09/getting-started-with-github-actions.html.
https://github.com/marketplace/actions/hexo-action
对于配置Hexo自动CI的可以参考:https://blog.csdn.net/z_johnny/article/details/103910373
项目中经常会使用到第三方的 git 库, 将三方库整合到项目中最简单的办法就是复制粘贴, 但是如果这个库升级了一个很酷炫的功能, 你要怎么整合进来呢?(其实就是 git 版的包管理器)
这就是 git-submodule 的功能, 直接把第三方的版本库合并到自己的库中.
比如自己开了两个库做测试, 主库叫 main
, 另一个库叫 sub
首先在本地的main
库中添加sub
1 | $ git clone https://www.github.com/username/main.git |
这时查看下状态会多两个文件
1 | ➜ main git:(master) ✗ git status |
这就多了一个 sub
的库, 和一个.gitmodules
的文件, 现在提交一下
1 | $ git commit -am "add sub" |
本地提交了版本之后可以提交到远程试一下
1 | $ git push |
这时去远程库中看的话库中的内容是这样的
这里有个奇怪的 sub @ 2b79b47
, 明明是没有的啊?
点一下原来是一个快捷方式, 直接给连接到了 sub
库的地址, 版本库中不会存第三方引入库的实体文件, 而是通过 .gitmodules
的方式存储三方的联系方式, 当下载到本地运行的时候才会再拉取文件
而且这个时候在其他的地方安装main
这个库的时候直接运行 git clone
是生成不了完整的文件的, 缺少了 sub
库的文件
因为这个时候的 main/sub
目录是空的需要多走一步, 这时为什么呢? 我们下面会讲到原因
1 | $ git clone the/path/of/main.git |
这时才是一个完整的库
之前的一些步骤其实还不完整, 因为 main/sub
这个目录中的文件并没有和主线在一条线上, 这也是为什么在远程库的 sub 目录是空的, 因为在 master 分支里面它确实是空的, 文件是在另一个分支上, 我们先去看一下
1 | cd path/to/main/sub |
别的文件的分支都是 master
到这个文件的时候就是 2b79b47
分支了, 其实这个值也是 sub
库当前的 commitId
而且如果不把第三方的库纳入自己的主线的话会非常的危险, 因为你对项目中的三方库发生的任何改动都不会对主线产生任何影响, 被主线遗忘了, 因此我们还需要接下来的操作
1 | cd path/to/main/sub |
这里有个问题就是如果main/sub
发生了更新就首先在这个文件中提交一个commit
, 然后在main
这个目录下再 commit
一次
第一次 commit
是为了更新 sub
的版本控制, 第二次更新是更新main
的版本控制, 同时更新 sub
库在main
的指针
如果更新的比较多, 可以运行
假设你的项目当中引入了 100 个第三方的库, 你需要同步的时候难道还要每一个都要执行:
1 | $ cd module-dir/ |
这些东西 git 早就帮你想好了
具体操作可以看一下git help submodule
有相关的介绍的
1 | git submodule foreach <command> |
这条命令就会按照 .gitmodules
会根据path
寻找所有的三方模块, 并在每一个模块中都执行 foreach
后的命令,
比如你想批量更新模块到最新的时候就:
1 | git submodule foreach git submodule update |
在当前 git 版本1.7.8
之前, 删除指定的 submodule 的命令是
1 | git rm <submodule-name> |
在新版的 git 下, 则是运行以下命令
1 | $ git submodule deinit -f — mymodule |
查看本地有哪些三方模块可以查看 .gitmodules
1 | ➜ maint git:(master) cat .gitmodules |
git submodule foreach git pull
git submodule foreach –recursive git submodule init
git submodule foreach –recursive git submodule update
1 | $ git submodule add <url> <path> |
执行添加命令成功后,可以在当前路径中看到一个.gitsubmodule文件,里面的内容就是我们刚刚add的内容
如果在添加子模块的时候想要指定分支,可以利用 -b 参数
1 | $ git submodule add -b <branch> <url> <path> |
1 | $ git submodule add https://github.com/tensorflow/benchmarks.git 3rdparty/benchmarks |
.gitsubmodule内容
1 | [submodule "3rdparty/benchmarks"] |
1 | $ git submodule add -b cnn_tf_v1.10_compatible https://github.com/tensorflow/benchmarks.git 3rdparty/benchmarks |
.gitsubmodule内容
1 | [submodule "3rdparty/benchmarks"] |
当我们add子模块之后,会发现文件夹下没有任何内容。这个时候我们需要再执行下面的指令添加源码。
1 | $ git submodule update --init --recursive |
这个命令是下面两条命令的合并版本
1 | $ git submodule init |
我们引入了别人的仓库之后,如果该仓库作者进行了更新,我们需要手动进行更新。即进入子模块后,执行
1 | $ git pull |
进行更新。
1 | $ rm -rf 子模块目录 |
1 | $ vi .gitmodules |
1 | $ vi .git/config |
1 | $ rm -rf .git/modules/子模块目录 |
1 | $ git rm --cached 子模块目录 |
TO-read
Using submodules in Git - Tutorial (vogella.com)
Lars Vogel (c) 2009-2022 vogella GmbHVersion 5.8,10.08.2015
TABLE OF CONTENTS
-
\1. Submodules - repositories inside other Git repositories
-
\2. Working with repositories that contain submodules
-
\3. Creating repositories with submodules
This tutorial explains the usage of submodules with the Git version control system.
Learn more in the Learning Portal. Check out ourGit Online Training priority_high
Git allows you to include other Git repositories called submodules into a repository. This allows you to track changes in several repositories via a central one. Submodules are Git repositories nested inside a parent Git repository at a specific path in the parent repository’s working directory. A submodule can be located anywhere in a parent Git repository’s working directory and is configured via a .gitmodules
file located at the root of the parent repository. This file contains which paths are submodules and what URL should be used when cloning and fetching for that submodule. Submodule support includes support for adding, updating, synchronizing, and cloning submodules.
Git allows you to commit, pull and push to these repositories independently.
Submodules allow you to keep projects in separate repositories but still be able to reference them as folders in the working directory of other repositories.
If you want to clone a repository including its submodules you can use the --recursive
parameter.
1 | git clone --recursive [URL to Git repo] |
Since a repository can include many submodules, downloading them all sequentially can take much time. For this reason clone
and submodule update
command support the --jobs
parameter to fetch multiple submodules at the same time.
1 | # download up to 8 submodules at once |
Once you have set up the submodules you can update the repository with fetch/pull like you would normally do. To pull everything including the submodules, use the --recurse-submodules
and the --remote
parameter in the git pull command
.
1 | # pull all changes in the repo including changes in the submodules |
Git provides a command that lets us execute an arbitrary shell command on every submodule. To allow execution in nested subprojects the --recursive
parameter is supported. For our example we assume that we want to reset all submodules.
1 | git submodule foreach 'git reset --hard' |
If you add a submodule, you can specify which branch should be tracked via the -b
parameter of the submodule add
command. The git submodule init
command creates the local configuration file for the submodules, if this configuration does not exist.
1 | # add submodule and define the master branch as the one you want to track |
adds a new submodule to an existing Git repository and defines that the master branch should be tracked | |
---|---|
initialize submodule configuration |
If you track branches in your submodules, you can update them via the --remote
parameter of the git submodule update
command. This pulls in new commits into the main repository and its submodules. It also changes the working directories of the submodules to the commit of the tracked branch.
1 | # update your submodule --remote fetches new commits in the submodules |
Alternatively to the tracking of a branch, you can also control which commit of the submodule should be used. In this case the Git parent repository tracks the commit that should be checked out in each configured submodule. Performing a submodule update checks out that specific revision in the submodule’s Git repository. You commonly perform this task after you pull a change in the parent repository that updates the revision checked out in the submodule. You would then fetch the latest changes in the submodule’s Git repository and perform a submodule update to check out the current revision referenced in the parent repository. Performing a submodule update is also useful when you want to restore your submodule’s repository to the current commit tracked by the parent repository. This is common when you are experimenting with different checked out branches or tags in the submodule and you want to restore it back to the commit tracked by the parent repository. You can also change the commit that is checked out in each submodule by performing a checkout in the submodule repository and then committing the change in the parent repository.
You add a submodule to a Git repository via the git submodule add
command.
1 | git submodule add [URL to Git repo] |
adds a submodule to the existing Git repository | |
---|---|
initialize submodule configuration |
The relevant state for the submodules are defined by the main repository. If you commit in your main repository, the state of the submodule is also defined by this commit.
The git submodule update
command sets the Git repository of the submodule to that particular commit. The submodule repository tracks its own content which is nested into the main repository. The main repository refers to a commit of the nested submodule repository.
Use the git submodule update
command to set the submodules to the commit specified by the main repository. This means that if you pull in new changes into the submodules, you need to create a new commit in your main repository in order to track the updates of the nested submodules.
The following example shows how to update a submodule to its latest commit in its master branch.
1 | # update submodule in the master branch |
Another developer can get the update by pulling in the changes and running the submodules update command.
1 | # another developer wants to get the changes |
With this setup you need to create a new commit in the master repository, to use a new state in the submodule. You need to repeat this procedure every time you want to use another state in one of the submodules. See Adding a submodule to a Git repository and tracking a branch for tracking a certain branch of a submodule. | |
---|---|