领域模型 贫血模型 充血模型

领域模型 贫血模型 充血模型 http://blog.darkmi.com/2011/12/21/2069.html 领域模型 领域模型是对领域内的概念类或现实世界中对象的可视化表示。又称概念模型、领域对象模型、分析对象模型。它专注于分析问题领域本身,发掘重要的业务领域概念,并建立业务领域概念之间的关系。 业务对象模型 (也叫领域模型 domain model) 是描述业务用例实现的对象模型。它是对业务角色和业务实体之间应该如何联系和协作以执行业务的一种抽象。业务对象模型从业务角色内部的观点定义了业务用例。该模型为产生预期效果确定了业务人员以及他们处理和使用的对象 (“业务类和对象”) 之间应该具有的静态和动态关系。它注重业务中承担的角色及其当前职责。这些模型类的对象组合在一起可以执行所有的业务用例。 贫血模型 (Anemic Model) Anemic Domain Model (贫血领域模型), 贫血领域对象 Martin Fowler在他个人博客里描述的一个Anti-pattern 反模式 是 Anemic Domain Model (贫血域模型), 但是,恰恰这种 Anti-pattern 反模式,却在实际应用中频繁出现。 是指领域对象里只有get和set方法,或者包含少量的CRUD方法,所有的业务逻辑都不包含在内而是放在Business Logic层。 贫血领域对象 (Anemic Domain Object)是指仅用作数据载体,而没有行为和动作的领域对象。 贫血领域对象只是个数据载体,没有任何行为。简单的业务系统采用这种贫血模型和过程化设计是没有问题的,但在业务逻辑复杂了,业务逻辑、状态会散落到在大量方法中,原本的代码意图会渐渐不明确,我们将这种情况称为由贫血症引起的失忆症。 充血模型 层次结构和上面的差不多,不过大多业务逻辑和持久化放在Domain Object里面,Business Logic只是简单封装部分业务逻辑以及控制事务、权限等,这样层次结构就变成Client-> (Business Facade)->Business Logic->Domain Object->Data Access。 参考资料: http://baike.baidu.com/view/757895.htm http://www.uml.org.cn/mxdx/200803141.asp http://www.oschina.net/question/54100_10400 作者: 郭凛 链接: https://www.zhihu.com/question/20360521/answer/14891150 来源: 知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 贫血模型最早广泛应用是源自于EJB2,最强盛时期则是由Spring创造,把"行为" (也称为逻辑、过程) 和"状态" (可理解为数据,对应到语言就是对象成员变量) 分离到不同的对象之中,那个只有状态的对象就是所谓的"贫血对象" (常称为VO——Value Object) ,而那个只有行为的对象就是我们常见的N层结构中的Logic/Service/Manager层 (对应到EJB2中的Stateless Session Bean) 。 (曾经Spring的作者Rod Johnson也承认,Spring不过是在沿袭EJB2时代的"事务脚本",也就是面向过程编程) 充血模型其实很简单,就是面向对象设计的本质: “一个对象是拥有状态和行为的”,比如说一个人,他眼睛什么样鼻子什么样这就是状态,人可以去打游戏或是写程序,这就是行为。为什么要有一个"人Manager"这样的东西存在去帮人"打游戏"呢?举个简单 ...

2016-06-04 · 1 min · 93 words · -

什么时候考虑使用静态

什么时候考虑使用静态 静态方法比较少用,因为他在一启动就实例化了,比较占资源,当然,配合单例模式还是比较好用的 比较多的用在数据连接上,我避免使用的原则就是减少资源消耗 静态方法用来执行无状态的一个完整操作,实例方法则相反,它通常是一个完整逻辑的一部分,并且需要维护一定的状态值。 如果用内存和效率来区分使用Static Method、Instance Method 就回到过去结构化编程了。使用那种方法的根本出发点还是围绕面向对象来进行的 静态方法不用创建实例可以直接调用 与类相关与对象无关 不需要对象的"轻"方法 工厂方法 如果某个方法是用频率较高,或者方法本身通用性较强,无需初始化类成员变量,则可以使用静态方法,那样方便,速度也快. 可以直接拿来就用的方法,就是静态的. 肯定不涉及具体对象,因为静态方法内,是无法直接使用任何非静态成员的。 工具类 可以当作"全局"对象或方法来使用 重载"操作符" 静态方法和实例方法是一样的,在类型第一次被使用时加载。调用的速度基本上没有差别。 从面向对象的角度上来说,在抉择使用实例化方法或静态方法时,应该根据该方法和实例化对象具是否有逻辑上的相关性,如果是就应该使用实例化对象, 反之使用静态方法。 我是把静态类当做全局变量和全局函数的整合对象来用的 全局累加时用 不需要生成对象的 经常频繁使用的 工具类里的 (如SqlHelper) 适当地使用static方法本身并没有什么,当一个人从来不懂使用多态、接口设计时,很自然地会滥用static方法。 个人理解在多个类中需要调用并且是与对象无关的方法可设为静态方法,方便调用。 所有对象共有的方法 不关系到任何于特定对象相关的操作 比如学生的年龄就是学生的相关。 修改学生的年龄就不适合用静态方法。 一般来说,如果你的方法里没有用到this关键字, 那就适合用静态方法 通常通用的类中一些常用的方法可以设计为静态类 只要是没有用到类的状态信息,只从参数获取信息的都可以为静态的 可以实现某些特殊的设计模式: 如Singleton 由于没有this指针,可以把某些系统API的回调函数以静态函数的形式封装到类的内部 可以封装某些算法,比如数学函数,如ln,sin,tan等等,这些函数本就没必要属于任何一个对象,所以从类上调用感觉更好 总之,从OOA/OOD的角度考虑,一切不需要实例化就可以有确定行为方式的函数都应该设计成静态的 以上这些各种说法,基本上都是正确的。但是,其中绝大多数是讲了"静态"和"实例"的区别,以及静态方法的特征。 很少有说到何时或是为什么要使用静态的。 静态包括静态类和静态成员 (静态方法 和 静态属性) ,既然搜索出来的这些说的都是静态成员 (基本上说的都是静态方法) ,那么我也就先仅对静态方法谈一谈自己的看法。 上中学数学,尤其是平面几何的时候,老师经常讲"定义"与"性质"的区别。“性质"只是它表现出来的特征而已,而"定义"才是真正的决定性的东西。 我觉得,静态方法的"定义"当然是 static 关键字了。没有用到this指针,这一点才是静态方法的首要"性质” (本质特征) 。像什么【共通】【全局】【单例模式】呀,那都是它的应用场景,或是说使用静态方法来达到的目的。 那么说到"何时该使用静态方法"其实是困扰很多程序员的苦恼问题。不明白这一点,也从一个侧面反映出对OO思想的理解不够,就很可能通过滥用静态方法已达到在面向对象的语言中继续进行面向过程的编程,这是很可怕的。 其实,方法是否涉及具体类的实例,或者简单的说是否涉及"数据" (如果使用就要用到this指针) 是决定是否使用静态方法的根部要因。然而,判断是否涉及到"数据"也是要看当前设计思路的。有时候不够OO的设计,可能会将本该设计到数据的实例方法,从"数据相关"变成"数据无关"。 (与OO不同,面向过程的编程就是将 方法 与 数据 分开) 在这样的设计思路下,你会发现怎么什么动作都是与数据无关的呢?恩,这就该开始滥用静态方法了。 本想举一个好一点的例子,但是时间匆忙,就简短说一下 Log 吧。有人认为写日志是一个工具在干活,应该是 Log.debug(…); ...

2016-06-02 · 1 min · 176 words · -

rsync

rsync install rsync pacman -S rsync sudo apt install rsync rsync -azP source dest options https://blog.csdn.net/m0_37886429/article/details/77285738 -a 同步所有, 包括修改时间、群组、权限、特殊文件、也包括递归。 -h, –human-readable 输出易读格式。 以人类可读的格式输出。 -r 递归, 在同步目录时使用 -v, –verbose 详细模式输出 -x, –one-file-system 递归时避免跨越文件系统的边界(即不能跨越挂载点) -z 压缩传输的文件 -A, –acls preserve ACLs (implies -p) 将目标ACL更新为与源ACL相同 -H, –hard-links 保留硬链结 -P 是 -progress 和 -partial 的组合。第一个选项是用来显示传输进度条, 第二个选项允许断点续传和增量传输 -X, –xattrs 将目标扩展属性更新为与源扩展属性相同。 –numeric-ids 传输文件的用户id,而不是传输用户名 使用 rsync 命令同步本地目录和远程主机目录 Rsync, 代表 “remote sync”, 它是本地和远程主机文件同步工具。它只同步更改的文件,以此实现最小化传输数据。 我们创建两个测试目录和一些文件: mkdir d1 mkdir d2 touch d1/somefile{1..5} rsync -r d1/ d2 rsync -anv dir1/ dir2 # 注意上面的dir1/中的"/"不能少,它代表同步目录下文件, 如果没有"/" 代表同步这个目录。 和远程主机进行同步目录 ...

2016-05-31 · 1 min · 137 words · -

nftables

nftables 这里有张图 https://wiki.nftables.org/wiki-nftables/index.php/Netfilter_hooks nftables 是一个新式的数据包过滤框架,旨在替代现用的 iptables、ip6tables、arptables 和 ebtables 的新的包过滤框架。nftables 诞生于 2008 年,2013 年底合并到 Linux 内核,从 Linux 内核 3.13 版本开始大多数场景下 nftables 已经可以使用,但是完整的支持(即:nftables 优先级高于 iptables)应该是在 Linux 内核 3.15 版本。 nftables 旨在解决现有 {ip/ip6}tables 工具存在的诸多限制。相对于旧的 iptables,nftables 最引人注目的功能包括:改进性能、支持查询表、事务型规则更新、所有规则自动应用等等。 nftables 主要由三个组件组成:内核实现、libnl netlink 通信和 nftables 用户空间。其中内核提供了一个 netlink 配置接口以及运行时规则集评估,libnl 包含了与内核通信的基本函数,用户空间可以通过新引入的命令行工具 nft 和用户进行交互。 nft 可以通过在寄存器中储存和加载来交换数据。也就是说,它的语法与 iptables 不同。但 nft 可以利用内核提供的表达式去模拟旧的 iptables 命令,维持兼容性的同时获得更大的灵活性。简单来说,nft 是 iptables 及其衍生指令(ip6tables 和 arptables )的超集。 nftables 的特点 nftables 拥有一些高级的类似编程语言的能力,例如:定义变量和包含外部文件,即拥有使用额外脚本的能力。nftables 也可以用于多种地址簇的过滤和处理。 不同于 iptables, nftables 并不包含任何的内置表,需要哪些表并在这些表中添加什么处理规则一切由管理员决定。 表包含规则链,规则链包含规则。 nftables 相较于 iptables 的优点 更新速度更快 在 iptables 中添加一条规则,会随着规则数量增多而变得非常慢。这种状况对 nftables 而言就不存在了,因为 nftables 使用原子的快速操作来更新规则集合。 ...

2016-05-25 · 4 min · 801 words · -

http proxy, whistle, w2, http 调试代理

http proxy, whistle, w2, http 调试代理 whistle HTTP, HTTPS, Websocket debugging proxy tool in linux, like Fiddler for windows install whistle npm install -g whistle yarn global add whistle w2 command w2 help w2 start w2 stop 把代理指向127.0.0.1:8899 浏览器访问 http://127.0.0.1:8899/#network https://github.com/avwo/whistle https://github.com/avwo/whistle/blob/master/README-zh_CN.md https://www.npmjs.com/package/whistle https://avwo.github.io/whistle/install.html

2016-05-24 · 1 min · 44 words · -

HTTP Transfer-Encoding

‘HTTP Transfer-Encoding’ 本文作为我的博客「HTTP 相关」专题新的一篇,主要讨论 HTTP 协议中的 Transfer-Encoding。这个专题我会根据自己的理解,以尽量通俗的讲述,结合代码示例和实际场景来说明问题,欢迎大家关注和留言交流。 Transfer-Encoding,是一个 HTTP 头部字段,字面意思是「传输编码」。实际上,HTTP 协议中还有另外一个头部与编码有关: Content-Encoding (内容编码) 。Content-Encoding 通常用于对实体内容进行压缩编码,目的是优化传输,例如用 gzip 压缩文本文件,能大幅减小体积。内容编码通常是选择性的,例如 jpg / png 这类文件一般不开启,因为图片格式已经是高度压缩过的,再压一遍没什么效果不说还浪费 CPU。 而 Transfer-Encoding 则是用来改变报文格式,它不但不会减少实体内容传输大小,甚至还会使传输变大,那它的作用是什么呢?本文接下来主要就是讲这个。我们先记住一点,Content-Encoding 和 Transfer-Encoding 二者是相辅相成的,对于一个 HTTP 报文,很可能同时进行了内容编码和传输编码。 Persistent Connection 暂时把 Transfer-Encoding 放一边,我们来看 HTTP 协议中另外一个重要概念: Persistent Connection (持久连接,通俗说法长连接) 。我们知道 HTTP 运行在 TCP 连接之上,自然也有着跟 TCP 一样的三次握手、慢启动等特性,为了尽可能的提高 HTTP 性能,使用持久连接就显得尤为重要了。为此,HTTP 协议引入了相应的机制。 HTTP/1.0 的持久连接机制是后来才引入的,通过 Connection: keep-alive 这个头部来实现,服务端和客户端都可以使用它告诉对方在发送完数据之后不需要断开 TCP 连接,以备后用。HTTP/1.1 则规定所有连接都必须是持久的,除非显式地在头部加上 Connection: close。所以实际上,HTTP/1.1 中 Connection 这个头部字段已经没有 keep-alive 这个取值了,但由于历史原因,很多 Web Server 和浏览器,还是保留着给 HTTP/1.1 长连接发送 Connection: keep-alive 的习惯。 ...

2016-05-24 · 2 min · 270 words · -

Invalid HTTP server response [411] – Length Required

‘Invalid HTTP server response [411] – Length Required’ http://www.coderanch.com/t/625696/Web-Services/java/Invalid-HTTP-server-response-Length As William asked, please share how you are setting content length in SOAP header. I searched online for error and found that there can be one more reason for this failure. Reason - The remote WSEndpoint did not like the HTTP Chunking feature activated. Try disabling this feature for WS client. netty HttpPostRequestEncoder bodyRequestEncoder = new HttpPostRequestEncoder(factory, request, false);

2016-05-24 · 1 min · 68 words · -

netty 文件上传

netty 文件上传 http://blog.csdn.net/mcpang/article/details/41140409 【初学与研发之NETTY】netty4之文件上传 标签: netty4文件上传 2014-11-15 04:35 6005人阅读 评论(29) 收藏 举报 分类: JAVA (48) Netty (6) 版权声明: 本文为博主原创文章,未经博主允许不得转载。 客户端: print? public class UpLoadClient { private StringBuffer resultBuffer = new StringBuffer(); private EventLoopGroup group = null; private HttpDataFactory factory = null; private Object waitObject = new Object(); private ChannelFuture future = null; public UpLoadClient(String host, int port) throws Exception { this.group = new NioEventLoopGroup(); this.factory = new DefaultHttpDataFactory(DefaultHttpDataFactory.MINSIZE); Bootstrap b = new Bootstrap(); ...

2016-05-24 · 6 min · 1133 words · -

MessageFormat

MessageFormat MessageFormat用法 博客分类: java MessageFormatMessageFormat.format MessageFormat用来格式化一个消息,通常是一个字符串,比如: String str = “I’m not a {0}, age is {1,number,short}”, height is {2,number,#.#}; 而MessageFormat可以格式化这样的消息,然后将格式化后的字符串插入到模式中的适当位置,比如: 将str中的{0}用"pig"替换,{1,number,short}用数字8替换,{2,number,#.#}用数字1.2替换。 那么最终用户得到的是一个格式化好的字符串"I’m not a pig, age is 8, height is 1.2"。 MessageFormat本身与语言环境无关,而与用户提供给MessageFormat的模式和用于已插入参数的子格式模式有关,以生成适用于不同语言环境的消息。 MessageFormat模式 (主要部分) : FormatElement: { ArgumentIndex } { ArgumentIndex , FormatType } { ArgumentIndex , FormatType , FormatStyle } FormatType: number date time choice (需要使用ChoiceFormat) FormatStyle: short medium long full integer currency percent SubformatPattern (子模式) 还以str为例,在这个字符串中: {0}和{1,number,short}和{2,number,#.#};都属于FormatElement,0,1,2是ArgumentIndex。 {1,number,short}里面的number属于FormatType,short则属于FormatStyle。 {1,number,#.#}里面的#.#就属于子格式模式。 指定FormatType和FormatStyle是为了生成日期格式的值、不同精度的数字、百分比类型等等。 实例: ArgumentIndex必须是非负整数,它的个数不只限于0到9这10个,它可以用0到9的数字组成,因此可以有好多个,如: Java代码 ...

2016-05-17 · 2 min · 339 words · -

英语, English

英语 English 句子成分 主语 Subject 谓语 Predicate 宾语 Object 主语 Subject 指句子中动作的执行者或状态的承受者,通常是名词、代词或相当于名词的词或短语。 在祈使句中,主语通常是隐含的 “You”。 谓语 Predicate 通常是一个动词(或动词短语),说明主语做什么或处于什么状态。 主语 和谓语的关系 主语是动作的执行者,谓语是主语所做的动作或状态的描述。 主谓一致(Subject-Verb Agreement) 主语和谓语在数(单复数)和人称上必须一致。 宾语 Object 宾语是动作的承受者,通常是谓语动词的作用对象。换句话说,就是“谁”或“什么”受到了这个动作。 通常出现在 及物动词(transitive verb) 后面 通常是名词、代词,或相当于名词的词/短语(名词短语)/从句 直接宾语 Direct Object 动作直接作用的对象 I read a book. 间接宾语 Indirect Object 表示动作的接受者或受益者,通常在人之前 She gave me a gift. me: 间接宾语, a gift: 直接宾语 宾语从句 Object Clause 整个从句作为宾语 I think (that he is right). 动词后不一定有宾语, 及物动词需要宾语,比如 need, like, see, eat, 不及物动词通常不需要宾语, 比如: sleep, arrive, go ...

2016-05-15 · 19 min · 3849 words · -

统计文件行数, 文件数

统计文件行数, 文件数 Linux下有三个命令: ls、grep、wc。通过这三个命令的组合可以统计目录下文件及文件夹的个数。 统计当前目录下文件的个数 (不包括目录) ls -l | grep “^-” | wc -l 统计当前目录下文件的个数 (包括子目录) ls -lR| grep “^-” | wc -l 查看某目录下文件夹(目录)的个数 (包括子目录) ls -lR | grep “^d” | wc -l 统计.md文件个数 ls -lR|grep "^-.*.md"|wc -l 语法: wc [选项] 文件… 说明: 该命令统计给定文件中的字节数、字数、行数。如果没有给出文件名,则从标准输入读取。wc同时也给出所有指定文件的总统计数。字是由空格字符区分开的最大字符串。 该命令各选项含义如下: c 统计字节数。 l 统计行数。 w 统计字数。 这些选项可以组合使用。 输出列的顺序和数目不受选项的顺序和数目的影响。 总是按下述顺序显示并且每项最多一列。 行数、字数、字节数、文件名 如果命令行中没有文件名,则输出中不出现文件名。 例如: `$ wc - lcw file1 file2 4 33 file1 7 52 file2 ...

2016-05-15 · 1 min · 114 words · -

Linux批量重命名文件

Linux批量重命名文件 #在前面添加 _hoho_ for i in \`ls\`; do mv -f $i \`echo "_hoho_"$i\`; done #修改前面5个字母为zhaozh for i in \`ls\`; do mv -f $i \`echo $i | sed 's/^...../zhaozh/'\`; done Linux批量重命名文件会涉及到改变一个字母、改变一些相连字母、改变某些位置的字母、在最前面加上某些字母、或者改变字母的大小写。完成这里五个方法基本上就会解决了Linux批量重命名的工作。 我想把它们的名字的第一个1个字母变为"q",其它的不变 [root@pps mailqueue]# for i in `ls`; do mv -f $i `echo $i | sed ’s/^./q/’`; done 或者写个脚本,显得更加清晰: for file in `ls` do newfile =`echo $i | sed ’s/^./q/’` mv $file $newfile done 修改前面5个字母为zhaozh [root@pps mailqueue]# for i in `ls`; do mv -f $i `echo $i | sed ’s/^…../zhaozh/’`; done ...

2016-05-13 · 1 min · 131 words · -

ansible basic command

ansible basic command commands # 临时的 inventory file ansible -i '192.168.50.111,' all -m shell -a 'whoami' -u root ansible-galaxy collection install community.general # localhost ansible localhost -m shell -a 'ls' # 指定私钥 --key-file ansible -i 'wiloon.com,' all -m shell -a 'systemctl stop enx-api' -u root --key-file ~/.ssh/id_ed25519_w10n hibernate ansible -i '192.168.50.31,' all -m shell -a 'sudo systemctl hibernate' -u user0 install Installing Ansible on Ubuntu sudo apt update sudo apt install software-properties-common sudo add-apt-repository --yes --update ppa:ansible/ansible sudo apt install ansible macos brew install ansible ansible 配置文件 /etc/ansible/ansible.cfg 文件内容 [defaults] interpreter_python = auto_legacy_silent # gather 超时时间 gather_timeout=30 inventory 默认的 Inventory 路径 /etc/ansible/hosts ...

2016-05-13 · 2 min · 382 words · -

java 队列, Queue, Deque

java 队列, Queue, Deque 名称 deque 是 “double ended queue (双端队列)” 的缩写, 通常读为 “deck”。 大多数 Deque 实现对于它们能够包含的元素数没有固定限制, 但此接口既支持有容量限制的双端队列, 也支持没有固定大小限制的双端队列. ArrayBlockingQueue 基于数组的阻塞队列 http://wiloon.com/ArrayBlockingQueue LinkedBlockingQueue 链表结构组成的有界阻塞队列。 PriorityBlockingQueue 支持优先级排序的无界阻塞队列。 DelayQueue 一个使用优先级队列实现的无界阻塞队列。 SynchronousQueue 不存储元素的阻塞队列 LinkedTransferQueue 一个由链表结构组成的无界阻塞队列。 LinkedBlockingDeque 一个由链表结构组成的双向阻塞队列。 https://blog.wiloon.com/?p=8256 ConcurrentLinkedDeque 非阻塞线程安全列表 ConcurrentLinkedQueue ConcurrentLinkedQueue 是一个基于链接节点的无界线程安全队列 http://blog.wiloon.com/?p=11670 Queue add 增加一个元索 如果队列已满, 则抛出一个 IIIegaISlabEepeplian 异常 offer 添加一个元素并返回 true 如果队列已满, 则返回 false put 添加一个元素 如果队列满, 则阻塞 remove 移除并返回队列头部的元素如果队列为空, 则抛出一个 NoSuchElementException 异常 poll 移除并返回队列头部的元素如果队列为空,则返回 null take 移除并返回队列头部的元素 如果队列为空,则阻塞 element 返回队列头部的元素 如果队列为空,则抛出一个 NoSuchElementException 异常 ...

2016-05-08 · 2 min · 268 words · -

netctl

netctl pacman -S wpa_actiond pacman -S dialog systemctl stop dhcpcd systemctl disable dhcpcd cp /etc/netctl/example/wireless-wpa sudo chmod u+x /etc/netctl/* emacs wireless-wpa sudo netctl start xxxxxx sudo netctl enable wireless-wpa wireless #http://www.wiloon.com/?p=7520

2016-04-26 · 1 min · 31 words · -

解决 archlinux 和 windows 双系统启动时间不准的问题

解决 archlinux 和 windows 双系统启动时间不准的问题 https://bbs.archlinuxcn.org/viewtopic.php?id=424 pacman -S openntpd systemctl start openntpd ntpd -s -d hwclock -w http://mindonmind.github.io/notes/linux/arch_time.html```

2016-04-25 · 1 min · 18 words · -

archlinux netctl wifi

archlinux netctl wifi Essay Address: http://blog.csdn.net/sunnypotter/article/details/23201339 # 如果之前systemctl enable dhcpcd.service systemctl dhcpcd.service systemctl disable dhcpcd.service 然后 cd /etc/netctl cp examples/wireless-wpa . # A simple WPA encrypted wireless connection vim wireless-wpa # Modify Interface=wlp8s0 # iw dev查看, 或ip link 或ifconfig Connection=wireless Security=wpa IP=dhcp ESSID=‘wifi-name’ Key=‘wifi-passwd’ 注意,必须先完成以上才能进行一下,否则有一系列问题 netctl enable wireless-wpa netctl start wireless-wpa reboot ( 相关文件夹: /etc/netctl # 网络配置文件夹,假如配置名字叫 wireless-wpa /etc/systemd/system # /etc/systemd/system # netctl@wireless-wpa.service /etc/systemd/system/multi-user.target.wants # netctl@wireless-wpa.service 相关命令: journalctl -xn systemctl -failed ...

2016-04-25 · 1 min · 96 words · -

小平岛 玉皇顶

小平岛 玉皇顶 小平岛之巅是玉皇顶,海拔73米,与之相连的是城山头,海拔53米。在它的半腰处有一堵30多米长的残垣断壁,面对大海,青石累累。据说,宋金时期为了抗击外来的海盗,驻守这里的将士们筑起了这堵城墙。现已被列为大连市重点保护文物。[1] 在城墙的西端有一个两米多高的黑褐色圆台形礁石屹立在海中,渔民叫它钓鱼角。每逢金秋季节,这里常有墨鱼和鲅鱼涌到岸边觅食,只要在鱼钩上包上锡纸当诱饵,放到海中片刻就可引来墨鱼。在这里吊鲅鱼的方法更是奇特: 只要把一种金属铅和鱼钩铸在一起的流线型钩坠猛地甩向几十米远,随即再迅速收线,钩坠就在水中游动,鲅鱼一发现钩坠,会误认为是饵料,便穷追不舍,一口吞下。 大连老偏岛—玉皇顶海洋生态自然保护区于2000年8月建立。该保护区地理坐标为东经121°28′46″~121°36′37″,北纬38°47′29″~38°50′00″,总面积为1580公顷。 保护范围 保护区总面积为1580公顷。其中: 缓冲区的范围是岛坨海岸线向外延伸1000米范围内,面积为1310公顷;核心区的范围是玉皇顶海岸线向外延伸100米范围内,大坨子、二坨子、三坨子、四坨子海岸线向外延伸200米范围内,老偏岛海岸线向外延伸50米范围内,面积为270公顷(包括老偏岛及大坨子、二坨子、三坨子、四坨子海岸线以上向陆部分,面积为70公顷)。 保护对象 刺参、皱纹盘鲍、紫海胆、紫石房蛤、香螺、魁蚶、马尾藻及周围海洋生态系统;老偏岛的喀斯特地貌,玉皇顶及大坨子、二坨子、三坨子、四坨子的海蚀地貌景观。 独特景观 老偏岛由于岩石性质、地质构造和古气候等多种因素影响,形成国内北方岛屿罕见的喀斯特溶洞景观。 玉皇顶是小平岛的陆连岛,由五个山包构成起伏山崖,其外侧是清澈的海水。岩石是坚硬的震旦纪桥头组中厚石英岩,岩层产状近于水平。由于构造裂隙及强烈海蚀作用,形成各种海蚀景观,如海蚀洞、象鼻洞。其中一较大洞长约30米,高15米。 该区有天然海草床,水下植物种类齐全,如皱纹盘鲍、紫海胆、刺参、香螺等海珍品,其资源量和质量有区域优势。 该保护区对在大连市西部建一处"海洋公园"来讲是一处较好的选址,对大连沿海旅游业的立体发展和资源开发与保护并举有重要的示范作用,她必将成为一张亮丽的城市名片。 历史 这个岛还有一段美丽的传说。很久以前,这里没有小岛,只有一个小渔村。村西头住着一个叫海生的渔民,他自幼练得一身捕鱼的好本领,还会吹笛。一天,他下完网正要拿出笛子吹,忽听一阵呼救声传来,举目望去, 小平岛 小平岛 只见一个大海蚌被鲨鱼咬住了。海生急忙摇船过去,操起桨把鲨鱼打跑了。突然间,大海蚌变成了一个俊俏的姑娘跳上了船头,不停磕头还要嫁他为妻以谢他的救命之恩。海生听她讲了事情的起因: 她叫蚌花,常躲在珊瑚洞里听他吹笛,今天不巧被独眼鲨发现了,一直追到了人间,非要逼她为妻。海生看她对自己一往情深,欣然接受,当晚就举行了婚礼。独眼鲨得知后非常气愤,掀起一股巨浪把村子淹没了一半,还要渔民们在中秋节送一对童男童女给它,否则就淹没整个村子。正当期限将到,渔民们急得团团转时,蚌花从龙王那里借来了"吞海宝瓶",在中秋节把宝瓶放在海滩上。当独眼鲨奔到岸边时,被宝瓶吸进肚中,顿时潮水退去,渔民们又可以安居乐业了。 不久龙王派大将来索取宝瓶,并说若不从速还就把他俩变成礁石。 小平岛 小平岛 为了不让独眼鲨出来祸害百姓,他俩宁死不还宝瓶。龙王被激怒了,就把宝瓶变成了像花瓶似的大礁石,与陆地紧紧相连。蚌花却被变成了花,海生则被变成了树,结伴生长在"花瓶"上。此后,每逢阳春三月,绿树和鲜花就会把小岛打扮得比花瓶还美丽。为感谢他俩给人间留下的幸福,渔民们也就把这块大礁石叫做"小瓶岛",以寄托哀思。时间长了叫成了"小平岛"。[2]

2016-04-24 · 1 min · 26 words · -

OSI 七层协议, TCP/IP 四层协议, osi 7层, tcp/ip 4层

OSI 七层协议, TCP/IP 四层协议, osi 7层, tcp/ip 4层 OSI 七层协议和TCP/IP四层协议之比较 TCP/IP四层协议 数据链路层, Data Link Layer: ARP, RARP, PPPoE (Ethernet 以太网协议,MAC 地址) , 数据链路层和物理层合并为网络接口层 网络层, Network Layer: IP,ICMP,IGMP (IPv4 / IPv6 协议,IP 地址) 传输层: TCP(网络端口),UDP,UGP, QUIC, SCTP (流控制传输协议) 应用层: Telnet,FTP,SMTP,SNMP OSI 七层协议 物理层 Physical Layer: EIA/TIA-232, EIA/TIA-499, V.35, V.24, RJ45, Ethernet, 802.3, 8025, FDDI, NRZI, NRZ, B8ZS 数据链路层 Data Link Layer : Frame Relay, HDLC, PPP, IEEE 802.3/802.2, FDDI, ATM, IEEE 8025/802.2 网络层 Network Layer: IP, IPX, AppleTalk DDP 传输层 Transport Layer: TCP, UDP, SPX, QUIC, SCTP (流控制传输协议) 会话层 Session Layer: RPC, SQL, NFS, NetBIOS, names, AppleTalk, ASP, DECnet, SCP 表示层 Presentation Layer :TIFF,GIF,JPEG,PICT,ASCII,EBCDIC,encryption,MPEG,MIDI,HTML 应用层 Application Layer : FTP, WWW, Telnet, NFS, SMTP, Gateway, SNMP 应用层 为特定应用程序提供数据传输服务,例如 HTTP、DNS 等协议。数据单位为报文。 ...

2016-04-24 · 2 min · 319 words · -

archlinux init

archlinux init openssh ssh key neovim ln -s … vi… vim to nvim sudo nopassword for wiloon python for ansible pacman -Syu yay for telegraf after install mesa, to confirm it works 被正确加载 glxinfo | grep "OpenGL renderer" # OpenGL renderer string: AMD Radeon Graphics (radeonsi, phoenix, LLVM 19.1.7, DRM 3.61, 6.14.9-arch1-1) # 看内核模块是否加载成功 lsmod | grep amdgpu vulkaninfo | grep "deviceName" after install vkcube # 测试 vulkan su - wiloon echo $WAYLAND_DISPLAY # wayland-0 # vkcube 默认会尝试用 xlib(X11)作为窗口系统接口, 如果你想要使用 Wayland, 需要指定 --wsi wayland vkcube --wsi wayland before ansible script pacman -Syu && pacman -S git ansible clone ansible script git clone git@github.com:wiloon/ansible.git config network by systemd-networkd http://blog.wiloon.com/?p=9881 ...

2016-04-21 · 2 min · 355 words · -