go与qt的新酒老瓶

前言

只所以说是新酒老瓶而不是新瓶老酒是有用意的。

因为QT是器,老瓶,出来时配合着C++的。而如今go来势凶凶,自然英雄所见略同。

两大开源神器,跨平台开发,终将双剑合璧了,让你如虎添翼。

过程记录如下

安装QT

→参考指导:

https://www.cnblogs.com/haijian/p/12417129.html

本人使用/usr/local/qt为QTDIR。5.12.10

安装go

→参考指导:

https://blog.csdn.net/icanx/article/details/91438450

→配置go env国内源

liteide源码编译安装

→参考指导:

https://www.cnblogs.com/7explore-share/p/5838281.html?utm_source=debugrun&utm_medium=referral

出现了模板路径报错,于是使用tarena环境,但是root账户,先安装两个包,再改脚本后,编译方成功。

https://www.cnblogs.com/liaojiafa/p/12798025.html

实在是经典解说:

→针对windows平台

在此时需要安装mingw64做为前提,不然liteide就是水土不服的。必要时关闭360吧!

mingw64实是难搞,换了几个工具,如mingw installation manager,最后用mingw-w64-install.exe
启动后选择版本,posix和seh,这就生成了安装目录。
在安装过程中,把此前下载的源码包压缩包“mingw-w64-v8.0.0.zip”重新命名为“x86_64-8.1.0-release-posix-seh-rt_v6-rev0.7z”,放置在默认的目录中“x86_64-8.1.0-posix-seh-rt_v6-rev0”
最后,把安装的路径
C:\Program Files\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\bin
放到系统环境变量中。万事大吉。gcc,g++一应具全,随处可用。

GO111MODULE在windows上是没有auto可设置的,即便你使用liteide设置了,但go env中实际还是当它为on。

所以,系统底层仍设置为on,GOPATH目录内的源码编译成功,无论是否有go.mod。但要是GOPATH目录外的拥有go.mod文件(这是通过go mod init src生成的)可以编译成功。

当设置为off时,同时也得让GOPROXY为空,这时GOPATH和有go.mod的外部目录都可在命令行编译成功。所以,建议你还是使用命令行吧,因为,同一代码在命令行和liteide中结果不同,并且,保持on状态,保持代码不在GOPATH中。相信,go的发展也是会弃掉它。

→针对linux平台

GO111MODULE可以被liteide设置成auto.

这样设置的好处是模糊使用GOPATH(任何设置都OK)。而无论要编译的源码在任何目录都可以,且不用设置go.mod。

前台qt后台go起步

→参考指导:

环境:https://github.com/therecipe/qt/wiki

→therecipe/qt包的安装

先go get -u -v 不行就先下载,然后改名适配到代码中包引用的相应GOPATH中,然后再安装命令工具即cmd中的…。

重要是认清go get的本质就是一种git clone的包装。

go install  /home/tarena/code4DN/learn_gopath/src/github.com/therecipe/qt/cmd/...

不出意外是报错的,但看下面的解决问题内容。

→解决go端的环境的问题

https://blog.csdn.net/wzw_mzm/article/details/77618922

出现“找不到 golang.org/x/mod/module”问题,后来手工下载了golang.org/x/下面系列仓库,就是 git clone.

git clone https://github.com/golang/mod.git 
git clone https://github.com/golang/xerrors.git 
这是两个新加入的,一般没有它,已经可以运行demo.最终的完整支持包如下图

原始网上下载运行demo的命令如下,

go get -ldflags="-w" github.com/therecipe/examples/basic/widgets && $(go env GOPATH)/bin/widgets

它会直接运行一个弹出窗口,相应后台的操作是拷贝了代码并编译放在GOPATH/bin中,再运行。
本人已经下载过therecipe/qt包了,就是对应GOPATH下的

github.com/therecipe/examples/basic/widgets/main.go

→解决QT端的环境问题

以上集齐了龙珠。这里是锦上添花,因为,要充分使用QT的伎俩,就需要一套工具。
这时再次执行命令

go install  /home/tarena/code4DN/learn_gopath/src/github.com/therecipe/qt/cmd/...

命令成功使用之后

goqtuic的安装

go get -u -v github.com/stephenlyu/goqtuic

事实上没有这些工具也可以运行demo或QT库的代码。只要thericipe/qt包具备了就行。

总结跨平台

不管是windows还是linux下,都要在GOPATH/src下具备github.com和golang.org。前者里面有therecipe后者里面有x。同样的代码,都用Liteide编译,本地化成各自系统的风格。

静态库的go调用:(用GO来唤醒C的各种沉睡资源吧)
https://www.jianshu.com/p/b3fb41d7c33f

附录:

  • qtsetup会把qt的相应源码下载放置在go源码旁边,如果你有了mingw和gcc,它都会编译成静态库(.a的文件)给你。go帮你丰富环境真是全方位的。如果你是单独完全安装的qt环境,此处可以省略。很久以前,静态编译成window平台的QT库让你累疯,但现在mingw和go,让你永远不碰那个步骤了。
  • 翻墙参考:https://www.cnblogs.com/hupeng1234/p/9727170.html
  • qt如果要调试或用其它QT版本,有几个需要的环境变量比如QT_DIR。

刍狗的由来

不必说,老子的“天地不仁,以万物为刍狗。圣人不仁,以百姓为刍狗。”想必都听过。
但理解它,却不是很容易。需要先从刍狗下手。

刍狗,就是祭祀用的草编的狗,刍读chu二声而非zou。“刍狗”就是扎草为狗形,疾疫时用于求福禳灾,此时要文饰妆扮一番。祈祷之后,侍祭者可享用祭品,而刍狗即便弃置,人踏车轹,随后就将它当做柴草,一烧了事。我们看汉、魏、晋文献中的记载,就可以明白。《淮南子·齐俗篇》说刍狗和土龙刚刚做好的时候,用青黄色来文饰,蒙上绮绣,缠着红线,尸祝穿着纯黑色的祭服,大夫戴着礼帽来迎送它们。等到用完之后,土龙不过成了一堆土壤,刍狗不过成了一堆草芥罢了,有谁看重它们呢?用时显贵,用后废弃,天地万物,莫非如此。
有了刍狗的基础,于是整理出三种对老子言的理解,如下:

1)天道任自然而已,并不加惠于物。而万物各自有所用。只是让万物如刍狗那样走完自己由荣华到废弃的过程而已。
2)天地滋养着万物,不会说自己多么仁厚,不求万物用草扎成的狗来表示祭拜他。所以天地不言仁,不争仁,滋养着万物,不求万物回报他。人也应该有此仁。
3)天地之间找不到仁,是因为万物都成了没有灵魂的草扎的狗。圣人也找不到仁,是因为百姓都成了刍狗。所以,后面“多言数穷,不如守中”听多了仁的说法,不如心中守仁。

其实理解的关键在于“刍狗”的词性。如果是中性词使用,那就是一个祭祀用的物品,和土龙一样。那就是天地和圣人都不要求仁厚。
如果是按贬义来使用,那就是第三种理解,有悲观和绝望的成分。而如果“刍狗”是一种比喻手法时,就是万法自然的取义了。
本人倾向于第二种,因为,老子习惯于“名词动用”,你一定听过:

上德不德,是以有德。

此处的不德,是指不要求德行(动词),于是推论,天地和圣人的不仁就是不要求仁的行为。

☼☰☾T

看文章题目一定比较困惑,因为是加密文字。
其中有乾卦和英文,这样再看意思就变成:

日乾夕惕

说到这里,已经有人可以读出整句了,国学易经中有云:

终日乾乾,夕惕若,厉无咎。

出于乾卦的动爻九三,意思是:君子,终日都勤奋努力,积极向上,到了晚上便思考明天并预测可能的变化和应对之术。这样以来,虽处危境但没有毛病。
这里有值得玩味的地方,有人认为断句是分歧,分别是:

“夕惕,若,厉,无咎”和“夕惕若,厉无咎”

对于不同的断句,解释就会有不同。九三爻有人认为是暗藏凶险的,所以,这些人把若不解释成好像或者可能,而是变成人称“你”,这样看来
意思变成:“夜晚要警惕,你,仍处于危险之中”。
九三爻的象辞说,君子举止言谈因忠诚而进德修业,能够洞察秋毫,能够高瞻远瞩而守业。是故,居上位而不骄,在下位而不忧。这就是对断语“无咎”的解读。

美国大选之殇

美国总统大选秀,历来就不少内幕和交易。当年戈尔与布什,票差分毫,闹到法院,也是有人息事宁人,有人欺世盗名。
古有姜子牙80挂相,今有拜登78中总统。事不过三,老骥出山。
上德不德,是以有德。美国的总统们,内杠还是打仗?
路透社的一篇报导说密歇根一位民主党母亲宣布将把票投给特朗普以后,她21岁的儿子宣称“你不再是我妈”;
而在华人聚集的微信上,意见相左的人们正在用最恶毒的中文互相问候着对方的祖宗。大选开始,就有人要移民加拿大,
现在摇摆州又有30万张选票不翼而飞。
还有疫情呢,还有四年后还这么选吗?对了,咱就是看热闹不怕事大的。

附赠段子:

川普一直焦急地等消息,一位朋友劝他早点睡,说:“拜登啦,等也是拜登。”
问:这位朋友最可能是什么人?
A,一位共和党朋友
B,一位民主党朋友
C,一位河南朋友

IT技术前瞻

思索一些值得提前储备的技能。当今比较高速发展的方向不外乎是:人工智能,大数据,云计算,区块链。这些曾经的前瞻性技术已经悄然来到了我们身边了。然而,技术种类虽多但彼此推动和配合是相当密切的。本人根据生产三者的思路略分析了一下:

技术选型 生产三者
人工智能(AI),云计算 生产力
区块链 生产关系
大数据(分析/安全算法),物联网(IOT) 生产工具

事实上,未来的物流行业需要创新的价值点是生产力和生产关系,即AI和区块链。生产力是硬核,生产关系是降本增效。要想拥有竞争力就要在这两点来发力。虽然应该考虑技术变动和发展完善或成熟的因素,但行业的趋势是明显的。地灾数据的分析挖掘或多式联运一旦成立,都要求更多先进技术的支撑。即便是找外包和与互联网公司合作,都要能有更高的视野和与其它公司对话的基础。

多式联运应用区块链的十大理由

  • 物流追踪基础—货物追踪场景,并不是空间位置层面而是业务流程方面,每笔账都会记录清楚。
  • 边际成本为零—更多承运人加盟,更多交易支付环节也无成本的线性累加(成本包括线上和线下)
  • 会计前置清算—公司不收取客户垫付资金,规避了风险,实时清分结算,这是非常吸引客户的创新和特色,保证了客户资金链运转正常。
  • 多方共识制度—联盟中业务流中可以设计决定谁拥有记账,交易选举权,审查等的权利。角色合作分工,资产管理透明,管理成本降低。
  • 智能合约灵活—具体承运人与上下游承运人交接业务等管理场景。
  • 技术门槛低廉—代码和算法都开源,如果合作商已经有摸索拿来用,整合资源合兵一处。
  • 新兴技术跟随—对人工智能,物联网和大数据等维度上的新技术可以采取跟随战术。
  • 业务边缘扩展—在链上慢慢扩展和分支到相关领域链,比如保险,公益。
  • 课题建设先机—我们可以借此来申请课题,产学研一体。
  • 设币激励制度—对外合伙货运司机积分,以及对内员工的激励。在股份,期权无法刺激员工前,在链上引入币后,可以在公司激励制度设计上合理创新。

华山论剑之编程语言

风云再起

有人的地方,就有江湖,有码农的地方,那里就有编程语言的分争。

二十年前,中国90%的程序员=写C语言的人。编程语言三分天下。
而现在,井喷一般出现了300种编程语言。主流圈子里有一个鄙视链的。科普BSL的意思:具体是无非是看英超的瞧不起看德甲的,看德甲的看不起看意甲的,看意甲的当然受不了看中超的,也许他们都看不起中超。
所以,编程语言中搞与机器语言关系近的就看不起底层的,底层就看不起表示层的,他们也有共同点,那就是看不起用HTML开发的。
有人说“Java天下第一”就有人跳出来“PHP是最好的语言,不接受反驳!”
江湖险恶环生,你看不起kotlin吧,可是全面兼容了java这个靠山,扶摇直上三千里。
Java帝国在Web编程领域受到了PHP, Python, Ruby 持续攻击, 被搞的灰头土脸, 但是帝国的基因和运气实在是好, 竟然又搭上了手机开发和大数据快班车, 成功开辟了新战场。

C语言显然沉寂很久了,它的“徒弟”们在圈里横行霸道。
尤其是C++,python,js,java,php。割据兵器谱,叱诧TIOBE。
注:TIOBE是一种开发语言排行榜,“兵器谱”会定期更新。类似于福布斯一样。武林大会盟主之排位实在是行业的风向标。

高徒列传

如果说自古功夫出少林,那么编程语言出于C。

看过《黑客与画家》想到,如果从绘画角度来论编程语言:
C,是用点线面,黑白灰的造型能力,代表作都是素描或中国画.工具包括铅笔(笔),橡皮(墨),白纸(宣纸),简单吧.
C++,是水彩图,你可以用大小不一的毛笔,和N种颜料的调色板了.
java和c#等后续语言,让这里创作变的多元化了,油画,版画,工艺画,工具则变的有了更多种。
python的话,就打开新时代的艺术创作了,当今天的漫画家和插画家,全面应用数位板,压感笔,配合photoshop,批量引入各种素材资源。

→远去的神话–C++

学完C++的人,很少说自己精通
网友A:“吃完自己收拾的是C++程序员,留在桌子上等别人收拾的是Java程序员。”

越早的语言,对内存的使用越要严格.
举例来说,越往古代,礼法也越多.
平辈,长辈之间说话,称谓和废话很多.
会交际的人,一定说的废话是最多的.因为,交际是起于废话的.
“您吃了”,”天气不错”,”最近工作顺利吗?”
可是,这些话就像是c/C++里的,free,析构函数,*pch_XXX=NULL;或空语句等.
在编译器面前,少了如上的这些”废话”,系统就像严厉的长辈(相当于你的太爷在世),让你吃不了兜着走.
做个”懂礼貌”的程序员,会让你写的代码更安全.

→闲话python

人生苦短,我用python

足见coder对它的喜爱,现在玩点什么高大上的都需要这个“神奇胶水”。这条蟒蛇伏在系统中等着你的招呼。
他已经观察了系统很久,也观察了你很久。你准备好粮食和水(第三方模块的安装),然后,启动它,让他出洞或入地掘金或飞上九宵。python没有复杂的“礼貌”和喜欢挑细节毛病的编译器。
王朔说:

第一个人说的,叫“知识分子”。第二个,第三个,还有不知道隔了多少代隔了多少辈,俗称“八杆子打不着的”,都叫“知道分子”。

中国春秋时期的诸子百家,早已哲学过了,做人做事,出世入世。中国一部分孔子门生,一部分老子影响。自然科学发展到今天,奇点邻近,突破太难。
程序员们,扪心自问,你知道了些什么?用android开发app,用框架开发应用。你知道的是什么,只是一些工具和名词。又有多了解android的底层和框架的内部组织?又或者说,你是否有必要去知道?
软件开发中算法更是,一将功成万古枯。所以,事实上留给你的区域很有限的,可能有人认为我比较消极,但发现比发明越发重要,那么坐上python,让你随时引据经典,前人或者牛人的知识总结打包放在你面前自助pick。

→java帝国

说它不好,会被吐沫淹死。
是造生态的专家,短板很少,简直是无所不能。
排行榜几乎没跌出过前五,大厂喜欢,大牛们天天用。

本人读书时,专业课程的最高分就是java,那时做Web就是用JSP,封装就是EJB。做企业应用方向就J2EE,移动方向J2ME。
而现在你如果列java的应用框架,可以有一大箩筐。
各招聘网站上,铺天盖地的关键字与java有关。

后浪的诞生–golang

不管如何,有一款打破BSL的,把链变成环的那就是golang。
听过新闻说,golang打算用go写编译器,即“排除掉C的代码”也称为自举。而且有很大的进展。
这让C很不舒服,的确有些“欺师灭祖”之嫌。这也是我的原始想法。
golang在见过林林总总的或高级/低级,或强类型/弱类型,或表示层/后台层,或编译的/解释的的语言后出生了,老爹是google,吸引众家之长为了是取代C++。辅佐大臣是docker,以太坊。
任何的新生语言如果没有以下的特征,就没有生命力,甚至相当于直接流产:(不讨论小语种,G=golang)

  • 开源
  • 拥有GC(C的法律允许它的臣民直接操作内存,执行效率极高,但是又对内存分配回收不管不顾,全部扔给子民们去处理。人生苦短,别浪费岁月在回收内存垃圾上了)
  • unicode编码支持(G默认是UTF-8)
  • 一招鲜(如果非要让G突出一点,那么绝对是为“并发”而生)
  • 拥抱互联网以及融入现有的生态(如果互联网的安全是“地气儿”那么G可以接上,君不见,玩云的公司也都玩G)

以上几点G做的相当好,再一起简单吐槽一圈“前浪”吧:
吸收着python语法特性的营养和解释性运行的特技。python说自己性能高,G就笑了!
见过java的繁重JVM和编译器,G就有了GC和不依赖三方的开源编译器,别忘记java的编译器还在oracle的手里。
C++哈,你终于来了,python可以笑你没有语法糖,java可以笑你没有手机和移动互联网,而G不说别的,你听过协程吗?
这时台下面举手的还有一大波儿想举手发言,什么js,php……,enough!今天的发布会就到这里。

→与C互访

简单就是美

为此G不屑于C++的花式包装。让全世界的G代码,看起来都是自己写的。
就目前来讲,调用C的最简单方案绝对是G。这便是C的基因。

原理:https://www.sohu.com/a/306764682_100111840
编译的时候会在PATH中寻找gcc,这也说明G事实上可以嵌入汇编语言

G调用C实战:

→敌我不分还是反朴归真

好吧,骂声之后,冷静下来。另一个维度升起。
近十多年,从未看过在一种“徒弟”语言中那么的尊重C这位“老师”。
所以,PHP,python,java等跳出来攻击G时,是一种狭隘的自我保护。
G才是那个能让师傅荣光焕发的,误解它的原因,可能是他太过出色,光环已然超载了老师。
他更适应这个时代,是未来一段时间内开发语言的“新宠”。

区块链阅读笔记

不谈比特币,只谈区块链,要谈也就谈一点儿。

区块链—一个数据库,分布式,账本式。
如果高度概括来说,没错就是个数据库而已。但是包装上了系列的定语,形容词,让它炫丽动人。

  • 分布式,你听不懂,换成去中心化。
  • 第三方交易信任担保,你听不懂,换成去中介化。

必须清楚地看到,比特币只是区块链应用的一个成果,“比特币不等
于区块链”。区块链是多种技术的集成,比特币只是区块链多种技术整合
的一种形式,还可以有不同技术的多种组合形式。因此,区块链的发展
必须跳出“比特币区块链”的思维和定式,不必过于追求理想化,转而
脚踏实地、实事求是,注重运用相关技术解决现实世界的实际问题,并
在实践中不断改进和完善,充分发挥区块链的积极作用。

事实上,比特币是想建立一个“乌托邦”显然,,但东方智慧不会参与天下之先。但会寻找道与术的平衡。

有人说:区块链的底层是数学逻辑,中层是哲学思维,顶层是宗教信仰。
数学逻辑是指:基于成熟的后台技术基因(p2p点对点通信,非对称加密,分布式存储)。现在是3.0版本,拥有智能合约
哲学思维是指:共识方面基于拜占庭将军问题。以太坊的Gas的鼓励政策设计也体现着经济学理念。扯蛋一下,如果春秋七国有区块链,强秦绝无机会。区块链下的价值互联网,玩的全是匿名,而目前的互联网,实名制的伎俩下依然信任危机。特么有点儿“灯下黑”的感觉。
宗教信仰是指:思想正确,而且理论自洽。已经写入国家的计划。宗教字眼都有点小,而是时代所趋。

如果,在中层哲学都有了偏差时和线下交易混乱时,那么这个比特币就仅是个“网络游戏”。你玩的再好也是一个ID,你的账户装备再贵重也只是一串加密数字。

发展过程

v1.0

比特币(Bitcoin)
v2.0

以太坊(Ethereum)
v3.0

开源:
超级账本(Hyperledger fabric)
FISCO-BCOS

《中国区块链行业发展报告2018》

摘录:风投钟情的区块链 8 个领域:
挖矿、钱包、虚拟货币、基础设施、底层技术、交易所、相关服务和区块链应用
中国区块链产业链可谓基本成型。

中央网信办第三批区块链信息服务名称及备案号

区块链的优势

重新定义未来商业生态

如果共识是机器处理二进制一定比人类专业,那就相信机器,使用机器。
就像用筷子,球拍,水壶,电灯泡……
但不同的是这个工具是账本,记录一下与你交易的或者与你有关的别人的交易的哪些事儿。后台的保证是一系列的事务,加密和传输等,这也是区块链最大的贡献。
区块链并不是一个新技术也不是一个独立技术,尤其是在当下,结合相关的链条来看:

AI,云计算——-生产力
区块链——生产关系
机器(安全科技),IOT—-生产工具

有人提出BASIC的技术战略:五个首字母分别是区块链、人工智能、安全科技、物联网(IoT)、云计算
事实上在上面的“生产三者”中都体现了,而且,任何两个新技术的组合和碰撞出的火花都是一个新的细分的领域。

你不知道的区块链

  • 可以没有币
  • 可以自己发币
  • 可以私用,场景有联盟链,公用链系统有比特币和以太坊
  • 代码开源,智能合约是一段流程化的动态合同

防黑客的话,使用联盟链或私有链,同时,一笔生意有时效性,那么让链也有保质期监控,变成离线存储。
对于效率性能问题,那么联盟节点的数量设置限制。交易的数量级下降,效率就一定提升。
技术是有边界的,也没有绝对安全的算法。关键看如何使用,最大限度的规避风险。

应用场景

商业新势力

  • 公益监管,阿里第一个上线的项目
  • 精准扶贫,农业溯源
  • 货品,食品,药品溯源,京东也在搞事情
  • 宠物品种或基因溯源
  • 私人资产管理,艺术品买卖,教育治理
  • 垃圾溯源,实名领取免费发放的垃圾袋(具有唯一性码的环保材料)
  • 去除房屋中介的DAPP
  • 协同办工,共写一本书,一个项目等
  • 物流追踪
  • 清分结算
  • 全国性的或者说多区域,流动席位类票务解决方案(铁路席位管理改造)

蚂蚁链的数字物流解决方案

区块链资源整理

解读以太坊黄皮书系列

一共有七章,目前只找到了六章翻译好的。

第一,二,三章

第四章

第五章

第六章

核心交易流程

  1. 一切源于用户A在DAPP工具上生成一个随机数,反正,我们称它为私钥k。通过把它输入ECDSA运算,得出公钥的全文,一般会比私钥长。再通过hash算法(SHA-3)来得出公钥hash,它的后20位则是用户A的账户地址。
  2. 用户A要交易给用户B一个ETH时,填充一个交易结构体tx.目前还是在用户A的DAPP工具中,对tx进行RIP编码,再hash算法(SHA-3)生成摘要,最后签名,签名结果是65位字节长的值(r,s,v)前两者32字节长。签名实质上是使用私钥k对交易摘要进行加密的过程。
  3. 验证节点出场即机器。它拿到原始交易tx和签名结果。
    1. 首先恢复出用户A的公钥q(是通过交易hash和签名计算出来的)
    2. 签名验证即是用公钥q来解密交易,得出账户名(用户A)
    3. 得出的,计算的,或者说恢复的公钥得出的这个账户名,要和原始交易中from的值做为对比。一致说明内容未被篡改。
  4. 交易一旦合法,就要被矿工进行流水线加工,进入区块。这里是有区别对待的,交易中流通的价值高,蕴的鼓励值越高,矿工也不是傻子,所以,高额交易会更快进入到区块。
  5. 当一个区块生成,即要更新世界观。树就是以太坊这个状态机的后台世界了:默克尔树(一个全局的静态树,叶子节点是指向具体数据区块),MPT状态树,其中M是指默克尔树,显示它是个进化的树结构。

给开发者的启示

方兴未艾的市场

回头看马云建立的支付宝,竟然是最没有互联网精神的阶段性物件。但是它引导和启发了市场。
所谓,分久必合,合久必分。去中心化的结果,会再次制造出中心化。
没有一个互联网公司想放弃区块链这个阵地,所以,纷纷出台自己的方案,但纵观各方案,平心而论,现在蚂蚁链,更能吸引到区块链+的客户。原因很多,它更产品化或者说产品线设计合理,概念更明晰,客户引导方面做的更好。相比其它大厂,还属于在炫技和宣传的层面。本来要去中心化,可是对大部分客户都想“开箱即用”的需求下,那么只能依赖基础设施,而蚂蚁链又准备引导市场了,虽是大鳄,但创业公司并非没有机会。因为,技术的透明的,实践是自己的,激励机制是共同的。
即使中心化再次来袭,我们也可以理性分析,首先,市场变化了,中心化的气焰一定是被打压的,暴利的中心不会存在了,其次,区块链的进化,更多出现的是基础设施的中心化,而不再是交易业务中耦合的中心角色。同时,随着业务扩展和交易数量上升时,边界成本不再线性同比上升。

个人感想

作为一个程序员,以前感觉写业务代码的人是低级的,今天做这个,明天写那个,行业积累看似很有价值,一旦换行就隔了山。直到,区块链的出现,让我眼前一亮,事实上,商业的生产关系是海量的需求,让写业务代码的人至少变成一个可以拿链走南闯北的人,努力创作不再是给别人做嫁衣,甚至是参加到价值互联网的基建圈,写入历史。
开发者就是数字世界的建筑师,全栈工程师越来越受重视,拥有更多的话语权。从对生产工具的精通转型到生产关系的设计和营造,这本身就是一种生产力。三个生产概念互相配合,界线划分得当,找准平衡点就会游刃有余。再扯远一点儿,创业公司的目标应该放在器上而不是方案上,因为要知道,整合资源绝对是自己的弱项。

云上git服务器

使用gitosis用户管理

→安装

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

→环境搭建

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

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

客户端应用

→生成应用者的公钥

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

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

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

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

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

cd BL_main

git init

vim readme.md

git add .

git commit -m "first import"

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

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

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

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

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

附录

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

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

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

为什么需要清单革命

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

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

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

进阶到“清单”的应用层

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

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

清单背后的意义

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

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

他们的武侠之倚天屠龙记

金庸—人生如戏

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

李连杰—戏如人生

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