Exception和Error 超形象!

假如你开车上山,车坏了,你拿出工具箱修一修,修好继续上路(Exception被捕获,从异常中恢复,继续程序的运行),车坏了,你不知道怎么修,打电话告诉修车行,告诉你是什么问题,要车行过来修。(在当前的逻辑背景下,你不知道是怎么样的处理逻辑,把异常抛出去到更高的业务层来处理)。
你打电话的时候,要尽量具体,不能只说我车动不了了。那修车行很难定位你的问题。(要捕获特定的异常,不能捕获类似Exception的通用异常)。
还有一种情况是,你开车上山,山塌了,这你还能修吗?(Error:导致你的运行环境进入不正常的状态,很难恢复)

摘自极客时间评论

工程职业伦理作业

案例为个人作业内容,firesheep案例 (内容见图片)
思考题:用多种伦理方法给出判断。你认为哪一种或几种伦理学方法更适合当前的中国国情,为什么?

答:
西季威克认为,伦理学是关于“应当”的研究,因而首先必须研究人们据以推断他们应当做什么的合理程序。这些合理程序即“伦理学方法”。
(1) 伦理学方法有功利主义、义务论、契约论、美德伦理、实用主义、伦理利己主义。
(2) 不同的伦理学方法会有不同的判断:
① 功利主义伦理 从一个严格不偏不倚的观点来促进整个世界中的善,并寻求实现最大化利益和效用的行为,该伦理学方法会认为埃里克·巴特勒的做法有得有失。“得”在于吸引了大量媒体和普罗大众的关注,倒逼玩忽职守的网站站点主动做出改变,采用安全的HTTPS协议传输,保障大众的网络安全,从长远看减少网络劫持的发生。“失”在于他为心怀不轨的人提供了便利的工具,甚至在短期内让网络劫持事件频繁发生,对社会公众造成较大损失。但这些情况,会在各网站站点普遍采用HTTPS安全协议后会得到缓解和根治。所以,功利主义的伦理学方法论会赞同埃里克·巴特勒的观点。
② 义务论 以遵循“最高道德原则”的方式确立人的责任和义务,强调正确的行为就是要严格遵守和履行我们所具有的义务,该伦理学方法会认为埃里克·巴特勒的做法是不符合规范、不正当的,义务论认为一个选择或行动是否正确取决于它是否符合某个指定的规范,正当优先于善。工程师的首要责任原则带有了绝对命令的性质,埃里克·巴特勒为网络劫持的传播提供了开源软件工具,这是在助纣为虐,一个履行法定义务的公民、遵守职业伦理章程的工程师所不应该做的。
③ 契约论 通过一个规则性的框架体系,把个人行为的动机伦理地看作是一种社会协议。该伦理学方法会认为埃里克·巴特勒的做法是可取的。契约论寻求自利与利他统一的途径,注重客观社会伦理、组织伦理关系以及工程职业实践、社会交往过程中的客观制度性建设。埃里克·巴特勒有自由制作软件并向大众推广的利己的权利,同时他作为信息科技工程师组织的一员,也深知网络安全组织控诉网络劫持隐患多年,但电子商务网站仍然不予理睬的现状,我不入地狱谁入地狱,用曝光下的潜在风险唤醒媒体和大众,逼迫网站站点做出改变。
④ 美德伦理 认为工程的内在善,必须关注公众的利益,工程的个人善必须关涉工程师在工作中的意义,它与创造有用的安全的公基产品和服务的个人承诺相联系。该伦理学方法会认为埃里克·巴特勒的做法是可取的。埃里克·巴特勒制作网络劫持软件并开源,是出于改变现状的内在善的推动,并未受到知名度、威望等行为可能带来的外在善,干扰他们的公共义务。
⑤ 实用主义 会认为埃里克·巴特勒的做法是可取的。由于对道德复杂性合理的妥协和各式各样的两难困境的敏感性有着最好的理解,坚持在原则的应用方面更加灵活和宽容。埃里克·巴特勒的做法会影响社会犯罪率上升、大众对他褒贬不一的评价等困境,但这种方法后来也被Facebook等公司的行为验证了是有用的!比起网络安全组织长达多年的控诉实用多了。
⑥ 伦理利己主义 试图将道德价值降低为利己的观点被称为伦理利己主义。该伦理学方法会认为埃里克·巴特勒的做法是不可取的。巴特勒做劫持工具软件,受到舆论的关注和他人的抨击,不仅没有把自身的利益最大化最为第一目标,还使自己陷入困境。
(3)我认为,实用主义和契约论更适合当前的中国国情。实用主义“黑猫白猫,抓到老鼠就是好猫”;同时,工程师在自利性的基础上要利他,要注重客观社会伦理、组织伦理关系以及工程职业实践社会交往过程中的客观制度性建设,善恶并非非此即彼,契约论表达了对职业活动中道德选择的现实多样性的认识与尊重。
功利主义、义务论、美德伦理 既对现代工程活动复杂性下的伦理困境力不从心,又常常忽视工程活动中和谐共生的伦理期望。表现在:
i) 功利主义和义务论都相信存在着某些普遍的规则它们为行动的道德正确性提供了标准,行为是立足于普遍的考虑,道德就是建立在普遍的和不偏不倚的合理性的法则之中,所以规范的有效性完全不依赖于工程师偶然具有的欲望和倾向,这太过于理想化,没有很好的实践指导价值。
ii) 道德并不只是用来界定人际生活得以可的最小条件,更重要的是道德也是人性自我完善的一种最重要的方式,而人性的完善是相互促进的。
伦理利己主义 中自我的利益是有争议的,远比利己主义所暗示的要复杂的多。
但是我们也要意识到实用主义、契约论也存在着自身的局限,仍然需要根据国情,具体问题具体分析。

libvirt-go 探索(入门)

基于https://github.com/libvirt/libvirt-go README

确保已安装libvirt-dev版本支持1.2.0版本之后的libvirt默认情况下,绑定将支持libvirt.so,libvirt-qemu.so和libvirt-lxc.so中的API。可以使用构建标记'without_qemu'或'without_lxc'分别从构建中删除后两个库。Go API被认为是生产就绪的,旨在保持未来版本的稳定性。

libvirt项目旨在将libvirt-go添加到主libvirt C库后立即添加对新API的支持。如果要提交对libvirt C库API的更改,请同时提交libvirt-go更改。

测试核心API单元测试都是使用内置的测试驱动程序(test:///default)编写的,因此它们与主机OS环境没有交互。

使用自动化测试验证libvirt C库API /常量的覆盖范围。这些可以通过传递'api'构建标记来运行。例如,go test -tags api

对于测试驱动程序缺乏功能的区域,可以使用QEMU或LXC驱动程序来执行代码。这些测试必须是'integration_test.go'文件的一部分,但只有在传递'integration'构建标记时才会运行。例如,go test -tags integration

为了运行单元测试,应将libvirtd配置为允许您的用户帐户以无密码进行读写访问。这可以使用polkit配置文件轻松完成

# cat > /etc/polkit-1/localauthority/50-local.d/50-libvirt.pkla  <<EOF
[Passwordless libvirt access]
Identity=unix-group:jahentao
Action=org.libvirt.unix.manage
ResultAny=yes
ResultInactive=yes
ResultActive=yes
EOF

将'jahentao'替换为您的UNIX用户名。

Polkit是用于实现权限管理的, 通过给非特权进程授权,允许具有特权的进程(或者库文件lib)> 给非特权进程提供服务。

其中一个集成测试还要求libvirtd正在侦听localhost上的TCP连接,使用sasl auth。

这可以通过编辑/etc/libvirt/libvirtd.conf进行设置来设置

  listen_tls=0
  listen_tcp=1
  auth_tcp=“sasl” # 注意加 “”双引号,在 virsh --connect qemu:///system 测试
  listen_addr="127.0.0.1" # 写0.0.0.0也没事

然后修改 vim /etc/default/libvirtd(在vagrant虚拟机中是 /etc/sysconfig/libvirtd) 添加--listen标志

start_libvirtd="yes"
libvirtd_opts=" --listen"

PS:修改密码机制和存储位置/etc/sasl2/libvirt.conf

vim /etc/sasl2/libvirt.conf
// 内容
sasldb_path: /etc/libvirt/passwd.db

其实 sasldb_path 不改也行,默认在 /etc/sasldb2

重启libvirtd服务

service libvirtd restart

然后创建一个sasl用户

# saslpasswd2 -a libvirt user 

并输入"pass"作为密码

查看用户名(注意前面是否修改密码存储路径)

# sudo sasldblistusers2 -f /etc/libvirt/passwd.db 

PS:修改Vagrant的boxes存储位置

Vagrant的boxes默认是放在~/.vagrant.d/boxes下面的

修改box存放路径:
1. copy ~/.vagrant.d/下面的目录到新目录

cp ~/.vagrant.d/   /path/to/vagrant_home/ 

2. 设置环境变量

vim ~/.bashrc
// 加上如下
export VAGRANT_HOME='/path/to/vagrant_home'

就这样,重新登录shell后,boxes的存放目录就在 /path/to/vagrant_home/boxes 下面了

PS:vagrant使用代理

For Mac/Linux (in Bash)

export http_proxy="http://user:password@host:port"
export https_proxy="http://user:password@host:port"
vagrant plugin install vagrant-proxyconf

then

export VAGRANT_HTTP_PROXY=${http_proxy}
export VAGRANT_NO_PROXY="127.0.0.1"
vagrant up

For Windows use set instead of export.

set http_proxy=http://user:password@host:port
set https_proxy=%http_proxy%
vagrant plugin install vagrant-proxyconf

then

set VAGRANT_HTTP_PROXY="%http_proxy%"
set VAGRANT_NO_PROXY="127.0.0.1"
vagrant up

PS:安装插件可能遇到问题,可能需要临时禁用Ipv6
https://github.com/hashicorp/vagrant/issues/8893
或者是代理配置的问题比如socks5协议

运行集成测试需要Vagrantfile,需要使用virtualbox。

cd ./vagrant
vagrant up #配置虚拟机
vagrant ssh #登录虚拟机

在里面,做上面集成测试需要的修改。

其中一个集成测试还要求libvirtd正在侦听localhost上的TCP连接,使用sasl auth,这可以通过编辑/etc/libvirt/libvirtd.conf进行设置来设置

listen_tls=0
listen_tcp=1
auth_tcp=“sasl” # 注意加 “”双引号,在 virsh --connect qemu:///system 测试
listen_addr="127.0.0.1"

然后修改 ,在vagrant虚拟机中是 /etc/sysconfig/libvirtd 添加--listen标志

LIBVIRTD_ARGS="--listen" 

然后

sudo su -
go test -tags integration libvirt

在vagrant box中可能遇到问题,就是没有就行上述集成测试的修改。

Connection refused

何时写博客

写博客的时候,是我觉得掌握自己人生的时候。一点一点缕清楚,独立思考,遵循自己的节奏,向前向上的时候。

懒惰的时候,我会忘记写博客;学无所成,思考没有通透,没有新创意,即使复制粘贴来有用的东西,我最多只会存为草稿,待下次梳理,懒于排版;被工作压迫,喘不过气,没有时间,没有自己思考世界的角度,我也不会写博客。

博客首先来自表现欲,来自记录,来自即使谈不上通透,但自成闭环的思考,来自创意,来自感悟,来自生活,来自追求 ,来自独立个性的自我 。

编译器->框架->架构关系的一点思考

  • 机器码为了运行,编译器提供语法,语法是表达语意的元素。语言的表达变化,一本工具书一本字典可以穷尽吧。
  • 框架是在编译器层面上的又一层封装,虽然它提供的不是语法,但它提供的是比语法高一层的组织,框架组织的目的是为了简化开发、封装变化,顺带解决某点或几点非功能性需求。如果你被框架吸引,那你也应该去编译器看看。 框架就像小说故事的套路,自古深情留不住,总是套路得人心。
  • 在框架之上的高一层的组织是架构,架构的层面是业务,也是团队协作。业务虽变化多端,但也自成规律。
  • 架构之上,为智能。知识表达穷极变化。一些知识形式也许只能被计算机所理解。
  • 智能之上,为芸芸众生。

移动平台为什么不支持Flash?

  1. 内置Flash支持意味着有可能引入相关的安全漏洞,而Flash实现由Adobe掌控,一旦出现问题,难以直接把握。
  2. 基于Flash平台的应用非常丰富,很有可能分流移动平台的应用商店。
  3. Flash播放器过于耗电,缩短电池寿命。移动时代需要低功耗的设备,触摸界面和开放网络标准,而这些方面都是Flash的短板。
  4. 曾经的矢量模式使得文件体积极小,在网络带宽稀缺的时代,才成就了Flash的霸主地位。由于HTML5发展迅速,得到了各大浏览器厂商的支持,Adobe后来也放弃Flash了。

修真境界_百度百科

  1. 修行起步阶段,可以看出修真者的种种迹象,铸造身体基础,体内丹田位置有发光的莲子形物体发育,符咒上可以表现出异相(如飞行、起火、爆炸)。祈福禳灾,驱病救人。筑基就是大道之基,对你未来的成就有着巨大的影响。筑基有好有差,区别只是对于大道的理解。关于对天地万物的理解程度不同造就了不同的筑基。并且,根据各人领悟到的规则不同,筑的基也不尽相同。例如,假如你对时空的理解远超常人,那么你的筑基属性就是“时空”!此阶段的修者根据筑基的属性不同会具有多样的功能区别,例如“时空”之基的“捕捉时间”“空间穿梭”(当然,要做到以肉身穿梭很难,这里指的是筑基期的意识)
  2. 能看到凡人所看不见的,堪破红尘,超凡入圣。开光即开悟,乃悟性开窍之意。达到此境界者会对世间万物有不同的理解。有这么一句话:看山不是山,看水不是水。天才与凡人的分水岭,开光也叫开悟,至于对悟性的提升具体有多少往往不一而足。但是凡是成功开光的修士就获得了生命的自由权(从天道之下解脱出来,证得“超脱”),古人常说“五十而知天命”“天衍五十,唯遁去的一”说的就是修士一般在五十岁左右就能切断操纵自己的线,来到非线性的世界。至于对“五十”这个大圆满数的理解,也许就是“知天命”,也就是开光成功的信号。
  3. 筑基的身体跟修为开始结合在一起,是个能力提升的阶段。莲子生长发育并开花,莲花清晰的生长于丹田。诸般感觉的融合,此境界的所需悟性与脑速要求比较高,因各人的领悟程度不同而融合不同感觉。此境界的关键在于“融合感觉。”各位道友可以去参考佛教的末那识,阿赖耶识及阿摩罗识。保证会有不一样的理解。“身与神融”“心与念融”“精与识融”融合的不仅仅是你我的“意识”,也包括了“感觉”“物质”“精神”。此境界的修士最突出的能力就是“融合万物”,通过后天的学习以及先天的本能理解这个世界,以及更改这个世界的微小或者伟大之物。顺道一提,“融合”也是一种大道规则,在三千大道中排行前列,仅次于“时间”以及“空间”。
  4. 修真的第一个危险阶段,心灵出现悸动。莲花开始结出独有的心脏,两颗心的跳跃和对真意的迷茫,是心动期的特点。对真意的迷茫,两颗心的跃动虽然很爽快,充满了诱惑,但是只要通过了此境界的诱惑,达到心如止水之境界就会发觉,与其思维迸发不如上善若水,修身养性,这也是此方天地的要求。来到这个境界,你将会拥有更加澎湃的情感,更加火热的心灵。“心欲动而神不止”“身欲行而识不分”“魂欲出而魄不蜕”每一个心动期的修士的人生就是一本演绎了人世间悲欢离合的书籍,这是人生的境界,这也是情感的宣泄,这就是心动!
  5. 心动后的平稳,步入真正修真的最后阶段,符咒等已经颇惧灵验,可以幻化形体,展现万千幻想,法术等威力大涨,永驻容颜。开始与武道界有本质上的区别。修性命,心如水。平稳的波动是跨入金丹期的前提。达到此境界的修士足以被称为大能金丹真人了,已经可以构建思维投影,虚假记忆于识海之中,对于天地万物的理解达到一个新的高度。顺便一提,此境界的修士的寿元将大幅增长。古人云“金丹大道”所指的就是一个圆满的道行。天有三十三重,丹有三色:金光耀世,紫光氤氲,无色万千。凡求丹者,无不心境圆满,金丹期的修者所拥有的不仅仅是一个圆满的心境,更是一颗“不畏世间浑浊”的灿灿金丹。
  6. 莲花心脏发育成一个本相婴儿,真正步入修真殿堂。可以使用飞剑飞行。法术道术进入一个崭新的阶段。符咒等已经具备某些实体的性质。丹田处有个处于更高维度的婴儿,法术威力大涨,已能沟通天地,推演万物之始转终,神游太虚,渺渺大罗,指日可待。此境界的心境将无比自信与强大,寿元翻倍,元神处于增长状态中,随时可以跨入下一个境界。真正可以被称为大能的境界,肉身与元婴可分可合,穿梭物质界与灵魂界,“我眼中的世界,可以二分”。道家的元婴之所以强大,其根源来自于修士自身的三魂七魄,所谓阳神就是可以出窍了的元婴,但是想在物质界显化出阳神所需要的魂力十分庞大,差不多相当于一个凡人一生的魂力,因此今世的元婴大能几乎不可见。但是,一旦婴成,就将拥有“神游太虚”“天眼通”“推演万物”的无上神通,其中“神游太虚”可以让你在不同次元遨游,“天眼通”可让你足不出户预知天下事,区分阴阳,“推演万物”知吉凶,每一个元婴期的大能几乎在最后都平静了下来,经历了人生的起起伏伏跌跌荡荡最后所余之物就是这颗平静的心。
  7. 类似元婴性质的神识可以飞出体外,进行诸如观察,操控物体,影响其他低修为的心智等活动,对物的控制能力进一步加强。阳神出窍,遨游世间,与佛教的第七感,第八感,末那识,阿赖耶识有重叠之处(空间感,元神的空间觉与时间觉),各位道友可以去查一下资料。顺便一提,此境界的修士可以感应到阳神的感觉。比如你看相远处的某一物体,想像着自己的手指掠过此物体的表面,就能感应到真实的触觉反馈回来。这就是阳神代替你做的。“肉身与阳神的分离不仅仅是代表着物质界与灵魂界的隔离,更是代表着你的魂魄已经有了一定火候,甚至能承受住物质界的混沌了”。在这个境界,你将学会体验元神的感觉,物质与精神的双重体验能让你的道行得到大幅增长。
  8. 可以操控分身了,可以同时做两件以上的事,可以同时对不同的地点施加影响。身化万千,操纵分身体,能做到普通人做不到的事,神识大幅增长,已经能支撑双人乃至多人的操纵行为。在这个境界你将学会“一心二用”这个技能。比如你在走路的时候感受到脚踏实地的感觉,同时你的阳神却漂浮在虚空中,感悟着这既矛盾而又完美的感觉。阳神本身就是漂浮在线性的时空矩阵之中,因此你可以感受到飞行的感受,同时也可以感受到脚踏大地的充实感。
  9. 外神与元婴结合在一起共同修为,分身基本趋近实体化,好像再造一个有血有肉的人。阳神,元婴,阴神与本尊肉身合而为一,体味这种圆满的感觉。此境界已经能支撑空间规则的瞬移了,也就是俗话说的“缩地成寸”。真正跨入“规则”的境界,元神与肉体的强大可以让你感悟更多的规则之力,比如“时间规则”“空间规则”“衍生规则”,这是一个探求世界本质的境界,同时也是利用规则的最基础的境界。
  10. 身体已经具备宇宙万象,是一个能量与精神的完美结合体。洞察虚空,看到超现实的景象。“虚无之力”体悟“空”的境界,其本意是“静”“无杂念无浑浊之意识”也就是菩提心,清净识,真正切断自我的思与念,不生不灭,恶念无法滋生,真正夺回“真我”的本质,明了“天道规则”的运转,达到顺应天地,天人合一的强大境界。
  11. 神体纯净,炉火纯青,巩固修为,累积力量,趋自圆满。超越真我,诞生超我,粉碎真空,“我识”的最强化,取代天道细线对“我”的操纵,意识的极尽升华,凡与仙的分界线。
  12. 登峰造极,逆天抗劫。渡劫成功,飞升仙界;渡劫失败,修成散仙。来到仙之境界的第一站,“大罗天,玉京山冠于八方,上有大罗天,其山自然生七宝之树,一株乃弥覆一天,八树弥覆八方,故称大罗天也。《元始经》大罗之境,无复眞宰,惟大梵之炁,包罗诸天。颂曰:三界之上,眇大罗,上无色根,云层蛾峨。”寻回“我”轮回之中的记忆,体悟过去,超越未来。为了追求那虚无缥缈的“混元大罗金仙(圣人)”之境,从初临仙境开始,一步步攀登仙道风景,可别醉倒在路途之中啊!“仙道之路漫漫,吾将上下而求索”。

来源: 修真境界_百度百科