NFS服务防火墙放行端口
大年初一,感恩我生命中的每一个人!

1、感谢父亲母亲
陈春花:如何让自己不被替代?
导读:未来充满诸多不确定和挑战,这导致“职场焦虑”频频出现。如何让自己在工作中更有价值,是我们每个人都要思考的问题。
人工智能不断地演进和优化,机器人“军团”来势汹汹,我们不禁担心,自己会被机器智能取代吗?
职场中的女性工作者需要兼顾家庭与工作、身体承受力与工作强度、个人兴趣与责任,还有公众评价与社会习俗等等。作为女性,应该如何培养自我的领导力,获得更好的发展?
对于以上大家提出的这两个问题,我尝试做出解答。
01
只要愿意行动,机器永远无法取代你
在数字技术驱动的智能时代,有一种观点认为,机器人会抢走很多人的饭碗,但我反而不太担心。
我并不担心机器人能像人一样思考,我担心的是人像机器人那样去思考。
我在教组织行为学时,跟学生们讨论过一个话题:如果未来有一天,在工作场景中,大部分的工作都是由机器人来做,这时对组织管理来说,我们一定要做的一件事就是怎么让人有价值。
这既是组织讨论的话题,也是个体讨论的话题。
回到我前面谈到的,为什么我不担心?我希望大家能够理解到,有两件事情是机器替代不了你的:
第一,你的个性。“个性”是动词,是一个变量。你如果不断地去变化,不断地去调整,没有人可以替代和模仿的,因为这是一种特殊的属性。
第二,你的能力。关于能力,我原来在企业任职时带领员工去变革,就跟同事们谈了我对能力的认知。我认为能力的含义有三层:
1. 能力是一种可能性。它其实没有边界,比如你的能力到底到什么程度,我不能给你下定义,我希望你自己也不要下定义。你的能力一定是没有边界的,你只要不断尝试,能力就会不断地被呈现出来。
2. 能力是知行合一。能力是通过“做”来体现的,如果不做,没人知道你有什么能力,连你自己也不知道。你只要去做,肯定就会有能力。
3. 能力是韧性和速度。什么叫韧性和速度?就是你要不断地推动自己向前走。你停留下来了,能力也就停留下来了;你不坚持,能力也会失去。
人有一个最独特的能力就是与时俱进。如果说这个时代,机器人在各个行业呈现的特别多,我相信人就有能力找到一种跟机器人互动或者共同工作的方式;如果说机器人能胜任很多工作,我相信人就一定能找到他自己生存的空间和解决这些问题的方法。
02
岗位只有职责,没有性别
有很多人关注女性在工作上的竞争力,认为女性会比较弱势。
从管理的角度看,我们到了一定的岗位之上,其实只有责任没有性别。这个岗位不会讨论你的性别是什么,只讨论你可不可以把这个责任担当下来。
对于职场中的女性领导者,我试着给大家一些建议。
《哈佛商业评论》的一项调查研究表明,在大多数的工作场所中,女性更愿意帮助别人解决他们遇到的困惑。相反,男性为了不耽误自己个人绩效的完成,不愿意花费多余的时间帮别人解决问题。我们可以从多个角度去理解这项调查的结果,其中一个视角是,男性更愿意个人成功,而女性更愿意合作。
但是,我想大家从另外一个视角去理解,那就是,女性也许无意中忽略了成就自我领导力的培养。
我从事教育30多年,跟踪了一些学生持续10多年的职业发展,也有一些我自己的观察结论。在我看来,女性在职业发展中,特别需要注重自我领导力的培养和提升,让自己成为一位卓越的领导者。
如何才能做到这一点?我建议大家在以下几个方面做出努力。
1. 要有良好的定力
通常情况下,职场中女性的角色比较模糊,一方面,人们希望她们承担职责,具有职业性;另一方面,人们又希望她们显示出女性的特征,凡事谦让,配合和甘于服从。
在职业发展上的角色认知模糊,也是女性从业者自己的困顿,于是,辅助者、服务者、执行者的角色常常落在女性身上。甚至女性从业者自己也从清晰的目标中,变得越来越不自信,直至退让以至于停滞不前。
其实,对于组织而言,角色是与责任相对应的,与性别没有关联。当女性进入领导角色的时候,请一定要理解这一点,组织选择你,并不是因为你是女性,而是因为你可以胜任责任。所以你要有定力去承担责任,而不是纠结于自己是否是女性。
女性要成为领导者,必须融入领导的责任。你所要关注的就是围绕责任去成就自己的角色。这是一个不断进化的过程,需要依靠你的定力和坚定的行动,以及明确的责任来表现你的领导力。
2. 懂得确信的力量
女性在一些情形下,比较会出现犹豫、质疑或者难以下判断的情形。其实,如果你可以懂得确信的力量,这些情形就会减少很多。
确信是指在不确定中寻求确定性,是指可以有解决问题的路径与方法,有可依靠的人,有目标和价值观牵引。正因为此,确信可以帮助领导者去面对质疑与犹豫,可以帮助领导者获得支持与肯定。
如果不能拥有一种确信的力量,确信你有能力去接受正确的东西,你就很难成为一个好的领导者。
3. 训练思辨的能力
思辨力之所以重要,是因为它可以帮助人获得独立判断却又可以保持有效的对话。有效的未来领导者需要能够在复杂性与冲突挑战中独立做出判断,不会人云亦云,也不会固守偏执,同时能够寻找到合理性。
具备思辨力的人,在探讨一个观点时,会很自然地去怀疑、审视,然后用证据来证明观点的逻辑性或者事实性,或者寻找数据来证明观点的合理性。他们不会盲从地相信一个观点,哪怕这个观点是一个权威专家提出来的。他们会遵循客观规律并寻求事物的本质,从而在纷繁变化中不至于迷失。
思辨力首先是抽象思维的能力,也就是概念化的能力。从管理的本身看,没有概念能力是无法真正成为领导者并引领变化的。因为管理者真正重要的就是找出真正的问题,并做出认知判断。论证真正的问题,说服大家接受并能给出解决方案,而不是习惯性去分辨对错、作出评价。
同时,领导者需要有能力处理复杂性的问题,把复杂问题简单化,从而引领组织成员去达成目标,而这种能力就是思辨力训练而成概念化能力。
使用ThreeJs搭建BIM模型浏览器-第十步 加载优化
最近在尝试了新的传输方式。不过对QModel而言,影响不是很大,因为QModel这个产品只有首次加载是需要从服务器下载模型数据的。
首先,把原本的模型文件拆分成多份了。原本只有一个zip数据压缩包,现在改为在服务端拆解为N份,根据构件数量每500个压缩为一个包,同时把数据转换为utf8array.然后生成一个索引文件A。
前端首先请求索引文件A。得到数据包的数量,然后进入本文重点。
主线程根据解析索引文件,知道了一共有N个数据包,然后开始启用worker下载。如下
主线程代码:
然后创建一个worker.js,多线程进行传输并解压。
实际效果如下图
总结:
1、由于个人服务器原因,带宽就那么大,一个线程跑满和10个线程同时下载,完全没有效率的差异。所以下载起来是一样的。需要硬件支持才体现出传输的优化。
2、数据解析放到线程里面,确实会提升一些效率。
3、下一步优化,可以考虑在worker里面直接把数据转换成Utf8Array或者ArrayBuffer,PostMessage是可以移交这一类对象的控制权的。
原文https://blog.csdn.net/ztz87
使用ThreeJs搭建BIM模型浏览器,第九步-性能优化(2)
感谢网友给的建议。
我之前一直是使用threejs的102dev版本,以为geometry共享了就行了,但是这并不是threejs里面所说的Instance。在新的threejs版本中,新增加了几个很有意思的Instance类,这里重点挑InstancedMesh来说。InstancedMesh与使用一个geometry共享创建出Mesh是不一样的,InstancedMesh最终达到的效果是一次Drawcall,而共享geometry创建出来的Mesh并无此效果,效率跟不共享创建Mesh渲染性能上没有太大区别,只是可能会省点内存。
InstancedMesh是R110之后出现
官网简介:
A special version of Mesh with instanced rendering support. Use InstancedMesh if you have to render a large number of objects with the same geometry and material but with different world transformations. The usage of InstancedMesh will help you to reduce the number of draw calls and thus improve the overall rendering performance in your application.
大量相同的几何,会减少绘图调用的次数,大量提高页面性能;
参考文档:
http://www.qmodel.cn/threejs/three/docs/index.html#api/en/objects/InstancedMesh
查看示例:
http://www.qmodel.cn/threejs/three/examples/?q=instanc#webgl_instancing_raycast
用法:
点击获取InstancedId,官方示例
实际测试性能效率,当使用InstancedMesh时,如上述代码。如果使用的是Mesh,我的渣渣电脑已经渲染不出来了。
如何解决使用InstancedMesh后,构件选择的问题?通过射线相交,可以取到Instance实例的索引ID,可使用ID来找到对应的构件。大家多看官方示例代码就可以了。
补充一点思路,如果网友有更好的方案也欢迎留言。
隐藏构件,把矩阵设置为0矩阵隐藏某个instanceId,0矩阵为[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,]
选择构件:可以考虑把InstancedMesh的geometry和被Pick到的Matrix构造一个新的InstancedMesh放在对应的位置,材质替换为高亮选中的材质,且把原来的Matrix设置为0矩阵,则实现隐藏。实际上目前120版本,Mesh和InstancedMesh还是有不少BUG的,建议全部使用InstancedMesh。
透明度和颜色设置:与选择构件同理,不过考虑到还原操作,对数据的管理会更复杂一些。这里会特征一些内存,效率上也有所降低,最终效果如何,全看编码人员的控制力了。
Merge之后也可以实现Drawcall的减少,且可以实现不同材质的合并。我就尝试过把一整个建筑模型合并成一个geometry,没错,性能提升巨大,且内存锐减一半!merge可以实现不同材质的几何直接合并,但是因为group的处理,还是会拆分为多次drawcall,没有太多作用。关于merge的总结可以看一下后面的介绍。
对比geometry.merge和Instance实例化、普通Mesh。以一个5万构件的全专业(建筑、结构、给排水、暖通、电气)的住宅塔楼为例(复用率还比较高的)。
Instance实例化几何体 | Merge合并几何体 | 普通Mesh | |
---|---|---|---|
Material | 相同 | 相同 | 可不同 |
Geometry | 相同 | 可不同 | 可不同 |
单个控制 | 使用索引可实现 | 难以实现 | 容易实际 |
生成时间 | 快速 | Merge需要计算消耗 | 一般。量大 |
渲染性能 | 较优 | 更优,极致减少drawcall | 差 |
内存占用 | 极少 | 较少 | 较多 |
Drawcall次数 | 约1万次 | 1次 | 5万次 |
2020-9-11
关于merge又有了新的发现。
我们来试一下常规情况,直接使用mesh加入12万个构件。渲染有多么困难,降到fps=6
无视材质的merge,看一下对比,geometry合并到8个里面,有所提升,fps=18,drawcall一次没少。
1、为什么drawcall一次没少呢?因为group没有把同材质的合并起来。由些判断drawcall跟group有关。
2、但是为什么性能会有提升?因为视锥剔除不需要计算了啊!
再进一步,把材质全都合并起来,一个geometry就一个material,会达到什么效果呢?看下图。怎么样?fps109,是不是起飞了?当然,它的不易之处在于,首先要按材质先分组,不同material的也就别合并了,技术上可行,但是合并没好处。
使用ThreeJs搭建BIM模型浏览器,第九步-内存优化(1)
添加到场景的mesh,是通过geometry+materail生成的。如果场景内大量重复的构件,或者大量的构件的材质都是相同的,threejs提供这种方案节省内存:共享geometry 和materail。举例说明:
创建300个一样的圆,一般情况可能会写成下面这样
优化的方法是这样写:
注意了,大佬的博客都点到为止,不会告诉你这样的弊端,你一试就知道在BIM浏览器这样做会存在的问题!
因为所有的构件都共享了materail,你怎么实现点击选中,点击选中之后给构件赋予颜色,结果所有同类构件都被渲染成相同的颜色!因为materail是共享的,对materail改个颜色会感觉被选中了一大片。
解决思路很简单,简单到我都没代码可分享:针对选中的构件(或者要赋予颜色的构件),临时替换一个materail即可(曲线救国)!
以前每个构件的纹理材质单独创建时,可以直接赋予颜色,如下图:
现在赋予颜色可以新建一个material给它。当然material新建之后也要管理好,以免内存膨胀;旧的材质纹理要缓存起来,用于恢复默认。相当于给构件弄了个新的包装盒,旧的也别丢掉,还要用的。
Revit自带的这个模型叫做Arch Link Model.rvt,它的材质有点多,有42种,即使这样也明显节省了20%的内存。如果是机电专业,管道设备几乎不在意材质,都是通用的材质纹理,一共就不需要创建几个material,估计会有惊喜。
这是第一步内存优化,针对材质纹理的。后面还会针对Revit导出的几何体进行分析,计算相同形状的构件,以实现文件的压缩和前端的提效。
使用ThreeJs搭建BIM模型浏览器,第八步-边缘线
这个辅助线条,一般称为辅助线,类似草图里的草稿线条。下面分别是有线条和没有线条的对比。
在Threejs对面的边缘添加线条,其实很简单。可以从官方示例中找到。
https://threejs.org/docs/index.html#api/en/geometries/EdgesGeometry
注意:如果以三角面的方式去添加边缘线,往往会出现很多问题,需要依赖正确的法向量,只针对夹角大于等于90度的面添加边缘线效果会好一些,否则线条过多,对性能负担重,效果也很乱。
使用ThreeJs搭建BIM模型浏览器,第七步-测量
前面说到构件选择,实现了点击时与界面记录的焦点。《使用ThreeJs搭建BIM模型浏览器,第二步-构件选择》
主要的实现思路是:通过一个全局标记,记录前一次点击(作为起点)和后一次点击(作为终点),求两点之前的距离。
然后在终点附近插件一个标签。插件标签的方法前面也提到了。如意门:《使用ThreeJs搭建BIM模型浏览器 第三步 浮标》
1,点击,当然要加起点终点的全局变量记录一下。
2,在点击始末位置画个小球:
3,在两点之间画条线:
4,画个标签,看之前的文章,此处略。
5,看结果
6,优化的目标,可以在MouseOver的时候尝试把点自动的定位到面的边缘,会好用很多!
使用ThreeJs搭建BIM模型浏览器 第六步 纹理贴图(材质)
上效果图
解决思路:
Threejs上没啥好说的。看郭老师的博客:http://www.yanhuangxueyuan.com/Three.js_course/texture.html
Revit上如何导出呢,不好意思,这次真不能贴核心代码了。。
使用ThreeJs搭建BIM模型浏览器 第五步 漫游
基础的键盘操作漫游其实很好解决。Threejs有一个FlyControl这个控制器,就是完成键盘操作的。
废话不说,上图
关键代码