世界的随机性与不确定性:智能与预测、局部与整体、概率与一切

这篇文章是bing上搜索“随机预测”找出来的,真的很好啊。

预测未来的最好方式就是,创造一个预测的未来。
像不像是机构做空做多实际上是在引导和创造未来呢?

如果说,人类作为一个部分,被包含在宇宙之中,是无法完全了解宇宙的。但,从人是由细胞构成,细胞内的基因蓝图拥有人的全部遗传信息来看,基因蓝图是可以克隆出一个完整的人的——但除了记忆和思维,因为这些是大脑通过环境信息学习和训练出来的。
上面这句话是部分错误的,现在我们知道,不止记忆和思维是通过与环境的交互形成的,几乎人体的各个部分都是在与环境的交互中形成的。

幂率分布、无标度网络

无标度网络在随机失效情形下,其全局特征无明显变化;而在刻意攻击情形下,全局性质变化十分明显。
通过控制变量法分别对两个假设进行检验,生长和优先连接对于无标度网络的产生来说缺一不可。C 图说明的是在优先连接的假设下,两个节点起始时连接度的差别会随着时间增大,即人们熟知的“富人更富”这一现象。

阅读理解: 现实生活中很多网络是无标度网络。可能也是比特币、自由市场等等这些创设理想为公平平等的网络无法实现其理想的原因。新加入网络的节点倾向于和联系最多的节点相联系,就会出现强者恒强。而无标度网络中的强者又使得网络具有脆弱性,少部分强者被封杀则使得整个网络产生较大变化。所以舆论控制需要控制网络中的强者(大V)。
对于比特币也存在51%或者25%的风险。

先创造两个概念.
实时服务: 为极短时间内需要得到满足的需求提供的服务. 极短时间通常为几分钟. 如打车/批改作业/外卖等.
居中平台: 联系供需两端生意的平台.即: 自身既不提供需求,也不提供产品或服务, 而是由个体或组织提供. 例子是: 天猫/淘宝/滴滴/美团外卖等. 而京东/亚马逊有自营店, 则不算.高德地图/微信等直接提供服务, 也不算.
互联网实时服务的居中平台似乎都不约而同推出过抢单机制. 滴滴司机抢单/美团外卖小哥抢单/作业帮批改方也抢单. 似乎最后抢单都沦落为机器人抢单.
抢单的出发点开始都是公平公正公开吧, 另外还有点竞争投标的意味, 最后看谁手速快. 但需求似乎永远稀缺, 人永远比不过机器, 所谓供方抢单最后都变成机器人大战. 保证公平似乎还都要回到派单机制.

技能树展示倒是很好的主意

flowchart RL 我---能力 & 简历 能力---数字化 & 软件开发 & 管理 & 产品 & 供应链 数字化---办公 & 数字化管理 & RPA 数字化管理---ERP & 网店管家 & 钉钉 & 企业微信 & Git ERP---EcountERP Git---Gitlab & Github & Gitee & TortoiseGit 办公---文字 & 数据 & 视觉 RPA---UiBot初级证书 & UiBot中级证书 & UiBot高级证书 文字---Word & Markdown & Typecho 数据---Excel & Pandas & numpy 视觉---PPT & Inkscape & Yed & Matplotlib 软件开发---编程 & 测试 & 软件开发管理 软件开发管理---瀑布 & 敏捷 敏捷---TAPD & 站会 & 快速迭代 & UT & TDD & Jenkins 瀑布---需求分析 & 概要设计 & 详细设计 & 编码阶段 & UT阶段 & ST阶段 & IT阶段 测试---Appium & ADT & Selenium & Devtools & Fiddler & Wireshark & Postman 编程---JavaScript/H5/CSS & Python & 嵌入式编程 JavaScript/H5/CSS---Node & Vue & Electron 嵌入式编程---C & MicroPython & FreeRTOS & VxWorks & DOPRA & ESP8266 & W601 产品---ID设计构思 & 结构设计构思/设计 & 模具设计构思 & 量产前阶段控制 结构设计构思/设计---SolidWorks & FreeCAD & OpenSCAD & AutoCAD 量产前阶段控制---打ID样品 & 打结构样品 & 打研发样品 & 打生产样品 & 小批量 & 批量 & 中试 供应链---采购 & 计划 & 生产 & 仓储 & 物流 简历---UESTC & 安国 & 华为 & 大康 & 中兴 & 锐取 & 爱讯 & 康康 UESTC---电子信息工程 安国---MCU开发攻城狮 华为---嵌入式开发攻城狮 & 欧洲售后攻城狮 & 欧洲服务售前经理 大康---三级心理咨询师 锐取---售前攻城狮 & 产品经理 爱讯---产品经理 康康---产品经理 & 产品总监 & 供应链总监 & 副总经理

  • .task作为公共函数库, 似乎只能被当前流程调用,不能跨父子调用
  • 在一个task中的全局变量i似乎是有些奇怪的, 在其所在的task X中的funtion A调用i没有问题, 然而在另一个task Y中调用task X的funtion A时, i就会变成未定义状态. 似乎跨task调用function 并不会将task整体运行一遍,而只是截取其中需要运行的function来运行.
  • .flow是一个json
  • .flow级别的全局变量是所有本flow下的task公用的, 但不能给其他子flow或父flow用.
  • flow之间传递值, 就需要将.flow的变量定义为输入或者输出. 输入变量即相当于flow的形参, 输出变量即相当于flow的返回值.但是,要想使flow中的变量生效, 必须运行flow而不是task.如要父flow的参数能传递到子flow,必须从父flow开始运行.
  • flow里面的操作是不是ctrl-z的

对默认企业级框架的说明

概述

  • 虚线异常导到异常流程快这个功能似乎只有在企业级框架里面才有, 自己编写框架的话是弄不出来虚线的
  • 在配置配置初始化/目标程序初始化/获取新数据三个阶段发生异常就会直接退出
  • 在主业务流程运行时发生异常就会进行按次数重试, 重试从目标程序初始化开始

配置初始化

  • 企业版需要修改 config.xlsx的读取方式为从commander中读取.
  • 流程是读取config.xlsx->读取并设置logLevel->读取并设置g_iRetryNumber->config.xlsx的内容赋值给全局变量g_dicConfigData
  • res\data\config.xlsx中读取配置. 这个文件已有的默认参数不要修改, sheet名不要修改, 其他流程块会有用的. 不过可以在已有sheet里增加新的参数, 也可以增加新的sheet名. 增加新参数不需要改代码, 增加sheet名需要修改sheetsName数组
  • logLevel和g_iRetryNumber后面直接用, 不要用g_dicConfigData里存的副本了, 因为这儿进行了一些健壮性的处理,比如有没有值啊, 值对不对啊之类
  • 截图存储位置还是用g_dicConfigData["常量设置"]["ExScreenshotsFolderPath"]吧, 似乎这儿又没有专门给一个短一点儿的变量用了.
  • 从这个流程快的描述来看, 复杂业务数据不推荐也存储在config.xlsx中, 最好另建立文件. 我看似乎也不那么绝对, 如果业务数据不多的话, 放在一个文件里, 用户也比较好管理吧

目标程序初始化

  • 一般不需要修改
  • 默认的代码就是杀掉config.xlsx/本地参数/appsName中的进程
  • 进程名是用逗号分隔, 从代码看没有对空格处理, 所以在config.xlsx中写这个参数的时候不要留空格

首次运行判断g_bFirstRun

  • 不需要修改
  • 配置初始化中赋值True, 在获取新数据中赋值False, 而由于配置初始化只运行一次, 意味着这个判断只会有一次为True. 这次为True的目的只是为了在初次运行前获取新数据

重试判断g_bRetryStatus

  • 不需要修改
  • 配置初始化中赋值False, 在重试计数中按最大重试计数进行翻转. 即: 未达到最大重试次数时为True,并把g_iCount++, 达到了为False并将重试计数器g_iCount清零.

重试计数

  • 这个块需要修改, 主要是使能截图上传代码
  • 这个块只能通过主执行流程的异常进入
  • 默认代码是重试判断和计数的操作
  • 有一部分被隐藏的可选代码,是按config.xlsx["常量设置"]["ExScreenshotsFolderPath"]的配置路径保存本地截图并上传给commander截图的.
      If (shotsPath <> "") And (Not IsNull(shotsPath))
          Upload.UploadScreenShot("image_"&sRet,shotsPath,True,{"sDescribe":"最后一次重试后的现场截图"})
      End If
  • 这个Upload.UploadScreenShot函数按其说明是会自动截图并上传的, 其实名字叫ShotScreenAndUpload比较好些吧...
  • config.xlsx["常量设置"]["ExScreenshotsFolderPath"]中写配置路径的\是不需要转义的,写一个\就行了
  • 重试计数后会进入目标程序初始化,目的应该是杀一下app清洁一下运行环境. 根据是否重试,决定再操作一遍还是操作下一组数据

获取新数据

  • 这个块是需要修改的
  • 主要是从自定义的xlsx文件中读取一行数据, 代码需要补充自定义的xlsx文件名和读取的位置, 以及多条数据读取是不是要循环一下? 要有个静态变量存储一下当前读到那一行了? 当然uibot没有静态变量, 故而又要定义一个全局的了...
    
    objExcelWorkBook = Excel.OpenExcel("",True,"Excel","","")
    arrayRet = Excel.ReadRow(objExcelWorkBook,"Sheet1","A1")
    Excel.CloseExcel(objExcelWorkBook,True)

g_dicTransactionItem["TransactionData"] = arrayRet

* 当然我觉得为了读取一行数据就开关一次excel(这么耗费CPU和时间的操作)似乎有些傻, 是我的话就在`配置初始化`里面一次从Excel读取所有数据,然后再进行内存操作, 所以上面这段excel读取代码可以删掉,重写为变量读取代码.

## 是否有数据判断
* **需要修改键值**
如下:
```vb
Not IsNull(g_dicTransactionItem["TransactionData"])
  • 其中TransactionData是需要修改为实际的键名的, 如出发地之类的,如果找不到这个键名就认为没有数据
  • g_dicTransactionItem这一项在配置初始化/获取新数据中都会初始化为null. 当然这样看在配置初始化中再初始化为null显得很多余, 且不说在flow定义全局变量的时候本来就会初始化一次, 这样就至少初始化为null 3次了.

异常处理

  • 企业流程需要修改, 添加截图上传操作
  • 这个模块只能通过异常进入, 包括配置初始化/目标程序初始化/获取新数据三个模块的异常
  • 异常处理后的结果就是流程结束

流程结束

  • 如果运行完没什么特别要做的可以不用修改
  • 不过这儿的注释里有几个非常重要和有趣的系统变量! 尤其是有版本号! 似乎系统变量/常量都是$开头的
      $BlockInput:  上一个实线连接的流程块的Return值,或者上一个虚线连接的流程块抛出的异常
      $UB.InstallPath: UiBot的安装路径
      $UB.Version: UiBot的版本信息,将会得到一个Dict变量,里面包含不同的字段,标明版本信息的不同组成部分。今后还会扩充
      $Flow.WorkPath:当前运行的流程或者子流程的所在路径。如果是流程,就是流程所在路径。如果是子流程,就是子流程所在路径。
      $Flow.ElaspedTime:当前运行的流程或者子流程已经运行的时间,以毫秒为单位。比如 $Flow.ElaspedTime 的值为100,代表从当前流程开始运行,到目前为止已经过了100毫秒。
  • 版本$UB.Version的值举例:
    {
    "InstructionBits" : 64,
    "Product" : "UiBot Creator Community 5.5.0"
    }

    因为能在worker和store上运行, 所以对应的版本显示应该有所不同.