forked from poole/lanyon
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsearch.xml
420 lines (298 loc) · 101 KB
/
search.xml
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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
<?xml version="1.0" encoding="utf-8"?>
<search>
<entry>
<title><![CDATA[python2 中 unicode encode decode]]></title>
<url>%2F2018%2F08%2F29%2Fpython2-unicode-utf8%2F</url>
<content type="text"><![CDATA[python2 中 unicode encode decode utf8unicode unicode 相当于 code point(0-0x10ffff的整数). unicode编码的缺点:浪费空间(每个字符对应32-bit) utf8编码的优点: 能处理所有unicode code point 节省空间,去掉了0字节 ASCII字符串也是有效的UTF8字符串 如果字节丢失,容易找到下一个code point 1234567# pythona = "我们" # utf8 编码的字符串a_unicode = a.decode("utf8") # decode 为 unicodeassert a_unicode == u"我们"b = a_unicode.encode("utf8") # encode utf8 还原assert a==b]]></content>
</entry>
<entry>
<title><![CDATA[在bash中的快捷键]]></title>
<url>%2F2018%2F06%2F25%2Fmoving-in-bash%2F</url>
<content type="text"><![CDATA[在bash中的快捷键 节省手指,低碳操作 基本移动 向后移动一个字符 Ctrl+b 向前移动一个字符 Ctrl+f 删除当前字符 Ctrl+d 撤销 Ctrl+- 快速移动 移动到一行的开头 Ctrl+a 移动到一行的结尾 Ctrl+e 向前移动一个单词 Meta+f 向后移动一个单词 Meta+b 剪切与粘贴 剪切到一行末尾 Ctrl+k 剪切到单词末尾 Meta+d 剪切到单词开始 Meta+Backspace 粘贴 Ctrl+y]]></content>
</entry>
<entry>
<title><![CDATA[均线]]></title>
<url>%2F2018%2F05%2F20%2Fmoving-average%2F</url>
<content type="text"><![CDATA[绝对金叉绝对金叉是是指三条均线同时交叉,且发生交叉的必须是三条周期较短的均线,同时从上到下必须按照周期由短到长的顺序排列。例如,选择5日均线、10日均线、20日均线和60日均线,则交叉的三条均线必须是5日均线、10日均线和20日均线,60日均线则不在交叉之列。同时,金叉形成之时,必须按照5日均线在上,10日均线居中,20日均线在下的顺序排列,否则就不能看作是绝对金叉。 黄金交叉当10日均线由下往上穿越30日均线,形成10日均线在上,30日均线在下时,其交叉点就是黄金交叉,黄金交叉是多头的表现,出现黄金交叉后,后市会有一定的涨幅空间,这是进场的最佳时机。 死亡交叉当10日均线由上往下穿越30日均线,形成30日均线在上,10日均线在下时,其交点称之为”死亡交叉”,”死亡交叉”预示空头市场来临,股市将下跌此时是出场的最佳时机。 均线粘合均线粘合出现暗示市场即将出现大的转势,均线一旦发散,转势也将开始。具体的转势方向一般可以结合均线粘合出现之前的市场走势进行判断。如果均线粘合之前,市场经历了大幅上扬,则市场即将进入大熊市;如果均线接近粘合之前,市场经历了一次大跌并且已经横盘整理一段时间,则有可能迎来新的发展机会。 基本的均线使用方法 平均线从下降逐渐转为水平,且有网上方抬头迹象,而价格从平均线的下方突破平均线时,便是买进讯号。 价格趋势走在平均线上,价格下跌并未跌破平均线且立刻反转上升,则也是买进讯号。 价格突然暴跌,跌破平均线,而且远离平均线,则有可能反弹上升,亦为买进讯号。 价格突然暴涨,突破平均线,且远离平均线,则有可能反弹回跌,为卖出时机。 平均线从上升逐渐转为横盘或下跌,而且价格向下跌破平均线,为卖出信号。 周线 懂得去关注周线股价是否创历史新低。 选股的时候,在研究个股基本面没有问题之后,有业绩支撑,非妖股,就得看这只股的股价是否创出新低,因为很多个股的转机都是在创历史新低以后出现的。 用10周线判断上升还是下降通道。 (1)10周均线趋势向下的股票,不应该买入。20周均线趋势向下代表下降通道走势,特别是在30周线压制下的10周线下的股票。 (2)10周均线趋势向上的股票,可以在10周均线附近介入。10周均线趋势向上的股票,表示庄家想把这只股票做上去。 5周均线也是重要指标! 如果某股在高点放量后,其后为两连阴,并跌破5周均线,则后市走势将进入持续下跌,此时应坚决退出。相反当某股放量穿过5周均线并站稳两周时,则持续上涨的可能性非常大,此时可积极介入。]]></content>
</entry>
<entry>
<title><![CDATA[技术分析参数]]></title>
<url>%2F2018%2F05%2F19%2Ftechnical-analysis%2F</url>
<content type="text"><![CDATA[股票技术分析 作为价值分析的辅助,懂一些指标,可以辅助判断 均线移动平均线,Moving Average,简称MA,MA是用统计分析的方法,将一定时期内的证券价格(指数)加以平均,并把不同时间的平均值连接起来,形成一根MA,用以观察证券价格变动趋势的一种技术指标。 移动平均线 常用线有5天、10天、30天、60天、120天和240天的指标。其中,5天和10天的短期移动平均线,是短线操作的参照指标,称做日均线指标;30天和60天的是中期均线指标,称做季均线指标;120天、240天的是长期均线指标,称做年均线指标。]]></content>
</entry>
<entry>
<title><![CDATA[(linux常用命令)sed]]></title>
<url>%2F2018%2F05%2F08%2Fsed%2F</url>
<content type="text"><![CDATA[Mac1find ./ -type f -name "*.py" -exec sed -i '' -e 's/foo/bar/' {} \; Linux1find . -type f -name "*baz*" -exec sed -i 's/foo/bar/g' {} + 常见错误:sed: RE error: illegal byte sequence导入如下命令,可恢复正常12export LC_COLLATE='C'export LC_CTYPE='C']]></content>
</entry>
<entry>
<title><![CDATA[书《股票作手回忆录》]]></title>
<url>%2F2018%2F03%2F24%2FJesse-Livermore%2F</url>
<content type="text"><![CDATA[利弗莫尔简直是天才,我很多次操作失败,都是违反了他定的原则。 投机游戏可不是对未来几档报价下小注,相反要对大行情做出预测。 一旦发现股票的行为异常,就停止接触,因为其中或许就有问题,情况不明,也就无法正确预测,无法正确预测当然就无法赚钱。 我不能让任何事情造成我身体和精神不适,因为我担当不起。我还是个年轻人,我从未做到很晚,我知道如果没有充足的睡眠,我就无法正常的做事。 我的自信心来自平和的职业态度。 大钱并不在个别的波动中,而是在主要趋势中。 最有效的教育方式就是破产。 改变股民对股票市场的看法需要漫长的过程,就连绝大部分职业交易者都是目光短浅,反应迟钝的。 我开始关注市场基本形势,而不只是考虑个股。 当我看空并卖出一只股票时,那么每次的卖价都必须比上一次更低。看多并买入一只股票时,那么每次的买入价都必须比上一次更高。 假设你第一笔买进了100股,但马上就亏损了,那么你为什么还要继续加码呢?你应该意识到自己的错误,至少是暂时是错误的。 如果你的交易规模很大,那就牢记一点,首先要研究市场环境,谨慎规划操作流程,然后一步一步按计划付诸实践。 不要轻易追加交易,除非上一笔已经产生利润。你要观察并等待,判断合适的出手时机。 我是不会让我的持仓或者未来的持仓对我的判断产生影响。 大的波动的持续,原因绝不是在资金集团的操纵或是金融家的手腕,而是基本大势所致。 在我看来,预测未来几周比分析过去一周更为重要。 当你想离场时,一定要离场。 上涨行情中,你要随之加码,开始时入五分之一仓位。这笔交易没有产生利润时,你不能选择加仓,因为你已经出错了。 阳光下没有新鲜事,至少股市没有。 最明智的选择就是在胜利的形势下,接着下大注,不要怕亏损,因为亏掉的只是一种试探的损失。 目标10000元,2000元/2000元/4000元加仓 投机客需要面对无数的敌人,其中有很多来自自己的内心。 有时候某个专业操盘手的操作加速了跌势的出现,可无论他的交易量有多大,都不可能是股票下跌的最基本的原因。 打压股价是一件很危险的操作,如果有人打压股价,内线就会吃进,如果内线没有吃进,说明股票有问题。 对于交易者来说,最强大的同盟军就是整体市场环境,逆势操作,简直愚不可及。 投机客的勇气就是自信到足以根据头脑中的决策采取行动。 如果你所操作的股票没有按照你的预期发生变化,那么你就应该立即退出。 市场正处于跌势中,想要卖出,就必须不计价格。 无数个夜晚,我在床上辗转反侧,反省自己,为什么没能预见行情。 如果你对某只股票形成了明确的看法,千万不要迫不及待的入场。要从市场出发,耐心观察行情变化,伺机而动。 真正从投机买卖得来的利润,都来自那些从一开始就一直盈利的头寸。 三个原则:1)绝对不要卖出看起来价格过高的股票2)绝对不要买进从最高点大幅下滑的股票3)如果第一笔交易已经亏损,就不要继续跟进。绝对不要摊低亏损。 市场一旦向我发出危险信号,我从来都不对着干,总是迅速离开。 良机每年只有寥寥数次,只有在这些时候,才可以建立头寸,在良机之外的空档里,你应该做一个淡定的观察者,等待市场酝酿下一个大动作。 真正的行情不会一天结束。 不要同时在许多股票上建立头寸。 集中精力研究当日行情最突出的那些股票,如果你不能从领头的活跃股票上赢得利润,也就不能在整个股票市场上赢得利润。]]></content>
</entry>
<entry>
<title><![CDATA[书 《专业投机原理》]]></title>
<url>%2F2018%2F03%2F24%2Ftrader-vic%2F</url>
<content type="text"><![CDATA[投机与投资没有本质的差别,都是希望从市场获利 第一章 从赌徒到市场宗师这一章概述了作者的交易生涯,展示了作者投机的艺术。 任何买卖行为如果不了解进出市场的重要性,或者不根据中期趋势调整投资组合,都是相当愚蠢的。 投机方法综合了各个方面的知识,包括:胜算、市场与交易工具、技术分析、概率统计、经济学、政治学、人类心理学,以及哲学。 所有看盘高手目前仍然掌握一种优势。在拟定交易决策时,你必须绝对相信自己的正确性,但你还必须接受这一事实:市场可以证明你是错误的。换而言之,在被证明为错误之前,你绝对正确。在买进或者买空时,你都必须扪心自问:“在哪个价位上,市场讲证明我是错误的?” 一旦你确定这一价位,市场又触及这个价位时没有任何理由可以阻止你出场。这是最根本的法则:迅速认赔。 结合技术分析、统计方法以及经济基本面等因素,评估任何投机头寸的风险。唯有这三个因素相互配合时,我才会在市场中建立重要头寸。另外,根据我的经验,了解政府当局对市场的既定或潜在干预程度,也很重要。国内外货币政策与财政政策也要了解。不仅要了解政策的影响,你还需要掌管主管当局负责人的个性与心态,并预期他们可能采取的政策。 片段 投机者可以为市场提供不可或缺的流动性。 不可基于帮助朋友的立场,免费提供任何有关市场的建议。 第二章 鳄鱼法则通过多个具体事件,总结影响市场的基本原则,并将原则应用到具体趋势中去。 根据原则思考,重点未必在于你知道多少,而在于你知道内容的真实性与相关性。 在任何领域,明智的决策都需要依赖基本知识(essential knowledge), 使所有事件都可以诉诸于这个统辖因果关系的根本概念中。在金融市场中,基本知识代表的是决定价格趋势的原则。 掌握这种知识,需要持续将明确的具体事件转化为抽象的概念,并将抽象的概念套用在实际的事件上;根据对现在事件的分析,预期长期的未来;以适用近期与过去历史的同一概念,了解现在发生的事件。 片段: 一个人放弃原则时会产生两种主要结果:就个人而言,无法规划未来;就社交而言,无法沟通。 第三章 一致性成功的哲学保障资本是最核心的原则。风险是最重要的因素。 我的哲学基于三个原则,按重要性排列如下:保障资本、一致性的获利能力以及追求卓越的回报。 就风险/回报的角度思考,最大的可接受比例是1:3。如果市场的风险/回报情况很差,我就会持有现金,不论普遍看法如何。所以,我并不关心我的业绩是否可以超越平均水平。我追求的是绝对的回报。 一致性获利能力是保障获利,尽可能减少损失。任何新头寸的规模都应该尽可能的小,因为当期还没有累积获利。另外,你应该预先设定承认自己错误的出场点,一旦行情触及这个价位,你便应该认赔出场。如果第一笔交易发生亏损,任何新头寸都应该根据损失而按比例缩小。依此方式交易,在任何季度结束时,你都不会亏损所有的风险资本。反之,如果你有获利,应该将一部分获利运用在新头寸上,并将其余获利存入银行。 片段 空头市场的最后阶段,是来自健全股票的失望性卖压,不论价值如何,许多人急于对所持的一部分股票求现。 第四章 在混沌的市场中寻找秩序:道氏理论 道氏理论是一种根据普通常识推论的方法,由市场指数来预测未来的市场走势。它不会告诉你,发生变动的原因,但可以显示变动产生之前的征兆。 每一位态度严谨的投机者都应该深入研究道氏理论。 没有任何其他方法可以宣称,它具备长期的一致性预测能力。 道氏理论的假设: 1)主要趋势绝对不会受到认为的操纵。 2)市场指数会反映每一条信息。 3)这项理论并非不会错误 投机者的基本工作是辨识主要的影响因素,它们会驱动或改变市场参与者的主要看法,而市场指数是这方面的最理想的工具。 道氏理论的定理: 1)道的三种走势:第一种是主要趋势,向上或向下的走势被称为多头或空头市场,期间可能长达数年。第二种次级折返走势,是主要多头市场中的重要下跌走势,或是主要空头市场中的反弹。修正走势通常持续三个星期至数个月。第三种走势通常较不重要,它是每天波动的走势。2)主要走势代表整体的基本趋势,正确判断主要走势的方向是投机行为成功与否的最重要的因素。3)空头市场经历的三个阶段:第一阶段,市场参与者不再期待股票可以维持过度膨胀的价格;第二阶段,卖压是反映出经济状况与企业盈余的衰退;第三阶段,来自健全股票的失望性卖压。4)多头市场经历的三个阶段:第一阶段,人们对未来的景气恢复信心;第二阶段,股票对已知的公司盈余改善产生反映;第三阶段,投机热潮转炽,股价明显膨胀。5)次级折返走势,很难判断,却非常重要。 ###]]></content>
</entry>
<entry>
<title><![CDATA[书 《一本书读懂财报》]]></title>
<url>%2F2018%2F02%2F03%2Fstock-book-financial-report%2F</url>
<content type="text"><![CDATA[这本书以通熟易懂的方式介绍了会计的基本知识 三张报表 资产负债表资产负债表只能描述制表时企业的财务状况。是静态的,像是给企业财务拍了张照片。 利润表利润表告诉企业是否赚了钱、在哪里赚了钱。像是给企业的财务状况录了一段视频。 现金流量表“有收入却不等于收到现金”,应收账款还没收回来。“收到了钱却没有收入”,预收了人家的货款却还没发货。“有费用却不需要支付现金”,固定资产的损耗,却不用给别人付钱。“付出了现金却没产生费用”,企业预缴了下一年的房租,换回了这所房子在下一年的使用权。利润= 收入-成本现金= 收到的现金-付出的现金因此,利润不等于现金流。现金流量表是站在风险的角度,揭示了企业的风险状况和持续经营能力。 银行和投资最爱哪张表 银行关注现金流量表,希望企业手头有大量的现金,这样经营风险就会很低。 投资者关注利润表,形成对企业未来盈利的预期。 行业环境对企业做了什么 五力图供应商的议价能力;购买者的议价能力;潜在竞争者进入的能力;替代品的替代能力;行业内竞争者现在的竞争能力; 造纸行业分析 1)2000-2008年,造纸行业产量增加很快。由于纸制品需求旺盛,投资加剧了行业内竞争。2008年后,进入了产能过剩的阶段。 2)原材料成本高,严重依赖进口。说明对上游供应商缺乏谈判能力。 家电行业分析 1)整个家电行业都在进行“削价特卖”,整个行业利润相当薄。 2)销售渠道又被两三家公司垄断,购买方集中,对下游购买方的谈判能力弱。 财务报表对环境的解释 1)毛利率反映了整个行业的竞争环境; 2)应收账款和存货反映了企业对下游购买方的议价能力; 3)固定资产在总资产中的占比反映了行业特点; 4)总资产周转率让我们了解企业的管理状况; 利润和现金流哪个重要 对于企业来说,追求利润最大化是最重要的目的,因此企业存在的目的就是赚钱,所以利润重要; 现金为王,现金出现问题,公司也就完了,所以现金流重要 首先和企业所处行业风险特征有关。风险大则现金流重要,寡头行业风险小,利润重要; 再者,同一企业在不同时期,对利润和现金流的重视情况也会不同。经济形势好的时候,企业格外重视利润;不好的时候,企业格外关注现金流。]]></content>
</entry>
<entry>
<title><![CDATA[现金流]]></title>
<url>%2F2018%2F02%2F03%2Ffinancial-report-cash-flow%2F</url>
<content type="text"><![CDATA[经营活动 直接法直接法,是指通过现金流入和支出的主要类别直接反映来自企业经营活动的现金流量的报告方法。采用直接法报告现金流量,可以揭示企业经营活动现金流量的来源和用途,有助于预测企业未来的现金流量。经营活动现金流入的主要项目包括:(1)销售商品、提供劳务收到的现金(2)收到的税费返还(3)收到的其他与经营活动有关的现金经营活动现金流出的主要项目包括:(1)购买商品、接受劳务支付的现金(2)支付给职工以及为职工支付的现金(3)支付的各项税费(4)支付的其他与经营活动有关的现金经营活动现金流量净额是经营活动现金流入与经营活动现金流出的差额。 间接法间接法是在企业当期取得的净利润的基础上,通过有关项目的调整,从而确定出经营活动的现金流量。采用间接法报告现金流量,可以揭示净收益与净现金流量的差别,有利于分析收益的质量和企业的营运资金管理状况。将“净利润”调整成为“经营活动现金净额”,需要进行以下4类调整计算:(1)扣除非经营活动的损益(筹资和投资活动的损益):处置固定资产、无形资产、其他长期资产的损失;固定资产报废损失;财务费用;投资损失(减收益)。净利润扣除“非经营活动损益”后,得出的是“经营活动净损益”。(2)加上不支付经营资产的费用:计提的减值准备;计提固定资产折旧;无形资产摊销;长期待摊费用摊销;待摊费用减少;预提费用增加。这6种费用已在计算利润时扣除,但没有在本期支付现金,将其加回去,得出“经营活动应得现金”。(3)加上非现金流动资产减少:存货减少(减增加);经营性应收项目减少,包括应收票据减少(减增加)、应收账款减少(减增加)、预付账款减少(减增加)、其他应收款减少(减增加)。(4)加上经营性应付项目增加,包括应付票据增加(减减少)、应付账款增加(减减少)、其他应付款增加(减减少)、应付工资增加(减减少)、应付福利增加(减减少)、应交税金增加(减减少),以及递延税款贷项(该项目的性质比特殊,也可列作非经营损益)。 投资活动投资活动的现金流入项目有:(1)收回投资所收到的现金(2)取得投资收益所收到的现金(3)处置固定资产、无形资产和其他长期资产所收到的现金(4)收到的其他与投资活动有关的现金投资活动的现金流出项目有:(1)购建固定资产、无形资产和其他长期资产所支付的现金(2)投资所支付的现金(3)支付的其他与投资收到的现金投资活动的现金流量净额,是指上述现金流入与现金流出的差额。 融资活动筹资活动的现金流入项目包括:(1)吸收投资所收到的现金(2)借款收到的现金(3)收到的其他与筹资活动有关的现金筹资活动的现金流出项目包括:(1)偿还债务所支付的现金(2)分配股利、利润或偿付利息所支付的现金(3)支付的其他与筹资活动有关的现金筹资活动产生的现金净额,是指筹资活动现金流入与流出的差额。 现金流量/负债现金流量与当期债务比是指年度经营活动产生的现金流量与当期债务相比值,表明现金流量对当期债务偿还满足程度的指标。其计算公式为:现金流量与当期债务比=经营活动现金净流量/流动负债×100%这项比率与反映企业短期偿债能力的流动比率有关。该指标数值越高,现金流入对当期债务清偿的保障越强,表明企业的流动性越好;反之,则表明企业的流动性较差。]]></content>
</entry>
<entry>
<title><![CDATA[财报参数]]></title>
<url>%2F2018%2F02%2F03%2Ffinancial-report-arguments%2F</url>
<content type="text"><![CDATA[财报参数 价值投资第一步,读懂财报 流通股本流通股本是指公司已发行股本中在外流通没有被公司收回的部财报参数。只有中国有,有一些法人股,国有股不能交易。 流动性比率流动性比率=流动资产/流动负债,一般来说,流动性比率不宜过高,也不宜过低。流动性比率低于1,往往说明企业短期偿债能力弱,具有较高的财务风险;流动性比率若是过高,则说明企业利用短期资本的能力不足。一般认为流动性比率在2左右比较合适。 净资产净资产 = 总资产 - 负债 = 股东权益 每股净资每股净资产是指股东权益与股本总额的比率。其计算公式为:每股净资产= 股东权益÷总股本)。这一指标反映每股股票所拥有的资产现值。每股净资产越高,股东拥有的资产现值越多;每股净资产越少,股东拥有的资产现值越少。通常每股净资产越高越好。 资产收益率资产收益率= 净利润/总资产,用以衡量公司运用自有资本的效率。从非常广义的角度看,如果非金融公司的资本收益率能始终达到7%,他就有可能在竞争中傲视群雄。《巴菲特的护城河》 净资产收益率/股东权益回报率净资产收益率= 税后利润/净资产,用以衡量公司运用自有资本的效率。根据总体经验判断,我们可以把15%作为竞争能力的临界值。只要企业的股东权益回报率长期达到或者超过15%,它更有可能拥有护城河。《巴菲特的护城河》 公积金= 资本公积和盈余公积公积金是公司的“最后储备”,它既是公司未来扩张的物质基础,也可以是股东未来转赠红股的希望之所在。没有公积金的上市公司,就是没有希望的上市公司。 盈余公积(Surplus reserve)各种积累资金。盈余公积包括法定盈余公积、任意盈余公积、法定公益金。指企业从税后利润中提取形成的、存留于企业内部、具有特定用途的收益积累。 未分配利润未分配利润 = 利润总额 - 税费 - 盈余公积 现金流量现金流量分为三大类:经营活动现金流量、投资活动现金流量和筹资活动现金流量。 经营活动是指直接进行产品生产、商品销售或劳务提供的活动,它们是企业取得净收益的主要交易和事项。 投资活动,是指长期资产的购建和不包括现金等价物范围内的投资及其处置活动。 筹资活动,是指导致企业资本及债务规模和构成发生变化的活动。]]></content>
</entry>
<entry>
<title><![CDATA[docker 入门]]></title>
<url>%2F2018%2F02%2F02%2Fdocker-intro%2F</url>
<content type="text"><![CDATA[docker 入门 linux启动docker服务sudo systemctl start docker 建立一个containersudo docker run -i -t –name=fun ubuntu /bin/bash 显示所有containerdocker ps -a 启动containersudo docker start fun 进入到已经启动的containersudo docker attach fun 守护containersudo docker run -i -t –name=daemon -d ubuntu /bin/bash -c “while true; do echo hello world; sleep 1; done”查看日志sudo docker logs -ft daemon 检测container中的进程sudo docker top daemon 在container中执行命令sudo docker exec -d daemon touch /etc/new_configsudo docker exec -i -t daemon /bin/bash 停止contianersudo docker stop fun docker退出后,重新启动sudo docker run -i -t –name=daemon2 –restart=always -d ubuntu /bin/bash -c “while true; do echo hello world; sleep 1; done” 删除containersudo docker rm funsudo docker rm `docker ps -a -q` 镜像images 列出所有imagessudo docker images 下载imagesudo docker pull fedora 搜索imagesudo docker search puppet build默认从失败的步骤继续buildsudo docker build -t=”zhizouxiao/static_web” .指定无缓存sudo docker build –no-cache -t=”zhizouxiao/static_web” . 查看image历史sudo docker history c7039fdaee4d 运行build之后的image, host端口为8080,container端口为80sudo docker run -p 8080:80 –name=static_web zhizouxiao/static_web nginx -g “daemon off;”]]></content>
</entry>
<entry>
<title><![CDATA[炒股书单]]></title>
<url>%2F2018%2F01%2F28%2Fstock-book%2F</url>
<content type="text"><![CDATA[已读书单:《聪明的投资人》《日本蜡烛图技术》《投资中最简单的事》《投资中最重要的事》《炒股的智慧》 未读书单:《股市进阶之道》《证券分析上下》《一本书读懂财报》《估值的艺术》《策略投资》《金融炼金术》《巴菲特的护城河》《货币金融学》《随机漫步的傻瓜》《巴菲特致股东的信》]]></content>
</entry>
<entry>
<title><![CDATA[炒股日志]]></title>
<url>%2F2018%2F01%2F28%2Fstock-note%2F</url>
<content type="text"><![CDATA[每周记录炒股日志,股市如海,扬帆起航。炒股一周亏损32.07。 买了很多书,接受了很多大师的思想。但是距离形成自己的认知还有很长的路要走。五年的入门时间,我打算用一年时间来完成。]]></content>
</entry>
<entry>
<title><![CDATA[关于我的处境]]></title>
<url>%2F2018%2F01%2F28%2Frecent-note%2F</url>
<content type="text"><![CDATA[我必须清楚客观地认识到自己当前的处境,这样有助于帮助自己规划以后的时间,避免周期性职业焦虑。我是个一般水平靠上的程序员,持续学习,让我保持一般水平的竞争力。 保持对大多事物的好奇心,尤其是技术方面。积极地参与未来可能发生的事情。变老有很多种方法,保持年轻的办法只有一种。 对这个世界不要带有成见。不要愤世嫉俗,不要大惊小怪。世界永远不会错,存在就是合理的。事情发生了就要接受,用心去理解。要学会与世界和平共处,无论情绪如何,世界就在那儿。记住美好的,忘记丑陋的。别忘了自己可以很开心的活着。 世界上大多数问题都有解决方案,不要一筹莫展,也不要指望一蹴而就。现实就是这样,永远需要一点点耐心,等一等就会海阔天空。 毕竟只有一辈子,按照自己的想法活着吧。]]></content>
</entry>
<entry>
<title><![CDATA[书《投资中最简单的事》]]></title>
<url>%2F2018%2F01%2F24%2Fstock-book-the-simple-things-in-investment%2F</url>
<content type="text"><![CDATA[投资中最简单的事 作者是铁杆价值投资者,价值投资在A股更适合简洁不是把杂乱无章的东西变少或者拿掉,而是要挖掘复杂性的深度。你必须深刻地把握精髓,从而判断出哪些不重要的是可以拿掉的。在好行业中挑选好公司,然后等待好的价格时买入。世界上不存在每年都有效的投资方法。第一,价值投资是有效的;第二,价值投资不是每年都有效的;第二点是第一点的保证。 好公司的两个标准: 一是它做的事情别人做不了;(门槛高)二是它做的事情自己可以重复做。(成长快) 门槛高 > 成长快 反例:手游和电影。手游大家都在做,形不成门槛。而且即使一次成功了,很难做出第二个爆款,利润大部分被平台分流。电影的定价权在演员和导演手里,电影公司不挣钱。迪士尼能够历经百年屹立不倒,很重要的原因是米老鼠和唐老鸭不会要求片酬。 正例:银行VS网上银行互联网的本质是“人生人”,优势在于能以极低的成本服务无数的客户,二八现象不明显,是典型的散户经济,得散户者得天下。银行的本质是“钱生钱”,规模效应在于钱多,二八现象显著,得大户者得天下。 喜新厌旧为什么几年前声势浩大的风电、光伏、LED、锂电池等新兴行业千般扶持,却总是烂泥扶不上墙?为什么银行地产千般打压却总赚得盆满钵满?这是由内在的经济规律、行业格局、供求关系和商业模式决定的,不以人的意志为转移。而且它三五年是不会有大的变化的,能为理解这些规律的投资人提供持续的竞争优势。 逆向投资未来超额收益的重要源泉 一个下跌的股票是否值得逆向投资的关键在于以下三点: 首先,看估值是否够低,是否已经过度反映了可能的坏消息。食品安全相关的例子:塑化剂,毒奶粉等。 其次,看遭遇的问题是否是短期问题、是否是可解决的问题。 最后,看股价暴跌本身是否会导致公司的基本面恶化,即索罗斯所说的反身性。 有些股票下跌时,你一点也不慌,甚至希望它多跌一点好加仓,这说明你对该股票已有足够了解,对其内在价值和未来前景有比市场更为精准的把握。买之后的淡定,源于买之前的分析。 逆向投资的短板是经常会买早了或者卖早了。买早了要熬得住,卖早了等下一班。 便宜是硬道理 贪婪有两种,一种是在6000点时明知贵了,还想多等一会儿再卖;另一种是在2000点时觉得便宜了,但还想等多跌一会儿再买。 价格本质上是一种货币现象。 投资中影响股价涨跌的因素是无穷无尽的,但是最重要的其实只有两点,一个是估值,一个是流动性。估值就是价格相对于价值是便宜了还是贵了,估值决定了股票能够上涨的空间,流动性则决定了股市涨跌的时间。虽然央行已经降低了存款准备金,但是经过了一年多的时间,大家仍然觉得资金紧张。流动性的改善需要时间,也就是说政策从预调、微调,到最终能够成为市场向上的推力,这个转变也需要时间。 流动性紧了,很多东西的价格就会撑不住。所有价格其实是一种货币现象,就是说你的资金跟你的所有东西的价格之和是一致的。钱多了,所有东西的价格上涨,钱少了,所有东西就会下跌。 只要你买的便宜,才能卖的便宜。 选股票先要选行业。选择有门槛、有积累、有定价权的行业。技术变化快的行业辛苦,而可口可乐一个配方可以一两百年不变。如,工程机械、核心汽配、白色家电等高端制造业。 三个层次的悲观 1)基于流动性和供求关系的悲观。 2)对基本面的悲观。随着世界慢慢进入一种胜者为王,赢家通吃的年代, 我们确实会发现一部分公司具有强大的定价权:能够卖多少钱就卖多少钱,想怎么收费就怎么收费。 3)对中国经济增长模式的悲观。 永久性亏钱的两个原因: 1)市盈率压缩。 2)利润在历史最高点,夕阳行业就有本金永远性丧失的风险。 投资的三个基本问题 估值。投资分析的基本工具:分别解决的是好行业、好公司、好价格的问题。 1) 波特无力分析;不要孤立的看待一只股票,而要把一个公司放到行业的上下游产业链和行业竞争格局的大背景下分析,重点搞清楚:公司对上下游的议价权、与竞争对手的比较优势、行业潜在进入者的门槛。 2) 杜邦分析;弄清楚公司过去5年究竟是靠什么模式赚钱的(高利润、高周转还是高杠杆),然后看公司战略规划、团队背景和管理执行力是否与商业模式一致。 3) 估值分析。 通过同业横比和历史纵比,加上市值与未来成长空间比,在显著低估时买入。 品质。就是搞明白是不是一个好生意。 1) 政府扶持。扶持其实是鼓励更多的人进入行业而加剧了竞争,打压却限制了新增供给,反而改善了竞争格局并且让行业龙头做大。 2) 差异化:品牌;用户黏度;单价;转换成本;网络服务;先发优势。 3) 基金业是得人才者得天下,高端消费品是得品牌者得天下,低端消费品是得渠道者得天下,无差异中间品是得成本者得天下,制造业是得规模者得天下,大宗品是得资源者得天下。 时机。选时是最接近艺术的,也是最不可控的。 投资理念VS具体知识。 如果把投资比成项链,那么投资理念就是线,对公司、行业的具体知识就是珠子。只有珠子没有线的人是行业专家;只有线没有珠子的人是投资理论家。 安全边际 东方不亮西方亮。对未来要求太高的股票是没有安全边际的。例:工程机械。机械可以替代人工、保障房、城镇化、产业升级、产业转移、产能扩张、中西部大开发、进口替代、国际化,哪一条对工程机械都是利好。 低估值到足以反映大多数可能的坏情况。 止损忘掉你的成本是成功投资的第一步。忘掉成本,也就不存在亏损股和盈利股的区别,也就不会总希望在哪儿跌倒,在哪儿爬起来。投资就是个不断比较不同股票的过程,与成本无关。]]></content>
</entry>
<entry>
<title><![CDATA[书《聪明的投资者》]]></title>
<url>%2F2018%2F01%2F20%2Fstock-book-the-intelligent-investor%2F</url>
<content type="text"><![CDATA[聪明的投资者 价值投资鼻祖格雷厄姆本书的目的,是为普通人在投资策略的选择和执行方面提供相应的指导。相比较而言,本书很少谈论证券分析的技巧,而将注意力更多地集中于投资的原理和投资的态度方面。要想聪明地投资,你必须事先对不同的债券和股票在不同条件下的表现有足够的知识,有些场景会在一个人的经历中重演。忘记过去的人必将重蹈覆辙。—— George Santayana 桑塔耶纳 导言 股票市场最终会回归正常,这意味着,无论是投机者还是股票投资者,都不得不准备承受其股票大幅缩水乃至长期套牢,或者上涨。 过去几年,我们之所以会在股票投资中遭受惨重的损失,都是因为我们在买股票时忘了问一声:“它价值几何?” 投资的艺术具有一种并不广为人知的性质。普通投资者只需要付出很小的努力和能力,就可以取得一种可靠的成果;但是,要想提高这一可轻易获得的成果,却需要付出大量的努力和非同小可的智慧。 “Obvious prospects for physical growth in a business do not translate into obvious profits for investors.”如黄金,科技,保险,房地产,新能源 投资与投机:聪明投资者的预期收益 投资与投机的区别,投资操作是以深入分析为基础,确保本金的安全,并获得适当的回报;不满足这些要求的操作就是投机。 大多数时期,投资者必须认识到,所持有的普通股经常会包含一些投机成分。自己的任务则是将投机成分控制在较小的范围,并在财务和心理上做好面对短期或长期不利后果的准备。 至于那些力求发现最有前景的股票的投资者,无论其着眼于短期还是长期,他们都会面临两重障碍:首先,人总是会犯错误;其次,人的竞争能力有限。他也许会错误地预测未来;即使其判断无误,当前的市场价格也许已经充分体现了他的这种预测。就短线择股而言,公司当年的业绩已经成为华尔街众所周知;公司次年的业绩-如果能够预测,也已经被人们仔细考虑过了。有多少投资者可以指望自己在聪明才智和预测能力上超过专业分析师呢? 要想能够持续并合理地获得优于平均业绩的机会,投资者必须遵循两种策略: a. 具有内在稳健性和成功希望的策略 b. 并不流行的策略(购买被低估的证券) 防御型投资者与普通股 普通股的投资规则 a. 适当但不要过分分散化,你的持股数应限制在最少10只,最多30只不同的股票之间。 b. 挑选的每一家公司应该是大型的、知名的、在财务上是稳健的。这些形容词必然会有一定的含糊性,但其意义很清除。 c. 每家公司都应具有长期连续支付股息的历史。 d. 投资者应该将其买入的股票的价格限制在一定的市盈率范围,其参照每股收益,应取过去7年的平均数。对于这个平均数其市盈率应控制在25倍以内;如果是过去12个月的利润,则应控制在20倍以内。 投资者应买入何种证券以及追求多高的投资回报率,不能以个人的资金多寡为依据,而要看自己在金融方面的能力,其中包括知识,经验和性格等。 何为大型的,知名的和财务稳健的公司?普通股的账面价值必须不低于总资本的一半,才称得上是财务稳健。大型:总资产不低于5000万。知名:其规模应位于所在行业的前1/4或1/3。 积极型投资者的证券组合策略:主动的方法 成长股的两种复杂情况: a. 业绩记录很好而且看上去很有前途的普通股,其价格也相应很高。预期收益可能已经包含在股价中。 b. 一般情况下,公司的快速成长不可能永久持续下去。达到某一时点,增长曲线就会平缓,许多情况下会下降。 1961-1970年的10年间,45家“成长基金”公司总体的平均收益为108%, 同期标准普尔的收益约为105%。1969-1970两年,大多数的业绩不如标准普尔。 从一家公司的投资中获取的巨额财富,几乎总是由下列人来实现的: 他们与特定公司有密切联系(通过雇佣或亲属),从而使他们将自己大部分的资金以一种方式投进去,而且在各种情况下都始终持有这部分投资。 三种可用的领域: a. 不受欢迎的大公司 选择低市盈率的同时,要考虑利润极不稳定的公司,市场会做出保守股价。 b. 购买廉价证券 廉价证券:根据分析确立的事实,这种证券的价值似乎要高于其售价。(如何评估) 价格被低估的两个重要因素: a. 当期令人失望的结果 b. 长期被忽视或不受欢迎 仅观察利润和股价的同时下跌是不够的。还应该要求,过去10年或更长时间内的利润至少具有较好的稳定性(没有赤字的年份);同时,还要要求公司具有足够的规模和实力,以应对未来有可能出现的困难。理想情况是,一家著名的大公司的股价大大低于过去的平均价,又大大低于其过去平均的市盈率。 二类企业廉价证券的情况 1)没有在重要行业占据领导地位的企业, 不包含成长股。 2)在经济萧条时,二类企业的股价比一类低许多。 积极投资者必须拥有大量的证券评估知识,才能把自己的证券业务看作一种事业。被动和主动地位之间,并不存在着一种或一系列中间概念。 投资者与市场波动 道式择时交易理论,简单的讲,这种方法就是把股票指数上涨时的某一个特殊突破点看作购买信号,而下跌时的类似突破点看作卖出信号。 根据对这个问题所做的许多研究,道式理论结果的变化并非是偶然的。它反应来商业和金融领域的预测和交易方法所固有的特征。有些方法之所以获得支持和变得重要,是因为它们在某个时期表现的很好,或者有时仅仅是因为,他们似乎能够与以往的统计记录相适应。但是,随着它们被越来越多的人接受,其可靠性一般会下降。原因: 1)随着时间的推移,会带来一些以前的方法无法适应的新情况 2)在股市交易方面,某一理论广受欢迎这种现象本身会对市场行为产生影响,从而削弱这种理论的长期盈利。 “贱买贵卖”, 我们认为,投资者的下列做法是不现实的,等到出现明显的熊市价格水平时采取购买任何普通股。 程式方案 股市上的任何赚钱方法,只要它容易理解并且被许多人采纳,那么,这种方法本身就会因为太简单、太容易而无法持久。所有美好的东西,都是即罕见又复杂的。 “All things excellent are as difficult as they are rare.” 一位真正的投资者不太可能相信,股市每日或每月的波动会使自己更加富有或更加贫穷。即使是聪明的投资者,也可能需要很强的意志力来防止自己的从众行为。 企业价值与股市价值的矛盾,公司过去的记录和未来前景越好,其股价与账面值之间联系越小。溢价越大,决定公司内在价值的基础越不稳定。 稳健的投资者的建议,购买售价接近公司有形资产价值的股票——比如,高于有形资产价值的部分不超过三分之一。同时,要有合理的市盈率,足够强有力的财务地位,以及几年内的利润至少不会下降。 股市经常会出现严重的错误,而且敏锐和大胆的投资者有时可以利用其明显存在的错误。 大多数企业的特点和经营质量都会随着时间的变化而变化,有时会变得更好,但更多的情况下是变得更差。投资者不必一直紧盯着公司的业绩,只需要时不时地对其进行细致观察。 一个真正的投资者很少被迫出售自己的股份;而且在绝大多数时间里,他都可以不去理会当期的股价。 价格波动对真正的投资者只有一个重要意义,即当价格大幅度下跌后,给投资者买入的机会。 不要在股价出现大幅上涨后立即购买股票,也不要在股价出现大幅下跌后立即出售股票。 普通投资者证券分析的方法 数学估价的方法在那些人们认为它不太可靠的领域却非常流行。 非职业投资者至少应该懂得证券分析师正在谈论什么,及其含义是什么。此外,他还应该尽可能地区分表面分析与深入严谨的分析。 就普通投资者而言,证券分析应该从理解公司的年度财务报告开始。 对每股收益的思考防御型投资者的股票选择积极型投资者的股票选择作为投资中心思想的“安全边际”]]></content>
</entry>
<entry>
<title><![CDATA[stock-basic-the-intelligent-investor]]></title>
<url>%2F2018%2F01%2F20%2Fstock-basic-the-intelligent-investor%2F</url>
<content type="text"></content>
</entry>
<entry>
<title><![CDATA[换手率]]></title>
<url>%2F2018%2F01%2F20%2Fstock-basic-turnover-rate%2F</url>
<content type="text"><![CDATA[换手率的高低往往意味着这样几种情况: 股票的换手率越高,意味着该只股票的交投越活跃,人们购买该只股票的意愿越高,属于热门股;反之,股票的换手率越低,则表明该只股票少人关注,属于冷门股。 换手率高一般意味着股票流通性好,进出市场比较容易,不会出现想买买不到、想卖卖不出的现象,具有较强的变现能力。然而值得注意的是,换手率较高的股票,往往也是短线资金追逐的对象,投机性较强,股价起伏较大,风险也相对较大。 将换手率与股价走势相结合,可以对未来的股价做出一定的预测和判断。某只股票的换手率突然上升,成交量放大,可能意味着有投资者在大量买进,股价可能会随之上扬。如果某只股票持续上涨了一个时期后,换手率又迅速上升,则可能意昧着一些获利者要套现,股价可能会下跌。 投资者结构。以个人投资者为主体的证券市场,换手率往往较高;以基金等机构投资者为主体的证券市场,换手率相对较低。世界各国主要证券市场的换手率各不相同,相差甚远,相比之下,中国股市的换手率位于各国前列。]]></content>
</entry>
<entry>
<title><![CDATA[市盈增长率PEG]]></title>
<url>%2F2018%2F01%2F20%2Fstock-basic-peg%2F</url>
<content type="text"><![CDATA[市盈率的定理说明:市盈率与预期增长率、风险、增长持续期等要素相关,低市盈率并不意味着股价被低估,而可能是企业风险较大或增长比较缓慢的结果,因此,在比较市盈率时,我们需要考虑控制增长率、风险等因素。由于增长率是影响市盈率的最主要方面,所以有一个专门的指标用以反映调整了增长预期后的市盈率,称为“市盈成长比率”,即PEG 计算方法是用市盈率(PE)比上预期的每股收益增长率(G)和100的乘积,PEG估值法是Peter Lynch发明的一种估值方法,与市盈率PE估值法相比较,该指标引进了公司业绩增长的概念,改变了运用单一的市盈率方法去判断公司价值的做法,PEG不同比率对应不同的含义: 当PEG等于1时,表明市场赋予这只股票的估值可以充分反映其未来业绩的成长性; 当PEG大于1,则这只股票的价值就可能被高估,或市场认为这家公司的业绩成长性会高于市场的预期。通常,成长型股票的PEG都会高于1,表明投资者愿意给予其高估值,认为这家公司未来很有可能会保持业绩的快速增长,这样的股票就容易有超出想象的市盈率估值; 当PEG小于1时,或是市场低估了股票的价值,或是市场认为其业绩成长性可能比预期的要差。通常价值型股票的PEG都会低于1,以反映低业绩增长的预期; 比较不同企业的PEG需要将它们置于相同的前提之下,尤其是每股收益的预期增长率,它或可以是3年的复合增长率,也可以是未来一年的增长率,但比较双方的计算基础必须相同; 不必进行相对价值比较时,PEG也是一个衡量绝对投资价值的参考指标,通常市盈率低于增长率,即PEG小于1的股票是理想的投资对象。 像其他财务指标一样,PEG也不能单独使用,必须要和其他指标结合起来,仅仅依据PEG来评断股票是否估值过高或过低,是没有坚实理论支持的,这里最关键的还是对公司业绩的预期。在此,笔者想指出使用PEG指标可能存在的局限性: PEG对利率较为敏感,在低利率的市场情况下,很少有股票会估值过低,反之亦然; 当公司趋向成熟时,它的PEG将受公司不断变化的风险、股息以及再投资项目影响; 尽管对不同公司的PEG可以进行比较,但它却受公司的构成影响(如,公司的业务组合、经营风险以及成长状态);对于那些不以盈利为股票估值因素的公司(如资产支持型公司)来说,PEG并不能准确反映其增长速度。]]></content>
</entry>
<entry>
<title><![CDATA[市盈率PE]]></title>
<url>%2F2018%2F01%2F20%2Fstock-basic-pe%2F</url>
<content type="text"><![CDATA[静态市盈率=股票现价÷当期每股收益 动态市盈率(TTM)=股价/过去四个季度的EPS;(EPS: Earnings Per Share 每股盈余) 动态市盈率(PEG),其计算公式是以静态市盈率为基数,乘以动态系数。 该系数为1/(1+i)n,i为企业每股收益的增长性比率,n为企业的可持续发展的存续期。上市公司目前股价为20元,每股收益为0.38元,去年同期每股收益为0.28元,成长性为35%,即i=35%,该企业未来保持该增长速度的时间可持续5年,即n=5,则动态系数为1/(1+35%)5=22%。相应地,动态市盈率为11.6倍(静态市盈率:20元/0.38元=52倍;动态市盈率:52倍×22%=11.6倍)。]]></content>
</entry>
<entry>
<title><![CDATA[股票基础]]></title>
<url>%2F2018%2F01%2F20%2Fstock-basic%2F</url>
<content type="text"><![CDATA[股票的基本概念 总结一下股票相关名词以及作用, 包含中英文两种解释, 以便更清晰的掌握基础知识。 市盈率股票的市盈率(Price-to-Earning Ratio,P/E或PER),指每股市价除以每股盈利(Earnings Per Share,EPS),通常作为股票是便宜或昂贵的指标。市盈率把企业的股价与其制造财富的能力联系起来。 市盈增长率 (PEG: Price/Earnings To Growth ratio)市盈增長率(PEG)=市盈率(P/E)÷年度每股盈利增長率(Annual EPS Growth Rate) 市净率(英语:Price-to-Book Ratio, P/B或PBR,股价净值比)股票的市净率=每股市价/每股净资产, 通常作为股票孰贱孰贵的指标之一。 换手率(Turnover Rate)周转率(换手率)=(某一段时期内的成交量)/(发行总股数)x100% 量比量比是衡量相对成交量的指标。它是开市后每分钟的平均成交量与过去5个交易日每分钟平均成交量之比。 若是突然出现放量,量比指标图会有一个向上突破,越陡说明放量越大(刚开市时可忽略不计)。 若出现缩量,量比指标会向下走。 当量比大于1时,说明当日每分钟的平均成交量大于过去5日的平均值, 成交放大;交易比过去5日火爆; 当量比小于1时,说明当日成交量小于过去5日的平均水平。成交萎缩。 委比委比=(委买手数-委卖手数)/(委买手数+委卖手数)×100% 委比值的变化范围为-100%到+100%, 当委比值为—100%时,它表示只有卖盘而没有买盘,说明市场的抛盘非常大; 当委比值为+100%时,它表示只有买盘而没有卖盘,说明市场的买盘非常有力。 当委比值为负时,卖盘比买盘大; 而委比值为正时,说明买盘比卖盘大。 委比值从—100%到+100%的变化是卖盘逐渐减弱、买盘逐渐强劲的一个过程。]]></content>
</entry>
<entry>
<title><![CDATA[总结最近的转变]]></title>
<url>%2F2018%2F01%2F20%2Frecent-note%2F</url>
<content type="text"><![CDATA[最近开始研究股票,感觉像是发现了新大陆, 新的概念和知识让我对这片领域异常憧憬。人类活动或多或少的被经济或者说金钱影响,这些活动在时间纬度上相互交织,构成了这个复杂而迷人的世界。 know the world better. 这是我一直以来的座右铭。在这句话的指引下,我坚持学习英语,读各个领域的书,了解世界不同国家和地区的文化。而经济作为这个世界运转的基础,却被我大意的错过了。在粗略的看了几本书之后,我对这片领域深深的吸引了。这片领域的知识量相当大,有着多学科的为背景,汇集了世界上最聪明的人。 毫无疑问,这将成为今年的主要工作。第一个小目标是了解领域内所有知识。]]></content>
</entry>
<entry>
<title><![CDATA[书 《Just for fun》]]></title>
<url>%2F2017%2F06%2F25%2Fbook-just-for-fun%2F</url>
<content type="text"><![CDATA[Just for fun nobody can predict future, not even linus. Number One is: “Do unto others as you would want them to do unto you.” If you follow that rule, you’ll always know how to behave in any situation. Number Two is: “Be proud of what you do.” Number Three: “And have fun doing it. what I find to be unacceptable is when people, either leaders or followers, then try to impose their own world views on others. I’m a big believer in individual choice, which means that I think I should make my own decisions when it comes to moral issues. “Ain’t no time to hate.” What really sells, of course, is perception, not reality. Cruise liners sell the perception of freedom, of the salty seas, of good food and romance of Love Boat proportions. In fact, nobody even wants a computer. What everybody wants is this magical toy that can be used to browse the Web, write term papers, play games, balance the checkbook, and so on. And I, as a technologist, know that technology drives nothing. It is society that changes technology, not the other way around. Technology just sets the boundaries for what we can do, and how cheaply we can do it. my argument went, in order to understand the evolution of society, you have to understand what really motivates people. Is it money? Is it success? Is it sex? What fundamentally makes people do what they do? “that’s it: Survival. Your place in the social order. And entertainment.”]]></content>
</entry>
<entry>
<title><![CDATA[Mac相关]]></title>
<url>%2F2017%2F04%2F29%2Fmac-related%2F</url>
<content type="text"><![CDATA[Mac相关12345# mac启动ftp服务器sudo -s launchctl load -w /System/Library/LaunchDaemons/ftp.plist# mac检查占用80端口的进程sudo lsof -n -i:80 | grep LISTEN]]></content>
</entry>
<entry>
<title><![CDATA[工作总结0429]]></title>
<url>%2F2017%2F04%2F29%2Fwork-log%2F</url>
<content type="text"><![CDATA[最近找工作和一些其他事,总结出: 工作重点在后端, 在后端精通后,在考虑学习前端。 今年要在后端有所进展,包括网络/数据库/多线程/代码规范。 小公司大多不靠谱,领导层容易有偏见,工作辛苦而且技术得不到积累。 下一份工作一定要慎重。 保持对工作机会的敏感度。 对一些基础知识,要有自己的理解和总结。]]></content>
</entry>
<entry>
<title><![CDATA[tool-tmux]]></title>
<url>%2F2017%2F04%2F22%2Ftool-tmux%2F</url>
<content type="text"><![CDATA[session 管理1234567891011121314151617181920211. 新建session tmux new -s session_name 2. 进入session tmux attach -t session_name 3. 切换sessiontmux switch -t session_name4. 列出所有session tmux list-sessions 5. 离开sessiontmux detach (prefix + d)6. 关闭sessiontmux kill-session -t session_name window管理123456781. 新建window tmux new-window (prefix + c)2. 切换windowtmux select-window -t :0-9 (prefix + 0-9)3. 重命名windowtmux rename-window (prefix + ,) pane 管理12345678910111213141516171. 垂直拆分tmux split-window (prefix + ")2. 水平拆分tmux split-window -h (prefix + %)3. 交换tmux swap-pane -[UDLR] (prefix + { or })4. 选择tmux select-pane -[UDLR](prefix + [arrow])5. 最大化当前窗口/还原tmux resize-pane (prefix + z)6. 关闭最大窗口tmux close-pane (prefix + x) 其他1234567891. 加载配置文件tmux source-file .tmux.conf2. 复制 .tmux.confbind [ copy-modebind-key -t vi-copy 'v' begin-selection # Begin selection in copy mode.bind-key -t vi-copy 'V' rectangle-toggle # Begin selection in copy mode.bind-key -t vi-copy 'y' copy-selection # Yank selection in copy mode.bind ] paste-buffer]]></content>
</entry>
<entry>
<title><![CDATA[linux 相关]]></title>
<url>%2F2017%2F04%2F08%2Flinux-related-note%2F</url>
<content type="text"><![CDATA[不打印日志12scp file [email protected] > /dev/null 2>&1# 2>&1 出错日志和输出日志]]></content>
</entry>
<entry>
<title><![CDATA[书 《the start-up of you》]]></title>
<url>%2F2017%2F04%2F06%2Fbook-the-start-up-of-you%2F</url>
<content type="text"><![CDATA[the start-up of you 随着社会变化的加快,工作变为短期合同,为了适应变化,书中推荐普通人也要像企业家一样来对待自己的职业生涯。对我以后的职业有指导意义。 Make a list of your key uncertainties, doubts, and questions you have about your career at the present moment. Make a list of the hypotheses you’re develop. Write out your current Plan A and Plan Z, and jot some notes about what possible Plan B moves might be in your current situation. Make a plan to develop more transferable skills, those skills and experiences that are broadly useful to potential other jobs. Writing skills, general management experience, technical and computer skills, people smarts, and international experience or language skills are examples of skills with high option value—that is, they are transferable to a wide range of possible Plan B’s. Begin on an experimental side project that you work on during some nights and weekends. Orient it around a skill or experience that is different but related—something that either enhances what you do now or can serve as a possible Plan B if your Plan A doesn’t work out. Ideally, collaborate on this project with someone else in your network. Establish an identity independent of your employer, city, industry. Reserve a personal domain name (yourname.com). Print up a second set of business cards with just your name on it and a personal email address. Reach out to five people who work in adjacent niches and ask them to coffee. Compare your plans with theirs. Keep up these relationships over time so you can access diverse information and so you’re in a better position to potentially pivot to those niches when necessary. World-class professionals build networks to help them navigate the world. No matter how brilliant your mind or strategy, if you’re playing a solo game, you’ll always lose out to a team. In alliances, resources and assistance flow both ways. The fastest way to change yourself is to hang out with people who are already the way you want to be. While most people have a small circle of close friends, they maintain a large circle of these valued acquaintances and colleagues. Relationship builders prioritize high-quality relationships over a large number of connections. The first is professional allies. Who would be in your corner in a conflict or when you come under stress? Whom do you invite to dinner to brainstorm career options? Whom do you trust and proactively try to work with if you can? From whom do you solicit feedback on key projects? Whom do you review life goals and plans with? These are your allies. Many people can maintain at most eight to ten strong professional alliances at any given point in time. The Strength of Weak Ties: The friends you don’t know very well are the ones who refer winning jobs. Weak ties can uniquely serve as bridges to other worlds and thus can pass on information or opportunities you have not heard about. Here we want to explore how opportunities flow through congregations of these people. Those with good ideas and information tend to hang out with one another. You will get ahead if you can tap the circles that dish the best opportunities. It’s how people have gotten ahead for centuries. 1)Overall, it’s probably not as risky as you think. 2)Is the worst-case scenario tolerable or intolerable? 3)Can you change or reverse the decision midway through? Is Plan B doable? Remember: If you don’t find risk, risk will find you. Who You Know Is What You Know. Remember Iwe: an individual’s power is raised exponentially with the help of a network.]]></content>
</entry>
<entry>
<title><![CDATA[书《细雪》]]></title>
<url>%2F2017%2F04%2F06%2Fbook-xixue%2F</url>
<content type="text"><![CDATA[细雪 有助于了解抗战时期,日本上层社会的状态。 类似红楼梦,有助于了解日本文化。在家族、阶级观念、文化修养等方面与中国文化神似,但在接受西方外来事物上,日本文化保持着迥然不同的开放态度。 我一见那花,就像被它吸了进去似的。 丹生夫人平常和幸子总说大阪话,今天也许是为了做陪客吧,竟然满口东京话,仿佛变成了另外一个人,简直无法说一句知心话了。 遗产 可是鹤子由于很早就主持家务,根本没有空闲时间去旅行。再说她觉得哪里都比不上大阪,看戏可以看雁治郎,上馆子可以去播半或鹤屋,对她来说,这就心满意足了,不愿意去陌生的地方。 大家一致同意。吃完晚饭,贞之助、幸子、悦子和妙子都聚集在供着赏月果品的那间日本式屋子的廊檐下,让阿春磨墨,摊开卷纸,贞之助写了一首和歌,幸子和悦子每人写一首俳句,妙子在这方面不擅长,她就画了一幅松林悬月的水墨写生画。 尽管有一个时期他不愿意让雪子回来,但现在反倒有点内疚了。因此他无微不至地吩咐女佣准备好洗澡水,让雪子一到家就能入浴;又说晚饭一定在火车上吃过了,不过临睡前还得吃点东西,叫人取出两三瓶雪子喜欢的白葡萄酒,亲手抹去瓶子上的尘埃,查看出厂的年代。 和呆在大阪的时候不一样了,无论做什么,没有人批评指摘,她爱怎样就怎样,轻松愉快得很。再说东京这个地方尊重女子的个性,不受社会风气的拘束,比如穿衣服吧,可以挑自己合适的穿,这些都比大阪好。 现在想起来,一个月以前这个妹妹打扮出这样一副意态可嘉的模样而且拍了这样的照片,似乎并非偶然,几乎带点不祥的兆头。]]></content>
</entry>
<entry>
<title><![CDATA[读书 2017]]></title>
<url>%2F2017%2F04%2F06%2Fbooks-I-have-read%2F</url>
<content type="text"><![CDATA[2017-03-15 细雪 2017-04-06 the start-up of you 2017-06-25 Just for Fun : The Story of an Accidental Revolutionary]]></content>
</entry>
<entry>
<title><![CDATA[(linux网络)tc]]></title>
<url>%2F2016%2F12%2F21%2Flinux-network-tc-commond%2F</url>
<content type="text"><![CDATA[tctc 网络状况 增加延迟100ms ± 10mstc qdisc change dev eth0 root netem delay 100ms 10ms 增加延迟100ms ± 10ms, 下一个随机数25%依赖于上一个tc qdisc change dev eth0 root netem delay 100ms 10ms 25% 随机丢包0.1%tc qdisc change dev eth0 root netem loss 0.1%]]></content>
</entry>
<entry>
<title><![CDATA[(linux网络)netstat]]></title>
<url>%2F2016%2F12%2F16%2Flinux-network-commond%2F</url>
<content type="text"><![CDATA[netstatnetstat 用于列出所有tcp,udp连接 显示当前所有活动的网络连接 ~ » netstat -an | head -n 10 wazi@eli Active Internet connections (including servers) Proto Recv-Q Send-Q Local Address Foreign Address (state) tcp4 0 0 172.16.13.172.54304 180.149.131.55.8843 SYN_SENT tcp4 0 0 172.16.13.172.54303 45.32.41.155.44005 ESTABLISHED tcp4 0 0 127.0.0.1.60409 127.0.0.1.54302 ESTABLISHED tcp4 0 0 127.0.0.1.54302 127.0.0.1.60409 ESTABLISHED tcp4 0 0 172.16.13.172.54300 45.32.41.155.44005 ESTABLISHED tcp4 0 0 127.0.0.1.60409 127.0.0.1.54299 ESTABLISHED tcp4 0 0 127.0.0.1.54299 127.0.0.1.60409 ESTABLISHED tcp4 0 0 172.16.13.172.54296 111.203.187.167.3306 ESTABLISHED 连接状态: LISTEN:侦听来自远方的TCP端口的连接请求 SYN-SENT:再发送连接请求后等待匹配的连接请求 SYN-RECEIVED:再收到和发送一个连接请求后等待对方对连接请求的确认 ESTABLISHED:代表一个打开的连接 FIN-WAIT-1:等待远程TCP连接中断请求,或先前的连接中断请求的确认 FIN-WAIT-2:从远程TCP等待连接中断请求 CLOSE-WAIT:等待从本地用户发来的连接中断请求 CLOSING:等待远程TCP对连接中断的确认 LAST-ACK:等待原来的发向远程TCP的连接中断请求的确认 TIME-WAIT:等待足够的时间以确保远程TCP接收到连接中断请求的确认 CLOSED:没有任何连接状态 显示所有连接ipnetstat -n -p | grep ES | awk ‘{print $5}’ | awk -F: ‘{print $1}’ 显示数量netstat -anp |grep ‘tcp|udp’ | awk ‘{print $5}’ | cut -d: -f1 | sort | uniq -d]]></content>
</entry>
<entry>
<title><![CDATA[(linux常用命令)iostat]]></title>
<url>%2F2016%2F12%2F16%2Flinux-iostat-commond%2F</url>
<content type="text"><![CDATA[CPUiostatavg-cpu: %user %nice %system %iowait %steal %idle 1.95 0.06 0.41 0.03 0.00 97.56cpu属性值说明:%user:CPU处在用户模式下的时间百分比。%nice:CPU处在带NICE值的用户模式下的时间百分比。%system:CPU处在系统模式下的时间百分比。%iowait:CPU等待输入输出完成时间的百分比。%steal:管理程序维护另一个虚拟处理器时,虚拟CPU的无意识等待时间百分比。%idle:CPU空闲时间百分比。 注: 如果%iowait的值过高,表示硬盘存在 I/O瓶颈, %idle值高,表示CPU较空闲,如果%idle值高但系统响应慢时,有可能是CPU等待分配内存,此时应加大内存容量。 %idle值如果持续低于10,那么系统的CPU处理能力相对较低,表明系统中最需要解决的资源是CPU。 Diskiostat -d -x -k 1 1 Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %utilvda 0.00 7.38 0.04 4.60 0.73 63.26 27.59 0.06 12.58 19.94 12.53 6.63 3.07vdb 0.00 6.97 0.21 6.14 6.30 180.95 58.99 0.07 11.59 4.15 11.85 0.61 0.39rrqm/s: 每秒进行 merge 的读操作数目。即 rmerge/swrqm/s: 每秒进行 merge 的写操作数目。即 wmerge/sr/s: 每秒完成的读 I/O 设备次数。即 rio/sw/s: 每秒完成的写 I/O 设备次数。即 wio/srsec/s: 每秒读扇区数。即 rsect/swsec/s: 每秒写扇区数。即 wsect/srkB/s: 每秒读K字节数。是 rsect/s 的一半,因为每扇区大小为512字节。wkB/s: 每秒写K字节数。是 wsect/s 的一半。avgrq-sz: 平均每次设备I/O操作的数据大小 (扇区)。avgqu-sz: 平均I/O队列长度。await: 平均每次设备I/O操作的等待时间 (毫秒)。svctm: 平均每次设备I/O操作的服务时间 (毫秒)。%util: 一秒中有百分之多少的时间用于 I/O 操作,即被io消耗的cpu百分比 备注:如果 %util 接近 100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈。如果 svctm 比较接近 await,说明 I/O 几乎没有等待时间;如果 await 远大于 svctm,说明I/O 队列太长,io响应太慢,则需要进行必要优化。如果avgqu-sz比较大,也表示有当量io在等待。如果 %util 接近 100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈。 idle小于70% IO压力就较大了,一般读取速度有较多的wait。 同时可以结合vmstat 查看查看b参数(等待资源的进程数)和wa参数(IO等待所占用的CPU时间的百分比,高过30%时IO压力高)。 另外 await 的参数也要多和 svctm 来参考。差的过高就一定有 IO 的问题。 avgqu-sz 也是个做 IO 调优时需要注意的地方,这个就是直接每次操作的数据的大小,如果次数多,但数据拿的小的话,其实 IO 也会很小。如果数据拿的大,才IO 的数据会高。也可以通过 avgqu-sz × ( r/s or w/s ) = rsec/s or wsec/s。也就是讲,读定速度是这个来决定的。 svctm 一般要小于 await (因为同时等待的请求的等待时间被重复计算了),svctm 的大小一般和磁盘性能有关,CPU/内存的负荷也会对其有影响,请求过多也会间接导致 svctm 的增加。await 的大小一般取决于服务时间(svctm) 以及 I/O 队列的长度和 I/O 请求的发出模式。如果 svctm 比较接近 await,说明 I/O 几乎没有等待时间;如果 await 远大于 svctm,说明 I/O 队列太长,应用得到的响应时间变慢,如果响应时间超过了用户可以容许的范围,这时可以考虑更换更快的磁盘,调整内核 elevator 算法,优化应用,或者升级 CPU。 队列长度(avgqu-sz)也可作为衡量系统 I/O 负荷的指标,但由于 avgqu-sz 是按照单位时间的平均值,所以不能反映瞬间的 I/O 洪水。 形象的比喻:r/s+w/s 类似于交款人的总数平均队列长度(avgqu-sz)类似于单位时间里平均排队人的个数平均服务时间(svctm)类似于收银员的收款速度平均等待时间(await)类似于平均每人的等待时间平均I/O数据(avgrq-sz)类似于平均每人所买的东西多少I/O 操作率 (%util)类似于收款台前有人排队的时间比例设备IO操作:总IO(io)/s = r/s(读) +w/s(写) 平均等待时间=单个I/O服务器时间*(1+2+…+请求总数-1)/请求总数 每秒发出的I/0请求很多,但是平均队列就4,表示这些请求比较均匀,大部分处理还是比较及时。]]></content>
</entry>
<entry>
<title><![CDATA[(linux常用命令)top]]></title>
<url>%2F2016%2F12%2F10%2Flinux-top-commond%2F</url>
<content type="text"><![CDATA[top 命令123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081top -ctop - 17:48:50 up 151 days, 3:31, 1 user, load average: 0.07, 0.12, 0.09Tasks: 132 total, 1 running, 131 sleeping, 0 stopped, 0 zombieCpu(s): 1.0%us, 0.5%sy, 0.2%ni, 98.3%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%stMem: 4194304k total, 4179548k used, 14756k free, 0k buffersSwap: 2097152k total, 782360k used, 1314792k free, 1977088k cachedPID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND1033 mysql 20 0 1158m 7988 1620 S 0.3 0.2 30:16.67 /usr/libexec/mysqld --basedi7134 tyhall 20 0 1605m 167m 15m S 0.3 4.1 0:29.42 pypy run.py UT001 192.168.107136 tyhall 20 0 347m 166m 17m S 0.3 4.1 0:24.37 pypy run.py GT21-001-998-1 117:48:50 : 系统当前时间151 days, 3:31 : 系统开机到现在经过了多少时间1 users : 当前2用户在线load average: 0.07, 0.12, 0.09: 系统1分钟、5分钟、15分钟的CPU负载信息Tasks:任务;132 total:当前有132个进程。1 running:1个进程正在运行131 sleeping:131个进程睡眠0 stopped:停止的进程数0 zombie:僵死的进程数Cpu(s):表示这一行显示CPU总体信息1.0%us:用户态进程占用CPU时间百分比,不包含renice值为负的任务占用的CPU的时间。0.5%sy:内核占用CPU时间百分比0.2%ni:改变过优先级的进程占用CPU的百分比98.3%id:空闲CPU时间百分比0.0%wa:等待I/O的CPU时间百分比0.0%hi:CPU硬中断时间百分比0.0%si:CPU软中断时间百分比注:这里显示数据是所有cpu的平均值,如果想看每一个cpu的处理情况,按1即可;折叠,再次按1;(centos)Mem:内存4194304k total:物理内存总量4179548k used:使用的物理内存量14756k free:空闲的物理内存量0k buffers:用作内核缓存的物理内存量Swap:交换空间2097152k total:交换区总量782360k used:使用的交换区量1314792k free:空闲的交换区量1977088k cached:缓冲交换区总量PID:进程的IDUSER:进程所有者PR:进程的优先级别,越小越优先被执行NI:值Nice Value 如果为负值,则有较高优先级;如果为正值则为较低优先级;如果为0,则无优先级调整VIRT:进程占用的虚拟内存RES:进程占用的物理内存SHR:进程使用的共享内存S:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数%CPU:进程占用CPU的使用率%MEM:进程使用的物理内存和总内存的百分比TIME+:该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。COMMAND:进程启动命令名称q:退出top命令<Space>:立即刷新s:设置刷新时间间隔c:显示命令完全模式t: 显示或隐藏进程和CPU状态信息m:显示或隐藏内存状态信息l:显示或隐藏uptime信息f:增加或减少进程显示标志S:累计模式,会把已完成或退出的子进程占用的CPU时间累计到父进程的MITE+P:按%CPU使用率排行T:按MITE+排行M:按%MEM排行u:指定显示用户进程r:修改进程renice值k: kill进程i:只显示正在运行的进程W:保存对top的设置到文件^/.toprc,下次启动将自动调用toprc文件的设置。h:帮助命令。q:退出如果只需要查看内存:可用free命令。只查看uptime信息(第一行),可用uptime命令;]]></content>
</entry>
<entry>
<title><![CDATA[(linux常用命令)内存]]></title>
<url>%2F2016%2F12%2F10%2Flinux-memory-commond%2F</url>
<content type="text"><![CDATA[free 命令1234567891011free -h total used free shared buffers cachedMem: 4.0G 2.6G 1.4G 5.0M 0B 426M-/+ buffers/cache: 2.2G 1.8GSwap: 2.0G 766M 1.3Gbuffer:将要写到磁盘上的内容cached: 缓存到内存,供以后使用的数据2.2G: used(2.6G) - buffer(0B) - cached(426M) 1.8G: used(1.4G) + buffer(0B) + cached(426M) vmstat 命令12345678910111213141516171819202122232425262728293031323334shell: vmstat -S m 1 3procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 2 0 0 314 323 14996 0 0 1 25 1 5 1 1 98 0 0 0 0 0 314 323 14996 0 0 0 164 1236 2243 3 1 95 1 0 0 0 0 312 323 14996 0 0 0 72 1233 2324 3 1 95 0 0Procs(进程):r: 运行队列中进程数量b: 等待IO的进程数量Memory(内存):swpd: 使用虚拟内存大小free: 可用内存大小buff: 用作缓冲的内存大小cache: 用作缓存的内存大小Swap:si: 每秒从交换区写到内存的大小so: 每秒写入交换区的内存大小IO:(现在的Linux版本块的大小为1024bytes)bi: 每秒读取的块数bo: 每秒写入的块数system:in: 每秒中断数,包括时钟中断cs: 每秒上下文切换数CPU(以百分比表示)us: 用户进程执行时间(user time)sy: 系统进程执行时间(system time)id: 空闲时间(包括IO等待时间)wa: 等待IO时间]]></content>
</entry>
<entry>
<title><![CDATA[(linux常用命令)进程]]></title>
<url>%2F2016%2F12%2F02%2Flinux-ps-commond%2F</url>
<content type="text"><![CDATA[ps 命令1234567891011121314151617181920# 显示所有进程ps -efps aux#u,f 表示显示详细信息#显示某用户进程 -ups -f -u username#根据进程id显示进程信息ps -f -p 3150,7298,6544# 显示树型进程, --forestps -f --forest -C pypy# -C 进程名称# 显示子进程ps -o pid,uname,comm -C apache2#选择显示列 -o]]></content>
</entry>
<entry>
<title><![CDATA[(linux常用命令)文件与目录]]></title>
<url>%2F2016%2F11%2F29%2Flinux-file-commond%2F</url>
<content type="text"><![CDATA[文件操作1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556# 查看当前目录下文件个数find ./ | wc -l# 查找目标文件夹中是否有obj文件:$find ./ -name '*.o'# 查找并删除.svnfind . -name ".svn" | xargs rm -Rf# ls按照时间排序ls -lrt# 拆分文件 splitsplit -l 100 myfile prefix #按行拆分split -b 100k myfile prefix #按大小拆分##### 文件浏览# 倒序输出 tactac myfile# 显示文件前几行head -10 filename# 显示文件后几行tail -10 filename#### 文件与目录权限# 改变文件的拥有者chown user:user file# 递归子目录修改 chown -R user source/# 改变文件读,写,执行等属性chmod 600 id_rsa# 增加脚本可执行权限chmod a+x myscript##### tar压缩与解压缩# .tartar -cvf tecmint-14-09-12.tar /home/tecmint/tar -xvf tecmint-14-09-12.tar /home/tecmint/# .tar.gztar cvzf MyImages-14-09-12.tar.gz /home/MyImagestar xvzf MyImages-14-09-12.tar.gz /home/MyImages# .tar.bz2tar cvjf MyImages-14-09-12.tar.gz /home/MyImagestar xvjf MyImages-14-09-12.tar.gz /home/MyImages]]></content>
</entry>
<entry>
<title><![CDATA[要架构师干什么?(译)]]></title>
<url>%2F2016%2F10%2F18%2Fwho-need-architects%2F</url>
<content type="text"><![CDATA[原文链接:http://www.yusufaytas.com/who-needs-architect/ 架构师?根据维基百科,架构师指的是计划,设计和监督建筑的构造。因此,很明显我们可以看出架构师这个角色取自土木工程。对应的,我们得到了软件架构。软件架构指的是软件系统的高层结构。正如你可能猜到的,我不认为我们需要一个正式的架构师角色,而是需要软件架构。在开始另一次争吵之前,让我们先看一下矩阵架构场景。 很酷吧?这对于每一个构建软件的人来说都是应得的。就是这样。我认为任何工作的软件都有一种架构。哇,那每个人都是架构师了?其实,也对也不对。对的方面是,一个架构需要架构师(们)。不对的地方是,我不认为没有必要定义一个正式的角色,把每个人都叫做架构师。 回到土木工程。一个架构师设计一个建筑,考虑的是美观,艺术性和构造的外形。一个土木工程师则专注于设计的每个元素,是架构的实践者。就这样,没有更多的定义。正如你所看到的,这些是定义明确的角色,它们有一种分层的感觉。当开发软件时,你认为我们有或应该有这种分层吗?不。当然一个有经验的工程师与一个刚毕业的有不同的观点。然而这两种工程师同样地影响着软件系统和架构。如果把一个叫做架构师而另外一个不是,你认为这样公平吗?不!因此,一个正式的架构师职位并不适合软件开发领域。 如果你认为我们只需要软件“软件架构”这个职称来强调其资历水平,我不同意。大多数大公司有着很好的开发路径。差不多是软件工程师1->软件工程师2->资深软件工程师->核心工程师。让我强调一下,他们不需要一个架构师。 一些问题和解答: 如果把核心工程师当作架构师。我们需要总工程师来评价我们构建的每个软件吗?简单的讲不。因为他们在构建自己的项目。 在客户和团队之间,我们真的需要一个代理吗?为什么我们不能都与客户坐在一起,来共同做决定?我认为应该整个团队一起来理解繁乱的需求并从中提出具体任务。当然,有时需要一些有经验的人,领导其他成员。但是我们不必叫他们架构师。他们只是经验丰富的开发人员。 在一个没有架构师的团队里,人们就不能写整洁,高质量的代码了吗?系统设计的阶段就可以去掉?我认为一个好的团队应该先做设计审查,然后代码审查,来分享知识,提高代码质量,倾听不同的意见。如果能很好的沟通交流,开发人员根据能力水平分配任务,那么就可以交付高质量的软件,即使没有一个正式的架构师角色。 我们真的需要一个架构师来领导和制定策略吗?难道不是项目经理来领导团队并决定策略?我认为由于这两个方面的原因,才有了项目经理这个职位。那么技术领导呢?由于软件开发像手工艺,工匠(高级工程师)应该分享如何开发高水平的软件。因此,我们不需要一个正式的架构师角色。 总的来说,我不认为我们需要为设计架构分离出一个专门的角色。我认为团队中的每个成员都应该参与架构讨论,由团队共同完成整个设计。而且,架构师并不需要对应于开发经验水平。最后,再见架构师,让我们专心于架构本身。]]></content>
</entry>
<entry>
<title><![CDATA[linux常用命令]]></title>
<url>%2F2016%2F10%2F17%2Flinux-commond%2F</url>
<content type="text"><![CDATA[文件操作123# 拆分文件 splitsplit -l 100 myfile prefix #按行拆分split -b 100k myfile prefix #按大小拆分 文件浏览12# 倒序输出 tactac myfile tar压缩与解压缩123456789# .tartar -cvf tecmint-14-09-12.tar /home/tecmint/tar -xvf tecmint-14-09-12.tar /home/tecmint/# .tar.gztar cvzf MyImages-14-09-12.tar.gz /home/MyImagestar xvzf MyImages-14-09-12.tar.gz /home/MyImages# .tar.bz2tar cvjf MyImages-14-09-12.tar.gz /home/MyImagestar xvjf MyImages-14-09-12.tar.gz /home/MyImages 查找不包含的文件1find . ! -name "*.2017_04_24" -type f docker attach第一个container1sudo docker attach `sudo docker ps |grep "day" | cut -d" " -f1` 去重复uniq12345# uniq# 121.43.187.116:8000# 121.43.187.116:8000# 121.43.187.116:8000cut -d : -f 1 | uniq cut123456主要参数-b :以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。-c :以字符为单位进行分割。-d :自定义分隔符,默认为制表符。-f :与-d一起使用,指定显示哪个区域。-n :取消分割多字节字符。仅和 -b 标志一起使用。如果字符的最后一个字节落在由 -b 标志的 List 参数指示的<br />范围之内,该字符将被写出;否则,该字符将被排除。]]></content>
</entry>
<entry>
<title><![CDATA[理解ssh加密和连接流程(译)]]></title>
<url>%2F2016%2F10%2F07%2Funderstanding-ssh%2F</url>
<content type="text"><![CDATA[简介SSH全称secure shell,是管理远程服务器最常用的方法。通过使用一系列的加密技术,SSH 提供了这样一个机制:建立安全加密连接,互相授权,发送命令和返回输出结果。在其他文章中,我们讨论过了如何配置ssh访问,如何使用ssh连接,和一些ssh建议和技巧。在本文,我们将介绍SSH的底层加密技术和建立加密连接的方法。这对于理解多个加密层以及建立连接,相互授权的步骤是非常有用的。 对称加密,非对称加密和哈希为了安全的传输信息,SSH在传输过程中的不同阶段,采用不同类型的控制技术。这些技术包括对称加密,非对称加密和哈希。 对称加密 加密和解密组件的关系决定了一个加密技术是对称的还是非对称的。 对称加密指的是一个密钥既可以用来加密消息,也可以用来解密消息。这意味着通信双方都持有相同的密钥,既可以加密又可以解密。这种加密方式又叫做“共享加密”或“密钥加密”。典型的是只有一个密钥或者一对关系紧密的密钥(获得另一个密钥并不重要)。 在SSH中,对称加密用于加密整个连接。与一些用户猜想的不同,公/私非对称密钥只用来授权。对称加密也用于密码授权。 客户端和服务器一起生成密钥,生成的密钥不会被第三方知道。密钥是通过一个叫做密钥交换算法生成的。交换的结果是服务器和客户端双方获得相同的密钥。这个流程将在后面详细介绍。 对称加密密钥的生成是基于session的,并建立了实际传输数据的加密。一旦密钥建立所有数据必须通过共享密钥加密。这是在授权客户端之前完成的。 SSH可配置使用多种不同的对称加密系统,包括AES,Blowfish,3DES,CAST128,和Arcfour。客户端和服务器都有一个算法列表,根据优先级来决定使用哪种加密算法。客户端列表中的第一选择,如果服务器也支持,这个算法将被采用。 在Ubuntu 14.04,客户端和服务器的默认算法列表均为:aes128-ctr, aes192-ctr, aes256-ctr, arcfour256, arcfour128, [email protected], [email protected], [email protected], aes128-cbc, blowfish-cbc, cast128-cbc, aes192-cbc, aes256-cbc, arcfour。 这就是说,如果两个Ubuntu14.04机器建立连接,(如果没有通过修改配置文件,修改默认算法列表),它们将采用aes128-ctr算法来加密连接。 非对称加密 非对称加密中,需要两个密钥:一个叫公钥,另一个叫私钥。公钥可以被放到任何地方。私钥应该保密,不能与其他方共享。私钥不能靠公钥计算获得。公钥和私钥的关系是:公钥加密的数据只能靠私钥解密。这个操作是单向的,也就是说,公钥没有办法解密自己加密的数据。 SSH在很多地方使用了非对称加密。比如,在建立对称加密时,交换密钥的过程中,双方产生临时密钥对,用来交换共享密钥(对称加密,用于加密整个session)。 非对称加密在SSH中最被人熟知的用途是基于密钥的授权。客户端生成密钥对,然后将公钥上传到访问服务器,放到~/.ssh/authorized_keys 文件中。 在服务器与客户端的对称加密建立以后,客户端需要被授权访问。服务器使用公钥加密一条消息并发送给客户端。如果客户端能解密这条消息,说明拥有私钥,于是授权成功。 哈希 SSH还用了一种数据处理叫做哈希加密。哈希加密用来生成数字签名。哈希加密的主要特点是不能反向解密。生成的数字签名不可预测,而且是唯一的。 使用相同的哈希算法加密消息产生的hash值是不变的。修改消息的任何部分将产生完全不同的哈希值。用户不能通过hash值获得原始的消息,但是可以根据能判断一个消息是否对应给定的hash值。 基于以上特性,哈希值一般用于数据完整性验证和消息可靠性检查。SSH中哈希主要用于HMAC(hash-based message authentication code基于hash的消息授权检查),用来保证收到的消息是完整的,未修改的。 SSH是如何工作的<未完待续…>]]></content>
</entry>
<entry>
<title><![CDATA[go命令相关]]></title>
<url>%2F2016%2F09%2F30%2Fgo-command%2F</url>
<content type="text"><![CDATA[godep相关 1234#安装godepgo get github.com/tools/godep#安装Godeps/Godeps.json中的依赖godep restore]]></content>
</entry>
<entry>
<title><![CDATA[使用mock进行单元测试(python)]]></title>
<url>%2F2016%2F09%2F21%2Fpython-mock-unittest%2F</url>
<content type="text"><![CDATA[此代码涵盖了mock的基本用法,代码来源于mock文档 mock doc 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126from mock import MagicMock, Mock, patch, ANY# 1.使用mock 替换对象中的方法# mock.assert_called_once_with 用于验证调用参数是否正确class ProductionClass(object): def method(self): self.something(1, 2, 3) def something(self, a, b, c): passreal = ProductionClass()real.something = MagicMock()real.method()real.something.assert_called_once_with(1, 2, 3)# 2.使用mock 替代传入参数# assert_called_with 用于验证依赖对像是否被正确使用class ProductionClass(object): def closer(self, something): something.close()real = ProductionClass()mock = Mock()real.closer(mock)mock.close.assert_called_with()# 3.使用Mock 替换Class# 替换类于替换方法类似# 例子需要构造module模块import syssys.modules['module'] = Mock()import moduledef calculate(): instance = module.Helper() return instance.getFactor() *3with patch('module.Helper') as mock: instance = mock.return_value instance.getFactor.return_value = 1 result = calculate() instance.getFactor.assert_called_once_with() #方法被正确调用 assert result == 3 #验证结果是否正确# 4. side_effect, literatemock = MagicMock(side_effect=[4, 5, 6])assert mock()==4assert mock()==5assert mock()==6# 5. side_effect, Exceptionmock = Mock(side_effect=Exception('Boom!'))# 6. side_effect, functionvals = {(1, 2): 1, (2, 3): 2}def side_effect(*args): return vals[args]mock = MagicMock(side_effect=side_effect)assert 1==mock(1, 2)assert 2==mock(2, 3)# 7. 基于类/对象为模板创建对象# 使用模版不存在的方法或者属性会报错class SomeClass(object): passa = SomeClass()mock = Mock(spec=a)#mock.a#mock.old_method() # 报错# 8. mock 调用多次returns = [1, 2]def side_effect(*args): result = returns.pop(0) if isinstance(result, Exception): raise result return resultmock = Mock(side_effect=side_effect)assert 1==mock('first')assert 2==mock('second')# 9. patch应用到多个from unittest2 import TestCase@patch('module.SomeClass')class MyTest(TestCase): def test_one(self, MockSomeClass): self.assertTrue(module.SomeClass is MockSomeClass) def test_two(self, MockSomeClass): self.assertTrue(module.SomeClass is MockSomeClass) def not_a_test(self): return 'something'MyTest('test_one').test_one()MyTest('test_two').test_two()MyTest('test_two').not_a_test()class MyTest(TestCase): def setUp(self): self.patcher = patch('module.foo') self.mock_foo = self.patcher.start() def test_foo(self): self.assertTrue(module.foo is self.mock_foo) def tearDown(self): self.patcher.stop()MyTest('test_foo').run()# 10. ANYmock = Mock(return_value=None)mock('foo', bar=object())mock.assert_called_once_with('foo', bar=ANY)]]></content>
</entry>
<entry>
<title><![CDATA[命令行下格式化json]]></title>
<url>%2F2016%2F08%2F11%2Fjson-format-linux%2F</url>
<content type="text"><![CDATA[1python2 -m json.tool xxx.json]]></content>
</entry>
<entry>
<title><![CDATA[向python对象动态添加方法]]></title>
<url>%2F2016%2F08%2F06%2Fadd-method-to-python-object%2F</url>
<content type="text"><![CDATA[1234567891011121314def barFighters( self ): print "barFighters"a.barFighters = barFightersa.barFighters()Traceback (most recent call last): File "<stdin>", line 1, in <module>TypeError: barFighters() takes exactly 1 argument (0 given)import typesa.barFighters = types.MethodType( barFighters, a )a.barFighters()barFighters > 引用:http://stackoverflow.com/questions/972/adding-a-method-to-an-existing-object-instance]]></content>
</entry>
<entry>
<title><![CDATA[svn常用命令]]></title>
<url>%2F2016%2F07%2F25%2Fsvn-commond%2F</url>
<content type="text"><![CDATA[显示前10条log 1svn log -l 10 显示版本差异,只输出文件名 1svn diff --summarize -r954:958 回退到历史版本 123svn merge -r 958:954 ""svn diffsvn commit -m "revert"]]></content>
</entry>
<entry>
<title><![CDATA[curl发送post数据]]></title>
<url>%2F2016%2F07%2F21%2Fcurl-post%2F</url>
<content type="text"><![CDATA[1curl -d "id=7778&name='wzp'" "http://172.16.102.208:8089/wiapi/score"]]></content>
</entry>
<entry>
<title><![CDATA[查看磁盘使用]]></title>
<url>%2F2016%2F06%2F07%2Fdu-first-directory%2F</url>
<content type="text"><![CDATA[centos 查看磁盘空间利用大小:df -h 查看当前目录所占空间大小:du -sh du命令查看一级目录centos: du -h –max-depth=1 mac: du -hd1\n]]></content>
</entry>
<entry>
<title><![CDATA[ssh免密码登录]]></title>
<url>%2F2016%2F06%2F07%2Fssh-login-without-password%2F</url>
<content type="text"><![CDATA[Note: 首先任意一个机器上生成公钥(ids_rsa.pub)和私钥(ids_rsa), 然后将公钥放到登录目标机器的authorized_keys中, 然后就可以使用私钥登录了。具体流程:http://chenlb.iteye.com/blog/211809]]></content>
</entry>
<entry>
<title><![CDATA[python入门]]></title>
<url>%2F2016%2F06%2F06%2Ftalk-about-python%2F</url>
<content type="text"><![CDATA[python是一个简单而强大的语言,应用领域非常广泛。因此,网上的优秀的入门教程非常多。此文档只是对入门教程的补充。 python的特点 拥有简单而优雅的语法,严格的格式要求, 因此代码很整洁。 开源软件,经过多年的积累,拥有众多的库, 因此完全不需要重复造轮子。 解释性的语言,不需要编译,能够快速执行出结果。因此,常用的调试方式,不是打断点,而是添加日志。 开发方便,不需要IDE支持,notepad也可以作为常用开发软件。 网上有丰富的文档,无论你遇到神马问题,使用百度/谷歌都是很好的解决方法。 安装 官方下载地址: https://www.python.org/downloads/ 推荐版本2.7, 由于python3.x进行了语法的升级,很多库不支持3.x的语法。 安装ipython,ipython是python解释器的升级版,支持语法高亮,tab补全等多个高级功能。5星推荐。 安装库有两种方法, 一种是使用pip或者easy_install(命令行下安装,推荐),另一种是手动下载库文件(基本上用不到)https://pypi.python.org/pypi?%3Aaction=browse 语法 基本语法与其他语言大同小异,for循环、if条件判断、print 输出打印 常用数据结构有list列表、dict字典等 面向对象编程,class,支持继承 推荐教程 推荐书Dive into python, 很薄的书,可以用来查查语法。中文版 推荐python 官方文档,非常丰富的文档资源https://docs.python.org/2/ 另外一个入门教程http://www.pythondoc.com/pythontutorial27/index.html Hello World!12345678# -*- coding: utf-8 -*-"""auther: 一个忍不住写hello world的人。"""def hello(): print "hello world!"hello()]]></content>
</entry>
<entry>
<title><![CDATA[英语学习计划]]></title>
<url>%2F2016%2F05%2F17%2Fmy-learning-english-plan%2F</url>
<content type="text"><![CDATA[具体练习方法: 流利说APP:纠正发音 听写(沪江听力酷):增加听力词汇量 复读并录音:纠正发音,提高听力 阅读英文原版书:提高阅读词汇量,并熟悉常用描述方法。 Think in English: 提高表达能力。 口语练习:十分钟描述一件事,或一个东西。 写作练习:写文章,发表到italki上校对。]]></content>
</entry>
<entry>
<title><![CDATA[英语学习计划]]></title>
<url>%2F2016%2F05%2F16%2Flearning-english%2F</url>
<content type="text"><![CDATA[学习英语主要目标是理解和表达。 理解,可分为听力和阅读 听力: 发音,词汇量,语法 阅读: 词汇量,语法 表达,可分为口语和写作 说:发音,词汇量,语法 写:写作结构, 常用连接词,词汇量,语法 详细介绍每部分相关的内容: 发音 元音辅音, 读准每一个音很基本也很重要。 Intonation 语调 Linking 连读 Word stress 单词重读 词汇 词汇分为阅读词汇,写作词汇,听力词汇和口语词汇 写作要求使用Academic词汇 每天五个单词,一周可以学30+ 学习单词,要造句,复习单词同样要造句, 造句要体现单词的意思 阅读是被动提高词汇量,而写作是主动的,能在写作或者口语中正确使用的单词,才算真正理解。 语法 语法很重要,熟悉常用的语法结构,并灵活运用 学好语法就可以专注发音和用词的选择 在写作上语法的灵活变化很重要 具体练习方法: 流利说APP:纠正发音 听写(沪江听力酷):增加听力词汇量 复读并录音:纠正发音,提高听力 阅读英文原版书:提高阅读词汇量,并熟悉常用描述方法。 写作练习:提高写作词汇,常用写作技巧 Think in English: 提高表达能力。]]></content>
</entry>
<entry>
<title><![CDATA[川藏线]]></title>
<url>%2F2016%2F05%2F15%2Fmy-travel-to-Tibet%2F</url>
<content type="text"><![CDATA[不知不觉已经完成了川藏线将近一个月的时间,一路走来,有风雨,有快乐,也有些许感悟,更重要的是大量的漂亮的照片。所有的照片 都已经分享在百度云。]]></content>
</entry>
<entry>
<title><![CDATA[Rpc retails]]></title>
<url>%2F2015%2F07%2F20%2Frpc-details%2F</url>
<content type="text"><![CDATA[todo]]></content>
</entry>
<entry>
<title><![CDATA[Server performance monitoring]]></title>
<url>%2F2015%2F07%2F18%2Fserver-performance-monitoring%2F</url>
<content type="text"><![CDATA[todo]]></content>
</entry>
<entry>
<title><![CDATA[Why you should start a blog?]]></title>
<url>%2F2015%2F07%2F17%2Fwhy-you-should-start-a-blog%2F</url>
<content type="text"><![CDATA[“Fill you paper with the breathings of your heart.” —William Wordsworth Generally, Blogging will change you in two sides: inside and outside.First, take a look at the inside change. You will be a good writer. At its core, writing is communcation. it is about recoreding thoughts on paper. it will impore with practise. Blogging will not forceyou to become a better writer, it will happen as you do it. And becoming a better writer holds important benefits for the rest of your life–whether you are creating a book, a presentation, a resume, or an anniversary card for your spouse. You will develop an eye for meaningful things. it is simply not possible to write about every thing in your life. Instead, blogging is is a never ending progress of choosing to articulate the most meaningful events and the most important thoughts. then, you automaticly focus the meaningful things and live a meaningful life. You will be a better thinker. the blogging process enourages you to think deeper. Once you start writing about your life and the thoughts that shape it, you’ll begin thinking more intentionally about who you are and who you are becoming. It will lead to healthier life habits. Blogging requires time, devotion, commitment, and discipline. those are good things to embrace. Then, the outside change. Connect people like you. Blogging brings like-minded people together. Starting a blog can help you find those people and share your opinions and thoughts or books and songs. To Market yourself.Blogging is a great way to help market or promote yourself. Blogs are wonderfull tools to help you establish yourselves as experts in a field or topic. Blogging can help legitimize your expertise and expand your online presence and platform. You can show what you have done as a prove. Reference: 15 Reasons I Think You Should Blog Top 10 reasons to blog]]></content>
</entry>
<entry>
<title><![CDATA[Closures Details]]></title>
<url>%2F2015%2F07%2F16%2Fclosures%2F</url>
<content type="text"><![CDATA[Definea closure is a data structure storing a function together with an environment: a mapping associating each free variable of the function with the value or storage location the name was bound to at the time the closure was created.A closure—unlike a plain function—allows the function to access those captured variables through the closure’s reference to them, even when the function is invoked outside their scope.The use of closures is associated with languages where functions are first-class objects. Applications Function factories, create functions with args. Emulating private methods with closures Some examples in python, scheme and golang: 1234567# pythondef makeInc(x): def inc(y): # x is "closed" in the definition of inc return y + x return inc 1; scheme later 123456789// golangfunc intSeq() func() int { i := 0 return func() int { i += 1 return i }}]]></content>
</entry>
<entry>
<title><![CDATA[pomelo source analysis]]></title>
<url>%2F2015%2F06%2F30%2Fpomelo-source-analysis%2F</url>
<content type="text"><![CDATA[As a matter of fact, we can gain lots of benefits from reading source code, so I start to read a game framwork.Pomelo is a fast, scalable game server framework for node.js. I choose it for several reasons. open source code, hosted in Github. contains all the features of game server, and fully documented. help me to get know node.js. similar to my project in work. Main features framework connection: rpc, protocal]]></content>
</entry>
<entry>
<title><![CDATA[game robot]]></title>
<url>%2F2015%2F06%2F30%2Fgame-robot%2F</url>
<content type="text"><![CDATA[load test for game server. source code has been hosted on Github. Main features client basic feature: connect, logic injection client manager, multi client statistics Processfirst, fork the boom. then, modify the code for game server test. add the client with raw socket; add base features for game server:register/login; add logic injection;]]></content>
</entry>
<entry>
<title><![CDATA[Simple record about building the blog]]></title>
<url>%2F2015%2F06%2F24%2Fsimple-record-blog-building-process%2F</url>
<content type="text"><![CDATA[check the Lanyon project. change the title, content to make it looks like a blog. add a tag cloud. add a post preview. add tag to post title.]]></content>
</entry>
</search>