首页 > 代码库 > anycmd:有意思的妄人语录

anycmd:有意思的妄人语录


  • 控制权限就是控制运动

    所有的运动都应该是可以控制的。比如var age = 30;这么一条赋值语句,这个语句中有个动词“=”,它的意思是赋值,赋值是动词。赋值导致了系统状态的变更,可以导致系统的状态变更的就是Command,是Command就要有办法控制(head、get、read、query等操作是否是有副作用的,是否会导致你的系统状态的变更在于你的业务边界是什么。资源每被get一次访问计数加了1,如果在你的业务边界下访问次数加1有意义的话状态就变更了,没意义就不用变更不用加1)。 所有的命令都应该是可控的,怎么控制?只需要用个using语句一包裹就可以控制了: using(var acCotnext = new ACContext(subject, resource,action)){ var age = 30; }

  • 什么是模型(Model)

    我们可以在概念层次认为Model就是在大的领域边界中的,可以用基于离散的思想来限定出的,承载“数据”和“运动”的小边界。 模型 = 数据 + 运动

  • 区分主客体

    问题是客体,我们是主体。我们使用自己的能动性加入自己的意愿将数据组织起来,形成一个个单元,模拟出一个个有机的问题模型。问题不是静止不动的,宇宙是运动的,我们的模型也是运动的。模型在收到外来的信号后将发生运动。

  • 面向过程 => 面向对象 => 面向物理

    物理化到一定程度 骇客帝国就出现了。

  • 时空观

    设想一个状态:这个状态没有“物质”没有“空间”没有“能量”……总之什么也没有。让我用null来代表这个状态。 显然null不会突然间改变。因为一个空的世界怎么会‘突然’生出东西来呢?null若改变就得无缘无故地生出东西。null要保持 null的状态,null要连续,这里的“状态保持”需要时间,或者说状态保持就是时间,再或者说连续性就是时间。绝对的不变的状态不存在,时间是衡量状态改变快慢的物理量。状态不能突然改变的连续的性质使null具有了时间概念。

  • anycmd认为运动或者叫变化就是时空。

    运动就是时空。我们的时空是运动,网络虚拟时空也是运动。 两个时空的运动一旦被完全打通则摆在我们面前的要么是天堂要么是地狱。牢牢的把控住权限就是天堂,丧失权限就是地狱。 网络虚拟空间正在物理化,物理化到一定程度骇客帝国就出现了。

  • anycmd为时空战争而生

    anycmd为人机战争而生,目的是确保邪恶的事情不能在类似骇客帝国那样的时空中发生。anycmd始终站在人类一边。 anycmd试图为未来的骇客帝国世界定义一套规则,使用这套规则来确保骇客帝国是被我们完全控制的。anycmd试图给出控制骇客帝国中的任何虚拟主体在任何虚拟空间、虚拟时间对任何虚拟客体发引发何运动的权限,引发运动的输入、运动的结果,运动次数都是受控的。我们要确保计邪恶的事情不能在骇客帝国世界中发生。 人类与机器的战争早已开始。战争中双方反复争夺的一个制高点将是“权限”。网络空间和人类生活的空间早晚被物理化打通,一旦打通则网络空间的主体将会有机会控制我们的空间。我们绝不能让此事发生!这是anycmd肩负的伟大使命。anycmd必须确保“权限”被牢牢的把握在人类手中。

  什么是信息

   Anycmd的权限数据交换模块中会反复出现“信息”概念,如“InfoID(信息标识)”、“InfoVaue(信息值)”、“InfoString(信息字符串)”、“InfoStringConverter(信息字符串转化器)”等。为了尽力帮助阅读,这里详述Anycmd的作者是基于什么来标定信息概念的。

信息与数据和信号有些不同,“信息”二字的下面隐含了“翻译”这件事情,也就是说“能翻译”的数据和信号才是信息。比如,这里书写一个字符“1”读者能知道它是什么意思吗?读者看到“1”只是收到了一个视觉“信号”,如果交换系统不告诉你这里的字符“1”是性别“男”的意思的话恐怕字符“1”对你来说就只是一个无意义的视觉信号罢了。收到字符“1”并将它识别为性别“男”这就是“翻译”。

信号被翻译成已知的事物才能成为信息。而“翻译”是什么?是“映射”,激进一下,不妨把信息直接定义为“映射”,信息是:抽象到抽象的映射,抽象到存在的映射,存在到存在的映射,信息就是映射。

那么A被映射到B,B被映射到C,C再被映射到A,这里的映射是不是信息?是。如果这些映射不是信息,那么我们如何知道这是一个闭合的映射环的?我们之所以能够识别出这些映射是否有意义是因为我们有“知识”和“智慧”。“知识”是什么呢?

         信息是映射。而“知识”是选择映射路径的能力。比如“今天天气预报说明天有雨,于是小明取消了明天晒被子的计划”这就是“知识”。小明收到了明天有雨的信号,然后在头脑中做了一系列的映射“时间映射、下雨和水映射、水和湿映射、湿和被子映射、湿被子和睡觉不舒服映射 等”关键是在这一系列映射后小明做出了“明天不晒被子”的映射,从而“明天的雨水无法映射到小明的被子”小明选择了映射的路径,选择映射路径的能力就是“知识”。

         数据交换进程中所进行的一切活动都是事先设定好的“映射”并无“知识”和“智慧”,有智慧的是“人”,数据交换平台将数据收集过来,然后站在平台外部的“人”使用这些数据进行“决策(选择映射路径)”:比如,领导看到某个老师各种条件都不错头脑中考虑了一下是否将这个老师与“教育标兵”映射。

整个Anycmd权限数据交换协议的设计和任何相关文档的书写都遵循了这里对“信息”概念的界定。

这片随笔引入了很多可能引起惊奇的词汇,如果您确实对于本篇中的部分词汇惊奇了请移步这里

  Anycmd是一个.net平台的完全开源的,完整支持RBAC的(包括核心RBAC、通用角色层次RBAC、静态职责分离RBAC和动态责任分离RBAC),将会支持xacml的通用的权限框架、中间件、解决方案。完整的RBAC规范所定义的能力只是anycmd所提供的能力集的一个子集。 如果您感兴趣的话现在可以先观察Anycmd的源码,期待您为Anycmd提供帮助确保她走在正确的道路上。

开源地址http://git.oschina.net/anycmd/anycmd