go get 加 -u 和不加 -u 参数的区别


如果已经下载过一个代码包,但是这个代码包又有更新了,那么这时候可以直接用 -u 标记来更新本地的对应的代码包。
如果不加这个 -u 标记,执行 go get 一个已有的代码包,会发现命令什么都不执行。
 
只有加了 -u 标记,命令会去执行 git pull 命令拉取最新的代码包的最新版本,下载并安装。
继续阅读 »

如果已经下载过一个代码包,但是这个代码包又有更新了,那么这时候可以直接用 -u 标记来更新本地的对应的代码包。
如果不加这个 -u 标记,执行 go get 一个已有的代码包,会发现命令什么都不执行。
 
只有加了 -u 标记,命令会去执行 git pull 命令拉取最新的代码包的最新版本,下载并安装。
收起阅读 »

国金证券可转债转股怎么操作

这里科普下,可转债套利
如果溢价率为负,且其值越大(绝对值),比如 溢价率为-5% 的时候
具体溢价率可以参考集思录。
 
这个时候进行对可转债进行转股,也就是相同金额的可转债换成股票, 当天就可以盈利5%。
不过还得要第二天早上卖出,才能落地为安。 一般如果溢价率为负的越大,比如-5%, 这情况下,第二天对应的正股会承受很大的抛压, 所以经常会低开。 也就是实际情况下,一般是吃不到5%,不过也不会亏。就看赚多赚少。
 
所以在负溢价很大的情况时,在当天收盘前需要进行转股操作。
 
而对于国金而言,其手机app 佣金宝 是不支持转股操作的,并且其默认的PC端软件 国金独立交易 ,也是不支持转股操作的。 这一点,之前已经问过其官方客服了。
 
唯一可以进行转股的,就需要  国金金太阳至强版 , 在官网可以下载的,别在其他地方下载盗版。

 
在软件的交易菜单下,有一个可转债业务,里面就有一个转股的功能,这个时候只需要把可转债的转股代码填入转股代码里面,数量随意填个很大的数,比如99999张, 那就可以在收盘后正常转股了。
 
晚上交割后,你的账户里面就会出现对应的正股了。 第二天开盘就可以卖啦。
 
如果需要国金万1.5开户的,可以扫码联系。费率比官网的万2.5要便宜很多
可转债费率是百万分之5。
 

 
继续阅读 »
这里科普下,可转债套利
如果溢价率为负,且其值越大(绝对值),比如 溢价率为-5% 的时候
具体溢价率可以参考集思录。
 
这个时候进行对可转债进行转股,也就是相同金额的可转债换成股票, 当天就可以盈利5%。
不过还得要第二天早上卖出,才能落地为安。 一般如果溢价率为负的越大,比如-5%, 这情况下,第二天对应的正股会承受很大的抛压, 所以经常会低开。 也就是实际情况下,一般是吃不到5%,不过也不会亏。就看赚多赚少。
 
所以在负溢价很大的情况时,在当天收盘前需要进行转股操作。
 
而对于国金而言,其手机app 佣金宝 是不支持转股操作的,并且其默认的PC端软件 国金独立交易 ,也是不支持转股操作的。 这一点,之前已经问过其官方客服了。
 
唯一可以进行转股的,就需要  国金金太阳至强版 , 在官网可以下载的,别在其他地方下载盗版。

 
在软件的交易菜单下,有一个可转债业务,里面就有一个转股的功能,这个时候只需要把可转债的转股代码填入转股代码里面,数量随意填个很大的数,比如99999张, 那就可以在收盘后正常转股了。
 
晚上交割后,你的账户里面就会出现对应的正股了。 第二天开盘就可以卖啦。
 
如果需要国金万1.5开户的,可以扫码联系。费率比官网的万2.5要便宜很多
可转债费率是百万分之5。
 

  收起阅读 »

“大V带货”、“大V引流”迎来监管规范 , 万一免五何去何从?

证监会最新下发的《机构监管通报》要求,证券公司应规范开展与大V合作活动。
 
比如b站上充斥着大量的开户广告:



监管通报要求,证券公司作为持牌机构,要坚持“回归主业、突出专业”的基本要求。一方面,如法律法规有明确要求,应做到严格守法,按规定要求展业;另一方面,即使法律法规没有强制要求,也要从专业机构角度审慎评估,主动维护自身和行业形象,保护投资者和客户的合法权益。

具体来看,监管要求主要包括三个方面,一是“大V”引流开户给奖励不符合监管规定,证券公司不得开展相关合作;二是证券公司组织工作人员公开发表言论应符合规范要求;三是证券公司应强化组织外部人士发表评论的管理。

此前,多地基金公司和基金销售机构相继收到了当地证监局下发的《关于规范基金投资建议活动的通知》,一些基金“大V”的投资组合也从各基金销售机构下架,仅保留了赎回功能。

监管关注到两类券商与“大V”的合作模式

机构监管情况通报显示,近期,在日常监管中关注到部分券商与“大V”合作开展网络直播、客户引流等活动,引发媒体广泛关注和报道,监管层对相关行为的法律性质进行了研究,明确了相应的监管要求。

通报内容显示,证券公司与“大V”合作有两种模式,一是投放开户链接模式,即通过微信“大V”投放开户链接,投资者通过点击开户链接转到相关公司开户页面进行开户操作。在付费方式上,主要是通过支付广告费的形式付给“大V”。该做法在形式上与开户数量不直接挂钩,但实质上仍是按照实施效果,如点击量、投放时间等付费。二是投资者教育形式的直播,如某证券公司与经济学家等知名“大V”合作开展直播活动,开展投资者教育,介绍投资理财知识,宣传公司品牌,对国家经济形势进行分析点评等。

监管要求,证券公司作为持牌机构,要坚持“回归主业、突出专业”的基本要求。一方面,如法律法规有明确要求,应做到严格守法,按规定要求展业;另一方面,即使法律法规没有强制要求,也要从专业机构角度审慎评估,主动维护自身和行业形象,保护投资者和客户的合法权益。

三方面监管要求

监管要求主要包括三个方面:一是“大V”引流开户给奖励不符合监管规定,证券公司不得开展相关合作;二是证券公司组织工作人员公开发表言论应符合规范要求;三是证券公司应强化组织外部人士发表评论的管理。

监管通知称,引流开户是一种客户招揽行为,属于证券经纪业务的一个环节。目前,监管仅规定了证券公司可以委托证券经纪人代理客户招揽活动,且证券经纪人应当是证券从业人员,并专职从事客户招揽和客户服务活动。互联网“大V”不属于专职从事证券经纪业务的证券经纪人,证券公司利用“大V”引流开户给奖励不符合监管规定,证券公司应停止相关合作。

此外,对通过“直播”等方式,配合开展内幕交易、操纵市场等违法违规行为,监管部门将“发现一起,查处一起”,绝不姑息。

四方面规范券商人士公开发表言论

监管通报要求,证券公司组织工作人员公开发表言论时,一方面禁止以直播的方式开展投资品种选择、投资组合推介等荐股行为。另一方面,证券公司工作人员通过网络直播等形式发表评论,应当保持客观、专业态度,主要聚焦经济形势分析、市场变动情况点评、经济数据解读等宏观层面,并严格遵循四方面要求。
一是确保信息来源合法合规、研究方法专业审慎。

二是坚守专业形象,不得使用低俗、夸大、诱导性、煽动性标题或者用语,不得通过着奇装异服、在特殊地点直播等方式博人眼球,不得盲目跟风炒作、人云亦云,一味追逐市场热点、吸引眼球。

三是对有关公开言论可能对市场产生的影响进行审慎评估,自觉维护市场正常秩序,防止诱导、渲染极端情绪。

四是充分发挥专业优势,引导市场树立长期投资、价值投资和理性投资的理念,促进市场稳定健康发展。

监管层表示,证券公司应进一步加强对证券公司工作人员直播展业的管理,完善内部管控机制,事前对直播内容进行把关,做好内容管理;事中对直播进行监测监控,遇有重大情况及时处理,避免产生不良影响;直播中出现违规情况的,及时启动内部问责机制。证券公司工作人员应当强化合规意识、树立责任意识,自觉维护个人、公司和行业声誉。发现问题的,严肃追究有关人员的责任,形成警示效应。

在证券公司外部人士发表评论的管理方面,证监会要求,证券公司组织社会知名人士、专家学者、经济学家等外部人士发表评论,应当加强内部管理,对所组织会议、讲座材料、嘉宾演讲内容、直播内容等做好事前审核工作,评论内容不得涉及对证券及证券相关产品的分析等投资咨询活动;同时充分揭示证券公司与外部人士的关系,并要求外部人士不得以证券公司名义发表评论或对外展业。

证监会表示,将持续关注证券公司与“大V”合作有关情况,针对新情况新问题,不断完善监管要求。一方面鼓励支持“专业人士,通过专业方式,说专业的话”,为首席经济学家专业发声创造更好地环境;另一方面严厉打击借直播之名,行违规之实的行为,维护行业发展的良好生态,如果发现公司存在违法违规情况的,将依法采取监管措施,严厉追究相关违规机构和个人责任。
 


 知乎上各种变相开户广告:

个人预测,后面的各大导流网站大户,比如b站,知乎,抖音的,会大规模下架对应的视频或者直播作品。

不过本小破站应该还是不受影响,目前还可以提供万一免五哦,本人可是合规券商服务商。 如果担心,那么尽管去券商的官网开户【佣金费率吓死人,清一色的万2.5哦】
 
不信看看官网:
比如国金佣金宝

 
还有广发:

 
而上面这两家在本人这里开户的费率是多少么? 万1.2全包哦!之前广发还能免五。
更多券商低佣开户 可以联系:【支持多个券商】
 
继续阅读 »
证监会最新下发的《机构监管通报》要求,证券公司应规范开展与大V合作活动。
 
比如b站上充斥着大量的开户广告:



监管通报要求,证券公司作为持牌机构,要坚持“回归主业、突出专业”的基本要求。一方面,如法律法规有明确要求,应做到严格守法,按规定要求展业;另一方面,即使法律法规没有强制要求,也要从专业机构角度审慎评估,主动维护自身和行业形象,保护投资者和客户的合法权益。

具体来看,监管要求主要包括三个方面,一是“大V”引流开户给奖励不符合监管规定,证券公司不得开展相关合作;二是证券公司组织工作人员公开发表言论应符合规范要求;三是证券公司应强化组织外部人士发表评论的管理。

此前,多地基金公司和基金销售机构相继收到了当地证监局下发的《关于规范基金投资建议活动的通知》,一些基金“大V”的投资组合也从各基金销售机构下架,仅保留了赎回功能。

监管关注到两类券商与“大V”的合作模式

机构监管情况通报显示,近期,在日常监管中关注到部分券商与“大V”合作开展网络直播、客户引流等活动,引发媒体广泛关注和报道,监管层对相关行为的法律性质进行了研究,明确了相应的监管要求。

通报内容显示,证券公司与“大V”合作有两种模式,一是投放开户链接模式,即通过微信“大V”投放开户链接,投资者通过点击开户链接转到相关公司开户页面进行开户操作。在付费方式上,主要是通过支付广告费的形式付给“大V”。该做法在形式上与开户数量不直接挂钩,但实质上仍是按照实施效果,如点击量、投放时间等付费。二是投资者教育形式的直播,如某证券公司与经济学家等知名“大V”合作开展直播活动,开展投资者教育,介绍投资理财知识,宣传公司品牌,对国家经济形势进行分析点评等。

监管要求,证券公司作为持牌机构,要坚持“回归主业、突出专业”的基本要求。一方面,如法律法规有明确要求,应做到严格守法,按规定要求展业;另一方面,即使法律法规没有强制要求,也要从专业机构角度审慎评估,主动维护自身和行业形象,保护投资者和客户的合法权益。

三方面监管要求

监管要求主要包括三个方面:一是“大V”引流开户给奖励不符合监管规定,证券公司不得开展相关合作;二是证券公司组织工作人员公开发表言论应符合规范要求;三是证券公司应强化组织外部人士发表评论的管理。

监管通知称,引流开户是一种客户招揽行为,属于证券经纪业务的一个环节。目前,监管仅规定了证券公司可以委托证券经纪人代理客户招揽活动,且证券经纪人应当是证券从业人员,并专职从事客户招揽和客户服务活动。互联网“大V”不属于专职从事证券经纪业务的证券经纪人,证券公司利用“大V”引流开户给奖励不符合监管规定,证券公司应停止相关合作。

此外,对通过“直播”等方式,配合开展内幕交易、操纵市场等违法违规行为,监管部门将“发现一起,查处一起”,绝不姑息。

四方面规范券商人士公开发表言论

监管通报要求,证券公司组织工作人员公开发表言论时,一方面禁止以直播的方式开展投资品种选择、投资组合推介等荐股行为。另一方面,证券公司工作人员通过网络直播等形式发表评论,应当保持客观、专业态度,主要聚焦经济形势分析、市场变动情况点评、经济数据解读等宏观层面,并严格遵循四方面要求。
一是确保信息来源合法合规、研究方法专业审慎。

二是坚守专业形象,不得使用低俗、夸大、诱导性、煽动性标题或者用语,不得通过着奇装异服、在特殊地点直播等方式博人眼球,不得盲目跟风炒作、人云亦云,一味追逐市场热点、吸引眼球。

三是对有关公开言论可能对市场产生的影响进行审慎评估,自觉维护市场正常秩序,防止诱导、渲染极端情绪。

四是充分发挥专业优势,引导市场树立长期投资、价值投资和理性投资的理念,促进市场稳定健康发展。

监管层表示,证券公司应进一步加强对证券公司工作人员直播展业的管理,完善内部管控机制,事前对直播内容进行把关,做好内容管理;事中对直播进行监测监控,遇有重大情况及时处理,避免产生不良影响;直播中出现违规情况的,及时启动内部问责机制。证券公司工作人员应当强化合规意识、树立责任意识,自觉维护个人、公司和行业声誉。发现问题的,严肃追究有关人员的责任,形成警示效应。

在证券公司外部人士发表评论的管理方面,证监会要求,证券公司组织社会知名人士、专家学者、经济学家等外部人士发表评论,应当加强内部管理,对所组织会议、讲座材料、嘉宾演讲内容、直播内容等做好事前审核工作,评论内容不得涉及对证券及证券相关产品的分析等投资咨询活动;同时充分揭示证券公司与外部人士的关系,并要求外部人士不得以证券公司名义发表评论或对外展业。

证监会表示,将持续关注证券公司与“大V”合作有关情况,针对新情况新问题,不断完善监管要求。一方面鼓励支持“专业人士,通过专业方式,说专业的话”,为首席经济学家专业发声创造更好地环境;另一方面严厉打击借直播之名,行违规之实的行为,维护行业发展的良好生态,如果发现公司存在违法违规情况的,将依法采取监管措施,严厉追究相关违规机构和个人责任。
 


 知乎上各种变相开户广告:

个人预测,后面的各大导流网站大户,比如b站,知乎,抖音的,会大规模下架对应的视频或者直播作品。

不过本小破站应该还是不受影响,目前还可以提供万一免五哦,本人可是合规券商服务商。 如果担心,那么尽管去券商的官网开户【佣金费率吓死人,清一色的万2.5哦】
 
不信看看官网:
比如国金佣金宝

 
还有广发:

 
而上面这两家在本人这里开户的费率是多少么? 万1.2全包哦!之前广发还能免五。
更多券商低佣开户 可以联系:【支持多个券商】
 
收起阅读 »

目前能用的 可以下载youtube 油管视频的方法 合集 亲测

最近的saveform网站下架了油管视频下载的功能。
 
Subject: Discontinuation of Service in the United States

April 16, 2020

Dear Savefrom User:

As you may have heard, our industry has been under strenuous attacks by certain US copyright holders. Because of these attacks, it has become financially impractical for Savefrom to continue to provide services in the United States.

Accordingly, Savefrom will be terminating its services in the United States as of April 28, 2020.

We thank you for your past loyalty and patronage and wish you health and safety during the present health crisis and beyond.

Very truly yours,

Savefrom
所以这个网页下载的方法失效了。
 
还有其他 可以使用的方法:
 
方法一   you-get
这是一个python库。
在github下载下来
默认github下载是很卡,且断断续续,具体原因,你懂的。
所以笔者提供一个镜像下载,代码也是最新的。
git clone https://hub.fastgit.org/soimort/you-get.git
运行上面命令即可。
 
然后下载过程就是切换的CMD命令行:
python you-get --debug https://www.youtube.com/watch?v=59a-XNPngrw
 
静静等待即可下载。
 

 
继续阅读 »
最近的saveform网站下架了油管视频下载的功能。
 
Subject: Discontinuation of Service in the United States

April 16, 2020

Dear Savefrom User:

As you may have heard, our industry has been under strenuous attacks by certain US copyright holders. Because of these attacks, it has become financially impractical for Savefrom to continue to provide services in the United States.

Accordingly, Savefrom will be terminating its services in the United States as of April 28, 2020.

We thank you for your past loyalty and patronage and wish you health and safety during the present health crisis and beyond.

Very truly yours,

Savefrom
所以这个网页下载的方法失效了。
 
还有其他 可以使用的方法:
 
方法一   you-get
这是一个python库。
在github下载下来
默认github下载是很卡,且断断续续,具体原因,你懂的。
所以笔者提供一个镜像下载,代码也是最新的。
git clone https://hub.fastgit.org/soimort/you-get.git
运行上面命令即可。
 
然后下载过程就是切换的CMD命令行:
python you-get --debug https://www.youtube.com/watch?v=59a-XNPngrw
 
静静等待即可下载。
 

  收起阅读 »

知识星球上50+人付费是排在什么样的水平?

因为每周星球会发一封每周统计的邮件过来。
 
以前都没有仔细细看。
 
细看后,发现里面有一些有意思的数据可以分享下的。来窥探当前知识星球的星主的分布情况。
 
 
50几个人付费,已经超过了81%的人群。
可能星球大部分是免费的吧,或者一个星主一个号免费,另一个号收费,然后通过免费的号来倒流到收费群。
一周发布3条主题,就超过了96%的人。
果然,星球的活跃度和公众号比,还是差得远了。
 
继续阅读 »
因为每周星球会发一封每周统计的邮件过来。
 
以前都没有仔细细看。
 
细看后,发现里面有一些有意思的数据可以分享下的。来窥探当前知识星球的星主的分布情况。
 
 
50几个人付费,已经超过了81%的人群。
可能星球大部分是免费的吧,或者一个星主一个号免费,另一个号收费,然后通过免费的号来倒流到收费群。
一周发布3条主题,就超过了96%的人。
果然,星球的活跃度和公众号比,还是差得远了。
  收起阅读 »

迅投QMT开户 费率足够低

提供券商的量化交易接口,支持python和VBA语言.
QMT支持本地python接口下单,可以按照第三方的python库
这个是与Ptrade的最大的区别.
 
QMT支持的品种,股票,可转账,基金,ETF
 
开通条件很简单, 开通指定的券商,然后申请开通该券商的QMT使用权限即可! 不收取额外的费用.
需要开户后, 银转证入金30万, 保持3天左右就可以开通.


 
20220704121552903.png


v2-44e653d0f2fc9db06e58351a0b7e5fef_720w.jpg


具体费率如下:
股票: 万一免五
可转债: 沪市 百万分之2, 深市 十万分之五 , 最低起步价0.1
基金LOF:  万0.5 没有最低起步价
 
因为Ptrade的开通条件和QMT是一样的,而该券商同时提供PTrade和QMT的接口,所以本人是强烈建议大家一起把这两个接口功能给开了. 到时想用哪个就用哪个.
 
最新更新
PS: 现在开户只能二选一了,如果要两个一起开,有高多一点的资金要求。
 



 
需要的可以加微信咨询:
 

 
 备注:qmt
 
或者想要加群学习的也可以加上面的微信号。
 
继续阅读 »
提供券商的量化交易接口,支持python和VBA语言.
QMT支持本地python接口下单,可以按照第三方的python库
这个是与Ptrade的最大的区别.
 
QMT支持的品种,股票,可转账,基金,ETF
 
开通条件很简单, 开通指定的券商,然后申请开通该券商的QMT使用权限即可! 不收取额外的费用.
需要开户后, 银转证入金30万, 保持3天左右就可以开通.


 
20220704121552903.png


v2-44e653d0f2fc9db06e58351a0b7e5fef_720w.jpg


具体费率如下:
股票: 万一免五
可转债: 沪市 百万分之2, 深市 十万分之五 , 最低起步价0.1
基金LOF:  万0.5 没有最低起步价
 
因为Ptrade的开通条件和QMT是一样的,而该券商同时提供PTrade和QMT的接口,所以本人是强烈建议大家一起把这两个接口功能给开了. 到时想用哪个就用哪个.
 
最新更新
PS: 现在开户只能二选一了,如果要两个一起开,有高多一点的资金要求。
 



 
需要的可以加微信咨询:
 

 
 备注:qmt
 
或者想要加群学习的也可以加上面的微信号。
  收起阅读 »

golang中chan 无缓冲和 chan有缓冲 长度size设为1的区别

在群里看到有人说没有区别。其实差别还很大的呀
 
无缓冲情况下,一把数据放入chan,如果没有其他协程取数据,接下来的操作是阻塞的
而在size=1的情况下, 第一个数据放入chan后,并不会马上阻塞,接下来的操作还是可以进行的。
 
看下面的代码 f1和f2的区别
 
package main

import "time"

func f1() {

ch := make(chan int) // no buffer
go func() {

ch <- 0
println("out of routine")
}()
println("f1 start")
time.Sleep(time.Second * 3)
<-ch
println("End")

}

func f2() {

ch := make(chan int, 1) // size =1
go func() {

ch <- 0
println("out of routine")
}()
println("f1 start")
time.Sleep(time.Second * 3)
<-ch
println("End")

}
func main() {
//f1()
f2()
}

f1 最后不会输出End, 而f2则可以输出f2
 
创建了一个免费的Go知识星球社区,欢迎加入一起讨论吧

 
继续阅读 »
在群里看到有人说没有区别。其实差别还很大的呀
 
无缓冲情况下,一把数据放入chan,如果没有其他协程取数据,接下来的操作是阻塞的
而在size=1的情况下, 第一个数据放入chan后,并不会马上阻塞,接下来的操作还是可以进行的。
 
看下面的代码 f1和f2的区别
 
package main

import "time"

func f1() {

ch := make(chan int) // no buffer
go func() {

ch <- 0
println("out of routine")
}()
println("f1 start")
time.Sleep(time.Second * 3)
<-ch
println("End")

}

func f2() {

ch := make(chan int, 1) // size =1
go func() {

ch <- 0
println("out of routine")
}()
println("f1 start")
time.Sleep(time.Second * 3)
<-ch
println("End")

}
func main() {
//f1()
f2()
}

f1 最后不会输出End, 而f2则可以输出f2
 
创建了一个免费的Go知识星球社区,欢迎加入一起讨论吧

  收起阅读 »

docker restart always 不起作用

出错了可以看看docker的日志
docker logs xxxxxxxxxx
 
xxxxxxx 为该容器的sha哈希的ID值
 
然后发现,--restart=always 被识别为非正确参数。 
大概知道问题是 --restart 的位置不对, 它不能放在最后,
吧 --restart=always 放到前面 就可以了。
 
继续阅读 »
出错了可以看看docker的日志
docker logs xxxxxxxxxx
 
xxxxxxx 为该容器的sha哈希的ID值
 
然后发现,--restart=always 被识别为非正确参数。 
大概知道问题是 --restart 的位置不对, 它不能放在最后,
吧 --restart=always 放到前面 就可以了。
  收起阅读 »

去除k-vim没什么用的插件

vim
估计不少人接触vim插件是使用k-vim入门的。
不过k-vim里面继承了很多对我们一般人来说没有多大用处的插件。
可以放心移除的。
 
1. 
vim-fugitive是vim编辑器中的Git包装器插件,它可以让我们在vim编辑器中完成git操作
一般很少在文件内操作
 
2.
sjl/gundo.vim 成熟健壮的 IDE 都有本地代码回滚的功能,gundo 也可以帮助 Vim 实现查看历史记录和回滚的功能预览 
继续阅读 »
估计不少人接触vim插件是使用k-vim入门的。
不过k-vim里面继承了很多对我们一般人来说没有多大用处的插件。
可以放心移除的。
 
1. 
vim-fugitive是vim编辑器中的Git包装器插件,它可以让我们在vim编辑器中完成git操作
一般很少在文件内操作
 
2.
sjl/gundo.vim 成熟健壮的 IDE 都有本地代码回滚的功能,gundo 也可以帮助 Vim 实现查看历史记录和回滚的功能预览  收起阅读 »

go中的rand.Int() 为什么每次返回的都是同一个值,并不是随机?

比如下面的代码:
package main

import "math/rand"

func GenRandom() chan int {
ch := make(chan int, 10)
go func() {
for {
ch <- rand.Int()
}
}()

return ch
}
func main() {
ch := GenRandom()
println(<-ch)
println("end of main")

}

返回的永远都是
5577006791947779410
 
原因是每次没有调用rand.Seed(xxxx), 导致随机种子都是 1 。 见官方文档
Seed uses the provided seed value to initialize the default Source to a deterministic state. If Seed is not called, the generator behaves as if seeded by Seed(1).

  
所以如果想要每次随机值不一样
需要用时间戳作为随机种子
 
func GenRandom() chan int {
ch := make(chan int, 10)
go func() {
rand.Seed(time.Now().Unix())
for {
ch <- rand.Intn(200)
}
}()

return ch
}
继续阅读 »
比如下面的代码:
package main

import "math/rand"

func GenRandom() chan int {
ch := make(chan int, 10)
go func() {
for {
ch <- rand.Int()
}
}()

return ch
}
func main() {
ch := GenRandom()
println(<-ch)
println("end of main")

}

返回的永远都是
5577006791947779410
 
原因是每次没有调用rand.Seed(xxxx), 导致随机种子都是 1 。 见官方文档
Seed uses the provided seed value to initialize the default Source to a deterministic state. If Seed is not called, the generator behaves as if seeded by Seed(1).

  
所以如果想要每次随机值不一样
需要用时间戳作为随机种子
 
func GenRandom() chan int {
ch := make(chan int, 10)
go func() {
rand.Seed(time.Now().Unix())
for {
ch <- rand.Intn(200)
}
}()

return ch
}
收起阅读 »

优矿的chgPct7 最近一周的涨幅 验证

感觉优矿社区很不好。基本没有人回复,接口文档写得也很垃圾。
有个返回字段 chgPct7 最近一周的涨幅
通过使用实际数据验证,
chgPct7 是包含当天的数据,然后是最近一周,以一周7天的自然算的,并不是算k线的根数。
比如当前是2021年 9月28日,那么chgPCt7 是从9月22日的收盘价算到28日的收盘价的数据。
继续阅读 »
感觉优矿社区很不好。基本没有人回复,接口文档写得也很垃圾。
有个返回字段 chgPct7 最近一周的涨幅
通过使用实际数据验证,
chgPct7 是包含当天的数据,然后是最近一周,以一周7天的自然算的,并不是算k线的根数。
比如当前是2021年 9月28日,那么chgPCt7 是从9月22日的收盘价算到28日的收盘价的数据。 收起阅读 »

twitter视频地址是动态变化的

也就是说过一段时间改视频url是会失效的。
需要保证在一段时间内下载下来,不然404.
 
也就是说过一段时间改视频url是会失效的。
需要保证在一段时间内下载下来,不然404.
 

删除ubuntu snap上旧版本的app 节省硬盘空间

可以先看看到底有多少老版本的应用在后台:
 
snap list --all
 

 
然后可以选择保存下面的作为一个脚本,清理不必要的老版本的app应用
 
笔者已经试过的,放心使用.人畜无害.
 
#!/bin/bash
# Removes old revisions of snaps
# CLOSE ALL SNAPS BEFORE RUNNING THIS
set -eu

LANG=C snap list --all | awk '/disabled/{print $1, $3}' |
while read snapname revision; do
snap remove "$snapname" --revision="$revision"
done
继续阅读 »
可以先看看到底有多少老版本的应用在后台:
 
snap list --all
 

 
然后可以选择保存下面的作为一个脚本,清理不必要的老版本的app应用
 
笔者已经试过的,放心使用.人畜无害.
 
#!/bin/bash
# Removes old revisions of snaps
# CLOSE ALL SNAPS BEFORE RUNNING THIS
set -eu

LANG=C snap list --all | awk '/disabled/{print $1, $3}' |
while read snapname revision; do
snap remove "$snapname" --revision="$revision"
done
收起阅读 »

知识星球的客服系统和服务很烂

首先系统有问题,总是提示“草稿文档保存数目超过上限。” 以至于无法保存草稿。
可是本人就写了一篇文章,然后草稿箱也是空的。这是bug吧?
 
然后打算咨询客服。 每次想到要咨询的时候,要么一直排队。要么就是非工作时间。
 
继续阅读 »
首先系统有问题,总是提示“草稿文档保存数目超过上限。” 以至于无法保存草稿。
可是本人就写了一篇文章,然后草稿箱也是空的。这是bug吧?
 
然后打算咨询客服。 每次想到要咨询的时候,要么一直排队。要么就是非工作时间。
 
收起阅读 »

持有封基老师文章合集 word版【包含公众号所有文字】


 
用程序爬取的数据,不得不说,封基老师从18年开始写文章。坚持每天写一篇。
里面有不少理念都是很适合上班族的。
 
文章是word版
 

 
 
下载地址:
链接:https://pan.baidu.com/s/1EZwJ6tsFiS92ftAdeNKWDw 
提取码:dcp4
 
继续阅读 »

 
用程序爬取的数据,不得不说,封基老师从18年开始写文章。坚持每天写一篇。
里面有不少理念都是很适合上班族的。
 
文章是word版
 

 
 
下载地址:
链接:https://pan.baidu.com/s/1EZwJ6tsFiS92ftAdeNKWDw 
提取码:dcp4
  收起阅读 »

这种拿别人代码和数据改点东西 还弄错结果,挺搞笑的


 
这个ylxwyj纯属一个装逼犯。 简单的道理,洋洋洒洒写一大篇八股文,什么alpha,信息比率,对,很专业。 实际对文中的结论有任何作用吗? 提出来就是装逼用的。
 
更为搞笑的是自己结论弄错了,还不谦虚。 
 
这种人就像项目组里面,把你代码剽窃了,然后去外面跟别人说一通大道理。 然后最后发现无法自圆其说。 然后他说,哦 是xxx的代码有问题,是xxx的数据有问题。
 
继续阅读 »

 
这个ylxwyj纯属一个装逼犯。 简单的道理,洋洋洒洒写一大篇八股文,什么alpha,信息比率,对,很专业。 实际对文中的结论有任何作用吗? 提出来就是装逼用的。
 
更为搞笑的是自己结论弄错了,还不谦虚。 
 
这种人就像项目组里面,把你代码剽窃了,然后去外面跟别人说一通大道理。 然后最后发现无法自圆其说。 然后他说,哦 是xxx的代码有问题,是xxx的数据有问题。
  收起阅读 »

敬畏市场 市场里没有永恒的圣杯

无论回测,还是最近的实际盈利。可转债低溢价策略最近风头还是很猛的
 
实际上发力时间是在6月中旬
无论回测,还是最近的实际盈利。可转债低溢价策略最近风头还是很猛的
 
实际上发力时间是在6月中旬

有一个非常好用的油猴脚本

名字叫userscript+
 
这个脚本很简单,就是你打开某个网页后,会自动搜索这个网站相关的油猴脚本 !
也就是有了这个脚本后,以后找脚本就及其方便了。直接用一个脚本找其他剩余的。
 
比如装了这个脚本后,打开iqiyi
 
 
右下角会出现一个所有油猴脚本的地方
继续阅读 »
名字叫userscript+
 
这个脚本很简单,就是你打开某个网页后,会自动搜索这个网站相关的油猴脚本 !
也就是有了这个脚本后,以后找脚本就及其方便了。直接用一个脚本找其他剩余的。
 
比如装了这个脚本后,打开iqiyi
 
 
右下角会出现一个所有油猴脚本的地方 收起阅读 »

可转债 攻守 读后感

其实书本里很多内容在网上都可以找到。偏向规则解析与介绍,加一些案例。 实在没有很多新颖的东西。
 
大部分是拿企业的可转债发行公告的内容贴上去的。 或者拿饕餮海在雪球上的回复。
 
评分 1/5. 满分5分的话,得分为1分。 不推荐。 
 
我读的是PDF电子书
PS: 原来饕餮海是一名医生。也很难得,去年疫情的情况下,居然还能抽空写出一本书,不过也可以知道,如此仓促下写的书质量实在不行的。
 
 
继续阅读 »
其实书本里很多内容在网上都可以找到。偏向规则解析与介绍,加一些案例。 实在没有很多新颖的东西。
 
大部分是拿企业的可转债发行公告的内容贴上去的。 或者拿饕餮海在雪球上的回复。
 
评分 1/5. 满分5分的话,得分为1分。 不推荐。 
 
我读的是PDF电子书
PS: 原来饕餮海是一名医生。也很难得,去年疫情的情况下,居然还能抽空写出一本书,不过也可以知道,如此仓促下写的书质量实在不行的。
 
 
收起阅读 »

挺讨厌那些标题不写内容,只写个惊怵标题,然后需要用户点进去看的内容

对着这样的视频,如果下载在本地,看完后完全没有办法检索其内容的。
 
所以需要养成一个习惯,把它的标题加入新的内容。
 
个人的习惯是加入一个 viewed 标记,表示看完了。
一个分数。 表示这个视频的得分。
一个主要内容简介
 
比如
一个命名的视频文件为:
 
一个闷声发大财的行业【小Lin干货】
 
最后改为:
 
咨询 - 一个闷声发大财的行业【小Lin干货】  咨询行业 viewed.mp4
 
 
继续阅读 »
对着这样的视频,如果下载在本地,看完后完全没有办法检索其内容的。
 
所以需要养成一个习惯,把它的标题加入新的内容。
 
个人的习惯是加入一个 viewed 标记,表示看完了。
一个分数。 表示这个视频的得分。
一个主要内容简介
 
比如
一个命名的视频文件为:
 
一个闷声发大财的行业【小Lin干货】
 
最后改为:
 
咨询 - 一个闷声发大财的行业【小Lin干货】  咨询行业 viewed.mp4
 
  收起阅读 »

腾讯云几十块一年的服务器只能拿来做玩具

真心垃圾。因为价格摆在那里。
但是做活动,几百块买了几年的。实际用下来,体验就是垃圾。
用sftp,下载文件,然后ssh就无法通入。
系统完全卡死了。
真心垃圾。因为价格摆在那里。
但是做活动,几百块买了几年的。实际用下来,体验就是垃圾。
用sftp,下载文件,然后ssh就无法通入。
系统完全卡死了。

知乎上的某些大v可以肆无忌惮的贴公众号营销,而那些普通作者则会被封号删帖

之前发的文章其实都很正常。后面为了引流,看到一些大v都在文末留公众号名称引流。故模仿之。
 
结果直接的号就被封了好几天。
 

 
后来得知,原来知乎并不是一视同仁。
 
一些粉丝多的用户,可以无视条款,疯狂引流推广,发二维码,发公众号。
并且你投诉举报他,完全是没有任何作用的。
 
而一旦你留言几个,比如“后台私信”这样的字眼,都会被无情的删帖。
 
个人举报的一些贴公众号的文章:
 

 
明摆着贴了公众号的,然后还是可以不被处理。
 
所以就知乎88啦。我玩B站去了。 反正你们也不在乎一个可有可无的用户。
 
继续阅读 »
之前发的文章其实都很正常。后面为了引流,看到一些大v都在文末留公众号名称引流。故模仿之。
 
结果直接的号就被封了好几天。
 

 
后来得知,原来知乎并不是一视同仁。
 
一些粉丝多的用户,可以无视条款,疯狂引流推广,发二维码,发公众号。
并且你投诉举报他,完全是没有任何作用的。
 
而一旦你留言几个,比如“后台私信”这样的字眼,都会被无情的删帖。
 
个人举报的一些贴公众号的文章:
 

 
明摆着贴了公众号的,然后还是可以不被处理。
 
所以就知乎88啦。我玩B站去了。 反正你们也不在乎一个可有可无的用户。
  收起阅读 »

go env 与go path,go module 的设置

一、GOROOT

GOROOT指的Golang语言的安装路径,即Golang语言内置程序库所在的位置。通常在安装时环境变量会设置好GOROOT路径。当开发时,import标准库时并不需要额外安装,当程序运行后,也会去GOROOT路径下寻找相应程序。

二、GOPATH

GOPATH即存放第三方库的位置。通常开发时,会把GOPATH重新设置。

2.1 GOPATH目录

bin:放置编译后生成的可执行文件。

pkg:放置编译后生成的包/库的归档文件

src:放置项目和库的源文件;

2.1.1 src

用于以包(package)的形式组织并存放 Go 源文件,这里的包与 src 下的每个子目录是一一对应。例如,若一个源文件被声明属于 log 包,那么它就应当保存在 src/log 目录中。

并不是说 src 目录下不能存放 Go 源文件,一般在测试或演示的时候也可以把 Go 源文件直接放在 src目录下,但是这么做的话就只能声明该源文件属于 main 包了。正常开发中还是建议大家把 Go 源文件放入特定的目录中。

另外需要注意的是,Go语言会把通过go get命令获取到的库源文件下载到 src 目录下对应的文件夹当中。

2.1.2 pkg

用于存放通过go install命令安装某个包后的归档文件。归档文件是指那些名称以“.a”结尾的文件。

该目录与 GOROOT 目录(也就是Go语言的安装目录)下的 pkg 目录功能类似,区别在于这里的 pkg 目录专门用来存放项目代码的归档文件。

编译和安装项目代码的过程一般会以代码包为单位进行,比如 log 包被编译安装后,将生成一个名为 log.a 的归档文件,并存放在当前项目的 pkg 目录下。

2.1.3 bin

与 pkg 目录类似,在通过go install命令完成安装后,保存由 Go 命令源文件生成的可执行文件。在类 Unix 操作系统下,这个可执行文件的名称与命令源文件的文件名相同。

而在 Windows 操作系统下,这个可执行文件的名称则是命令源文件的文件名加 .exe 后缀。

2.2 设置和使用GOPATH
2.2.1 windows设置

在环境变量中添加GOPATH变量,将目录添加即可。

2.2.2 linux设置

设置当前目录为GOPATH:选择一个目录,在目录的命令行下执行
export GOPATH='pwd'
 
2.3 GOPATH缺点

只要第三方库不是官方程序库,都要放置到$GOPATH/src下才可以使用.

三 Go Modules

Golang从1.13版本开始有Go Modules.

3.1 使用Go Modules的好处

Go Modules可以将某个项目(文件夹)下的所有依赖整理成一个 go.mod 文件,里面写入了依赖的版本等 使用Go Modules之后我们可不用将代码放置在src下了

3.2 使用Go Modules

官方github关于Modules的WIKI:https://github.com/golang/go/wiki/Modules 
使用 Go Modules 管理依赖后会在项目根目录下生成两个文件 go.mod 和 go.sum go.mod会记录当前项目的所有依赖项module test go 1.15 require http://github.com/gin-gonic/gin v1.6.3go.sum
会记录每个依赖库的版本和哈希值
 
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE= github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI=3.3 如何开启Go Modules


要使用Go Modules首先要设置Go111Modules = on, GO111MODULE有三个值 on:开启 off:关闭 auto根据当前目录下是否有go.mod文件来判断是否使用modules功能

注意:**无论使用那种模式,module功能默认不在GOPATH目录下查找依赖文件,所以使用modules功能时请设置好代理

设置
GO111MODULE
# windows set GO111MODULE=on 
# linux export GO111MODULE=on
然后使用go env查看

3.4 初始化Go Modules进入项目文件夹test 
# 初始化路径 go mod init test 
# 检测依赖 go mod tidy 
# 如果有些依赖项未下载则需要下载 go mod download 
# 导入依赖 go mod vendor3.5 GoLand开启Go Modules

文件(File) 设置(Setting) 在GO选项下选择GO MODULES 启用Go Modules 设置代理服务器

3.6 更新依赖# 检测依赖 go mod tidy # 如果有些依赖项未下载则需要下载 go mod download # 导入依赖 go mod vendor3.7 Git使用GO MODULES注意事项

在git中需要把vendor文件夹放入白名单中,不然项目体积会很大。 git设置白名单方式为在git托管的项目根目录新建 .gitignore 文件,设置忽略即可,但是 go.mod 和 go.sum 不要忽略。 
另一人clone项目后在本地进行依赖更新(同上方依赖更新)即可

3.8 Go Module常用命令go mod init 
# 初始化go.mod go mod tidy 
# 更新依赖文件 go mod download 
# 下载依赖文件 go mod vendor 
# 将依赖转移至本地的vendor文件 go mod edit 
# 手动修改依赖文件 go mod graph 
# 打印依赖图 go mod verify 
# 校验依赖 go mod why 
# 解释为什么需要依赖四、GO PROXY

GOPROXY 是Go语言官方提供的一种通过中间代理商来为用户提供包下载服务的方式。要使用 GOPROXY 只需要设置环境变量 GOPROXY 即可。

4.1 国内镜像

// 阿里云镜像

GOPROXY=https://mirrors.aliyun.com/goproxy/ // 中国golang镜像

GOPROXY=https://goproxy.io

// 七牛云为中国的gopher提供了一个免费合法的代理goproxy.cn,其已经开源。只需一条简单命令就可以使用该代理:go env -w GOPROXY=https://goproxy.cn,direct五、Go Get

执行go get命令,在下载依赖包的同时还可以指定依赖包的版本。

运行go get -u命令会将项目中的包升级到最新的次要版本或者修订版本;

运行go get -u=patch命令会将项目中的包升级到最新的修订版本;

运行go get [包名]@[版本号]命令会下载对应包的指定版本或者将对应包升级到指定的版本。

提示:go get [包名]@[版本号]命令中版本号可以是 x.y.z 的形式,

例如 go get foo@v1.2.3,也可以是 git 上的分支或 tag,例如 go get foo@master,还可以是 git 提交时的哈希值,例如 go get foo@e3702bed2。

六、godep

godep 是一个Go语言官方提供的通过 vender 模式来管理第三方依赖的工具,类似的还有由社区维护的准官方包管理工具 dep。

Go语言从 1.5 版本开始开始引入 vendor 模式,如果项目目录下有 vendor 目录,那么Go语言编译器会优先使用 vendor 内的包进行编译、测试等。

6.1 安装godepgo get github.com/tools/godep命令执行成功后会将 godep 工具的源码下载到 GOPATH 的 src 录下对应的文件夹中,同时还会在 GOPATH 的 bin 目录下生成一个名为 godep.exe 的可执行文件。

6.2 配置环境变量


6.3 godep基本命令

命令 说明godep save 将依赖包的信息保存到Godeps.json文件中 godep go 使用保存的依赖项运行go工具 godep get 下载并安装指定的包 godep path 打印依赖的GOPATH路径 godep restore 在GOPATH中拉取依赖的版本 godep update 更新选定的包或go版本 godep diff 显示当前和以前保存的依赖项集之间的差异 godep version 查看版本信息6.4 使用godep

执行godep save命令,会在当前目录中创建 Godeps 和 vender 两个文件夹。

Godeps 文件夹下会生成一个 Godeps.json 文件,用来记录项目中所依赖的包信息;vender 目录则是用来保存当前项目所依赖的所有第三方包。生成的 Godeps.json 文件的结构如下所示:
{
"ImportPath": "main",//项目路径信息
"GoVersion": "go1.13",//go语言版本号
"GodepVersion": "v80",//godep版本号
"Deps": [//当前引用的包
{
"ImportPath": "github.com/go-gomail/gomail",//依赖包路径
"Comment": "2.0.0-23-g81ebce5",//版本号
"Rev": "81ebce5c23dfd25c6c67194b37d3dd3f338c98b1"//哈希值
}
]
}

当所引用的第三方包要升级只需要修改Godep.json里面的依赖包的版本号,让后执行godep save命令即可。

godep查找依赖顺序: 在项目路径下的vender文件夹中查找 到GOPATH/src目录查找
继续阅读 »
一、GOROOT

GOROOT指的Golang语言的安装路径,即Golang语言内置程序库所在的位置。通常在安装时环境变量会设置好GOROOT路径。当开发时,import标准库时并不需要额外安装,当程序运行后,也会去GOROOT路径下寻找相应程序。

二、GOPATH

GOPATH即存放第三方库的位置。通常开发时,会把GOPATH重新设置。

2.1 GOPATH目录

bin:放置编译后生成的可执行文件。

pkg:放置编译后生成的包/库的归档文件

src:放置项目和库的源文件;

2.1.1 src

用于以包(package)的形式组织并存放 Go 源文件,这里的包与 src 下的每个子目录是一一对应。例如,若一个源文件被声明属于 log 包,那么它就应当保存在 src/log 目录中。

并不是说 src 目录下不能存放 Go 源文件,一般在测试或演示的时候也可以把 Go 源文件直接放在 src目录下,但是这么做的话就只能声明该源文件属于 main 包了。正常开发中还是建议大家把 Go 源文件放入特定的目录中。

另外需要注意的是,Go语言会把通过go get命令获取到的库源文件下载到 src 目录下对应的文件夹当中。

2.1.2 pkg

用于存放通过go install命令安装某个包后的归档文件。归档文件是指那些名称以“.a”结尾的文件。

该目录与 GOROOT 目录(也就是Go语言的安装目录)下的 pkg 目录功能类似,区别在于这里的 pkg 目录专门用来存放项目代码的归档文件。

编译和安装项目代码的过程一般会以代码包为单位进行,比如 log 包被编译安装后,将生成一个名为 log.a 的归档文件,并存放在当前项目的 pkg 目录下。

2.1.3 bin

与 pkg 目录类似,在通过go install命令完成安装后,保存由 Go 命令源文件生成的可执行文件。在类 Unix 操作系统下,这个可执行文件的名称与命令源文件的文件名相同。

而在 Windows 操作系统下,这个可执行文件的名称则是命令源文件的文件名加 .exe 后缀。

2.2 设置和使用GOPATH
2.2.1 windows设置

在环境变量中添加GOPATH变量,将目录添加即可。

2.2.2 linux设置

设置当前目录为GOPATH:选择一个目录,在目录的命令行下执行
export GOPATH='pwd'
 
2.3 GOPATH缺点

只要第三方库不是官方程序库,都要放置到$GOPATH/src下才可以使用.

三 Go Modules

Golang从1.13版本开始有Go Modules.

3.1 使用Go Modules的好处

Go Modules可以将某个项目(文件夹)下的所有依赖整理成一个 go.mod 文件,里面写入了依赖的版本等 使用Go Modules之后我们可不用将代码放置在src下了

3.2 使用Go Modules

官方github关于Modules的WIKI:https://github.com/golang/go/wiki/Modules 
使用 Go Modules 管理依赖后会在项目根目录下生成两个文件 go.mod 和 go.sum go.mod会记录当前项目的所有依赖项module test go 1.15 require http://github.com/gin-gonic/gin v1.6.3go.sum
会记录每个依赖库的版本和哈希值
 
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE= github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI=3.3 如何开启Go Modules


要使用Go Modules首先要设置Go111Modules = on, GO111MODULE有三个值 on:开启 off:关闭 auto根据当前目录下是否有go.mod文件来判断是否使用modules功能

注意:**无论使用那种模式,module功能默认不在GOPATH目录下查找依赖文件,所以使用modules功能时请设置好代理

设置
GO111MODULE
# windows set GO111MODULE=on 
# linux export GO111MODULE=on
然后使用go env查看

3.4 初始化Go Modules进入项目文件夹test 
# 初始化路径 go mod init test 
# 检测依赖 go mod tidy 
# 如果有些依赖项未下载则需要下载 go mod download 
# 导入依赖 go mod vendor3.5 GoLand开启Go Modules

文件(File) 设置(Setting) 在GO选项下选择GO MODULES 启用Go Modules 设置代理服务器

3.6 更新依赖# 检测依赖 go mod tidy # 如果有些依赖项未下载则需要下载 go mod download # 导入依赖 go mod vendor3.7 Git使用GO MODULES注意事项

在git中需要把vendor文件夹放入白名单中,不然项目体积会很大。 git设置白名单方式为在git托管的项目根目录新建 .gitignore 文件,设置忽略即可,但是 go.mod 和 go.sum 不要忽略。 
另一人clone项目后在本地进行依赖更新(同上方依赖更新)即可

3.8 Go Module常用命令go mod init 
# 初始化go.mod go mod tidy 
# 更新依赖文件 go mod download 
# 下载依赖文件 go mod vendor 
# 将依赖转移至本地的vendor文件 go mod edit 
# 手动修改依赖文件 go mod graph 
# 打印依赖图 go mod verify 
# 校验依赖 go mod why 
# 解释为什么需要依赖四、GO PROXY

GOPROXY 是Go语言官方提供的一种通过中间代理商来为用户提供包下载服务的方式。要使用 GOPROXY 只需要设置环境变量 GOPROXY 即可。

4.1 国内镜像

// 阿里云镜像

GOPROXY=https://mirrors.aliyun.com/goproxy/ // 中国golang镜像

GOPROXY=https://goproxy.io

// 七牛云为中国的gopher提供了一个免费合法的代理goproxy.cn,其已经开源。只需一条简单命令就可以使用该代理:go env -w GOPROXY=https://goproxy.cn,direct五、Go Get

执行go get命令,在下载依赖包的同时还可以指定依赖包的版本。

运行go get -u命令会将项目中的包升级到最新的次要版本或者修订版本;

运行go get -u=patch命令会将项目中的包升级到最新的修订版本;

运行go get [包名]@[版本号]命令会下载对应包的指定版本或者将对应包升级到指定的版本。

提示:go get [包名]@[版本号]命令中版本号可以是 x.y.z 的形式,

例如 go get foo@v1.2.3,也可以是 git 上的分支或 tag,例如 go get foo@master,还可以是 git 提交时的哈希值,例如 go get foo@e3702bed2。

六、godep

godep 是一个Go语言官方提供的通过 vender 模式来管理第三方依赖的工具,类似的还有由社区维护的准官方包管理工具 dep。

Go语言从 1.5 版本开始开始引入 vendor 模式,如果项目目录下有 vendor 目录,那么Go语言编译器会优先使用 vendor 内的包进行编译、测试等。

6.1 安装godepgo get github.com/tools/godep命令执行成功后会将 godep 工具的源码下载到 GOPATH 的 src 录下对应的文件夹中,同时还会在 GOPATH 的 bin 目录下生成一个名为 godep.exe 的可执行文件。

6.2 配置环境变量


6.3 godep基本命令

命令 说明godep save 将依赖包的信息保存到Godeps.json文件中 godep go 使用保存的依赖项运行go工具 godep get 下载并安装指定的包 godep path 打印依赖的GOPATH路径 godep restore 在GOPATH中拉取依赖的版本 godep update 更新选定的包或go版本 godep diff 显示当前和以前保存的依赖项集之间的差异 godep version 查看版本信息6.4 使用godep

执行godep save命令,会在当前目录中创建 Godeps 和 vender 两个文件夹。

Godeps 文件夹下会生成一个 Godeps.json 文件,用来记录项目中所依赖的包信息;vender 目录则是用来保存当前项目所依赖的所有第三方包。生成的 Godeps.json 文件的结构如下所示:
{
"ImportPath": "main",//项目路径信息
"GoVersion": "go1.13",//go语言版本号
"GodepVersion": "v80",//godep版本号
"Deps": [//当前引用的包
{
"ImportPath": "github.com/go-gomail/gomail",//依赖包路径
"Comment": "2.0.0-23-g81ebce5",//版本号
"Rev": "81ebce5c23dfd25c6c67194b37d3dd3f338c98b1"//哈希值
}
]
}

当所引用的第三方包要升级只需要修改Godep.json里面的依赖包的版本号,让后执行godep save命令即可。

godep查找依赖顺序: 在项目路径下的vender文件夹中查找 到GOPATH/src目录查找 收起阅读 »

通达信公式转python代码

本人目前正在做这个转换工作。并定期更新发布在这里。有兴趣的可以参与。

本人目前正在做这个转换工作。并定期更新发布在这里。有兴趣的可以参与。

不用任何软件 快速下载知乎视频

最近看到一些知乎上的视频不错,准备下载下来学习的。

 
 
怎样才可以不需要使用任何工具下载下来呢?
 
这里以chrome浏览器为例。
 
首先打开视频播放页面:
以上面截图的视频为例
https://www.zhihu.com/question/417763830/answer/2036676961
 
鼠标右键,点击查看源码,搜索MP4字符
找到这里的字符串:

然后复制url:后面的字符串,这个就是视频url的真实地址。
"https:\u002F\u002Fvdn3.vzuu.com\u002FSD\u002F5f477b70-f37d-11eb-8aae-264209b0c9bf-v4_t111-vicRmYPff3.mp4?disable_local_cache=1&auth_key=1628660373-0-0-63bfc4cfa197dbe658ae186fa0cb4d05&f=mp4&bu=answer&expiration=1628660373&v=tx"

 
但是url的编码是显示有问题的,用的是uncode字符,所以我们要转为utf8,我们平时看得见的字符
 
按下F12,然后在控制台里面把刚才的url复制过来,然后按下enter
 
返回的就是已经编码好的视频地址了:

 
 
然后复制到浏览器,就可以直接看到视频啦。 然后用鼠标右键,直接另存视频为本地文件就可以了。

 
原创文章,转载请注明出处:
http://www.30daydo.com/article/44255
 
继续阅读 »
最近看到一些知乎上的视频不错,准备下载下来学习的。

 
 
怎样才可以不需要使用任何工具下载下来呢?
 
这里以chrome浏览器为例。
 
首先打开视频播放页面:
以上面截图的视频为例
https://www.zhihu.com/question/417763830/answer/2036676961
 
鼠标右键,点击查看源码,搜索MP4字符
找到这里的字符串:

然后复制url:后面的字符串,这个就是视频url的真实地址。
"https:\u002F\u002Fvdn3.vzuu.com\u002FSD\u002F5f477b70-f37d-11eb-8aae-264209b0c9bf-v4_t111-vicRmYPff3.mp4?disable_local_cache=1&auth_key=1628660373-0-0-63bfc4cfa197dbe658ae186fa0cb4d05&f=mp4&bu=answer&expiration=1628660373&v=tx"

 
但是url的编码是显示有问题的,用的是uncode字符,所以我们要转为utf8,我们平时看得见的字符
 
按下F12,然后在控制台里面把刚才的url复制过来,然后按下enter
 
返回的就是已经编码好的视频地址了:

 
 
然后复制到浏览器,就可以直接看到视频啦。 然后用鼠标右键,直接另存视频为本地文件就可以了。

 
原创文章,转载请注明出处:
http://www.30daydo.com/article/44255
  收起阅读 »

为什么我宁愿用谷歌而放弃百度

同样的关键字,和你的文章完全匹配。 看看百度搜索出来的是什么玩意?
 
关键字: 通达信无法导入或者监控到可转债的代码
 
百度的结果如下:
 

完全不相关的搜索结果。
 
 
谷歌的搜索结果是这样的:

 
不得不说,百度收录的都是些什么鬼。
一生黑了。
继续阅读 »
同样的关键字,和你的文章完全匹配。 看看百度搜索出来的是什么玩意?
 
关键字: 通达信无法导入或者监控到可转债的代码
 
百度的结果如下:
 

完全不相关的搜索结果。
 
 
谷歌的搜索结果是这样的:

 
不得不说,百度收录的都是些什么鬼。
一生黑了。 收起阅读 »

windows githbash 中的vim 配置

vim
windows githbash 中的vim 配置
打开git-bash
cd ~
vim .vimrc
 
然后就可以设置常用的vim配置了
 
比如显示行号:
set number
"语法高亮 
syntax on 
 

继续阅读 »
windows githbash 中的vim 配置
打开git-bash
cd ~
vim .vimrc
 
然后就可以设置常用的vim配置了
 
比如显示行号:
set number
"语法高亮 
syntax on 
 

收起阅读 »

Go的包管理比python烂得多,不知道为啥还要被吹捧

1. 不兼容
GO111MODULE与GOPATH不兼容
 
2. 竟然要搞动系统的环境变量。
主要本人使用vim开发,编译运行都在shell底下,windows也是在cmd下跑的
 
3. 下载包的地址被墙,需要设置国内的地址。并且官方的包镜像也在github,其下载速度,你懂的。
蜗牛一样的。
继续阅读 »
1. 不兼容
GO111MODULE与GOPATH不兼容
 
2. 竟然要搞动系统的环境变量。
主要本人使用vim开发,编译运行都在shell底下,windows也是在cmd下跑的
 
3. 下载包的地址被墙,需要设置国内的地址。并且官方的包镜像也在github,其下载速度,你懂的。
蜗牛一样的。 收起阅读 »

知乎的技术很烂,一个视频重新上传的功能都没做好

技术不咋地。
视频上传失败了,然后点击重新上传,一点反应都没有。
只能刷新页面,把已经填好的标题,内容等重新填过过。
 
 
技术不咋地。
视频上传失败了,然后点击重新上传,一点反应都没有。
只能刷新页面,把已经填好的标题,内容等重新填过过。
 
 

python 上传文件夹内图片到七牛,同时加入批量删除,单个删除

先注册好七牛的账户,那都AK和SK两个key
 
然后把key写入到环境变量或者写到下面的python文件里面
from qiniu import Auth, put_file,BucketManager,build_batch_delete
import os
import fire

access_key = os.getenv('qiniu_access_key')
secret_key = os.getenv('qiniu_secret_key')

bucket_name = '' # 你的空间名称

HOST ='[url]http://xximg.xxx.com/{}'[/url] # 可以不用填

TEMPLATE = '\n![{}]({})\n\n\n'

def upload(file,category=''):

    #构建鉴权对象
    q = Auth(access_key, secret_key)
    #要上传的空间

    #上传后保存的文件名
    key = category +'/' + os.path.split(file)[1]
    #生成上传 Token,可以指定过期时间等
    token = q.upload_token(bucket_name, key) # 永不过期

    #要上传文件的本地路径
    ret, info = put_file(token, key, file, version='v1') 
    print(ret)
    print(info)
    return HOST.format(ret['key'])

def bulk_upload(path,category=''):
    with open('qiniu_image.md','a+') as fp:
        for file in os.listdir(path):
            full_path = os.path.join(path,file)
            if os.path.isfile(full_path):

                host_url = upload(full_path,category)
                fp.write(TEMPLATE.format(host_url,host_url))


def get_file_info(prefix,limit = 10):
    q = Auth(access_key, secret_key)
    bucket = BucketManager(q)

    delimiter = None
    marker = None
    ret, eof, info = bucket.list(bucket_name, prefix, marker, limit, delimiter)

    # assert len(ret.get('items')) is not None
    url_list=[]
    for item in ret.get('items',):
        url_list.append(item['key'])
    # print(url_list)
    # print(len(url_list))
    return url_list,len(url_list)

def bulk_delete(prefix,limit=None):
    url_list,lens = get_file_info(prefix,limit=limit)
    q = Auth(access_key, secret_key)
    bucket = BucketManager(q)
    ops = build_batch_delete(bucket_name, url_list)
    ret, info = bucket.batch(ops)
    print(info)
    print(ret)

def delete_one(key):
    q = Auth(access_key, secret_key)
    #初始化BucketManager
    bucket = BucketManager(q)
    #你要测试的空间, 并且这个key在你空间中存在
    # key = 'python-logo.png'
    #删除bucket_name 中的文件 key
    ret, info = bucket.delete(bucket_name, key)
    print(info)
    print(ret)
    # assert ret == {}


def bulk_delete_ones(prefix):
    url_list,lens = get_file_info(prefix,limit=10)
    for url in url_list:
        delete_one(url)
        # print(url)

def main(path,category):

    if os.path.isdir(path):

         bulk_upload(path,category)
    elif os.path.isfile(path):
         upload(path,category)
    else:
         raise ValueError('文件不存在')

    get_file_info()
    bulk_delete('resource')
    bulk_delete_ones('resource')
    delete_one('resource/data_beauty.png')

if __name__ == '__main__':
    fire.Fire(main)



然后运行:
python main.py --path='C:\Photo' --category='person'
运行后会上传到七牛的虚拟目录 person目录下
 
如果要删除,bulk_delete批量删除某个前缀或者文件夹的 
继续阅读 »
先注册好七牛的账户,那都AK和SK两个key
 
然后把key写入到环境变量或者写到下面的python文件里面
from qiniu import Auth, put_file,BucketManager,build_batch_delete
import os
import fire

access_key = os.getenv('qiniu_access_key')
secret_key = os.getenv('qiniu_secret_key')

bucket_name = '' # 你的空间名称

HOST ='[url]http://xximg.xxx.com/{}'[/url] # 可以不用填

TEMPLATE = '\n![{}]({})\n\n\n'

def upload(file,category=''):

    #构建鉴权对象
    q = Auth(access_key, secret_key)
    #要上传的空间

    #上传后保存的文件名
    key = category +'/' + os.path.split(file)[1]
    #生成上传 Token,可以指定过期时间等
    token = q.upload_token(bucket_name, key) # 永不过期

    #要上传文件的本地路径
    ret, info = put_file(token, key, file, version='v1') 
    print(ret)
    print(info)
    return HOST.format(ret['key'])

def bulk_upload(path,category=''):
    with open('qiniu_image.md','a+') as fp:
        for file in os.listdir(path):
            full_path = os.path.join(path,file)
            if os.path.isfile(full_path):

                host_url = upload(full_path,category)
                fp.write(TEMPLATE.format(host_url,host_url))


def get_file_info(prefix,limit = 10):
    q = Auth(access_key, secret_key)
    bucket = BucketManager(q)

    delimiter = None
    marker = None
    ret, eof, info = bucket.list(bucket_name, prefix, marker, limit, delimiter)

    # assert len(ret.get('items')) is not None
    url_list=[]
    for item in ret.get('items',):
        url_list.append(item['key'])
    # print(url_list)
    # print(len(url_list))
    return url_list,len(url_list)

def bulk_delete(prefix,limit=None):
    url_list,lens = get_file_info(prefix,limit=limit)
    q = Auth(access_key, secret_key)
    bucket = BucketManager(q)
    ops = build_batch_delete(bucket_name, url_list)
    ret, info = bucket.batch(ops)
    print(info)
    print(ret)

def delete_one(key):
    q = Auth(access_key, secret_key)
    #初始化BucketManager
    bucket = BucketManager(q)
    #你要测试的空间, 并且这个key在你空间中存在
    # key = 'python-logo.png'
    #删除bucket_name 中的文件 key
    ret, info = bucket.delete(bucket_name, key)
    print(info)
    print(ret)
    # assert ret == {}


def bulk_delete_ones(prefix):
    url_list,lens = get_file_info(prefix,limit=10)
    for url in url_list:
        delete_one(url)
        # print(url)

def main(path,category):

    if os.path.isdir(path):

         bulk_upload(path,category)
    elif os.path.isfile(path):
         upload(path,category)
    else:
         raise ValueError('文件不存在')

    get_file_info()
    bulk_delete('resource')
    bulk_delete_ones('resource')
    delete_one('resource/data_beauty.png')

if __name__ == '__main__':
    fire.Fire(main)



然后运行:
python main.py --path='C:\Photo' --category='person'
运行后会上传到七牛的虚拟目录 person目录下
 
如果要删除,bulk_delete批量删除某个前缀或者文件夹的  收起阅读 »