NexT


  • 首页

  • 归档

  • 标签

  • 搜索

code

发表于 2024-02-23 | 分类于 code

cmake 模块化

Mobile Preview Mobile Preview

dmconfig (C++ 数据中间件)

Mobile Preview

msgdispatcher (C++ 协议派发器)

Mobile Preview

dmmsgparser (C++ 协议一体化解决方案)

Mobile Preview

dmorm

Mobile Preview

dmgen4orm

Mobile Preview

sqldiff

Mobile Preview

dmlua

Mobile Preview

solpp (C++ Lua自动化bind组件)

Mobile Preview

pybindpp (C++ Python自动化bind组件)

Mobile Preview

genepipp (C++ JavaScript自动化bind组件)

Mobile Preview

env

Mobile Preview

阅读全文 »

questions

发表于 2024-02-22 | 分类于 questions

提问的智慧 | 提问的艺术

阅读全文 »

llvm

发表于 2024-02-20 | 分类于 llvm

ubuntu 22.04 llvm 开发环境安装(以19版本为例)

阅读全文 »

gcc

发表于 2024-02-20 | 分类于 gcc

gcc 查看系统搜索路径

阅读全文 »

cpprules

发表于 2024-02-20 | 分类于 cpprules

C/C++ 安全规则集合

阅读全文 »

design-newworld

发表于 2024-02-02 | 分类于 design-newworld
  • 前置 您现在扮演一个C++游戏领域服务器开发专家, 下面是策划提的需求 假设我们已经拥有了足够的科技
  • 愿景 实现一个现实世界一样的系统
  • 条件 用C++实现,使用绝对类型, 不要使用namespace, 类的成员变量 设置为private, 对外使用函数接口调用, 注意类的依赖关系, 如果A依赖B, 那么B的实现要靠前, 或者使用前置声明方式。 记得包含所有依赖的C++头文件。类型统一使用std::int64_t类似的形式
  • 内容 创建2个世界 人界 跟 灵界 灵界可以创建 元神+识神的 量子纠缠 对象 并且提供Find函数 人界可以创建 人的肉体对象CPlayer 并且提供Find函数 人投胎的过程, 即 CPlayer 创建之后 初始化 喝孟婆汤清理元神+识神上面的信息。 加载 元神+识神的 量子纠缠对象 人死亡的过程, 即 牛头马面 带着元神+识神 回归灵界 这个时候 元神+识神 的信息并未清理, 但是肉体 设置为死亡状态 默认状态 CPlayer的能力值=CPlayer+识神 当 元神召唤识神, CPlayer会处于冬眠状态, 当识神召唤元神, CPlayer的能力值=CPlayer+识神+元神 元神 归属灵界 识神 归属人界
阅读全文 »

design-newworld-wujinlunhui2

发表于 2024-02-02 | 分类于 design-newworld-wujinlunhui2

根据前面所有的设计思路,将《无尽轮回》的12个资料片进行有机整合,以符合阴阳五行运转的法则,并确保资料片之间互有承接关系。每个资料片的主题与内容都会从阴阳五行的角度出发,逐步揭示更复杂的世界观和规则,让玩家体验到游戏世界的连贯性和进化过程。

阅读全文 »

design-newworld-wujinlunhui

发表于 2024-02-02 | 分类于 design-newworld-wujinlunhui

游戏概况

阅读全文 »

trump

发表于 2024-01-23 | 分类于 trump

2024 甲辰年 特朗普遇刺事件及其后续分析

阅读全文 »

transformer

发表于 2024-01-23 | 分类于 transformer

让我们用西天取经的故事来说明任务分配中的W(权重)和B(偏置):

阅读全文 »

人生随笔

发表于 2024-01-23 | 分类于 rebuild

1. 论管理

阅读全文 »

io_uring

发表于 2024-01-23 | 分类于 io_uring

io_uring 对比 epoll LT/ET:三种服务模式 假设你是一位餐厅经理,需要管理服务员为客人提供服务。

  • epoll LT (水平触发): 细致周到的服务
    • 服务模式: 服务员像贴身管家,不断询问客人是否需要服务,即使客人暂时不需要,也会过一段时间再次询问,确保客人得到周到的照顾。
    • 优点: 保证客人不会被遗漏,即使服务员忘记了之前的询问,也会在下次询问中弥补。
    • 缺点: 服务员花费大量时间重复询问,效率较低。 容易造成资源浪费。
阅读全文 »

gpt

发表于 2023-05-10 | 分类于 gpt

gpt 可以做什么.

1. 实现某个模块的代码

Mobile Preview

2. 实现SQL的自动化生成

Mobile Preview

3. gpt转midjourney

Mobile Preview

4. 情绪分析

Mobile Preview

5. 音频转文本

Mobile Preview

6. 金刚狼项目

一个自递归,自己修改代码,自己编译,根据报错信息,再修改

项目地址: https://github.com/biobootloader/wolverine 演示视频: https://twitter.com/bio_bootloader/status/1636880208304431104

6. auto-gpt

一个全自动AI 是基于chatgpt API实现,他会自己拆解任务,然后从网络获取信息,然后根据分析,再启动子模块,一步一步实现目标任务。

项目地址: https://github.com/Significant-Gravitas/Auto-GPT 演示视频: https://user-images.githubusercontent.com/70048414/232352935-55c6bf7c-3958-406e-8610-0913475a0b05.mp4

6. GPT参数

Mobile Preview Mobile Preview Mobile Preview

阅读全文 »

dao

发表于 2023-05-10 | 分类于 dao

修正和补充后的概念表

阅读全文 »

public-api

发表于 2019-02-25 | 分类于 public-api

Index

阅读全文 »

linux

发表于 2019-02-25 | 分类于 linux

1. linux_bcc-BPF_tracing_tools

Mobile Preview

2. linux_performance_benchmark_tools

Mobile Preview

3. linux_performance_observability_sar

Mobile Preview

4. linux_performance_observability_tools

Mobile Preview

5. linux_performance_observability_tools_perftools

Mobile Preview

6. linux_performance_tunning_tools

Mobile Preview

7. linux_static_performance_tools

Mobile Preview

8. linux_kernel_map

Mobile Preview

阅读全文 »

graphviz

发表于 2019-02-25 | 分类于 graphviz
digraph finite_state_machine {
    rankdir=LR;
    size="8,5"

    node [shape = doublecircle]; X;
    node [shape = point ]; A

    node [shape = circle];
    A -> X;
    X  -> Y [ label = "a" ];
    X  -> X  [ label = "b" ];
    Y -> X  [ label = "c" ];
    Y -> Z [ label = "d" ];
    Z -> Y [ label = "e" ];
    Z -> Z [ label = "f" ];
}
阅读全文 »

command

发表于 2019-02-25 | 分类于 The Art of Command Line

命令行的艺术

阅读全文 »

framework

发表于 2018-11-25 | 分类于 framework
  • 前言
    游戏领域框架
    

    Mobile Preview Mobile Preview

软件开发之小无相功实现流程

1. meta定制

(1) meta::protobuf

  • 抽取 protobuf idl可识别元素.
  • 使用 ctemplate 填充到模板元中去

(2) meta::cpp

  • 抽取 C++ 头文件可识别元素(全局数据,全局函数,全局函数参数,类,类成员函数,类成员函数参数,类成员变量)等等。
  • 使用 ctemplate 填充到模板元中去

2. dmpackage打包

  • 需要生成代码的 模板文件列表 并提供访问 PACKAGE_API

    3. PACKAGE_API

  • 通过dmpackage打包 产生的PACKAGE_API 访问 模板文件列表 并 将 模板文件 填充到模板元中去

    4. 模板引擎ctemplate

  • 翻译 meta 所有元素 并生成代码

结论:

  • 当我们想增加 输出功能时, 丰富 meta源 即可。比如 增加mysql数据源,配置文件数据源 皆可
阅读全文 »

wuxing

发表于 2018-10-25 | 分类于 wuxing

1. 马斯洛需求层次

Mobile Preview

生理需求 土 安全需求 金 社交需求 水 尊重需求 木 成就需求 火

阅读全文 »

server

发表于 2018-10-25 | 分类于 server

1. 游戏服务器开发审核

1.1. 基础开发注意点

1. 字符串格式化
2. stl容器: 迭代器, 谓词
3. 数据类型: 浮点数, 可预测长度类型
4. 数组越界, 内存copy, 堆栈控制
5. 逻辑分支是否清晰
6. 框架稳定可靠性

1.2. 协议

1. 协议是否有对应的统计(流量, 耗时, 最大包, 最大数量包)
2. 协议是否有加密处理, 防止包重放, 录用, 改包
3. 协议处理防御式编程

1.3. 数据存储

1. 数据存储机制及安全性问题
(1). command处理机制
(2). 结果集释放
(3). 多线程数据访问
(4). 是否性能瓶颈
(5). 即时性要求

1.4. 内存管理

1. 常规内存泄漏检测及处理
(1). windows, vld
(2). linux, gperftools Valgrind
2. 运行时内存泄漏检测及处理
(1). 使用工具检测常规内存泄露
(2). 使用对象池分配对象, 管理需要管理的内存

1.5. 多线程

1. 是否存在多线程隐患
(1) 多线程锁的正确使用方式
(2) 多线程设计上规避原则

1.6. 日志处理

1. 日志处理(同步或异步写, 分级, 分文件)
(1). 异步方式log丢失, 同步方式性能消耗
2. 重要事件记录 (例如: 充值记录, 物品流转记录)
(1). 数据采集, 问题分析

1.7. 异常及崩溃处理

1. 异常处理作用及意义
(1). 防止崩溃, 问题收集, 前置条件(资源回收guard实现)

2. dump/core文件无效时处理机制
(1). 执行权控制, 协议处理, 定时器, 脚本 

1.8. 配置文件及脚本模块

1. 配置文件格式检测及reload机制
(1) 防止格式错误产生问题, 增加战线
(2) reload 注意事项: 是否有存指针, 以及动态操作配置文件数据
2. 脚本格式检测及reload机制
(1) 脚本错误的提前检测
(2) 脚本数据归属权问题

1.9. 时区问题

1. 时区问题
(1). 标准时间与现实时间
2. 是否处理了夏令时/冬令时
(1). API设置标记

1.10. 单节点问题

1. 单节点问题到底在说什么
(1) 存在单节点服务器的情况, 开发者需要重点关注单节点服务器的稳定性为第一优先级

1.11. 压力测试与性能分析

1. 压力测试的作用及有效性
2. 性能分析的作用及有效性

1.12. 国际化

1. 国际化字符串处理原因及目的
(1) 国际化字符串处理 用于 解决项目发布海外多语种版本. 
(2) 标准就是在代码中不明文出现字符串, 所以将字符串统一放在一个配置中. 这样要发布其他语种版本, 仅仅需要翻译这个文件即可(github上面有专门翻译的组件, 可以简化常规翻译)

1.13. 第三方库问题

1. 第三方库的更新是否频繁 是否使用稳定版本
2. 性能及易用性指标
3. 是否经过项目检阅

1.14. 功能相关

1. 模块开关

1.15. 政策相关

1. 屏蔽字库
2. 收益系数

1.16. 开发环境定制

centos 7.6
gcc 8.3.1

1.17. 性能测试注意

tcp 单链路测试

1.  Intel(R) Core(TM) i7-4790 CPU @ 3.60GHz 8核心
[2019-09-02 22:40:15 985418] [24579][trace] QPS [44W/s] sio=[12.3798M/s] tio=[46.9796M] msg_size=[10 + 19]
[2019-09-02 22:40:16 984622] [24579][trace] QPS [44W/s] sio=[12.3511M/s] tio=[59.3308M] msg_size=[10 + 19]
[2019-09-02 22:40:17 984712] [24579][trace] QPS [44W/s] sio=[12.3681M/s] tio=[71.6988M] msg_size=[10 + 19]
[2019-09-02 22:40:18 985523] [24579][trace] QPS [44W/s] sio=[12.3992M/s] tio=[84.0981M] msg_size=[10 + 19]

2.  Intel(R) Xeon(R) CPU           E5620  @ 2.40GHz 16核心
[2019-09-03 10:39:35 284746] [1536][trace] QPS [23W/s] sio=[6.37766M/s] tio=[48.7478M] msg_size=[10 + 19]
[2019-09-03 10:39:36 284744] [1536][trace] QPS [23W/s] sio=[6.39464M/s] tio=[55.1424M] msg_size=[10 + 19]
[2019-09-03 10:39:37 284736] [1536][trace] QPS [23W/s] sio=[6.41073M/s] tio=[61.5532M] msg_size=[10 + 19]
[2019-09-03 10:39:38 285478] [1536][trace] QPS [23W/s] sio=[6.46986M/s] tio=[68.023M] msg_size=[10 + 19]

3. 结论 单链路对CPU Hz要求较高 影响较大

tcp 4链路测试

1.  Intel(R) Core(TM) i7-4790 CPU @ 3.60GHz 8核心
[2019-09-03 11:05:15 689859] [25034][trace] QPS [68W/s] sio=[19.0325M/s] tio=[433.947M] msg_size=[10 + 19]
[2019-09-03 11:05:16 689860] [25034][trace] QPS [68W/s] sio=[18.9445M/s] tio=[452.891M] msg_size=[10 + 19]
[2019-09-03 11:05:17 689860] [25034][trace] QPS [68W/s] sio=[18.9762M/s] tio=[471.867M] msg_size=[10 + 19]
[2019-09-03 11:05:18 689857] [25034][trace] QPS [68W/s] sio=[18.8398M/s] tio=[490.707M] msg_size=[10 + 19]

2.  Intel(R) Xeon(R) CPU           E5620  @ 2.40GHz 16核心
[2019-09-03 10:42:33 757748] [1617][trace] QPS [42W/s] sio=[11.883M/s] tio=[258.367M] msg_size=[10 + 19]
[2019-09-03 10:42:34 757749] [1617][trace] QPS [43W/s] sio=[12.1313M/s] tio=[270.498M] msg_size=[10 + 19]
[2019-09-03 10:42:35 757770] [1617][trace] QPS [43W/s] sio=[11.9836M/s] tio=[282.482M] msg_size=[10 + 19]
[2019-09-03 10:42:36 757747] [1617][trace] QPS [44W/s] sio=[12.2161M/s] tio=[294.698M] msg_size=[10 + 19]

3. 

阅读全文 »

rpc

发表于 2018-10-25 | 分类于 rpc

1. 常用C++ RPC库

https://github.com/baidu/sofa-pbrpc https://github.com/Tencent/phxrpc https://github.com/sogou/srpc https://github.com/TarsCloud/TarsCpp https://github.com/google/cpp-async-rpc https://github.com/rpclib/rpclib https://github.com/msgpack-rpc/msgpack-rpc https://github.com/grpc/grpc https://github.com/apache/brpc https://github.com/qicosmos/rest_rpc

阅读全文 »

network

发表于 2018-10-25 | 分类于 network

1. net

阅读全文 »

my-server

发表于 2018-10-25 | 分类于 my-server

1. 网络通讯

阅读全文 »

malloc

发表于 2018-10-25 | 分类于 malloc

1. 系统结构

系统下经典内存布局如上,程序起始的1GB地址为内核空间,接下来是向下增长的栈空间和向上增长的mmap地址。而堆地址是从底部开始,去除ELF、数据段、代码段、常量段之后的地址并向上增长。纵观各种内存布局,对于大内存各种malloc基本上都是直接mmap的。而对于小数据,则通过向操作系统申请扩大堆顶,这时候操作系统会把需要的内存分页映射过来,然后再由这些malloc管理这些堆内存块,减少系统调用。而在free内存的时候,不同的malloc有不同的策略,不一定会把内存真正地还给系统,所以很多时候,如果访问了free掉的内存,并不会立即Run Time Error,只有访问的地址没有对应的内存分页,才会崩掉。

阅读全文 »

lua

发表于 2018-10-25 | 分类于 lua

1. lua独立模块

https://github.com/brinkqiang/luapb

https://github.com/brinkqiang/luamysql

https://github.com/brinkqiang/luaredis

https://github.com/brinkqiang/luahttpclient

https://github.com/brinkqiang/luarpc

https://github.com/brinkqiang/luaxml

https://github.com/brinkqiang/luafilesystem

https://github.com/brinkqiang/luacrypto

https://github.com/brinkqiang/luarand

https://github.com/brinkqiang/luaprofiler

https://github.com/brinkqiang/luatimer

阅读全文 »

ai

发表于 2018-10-25 | 分类于 ai

ai图片生成

阅读全文 »

tortoisegit

发表于 2018-09-13 | 分类于 tortoisegit

1. tortoisegit 设置 ssh key

1. 命令行输入puttygen.exe

2. 点击Generate生成密钥

3. 保存private key: ssh_key.ppk 到某目录

4. 复制public key到 github ssh key中.

5. 配置tortoisegit git->remote->origin

6. 设置URL为仓库地址PUTTY KEY为 刚才生成的私钥ssh_key.ppk文件

7. 设置Network为TortolseGitPlink.exe

8. pull或push项目时 勾选Autoload Putty Key

阅读全文 »

sqlyog

发表于 2018-09-13 | 分类于 sqlyog

1. sqlyog 注意事项

sqlyog 右键单击导出单条数据 存在信息不全问题

工具会提示:
这在SQL语句中用最简单的形式保存了数据.附加表信息(索引,字符集,评论等)不会被保存.

如果您想进行数据备份, 则请使用"备份表作为SQL转储"

阅读全文 »

router

发表于 2018-09-13 | 分类于 router

1. router设计

1.1. 根据配置文件 转发协议到其他server

1.2. 根据 hashid hash到 server列表 中 具体server

1.3. 扩容 server

router接收到新的链接 向该server发送 初始化事件协议OnStart. 
该server收到事件初始化server. 回发start事件 并 开始提供服务.

1.4. 缩容 server时

router 向该server发送 OnStop. 该server处理stop事件 将需要处理的数据 回发router 让router将这些数据hash到其他server处理. 后执行server关闭事件.
阅读全文 »

python

发表于 2018-09-13 | 分类于 python

1. python学习笔记

1. python2.7 python310 关于msgpack实现接口有差异

2. python2.7 2个dict比较 自定义数据结构需要实现__eq__函数

class Fix32(object):
	__slots__ = ('value',)

	def __init__(self, value):
		self.value = value

	def __eq__(self, other):
		return other.value == self.value

	def __repr__(self):
		return 'Fix32(%s)' % self.value

	def __str__(self):
		return 'Fix32(%s)' % self.value

	def to_str(self):
		return 'Fix32(%s)' % self.value

	def form_str(self, str):
		self.value = float(str[6:-1])
阅读全文 »

linux

发表于 2018-09-13 | 分类于 Clinux

1. 查看静态库导出符号表

nm -g --defined-only 静态库.a
阅读全文 »

leetcode

发表于 2018-09-13 | 分类于 leetcode

1. leetcode

Mobile Preview

阅读全文 »

Go

发表于 2018-09-13

title: go description: categories:

  • go tags: —

  • 1. go语言游戏开发框架

    • 1.1. cellnet
    • 1.2. goworld
    • 1.3. leaf

1. go语言游戏开发框架

1.1. cellnet

传输协议支持: TCP、WebSocket 编码支持: protobuf、sproto、json、二进制协议goobjfmt RPC: 支持同步、异步RPC 日志管理: 日志管理

https://github.com/davyxu/cellnet

1.2. goworld

传输协议支持: TCP、KCP、WebSocket 编码支持: MessagePack RPC: 支持CS, SS RPC 存储: Entity存盘和载入 支持MongoDB和Redis 游戏机制: 场景 AOI 属性同步

https://github.com/xiaonanln/goworld

1.3. leaf

传输协议支持: TCP、websocket 编码支持: protobuf、json RPC: 模块间通讯 chanrpc

https://github.com/name5566/leaf
  • cellnet GoWorld leaf 传输协议支持 TCP、UDP、HTTP、WebSocket TCP、KCP、WebSocket TCP、websocket 编码支持 Google Protobuf、json、二进制协议Gryffindor Google Protobuf(未来支持)、 MessagePack protobuf、json 远程过程调用RPC 支持同步、异步RPC 支持 支持 日志管理 支持 支持 支持 热更新 支持 空间和实体 支持(AOI管理多个空间和实体) 分布式 支持 支持 流量压缩与加密 支持(客户端和服务器之间的流量) 支持并发量 一个多核高性能的主机上运行dispatcher可以支持100万以上的同时在线 数据库 MongoDB和Redis MongoDb 定时器 支持
阅读全文 »

cron

发表于 2018-09-13 | 分类于 cron

cron表达式详解   Cron表达式是一个字符串,字符串以5或6个空格隔开,分为6或7个域,每一个域代表一个含义,Cron有如下两种语法格式:

  (1) Seconds Minutes Hours DayofMonth Month DayofWeek Year

  (2)Seconds Minutes Hours DayofMonth Month DayofWeek

  

1. 结构

  corn从左到右(用空格隔开):秒 分 小时 月份中的日期 月份 星期中的日期 年份

2. 各字段的含义

字段 允许值 允许的特殊字符 秒(Seconds) 0~59的整数 , - * / 四个字符 分(Minutes) 0~59的整数 , - * / 四个字符 小时(Hours) 0~23的整数 , - * / 四个字符 日期(DayofMonth) 1~31的整数(但是你需要考虑你月的天数) ,- * ? / L W C 八个字符 月份(Month) 1~12的整数或者 JAN-DEC , - * / 四个字符 星期(DayofWeek) 1~7的整数或者 SUN-SAT (1=SUN) , - * ? / L C # 八个字符 年(可选,留空)(Year) 1970~2099 , - * / 四个字符   注意事项:

  每一个域都使用数字,但还可以出现如下特殊字符,它们的含义是:

  (1):表示匹配该域的任意值。假如在Minutes域使用, 即表示每分钟都会触发事件。

  (2)?:只能用在DayofMonth和DayofWeek两个域。它也匹配域的任意值,但实际不会。因为DayofMonth和DayofWeek会相互影响。例如想在每月的20日触发调度,不管20日到底是星期几,则只能使用如下写法: 13 13 15 20 * ?, 其中最后一位只能用?,而不能使用,如果使用表示不管星期几都会触发,实际上并不是这样。

  (3)-:表示范围。例如在Minutes域使用5-20,表示从5分到20分钟每分钟触发一次

  (4)/:表示起始时间开始触发,然后每隔固定时间触发一次。例如在Minutes域使用5/20,则意味着5分钟触发一次,而25,45等分别触发一次.

  (5),:表示列出枚举值。例如:在Minutes域使用5,20,则意味着在5和20分每分钟触发一次。

  (6)L:表示最后,只能出现在DayofWeek和DayofMonth域。如果在DayofWeek域使用5L,意味着在最后的一个星期四触发。

  (7)W:表示有效工作日(周一到周五),只能出现在DayofMonth域,系统将在离指定日期的最近的有效工作日触发事件。例如:在 DayofMonth使用5W,如果5日是星期六,则将在最近的工作日:星期五,即4日触发。如果5日是星期天,则在6日(周一)触发;如果5日在星期一到星期五中的一天,则就在5日触发。另外一点,W的最近寻找不会跨过月份 。

  (8)LW:这两个字符可以连用,表示在某个月最后一个工作日,即最后一个星期五。

  (9)#:用于确定每个月第几个星期几,只能出现在DayofWeek域。例如在4#2,表示某月的第二个星期三。

3. 常用表达式例子

  (0)0/20 * * * * ? 表示每20秒 调整任务

  (1)0 0 2 1 * ? 表示在每月的1日的凌晨2点调整任务

  (2)0 15 10 ? * MON-FRI 表示周一到周五每天上午10:15执行作业

  (3)0 15 10 ? 6L 2002-2006 表示2002-2006年的每个月的最后一个星期五上午10:15执行作

  (4)0 0 10,14,16 * * ? 每天上午10点,下午2点,4点

  (5)0 0/30 9-17 * * ? 朝九晚五工作时间内每半小时

  (6)0 0 12 ? * WED 表示每个星期三中午12点

  (7)0 0 12 * * ? 每天中午12点触发

  (8)0 15 10 ? * * 每天上午10:15触发

  (9)0 15 10 * * ? 每天上午10:15触发

  (10)0 15 10 * * ? * 每天上午10:15触发

  (11)0 15 10 * * ? 2005 2005年的每天上午10:15触发

  (12)0 * 14 * * ? 在每天下午2点到下午2:59期间的每1分钟触发

  (13)0 0/5 14 * * ? 在每天下午2点到下午2:55期间的每5分钟触发

  (14)0 0/5 14,18 * * ? 在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发

  (15)0 0-5 14 * * ? 在每天下午2点到下午2:05期间的每1分钟触发

  (16)0 10,44 14 ? 3 WED 每年三月的星期三的下午2:10和2:44触发

  (17)0 15 10 ? * MON-FRI 周一至周五的上午10:15触发

  (18)0 15 10 15 * ? 每月15日上午10:15触发

  (19)0 15 10 L * ? 每月最后一日的上午10:15触发

  (20)0 15 10 ? * 6L 每月的最后一个星期五上午10:15触发

  (21)0 15 10 ? * 6L 2002-2005 2002年至2005年的每月的最后一个星期五上午10:15触发

  (22)0 15 10 ? * 6#3 每月的第三个星期五上午10:15触发

  注:

  (1)有些子表达式能包含一些范围或列表

  例如:子表达式(天(星期))可以为 “MON-FRI”,“MON,WED,FRI”,“MON-WED,SAT”

“*”字符代表所有可能的值

  因此,“”在子表达式(月)里表示每个月的含义,“”在子表达式(天(星期))表示星期的每一天

  “/”字符用来指定数值的增量   例如:在子表达式(分钟)里的“0/15”表示从第0分钟开始,每15分钟 在子表达式(分钟)里的“3/20”表示从第3分钟开始,每20分钟(它和“3,23,43”)的含义一样

  “?”字符仅被用于天(月)和天(星期)两个子表达式,表示不指定值   当2个子表达式其中之一被指定了值以后,为了避免冲突,需要将另一个子表达式的值设为“?”

  “L” 字符仅被用于天(月)和天(星期)两个子表达式,它是单词“last”的缩写   但是它在两个子表达式里的含义是不同的。   在天(月)子表达式中,“L”表示一个月的最后一天   在天(星期)自表达式中,“L”表示一个星期的最后一天,也就是SAT

  如果在“L”前有具体的内容,它就具有其他的含义了

  例如:“6L”表示这个月的倒数第6天,“FRIL”表示这个月的最一个星期五   注意:在使用“L”参数时,不要指定列表或范围,因为这会导致问题

阅读全文 »

co

发表于 2018-09-13 | 分类于 co

1. 协程

有史可考的起源,最早应该是高德纳1960年写cobol编译器时提出的。当时的cobol程序被写在一个磁带上,而磁带不支持随机读写,只能顺序读,而当时的内存又不可能把整个磁带的内容都装进去。所以一次读取没编译完就要再从头读…高德纳为此设计了一个只用读一次(one-pass)就能编译完成的编译器,在此时设计提出了协程的概念。

但协程终究没有火起来。主要原因在于和当时(事实上,也包括今天)主流的自顶而下的设计理念不合。自顶而下的设计理念要求你先对问题进行抽象,进行层次分解,建模,然后再进行具体实现,强调高内聚低耦合,强调模块完成自己所在抽象层次的任务并不多干预其他事情。这使得互不相干的多线程模型变得很自然,而协程则强调了模块间的耦合,模块间必须相互熟悉,才知道谁在什么时候该让出时间片,谁在什么时候该抢占时间片。高德纳的one-pass编译器事实上就是词法分析语法分析完全混在一块儿,低内聚高耦合的典范(事实上词法分析语法分析分离本身就是自顶而下设计的优秀样例)

今天协程之所以又火了起来的原因在于,人们把协程调度的逻辑缩减为单一的“等io,让出,io完毕,重启”,在此基础上人们发现协程的方式能解决多线程环境下很多代码逻辑“混乱”(本质上就是更贴合线程模型的思维方式,但对很多人而言这就是混乱难懂的毛线球)的问题,使得线性书写多线程代码成为了可能。

与自顶而下相对应的,是自底而上的抽象方式。这实际上是协程的思想方式。自底而上实际上说白了,就是要做什么,别先抽象,不管三七二十一,先把业务实现了,然后再一步步考虑如何将重复的部分,类似的部分,封装起来从实现转向抽象的方式。这种思路下使用协程就会很自然,因为你从一开始就在考虑具体实现,考虑耦合。

两种抽象方式本身没有高下之分,但自顶而下的方式可以让除了架构师以外的人都不用考虑任何抽象层次的问题,同时只要一开始抽象好后续基本不会有太多更新,因此更适合一个大佬带一群菜鸡的公司,而自底而上则要求每个工程师都有优秀的抽象能力,同时因为业务的扩展变更,抽象层次会经常变动,这要求整个开发团队要有能力抽象并时刻理解接受其他同事提出的抽象,这对整个开发团队的要求是比较高的,因此协程不火也很好理解了。

今天使用协程基本上只要遵循面向io调度即可,但如果有时间,有精力,可以从协程的角度多考虑考虑代码的设计实现。你会发现一个新天地。

阅读全文 »

app

发表于 2018-09-13 | 分类于 app

1. app运营

阅读全文 »

C++

发表于 2018-09-13 | 分类于 C++

1. 格式化[热点]

(1) 格式化一定要使用统一的解决方案(占位符方式) 可以规避掉大多数问题.(即使是行业中水平很高的人也在这个上面栽过跟头)
(2) fmt

2. 内存

(1) 内存泄露认知 (一次性泄漏 , 常规性泄漏 , 偶发性泄漏 , 运行时泄漏)
(2) 使用内存池解决内存碎片问题, 使用对象池解决内存泄漏问题.
(3) 内存分配失败默认处理
(4) 可以用工具检测出来的内存泄漏不是内存泄露, 即我们主要要解决的内存泄漏是: 运行时泄漏
(5) gperftools

3. 日志[热点]

(1) debug不能解决所有问题, 但是日志可以.
(2) 日志的写入应该是同步的, 日志分级, 分文件.
(3) 根据项目情况选择合适的日志组件.(glog让我明白 从设计上解决问题的重要性)
(4) dmlog

4. 线程

(1) io, 操作无关, 高耗, 低锁 使用线程效率较高
(2) 设计上规避多读多写.
(3) 积极使用无锁队列.
(4) 多线程的精髓为分时 理解了分时就理解了多线程
(5) C++11 std::thread

5. 锁

注意: 锁的强度越高 效率越低, 生命周期越长 效率越低 选择合适的锁(优先选择高性能的锁)
(1) wait-free -> ringbuffer 对使用环境有要求 实现难度较大
(2) lock-free -> linux 内核中广泛应用, wait-free的算法都是lock-free的
(3) obstruction-free -> 乐观锁 -> lock-free 的算法都是obstruction-free的
(4) atomic -> std::atomic
(5) lockless-based -> std::mutex std::lock_guard
(6) lock-based -> semaphore

6. 网络[热点]

(1) 调整运行帧数为合理数值
(2) 统计协议带宽占用率
(3) 统计协议处理耗时
(4) 心跳 要自己起一个timer主动发. 防止可能的隐患.
(5) 协议 选择合适的协议 性能高->低 (二进制 > protobuf > xml) 流量低->高 (protobuf > 二进制 > xml)
(6) 网络库 asio libevent libuv libev libzmq (7) 网络引擎性能本质点在网络事件处理单帧所耗时间 (8) 网络引擎优化要点 [1] 减少cp [2] 减少锁的粒度. [3]减少api调用次数.

7. 协议

(1) 制定统一协议标准 (2) protobuf(idl重要性) (3) luapb (动态协议导入, 静态协议导入, encode, decode, id2name, name2id, table2json, json2table, table2xml, xml2table, xml2json, json2xml, table2yaml, yaml2table)

8. 时钟

(1) 使用精度与预计精度的统一, 精度分级.
(2) 影响时钟性能的因素, 所使用的数据结构, 所使用的时间API的精度.
(3) 时钟的实现让我理解了分时, 从而在多线程问题上没有再犯过错误.
(4) dmtimer

9. db(mysql)

(1) 自动化.
(2) 逻辑简单稳定.
(3) 设置好主外键, 能明文的最好明文, 方便运维
(4) innodb [注意blob限制] myisam[有性能要求]
(5) 统一使用utf8字符集
(6) 避免使用扩展sql 方便将来移植
(7) 创意: 存储格式为xml格式 使用mysql提供的xpath API 从而解决了无尽的运维需求的问题(这里性能会有降低)
(8) dmorm
(9) dmgen4sql

10. 脚本(lua)

(1) 自动化.
(2) 功能全部由C/C++实现, 数据结构也由C/C++提供
(3) lua只负责调用, 不使用本身lua的数据结构(为了解决lua reload数据归属问题), 不实现复杂逻辑(简单原则).
(4) dmlua

11. 配置文件[热点]

(1) 自动化.
(2) 文件格式选择 使用者角度 (csv > xml > bin) 开发者角度(xml > csv > bin) (3) dmconfig(json,csv,xml,xlsx,markdown)

12. 效率与优化

(1) 不写低效的代码, 不提前优化
(2) 不使用不成熟的优化手段
(3) 做性能评测(性能评测另一个用途是用于迅速熟悉一个新的模块或者系统) 进行热点定位
(4) 效率是一个综合的东西. 资源不对等不要比效率.
(5) 最终决定效率的是所使用的数据结构

13. 编码风格

(1) 统一标准 简单明确. 可参考google C++编码规范.
(2) 有新同事加入团队一定要安排几次review.(提升最低标准, 熟悉编码规范)
(3) 对性能有需求的地方尽量使用C风格实现.
(4) 规避使用未定义行为编码
(5) 编写有质感的代码. 当问题出现时 review时

LV1. 不知道有没有问题(无法定位问题)
LV2. 可能有问题(模糊定位问题)
LV3. 有问题(准确定位问题)
LV4. 没问题( 理想 )

14. 编码格式

(1) 想要跨平台的使用相同的代码,请使用UTF-8 with BOM编码,msvc 增加 /utf-8 选项.

15. debug的方式

(1) review [前置条件 13.4][修炼法则] (2) debug[快速法则]
(3) log[通用法则]

16. 国际化

(1) 自动化.
(2) 使用统一的解决方案, 规避直接在代码中直接使用字符串明文.
(3) dmgen4error

17. 单元测试

(1) 构建单元测试(gtest)
(2) dmgen4gtest

18. 第三方库

(1) 选择 稳定 熟悉的库
(2) 选择更新频率较低的库
(3) 对先进的解决方案做二次封装, 减少维护成本.(造轮子的过程中心得)

19. 数据类型

(1) 尽量规避浮点数的使用
(2) 优先使用符号数, 例(int32, uint32 优先使用int32)
(3) 使用可预测数据类型,例(uint8, uint16, uint32, uint64)

20. C++学习历程

  • C++ 学习曲线:
    LEVEL1 C++ 不好(内容太多)
    LEVEL2 C++ 好(使用方便)
    LEVEL3 C++ 不好(细节太多 容易出错)
    LEVEL4 C++ 好(掌握细节)
    LEVEL5 C++ 不好(效率太差)
    LEVEL6 C++ 好(选择性的使用)
    LEVEL7 C++ 不好(C的回归)

  • C++ 学习路径:
    Level 1: C++ 初学者 评判标准: 了解 C++ 基本语法,能够编写简单的程序,例如控制台输出、变量使用、简单运算等。 用例: 编写简单的 “Hello World” 程序,进行基础的数值计算。 Level 2: C++ 熟练者 评判标准: 掌握 C++ 核心语法,熟悉常用数据结构和算法,能够编写结构化的程序,例如分支、循环、函数等。 用例: 实现简单的排序算法,编写学生管理系统等小型程序。 Level 3: C++ 应用者 评判标准: 理解面向对象编程 (OOP) 的概念,能够使用类、继承、多态等特性,编写面向对象的程序。 用例: 设计并实现简单的游戏,开发图形界面应用程序。 Level 4: C++ 专家 评判标准: 掌握 C++ 高级特性,例如模板、异常处理、运算符重载等,能够编写高质量、可复用的代码。 用例: 开发高性能库或框架,设计并实现复杂的数据结构和算法。 Level 5: C++ 大师 评判标准: 深入理解 C++ 内存管理机制,能够进行底层优化,编写高性能、高效的代码。 用例: 开发实时系统、高并发应用,对现有代码进行性能分析和优化。 Level 6: C++ 架构师 评判标准: 能够根据需求选择合适的 C++ 特性,设计并实现大型软件架构,并能进行跨平台开发。 用例: 设计并实现分布式系统、云平台等复杂软件项目。 Level 7: C++ 悟道者 评判标准: 对 C++ 有着深刻的理解,洞悉其设计哲学和发展历程。 能够灵活运用 C++ 和 C,根据项目需求选择最佳方案。 积极参与 C++ 社区,推动 C++ 语言的发展。 用例: 编写高性能、可移植的库或框架。 参与 C++ 标准制定或开源项目贡献。 指导和培养下一代 C++ 开发者。

  • C++ 学习方式: 自学: 通过书籍、在线课程、教程等资源进行自主学习。 学校教育: 在大学或培训机构接受系统性的 C++ 教育。 实践项目: 通过参与实际项目,在实践中学习和提升 C++ 技能。 社区交流: 加入 C++ 社区,与其他开发者交流学习经验,互相帮助。
  • C++ 学习内容: 语言基础: 语法、数据类型、运算符、控制流等。 标准库 (STL): 容器、算法、迭代器等。 面向对象编程 (OOP): 类、继承、多态、封装等。 模板: 函数模板、类模板、模板元编程等。 内存管理: 指针、动态内存分配、智能指针等。 异常处理: try-catch-throw 机制,异常安全等。 并发编程: 线程、互斥锁、原子操作等。 网络编程: Socket 编程、网络协议等。 图形界面编程: 使用 Qt、wxWidgets 等库进行图形界面开发。
  • C++ 学习目标: 兴趣爱好: 出于对编程的热爱,想要学习 C++ 并探索其可能性。 职业发展: 希望成为 C++ 开发工程师,从事相关领域的软件开发工作。 学术研究: 进行 C++ 相关的学术研究,例如编译器开发、语言设计等。
  • C++ 学习挑战: C++ 语言本身的复杂性: C++ 语法庞大,特性繁多,学习曲线陡峭。 内存管理的难度: 手动管理内存容易出错,需要开发者具备较强的责任心和调试能力。 新标准的不断更新: C++ 标准不断演进,开发者需要持续学习新特性。
  • C++ 学习建议: 循序渐进,打好基础: 从基础语法开始,逐步深入学习 C++ 的各个方面。 多实践,多练习: 将所学知识应用到实际项目中,通过实践来巩固和提升技能。 阅读优秀的 C++ 代码: 学习其他开发者优秀的代码风格和设计模式。 积极参与 C++ 社区: 与其他开发者交流学习经验,互相帮助,共同进步。

21. 架构

(1) 简单
(2) 稳定
(3) 易排查, 易扩展
(4) 可拆解

22. 基础素养

(1) 钻研精神, 勤学善问, 有好奇心
(2) 积极向上的态度, 创造性的思维
(3) 团队协作精神
(4) 谦虚谨慎 不骄不躁 工匠精神
(5) 写出高质量的代码(稳定, 易读, 规范, 易维护, 专业)

23. 理解的角度

观察 (细节)
看 (大局)
感受 (发现规律)
洞见 (点爆发)
所谓理解就是要理解模式

24. 问题理解层级

(1) 发现问题
(2) 解决问题
(3) 规避问题
(4) 消灭问题
(5) 创造问题

25. 问题规避原则

(1) 设计上规避(例如: glog在设计上面使用多线程独立文件来规避单文件加锁问题)
(2) 约定规避(例如: 约定使用int64放大若干倍数来替代浮点数)
(3) 实现规避(例如: 在高性能要求的场景, 使用纯C的数据结构来替代复杂的C++数据结构)
(4) 潜规则规避(例如: 利用平台语言或者数据结构的特性 来规避问题)

26. 如何消灭问题

(1) 编码规范
(2) 数据驱动开发
(3) 代码生成技术
(4) 为什么消灭了问题? 人是最不可控的, 减少了人本身对事物的影响.

27. 是否需要学习多种语言

理解 “在一种语言上编程” 和 “深入一种语言编程” 的区别(惯用法则)

28. 编程方法论

28.1. 防御式编程

28.2. 契约式编程

29. C++注意事项

Mobile Preview

30. 编程感悟

程序的精髓在于数据结构的组织与控制.
稳定的需求是产品质量的基石.
真正的需求,潜藏在人性因素与其他一系列因素的相互关联之中.

31. 常用书籍

https://github.com/brinkqiang/dmdoc

32. 开源定制库

32.1. 模块化定制版 dump文件生成

https://github.com/brinkqiang/dmbreakpad

32.2. 模块化定制版 命令行参数解析析

https://github.com/brinkqiang/dmflags

32.3. 基于 iconv 编码转换 实现自动化探测编码格式 仅需指定输出编码格式

https://github.com/brinkqiang/dmiconv

32.4. 模块化定制版 curl

https://github.com/brinkqiang/dmcurl

32.5. 模块化定制版 fmtlib C++格式化库库

https://github.com/brinkqiang/dmformat

32.6. 模块化定制版 google性能分析库库

https://github.com/brinkqiang/dmgperftools

32.7. 模块化定制版 log库, 基于spdlogg

https://github.com/brinkqiang/dmlog

32.8. 模块化定制版 protobuf 支持3.7/3.14版本本

https://github.com/brinkqiang/dmprotobuf

32.9. 模块化定制版 C++ csv读写库库

https://github.com/brinkqiang/dmcsv

32.10. 模块化定制版 C++ xml读写库库

https://github.com/brinkqiang/dmxml

32.11. 模块化定制版 C++ json读写库库

https://github.com/brinkqiang/dmjson

33. 个人开源库

33.1. 高性能定时器, 支持cron表达式

https://github.com/brinkqiang/dmtimer

33.2. C++ ORM

https://github.com/brinkqiang/dmorm

33.3. C++/lua引擎 基于toluapp

https://github.com/brinkqiang/dmlua

33.4. C++/lua引擎 基于sol2 分析C++头文件实现自动化导出

https://github.com/brinkqiang/dmsolpp

33.5. C++ 错误码自动生成器器

https://github.com/brinkqiang/dmgen4error

33.6. C++ 协议派发生成器器

https://github.com/brinkqiang/dmgen4pbmsg

33.7. C++ config文件自动化生成器 支持json, xml, csv, md等格式

https://github.com/brinkqiang/dmconfig

33.8. C++ SQL语句生成器

https://github.com/brinkqiang/dmsql

33.9. C++ SQL表库自动化对比 差异SQL生成器

https://github.com/brinkqiang/dmsqldiff

33.10. C++ 协议头通用处理库

https://github.com/brinkqiang/dmmsgparser

33.11. C++ 唯一ID生成库

https://github.com/brinkqiang/dmsnowflake

C++ 开发中常见问题的复杂度、影响范围和解决难度,将其分为 1-10 级。以下是一个可能的分级方案:

您是对的,将“设计模式的灵活组合与变通应用”放在Level 9确实可能对于“理解和应用单个常见设计模式”而言过高了。设计模式本身的学习曲线可以比较平缓,但其在复杂系统中的精妙组合、权衡取舍以及针对特定问题的“变通”则非常考验经验和架构能力。

为了更准确地反映不同层次的难度,我们可以将“设计模式”的掌握拆分到不同级别:

  1. 基础理解和应用:了解常见模式的意图、结构和基本用法。
  2. 综合与高级应用:在复杂场景下组合使用模式,理解其深层影响,并能对其进行适配和创新。

让我们基于此,并对整个列表进行一次更全面的审视和调整,力求各级别内部的难度和所需经验更加一致。

调整后的C++问题难度分级方案:

Level 1 - 基础语法 & 核心STL使用

  • 变量作用域、指针与引用混淆、值/指针/引用传递错误
  • std::vector, std::map, std::string 等核心容器的错误使用(如不当的插入、访问)
  • 对 const 正确性的忽视
  • 基本的头文件管理与声明/定义分离概念不清

复杂度: 2/10 | 影响范围: 3/10 (局部bug) | 解决难度: 2/10

  • 说明: C++入门最常见的绊脚石,通常导致编译错误或运行时简单崩溃。

Level 2 - 现代C++特性入门 & STL进阶

  • std::shared_ptr, std::unique_ptr 的错误使用(如循环引用、不当释放)
  • STL容器迭代器失效问题(如 erase() 操作后未更新迭代器)
  • std::move, std::forward 的误用或不理解其场景
  • 右值引用、移动语义的基本概念混淆
  • lambda 表达式的捕获列表问题

复杂度: 3/10 | 影响范围: 4/10 (性能、资源泄漏) | 解决难度: 3/10

  • 说明: 开始接触C++11及以后特性,对资源管理和性能有初步影响。

Level 3 - 面向对象设计原则 & 常见设计模式

  • 类设计违反单一职责、开闭原则等
  • 继承与组合的滥用,多态的错误实现
  • 理解并应用常见GoF设计模式 (如 Singleton, Factory Method, Abstract Factory, Observer, Decorator, Strategy, Adapter)
  • std::function, std::bind 的使用
  • std::optional, std::variant 等工具类的应用场景

复杂度: 4/10 | 影响范围: 5/10 (模块可维护性、扩展性) | 解决难度: 4/10

  • 说明: 关注代码组织和模块化设计。正确应用设计模式能提升代码质量,但误用也会引入不必要的复杂性。

Level 4 - 线程与并发编程基础

  • std::thread, std::mutex, std::condition_variable 的基本使用与协作
  • 简单数据竞争、忘记加锁/解锁导致的死锁
  • std::atomic 变量的基本使用(如原子计数器)
  • std::future, std::promise, std::async 的基本用法与陷阱

复杂度: 5/10 | 影响范围: 7/10 (系统稳定性、数据一致性) | 解决难度: 5/10

  • 说明: 并发编程的入门,问题通常难以复现和调试。

Level 5 - 内存管理 & 初级底层优化

  • new/delete 与 malloc/free 的混用、内存泄漏、悬垂指针
  • 对齐、padding 问题导致的性能或兼容性问题
  • 内存分析工具 (Valgrind, AddressSanitizer) 的使用与报告解读
  • placement new 的理解与特定场景应用
  • 自定义简单的固定大小 memory pool 或 arena allocator

复杂度: 6/10 | 影响范围: 6/10 (性能、稳定性) | 解决难度: 6/10

  • 说明: 深入理解C++内存模型,开始尝试手动优化内存分配。

Level 6 - 网络编程与I/O模型

  • boost::asio (或类似库) 的异步模型理解 (io_context, strand, handler)
  • 同步/异步TCP & UDP通信中的常见错误 (粘包、连接管理、错误处理)
  • 文件流 (std::ifstream, std::ofstream) 的高级用法与错误处理
  • 理解 select, poll, epoll (或 kqueue, IOCP) 的工作原理及在C++中的应用

复杂度: 6/10 | 影响范围: 7/10 (系统吞吐量、响应性) | 解决难度: 7/10

  • 说明: 涉及操作系统I/O模型,是构建高性能服务的核心。

Level 7 - C++模板元编程(TMP)与高级泛型编程

  • SFINAE (Substitution Failure Is Not An Error) 的理解与应用
  • constexpr if, template<auto>, variadic templates 的高级技巧
  • CRTP(Curiously Recurring Template Pattern)的深入应用与变种
  • 自定义类型萃取 (type traits) 与 std::enable_if 的复杂组合
  • Concepts (C++20) 的设计与应用

复杂度: 8/10 | 影响范围: 6/10 (库设计、编译期优化、代码可读性) | 解决难度: 7/10

  • 说明: 利用编译器在编译期进行计算和代码生成,编写高度通用和高效的库,但调试和理解难度大。

Level 8 - 高级并发与底层同步原语

  • 复杂的线程同步问题:ABA问题、活锁、伪共享 (false sharing)
  • std::atomic 的内存序 (memory_order) 的深刻理解与应用
  • 实现自定义、生产级的线程安全数据结构 (如 blocking queue, thread pool)
  • std::shared_mutex 等高级同步原语的正确使用
  • 理解并初步实践 lock-free 编程思想 (如 lock-free stack 的简单实现)

复杂度: 8/10 | 影响范围: 9/10 (极致性能、系统正确性) | 解决难度: 8/10

  • 说明: 对并发模型的理解达到专家级别,开始探索无锁等高阶技术。

Level 9 - 复杂系统架构、构建与底层交互

  • 设计模式的灵活组合与变通应用,以解决大型系统的特定架构问题
  • Event Loop, Reactor, Proactor 等大规模并发服务架构模式的深度设计与实现
  • ECS (Entity-Component-System) 等特定领域架构模式的实践
  • CMake 复杂项目管理 (大型依赖、交叉编译、模块化构建)
  • 链接过程深层问题 (ODR 违规的隐晦场景, 符号版本控制, visibility)
  • LTO (链接时优化), PGO (Profile-Guided Optimization) 的原理与应用
  • 操作系统底层API (mmap, shm_open, syscalls) 的高级封装与应用

复杂度: 9/10 | 影响范围: 9/10 (系统整体性能、可维护性、可扩展性) | 解决难度: 9/10

  • 说明: 关注整个系统的设计和构建,涉及多方面知识的综合运用,要求开发者具备架构师的视野。

Level 10 - 极致优化、自定义编译器/运行时与前沿技术

  • 实现高性能、可扩展的自定义STL兼容 allocator
  • 开发与调试复杂的、生产级的 lock-free 数据结构 (如 lock-free queue, lock-free hash map)
  • C++ 与 Assembly 的深度混合编程 (手写汇编优化热点路径, intrinsics 的极致运用)
  • RDMA, DPDK, XDP/eBPF 等内核旁路/零拷贝技术的深度应用
  • LLVM/Clang 插件开发,进行代码分析、转换或语言扩展
  • 构建或集成自定义JIT编译器

复杂度: 10/10 | 影响范围: 10/10 (特定领域的性能突破或功能创新) | 解决难度: 10/10

  • 说明: C++金字塔的顶端,通常是特定领域的专家,推动技术边界。
阅读全文 »

SecureCRT

发表于 2018-09-05 | 分类于 SecureCRT

SecureCRT 常见快捷键问题 某些映射的快捷键 在不同平台会产生不同的差异性

阅读全文 »

lang

发表于 2018-09-05 | 分类于 lang
理解 "在一种语言上编程" 和 "深入一种语言编程" 的区别
  • 1. 如何快速学习一门新的语言
    • 1.1. 基本语法
    • 1.2. 开发环境搭建及框架相关
    • 1.3. 标准库熟悉
    • 1.4. 字符串操作
    • 1.5. 文件(bin, json, xml, csv, ini)操作
    • 1.6. 时间处理
    • 1.7. 多线程及协程
    • 1.8. 网络相关
    • 1.9. 数据库相关
    • 1.10. 协议相关
    • 1.11. 脚本模块
    • 1.12. 日志处理
    • 1.13. 内存管理
    • 1.14. 异常及崩溃处理
    • 1.15. 性能分析方法
    • 1.16. 第三方优秀模块

1. 如何快速学习一门新的语言

1.1. 基本语法

1.2. 开发环境搭建及框架相关

1.3. 标准库熟悉

1.4. 字符串操作

1.5. 文件(bin, json, xml, csv, ini)操作

1.6. 时间处理

1.7. 多线程及协程

1.8. 网络相关

1.9. 数据库相关

1.10. 协议相关

1.11. 脚本模块

1.12. 日志处理

1.13. 内存管理

1.14. 异常及崩溃处理

1.15. 性能分析方法

1.16. 第三方优秀模块

阅读全文 »

cpu

发表于 2018-09-05 | 分类于 cpu

CPU 操作的周期消耗一览

| 操作类型 | CPU 时间片(周期数) | |——————————|———————————-| | 简单寄存器操作(ADD, OR等) | 1 | | 内存写入 | 3-5 | | 延迟规避:整数与浮点之间切换 | 0-3 | | if 判断正确分支 | 1-2 | | 浮点/向量加法 | 1-3 | | 乘法(整数/浮点/向量) | 1-7 | | 返回错误与检查 | 1-7 | | L1 缓存读取 | 4-5 | | TLB Miss | 7-300 | | L2 缓存读取 | 12-15 | | if 判断错误分支(预测错误) | 15-25 | | 浮点除法 | 10-50 | | 128-bit 向量除法 | 10-70 | | 原子操作/CAS | 20-50 | | C 语言函数直接调用 | 10-20 | | 整数除法 | 20-50 | | C 语言函数间接调用 | 20-50 | | C++ 虚函数调用 | 20-40 | | L3 缓存读取 | 40-100 | | 主内存读取 | 200-400 | | NUMA:不同 Socket 的原子操作/CAS | 200-500 | | NUMA:不同 Socket 的 L3 读取 | 150-300 | | 分配与回收(小对象) | 200-500 | | NUMA:不同 Socket 的主内存读取 | 500-1000 | | 内核调用 | 1000-5000 | | 线程上下文切换(直接成本) | 2000-5000 | | C++ 异常抛出与捕获 | 5000-10000 | | 线程上下文切换(总成本,包括缓存失效) | 10000 - 1,000,000 |

阅读全文 »

codereview

发表于 2018-08-26 | 分类于 codereview

Mobile Preview

codereview

1. 常见代码问题

1.1. stl容器使用问题

1.2. 谓词使用问题

1.3. 空值判断

1.3.1. 常量前置

1.4. 异常捕获

1.5. 低性能编码

1.6. 代码修改影响范围

1.7. 原始逻辑兼容问题

1.8. 缺乏关键日志

1.9. 错误码规范

1.10. 参数安全性检测

1.11. 参数过多

1.12. 同名文件

1.13. 数组越界

1.14. 多重条件

1.15. 跨语言跨系统交互

2. 维护性问题

2.1. 硬编码

2.1.1. 魔数问题

2.1.2. 临时逻辑

2.1.3. 写死逻辑

2.2. 重复代码

2.3. 逻辑数据耦合度

2.4. 方法修改

2.4.1. 原逻辑修改风险注意

2.4.2. 增加新的接口避免互相影响

2.5. 业务之间互相耦合

2.6. 代码层次

2.7. 不用的代码

2.8. 全局变量

2.8.1. 多线程问题

2.8.2. 函数重入

2.9. 缺乏注释

2.9.1. 关键特殊代码注释

3. 复杂问题

3.1. 并发

3.1.1. 死锁

3.1.2. 线程生命周期控制

3.2. 事务控制

3.2.1. 事务性逻辑判断

3.3. SQL优化

3.3.1. 索引

3.3.2. 查询条件

3.3.3. 联合查询

3.4. 安全问题

3.4.1. 加密存储

3.4.2. 权限控制

3.5. 设计问题

3.5.1. 性能问题

3.5.2. 扩展性问题

4. 习惯问题

4.1. 命名问题

4.2. 初始化问题

4.3. 风格统一问题

4.4. 类型转换问题

4.5. 流程分支是否清晰

4.6. 容器遍历的结构更新

4.7. 单行调用括号过多

4.8. 无效日志

4.9. 数据结构层级太多

4.10. 对象作用域

5. 方法论

5.1. 防御式编程

5.2. 契约式编程

5.3. 代码稳定性评估

阅读全文 »

谦虚的境界

发表于 2018-07-12 | 分类于 modest
  • 前言
第一次在易经中看到谦卦, 突然感觉就是这个就是我一生需要去追寻的.
为什么需要谦. 因为内心的傲气. 如果没有办法去压制内心的傲气 就无法继续提升自己.
突然理解了 金庸先生 小说中 说的 每一种武功 都需要一种 佛法去化解.
谦卦是易经六十四卦中唯一一个全吉之卦象. 所代表的不是胜利. 而是不败. 你我共勉之.

1. 谦虚的境界

第一种境界:被动谦。什么是被动谦?即有意识有限制的谦虚,把谦虚当作座佑铭,时刻牢记,养成习惯。被动谦虚需要时刻提醒自已,限制自己,约束自己,处于谦虚的低级层次。日积月累,养成了谦虚的良好习惯,一旦哪一天什么限制都没有了,还能保持谦虚的行为,不违反谦虚的准则,并能不断取得成绩,不断成功,我们说谦虚就上升到了第二种境界。

第二种境界:赞美谦。就是当你表现得很谦虚,工作也做得很好时,有人开始赞美你,说你不但勤劳、有责任,还很有能力,做人也很谦虚。这时候你要小心了,这些话很容易把人害死。如果你真听信了这些,觉得自己就是跟别人不一样,领导就应该对你另眼看待,应该特殊提拔你才对,那你就不会再有什么发展了。要记住,工作好是你的本分,不需要人家给你激励,那是你应该干的。如果你是为了激励而这样做,你的心态就已经不正了,就是有所贪图了。工作做得好,人家一定会赞美,但你不要受这个影响。受到表扬而没有什么表示,说明这个人修养难得。凡是得到评功评奖就高兴得不得了的,那就表示他这辈子也就这点出息,评个小奖就不得了,大奖他根本受不了。因此,谦虚的第二种境界是赞美谦,即在众人赞美面前依然谦虚。做到了这一点,就上升到了谦虚的第三种境界。

第三种境界:功劳谦。劳谦就是一个人有贡献,有和别人不一样的表现,却还是很谦虚,这个人就很了不起。没有贡献而谦,不值得我们去表扬。有了很大功劳还说“组织培养、领导关怀、同事支持”,这不是虚伪,而是体现了谦虚的精神。如果你说是组织培养,没有人会不高兴。可是你说这是自己于玩命努力的成果,会有多少人从心里服你?现在很多人喜欢讲“这是我个人的成果,是我自己奋发有为的结果,即使你真取得了很大的成绩,这些话真的没有人喜欢听。有功劳还能做到谦虚,谦虚就上升到了第四种境界。

第四种境界:发挥谦。发挥谦,就是要对领导谦虚也要对部属谦虚。老实讲,对领导谦虚比较容易,对部属谦虚比较难。如果一个基层主官老是在官兵面前表示自己能干,这个人是没有太大作为的。就算是因为比别人能干才晋升为基层主官,如果以此炫耀的话也是很不合身份的。当了基层主官而能够谦虚对待官兵,能够爱护战士,能够多多指导战士成长,能够把表现的机会让给部属,这才了不起,就是做到了发挥谦的境界。挥谦,不仅仅要自己谦虚,而且要带动基层官兵谦虚,这样就上升到了谦虚的第五种境界。

第五种境界:保护谦。保护谦就上升到了一种较高的境界,表示谦虚者不断成长进步,已晋升为领导干部。领导干部要护谦,要维护谦的风气,不能自己率先败坏。如果一个干部当到单位主官时就开始大吹大擂,本部队如何了不起,三年以后要怎么不得了,就把谦虚的第五种境界破坏了,永远上升不了谦虚的更高层次。可惜我们军营的大多数领导干部都是这样做的,但还是有少数领导干部能够做到保护谦虚的境界,上升到谦虚的最高境界。

第六种境界:维护谦。维护谦表示到达了谦虚的最高境界,一个人修养到了谦虚的最高境界,这个时候要记住,要时刻维护本单位的谦虚风气,不容许有人破坏,要时刻“骂谦”。到了谦虚的最高境界,有了这个声望,人家把你当谦虚的楷模,就要记住,只要谁不谦虚,你就可以骂他:这么不谦虚,人家给你面子,你还这么干,合适吗?这个时候你骂最合适,因为大家服你,听你的话。这样做既维护了谦虚的风气,大家又都能接受,理正词严,合情合理。

2. 谦虚名言总汇, 总有一款适合

1、谦逊是藏于土中甜美的根,所有崇高的美德由此发芽滋长。

2、知识贮藏在谦虚的大海中。

3、骄傲两个字我有点怀疑。凡是有点干劲的,有点能力的,他总是相信自己,是有点主见的人。越有主见的人,越有自信。这个并不坏。真是有点骄傲,如果放到适当岗位,他自己就会谦虚起来,要不然他就混不下去。作者:邓小平

4、稻穗结得愈饱满,愈会往下垂;一个人愈有成就,就要愈有谦冲的胸襟。

5、器满则益,人满则丧。作者:林逋

6、伟大的人是决不会滥用他们的优点的,他们看出他们超过别人的地方,并且意识到这一点,然而绝不会因此就不谦虚。他们的过人之处越多,他们越认识到他们的不足。作者:卢梭

7、科学的自负比起无知的自负来还只能算是谦虚。作者:斯宾塞

8、我自知自己并非什么都通晓,故我应该谦虚。这一点足以令我感到自豪。作者:纳博科夫

9、甲:我们校长得跟他谦虚啊!

10、成就是谦虚者前进的阶梯,也是骄傲者后退的滑梯。

11、谦虚是不可缺少的品德。作者:孟德斯鸠

12、讷讷寡言者未必愚,喋喋利口者未必智。

13、天才就是无止境刻苦勤奋的能力。作者:卡莱尔

14、绽放的腊梅傲立在冰天雪地中,那是在教我们顽强。

15、构成我们学习最大障碍的是已知的东西,而不是未知的东西。作者:贝尔纳

16、同王公于堂皇中显渺小,贤达则在谦虚中见伟大。作者:雪莱

17、不能凭最初印象去判断一个人。美德往往以谦虚镶边,缺点往往被虚伪所掩盖。作者:拉布吕耶尔

18、人生需要理想的呼唤。你慵懒时,它呼唤你勤奋;你昏睡时,它呼唤你;你高傲时,它呼唤你清醒谦恭(谦虚、谦逊);你莽撞时,它呼唤你谨慎(小心);你跌倒时,它呼唤你站起(站立)。

19、骄傲的人必然嫉妒,他对于那最以德性受人称赞的人便最怀忌恨。作者:斯宾诺莎

20、谦虚谨慎和不谋私利,是人们所赞扬的美德,却也为人们所忽略。作者:莫洛亚

21、他的态度谦虚而又严肃,说话时好下结论,不说话时也露出尊严,是一位自命不凡的人。

22、要学会做科学的苦工。其次,要谦虚。第三要有热情。记住,科学需要人的全部生命。作者: 巴甫洛夫

23、谨慎比大胆要有力量得多。作者:雨果

24、人心都是肉长的,任何一点感动,都会在心灵泛起波纹,任何一点伤害,都会留下新的伤痕。生活就是一种延续,每个人都有每个人的故事,不论快乐还是悲伤,都要学会感谢,懂得感激。生活永远都是正确的,个人永远都是渺小的。面对成绩,懂得谦虚,感谢生活给我这样的鼓励;遭遇失败,懂得坚强,感激生活会有这样的磨砺。无论谁,心存感激,都会感受人生的宁静,因为,感激是,人生最美的情绪。

25、盛满易为灾,谦冲恒受福。作者:张廷玉

26、自赞就是自轻。

27、气忌盛,新忌满,才忌露。作者:吕坤

28、喜欢吹嘘的人犹如一面大鼓,响声大腹中空。

29、真正的谦虚只能是对虚荣心进行了深思以后的产物。作者:柏格森

30、我只能继续锻炼耐心,锻炼低下头来,锻炼谦虚谨慎再谦虚谨慎,锻炼忘记各种的虚妄、虚无缥缈,锻炼自己平凡些再平凡些,锻炼自己溶化于人众之中,锻炼自己等待于无所等待之中,即无所等待于任何等待之中,最好的等待就是忘却,最沉静的风度就是无。–无忧、无为、无欲、无梦。作者:王蒙

31、谦虚对才华无奇的人来说只是一种诚实,对才华绝顶的人来说,是一种虚伪。作者:叔本华

32、人要想对自己的尊严有所觉悟,就必需谦虚。的确,人性是尊严的,但这样说还是不甚明确的,也是不完整的。说人是尊严的,这只限于没有私心的、利他的、富于怜悯的、有感情的、肯为其他生物和宇宙献身的这种情况。作者:汤因比

33、自卑虽是与骄傲反对,但实际却与骄傲最为接近。作者:斯宾诺莎

34、我们应该谦虚,因为你我都成就不了多少。我们都只是过客,一世纪以后都完全遗忘。生命太短促,不能老谈自己微小的成就来教人厌烦,且让我们鼓励别人多谈吧。作者:戴尔卡耐基

35、谨慎和自制是智慧的源泉。作者:罗彭斯

36、真正的虚心,是自己毫无成见,思想完全解放,不受任何束缚,对一切采取实事求是的态度,具体分析情况对于任何方面反映的意见,都要加以考虑,不要听不进去。作者:邓拓

37、美丽只有同谦虚结合在一起,才配称为美丽。没有谦虚的美丽,不是美丽,顶多只能是好看。作者:塞万提斯

38、恃国家之大,矜民人之众,欲见威于敌者,谓之骄兵。作者:魏相

39、谦虚使人进步,骄傲使人落后。作者:毛泽东

40、青春啊,永远是美好的,可是真正的青春,只属于这些力争上游的人,永远忘我劳动的人,永远谦虚的人。作者:雷锋

41、劳谦虚己,则附之者众;骄慢倨傲,则去之者多。作者:葛洪

42、知识愈浅,自信愈深。

43、图大者,当谨于微。作者:吕近溪

44、有智慧,才能分辨善恶邪正;能谦虚,则能建立美满人生。

45、人的一生,总是难免有浮沉。不会永远如旭日东升,也不会永远痛苦潦倒。反复地一浮一沉,对于一个人来说,正是磨练。因此,浮在上面的,的,不必骄傲;沉在底下的,更用不着悲观。必须以率直、谦虚的态度,乐观进取、向前迈进。作者:松下幸之助

46、每个人的心中,都有一颗最亮的星在闪烁,点缀了心房的灿烂,闪耀着梦想的光辉。梦想是如春风般了无痕迹,但却是力量的泉源,是智慧的摇篮,是冲锋的战旗,是斩棘的利剑,是人生的路标。它能让我们在困境里坚韧,在挫折前奋起,在颓废中振作,在迷途上清醒。它创造了无止境的追求与探索。因为有了梦想,才不会自暴自弃、自甘堕落;才不会怀疑自己、轻言放弃;才不会灰心丧气、气馁退缩;才不会满身傲气、停于现状!因为有了梦想,才懂得要不甘落后、积极进取;才知道要坚韧不拔、努力奋斗;才明白要吃苦耐劳、顽强拼搏;才深知要毫不畏惧、一往直前!因为有了梦想,才学会谦虚谨慎又敢于探索;才开始刻苦学习也善于求知;才努力不断追求更敢于挑战!

47、懂得接受失败的人,就是懂得人生真谛的人,就是对虚怀若谷谦虚谨慎八个字真正理解的人,也只有懂的接受自己的失败,才能更好的去发挥自身优势,也才能够更好的去实现自我;

48、当所有人都没有站出来,而你却站了出来,不代表你能力好,而是你忘了谦虚与缩小。作者:义御

49、我们不能一有成绩,就象皮球一样,别人拍不得,轻轻一拍,就跳得老高。成绩越大,越要谦虚谨慎。作者:王进喜

50、面对失败和挫折一笑而过,是一种乐观自信;面对误解和仇恨一笑而过,是一种坦然宽容;面对赞扬和激励一笑而过,是一种谦虚清醒;面对烦恼和忧愁一笑而过,是一种平和释然。

51、一知半解的人,多不谦虚;见多识广有本领的人,一定谦虚。作者:谢觉哉

52、放荡功不遂,满盈身必灾。作者:张咏

53、骄傲来自浅薄,狂妄出于无知。

54、不要在你的智慧中夹杂着傲慢。不要使你的谦虚心缺乏智慧。

55、因为有了感谢之心,才能引发惜物及谦虚之心,使生活充满欢乐,心理保持平衡,在待人接物时自然能免去许多无谓的对抗与争执。

56、大自然能给我们许多启示:滴水可以穿石,是在告诉我们做事应持之以恒;大地能载万物,是在告诉我们求学要广读博览;青松不惧风雪,是在告诉我们做人要坚毅刚强;成熟的稻穗低着头,那是在启示我们要谦虚;一群蚂蚁抬走骨头,那是在启示我们要齐心协力。

57、彩虹的七色是由勤劳的赤、谦虚的橙、刻苦的绿、诚实的黄、认真的青、俭朴的蓝和团结的紫组成的,让我们拥有这七色元素,为祖国画一道绚丽的彩虹!

58、Wherever valour true is found, true modesty will there abound. ( W. S. Gilbert )真正的勇敢,都包含谦虚。作者:吉尔伯特

59、含羞草默默地收拢叶片,那是在教我们切莫张扬!

60、对骄傲的人不要谦虚,对谦虚的人不要骄傲。

61、胜利者绝不相信偶然,无一例外。即便他们谦虚地说,自己的成功只是出于偶然

62、微笑是一种谦虚的态度。对处在顺境中的我们来说,安逸是你们最大的挑战。学会微笑吧!以微笑面对安逸,而且微笑还是战胜失败的最好法宝,所以我们应用微笑面对人生,面对挫折。

63、你不但谦虚而且还不耻下问以及还在网上来征求答案。

64、怀才就象怀孕,时间久了会让人看出来。人,切莫自以为是,地球离开了谁都会转,古往今来,恃才放肆的人都没有好下场。所以,即便再能干,也一定要保持谦虚谨慎,做好自己的事情,是金子总会发光。

65、为人第一谦虚好,学问茫茫无尽期。作者:冯梦龙

66、谦虚是学习的朋友。

67、切忌浮夸铺张。与其说得过分,不如说得不全。作者:列夫托尔斯泰

68、我们各种习气中再没有一种象克服骄傲那么难的了。虽极力藏匿它,克服它,消灭它,但无论如何,它在不知不觉之间,仍旧显露。作者:富兰克林

69、人生至愚是恶闻已过,人生至恶是善谈人过。作者:申居郧

70、念高危,则思谦冲而自牧;惧满盈,则思江海下百川。作者:魏徵

71、一群蚂蚁能抬走大骨头,那是在教我们团结。

72、有了金,要把灵魂送上天堂,也是真正以谦虚是最高的美德,也即一切美德之母。

73、我们告别地球,来到茫茫太空中,原本是来接受一切挑战的:孤独,苦难,困顿,乃至死亡。我们嘴上不说,那时谦虚使然;但在心里,我们有时不免把自己想得太过高尚。而且,进一步的考验会使我们发现,那股热情到头来全是虚假。作者:斯坦尼斯拉夫·莱姆 出处:索拉利斯星·K星异客

74、谦虚使人的心缩小,象一个小石卵,虽然小,而极结实。结实才能诚实。

75、谦虚的学生珍视真理,不关心对自己个人的颂扬:不谦虚的学生首先想到的是炫耀个人得到的赞誉,对真理漠不关心。思想史上载明,谦虚几乎总是和学生的才能成正比例,不谦虚则成反比。作者:普列汉诺夫

76、近几月老是研究巴尔扎克,他的一部分哲学味特别浓的小说,在西方公认为极重要,我却花了很大的劲才勉强读完,也花了很大的耐性读了几部研究这些作品的论著。总觉得神秘气息玄学气息不容易接受,至多是了解而已,谈不上欣赏和共鸣。中国人不是不讲形而上学,但不象西方人抽象,而往往用诗化的意境把形而上学的理论说得很空灵,真正的意义固然不易捉摸,却不至于橡西方形而上学那么枯燥,也没那种刻舟求剑的宗教味儿叫人厌烦。西方人对万有的本原,无论如何要归结到一个神,所谓God[神,上帝],似乎除了God[神,上帝],不能解释宇宙,不能说明人生,所以非肯定一个造物主不可。好在谁也提不出证明God[神,上帝]是没有的,只好由他们去说;可是他们的正面论证也牵强得很,没有说服力。他们首先肯定人生必有意义,灵魂必然不死,从此推论下去,就归纳出一个有计划有意志的神!可是为什么人生必有意义呢?灵魂必然不死呢?他们认为这是不辩自明之理,我认为欧洲人比我们更骄傲,更狂妄,更ambitious[野心勃勃] ,把人这个生物看做天下第一,所以千方百计要造出一套哲学和形而上学来,证明这个人为万物之灵的看法,访佛我们真是负有神的使命,执行神的意志一般。在我个人看来,这都是vanity[虚荣心] 作祟。东方的哲学家玄学家要比他们谦虚得多。除了程朱一派理学家dogmatic[武断]很厉害之外,别人就是讲什么阴阳太极,也不像西方人讲God[神]那么绝对,凿凿有据,咄咄逼人,也许骨子里我们多少是怀疑派,接受不了大强的insist[坚持], 太过分的certainty[肯定]。出处:傅雷家书

77、梅花那种高洁、坚强、谦虚的品格,不正是我们的建筑工人吗?他们不论严寒酷暑,不论刮风,还是下雨,不论天寒地冻,他们都在自己的岗位上,默默地,为他人建筑高楼。他们也从不炫耀自己,夸奖自己,还不与他人去比赛。

78、我们的骄傲多半是基于我们的无知!作者:莱辛

79、卑己而尊人是不好的,尊己而卑人也是不好的。作者:徐特立

80、当一个智者本来想说“他们”的时候–迫于谦虚的压力–他不得不改口说“我们”。作者:张方宇 出处:单独中的洞见2,作家出版社

81、在寒冷冬天的早晨,一股别具神韵、清逸幽雅的清香就从窗外飘来–那就是梅花。它虽然从不与百花争春,但经常被古今诗人画家所赞美。梅花以它那种高洁、坚强、谦虚的品格,被我们中华名族的人民,称作为–中国国花。

82、假装谦虚是最虚伪的表现,因为这可能是信口雌黄的开始,又或者是拐弯抹角的自我夸奖。作者:简 奥斯汀 出处:傲慢与偏见

83、什么是爱情?骗呗! 什么是温柔?贱呗! 什么是艺术?脱呗! 什么是仗义?傻呗! 什么是勤俭?抠呗! 什么是谦虚?装呗! 什么是勇敢?二呗! 什么是幽默?贫呗!

84、过去的金钱问题或犯下的过失终于警觉到严重性。为了不重蹈覆辙更需谦虚

85、有人说张无鸡是金庸小说里性能力最差的,大谬! 人家那是谦虚,名字叫得太嚣张会遭老天报应的: 阳顶天,绿帽子了。杨铁芯,老婆被抢。 杨亢,一辈子没几次性生活就挂了。 王重阳,老处男一个。洞房不败,杨连挺,一对NB哄哄,被人宰了。 瞄人缝,呸,这么变态活该绿帽子。 反之人家萎小宝可以坐拥7美,就是名字厚道。 张无鸡能弱吗? 也不想想人家学过什么教材,九阳真茎! 那可是少林派的宝贝! 少林什么地方?作者:网友

86、同情之心,谦虚之心,感激之心,实事求是之心,抱着这样美好的心,又坚持踏实努力的人,他们必将时来运转,幸运一定会关照他们。作者:稻盛和夫

87、只有坚强的人才谦虚。作者:赫尔岑

88、人唯虚,始能知人。满招损,谦受益。满必溢,骄必败。

89、谦虚不仅是一种装饰品,也是美德的护卫。作者:爱迪生

90、吃的简单,活得简单,减少购物,多为有需要的人付出,少说话,多做事,保持能量,不乱花,管理好自己的情绪,保持微笑,懂得自爱,自然懂得他爱,爱地球,减少制造废物,谦虚地生活,不浪费,多做运动,从身体出发,保养心态,提升爱的灵性。这种女人,非常非常美。作者:素黑

91、一个骄傲的人,结果总是在骄傲里毁灭了自己。作者:莎士比亚

92、一切真正的和伟大的东西,都是纯朴而谦逊的。作者:别林斯基

93、真是说你傻,你还谦虚啊。出处:一起来看流星雨

94、宽容是一种大度、是高尚情操的表现。宽容之中蕴含着一份做人的谦虚和真诚,蕴含着一种对他人的容纳与尊重。学会宽容,心灵上就会获得宁静和安详。学会宽容,就能心胸开阔的生活。很多时候,宽容会给人带来一种良好的人生感觉,使我们感到愉悦和温暖,生活中就会少些怨气和烦恼,就能感觉到生活中快乐的丰富,而不是缺少。

95、无论在什麽时候,永远不要以为自己已知道了一切。作者:巴甫洛夫

96、基础课程要坚实,全面发展要扎实,循序渐进要踏实,培养兴趣要落实,学会做人要老实,谦虚谨慎要诚实,胸怀大志要忠实,终身获益结果实。

97、好说己长便是短,自知己短便是长。作者:申居郧

98、虚心使人进步,骄傲使人落后。

99、艺术的大道上荆棘丛生,这也是好事,常人望而却步,只有意志坚强的人例外。作者:雨果

100、最大的骄傲于最大的自卑都表示心灵的最软弱无力。作者:斯宾诺莎

101、只有大意吃亏,没有小心上当。作者:谚语

102、满盈者,不损何为?慎之!慎之!作者:朱舜水

103、诸葛亮有胆有识,才智过人。这让我感到草船借箭的成功,使我们真真切切的感受到了诸葛亮足智计谋,料事如神,宽宏大度,谦虚礼让的大将风度。使得气量狭窄,妒才忌能,才气输诸葛亮一筹的周瑜不得不叹服。

104、1、工作时,付出不亚于别人的努力;2、处事时,不忿怒,不嫉妒,不轻浮,更不骄傲自恣;3、灾难时,不悲叹,不怨恨,不灰心,不牢骚满腹;4、幸运时,不得意忘形,不失谦虚之心;5、萧条时,不消沉,不慌张,要有远见,要坚忍不拔作者:徐鹤宁官方 出处:徐鹤宁官方

105、提问即是可以将你引向谦虚的学习和理性的分析,也是可以将你引向傲慢的批判。

106、有种人神气活现,你对他恭维,他不推却地接受,好像你还他的债,他只恨你没有附缴利钱。另外一种假作谦虚,人家赞美,他满口说惭愧不敢当,好像上司纳贿,嫌数量太少,原壁退还,好等下属加倍再送。不管债主也好,上司也好,他们终相信世界上还有值得称赞的好人,至少就是他们自己。 近代当然也有坏人,但是他们坏得没有性灵,没有人格,不动声色像无机体,富有效率像机械。作者:钱钟书 出处:写在人生边上 人生边上的边上 石语

107、固然我有某些优点,而我自己最重视的优点,却是我的谦虚。作者:孟德斯鸠

108、出现了不少空谈家,他们读书只是为了驳斥别人,高声宣扬自己的革命精神,以便跳到那些比较谦虚,比较严肃的同志面前去。作者:高尔基

109、一个真认识自己的人,就没法不谦虚。谦虚使人的心缩小,像一个小石卵,虽然小,而极结实。结实才能诚实。作者:老舍

110、我常以人就这么一辈子这句话告诫自己并劝说朋友。这七个字,说来容易,听来简单,想起来却很深沉。它能使我在软弱时变得勇敢,骄傲时变得谦虚,颓废时变得积极,痛苦时变得欢愉,对任何事拿得起也放得下,所以我称它为当头棒喝、七字箴言。–我常想世间的劳苦愁烦、恩恩怨怨,如有不能化解的,不能消受的,不也就过这短短的几十年就烟消云散了吗?若是如此,又有什么解不开的呢?

111、如果说我看的比别人远的话,那只不是站在巨人们的肩膀上罢了。作者:牛顿

112、自负对任何艺术是一种毁灭。骄傲是可怕的不幸。作者:季米特洛夫

113、沉默带给你的好处很多,摆低姿态,变的谦虚,换言之就是,隐藏你的聪明。越聪明的人,越懂得沉默,就像成熟的稻子,垂下稻穗。

114、不满足是向上的车轮。作者:鲁迅

115、成熟的麦穗低垂着头,那是在教我们谦虚。

116、气吞万里的海洋,何等浩潮壮阔!但它总是那么谦虚,始终把自己放得很低,因而能容纳百川的水流,吸收地球的雪雨。

117、一种美德的幼芽、蓓蕾,这是最宝贵的美德,是一切道德之母,这就是谦逊;有了这种美德我们会其乐无穷。作者:加尔多斯

118、虽说中国武术十分厉害,可最令我佩服的是习武之人善恶分明的品质。面对正常的比武,所有武术专家都讲究点到为止,意在在精神上击败对手,而不是击杀对手。面对坏人,他们总是用高超的武技给予他们重重的打击。每一名武术家,他们时刻保持着谦虚、正直、怜悯、英勇、公正、牺牲、荣誉、灵魂的精神,他们都保持着友好对待弱者,勇敢面对强者,与恶势力战斗,为弱者战斗,帮助他人,忠诚对待朋友的信条。

119、历览古今多少事,成由谦虚破由奢。作者:陈毅

120、无论谁,在他接受用部属的鲜血、朋友的牺牲挣来的欢呼时,永远要记住谦卑。艾森豪威尔决定结果的正是我们在处理表面上微不足道、枯燥乏味,而且不用麻烦的细枝末节时所采取的谨慎小心的态度。

121、汪晓龙不但看书做事十分认真,成绩优秀,而且也十分谦虚。

122、在知识的舞台上,最渊博的教师也是最谦虚的学生。

123、自大一点,就变成臭。

124、不论你读的是什么名校;开学以后,总会有些新生会拟才傲气显得出位,不过请你们谦虚一点。身怀绝技的同学大有人在,成绩决定一切。

125、谦固美名,过谦者,宜防其诈。作者:朱熹

126、不傲才以骄人,不以宠而作威。作者:诸葛亮

127、赶脚的对头是脚懒,学习的对头是自满。

128、大多数的科学家,对于最高级的形容词和夸张手法都是深恶痛绝的,伟大的人物一般都是谦虚谨慎的。作者:贝弗里奇

129、科学的未来只能属于勤奋而谦虚的年轻一代。作者:巴甫洛夫

130、一分钟一秒种自满,在这一分一秒间就停止了自己吸收的生命和排泄的生命。只有接受批评才能排泄精神的一切渣滓。只有吸收他人的意见才能添加精神上新的滋养品。作者:徐特立

131、谦逊是反省的最高贵的收获,它建立起对抗骄傲的防线。作者:温刹斯基

132、真理的最伟大的朋友就是时间,她的最大的敌人是偏见,她的永恒的伴侣是谦虚。作者:戈登

133、无论是别人在跟前或者自己单独的时候,都不要做一点卑劣的事情:最要紧的是自尊。作者:毕达哥拉斯

134、科学技术是生产力,而且是第一生产力。作者:邓小平

135、人生在世必须随和。随和是淡泊名利时的超然,曾经沧海后的井然,狂风暴雨中的坦然。随和的人高瞻远瞩,宽宏大度,豁达潇洒。随和的人是谦虚的人,明白“尺有所短,寸有所长”的道理。随和的人是没有贪欲的人,懂得控制自己的世俗欲望。随和需要“不以善小而不为,不以恶小而为之”处事之道。随和不是懦弱,是一种能力。

136、感恩需要学习,从小开始,不再使幼小的心灵蒙上世俗的灰尘。学会感恩,就是要学会不忘恩负义;学会感恩,就是要学会谦虚本份;学会感恩,就是要学会多一份爱,少一份恨

137、所以,同美国人交往,应该大胆说出自己的能力,有一是一不必过于谦虚客气,否则反而事与愿违。

138、做人牢记三点:一、拿望远镜看别人,拿放大镜看自己;二、接受表扬要低下头来,接受批评要抬起头来;三、不要把善良看成愚蠢,不要把谦虚看成懦弱!

139、让一得百,争十失九。作者:马总

140、从我父亲的名声及对他的追忆,我懂得了谦虚和果敢。 从我的母亲,我濡染了虔诚、仁爱和不仅戒除恶行,甚而戒除恶念的品质,以及远离奢侈的简朴生活方式。 从我的老师那里,我明白了不要介入马戏中的任何一派,也不要陷入角斗戏中的党争;我从他那里也学会了忍受劳作、清心寡欲、事必躬亲,不干涉他人事务和不轻信流言诽谤。作者:马可·奥勒留 出处:沉思录

141、谦虚的人,快来,让我拥抱你们!你们使生活温和动人你们想不使任何人感到惭愧。作者:孟德斯鸠

142、既然是梦想不妨就让它完美些罢。何必连梦想也那么拘谨那么谦虚呢?我便如醉如痴并且极端自私自利地梦想下去。作者:史铁生 出处:灵魂的事

143、要谦虚。你们在任何时候也不要以为自己什么都知道。不管别人怎样器重你们,你们总要有勇气对自己说:我没有学识。。作者:巴甫洛夫

144、你地位低微而显得谦卑,并不是一件了不起的事,当你受人赞颂而仍然谦逊,是一种伟大而罕有的行为。作者:圣巴尔拿

145、我表面谦虚,其实很骄傲,别人天天保持现状,而自己老想着一直爬上去,所以当我做生意时,就警惕自己,若我继续有这个骄傲的心,迟早有一天是会碰壁的。

146、人生大病,只是一傲字。作者:王阳明

147、谦虚不是把自己想得很糟,而是完全不想自己。 点评:如果把自己想得太好,就很容易将别人想得很糟。

148、谦虚的人更能认清自已。

149、他参加过许多战役,立下了汗马功劳,但他仍然很谦虚。

150、慷慨,尤其是还有谦虚,就会使人赢得好感。作者:歌德

151、随和可能伴随着自卑,好胜可能伴随着骄傲,谦虚可能伴随着平庸,坚定可能伴随着武断。

152、如果一个人不过高地估计自己,他就会比他自己所估计的要高得多。作者:歌德

153、任何人都应该有自尊心、自信心、独立性,不然就是奴才。但自尊不是轻人,自信不是自满,独立不是弧立。作者:徐特立

154、当你意识到自己是个谦虚的人的时候,你马上就已经不是个谦虚的人了。作者:列夫托尔斯泰

155、谦虚对于优点犹如图画中的阴影,会使之更加有力,更加突出。作者:牛顿

156、谦虚温谨,不以才地矜物。作者:房玄龄

157、自满会招致损失,谦虚可以得到益处。

158、为了彻底防止和克服思想上不同程度的主观主义成分,我们惟有要求自己,遇事都一定要保持真正的虚心。作者:邓拓

159、青春啊!永远是美好的,可是真正的青春,只属于这些永远力争上游的人,永远忘我劳动的人,永远谦虚的人!作者:雷锋

160、力能胜贫,谨能防祸。作者:贾思勰

161、成就加上谦虚,才最难能可贵。作者:李嘉诚

162、谨慎的人眼睛也许永不闭上。作者:爱默生

163、一个人如果把从别人那里学来的东西算作自己的发现,这也很接近于虚骄。作者:黑格尔

164、不在受赞扬的时候,而是在挨责骂的时候能仍不失谦逊的人,才是真正的谦虚君子。作者:丁·保罗

165、我们不要把眼睛生在头顶上,致使用了自己的脚踏坏了我们想得之于天上的东西。作者:冯雪峰

166、谦虚的人往往能成事,吹牛的人往往会误事

167、钻研然而知不足,虚心是从知不足而来的。虚伪的谦虚,仅能博得庸俗的掌声,而不能求得真正的进步。作者:华罗庚

168、骄傲两个字,我有点怀疑,凡是有点干劲的,有点能力的,他总是相信自己,是有点主见的人;越有主见的人,越有自信,这个并不坏,真是有点骄傲;如果放到适当的位置,他自己就会谦虚起来,要不然他就混不下去了。 邓小平

169、一个人在受到责备而不是受到赞扬之后仍能保持谦虚,那才是真正的谦虚。作者:里克特

170、如果顺着自大的胡同走,就会进入无知的庭院。作者:佚名

171、蠢材妄自尊大,他自鸣得意的,正好是受人讥笑奚落的短处,而且往往把应该引为奇耻大辱的事,大吹大擂。作者:克雷洛夫

172、虚已者进德之基。作者:方孝孺

173、让是谦虚的表现,但它却时时透露着美丽。父爱也是如此。好恨自己没有过早地了解父亲,让我一直对父亲产生误会。但那件事让我真正了解了父亲,懂得了父爱。

174、虚心不是一般所谓谦虚,只是表面上接受人们的意见,也不是与人们无争论无批评,把是非和真理的界线模糊起来,而必须保持自己的政治立场,当自己还未了解他人意见时不盲从。作者:徐特立

175、它能培养人的礼仪忍耐谦虚和坚韧不拔的精神,给人以勇敢善战积极进取的竞争个性。

176、伟大的人是绝不会滥用自己的优点的,他们看出自己越过别人的地方,并且意识到这一点,然而绝不会因此就不谦虚。作者:卢棱

177、谦和的态度,常会使别人难以拒绝你的要求。这也是一个人无往不利的要诀。作者:松下幸之助

178、老二哲学:你对我错,你好我坏,你快我慢,你进我退。

179、懂得自己无知,说明已有收获。

180、每个人都有一定的理想,这种理想决定着他的努力和判断的方向。就在这个意义上,我从来不把安逸和快乐看作生活目的的本身这种伦理基础,我叫它猪栏的理想。

181、傲不可长,欲不可纵,乐不可极,志不可满。作者:魏徵

182、成功的名字叫奋斗,创新的名字叫探索,上进的名字就攀登,勇敢的名字叫攀登,勤奋的名字叫耕耘,谦虚的名字叫倾听,幸福的名字叫满足。

183、一个人可以衰老,可以病死,那是自然法则,人们并不畏惧,但人绝不能在肉体还活着的时候而灵魂却已经枯死。

184、果实的事业是尊贵的,花的事业是甜美的;但是让我做叶的事业吧,叶是谦逊地、专心地垂着绿荫的。作者:泰戈尔

185、虽然从医六十多年,至今不敢忘记戒慎恐惧四个字。病人把生命都交给了我们,我们怎能不感到恐惧呢?怎么能不用戒骄戒躁、谦虚谨慎的态度对待呢?作者:张孝骞

186、大勇若怯,大智若愚。作者:苏轼

187、一定要谦虚,但不是自作聪明的故弄玄虚。

188、人人皆礼让,社会就安祥。

189、低调做人,就是要学会藏锋敛迹,多思慎言,与人为善;还要学会谦虚平和,淡泊豁达,心胸宽广。低调,让你拥有坦荡人生,宠辱不惊;低调,让你审时度势、游刃有余。最强大的力量,看似虚弱无力;最坚韧的性格,貌似平淡无奇。柔,可以克刚;弱,可以胜强

190、一个人的成功除了靠自己的勤奋努力外,谦虚谨慎是不可缺少的品格。自以为是的人永远也找不到成功的门路。

191、高傲自大是成功的流沙。作者:阿比

192、越是成熟的稻穗,越懂得弯腰。

193、谁要是认为崇高的、遥远的目标对于人是没有必要的那他就只有吃啊、喝啊,睡觉啊!而当厌倦了这些的时候,就只有跑过去,撞死在箱子角上。

194、如我的普通话发音不准,我主动请教发音好的同学,并向他们学习,虽然,我的发音常引得同学们哄堂大笑,但我的谦虚,我的好学,我的不耻下问,却给同学们起了表率作用,还培养了他们诚实的品格。

195、不自是者博闻,不自满者受益。

196、贵有恒何必三更眠五更起,最无益只怕一日曝十日寒。

197、任何人的信用,如果要把它断送了都不需要多长时间。就算你是一个极谨慎的人,仅须偶尔忽略,偶尔因循,那么好的名誉,便可立刻毁损。所以养成小心谨慎的习惯,实在重要极了。作者:戴尔卡耐基

198、人都有喜怒哀乐,这个避免不了。我现在认为应该做到三条:第一是克制;第二是谦虚;第三是执着。作者:张瑞敏

199、如果你想成为一名成功的领导,最重要的不是你的智商,而是你的情商。最重要的不是要成为一个有号召力,令人信服的领导,而是要成为一个有谦虚,执着和勇气的领导。作者:李开复

200、九牛一毫莫自夸,骄傲自满必翻车。历览古今多少事,成由谦逊败由奢。作者:陈毅

201、天地鬼神之道,皆恶满盈。谦虚冲损,可以免害。作者:颜之推

202、要好好地记住:慎重要怯懦不是同义语,正如勇敢并不等于鲁莽一样!作者:艾森豪威尔

203、以美好的心,欣赏周边事物;以真诚的心,对待每一个人;以负责的心,做好份内的事;以谦虚的心,检讨自己错误;以宽阔的心,宽容伤你的人;以放下的心,面对最难的割舍;以感恩的心,感谢爱你的人;以平常的心,珍惜所拥有的;心中有阳光,生活才会开心;心中充满希望,幸福才会慢慢生长。

204、智慧是宝石,如果用谦虚镶边,就会更加灿烂夺目。

205、尊重是人格的体现,尊重是自我谦虚,尊重是社会和谐的基础,尊重是我们彼此的追求。

206、创业路上需要激情,执著和谦虚,激情和执著是油门,谦虚是刹车,一个都不能缺少。

207、你想成为幸福的人吗?但愿你首先学会吃得起苦作者:屠格涅夫

208、显而易见,骄傲与谦卑是恰恰相反的,可是它们有同一个对象。这个对象就是自我。作者:休谟

209、计较愈少,烦恼愈少;谦让愈多,快乐愈多。

210、年轻时我表面谦虚,其实我内心很骄傲。为什么骄傲呢?因为同事们去玩的时候,我去求学问;他们每天保持原状,而自己的学问日渐提高。作者:李嘉诚

211、无知的人就跟猪一样的盲目,他们嘲笑知识,讥笑学问,鄙夷地把学术的成就一脚踢开,却不知道自己正享受着学术上的一切成果。出处:《克雷洛夫寓言》

212、对上司谦虚,是一种责任;对同僚谦虚,是一种礼遇;对部属谦虚,是一种尊贵。作者:富兰克林

213、我们欣然接受一种时代精神:珍视自我表现而非自我谦虚;珍视自我推销而非自我埋没;珍视白手起家而非坐享其成;珍视自信进取而非妄自菲薄。

214、谦虚与伟大是近邻。

215、缺少谦虚就是缺少见识。作者:富兰克林

216、啊!夸奖的话,出于自己口中,那是多麽乏味!作者:孟德斯鸠

217、不要自满,要谦虚;去学人家好的东西,把自己好的东西发挥出来。作者:张国荣

218、渐渐的你会发现,不是所的人都适合让你去分享成功的喜悦。有的埋怨你炫耀,有的妒忌,有的不屑,所以我们都慢慢变得谦虚起来。到最后,那些能让你毫无保留地分享骄傲的心情的人,那些在你得意忘形时也不会反感而带着微笑的人,才是你最重要的人。

219、谦虚使人发胖。

220、当我们是大为谦卑的时候,便是我们最近于伟大的时候。作者:泰戈尔

221、君子戒自欺,求自谦。作者:海瑞

222、二零一三蛇年对我,带来的改变不言而喻,确切说是上一段感情的结束,从爱一个人的生活回到爱一个人的生活,感恩这段相处,让自己成长..看清楚自己的限制,弱点和人性真面目,从中学习成长,体验来访此生的意义,也在付出过程中,学习自我进步和感恩,善待自己,量力而为,无论发生什么,先吃好一顿饭,睡好一个觉,不问理由地先强壮自己的身体..尊重生命,尊重自己作为一个男人的生命,谦虚做一个好人而已,无暇浪费光阴,白走一趟..

223、骄傲的人喜欢见依附他的人或谄媚他的人,而厌恶见高尚的人。而结果这些人愚弄他,迎合他那软弱的心灵,把他由一个愚人弄成一个狂人。

224、我,并不是奇迹, 我只是尊重生命, 尊重自己作为一个女人的生命, 谦虚做好一个人而已, 无暇浪费生命,白走一趟。

225、我们要有乐观的心态,人活一世,不可能让所有人满意,凡有一得必有一失。做人不要盯着他人的弱处不放,而是在他人身上找到亮点,来对照自己的不足,这样才能进一步强化自己,给自己某种层次上的改变,谦虚是一个人体内蕴含的最强大动力,只有谦虚才能认清自己。

226、宝剑锋从磨砺出,梅花香自苦寒来。

227、骄傲自满是事故的导火索,谦虚谨慎是安全的铺路石。

228、骄傲自满是我们的一座可怕的陷阱;而且,这个陷阱是我们自己亲手挖掘的。作者:老舍

229、刻意地抬高自己,可以拉开与他人的距离,但并不能提升自己的高度。骄傲是魔鬼,它会慢慢腐蚀你的灵魂。骄傲之人必是爱慕虚荣之人。过分卖弄自我,只会让自己更加可怜。做人应当像花朵一样,你看或不看,它都开在那里,不悲不喜。只有保持谦虚,不骄傲不自负才能让一个人从平凡走向辉煌。

230、为了迎合风向而改变自己见解的人,我们认为是糟糕的、卑鄙的、毫无信念的人。

231、谦逊可以使一个战士更美丽。作者:奥斯特洛夫斯基

232、大胆傲慢的人常为生活的不幸所打倒。

233、骄傲是失败的开头,自满是智慧的尽头。

234、将拒谏则英雄散,策不从则谋士叛。作者:黄石公

235、人生在世,最主要的就是要谦虚谨慎,不论干什么一定要谦虚,你自己会干点什么,不要在那人前啊显摆,你这一显摆人家一看这有什么啊?有什么值得显摆的???所以说啊,在人前谦虚一点,肯定不会吃亏。

236、 我始终认为,任何天生的或后生的天才,若不与坚忍不拔、谦虚踏实和埋头若干的品质相结合,就不可能有所成就。出处:狄更斯传

237、勇敢的最重要的成分是谨慎。

238、一个成功者以最谦虚的态度来接受一个最忠诚的指导,这并不影响他的独立人格。但是你在接受指导之前,必须进行冷静的分析,千万别存有屈服感。作者:麦尔顿

239、真正的科学家不可能不是谦虚的,因为他做出的事情越多,他就看得越清楚:还有更多的事情没有做。作者:法郎士

240、十大人脉关系定律须谨记: 1.想钓到鱼,就要像鱼那样思考; 2.不要总显示比别人聪明; 3、让对方作主角,自己甘愿做配角; 4.目中无人,让你一败涂地; 5.常与人争辩,你永难赢; 6.锋芒太露,下场不好; 7.刺猬原则~保持适当距离; 8.树一个敌,等于立一堵墙; 9.谦虚不虚伪,不苛求完美; 10.失言不如无言。

241、虚心的人,常想己之短;骄傲的人,常夸己之长。

242、国民的感情中最难克服的要数骄傲了,随你如何把它改头换面,与之斗争,使之败阵,扑而灭之,羞而辱之,它还会探出头来,显示自己。作者:富兰克林

243、狂喜的人,我还能想像得出他们的心理;你们这种谦虚得过份的人,我简直没法了解!作者:张爱玲

244、慈心不能缺乏亲善的态度,智慧不能缺乏谦虚。作者:海涛法师

245、其实世界上没有谦虚这回事,骄傲的背面是没有反义词的,谦虚只是比骄傲更合适生存的一种骄傲。作者:兰晓龙 出处:士兵

246、只见,这些小花朵,一的的都像天上的星星。他们虽然小的可怜,但是此刻却感到他们从来就没有自贱或自卑,有的只是谦虚和积极进取的精神。要不然,嬉笑可爱的吊兰花径上怎么会不时伸出几根更细的长芽儿,像一只只柔韧的韧性十足的小手臂。

247、目光远大的人应当将自己的每一个愿望摆好位置,然后逐一地去实现它。

248、蜜蜂从花中啜蜜离开时营营地道谢,浮夸的蝴蝶却是相信花是应该向他道谢的。作者:泰戈尔

249、梅花以它的高洁、坚强、谦虚的品格,给人立志奋发的激励。难道,这不正是我们的清洁工人么?她们无论严寒酷暑,无论刮风下雨,无论天寒地冻,她们都在自己的工作岗位上认真的工作着。我要学习梅花傲霜斗雪的精神,做一个有梅花品质的人。

250、做点好事,待人要仁慈、宽厚;总之,用你的谦虚来避免厄运吧。作者:巴尔扎克

251、节制、诚实、严谨、果断、节俭、勤奋、慎言、公正、大度、整洁、沉着、廉洁、谦虚。

252、欲知已过,要纳谠言。出处:太平广记谄佞

253、短不可护,护短终短;长不可矜,矜则不长。作者:聂大年

254、面对生活选择微笑,面对朋友选择真诚,面对失败选择奋起,面对成绩选择谦虚,面对孤独选择读书,面对欺骗选择反思,面对不幸选择抗争,面对弱者选择帮助,面对恶人选择揭露,面对病魔选择驱除,面对死亡选择自然。

255、刚建校的某某是雪白的,如同未谙世事的孩童,纯洁、谦虚。虽没有悠久的历史做基础,但有满腔热情,有谦逊的态度,有努力的决心。未经高考磨炼的某某显得那么稚嫩,它的未来充满神秘与期待。

256、凡过于把幸运之事归功于自己的聪明和智谋的人多半是结局很不幸的。作者:培根

257、懒于思索,不愿意钻研和深入理解,自满或满足于微不足道的知识,都是智力贫乏的原因。这种贫乏通常用一个字来称呼,这就是愚蠢。作者:高尔基

258、谦虚是沽名钓誉的诱饵。

259、第四句:怀才就象怀孕,时间久了会让人看出来。人,切莫自以为是,地球离开了谁都会转,古往今来,恃才放肆的人都没有好下常所以,即便再能干,也一定要保持谦虚谨慎,做好自己的事情,是金子总会发光。

260、事情还没有做成就吹牛皮夸口,的确糟糕透顶。出处:克雷洛夫寓言

261、以平常心观不平常事,则事事平常。在危险面前,平常心就是勇敢;在利诱面前,平常心就是纯洁;在复杂的环境面前,平常心就是保持清醒智慧;在紧张的关头,平常心就是沉着地分析与应对;在荣誉面前,平常心就是谦虚;在诋毁面前,平常心就是自信。平常心不是消极遁世,而是一种境界,一种积极的人生。

262、宽阔的河平静,博学的人谦虚。

263、其实,松树是树王国中最为深沉的一位。他不言不语,不显露自己,总是默默的做着自己该做的事情。这种谦虚与稳重,也是我们年轻的一代需要学习的。

264、谦虚谨慎自矜其智非智也,谦让之智斯为大智;自矜其勇非勇也,谦让之勇斯为大勇。出处:弟子箴言崇礼让

265、刘翔,居然有人觉得他应该谦虚点.已经是世界记录保持者了,如果非要在那说,不行不行,我跑的还不行.可能某些人听着心里舒服,但这样的谦虚其实是对别人更大的侮辱,这都叫不行,那你们都是残废了。作者:韩寒

266、让名者名归之,让利者利归之。出处:弟子箴言崇礼让

267、谦虚日久人人爱,骄傲日久成孤人。

268、爸爸是个非常有责任心的人,也是一个谦虚的人对工作和学习都一丝不苟。

269、伟大是谦虚的别名。作者:洪保德

270、勇敢而谦虚、谨慎,这是美德。作者:芬伦

271、岁去弦吐箭。作者:孟效

272、强中更有强中手,莫向人前自夸口。

273、梅花从不与百花争夺明媚的春天,也从不炫耀自己的美丽,梅花有着一副傲骨,也从不骄傲自大。每当寒冬的清晨,一股别具神韵、清逸幽雅的清香就从窗外飘来。梅花不仅是清雅俊逸的风度使古今诗人画家赞美它,更以它的冰肌玉骨,凌寒留香被喻为民族的精华为世人所重。梅花以它的高洁、坚强、谦虚的品格,给人立志奋发的激励。

274、谦虚的人,因为看得透,所以不躁;因为想得远,所以不妄;因为站得高,所以不傲;因为行得正,所以不惧。

275、不论男女,作为ceo都应深谋远虑、有先见之明、谦虚和终身学习。

276、学东西一定要有耐心,世出世法之成就,就在於功夫深;没有成就,就是没功夫。加拿大张老居士的书法,刚开始练习一个字,每天要写一百次。整整练习五十年,到现在七十六岁,仍然谦虚不已,不耻下问,处处请教人。这种好学不倦的精神,最值得我们效法记取。作者:净空法师

277、缄默和谦虚是社交的美德。作者:蒙田

278、我一辈子全靠谨慎小心,才躲过了许多奇灾异难。你要想安然无恙,也得处处小心才是。–谢德林闭心自慎,终不失过兮。作者:屈原

279、真的信徒要博爱而谦虚。莫傲慢。论学术,你不行。论演技,不敢称你为最好。论处事,你不懂移情,既不尊重同行,也不尊重观众。对狭隘而不自知的人,任何宗教的主都是不赞许的。作者:孙海英

280、我打人还,自打几下;我骂人还,换口自骂。

281、青春呀,永远是美好的,可是真正的青春只属于这些永远力争上游的人,永远忘我劳动的人,永远谦虚的人。作者:雷锋

282、不实心不成事,不虚心不知事。

283、谦恭纳百福,和气致千祥。

284、虚假的谦让一出现,真正的谦让就及时消亡。作者:马克吐温

285、山不厌高,水不厌深。

286、有了一些小成绩就不求上进,这完全不符合我的性格。攀登上一个阶梯,这固然很好,只要还有力气,那就意味着必须再继续前进一步。作者:安徒生

287、在成绩面前,要始终保持谦虚谨慎,不骄不躁的作风。

288、不谦虚的话只能有这个辩解,即缺少谦虚就是缺少见识。作者:富兰克林

289、莫等闲,白了少年头,空悲切。作者:岳飞

290、机巧之人不标新立异。

291、要在座的人都停止了说话的时候,有了机会,方才可以谦逊地把问题提出,向人学习。作者:约翰洛克

292、谦让是身体的良心。作者:巴尔扎克

293、它抛弃了谦虚面具,现在表现出盛气凌人的外观和指挥的声音等于其新认定为超级大国的地位。

294、经历越少的人,脾气越大,因为经历越少的人,懂的东西越少,看到的东西越少,往往容易自我膨胀。经历越多的人看的多了,懂的东西也就越多,往往也就更加的谦虚。归根结底,本事越小,脾气越大。

295、我没有谦虚的资本。

296、【谦虚礼让】每个人都有自尊心,但也也须懂得谦虚和礼让。因為每个人在世间,绝对无法一手撑天。

297、记住别人的好,可以培养自己谦虚的品质。

298、当我们大为谦卑的时候,便是我们最近于伟人的时候。作者:司汤达

299、我一直都不明白,为什么在百花之中,中国人偏爱梅花、偏钟情于梅花呢?是因为它美的缘故么?是的,它的确很美:朵朵冷艳、缕缕幽芳、孤芳自赏、纯洁无瑕。像一只骄傲的天鹅屹于冰雪间。千白丛中一点红。开得刺眼,开得高傲;是因为它美的别具一格的缘故么?是的,它的美的确与众不同。它的美,比起娇艳的牡丹、绚丽的月季、清秀的荷花来说,别有一番风味。是的,即使它不如茉莉清香、不如菊花美丽、不如桃花艳丽,但它的确很美,它的美绽放在风雪中,盛开在风雨里。开在没人看见的地方。于是当人们饱赏百花之俏丽,走出门外,看到这株傲于风雪之中的红梅,谁能不为它倾倒?谁能不被它征服?谁能不被它别具一格的美丽所吸引呢?是因为它美的精神的缘故么?是的,中国人爱梅花,是爱 梅花傲雪斗霜的精神,爱梅花谦逊的精神。爱的是已是悬崖百丈冰,犹有花枝俏。爱的是待到山花烂漫时,她在丛中笑。爱它不怕困难,于无声处,傲然挺立。爱它甘愿在幕后无私奉献的心。爱的是梅花有灵魂、有骨气、有品格的精神。梅花之所以能排在四君子之首,正是因为这种傲雪斗霜、谦虚乐观的精神!

300、刚才我们晕晕欲睡地等死,现在我们神智清醒地等烂。 在沉默中不辣做感慨:“我宁可他们要毙的是烦啦,不是死啦。” 我瞟了他一眼,“谢谢。” 不辣倒谦虚,“好说。” 然后我们集体在同一的心事里沉默作者:兰晓龙 出处:我的团长我的团

301、成功=艰苦劳动+正确方法+少说空话作者:爱因斯坦

302、峣峣者缺,皎皎者易污。《阳春》之曲,和者必寡,盛名之下,其实难副。作者:范晔

303、谦虚,如果是卑己而尊人,就非常要不得。谦虚应该建立在自尊而尊人上面。作者:徐特立

304、真正的谦虚在于忘掉谦虚和不谦虚而直奔真理,这是一个实干家必备的品德。作者:魏书生

305、自大的人,会碍人心眼;唯有缩小自己,才会入人的心。

306、有时候,明明骄傲得不行,却假装谦虚; 有时候,明明嫉妒个半死,却假装不屑; 有时候,明明心在滴血,却只能一笑而过; 有时候,看起来风光无限,谁又注意到,你在背后舔伤。 这个世界,到底怎么了?

307、真诚是玻璃,谨慎是钻石。作者:中国锦言

308、在今天和明天之间,有一段很长的时间;趁你还有精神的时候,学习迅速办事。作者:歌德

309、青年时代的正常状态是什么,我想一切还是从真诚的谦虚开始。青年人应该懂得,在我们出生之前,这个世界已经精精彩彩、复复杂杂地存在过无数年,我们什么也不懂,能够站筝脚下的一角建设一点什么,已是万幸。如果刻苦数年,居然从脚下扎下根去,与世界的整体血脉相连,那也就使自己单薄的生命接通了人类。应该为这种接通而惊喜,试想区区五尺之躯,接通于千年之前,接通于万里之外,正是这种接通使自己领略崇高,问津壮丽,体验多元,哪能值得骤然变脸,扯断这些接通,不分青红皂白,你死我活地批判起来?这种谦然安然的生态,也可免除青春生命的无谓浪费,让青年人有可能欢天喜地地活得像青年。

310、大气是一种淡泊。 金钱名利浮云过,我心自有明月在。 站起来堂堂正正,倒下去摔成八瓣,藕断了丝就不要牵连,激流勇退,放弃时毫不犹豫,追求时持之以恒,不达目的决不罢休。 大气是让人感觉敬重而不是敬畏。 对朋友忠诚,对父母孝顺。站在一定的高度而从不让别人感觉你的高度,更能赢得别人的刮目相看。 沉淀自己,多思考,多学习,齐家、治国、平天下你可以做不到,但内心永远不要放弃。放开眼界,能跳多高就跳多高,能走多远就走多远。 大气就是你自己,把自己养好,养好你的大气! 大气是一种谦虚。 半瓶子水总是在瓶子里晃荡,三人行必有我师,不轻视任何人,多从别人身上找自己的短处,不崇拜任何人,但很善于多学习别人的长处。

311、自己要像个空心的竹子,要放低心态,要谦虚。作者:潘石屹

312、文字是一件幽雅的艺术活。要亲近它,不仅仅需要怀着满腔的热忱和崇敬。还应当有足够的耐力,以及,适当的谦虚。出处:语笑嫣然

313、方巧我正同糯米团子将这一干占桌面的玩意儿收拾干净,抬头对她笑了笑,她亦笑了笑回礼,看一旁的团子眼巴巴等着上菜,便轻言细语夸赞道:“这位小仙童长得真是十分灵秀动人。” 我谦虚道:“小时候长得虽可爱,长大了却还不知道会是个什么形容。我家乡有位小仙小时候长得真是形容不上来的乖巧,过个三千年,稍稍有了些少年的摸样,姿色却极普通了。” 小糯米团子拉拉我的衣袖,十分委屈地将我望着。 呃,一时不察,谦虚得狠了。作者:唐七公子

314、目不淫于炫耀之色,耳不乱于阿谀之辞。

315、人的通病是,膨胀自己容易,缩小自己却很难。

316、他平时说话特文明,今天今天这是让谦虚给急的,谦虚急了。

317、谦让别人就是处世之道。作者:野口英世

318、昂着头出征,夹着尾巴回家,是庸驽而又好战的人的常态。作者:冯雪峰

319、吃过饭了,我一个人坐在房间里生闷气,眼泪像断了线了珍珠一样往下滚,我立刻擦干眼泪,心想:反正事情已经过去了,就不要想了。我漫不经心地拉开抽屉看起书来,就在这时,我发现抽屉里写了一张纸,打开一看,原来是爸爸银行里举行献爱心活动,他主动捐了钱给灾区的小朋友,所以他们银行里发了奖状,因为放在抽屉里时间太长了,所以面子有点黄。可是他从来没有提过这件事呀。想起爸爸平时,以身作则,和同事们一起帮助灾区的小朋友上学,为银行减轻负担,但是爸爸从来不把功绩在我和妈妈面前表露,爸爸一直都在教育我要做一个默默无闻的蜜蜂,不做一个大吵大闹的知了。想到这些,我明白了,爸爸知道我长大了,不能像小孩子一样去哄了,要谦虚,不能骄傲自满了。我的眼睛又一次湿润了,我知道爸爸是多么地爱我呀!

320、在生活这个令人费解的局面前,你最好保持足够的谦虚,尽管它不一定能够帮助你做出正确的决定,但至少可以防止你去犯过分明显的错误。

321、盛年不重来,一日难再晨。及时宜自勉,岁月不待人。作者:陶渊明

322、你让步,我让步,条条是大路。

323、如果你去到一个佛那里,你将不会在他里面看到任何谦虚。你不会看到任何自我,但你也不会看到任何谦虚。这个谦虚的消失或许会让你觉得他并不谦虚。作者:奥修 出处:成道之路

324、成为一名领导人需要的素质包括:思想开明、真心诚意寻求并听取意见、为人谦虚,并且知人善任。

325、决不要陷于骄傲。因为一骄傲,你们就会在应该同意的场合固执起来;因为一骄傲,你们就会拒绝别人的忠告和友谊的帮助;因为一骄傲,你们就会丧失客观标准。 作者: 巴甫洛夫

326、当我历数了人类在艺术上和文学上所发明的那许多神妙的创造,然后再回顾一下我的知识,我觉得自己简直是浅陋之极。作者:伽利略

327、不骄方能师人之长,而自成其学。作者:谭嗣同

328、把活着的每一天看作生命的最后一天。作者:海伦·凯勒

329、“好极了,我也今晚走。我是说,我要去洛桑,在那儿有些事要办。我估计,你是乘的东方快车吧?” “是的。我刚才请他们给我订个卧铺。原来打算在这儿呆几天,可是接到了一个电报,有要事叫我回伦敦。” “唉!”鲍克先生叹了口气。“要事──要事!可是你呀──你现在在你们那行中是处于登峰造极的地位了,我的老朋友!” “也许有那么一点点小小的成就。”波洛想使自己显得谦虚一点,可是明显没有成功。作者:阿加莎·克里斯蒂 出处:东方快车谋杀案

330、一个人的思域高度、广度和维度决定其看事物真相的“真实”程度,所以,一定要时刻保持谦虚虚心的状态。

331、心要像一朵花,沉默,谦虚,但有自我的骄傲。

332、谦逊是最高的克己功夫。作者:莎士比亚

333、每当别人问我你怎么了 的时候,我总能微笑着说没事,这时,我总是很不谦虚的觉得我演技真好。

334、我比别人知道得多的,不过是我知道自己无知。作者:苏格拉底

335、呼唤:人生需要理想的呼唤。你慵懒时,它呼唤你勤奋;你昏睡时,它呼唤你;你高傲时,它呼唤你清醒谦恭(谦虚、谦逊);你莽撞时,它呼唤你谨慎(小心);你跌倒时,它呼唤你站起(站立)。

336、你做与不做,事就在那,不多不少;你说与不说,话就在那,不增不减;你爱与不爱,人就在那,不偏不依。每个人都是自足的世界,每一副皮囊并不是封闭的,而是与外界交流着,所以受气,你要排解;受夸,你要谦虚。看完《公墓》,果然喜欢他的文字,那么的相似。

337、人皆狎我,必我无骨;人皆畏我,必我无养。

338、她之所以喜欢他,是因为她觉得他亲切,谦虚。

339、谦虚是美和德的堡垒作者:英国谚语

340、为而不矜,作而不恃。作者:皮日休

341、我的座右铭是:人不可有傲气,但不可无傲骨。作者:徐悲鸿

342、聪明出于勤奋,天才在于积累。作者:华罗庚

343、竹,未曾出土先有节,至凌云处尚虚心,宁折不弯,能够表达士人行为上的品质、操守,谦虚而刚毅的精神。

344、石榴花,你曾在美丽的轰轰烈烈,可现在,你却被无情的秋风吹进泥土里!没人会来为你的命运感到可悲,因为你的生命本来就很可悲!你不够谦虚,你不懂得像虚心竹那般低头!你在枝头炫耀自己,秋风会把妒忌转化为力量来摧残你的身躯!

345、成功的第一个条件是真正的虚心,对自己的一切敝帚自珍的成见,只要看出同真理冲突,都愿意放弃。作者:斯宾塞

346、成绩是谦虚者前进的阶梯,也是骄傲者后退的阶梯。作者:谚语

347、假设有一个领域 ,谦虚的人、明理的人以为它太困难、太暧昧,不肯说话,那么开口说话的就必然是浅薄之徒、狂妄之辈。这导致一种负筛选:越是傻子越敢叫唤作者:王小波 出处:我的精神家园

348、他是一个非常普通的农民,纯朴,谦虚而寡言。从他脸上纵横的皱纹和善良的眼睛看,旧日的贫穷痛苦曾经压弯他的腰。

349、我们必须谦虚地认清自己的知识所限和能力所限。作者:彼得·巴菲特 出处:做你自己

350、唯有尊重自己的人,才能勇於缩小自己。

351、无论你心里怎么想,你的言谈举止都应该谦虚谨慎。在许多国家,任何形式的炫耀都会被视为粗鲁无礼。

352、由于痛苦而将自己看得太低就是自卑。作者:斯宾诺莎

353、世事让三分,天地自宽。

354、学会把自己的心态放低、放平,多看自己的缺点,多看别人的优点,让傲慢的心变得谦虚恭敬,这样您所处的环境自然就融洽了。

355、谦虚是保身第一法。

356、多数人在表面上还是比较谦逊的,至少他们在口头上还是比较谦虚的。不过,他们都不露声色地布置着自己的展台,他们都默默地把自己的展品逐一地陈列出来。作者:张方宇 出处:单独中的洞见

357、思想史上戴明、谦虚几乎总是和学者的才能成正比例,不谦虚则反比。作者:普列汉诺夫

358、要以礼待人你希望别人怎样对你,也应该怎样的对人。

359、善良和谦虚是永远不应令人厌恶的两种品德。作者: 斯蒂文生

360、勤奋者抓紧时间;懒惰者消磨时间;有志者珍惜时间;无为者浪费时间;忠诚者遵守时间;投机者等待时间;聪明者积累时间;愚昧者忽略时间;求知者利用时间;无知者荒度时间;实干者重视时间;浪荡者践踏时间;谦虚者赢得时间;乐观者赞美时间;悲观者叹息时间。

361、当有人欺骗你时,那是在告诉你,贪欲是所有罪恶的根源。努力去实现你的梦想,不论目标离你多么遥远。你用不着因为自己的成功而对他人有一种负罪感,但也不应为了成功就不择手段。 当有人爱你时,那是在告诉你,爱、善良、诚实、接纳、谦虚、宽容等这些人性的优点可以战胜世界上所有罪恶。有善就有恶,人们可以在善与恶之间掌握主动,但有时忽视了爱的力量。 当你在生活中遇到了某个人,无论是约会还是巧遇,你都应想想,自己能从对方那里学到什么,还有,你教给对方的是爱还是恨?当你离开人世时,你留给人们更多的是仁爱还是伤害?是喜悦还是痛苦?我们每个人都有爱的能力,都应善用爱的力量。作者:一袭烟雨,一座城

362、最盲目的服从乃是奴隶们所仅存的唯一美德。作者:卢梭

363、通过别人的不幸事件而知所谨慎,这是好事。作者:赛勒斯

364、以真诚服务为荣,以无理谩骂为耻。 以谦虚低调为荣,以高傲自大为耻。 以担当责任为荣,以逃避事实为耻。 以上进奋斗为荣,以无所事事为耻。

365、人应该谦逊,但不能自卑。作者:姚乐丝卡尔基

366、学问多深也别满足,过失多小也别忽略。

367、失败,其实就是一次机会,它打击我们,让我们从高处坠落平地或深渊,但同时也让我们得以凭借此时卑微的身份,以谦虚的态度,审视我们在行进的道路上所犯的错误、所缺少的能力。越是谦虚,所看到的东西往往越多。

368、我们必须用谦虚者的自觉,饥饿者渴望的求职态度,来拥抱我们的未来。出处:北京青年

369、竞技场上讲谦虚,无疑等于宣告自己的失败;该需要毛遂自荐时,就要当仁不让。生活需要自己主宰,请珍惜大写的我。

370、做一个来出的人,光有一个合乎逻辑的头脑是不够的,还要有一种强烈的气质。

371、学习的敌人是自己的满足,要认真学习一点东西,必须从不自满开始。对自己,学而不厌,对人家,诲人不倦,我们应取这种态度。作者:毛泽东

372、水满则溢,月满则亏;自满则败,自矜则愚。

373、能埋头才能出头,能让人才能人让。

374、停车留空间,将来好回转;心情留一线,日後好相见。

375、我爱梅花那有灵魂、有骨气,有品格的精神。梅花之所以排在四君子之首,正是因为这种傲雪斗霜、谦虚乐观的精神!它从不与牡丹争花首,不与玫瑰争美丽,它就平平淡淡的生活着。它不炫耀自己的美丽,它有着一副傲骨,也不骄傲自大。每当寒冬的清晨,一股别具神韵、清逸幽雅的清香就从窗外飘过来。

376、我们还聊到了彼此的学习,交流了学习经验,对比了学习进度,你很沾沾自喜但又谦虚地说了自己的近况,我们彼此互相鼓励着。

377、我亲爱的孙子,我希望你学会谦虚、百折不挠,学会即使没人注意也要诚实。

378、有欲则不刚,刚者不屈于欲。

379、日本记者请李肇星评价朝鲜拥有核武器问题时,他很谦虚地回答:在朝鲜是否拥有核武器上,我想这方面你可能知道得比我更多,换句话说我不比你知道得更多。

380、1:付出不亚于任何人的努力;要谦虚,不要骄傲;要每天反省;活着就要感谢;积善行,思利他;不要有感性的烦恼。 2:你可以不成功,但你不能不成长,也许会阻碍你成功,但没人会阻挡你成长。 3:每个人都有过去,现在和将来。对我们来讲,无论过去发生什么,都已失去。无论你对将来有多少设想,都还没有发生。我们活在当下。 4:自我实现的路,绝不会是一帆风顺的。我们常常会遭遇挫折与失败。但人生的价值并不在于永远是胜利和成功,而在于这个过程中,我们得到了独一无二的属于自己的体验 5:良言如蜂房,使心觉甘甜,使骨得医治

381、一则故事,可以从中间讲起,正叙或者倒叙,大胆地制造悬念。也可以来点时髦,完全撇开时间与空间,到末了再宣布,或者让人宣布,在最后一刻,时间和空间的问题已经解决了。也可以开宗明义地声称,当今之日,写长篇小说已无可能,然后,譬如说,在自己背后添上一个声嘶力竭的呐喊者,把他当做最后一个有可能写出长篇小说的作者。我也听人讲过,若要给人好印象,谦虚的印象,便可以开门见山地说:现在不再有长篇小说里的英雄人物了,因为有个性的人已不复存在,因为个性已经丧失,因为人是孤独的,人人都同样孤独,无权要求个人的孤独,因此组成了无名的、无英雄的、孤独的群体。事情可能就是这样,可能有它正确可行的地方。作者:君特·格拉斯 出处:铁皮鼓

382、一个目光敏锐,见识深刻的人,倘又能承让自己有局限性,那他离完人就不远了。心灵上的谨慎和谦恭是惟一无二的美德。作者:司汤达

383、尺有所短;寸有所长。物有所不足;智有所不明。作者:屈原

384、自我是貌似谦虚的自大,真理看似自大,其实它只是客观地陈述事实而已。自我和真理,它们彼此都感觉到对方的自大。作者:张方宇 出处:单独中的洞见2,作家出版社

385、“骄傲”两个字我有点怀疑。凡是有点干劲的,有点能力的,他总是相信自己,是有点主见的人。越有主见的人,越有自信。这个并不坏。真是有点骄傲,如果放到适当岗位,他自己就会谦虚起来,要不然他就混不下去。作者:邓小平

386、人的大脑和肢体一样,多用则灵,不用则废。作者:茅以升

387、真正有知识的人的成长过程,就像麦穗的成长过程:麦穗空的时候,麦子长得很快,麦穗骄傲地高高昂起,但是,麦穗成熟饱满时,它们开始谦虚,垂下麦芒。作者:蒙田 出处:蒙田随笔全集

388、过分的谦虚就是骄傲,你怎么谦虚别人也觉得你是在显摆,所以随便意思一下就得了。作者:小猫一尾 出处:嘿!胖子

389、良好的个人修养是每一个文化人一生的追求,而在网络上随便一搜索,便会出现成千上百个词条,告诉你要怎样成为一个优雅、有素质、有涵养的人,其实我觉得很简单,时刻牢记谦虚、尊重、宽容三个原则,便是一切完美攻略的前提。作者:逗号

390、学问欲博,而行已欲敦。作者:魏征

391、即使你对他们温柔敦厚,但他们仍旧是觉得受到你的蔑视。他们以隐秘的伤害行为报答你的善举。你无言的骄傲总与他们的口味不合;倘若你某次谦虚到虚荣的地步,他们就喜不自胜了。作者:尼采

392、爱岗敬业,谦虚谨慎。

393、做人不能太骄傲,要谦虚。

394、勤劳一日,可得一夜安眠;勤劳一生,可得幸福长眠作者:达芬奇

395、68.年轻时我表面谦虚,其实我内心很骄傲。为什么骄傲呢?因为同事们去玩的时候,我去求学问;他们每天保持原状,而自己的学问日渐提高。

396、飞黄腾达的路上一定点缀着破碎的友谊。

397、爱心宽一寸,对人让一步。

398、在顺境中要节制,在逆境中要谨慎。作者:佩里安德

399、人的活动如果没有理想的鼓舞,就会变得空虚而渺小。作者:车尔尼雪夫斯基

400、真正有学问的人就你麦穗一样:只要它们是空的,它们就茁壮挺立,昂首睨视;但当它们臻于成熟,饱含鼓胀的麦粒时,它们便谦逊地低垂着头,不露锋芒。同样,人类经过了一切的尝试和探索,在这纷纭复杂的知识和各种各类的事物之中,除了空虚之外,找不到任何坚实可靠的东西,因此就抛弃了自命不凡的心理,承认了自己本来的地位。作者:蒙田

401、言过其实,终无大用。

402、遇见微笑,学会分享;遇见坎坷,学会勇敢。人生路艰难,但是如果你有笑对人生的能力,你就有享受人生的能力。心是苦的,人生便如苦海无边;心是甜的,人生处处都是曼妙风景。我们之所以会沉浸在不幸、挫折和磨难的悲伤中,就在于不懂得感恩,不能谦虚地低下头,看到事物积极的一面。

403、人要想对的尊严觉悟就必需谦虚的确人性尊严的但说不甚的不完整的说人尊严的这只限于私心的、利他的、富于怜悯的、有感情的、肯为生物和宇宙献身的情况。作者:汤因比

404、14.我表面谦虚,其实很骄傲,别人天天保持现状,而自己老想着一直爬上去,所以当我做生意时,就警惕自己,若我继续有这个骄傲的心,迟早有一天是会碰壁的。

405、君子泰而不骄,小人骄而不泰。出处:论语子路

406、虚心顺理,学者当守此四字。作者:朱熹

407、研究但是知不足,虚心是从知不足而来的。虚伪的谦虚,仅能赢得庸俗的掌声,而不能求得真实的进步。作者:华罗庚

408、卑鄙和高傲的动机只会满足愚人、武夫、人类的侵略者和掠夺者的贪于,人们应当放弃这种动机,不要让这些诱人的饮料再麻醉那些自命不凡之徒!作者:圣西门

409、英俊潇洒、风流倜傥、玉树临风、谦虚好学、人中龙凤 有情有义、诚实可信、风度翩翩

410、时常对自己说,做一个谦虚而知足的人,把生活中所有的苦难,当做上天赐于的礼物。感谢磨难给我们坚强,感谢挫折给我们勇气,感谢欺骗给我们智慧,感谢藐视给我们自尊。经历寒冷,才知道温暖;体验艰辛,才知道甘甜。把所有的痛苦和不快都深藏在心底,当做生活的历练,然后微笑乐观从容面对这个世界。

411、我首先要求诸君信任科学,相信理性,信任自己,并相信自己。作者:黑格尔

412、一年之计在于春,一日之计在于晨。作者:萧绎

413、我可以谦虚甚至“成全”某人的安全感而自我“贬贱”,但是其他人若不升识智地“信”以为真,时间最后证明的只是这些人的傻逼可笑和愚不可及!

414、各位来宾:大家好!奉新郎新娘之命,我来主持今天的婚礼。为什么新郎新娘一定要我做主持人呢 –前几天讨论谁做婚礼主持人最合适的时候,准新郎对我说:你长得很安全,不会让新娘子在举行婚礼时走神,更不会对我的美男形象构成威胁。你做主持人。我放心!然后,准新娘对我说:你长得很谦虚,新郎官与你一起站在台上,所有来宾都会夸我有眼光。你做主持人,我满意!

415、尊重别人并不是圆滑,而是一个人应该有的礼貌和谦虚的表现。

416、读书的时候脑子要思考,要认真的思考,看不懂的地方要谦谦虚虚的问别人,把问到的知识记下来不断思考看看对不对再继续看书,这样看书你才会汲取书中的知识。

417、《听话说话的艺术》: 听人说话四要: 微笑,倾听,点头,回应。 听人说话四忌: 插话,纠正,先知,追问。 对人说话四要: 真诚,低调,谦虚,简要。 对人说话四忌: 妄谈,高调,刻薄,炫耀。 能不说话最好不说,话多必失,病从口入,祸从口出,修行人守住口,就成功了三分之一!

418、苍劲的翠竹高昂着头,那是在教我们不屈。

419、言必称三,手必称拳,是武林的一句老话,意思是能人背后有能人,凡事让人三分。你老人家替我取这个名字,是提醒马三,要谦虚,要本分。作者:王家卫 出处:一代宗师

420、小心谨慎,不但可以防备别人侵犯自己,也可自防任性的放纵和腐败。作者:巴克

421、对于骄傲这两个字我有点怀疑。凡是有点干劲的,有点能力的,他都会总是相信自己,一般都是有点主见的人。其实越是有主见的人,他就越是有自信。这个也并不是很坏。就算是真有那么一点骄傲的人,如果他被放到了适当的岗位,他也就会自己自然而然地谦虚起来,要不然他也就会混不下去的。

422、年轻时遇到高兴的事,得意的事最不擅于处理。一是炫耀,见谁和谁说,其实许多人未必喜欢你成事,跟他说了反生出矛盾。没必要。二是毛糙,一心想着更得意,不注意周围人利益,不考虑其他人想法,弄得和你合作的不高兴。顺利时平常心,谦虚平和,不自恋不倨傲。古语说:“君子得时如水,小人得时如火。”

423、谦柔卑退者,德之余;强暴奸诈者,祸之始。作者:林逋

424、我们感谢竞争,是竞争造就了我们渊博的学识、谦虚的人品和坚毅的性格。竞争,使生活演绎的五彩缤纷。

425、对自己的不满足,是任何真正有天才的人的根本特征之一。作者:契诃夫

426、疲惫的天鹅扇着翅,那是在叫我们坚持。

427、谨慎即良师。作者:格罗汉

428、自谦则人愈服,自夸则人必疑。作者:申涵光

429、在旁观者心中唤起一种惬意的伤感来的倒也不仅仅是邦布尔先生的悲哀表情。还有一些与他的身份紧密相连的迹象表明,他的境况已经发生了巨大的变化。那件镶边的外套,还有三角帽,它们上哪儿去了?他依旧穿着紧身短裤和深色长统纱袜,但紧身裤已经不是原来的那一条。外套依旧是宽边式的,这一点跟以前那件很相似,可是,哦,真有天壤之别啊。威风凛凛的三角帽换成了一顶谦虚的圆顶帽。邦布尔先生不再是一位干事了。

430、只有懂得谦虚的意义,才会得到别人的教诲,才会处处受人喜爱。

431、浅薄无能的人,比谁都自高自大。作者:谚语

432、 真理的伟大朋友是时间,她的最大的敌人是偏见,她永恒的伴侣是谦虚。作者:戈登

阅读全文 »

Integrity

发表于 2018-07-12 | 分类于 Integrity
  • 前言

Integrity means not being afraid of strength, not being weak, being brave enough, being able to stick to the right path, and being brave enough to acknowledge mistakes. Integrity means having the courage to uphold your beliefs. This includes the ability to insist on what you think is right, to look back when needed, and to openly oppose what you believe is wrong.

阅读全文 »

knowledge

发表于 2018-06-22 | 分类于 knowledge

1. 知识认知

Mobile Preview Mobile Preview

1.1. 学习知识

你会学习吗. 首先确定自己知识的方向(思考:学习什么才能给自己的竞争力带来最大提升?), 其次就是学习的方法和工具问题. 

1.2. 保存知识

用时能找到. 存储问题涉及三方面:

1.2.1. 有的知识你需要掌握并能付诸实践;

1.2.2. 有的知识你需要知道在哪里, 当需要的时候可以查找到并引用;

1.2.3. 有的知识存储在别人的大脑中, 你需要知道如何找到这些人. 从个人发展的角度来分析自己的知识需求, 建立个人知识存储的分类、命名规则.

1.3. 知识共享

让人知道你知道. (你才能有机会). 通过讲出来、写出来可以给你带来名声、荣誉、资金和各种资源. 

1.3.1. 社会范围内共享

1.3.2. 专业行业内共享

1.3.3. 同事朋友间共享

1.4. 知识使用

让知识带来价值. 改善我们的生活, 提升生产效率和产品(服务)质量, 赚更多的钱, 职位更高, 形成个人的影响力, 心情更愉悦等. 
1. 墨菲定律 越害怕什么就越会发生什么
2. 吉德林法则 把问题清楚的写下来 就已经解决一半了 
3. 吉尔伯特定律 工作中的最大问题 是没有人告诉你如何去做
4. 沃尔森法则 把信息和金钱排在第一位 金钱自然就会到来
5. 富克兰定律 没必要做决定时 就不要做决定

1.5. 知识创新

用创新超越竞争. 任何创新的基础和前提都是知识的创新.

1.5.1. 奥斯本检核表法

Mobile Preview


第一步:明确问题:根据创新对象明确需要解决的问题.
第二步:检核讨论:根据需要解决的问题, 参照表中列出的问题, 运用丰富想象力, 强制性地一个个核对讨论, 写出新设想.
第三步:筛选评估:对新设想进行筛选, 将最有价值和创新性的设想筛选出来.

Mobile Preview Mobile Preview Mobile Preview

1.5.2. 和田十二法


1. 加一加:加高、加厚、加多、组合等。
2. 减一减:减轻、减少、省略等。
3. 扩一扩:放大、扩大、提高功效等。
4. 变一变:变形状、颜色、气味、音响、次序等。
5. 改一改:改缺点、改不便、不足之处。
6. 缩一缩:压缩、缩小、微型化。
7. 联一联:原因和结果有何联系,把某些东西联系起来。
8. 学一学:模仿形状、结构、方法,学习先进。
9. 代一代:用别的材料代替,用别的方法代替。
10. 搬一搬:移作他用。
11. 反一反:能否颠倒一下。
12. 定一定:定个界限、标准,能提高工作效率。

2. 知识结构金字塔

知识结构金字塔的构建, 由下而上, 下面越稳固, 越容易往上走.

2.1. 基础层次

即基础知识, 它是知识工作者必备的基本文化素质和修养, 构建和谐人际关系的基础, 如国家公务员基础知识. 

2.2. 中间层次

即较为系统的本专业知识, 它是知识结构的特色, 体现出不同知识工作者的特点和特色. 如通知基础知识读本. 

2.3. 最高层次

即专业知识, 它是知识工作者的优势所在, 它包括你从事专业的最新成就、技术发展、方向和动态的知识. 

3. 价值观分类

3.1. 家庭

重视家庭, 在你的心目中家庭是第一位的. 例如: 如果老板让你加班, 你会想孩子的童年只有一次, 还是要陪孩子

3.2. 社会

你享受人际交往中如鱼得水的感觉, 你认为有自己的朋友圈子, 参与社交活动让你感到快乐

3.3. 社区

乐于参与志愿者的活动, 在你的社区你是一个热心人, 在社区中你才能有归属感和安全感

3.4. 专业

你很在乎你的职业, 认为有一个令人满意, 具有挑战机会的职业是你的财富, 你很在乎自己在职业上的进步

3.5. 物质

在同等情况下, 你会觉得物质生活条件的提升更重要

3.6. 精神

你更喜欢独处, 反思和与自己的精神对话, 或有自己的信仰

3.7. 智力

在同等条件下, 你更愿意花时间在自己的智力上的提升, 你也更愿意让别人知道你的知识, 智力水平上的优势
阅读全文 »

学习的方法

发表于 2018-05-25 | 分类于 study
  • 前言

学海无涯苦作舟

1. 学习的方法

1.1. 诸葛亮 观其大略学习法

观其大略 不求甚解

1.2. 陶渊明 会意学习法

好读书 不求甚解 每有会意 便欣然忘食

1.3. 苏轼 八面受敌学习法

读一本书一次只带一个目标或问题 以此为关注点读书 反复多遍

1.4. 欧阳修

计字日诵学习法 -- 每天读固定的数量 日积月累

1.5. 顾炎武 三读学习法

复读法 抄读法 游戏法

1.6. 费曼学习法

这是一个非常实用的学习方法。
他的方法就是,如果你要学习某个领域,你就要先把自己设定为这个领域的老师。
你所面对的是一群什么也不懂得学生,你要把他们教导成这一领域的专家,你该怎么教。

1.7. 领域学习法

强领域的学习,要花费大量力气去学习。
逻辑能力和审美知识属于弱领域学习,只需要达到一定的及格水平,就能够帮助你完成主要得工作任务。

2. 学习的高倍经验区

科学家们考察花样滑冰运动员的训练,发现在同样的练习时间内,普通的运动员更喜欢练自己早已掌握了的动作,而顶尖运动员则更多地练习各种高难度的跳。普通爱好者打高尔夫球纯粹是为了享受打球的过程,而职业运动员则集中练习在各种极端不舒服的位置打不好打的球。真正的练习不是为了完成运动量,练习的精髓是要持续地做自己做不好的事。

心理学家把人的知识和技能分为层层嵌套的三个圆形区域:最内一层是“舒适区”,是我们已经熟练掌握的各种技能;最外一层是“恐慌区”,是我们暂时无法学会的技能,二者中间则是“学习区”。只有在学习区里面练习,一个人才可能进步。有效的练习任务必须精确的在受训者的“学习区”内进行,具有高度的针对性。在很多情况下这要求必须要有一个好的老师或者教练,从旁观者的角度更能发现我们最需要改进的地方。

Mobile Preview

3. 为什么学习易经

我一直在思考如何提升自己预测事物发展规律的能力, 发现存在已知信息不全的问题. 大量的信息掌握在少数人手中. 没有练手测试获取信息的手段的情况. 很多事物无法得到准确的拟合函数. 那么一个问题出来了, 古代先贤中很多人都是在无实际战斗经验的情况下, 直接挂帅上阵, 并取得非凡的成就. 这个里面隐藏了什么秘密. 于是开始使用排除法 第一个就是选择了易经 先尝试证伪. 在学习过程中发生了一些不可思议的事情. 思维就好像打开了另外一扇门.

我用一个形象的例子来说明这种模式. 有一面透明的玻璃, 当一个人走过来, 玻璃上面开始流下大量的雨水, 这个时候人会处于模糊状态, 如果你在模糊状态下, 还可以准确识别出来这个人是谁. 那么说明你萃取出了非常优秀的拟合函数 简单而言, 正常人是看清楚这个人 而识别, 而这种模式是 看不清楚 还可以识别. 可以称为模糊态识别. 当在这种情况下你还可以准确识别出来, 那么说明你正确的萃取出这个人的神韵(拟合函数). 而秘密就隐藏在他的下面.

当你拿到这个拟合函数, 以此为基础, 你可以在脑海里面直接模拟出其他的行为模式. 比如这个人坐下来 会是什么姿势. 把你模拟的各种参数代入 你会得到 符合角色形象, 不符合角色形象等等反馈.

初级, 给角色一句台词, 你会发现 这个角色 什么样的话 符合他的角色形象 他说出来 契合度非常高 没有违和感. 或者说反之, 完全不符合角色形象 这句话 他说不出来 等等.

中阶, 这个角色在你的脑海里面 会随着你的潜意识 引导 而自动对各种事务做出反馈.

高阶, 直接虚拟出一个未知的角色, 赋予他对应的属性, 以中阶为基础 拟合到一定程度(量变产生质变) 你会发现 就好像你确实认识这么一个人. 他是真实存在的. 大约作家创造一些经典角色应该是属于这种模式.

专家, 一叶而知秋

创意: 天道 地道 人道 创造一个价值观学习的AI系统, 可以通过深度学习, 学习人的价值观判断, 准确得知某人或者团体 对 某事物的判断分支预测 以及后续操作的策略及方法

4. 学习的名言

1. 锲而舍之,朽木不折;锲而不舍,金石可镂。
2. 人生中三种东西最宝贵——信心. 健康和知识;学习中三种品质最可贵——好学. 好问和好思。
3. 流水不腐,户枢不蠹,民生在勤。
4. 天才不是别的,而是辛劳和勤奋。——比丰
5. 不知理义,生于不学。
6. 学问学问,又学又问;学习学习,又学又习。
7. 骐骥一跃,不能十步;驽马十驾,功在不舍;锲而舍之,朽木不折;锲而不舍,金石可镂。
8. 虚心使人进步,骄傲使人落后,我们应当永远记住这个真理。
9. 天才就是百分之九十九的汗水加百分之一的灵感。——爱迪生
10. 勤勉而顽强地钻研,永远可以使你百尺竿头更进一步。
11. 业精于勤而荒于嬉,行成于思而毁于随。——韩愈
12. 宝剑锋从磨砺出,梅花香自苦寒来。
13. 世上无难事,只要肯登攀。
14. 读书百遍,其义自见。——《三国志》
15. 好学而不勤问非真好学者。
16. 没有求知欲的学生,就像没有翅膀的鸟儿。
17. 科学技术是生产力,而且是第一生产力。
18. 聪明在于勤奋,天才在于积累。
19. 智慧源于勤奋,伟大出自平凡。
20. 旧书不厌百回读,熟读精思子自知。——苏轼
21. 渠那得清如许,为有源头活水来。——朱熹
22. 小时不教成浑虫,长大不学成懒龙。
23. 地不耕种,再肥沃也长不出果实;人不学习,再聪明也目不识丁。
24. 岁去弦吐箭。
25. 学习不能好高骛远,须一步一个脚印;进步不能一步登天,须一步一级台阶。
26. 水滴集多成大海,读书集多成学问。
27. 懒人做工作,越懒越费力。
28. 没有人会因学问而成为智者。学问或许能由勤奋得来,而机智与智慧却有懒于天赋。
29. 你热爱生命吗?那么别浪费时间,因为时间是组成生命的材料。
30. 天道酬勤。
31. 勤学如春起之苗,不见其增,日有所长;辍学如磨刀之石,不见其损,日有所亏。
32. 不愤不启不悱不发。
33. 懒汉的头脑是魔鬼的工厂。
34. 谨慎和勤奋带来好运,勤勉是好运之母。
35. 人生在勤,不索何获。——张衡
36. 艺术的大道上荆棘丛生,这也是好事,常人望而却步,只有意志坚强的人例外。——雨果
37. 勤奋的人是时间的主人,懒惰的人是时间的奴隶。
38. 自古以来学有建树的人,都离不开一个“苦”字。
39. 勤奋是成功之母,懒惰乃万恶之源。
40. 勤劳一日,可得一夜安眠;勤劳一生,可得幸福长眠。
41. 驾驭命运的舵是奋斗。不抱有一丝幻想,不放弃一点机会,不停止一日努力。
42. 奇文共欣赏,疑义相如析。——陶渊明
43. 勤奋出天才,实践出真知。
44. 路漫漫其修道远,吾将上下而求索。——屈原
45. 非学无以广才,非志无以成学。——诸葛亮
46. 绳锯木断,水滴石穿。
47. 提出一个问题,往往比解决一个问题更重要。
48. 吾生也有涯,而知也无涯。——庄子
49. 书痴者文必工,艺痴者技必良。——蒲松龄
50. 勤勉是幸运的右手,世俭是幸运的左手。
51. 成功=艰苦劳动+正确方法+少说空话。——爱因斯坦
52. 日日行,不怕千万里;常常做,不怕千万事。
53. 书山有路勤为径,学海无涯苦作舟。
54. 人勤地生宝,人懒地生草。
55. 贵有恒何必三更眠五更起,最无益只怕一日曝十日寒。
56. 懒散能磨去才智的锋芒。
57. 三更灯火五更鸡,正是男儿读书时。黑发不知勤学早,白首方悔读书迟。——颜真卿
58. 才华是刀刃,辛苦是磨刀石,很锋利的刀刃,若日久不用磨,也会生锈,成为废物。
59. 形成天才的决定因素应该是勤奋。——郭沫若
60. 勤能补拙是良训,一分辛劳一分才。
61. 玉不啄,不成器;人不学,不知道。——《礼记》
62. 不经历风雨,怎能见彩虹?
63. 少壮不努力,老大徒伤悲。
64. 读书百遍,其义自见。
65. 盛年不再来,一日难再晨,及时当勉励,岁月不待人。——陶渊明
66. 天才就是这样,终身努力便成天才。——门捷列夫
67. 聪明出于勤奋,天才在于积累。——华罗庚
68. 读书如蜜蜂采花,思考如蜜蜂酿蜜,只有既采又酿,才能得到香甜的“知识蜂蜜”。
69. 天行健,君子以自强不息。
70. 一日读书一日功,一日不读十日空。
71. 勤奋者废寝忘食,懒惰人总没有时间。
72. 比赛必有一胜,苦学必有一成。
73. 落日无边江不尽,此身此日更须忙。
74. 只要功夫深,铁杆磨成针。
75. 勤能补拙是良训,一分耕耘一分才。——华罗庚
76. 笨人先起身,笨鸟早出林。
77. 你想成为幸福的人吗?但愿你首先学会吃得起苦。——屠格涅夫
78. 千淘万浪虽辛苦,吹尽黄沙始到金。——刘禹锡
79. 读书之法,在循序而渐进,熟读而精思。——朱熹
80. 惰能致贫。
81. 莫等闲,白了少年头,空悲切。
82. 天才就是无止境刻苦勤奋的能力。——卡莱尔
83. 懒惰出乞丐。
84. 千里之行,始于足下。——老子
85. 一寸光阴一寸金,寸金难买寸光阴。
86. 灵感不过是顽强的劳动而获得的奖赏。——列宾

5. 谎言从哪里来

“如果尖锐的批评完全消失,温和的批评将会变得刺耳。如果温和的批评也不被允许,沉默将被认为居心叵测。如果沉默也不再允许,赞扬不够卖力将是一种罪行。如果只允许一种声音存在,那么,唯一存在的那个声音就是谎言。”

阅读全文 »

code

发表于 2018-05-05 | 分类于 code

1 如何写好代码

良好的代码更易于阅读、理解、调试和修改,最重要的是它的缺陷也更少。显然,编写良好的代码需要更多的时间,但是从长远来看,它也具有更多的价值,因为这降低了维护的成本,而且具有更好的可重用性。

事实上,我们可以将好的代码等同为可重用的代码,这也是本篇文章罗列的许多技巧背后的驱动原则。作为一个要实现特定功能的开发者,代码可以实现你的短期目标,但如果没有其他人希望重用它(包括未来的自己),这些代码一定会缺失某些东西。无论它是太复杂,还是太具体,在不同情况下都有很大可能会出错,或者不被其他开发者信任。

我发现,只要尝试坚持将下面的最佳实践应用于你编写的所有代码(包括你的实验和原型),无论你现在的经验水平如何,都会编写出更好的代码。

1. 遵循单一职责原则
函数是程序员的工具中最重要的抽象形式。它们能更多地被重复使用,你需要编写的代码就越少,代码也因此变得更可靠。较小的函数遵循单一职责原则更有可能被重复使用。

2. 尽量减少共享状态
你应该尽量减少函数之间的隐式共享状态,无论它是文件作用域的变量还是对象的成员字段,这有利于明确要求把值作为参数。当能明确地显示函数需要什么才可以产生所需的结果时,代码会变得更容易理解和重用。

对此的一个推论是,在一个对象中,相对于成员变量,你更应该优先选择静态的无状态变量 (static stateless variables)。

3. 将“副作用”局部化
理想的副作用(例如:打印到控制台、日志记录、更改全局状态、文件系统操作等)应该被放置到单独的模块中,而不是散布在整个代码里面。函数中的一些“副作用”功能往往违反了单一职责原则。

4. 优先使用不变的对象
如果一个对象的状态在其构造函数中仅被设置一次,并且从不再次更改,则调试会变得更加容易,因为只要构造正确就能保持有效。这也是降低软件项目复杂性的最简单方法之一。

5. 多用接口少用类
接收接口的函数(或 C++ 中的模板参数和概念)比在类上运行的函数更具可重用性。

6. 对模块应用良好的原则
寻找机会将软件项目分解成更小的模块(例如库和应用程序),以促进模块级别的重用。对于模块,应该遵循的一些关键原则是:

尽可能减少依赖
每个项目应该有一个明确的职责
不要重复自身
你应该努力使你的项目保持小巧和明确。

7. 避免继承
在面向对象编程中,继承 —— 特别是和虚拟函数结合使用时,在可重用性方面往往是一条死胡同。我很少有成功的使用或编写重载类的库的经历。

8. 将测试作为设计和开发的一部分
我不是测试驱动开发的坚定分子,但开始编码时先编写测试代码会使得代码十分自然地遵循许多指导原则。这也有助于尽早发现错误。不过要注意避免编写无用的测试,良好的编码实践意味着更高级别的测试(例如单元测试中的集成测试或特征测试)在揭示缺陷方面更有效。

9. 优先使用标准库而不是手写的
我经常看到更好版本的 std::vector 或 std::string,但这几乎总是浪费时间和精力。一个明显的事实是 —— 你正在为一个新的地方引入 bug,其他开发者也不太可能重用你的代码,因为没有被广泛理解、支持和测试。

10. 避免编写新的代码
这是每个程序员都应遵循的最重要的教诲:最好的代码就是还没写的代码。你写的代码越多,你将遇到的问题就越多,查找和修复错误就越困难。

在写一行代码之前先问一问自己,有没有一个工具、函数或者库已经实现了你所需要的功能?你真的需要自己实现这个功能,而不是调用一个已经存在的功能吗?

写在最后的话
我发现编程是一门与学习艺术或运动非常相似的技能,你通过刻意的练习和从别人的经验中学习会得到更好的结果。不断提升你产出的代码质量有助于你成为更优秀的程序员。
阅读全文 »

love

发表于 2018-04-25 | 分类于 love

1. Love

Love(爱)=attraction(吸引)→communicate(沟通)→understand(理解)→privity(默契)→accordance(和谐)

阅读全文 »

gameserver

发表于 2018-04-25 | 分类于 gameserver

游戏服务器开发方面的总结,此文章只是宽泛的总结开发中遇到的,使用的,见过的技术点,没有对每个技术点进行深入描述。

1. 游戏类型

  • MMORPG
  • FPS
  • 文字/解密
  • 2D格斗
  • 赛车、球类竞技运动模拟
  • 休闲小游戏
  • 其他 本文以MMORPG类型为例,总结服务器开发的技术栈。

2. 架构

  • 多服架构,目前主流MMORPG服务器为了提升承载人数,采用多达几十个服务器进程来形成一组游戏服务器服务玩家。通常会按功能分类,比如全局服,代理服,聊天服,战场服,排行榜服,组队服等等。也会按功能或者场景分,比如主城场景和副本场景分开配置在不同的服务器上。网络拓扑结构,服务自动发现和注册,总线结构或者网状结构,单个进程挂掉影响不大,灵活水平扩展。
  • 数据库通常采用关系型数据库如MYSQL,配置多个数据库缓存进程多线程来访问数据库。序列化存入与反序列化读取。数据备份,从库策略。 IO多路复用网络,游戏服务器对并发相比互联网程序要求不高,但对延迟要求苛刻。所以必然是独立的网络线程,甚至用协程来处理网络连接。采用TCP或者UDP,涉及网络库,自定义协议以及加密。
  • 逻辑主循环处理逻辑,帧率随游戏不同而要求不同,tick管理,游戏卡顿后的追帧。同时包含海量游戏玩法,各种功能模块。
  • 日志,一般是独立的日志进程。主要分为文本日志记录报错信息和玩法数据日志提供给运营分析。文本日志一般会记载服务器磁盘上,会有一定的磁盘io风险。运营是需求玩法内埋点统计,会发到数据中心,然后做出各种图表分析展示。

3. 基础功能

  • 场景管理,地图管理,按格子划分地图。阻挡以及动态阻挡。
  • AOI(Area of Interest)对象进入和离开的维护列表,移动同步视野内的对象,战斗进站脱战的同步。常见有九宫格,六边形网格,十字链表等方法。
  • 寻路,A*以及改进避免墙根,跨图寻路,主干道或者基于格子的寻路
  • 状态同步或帧同步,录像回放,移动同步
  • 热更新机制
  • AI状态机,有限状态机,行为树。
  • 流程图或蓝图。
  • 功能开关

4. 存储

  • mysql
  • 备份
  • 从库
  • 存储引擎 InnoDB MyISAM
  • 索引,最左匹配原则,失效及优化
  • 数据库事务,存储过程,触发器
  • sql语句优化,explain分析,选择合适的数据类型,表的拆分,系统配置
  • nosql 以redis为例
  • 防止脏读
  • 分布式锁
  • 异步队列
  • 增量持久化
  • 同步机制
  • 集群

5. 通信

多线程或线程池由于竞争和死锁可能不被采用,目前较多的是I/O多路复用模型。

  • 系统内核提供
    • select
    • poll
    • kqueue
    • epoll
    • IOCP
  • 应用层编程模型
    • Reactor
    • Proactor
    • Actor
  • 常见网络开源库
    • libevent/libev Reactor模型
    • Mogo Reactor模型
    • Boost:Asio Proactor模型
    • Skynet Actor模型

利用多核cpu优势设置最优线程数,还有通信方式如下

  • 共享内存
  • 管道
  • Socket
    • http短链接,与第三方接口交互
    • TCP/UDP自己优化协议与序列化
    • 非阻塞调用,多路复用epoll
    • libevent,libev,Boost.Asio,skynet等多线程网络库
    • 支持SSL
  • 通信协议
    • rpc协议 protobuf
    • 频率限制与熔断
    • 心跳检测,版本号
    • TCP之Nagle算法和延迟确认及关闭参数,丢包与拥塞控制算法BBR
    • UDP自定义解析与约定
    • 组播
    • 消息队列,持久化
    • 加密协议,防注入,http正反向代理
  • 逻辑
    • 正确 首先要保证实现逻辑正确,服务器和客户端数据同步,多进程间数据同步,以及一些玩法操作,如背包到仓库转移道具,玩家下线保存数据。
    • 安全 注重编程安全,不相信来源客户端的数据,接口进行效验。比如购物流程,先消耗货币时然后记日志再发货。
    • 高效 利用适当的数据结构如map或者数组存储数据,用适当的算法进行排序或查找。 易于维护 代码结构清楚,接口定义名字显而易懂,适当出事。别人可以轻松调用你提供的接口和理解你的代码,易于维护和扩展。
  • 运营
    • Prometheus拉取日志
    • Granfana监测数据或者展示数据
    • 基于Docker容器和Kubernetes编排快速部署
    • 云服务器
  • 开发与调试
    • 开发语言 C/C++,lua, python,go
    • gdb
    • bt查看堆栈
    • n/ni,s/si单步
    • disassemble反汇编
    • IDA
    • lua或者python下相关的调试工具
    • 堆栈溢出,数组越界,野指针,未初始化内存
  • 性能分析
    • 基础
      • cpu
        • 寄存器
        • L1,L2,L3级缓存
        • 多核
        • 流水线,分支预测,不做防御性编程
    • 内存
      • 物理地址,虚拟地址,逻辑地址,线性地址
      • 减少读写内存的次数
    • 分析工具
      • CPU:ps,top,sar
      • 内存:free,vmstat
      • io:iostat,iotop
      • 网络:ifconfig,netstat
      • 函数调用:perf
  • 安全
    • DDOS攻击
    • IP黑白名单
    • 硬件网关拦截
    • 服务器对通信进行逻辑判断及使用的资源进行预估
    • 外挂
    • 伪造服务器通信协议
    • 注入,接口改参数调用
    • 修改客户端所在内存
阅读全文 »

游戏随笔

发表于 2018-04-25 | 分类于 game

1. 游戏常规玩法

1.1. 功能性玩法(基础的模块功能)

1.2. 创意性玩法(亮点)

1.3. 组合型玩法(模块间进行N*N的组合)

1.4. 随机性玩法(概率性产出)

2. FPS游戏

2.1. 天上掉茅台 天上掉大餐 要可以看到 东西往哪掉.(贪狼)

2.2. 爆头 特写 震撼感(太阳)

2.3. 增加超级跑车(贪狼)

2.4. 拯救美女任务(贪狼)

2.5. 随机性的增加(天机)

2.6. 侏罗纪公园地图(主题地图 贪狼)

2.7. 黑夜模式 任意地图都可以 可以提供闪光弹类 篝火类道具(太阳)

2.8. 预见性开发(提前半年研发新的内容) (天机)

2.9. 游戏中获得被人尊敬/被人感动的感觉 (玫瑰雨) (天同 太阳)

2.10. 杠杆法则 点爆发. 在主力据点 投入更多的兵力(武曲)

2.11. 投机性玩法增加(贪狼)

2.12. 出奇制胜性玩法(七杀)

2.13. 投资性玩法(太阴)

阅读全文 »

distributed

发表于 2018-04-25 | 分类于 distributed

1. 分布式系统相关概念

1.1 模型 Mobile Preview

1.1.1 节点

节点是一个可以独立按照分布式协议完成一组逻辑的程序个体,工程中往往指进程。

1.1.2 通信

节点之间完全独立互相隔离,通信唯一方式是通过不可靠的网络。

1.1.3 存储

节点可以通过将数据写入与节点在同一台机器的本地存储设备保存数据

1.1.4 异常

(1) 机器down机

大型集群每日down机发生概率0.1%,后果是该机器节点不能工作、重启后失去所有内存信息。

(2) 网络异常

消息丢失:网络拥塞、路由变动、设备异常、network partition(部分不正常) 消息乱序:IP存储转发、路由不确定性、网络报文乱序 数据错误:比特错误 不可靠TCP:到达协议栈之后与到达进程之间、突然down机、分布式多个节点的tcp乱序 (3) 分布式系统的三态

任何请求都要考虑三种情况:成功、失败、超时。对于超时的请求,无法获知该请求是否被成功执行。

(4) 存储数据丢失

(5) 其他异常

IO操作缓慢、网络抖动、拥塞

1.2 副本

1.2.1 副本的概念

replica/copy 指在分布式系统中为数据或服务提供的冗余:

数据副本:在不同的节点上持久化同一份数据。例如GFS同一个chunk的数个副本 服务副本:数个节点提供相同的服务,服务不依赖本地存储,数据来自其他节点。例如Map Reduce的Job Worker 1.2.2 副本的一致性

副本的consistency是针对分布式系统而言的,不是针对某一个副本而言。根据强弱程度分为:

强一致性:任何时刻任何用户/节点都可以读到最近一次更新成功的副本数据 单调一致性:任何时刻任何用户一旦读到某个数据某次更新后的值,就不会再读到更旧的值 会话一致性:任何时刻任何用户在某次会话内一旦读到某个数据某次更新后的值,就不会在这次会话再读到更旧的值 最终一致性:各个副本的数据最终将达到一致状态,但时间不保证 弱一致性:没有实用价值,略。 1.3 衡量分布式系统的指标

1.3.1 性能

吞吐量:某一时间可以处理的数据总量 响应延迟:完成某一功能需要使用的时间 并发能力:QPS(query per second) 1.3.2 可用性

系统停服务的时间与正常服务的时间的比例

1.3.3 可扩展性

通过扩展集群机器提高系统性能、存储容量、计算能力的特性,是分布式系统特有的性质

1.3.4 一致性

副本带来的一致性问题

1.3.5:分布式架构系统的可视化监控方案

1、架构师是如何解决分布式架构系统监控难题的。

2、ELK是谁,从哪里来,要到哪里去?

3、京东海量数据检索,我们一起来感受。

4、只需点击鼠标,高逼格监控界面一键搞定。

5、你离互联网架构师到底有远?听听就知道。

6、架构师的技术栈应该是怎样的?你来问,我一定答。 Mobile Preview

2. 分布式系统原理

2.1 数据分布方式

无论计算还是存储,问题输入对象都是数据,如何拆分分布式系统的输入数据称为分布式系统的基本问题。

2.1.1 哈希方式

一种常见的哈希方式是按照数据属于的用户id计算哈希。

Mobile Preview

优点:

散列性:好 元信息:只需要函数+服务器总量 缺点:

可扩展性:差。一旦集群规模扩展,大多数数据都需要被迁移并重新分布 数据倾斜:当某个用户id的数据量异常庞大时,容易达到单台服务器处理能力的上限 2.1.2 按数据范围分布

将数据按特征值的值域范围划分数据。例如将用户id的值域分为[1, 33), [33, 90), [90, 100),由三台服务器处理。注意区间大小与区间内的数据大小没有关系。

Mobile Preview 优点:

可扩展性:好。灵活根据数据量拆分原有数据区间 缺点:

元信息:大。容易成为瓶颈。 2.1.3 按数据量分布

与按范围分布数据方式类似,元信息容易成为瓶颈

2.1.4 一致性哈希

(1) 以机器为节点

用一个hash函数计算数据(特征)的hash值,令该hash函数的值域成为一个封闭的环,将节点随机分布在环上。每个节点负责处理从自己开始顺时针到下一节点的值域上的数据。

优点:

可扩展性:极好。任意动态添加、删除节点,只影响相邻节点 缺点:

元信息:大而且复杂 随机分布节点容易造成不均匀 动态增加节点后只能缓解相邻节点 一个接点异常时压力全转移到相邻节点 (2) 虚节点

虚节点,虚节点个数远大于机器个数,将虚节点均匀分布到值域环上,通过元数据找到真实机器节点。

优点:

某一个节点不可用导致多个虚节点不可用,均衡了压力 加入新节点导致增加多个虚节点,缓解了全局压力 2.1.5 副本与数据分布

前边4中数据分布方式的讨论中没有考虑数据副本的问题。

(1) 以机器为单位的副本 Mobile Preview

缺点:

恢复效率:低。假如1出问题,从2 3 中全盘拷贝数据较消耗资源,为避免影响服务一般会将2下线专门做拷贝,导致正常工作的副本只有3 可扩展性:差。假如系统3台机器互为副本,只增加两台机器的情况下无法组成新的副本组。 可用性:差。一台donw机,剩下两台压力增加50%。理想情况会均摊到整个集群,而不是单个副本组 (2) 以数据段为单位的副本

例如3台服务器,10G数据,按100hash取模得到100M每个的数据段,每台服务器负责333个数据段。一旦将数据分成数据段,就可以以数据段为单位管理副本,副本与机器不再硬相关。

例如系统中3个数据o p q, 每个数据段有三个副本,系统中有4台机器: Mobile Preview

优点:

恢复效率:高。可以整个集群同时拷贝 可用性:好。机器donw机的压力分散到整个集群 工程中完全按照数据段建立副本会引起元数据开销增大,这种做法是将数据段组成一个大数据段。

2.1.6 本地化计算

如果计算节点和存储节点位于不同的物理机器,开销很大,网络带宽会成为系统的瓶颈;将计算调度到与存储节点在同一台物理机器上的节点计算,称为计算本地化。

2.2 基本副本协议

2.2.1 中心化副本控制协议

中心化副本控制协议的基本思路:由一个中心节点协调副本数据的更新、维护副本之间一致性,并发控制 并发控制:多个节点同时需要修改副本数据时,需要解决的“写写”、“读写”等并发冲突 单机系统使用加锁等方式进行并发控制,中心化协议也可以使用。缺点是过分依赖中心节点。

Mobile Preview 2.2.2 primary-secondary协议

这是一种常用的中心化副本控制协议,有且仅有一个节点作为primary副本。有4个问题需要解决:

(1) 数据更新基本流程

由primary协调完成更新 外部节点将更新操作发给primary节点 primary节点进行并发控制并确定并发更新操作的先后顺序 primary节点将更新操作发送给secondary节点 primary根据secondary节点的完成情况决定更新是否成功,然后将结果返回外部节点

Mobile Preview

其中第4步,有些系统如GFS使用接力的方式同步数据,primary -> secondary1 ->secondary2,避免primary的带宽称为瓶颈。

(2) 数据读取方式

方法一:由于数据更新流程都是由primary控制的,primary副本上数据一定最新。所以永远只读primary副本的数据能够实现强一致性。为了避免机器浪费,可以使用之前讨论的方法,将数据分段,将数据段作为副本单位。达到每台机器都有primary副本的目的。 方法二:由primary控制secondary的可用性。当primary更新某个secondary不成功时,将其标记为不可用。不可用的secondary副本继续尝试与primary同步数据,直到成功同步后转为可用状态。 方法三:Quorum机制。后续讨论。 (3) primary副本的确定与切换

如何确定primary副本?primary副本所在机器异常时,如何切换副本? 通常在primary-secondary分布式系统中,哪个副本为primary这一信息属于元信息,由专门元数据服务器维护。执行更新操作时,首先查询元数据服务器获取副本的primary信息,进一步执行数据更新流程。 切换副本难点有两个方面:如何确定节点状态以发现原primary节点出现异常(Lease机制)。切换primary后不能影响一致性(Quorum机制)。 (4) 数据同步

当发生secondary与primary不一致的情况,需要secondary向primary进行同步(reconcile)。

不一致的原因有3种:

网络分化等异常导致secondary落后于primary 常用的方式是回放primary上的操作日志(redo日志),追上primary的更新进度 某些协议下secondary是脏数据 丢弃转到第三种情况;或者设计基于undo日志的方式 secondary是一个新增副本完全没有数据 直接copy primary的数据,但要求同时primary能继续提供更新服务,这就要求primary副本支持快照(snapshot)功能。即对某一刻的副本数据形成快照,然后copy快照,再使用回放日志的方式追赶快照后的更新操作。 2.2.3 去中心化副本控制协议

去中心化副本控制协议没有中心节点,节点之间通过平等协商达到一致。工程中唯一能应用在强一致性要求下的是paxos协议。后续介绍。

2.3 lease机制

2.3.1 基于lease的分布式cache系统

(1) 需求:分布式系统中有一个节点A存储维护系统的元数据,系统中其他节点通过访问A读取修改元数据,导致A的性能成为系统瓶颈。为此,设计一种元数据cache,在各个节点上cache元数据信息,使得:

减少对A的访问,提高性能 各个节点cache数据始终与A一致 最大可能处理节点down机、网络中断等异常 (2) 解决方案原理:

A向各个节点发送数据的同时向节点颁发一个lease,每个lease具有一个有效期,通常是一个明确的时间点。一旦真实时间超过次时间点则lease过期 在lease有效期内,A保证不会修改对应数据的值。 A在修改数据时,首先阻塞所有新的读请求,等待之前为该数据发出的所有lease过期,然后修改数据的值 (3) 客户端节点读取元数据的流程

if (元数据处于本地cache && lease处于有效期内) { 直接返回cache中的元数据; } else { Result = 向A请求读取元数据信息; if (Result.Status == SUCCESS) { WriteToCache(Result.data, Result.lease); } else if (Result.Status == FAIL || Result.Status == TIMEOUT) { retry() or exit(); } } (4) 客户端节点修改元数据的流程

节点向A发起修改元数据的请求 A收到修改请求后阻塞所有新的读数据请求,即接受读请求但不返回数据 A等待所有与该元数据相关的lease超时 A修改元数据并向节点返回修改成功 (5) 优化点

A修改元数据时要阻塞所有新的读请求 这是为了防止发出新的lease而引起不断有新的cache节点持有lease,形成活锁。优化的手段是:一旦A进入修改流程,不是盲目屏蔽读请求,而是对读请求只返回数据不返回lease。造成cache节点只能读取数据,不能cache数据。进一步的优化是返回当前已发出的lease的最大值。这样同样能避免活锁问题。 A在修改元数据时需要等待所有lease过期 优化手段是:A主动通知各个持有lease的节点,放弃lease并清除cache中相关数据。如果收到cache节点的reply,确认协商通过,则可以提前完成修改动作;如果中间失败或超时,则进入正常等待lease过期的流程,不会影响协议正确性。 2.3.2 lease机制的深入分析

(1) lease定义

lease是由颁发者授予的再某一有效期内的承诺。颁发者一旦发出lease,无论接收方是否收到,无论后续接收方处于何种状态,只要lease不过期则颁发者一定严守承诺;另一方面,接受者在lease的有效期内可以使用颁发者的承诺,一旦lease过期则一定不能继续使用。

(2) lease的解读

由于lease仅仅是一种承诺,具体的承诺内容可以非常宽泛,可以是上节中数据的正确性,也可以是某种权限。例如并发控制中同一时刻只给某一个节点颁发lease,只有持有lease才能修改数据;例如primary-secondary中持有lease的节点具有primary身份等等

(3) lease的高可用性

有效期的引入,非常好的解决了网络异常问题。由于lease是确定的时间点,所以可以简单重发;一旦受到lease之后,就不再依赖网络通信 (4) lease的时钟同步

工程上将颁发者有效期设置的比接受者打,大过时钟误差,来避免对lease有效性产生影响。

2.3.3 基于lease机制确定节点状态。

在分 布式系统中确定一个节点是否处于正常工作状态困难的问题。由可能存在网络分化,节点的状态无法通过网络通信来确定的。

例如: a b c 互为副本 a为主节点,q为监控节点。q通过ping来判断abc的状态,认为a不能工作。就将主节点切换成b。但是事实上仅仅是ping没收到,a自己认为自己没有问题,就出现了 a b都觉得自己是主节点的“双主”问题。

解决方法是q在发送heartbeat时加上lease,表示确认了abc的状态,并允许节点在lease有效期内正常工作。q给primary节点一个特殊的lease,表示该节点作为primary工作。一旦q希望切换primary,只需要等待之前primary的lease过期,避免出现双主问题。

2.3.4 lease的有效期时间选择

工程上一般选择10秒钟

2.4 Quorum机制

2.4.1 Write-all-read-one

对于某次更新操作Wi,只有在所有N个副本上都更新成功,才认为是一次“成功提交的更新操作”,对应的数据为“成功提交的数据”,数据版本为Vi。

缺点:

频繁读写版本号容易成为瓶颈 N-1个副本成功的情况下,仍然被认为更新失败 2.4.2 Quorum定义

WARO最大程度增强读服务可用性,最大程度牺牲写服务的可用性。将读写可用性折中,就会得到Quorum机制:

Quorum机制下,某次更新Wi一旦在所有N个副本中的W个副本上成功,就称为“成功提交的更新操作”,对应的数据为“成功提交的数据”。令R > N - W,最多需要读取R个副本则一定能读到Wi更新后的数据Vi。

Mobile Preview 由此可见WARO是Quorum中W = N时的一个特例。

2.4.3 读取最新成功提交的数据

Quorum的定义基于两个假设:

读取者知道当前已提交的版本号 每次都是一次成功的提交 现在取消这两个假设,分析下面这个实际问题:

N = 5, W = 3, R = 3,某一次的副本状态为(V2 V2 V2 V1 V1)。理论上读取任何3个副本一定能读到最新的数据V2,但是仅读3个副本却无法确定读到最新的数据。

例如读到的是(V2 V1 V1),因为当副本状态为(V2 V1 V1 V1 V1)时也会读到(V2 V1 V1),而此时V2版本的数据是一次失败的提交。因此只读3个无法确定最新有效的版本是V2还是V1。

Mobile Preview 解决方案:

限制提交的更新操作必须严格递增,只有前一个更新操作成功后才可以提交下一个。保证成功的版本号连续 读取R个副本,对其中版本号最高的数据:若已存在W个,则该数据为最新结果;否则假设为X个,则继续读取其他副本直到成功读取W个该版本的副本。如果无法找到W个,则第二大的版本号为最新成功提交的版本。 因此单纯使用Quorum机制时,最多需要读取R + (W - R - 1) = N个副本才能确定最新成功提交的版本。实际工程中一般使用quorum与primary-secondary结合的手段,避免需要读取N个副本。

2.4.4 基于Quorum机制选择primary

在primary-secondary协议中引入quorum机制:即primary成功更新W个副本后向用户返回成功 当primary异常时需要选择一个新的primary,之后secondary副本与primary同步数据 通常情况下切换primary由监控节点q完成,引入quorum之后,选择新的primary的方式与读取数据相似,即q读取R个副本,选择R个副本中版本号最高的副本作为新的primary。新primary与除去q选举出的副本外,其余的至少W个副本完成数据同步后,再作为新的primary。

蕴含的道理是:

R个副本中版本号最高的副本一定蕴含了最新的成功提交的数据。 虽然不能确定版本号最高的数据 == 这个最新成功提交的数据,但新的primary立即完成了对W个副本的更新,从而使其变成了成功提交的数据 例如:N = 5 W = 3 R = 3的系统,某时刻副本状态(V2 V2 V1 V1 V1),此时V1是最新成功提交的数据,V2是处于中间状态未成功提交的数据。V2是作为脏数据扔掉,还是作为新数据被同步,完全取决于能否参与q主持的新primary的选举大会。如果q选择(V1 V1 V1),则在接下来的更新过程中 V2会被当成脏数据扔掉;如果q选择(V2 V1 V1)则V2会将V1更新掉,成为最新成功的数据。

Mobile Preview 2.5 日志技术

日志技术不是一种分布式系统技术,但分布式系统广泛使用日志技术做down机恢复。

2.5.1 数据库系统日志回顾

数据库的日志分为 undo redo redo/undo no-redo/no-undo四种,这里不做过多介绍。

2.5.2 redo与check point

通过redo log恢复down机的缺点是需要扫描整个redolog,回放所有redo日志。解决这个问题的办法是引入checkpoint技术,简化模型下checkpoint就是在begin和end中间,将内存以某种数据组织方式dump到磁盘上。这样down机恢复时只需要从最后一个end向前找到最近一个begin,恢复中间的内存状态即可。

2.5.3 no-undo/no-redo

这种技术也叫做01目录,即有两个目录,活动目录和非活动目录,另外还有一个主记录,要么“记录目录0”,妖魔记录“使用目录1”,目录0和1记录了各个数据在日志文件中的位置。

2.6 两阶段提交协议

2.7 基于MVCC的分布式事务

由于这两个都与数据库事务有关,且两阶段提交协议在工程中使用价值不高,均略去不谈。

2.8 Paxos协议

唯一在工程中有使用价值的去中心化副本节点控制协议。过于复杂,没看懂。

2.9 CAP理论

Consitency Availiablity Tolerance to the Partition of network 无法设计一种分布式协议,使得完全具备CAP三个属性。永远只能介于三者之间折中。理论的意义是:不要妄想设计完美的分布式系统。

阅读全文 »

全脑开发

发表于 2018-04-25 | 分类于 brain
  • 前言
    人的高阶能力的提升源于低阶能力的组合, 使用10000个小时理论强化低阶能力可以极大的提高学习的速度.
    

    Mobile Preview

Mobile Preview

Mobile Preview

Mobile Preview

阅读全文 »

deep

发表于 2018-04-05 | 分类于 deep
  • 前言

花了点时间 研究了一下. 感觉有点像人类的直觉能力.

简单来说 就是得到了答案 不知道为什么是这个答案.

比如买A物品的人 会比较容易喜欢B物品. 得到这个结论. 貌似也无法解释为什么.

用对比法则 人的直觉能力 是因为人思考的多维度. 同理 计算机在这个方面 如果想超越人类 需要量变产生质变. 在不同的维度之间产生互相n*m的效果.

阅读全文 »

systemd

发表于 2018-03-25 | 分类于 systemd

Systemd 是 Linux 系统工具,用来启动守护进程,已成为大多数发行版的标准配置。

本文介绍它的基本用法,分为上下两篇。今天介绍它的主要命令,下一篇介绍如何用于实战。

一、由来 历史上,Linux 的启动一直采用init进程。

下面的命令用来启动服务。

$ sudo /etc/init.d/apache2 start

或者

$ service apache2 start 这种方法有两个缺点。

一是启动时间长。init进程是串行启动,只有前一个进程启动完,才会启动下一个进程。

二是启动脚本复杂。init进程只是执行启动脚本,不管其他事情。脚本需要自己处理各种情况,这往往使得脚本变得很长。

二、Systemd 概述 Systemd 就是为了解决这些问题而诞生的。它的设计目标是,为系统的启动和管理提供一套完整的解决方案。

根据 Linux 惯例,字母d是守护进程(daemon)的缩写。 Systemd 这个名字的含义,就是它要守护整个系统。

Mobile Preview

Mobile Preview

(上图为 Systemd 作者 Lennart Poettering)

使用了 Systemd,就不需要再用init了。Systemd 取代了initd,成为系统的第一个进程(PID 等于 1),其他进程都是它的子进程。

$ systemctl –version 上面的命令查看 Systemd 的版本。

Systemd 的优点是功能强大,使用方便,缺点是体系庞大,非常复杂。事实上,现在还有很多人反对使用 Systemd,理由就是它过于复杂,与操作系统的其他部分强耦合,违反”keep simple, keep stupid”的Unix 哲学。

三、系统管理 Systemd 并不是一个命令,而是一组命令,涉及到系统管理的方方面面。

3.1 systemctl systemctl是 Systemd 的主命令,用于管理系统。

重启系统

$ sudo systemctl reboot

关闭系统,切断电源

$ sudo systemctl poweroff

CPU停止工作

$ sudo systemctl halt

暂停系统

$ sudo systemctl suspend

让系统进入冬眠状态

$ sudo systemctl hibernate

让系统进入交互式休眠状态

$ sudo systemctl hybrid-sleep

启动进入救援状态(单用户状态)

$ sudo systemctl rescue 3.2 systemd-analyze systemd-analyze命令用于查看启动耗时。

查看启动耗时

$ systemd-analyze

查看每个服务的启动耗时

$ systemd-analyze blame

显示瀑布状的启动过程流

$ systemd-analyze critical-chain

显示指定服务的启动流

$ systemd-analyze critical-chain atd.service 3.3 hostnamectl hostnamectl命令用于查看当前主机的信息。

显示当前主机的信息

$ hostnamectl

设置主机名。

$ sudo hostnamectl set-hostname rhel7 3.4 localectl localectl命令用于查看本地化设置。

查看本地化设置

$ localectl

设置本地化参数。

$ sudo localectl set-locale LANG=en_GB.utf8 $ sudo localectl set-keymap en_GB 3.5 timedatectl timedatectl命令用于查看当前时区设置。

查看当前时区设置

$ timedatectl

显示所有可用的时区

$ timedatectl list-timezones

设置当前时区

$ sudo timedatectl set-timezone America/New_York $ sudo timedatectl set-time YYYY-MM-DD $ sudo timedatectl set-time HH:MM:SS 3.6 loginctl loginctl命令用于查看当前登录的用户。

列出当前session

$ loginctl list-sessions

列出当前登录用户

$ loginctl list-users

列出显示指定用户的信息

$ loginctl show-user ruanyf 四、Unit 4.1 含义 Systemd 可以管理所有系统资源。不同的资源统称为 Unit(单位)。

Unit 一共分成12种。

Service unit:系统服务 Target unit:多个 Unit 构成的一个组 Device Unit:硬件设备 Mount Unit:文件系统的挂载点 Automount Unit:自动挂载点 Path Unit:文件或路径 Scope Unit:不是由 Systemd 启动的外部进程 Slice Unit:进程组 Snapshot Unit:Systemd 快照,可以切回某个快照 Socket Unit:进程间通信的 socket Swap Unit:swap 文件 Timer Unit:定时器 systemctl list-units命令可以查看当前系统的所有 Unit 。

列出正在运行的 Unit

$ systemctl list-units

列出所有Unit,包括没有找到配置文件的或者启动失败的

$ systemctl list-units –all

列出所有没有运行的 Unit

$ systemctl list-units –all –state=inactive

列出所有加载失败的 Unit

$ systemctl list-units –failed

列出所有正在运行的、类型为 service 的 Unit

$ systemctl list-units –type=service 4.2 Unit 的状态 systemctl status命令用于查看系统状态和单个 Unit 的状态。

显示系统状态

$ systemctl status

显示单个 Unit 的状态

$ sysystemctl status bluetooth.service

显示远程主机的某个 Unit 的状态

$ systemctl -H root@rhel7.example.com status httpd.service 除了status命令,systemctl还提供了三个查询状态的简单方法,主要供脚本内部的判断语句使用。

显示某个 Unit 是否正在运行

$ systemctl is-active application.service

显示某个 Unit 是否处于启动失败状态

$ systemctl is-failed application.service

显示某个 Unit 服务是否建立了启动链接

$ systemctl is-enabled application.service 4.3 Unit 管理 对于用户来说,最常用的是下面这些命令,用于启动和停止 Unit(主要是 service)。

立即启动一个服务

$ sudo systemctl start apache.service

立即停止一个服务

$ sudo systemctl stop apache.service

重启一个服务

$ sudo systemctl restart apache.service

杀死一个服务的所有子进程

$ sudo systemctl kill apache.service

重新加载一个服务的配置文件

$ sudo systemctl reload apache.service

重载所有修改过的配置文件

$ sudo systemctl daemon-reload

显示某个 Unit 的所有底层参数

$ systemctl show httpd.service

显示某个 Unit 的指定属性的值

$ systemctl show -p CPUShares httpd.service

设置某个 Unit 的指定属性

$ sudo systemctl set-property httpd.service CPUShares=500 4.4 依赖关系 Unit 之间存在依赖关系:A 依赖于 B,就意味着 Systemd 在启动 A 的时候,同时会去启动 B。

systemctl list-dependencies命令列出一个 Unit 的所有依赖。

$ systemctl list-dependencies nginx.service 上面命令的输出结果之中,有些依赖是 Target 类型(详见下文),默认不会展开显示。如果要展开 Target,就需要使用–all参数。

$ systemctl list-dependencies –all nginx.service 五、Unit 的配置文件 5.1 概述 每一个 Unit 都有一个配置文件,告诉 Systemd 怎么启动这个 Unit 。

Systemd 默认从目录/etc/systemd/system/读取配置文件。但是,里面存放的大部分文件都是符号链接,指向目录/usr/lib/systemd/system/,真正的配置文件存放在那个目录。

systemctl enable命令用于在上面两个目录之间,建立符号链接关系。

$ sudo systemctl enable clamd@scan.service

等同于

$ sudo ln -s ‘/usr/lib/systemd/system/clamd@scan.service’ ‘/etc/systemd/system/multi-user.target.wants/clamd@scan.service’ 如果配置文件里面设置了开机启动,systemctl enable命令相当于激活开机启动。

与之对应的,systemctl disable命令用于在两个目录之间,撤销符号链接关系,相当于撤销开机启动。

$ sudo systemctl disable clamd@scan.service 配置文件的后缀名,就是该 Unit 的种类,比如sshd.socket。如果省略,Systemd 默认后缀名为.service,所以sshd会被理解成sshd.service。

5.2 配置文件的状态 systemctl list-unit-files命令用于列出所有配置文件。

列出所有配置文件

$ systemctl list-unit-files

列出指定类型的配置文件

$ systemctl list-unit-files –type=service 这个命令会输出一个列表。

$ systemctl list-unit-files

UNIT FILE STATE chronyd.service enabled clamd@.service static clamd@scan.service disabled 这个列表显示每个配置文件的状态,一共有四种。

enabled:已建立启动链接 disabled:没建立启动链接 static:该配置文件没有[Install]部分(无法执行),只能作为其他配置文件的依赖 masked:该配置文件被禁止建立启动链接 注意,从配置文件的状态无法看出,该 Unit 是否正在运行。这必须执行前面提到的systemctl status命令。

$ systemctl status bluetooth.service 一旦修改配置文件,就要让 SystemD 重新加载配置文件,然后重新启动,否则修改不会生效。

$ sudo systemctl daemon-reload $ sudo systemctl restart httpd.service 5.3 配置文件的格式 配置文件就是普通的文本文件,可以用文本编辑器打开。

systemctl cat命令可以查看配置文件的内容。

$ systemctl cat atd.service

[Unit] Description=ATD daemon

[Service] Type=forking ExecStart=/usr/bin/atd

[Install] WantedBy=multi-user.target 从上面的输出可以看到,配置文件分成几个区块。每个区块的第一行,是用方括号表示的区别名,比如[Unit]。注意,配置文件的区块名和字段名,都是大小写敏感的。

每个区块内部是一些等号连接的键值对。

[Section] Directive1=value Directive2=value

. . . 注意,键值对的等号两侧不能有空格。

5.4 配置文件的区块 [Unit]区块通常是配置文件的第一个区块,用来定义 Unit 的元数据,以及配置与其他 Unit 的关系。它的主要字段如下。

Description:简短描述 Documentation:文档地址 Requires:当前 Unit 依赖的其他 Unit,如果它们没有运行,当前 Unit 会启动失败 Wants:与当前 Unit 配合的其他 Unit,如果它们没有运行,当前 Unit 不会启动失败 BindsTo:与Requires类似,它指定的 Unit 如果退出,会导致当前 Unit 停止运行 Before:如果该字段指定的 Unit 也要启动,那么必须在当前 Unit 之后启动 After:如果该字段指定的 Unit 也要启动,那么必须在当前 Unit 之前启动 Conflicts:这里指定的 Unit 不能与当前 Unit 同时运行 Condition…:当前 Unit 运行必须满足的条件,否则不会运行 Assert…:当前 Unit 运行必须满足的条件,否则会报启动失败 [Install]通常是配置文件的最后一个区块,用来定义如何启动,以及是否开机启动。它的主要字段如下。

WantedBy:它的值是一个或多个 Target,当前 Unit 激活时(enable)符号链接会放入/etc/systemd/system目录下面以 Target 名 + .wants后缀构成的子目录中 RequiredBy:它的值是一个或多个 Target,当前 Unit 激活时,符号链接会放入/etc/systemd/system目录下面以 Target 名 + .required后缀构成的子目录中 Alias:当前 Unit 可用于启动的别名 Also:当前 Unit 激活(enable)时,会被同时激活的其他 Unit [Service]区块用来 Service 的配置,只有 Service 类型的 Unit 才有这个区块。它的主要字段如下。

Type:定义启动时的进程行为。它有以下几种值。 Type=simple:默认值,执行ExecStart指定的命令,启动主进程 Type=forking:以 fork 方式从父进程创建子进程,创建后父进程会立即退出 Type=oneshot:一次性进程,Systemd 会等当前服务退出,再继续往下执行 Type=dbus:当前服务通过D-Bus启动 Type=notify:当前服务启动完毕,会通知Systemd,再继续往下执行 Type=idle:若有其他任务执行完毕,当前服务才会运行 ExecStart:启动当前服务的命令 ExecStartPre:启动当前服务之前执行的命令 ExecStartPost:启动当前服务之后执行的命令 ExecReload:重启当前服务时执行的命令 ExecStop:停止当前服务时执行的命令 ExecStopPost:停止当其服务之后执行的命令 RestartSec:自动重启当前服务间隔的秒数 Restart:定义何种情况 Systemd 会自动重启当前服务,可能的值包括always(总是重启)、on-success、on-failure、on-abnormal、on-abort、on-watchdog TimeoutSec:定义 Systemd 停止当前服务之前等待的秒数 Environment:指定环境变量 Unit 配置文件的完整字段清单,请参考官方文档。

六、Target 启动计算机的时候,需要启动大量的 Unit。如果每一次启动,都要一一写明本次启动需要哪些 Unit,显然非常不方便。Systemd 的解决方案就是 Target。

简单说,Target 就是一个 Unit 组,包含许多相关的 Unit 。启动某个 Target 的时候,Systemd 就会启动里面所有的 Unit。从这个意义上说,Target 这个概念类似于”状态点”,启动某个 Target 就好比启动到某种状态。

传统的init启动模式里面,有 RunLevel 的概念,跟 Target 的作用很类似。不同的是,RunLevel 是互斥的,不可能多个 RunLevel 同时启动,但是多个 Target 可以同时启动。

查看当前系统的所有 Target

$ systemctl list-unit-files –type=target

查看一个 Target 包含的所有 Unit

$ systemctl list-dependencies multi-user.target

查看启动时的默认 Target

$ systemctl get-default

设置启动时的默认 Target

$ sudo systemctl set-default multi-user.target

切换 Target 时,默认不关闭前一个 Target 启动的进程,

systemctl isolate 命令改变这种行为,

关闭前一个 Target 里面所有不属于后一个 Target 的进程

$ sudo systemctl isolate multi-user.target Target 与 传统 RunLevel 的对应关系如下。

Traditional runlevel New target name Symbolically linked to…

Runlevel 0 | runlevel0.target -> poweroff.target Runlevel 1 | runlevel1.target -> rescue.target Runlevel 2 | runlevel2.target -> multi-user.target Runlevel 3 | runlevel3.target -> multi-user.target Runlevel 4 | runlevel4.target -> multi-user.target Runlevel 5 | runlevel5.target -> graphical.target Runlevel 6 | runlevel6.target -> reboot.target 它与init进程的主要差别如下。

(1)默认的 RunLevel(在/etc/inittab文件设置)现在被默认的 Target 取代,位置是/etc/systemd/system/default.target,通常符号链接到graphical.target(图形界面)或者multi-user.target(多用户命令行)。

(2)启动脚本的位置,以前是/etc/init.d目录,符号链接到不同的 RunLevel 目录 (比如/etc/rc3.d、/etc/rc5.d等),现在则存放在/lib/systemd/system和/etc/systemd/system目录。

(3)配置文件的位置,以前init进程的配置文件是/etc/inittab,各种服务的配置文件存放在/etc/sysconfig目录。现在的配置文件主要存放在/lib/systemd目录,在/etc/systemd目录里面的修改可以覆盖原始设置。

七、日志管理 Systemd 统一管理所有 Unit 的启动日志。带来的好处就是,可以只用journalctl一个命令,查看所有日志(内核日志和应用日志)。日志的配置文件是/etc/systemd/journald.conf。

journalctl功能强大,用法非常多。

查看所有日志(默认情况下 ,只保存本次启动的日志)

$ sudo journalctl

查看内核日志(不显示应用日志)

$ sudo journalctl -k

查看系统本次启动的日志

$ sudo journalctl -b $ sudo journalctl -b -0

查看上一次启动的日志(需更改设置)

$ sudo journalctl -b -1

查看指定时间的日志

$ sudo journalctl –since=”2012-10-30 18:17:16” $ sudo journalctl –since “20 min ago” $ sudo journalctl –since yesterday $ sudo journalctl –since “2015-01-10” –until “2015-01-11 03:00” $ sudo journalctl –since 09:00 –until “1 hour ago”

显示尾部的最新10行日志

$ sudo journalctl -n

显示尾部指定行数的日志

$ sudo journalctl -n 20

实时滚动显示最新日志

$ sudo journalctl -f

查看指定服务的日志

$ sudo journalctl /usr/lib/systemd/systemd

查看指定进程的日志

$ sudo journalctl _PID=1

查看某个路径的脚本的日志

$ sudo journalctl /usr/bin/bash

查看指定用户的日志

$ sudo journalctl _UID=33 –since today

查看某个 Unit 的日志

$ sudo journalctl -u nginx.service $ sudo journalctl -u nginx.service –since today

实时滚动显示某个 Unit 的最新日志

$ sudo journalctl -u nginx.service -f

合并显示多个 Unit 的日志

$ journalctl -u nginx.service -u php-fpm.service –since today

查看指定优先级(及其以上级别)的日志,共有8级

0: emerg

1: alert

2: crit

3: err

4: warning

5: notice

6: info

7: debug

$ sudo journalctl -p err -b

日志默认分页输出,–no-pager 改为正常的标准输出

$ sudo journalctl –no-pager

以 JSON 格式(单行)输出

$ sudo journalctl -b -u nginx.service -o json

以 JSON 格式(多行)输出,可读性更好

$ sudo journalctl -b -u nginx.serviceqq -o json-pretty

显示日志占据的硬盘空间

$ sudo journalctl –disk-usage

指定日志文件占据的最大空间

$ sudo journalctl –vacuum-size=1G

指定日志文件保存多久

$ sudo journalctl –vacuum-time=1years

阅读全文 »

案例

发表于 2018-03-25 | 分类于 sample
  • 关注的点: 实体, 抽象, 推理, 总结

  • 1. 实体事物理解
    • 1.1. 网络引擎
      • 1.1.1. 优化点. 网络引擎性能本质点在网络事件处理单帧所耗时间
      • 1.1.2. 服务器引擎速度较低 20W QPS, 经过优化达到单链接40W QPS, 多链接 70W QPS.
    • 1.2. 时钟层面
      • 1.2.1. 使用精度与预计精度的统一, 精度分级.
      • 1.2.2. 影响时钟性能的因素, 所使用的数据结构, 所使用的时间API的精度.
      • 1.2.3. 时钟的实现让我理解了分时, 从而在多线程问题上没有再犯过错误.
      • 1.2.4. 在C++领域有大量不同实现方法的定时器组件. 在使用上面 要么在性能上面非常差, 要么易用性上面非常差.
      • 1.2.5. 很多定时器的之间性能差距能达到100+倍. 汇总各个定时器实现之优劣, 综合应用领域易用性优先原则.
      • 1.2.6. 定时器的使用上面有很多需要注意的细节, 导致各种诡异bug. 通过对定时器各种实现的理解. 总结出如何规避这些问题.
      • 1.2.7. 基础定时器功能实现, 指定触发时间间隔, 触发回调
      • 1.2.8. 可指定第一次触发时间间隔
      • 1.2.9. 动态绑定参数, 及回调实现
      • 1.2.10. 可指定调用策略, 漏调补调模式
      • 1.2.11. 安全移除定时器
      • 1.2.12. 增加获取定时器已执行时间, 下一次执行时间间隔接口
      • 1.2.13. 实现高性能对象池, 解决性能热点
      • 1.2.14. 调试导致时间异常处理
      • 1.2.15. 系统时间调整无关性处理
      • 1.2.16. 支持 windows, linux, mac平台
      • 1.2.17. 支持对象内存搬移, 鉴于使用中需要注意事项较多, 不推荐使用.
    • 1.3. 脚本层面
      • 1.3.1. 脚本负责 会经常变化的逻辑.
      • 1.3.2. 自动枚举目录下所有lua脚本预加载, 脚本正确性检测
      • 1.3.3. 自动化导出C++数据结构
      • 1.3.4. C++ call lua的参数及返回值模板化实现自动化绑定
      • 1.3.5. 支持直接热更, 以及热更失败相关处理逻辑
      • 1.3.6. 支持lua5.3版本
      • 1.3.7. 支持 windows, linux, mac平台
      • 1.3.8. 本引擎实现 建议只是建议, 如果必须要使用, 需要使用者自己处理 下述问题使用者 规避在lua中定义lua的动态数据结构 以避免 脚本reload数据归属权不明确问题.
    • 1.4. 数据库层面
      • 1.4.1. dmsql 负责具体SQL语句的生成
      • 1.4.2. dmsqldiff 负责数据库的库创建, 表创建, 表字段变更.
      • 1.4.3. 多线程问题, command对象释放问题
    • 1.5. 内存层面
      • 1.5.1. 内存泄露认知 一次性泄漏 , 常规性泄漏 , 偶发性泄漏 , 运行时泄漏
      • 1.5.2. 使用内存池解决内存碎片问题问题点: 内存池 没有对象类型信息, 使用对象池解决内存泄漏问题管理需要管理的内存.
      • 1.5.3. 内存分配失败默认处理
      • 1.5.4. 可以用工具检测出来的内存泄漏不是内存泄露, 即我们主要要解决的内存泄漏是: 运行时泄漏
      • 1.5.5. 案例: 某次服务器存在内存泄漏, 我们通过打印对象池 发现 某个对象数量非常. 经过排查, 发现在某些条件下 释放存在问题.
    • 1.6. 多线程层面
      • 1.6.1. io, 操作无关, 高耗, 低锁 使用线程效率较高.
      • 1.6.2. 设计上规避多读多写.
      • 1.6.3. 积极使用无锁队列.
      • 1.6.4. 多线程的精髓为分时 理解了分时就理解了多线程.
    • 1.7. 日志
      • 1.7.1. debug不能解决所有问题, 但是日志可以.
      • 1.7.2. 日志的写入应该是同步的, 日志分级, 分文件.
      • 1.7.3. 根据项目情况选择合适的日志组件. glog让我明白 从设计上解决问题的重要性
  • 2. 抽象
    • 2.1. C++学习历程
    • 2.2. 理解的角度
    • 2.3. 问题理解层级
    • 2.4. 问题规避原则
    • 2.5. 如何消灭问题
  • 3. 编程感悟

1. 实体事物理解

1.1. 网络引擎

1.1.1. 优化点. 网络引擎性能本质点在网络事件处理单帧所耗时间

1.1.2. 服务器引擎速度较低 20W QPS, 经过优化达到单链接40W QPS, 多链接 70W QPS.

1.2. 时钟层面

1.2.1. 使用精度与预计精度的统一, 精度分级.

1.2.2. 影响时钟性能的因素, 所使用的数据结构, 所使用的时间API的精度.

1.2.3. 时钟的实现让我理解了分时, 从而在多线程问题上没有再犯过错误.

1.2.4. 在C++领域有大量不同实现方法的定时器组件. 在使用上面 要么在性能上面非常差, 要么易用性上面非常差.

1.2.5. 很多定时器的之间性能差距能达到100+倍. 汇总各个定时器实现之优劣, 综合应用领域易用性优先原则.

1.2.6. 定时器的使用上面有很多需要注意的细节, 导致各种诡异bug. 通过对定时器各种实现的理解. 总结出如何规避这些问题.

1.2.7. 基础定时器功能实现, 指定触发时间间隔, 触发回调

1.2.8. 可指定第一次触发时间间隔

1.2.9. 动态绑定参数, 及回调实现

1.2.10. 可指定调用策略, 漏调补调模式

1.2.11. 安全移除定时器

1.2.12. 增加获取定时器已执行时间, 下一次执行时间间隔接口

1.2.13. 实现高性能对象池, 解决性能热点

1.2.14. 调试导致时间异常处理

1.2.15. 系统时间调整无关性处理

1.2.16. 支持 windows, linux, mac平台

1.2.17. 支持对象内存搬移, 鉴于使用中需要注意事项较多, 不推荐使用.

1.3. 脚本层面

1.3.1. 脚本负责 会经常变化的逻辑.

1.3.2. 自动枚举目录下所有lua脚本预加载, 脚本正确性检测

1.3.3. 自动化导出C++数据结构

1.3.4. C++ call lua的参数及返回值模板化实现自动化绑定

1.3.5. 支持直接热更, 以及热更失败相关处理逻辑

1.3.6. 支持lua5.3版本

1.3.7. 支持 windows, linux, mac平台

1.3.8. 本引擎实现 建议(只是建议, 如果必须要使用, 需要使用者自己处理 下述问题)使用者 规避在lua中定义lua的动态数据结构 以避免 脚本reload数据归属权不明确问题.

1.4. 数据库层面

1.4.1. dmsql 负责具体SQL语句的生成

1.4.2. dmsqldiff 负责数据库的库创建, 表创建, 表字段变更.

1.4.3. 多线程问题, command对象释放问题

1.5. 内存层面

1.5.1. 内存泄露认知 (一次性泄漏 , 常规性泄漏 , 偶发性泄漏 , 运行时泄漏)

1.5.2. 使用内存池解决内存碎片问题(问题点: 内存池 没有对象类型信息), 使用对象池解决内存泄漏问题(管理需要管理的内存).

1.5.3. 内存分配失败默认处理

1.5.4. 可以用工具检测出来的内存泄漏不是内存泄露, 即我们主要要解决的内存泄漏是: 运行时泄漏

1.5.5. 案例: 某次服务器存在内存泄漏, 我们通过打印对象池 发现 某个对象数量非常多. 经过排查, 发现在某些条件下 释放存在问题.

1.6. 多线程层面

1.6.1. io, 操作无关, 高耗, 低锁 使用线程效率较高.

1.6.2. 设计上规避多读多写.

1.6.3. 积极使用无锁队列.

1.6.4. 多线程的精髓为分时 理解了分时就理解了多线程.

1.7. 日志

1.7.1. debug不能解决所有问题, 但是日志可以.

1.7.2. 日志的写入应该是同步的, 日志分级, 分文件.

1.7.3. 根据项目情况选择合适的日志组件. (glog让我明白 从设计上解决问题的重要性)

2. 业务层面思考

2.1. 对象数据结构组织与控制以及对象生命周期管理

3. 抽象

3.1. C++学习历程

  • C++ 学习曲线:
    LEVEL1 C++ 不好(内容太多)
    LEVEL2 C++ 好(使用方便)
    LEVEL3 C++ 不好(细节太多 容易出错)
    LEVEL4 C++ 好(掌握细节)
    LEVEL5 C++ 不好(效率太差)
    LEVEL6 C++ 好(选择性的使用)
    LEVEL7 C++ 不好(C的回归)

  • C++ 学习路径:
    Level 1: C++ 初学者 评判标准: 了解 C++ 基本语法,能够编写简单的程序,例如控制台输出、变量使用、简单运算等。 用例: 编写简单的 “Hello World” 程序,进行基础的数值计算。 Level 2: C++ 熟练者 评判标准: 掌握 C++ 核心语法,熟悉常用数据结构和算法,能够编写结构化的程序,例如分支、循环、函数等。 用例: 实现简单的排序算法,编写学生管理系统等小型程序。 Level 3: C++ 应用者 评判标准: 理解面向对象编程 (OOP) 的概念,能够使用类、继承、多态等特性,编写面向对象的程序。 用例: 设计并实现简单的游戏,开发图形界面应用程序。 Level 4: C++ 专家 评判标准: 掌握 C++ 高级特性,例如模板、异常处理、运算符重载等,能够编写高质量、可复用的代码。 用例: 开发高性能库或框架,设计并实现复杂的数据结构和算法。 Level 5: C++ 大师 评判标准: 深入理解 C++ 内存管理机制,能够进行底层优化,编写高性能、高效的代码。 用例: 开发实时系统、高并发应用,对现有代码进行性能分析和优化。 Level 6: C++ 架构师 评判标准: 能够根据需求选择合适的 C++ 特性,设计并实现大型软件架构,并能进行跨平台开发。 用例: 设计并实现分布式系统、云平台等复杂软件项目。 Level 7: C++ 悟道者 评判标准: 对 C++ 有着深刻的理解,洞悉其设计哲学和发展历程。 能够灵活运用 C++ 和 C,根据项目需求选择最佳方案。 积极参与 C++ 社区,推动 C++ 语言的发展。 用例: 编写高性能、可移植的库或框架。 参与 C++ 标准制定或开源项目贡献。 指导和培养下一代 C++ 开发者。

  • C++ 学习方式: 自学: 通过书籍、在线课程、教程等资源进行自主学习。 学校教育: 在大学或培训机构接受系统性的 C++ 教育。 实践项目: 通过参与实际项目,在实践中学习和提升 C++ 技能。 社区交流: 加入 C++ 社区,与其他开发者交流学习经验,互相帮助。
  • C++ 学习内容: 语言基础: 语法、数据类型、运算符、控制流等。 标准库 (STL): 容器、算法、迭代器等。 面向对象编程 (OOP): 类、继承、多态、封装等。 模板: 函数模板、类模板、模板元编程等。 内存管理: 指针、动态内存分配、智能指针等。 异常处理: try-catch-throw 机制,异常安全等。 并发编程: 线程、互斥锁、原子操作等。 网络编程: Socket 编程、网络协议等。 图形界面编程: 使用 Qt、wxWidgets 等库进行图形界面开发。
  • C++ 学习目标: 兴趣爱好: 出于对编程的热爱,想要学习 C++ 并探索其可能性。 职业发展: 希望成为 C++ 开发工程师,从事相关领域的软件开发工作。 学术研究: 进行 C++ 相关的学术研究,例如编译器开发、语言设计等。
  • C++ 学习挑战: C++ 语言本身的复杂性: C++ 语法庞大,特性繁多,学习曲线陡峭。 内存管理的难度: 手动管理内存容易出错,需要开发者具备较强的责任心和调试能力。 新标准的不断更新: C++ 标准不断演进,开发者需要持续学习新特性。
  • C++ 学习建议: 循序渐进,打好基础: 从基础语法开始,逐步深入学习 C++ 的各个方面。 多实践,多练习: 将所学知识应用到实际项目中,通过实践来巩固和提升技能。 阅读优秀的 C++ 代码: 学习其他开发者优秀的代码风格和设计模式。 积极参与 C++ 社区: 与其他开发者交流学习经验,互相帮助,共同进步。

3.2. 理解的角度

观察 (细节)
看 (大局)
感受 (发现规律)
洞见 (点爆发)
所谓理解就是要理解模式

3.3. 问题理解层级

(1) 发现问题
(2) 解决问题
(3) 规避问题
(4) 消灭问题
(5) 创造问题

3.4. 问题规避原则

(1) 设计上规避(例如: glog在设计上面使用多线程独立文件来规避单文件加锁问题)
(2) 约定规避(例如: 约定使用int64放大若干倍数来替代浮点数)
(3) 实现规避(例如: 在高性能要求的场景, 使用纯C的数据结构来替代复杂的C++数据结构)
(4) 潜规则规避(例如: 利用平台语言或者数据结构的特性 来规避问题)

3.5. 如何消灭问题

(1) 编码规范
(2) 数据驱动开发
(3) 代码生成技术
(4) 为什么消灭了问题? 人是最不可控的, 减少了人本身对事物的影响.

4. 编程感悟

程序的精髓在于数据结构的组织与控制. 稳定的需求是产品质量的基石. 真正的需求,潜藏在人性因素与其他一系列因素的相互关联之中.

阅读全文 »

人生随笔

发表于 2018-03-25 | 分类于 religions

1. 三教九流 指何

1.1. 三教

三教指三大传统宗教——儒教、佛教(释教)、道教。

1.1.1. 儒教

儒教又称“孔教”“圣教”(儒教不等于儒学)。以“仁”为最高信仰,以“为天地立心,为生民立命,为往圣继绝学,为万世开太平”为终极目标。后为和崇尚黄老列庄等道家思想的道教区分,从南北朝开始叫做儒教又被称作圣教,跟印度佛教、中国道教并称为三教。“儒教是中华民族土生土长的宗教 [2] ”,儒教是礼乐文明的代表,上古宗教的直接继承者。 “儒教是中华民族特有的传统宗教,历代王朝都以儒教为国教,孔子为教主。……儒教利用政教结合的优势得以成为国教,儒教的神权与皇权融为一体,不可分割,相得益彰。”

1.1.2. 佛教(释教)

释教是世界三大宗教之一,指东汉时由印度传入我国的佛教。佛,意思是“觉者”。佛又称如来、应供、正遍知、明行足、善逝、世间解、无上士、调御丈夫、世尊。佛教重视人类心灵和道德的进步和觉悟。佛教信徒修习佛教的目的即在于依照释迦牟尼所悟到的修行方法,发现生命和宇宙的真相,最终超越生死和苦、断尽一切烦恼。

1.1.3. 道教

道教是产生于中国的传统宗教,是把古代的神仙思想、道家学说、鬼神祭祀以及占卜、谶纬、符箓、禁咒等综合文化产物。 [3] 道教以“道”为最高信仰,以神仙信仰为核心内容,以诸多方术为修炼途径,以得道成仙、长生不老、与道合一为终极目标,相信修道者能够幸福快乐、长生久视。

1.2. 九流

所谓的九流,实际上是指‘上中下’三等。三教之中三等人;自然三三得九。

至于上中下九流之说,则是源于《七略》。此中将天下学说分为九流十家。 在《七略》分别指:儒家、道家、墨家、法家、名家、杂家、农家、纵横家、阴阳家。九流十家,是九流以外加上小说家。 之所以以‘流’来形容,实际上是以社会形式比喻为水。无论是山河变换,还是水脉分流,水却一直遵守自然规律的同时,依然展现自己的意志思想。而小说家,却往往要以迎合读者为首。 三教九流五行八作 “三教”指的是中国儒、佛、道三大教派 “九流”又分为“上九流”、“中九流”、“下九流”。

1.2.1. 上九流

俗语:一流佛祖,二流仙,三流皇上,四流官,五流阁老,六宰相,七进(进士),八举(举人),九解元。

1.2.2. 中九流

俗语:一流秀才二流医,三流丹青(画家)四流皮(皮影),五流弹唱六流金(卜卦算命),七僧八道九棋琴。 具体指: 举子、医生、相命、丹青、书生、琴棋、僧、道、尼 秀才、医、丹青、皮(皮影)、弹唱、金(卜卦算命)、僧、道、棋琴 举子、医、风水、批、丹青、画、僧、道、琴棋

1.2.3. 下九流

俗语:一流高台二流吹,三流马戏四流推,五流池子六搓背,七修八配九娼妓。 具体指: 师爷、衙差、升秤、媒婆、走卒、时妖、盗、窃、娼 高台、吹、马戏、推、池子、搓背、修、配、娼妓 打狗、卖油、修脚、剃头、抬食合、裁缝、优、娼、吹手 巫、娼、大神、梆、剃头、吹手、戏子、街、卖糖 五行:车行、船行、店铺行、脚行、衙役行。 八作:金匠、银匠、铜匠、铁匠、锡匠、木匠、瓦匠、石匠。

阅读全文 »

人生随笔

发表于 2018-03-25 | 分类于 rebuild

1. 论管理

阅读全文 »

人类图

发表于 2018-03-25 | 分类于 person

1. 人类设计

1.1. 人类设计功能

Mobile Preview

1.2. 人类设计center

Mobile Preview

1.3. 人类设计课题

Mobile Preview

2. 类型

人类图中的类型有四种它们分别是:

分为四大类:显示者(8%),生产者(70%),投射者(21%)和反映者(1%)

按能量类型分:能量类型有显示者和生产者,非能量类型有投射者和反映者。 四种类型的人有着截然不同的能量场:

生产者的能量场是开放且包容的。 显示者是封闭并且攻击的。 投射者是专注且吸收的。 反映者得能量场非常温和,不具有攻击性。

2.1. 生产者的特点

荐骨中心被定义的族群。荐骨是一个非常有力量的能量中心,集结众人荐骨的能量,就形成地球上主要的生产动力,缺乏荐骨的能量,地球上就没有生命力了。

生产者有两种:纯生产者与显示生产者。

纯生产者执著于完美,总是按部就班,打好根基。显示生产者重视效率,常常自行省略一些自以为不必要的步骤。

生产者向内关注自己,一生追求满足。

2.2. 投射者的特点

总是焦点在外,将目光投射在周围每个人身上,于是不由自主将自己放在后头。也因为如此,他们能够深深了解每个人的特性,知晓对方当下的状态,乐意帮助大家,热心协助每个生产者回到其应当运作的轨道上。

投射者最大的天赋在于识人,投射者此生并不是来做创造的工作的,他们是来做管理、参谋类的工作。

投射者一生追求成功。

2.3. 显示者的特点

显示者是天之骄子,生来就是要影响众人,扩张自己的影响力。他们主要的任务是「发起」,显示者是揭竿而起,石破天惊的第一人。

很多人身边不乏有显示者,却都反馈感觉不到这个人是显示者。

这很正常,显示者是非常容易被制约的类型。许多显示者,隐藏自己的本性,伪装在人群之中,小心翼翼地活着,以为这样大家就不会看见他们原生的光芒与才能,就不用承担,不必冒险,不需完成此生的天命。却忘记,显示者就该活得像是没有明天一般,因为你们就是那足球队里的前锋, 注定要光芒万丈,不可一世,受万人瞩目,成为焦点之所在。

显示者一生追求平和,向往自由。

2.4. 反映者的特点

反映者是人类图里最稀有的类型,也最有潜力成为最睿智的人

反映者的特性是,九大能量中心皆呈空白。反映者对环境非常敏感,他们看待事情的角度与看法,也与其余百分之九十九的人大不相同。

反映者依循月亮的周期而转变,有着截然不同的步调,生命运转的节奏。最著名的代表人物就是迈克尔杰克逊。成熟的反映者非常公正,能够无私看待周遭的人事物,做最好的仲裁者。

这就是清透如月光的般美好的反映者,平和地与我们同在。

反映者一生追求惊喜。

2.5. 人生角色

如果把人生比作一场舞台剧,人生角色,好比每个人披着的戏服,代表着不同扮演的角色。

人生角色共有12种,引用了易经”爻(yáo)”的概念。1-3爻属于上3爻,都是打基础的部分。4-6爻属于下3爻。没有下面的3爻,上3爻也无法运作。

1-6爻可以组成以下12个人生角色:

►个人型(着重于内在探索)

1-3爻, 1-4爻,

2-4爻, 2-5爻,

3-5爻, 3-6爻,

4-6爻

►群体型(着重于外在连结)

5-1爻, 5-2爻,

6-2爻, 6-3爻

►固定型(着重于命定路线)

4-1爻

1-6的数字跟周易的六个爻相对,具体意思如下:

1爻:代表谨慎研究和钻研的心理模式 2爻:代表着自己才华向外投射,同时也是一种害羞、退隐、独处的心理模式 3爻:代表非常愿意通过探索和尝试来成长的心理模式 4爻:代表通过社交去传播的心理模式 5爻:代表的是向大众传播,甚至为陌生人自我牺牲的心理模式 6爻:代表的是一种客观,中立和超然的心理模式。

3. 定义

表格中关于定义部分共有五种分类,分别为:

无定义:专指反映者,因为反映者没有被定义的能量中心。

一分人:被定义的能量中心,都有通道连接,形成一个区块。做事主动,果断不犹豫。

二分人:被定义的能量中心,分成两个部分。做事比较犹豫,关键词:冲突。

三分人:被定义的能量中心,分成三个部分。三分人,注意力会放在空白中心上。想的多,容易被周围人主导而不自知。

四分人:被定义的能量中心,分成四个部分。做决定的时间更久,甚至时常无法理解自己,在面对一些決定,需要花比较多的时间做決定。

4. 内在权威

内在权威是指导你做决定的方法,内在权威与策略是人类图最智慧的部分所在。

在做重大决定的时候,一定要学会,回到内在权威与策略。(怎样回到内在权威与策略会在以后的文章中详细介绍,此处只做概述)

4.1. 情绪型权威

你的情绪是非常有感染力的,但在做决定的时候需要让情绪清明。当情绪稳定时,才可以看清事物的全貌。

困难在于情绪会有各种各样不同的情绪波。保持耐心,找到情绪平静的那个点,再做决定。

4.2. 荐骨型权威

荐骨权威的人,可以听从荐骨的回应,对重要的事情做选择,比如换工作、选择伴侣。

荐骨回应练习方法:

挑选一些简单,可以用是或否回答的问题,比如你想喝牛奶吗?你想吃饭吗?你想睡觉吗?

做成问题清单,让周围朋友问你,在头脑给出决定前,身体是有所回应的。荐骨在肚脐下三寸丹田位置,可以发出声音。肯定的声音是准确的肯定的例如:“嗯!”,“嗯哼!”,否定的声音是“嗯……”,“额…”

只要超过30s头脑就会跳进来,所以学会觉察荐骨的回应。

4.3. 直觉型权威

速度和嗅觉最快的人,永远要处在当下。直觉只出现一次,要练习和直觉保持连接。

4.4. 意志力权威

你想要什么你就会得到,你要非常清楚自己要什么。

4.5. 自我投射型权威

完全只与自己相关。需要被认出被看见。有深深的自我认同感,要做的决定在你说的话中,学会聆听自己说的话。

4.6. 无内在权威(月亮型权威)

反映者的权威,需要等待28天的月亮周期。28天之内,月亮会走过每一个闸门,反映者可以有机会接引到,每一条通道和能量。

从不同角度收集信息,在28天后,会对重要事情的决定,有清晰、全面的认知。

5. 策略

5.1. 显示者

人生策略:告知

在要做的决定,事前、事中、事后都能学会「告知」。这样是帮助显示者,扫除其他人的阻力,让他自由做事的策略。不告知,别人会因为害怕、担心,百般阻拦显示者。

5.2. 纯生产者与显示生产者

人生策略:等待回应

生产者的人生策略是从回应中做决定,除非自己有回应,否则不要做任何决定。有些生产者觉得很难,因为他们将「等待回应」误解为「什麽都不做」。

事实上,对生产者来说什么都不做是不可能的。他们此生就是要有所产出,他们来地球上这一趟就是要做自己热爱的事,无法自拔的沉浸其中。

5.3. 投射者

人生策略:等待被邀请

投射者的天生设计需要等待,他们等待的是一份正式而特别的邀请、赏识。投射者往往没有动力中心定义,所以等待真正看见他们才华的伯乐,发出邀请,这份邀请将提供动能,让投射者有动力做事。

投射者容易疲惫,需要注意休息。充电两小时,放电五分钟,但这五分钟,可能就把一天的事情做完。

5.4. 反映者

人生策略:等待28天周期

在做重大决定之前,找个日历牌,圈下当下的日子,告诉自己28天之后,要做这个事情的决定了。

在28天内用心感受,之后再做决定。匆忙决定之下,容易产出非自我主题。

6. 非自己主题

「非自己」就像是一个混乱、制约的病毒程式,掩盖住真实的自己,使我们偏离了本质。

当一个人没有回到内在权威与策略,更容易任由非自己形成困惑、扭曲、痛苦和挣扎,以至于做出错误的决定,让人生感到挫败、愤怒、苦涩或失望。

7. 轮回交叉

如果宇宙是个轮轴,不断在运转,我们都是构成这个轮轴的一份子,也有各自该扮演的角色与位置,在人类图里,就是轮回交叉。

轮回交叉是人生使命或天命,是你此生的目的。很多人一直需求自我与方向,轮回交叉可以告诉你,而你对此是否有共鸣,取决于一路上你是否在做着自己!

8. 中心系统

9. 闸门

閘門1:創造/乾卦:創意的自我表達 閘門2:接收/坤卦:引導 閘門3:開端/屯卦:執行新事物 閘門4:解決問題/蒙卦:追尋解答 閘門5:等待/需卦:普世時機 閘門6:衝突解決/訟卦:情緒平衡 閘門7:統合/師卦:找出共同意向 閘門8:貢獻/比卦:團結 閘門9:確認細節/小畜卦:專注 閘門10:行為/履卦:找到個人的位置與步調 閘門11:和諧/泰卦:平靜與想法 閘門12:靜止/否卦:阻礙、評估 閘門13:傾聽者/同人卦:人類的夥伴 閘門14:富有/大有卦:採收 閘門15:人道/謙卦:人性、極端 閘門16:選擇力/豫卦:熱忱與技能 閘門17:追隨/隨卦:意見 閘門18:改進/蠱卦:找出改善方法 閘門19:連繫/臨卦:需要尋求包容 閘門20:當下/觀卦:沉思、觀察 閘門21:控制/噬嗑卦:獵人 閘門22:優雅/賁卦:裝飾、偏愛 閘門23:同化/剝卦:穩定 閘門24:回顧/復卦:合理化 閘門25:純真/無妄卦:無戒心 閘門26:累積/大畜卦:剛毅 閘門27:滋養/頤卦:養育 閘門28:(生命的)玩家/大過卦:堅持不懈 閘門29:承諾/坎卦:自動說「好!」 閘門30:欲望/離卦:依附之火 閘門31:影響力/咸卦:我領導……因為…… 閘門32:持久/恆卦:連續性與改變、耐久 閘門33:隱遁/遯卦:抽離、隱私與祕密、「我記得」 閘門34:力量/大壯卦:巨大的力量 閘門35:前進/晉卦:進展、「來點不一樣的東西」 閘門36:危機處理/明夷卦:趨於黯淡之光 閘門37:家人/家人卦:友誼(社群) 閘門38:反對/睽卦:鬥士 閘門39:挑釁/蹇卦:艱難 閘門40:傳輸/解卦:擺脫所有艱難,為自身帶來自由 閘門41:想像力/損卦:評估潛能 閘門42:增加/益卦:助益 閘門43:突破/夬卦:洞見 閘門44:模式/姤卦:相遇 110 閘門45:聚集/萃卦:統領(國王或王后) 閘門46:機緣/升卦:自我決心 閘門47:領悟/困卦:心智枯竭、靈光乍現的時刻 閘門48:井/井卦:新鮮與深度、知識 閘門49:改革/革卦:原則、反叛者 閘門50:價值觀/鼎卦:穩定性 閘門51:激發/震卦:震驚、惱怒 閘門52:山/艮卦:靜止不動 閘門53:新的開始/漸卦:發展 閘門54:企圖心/歸妹卦:涵蓋物質與心靈層面 閘門55:豐盛/豐卦:心靈 閘門56:漫遊者/旅卦:激勵、遊歷 閘門57:柔和/巽卦:直覺(穿透的風) 閘門58:愉悅/兌卦:生命活力 閘門59:親密/渙卦:散布、基因策略、性 閘門60:限制/節卦:約束、接受 閘門61:內在真理/中孚卦:真摯、神祕 閘門62:表達細節/小過卦:澄清 閘門63:懷疑/既濟卦:關鍵性的洞察(完成之後) 閘門64:多樣可能性/未濟卦:困惑(完成之前)

10. url

人類圖最全的解释【上】,四大古老智慧与现代科学的结合 https://www.youtube.com/watch?v=sZnpXhMAHpc

來測超多人推薦的「人類圖」,原來沒自信是天生的? https://www.youtube.com/watch?v=c-iSFkXJaqA

11. 管道颜色意义

1. 红色代表并不知道, 但是身边有人知道

2. 黑色代表潜意识知道

3. 黑色红色相间 代表你跟你的朋友都知道

4. 半通代表需要遇到另一半才能全通

阅读全文 »

人生随笔

发表于 2018-03-25 | 分类于 life

1. 梦想起航

不是现实支撑了梦想, 而是梦想支撑了现实

2. 顺势而为

鸟不是在飞翔, 而是乘风而起,
鱼不是在游泳, 而是驭水前行,
而人只能乘风顺浪而活得自在.
顺着天赋做事, 逆着人性做人
科学是整理过的知识, 而智慧则是整理过的人生
取法其上, 得乎其中, 取法其中, 得乎其下, 取法其下, 法不得也
水火相济 方能日照江河

3. 士志于道

道德经
能用言语解释的道理, 就称不上是恒成的大道, 能用文字表白的概念, 就称不上是恒成的概念
不能用言语述说的初始状态, 是混沌宇宙的本源
已经用言语表明的概念, 是孕育万事万物之母体
所以常保持虚无的状态, 是意图看清世界的本质
常保持是有的状态,     是意图明鉴事物的表象
虚无 是有, 来源相同,  而名称不同
他们都称得上是玄秘的现象, 玄秘之中的至高至上者, 便是产生宇宙间一切奥妙的门户

虚无是“空”。无不仅仅是一个独立的字,而是无为,无形,无己、无名等总多与道教“无”字有关概念的体现, 而虚是指若有若无,恍兮惚兮,杳冥玄妙的道炁状态,是有的载体。

道 只能意会 不可言传 只是为了称呼方便 才赋予道的称呼

名称绝非事物本身
名可名 非常名

一个人如果把概念的表述看的过重, 把语言文字描述的东西 看做事物本身, 那他就难以看到事物本质.
不是赢得了什么
而是没有放弃什么
如果你也有梦想, 那就为他奋斗吧
重要的不是你被拒绝了多少次, 摔倒多少次, 或者被打倒了多少次
而是你站起来的次数
是你一直坚持到底的勇气

4. 命运之转机

人的成就感来源于两样东西,创造和毁灭。
独处的人不是因为他想孤独,而是因为在他的周围找不到他的同类

5. 生命之喜悦-觉悟

心是愿望,神是境界,是文化、阅历和天赋的融汇。 文化属性: 市井文化 哲人文化 英雄文化

杀富富不去,救贫贫不离。 救主的文化唯救主可说,救主不是人,是道,得救不是破了戒的狼吞虎咽,是觉悟。

股票的暴利并不产生于生产经营,而是产生于股票市场本身的投机性。 它的运作动力是:把你口袋里的钱装到我口袋里去。 它的规则是:把大多数羊的肉填到极少数狼的嘴里。 私募基金是从狼嘴里夹肉,这就要求你得比狼更黑更狠,但是心理成本也更高,而且又多了一重股市之外的风险。所以得适可而止。

透视社会依次有三个层面:技术、制度和文化。 小到一个人,大到一个国家一个民族,任何一种命运归根到底都是那种文化属性的产物。 强势文化造就强者,弱势文化造就弱者,这是规律,也可以理解为天道,不以人的意志为转移。

阅读全文 »

im

发表于 2018-03-25 | 分类于 im

1. 图片存入阿里云oss

2. 语音调用科大讯飞存http地址

3. redis存主题id

4. 分布式聊天

5. 分布式网关

6. 客户端HASH

阅读全文 »

经济学

发表于 2018-03-25 | 分类于 economics

1. 人们如何作出决策

1.1. 人们面临交替关系 (蝴蝶效应)

1.2. 某些东西的成本是为了得到它所放弃的东西 (不懂的放弃 永远不会获得)

1.3. 理性人考虑边际量 (平衡 度的把握)

1.4. 人们会对激励作出反应 (影响力, 不一定是激励 可能是打击)

2. 人们如何相互交易

2.1. 贸易能使每个人状况更好 (加法 活水 个人对价值的认知不一样)

2.2. 市场通常是组织经济活动的一种好方法 (市场经济)

2.3. 政府有时可以改善市场结果 (计划经济)

3. 整个经济如何运行

3.1. 一国的生活水平取决于它生产物品与劳务的能力 (生产者)

3.2. 当政府发行厂过多货币时,物价上升 (供求关系)

3.3. 社会面临通货膨胀与失业之间的短期交替关系(?)

阅读全文 »

DSA

发表于 2018-03-25 | 分类于 DSA
数据结构与算法
阅读全文 »

三体

发表于 2018-03-25 | 分类于 3t
  • 引言
  • 弱小和无知不是生存的障碍,傲慢才是

1. 黑暗森林法则

宇宙就是一座黑暗森林,每个文明都是带枪的猎人,像幽灵般潜行于林间,轻轻拨开挡路的树枝,竭力不让脚步发出一点儿声音,连呼吸都必须小心翼翼:他必须小心,因为林中到处都有与他一样潜行的猎人,如果他发现了别的生命,能做的只有一件事:开枪消灭。在这片森林中,他人就是地狱,就是永恒的威胁,任何暴露自己存在的生命都将很快被消灭,这就是宇宙文明的图景,这就是对费米悖论的一种解释。

黑暗森林法则在《三体》系列中共有四个版本,分别为:叶文洁-罗辑理论、咒语实验理论、概率理论和宇宙战争理论。

1.1. 法则内容编辑

一旦某个文明被发现,就必然遭到其他文明的打击。

1.2. 叶文洁-罗辑理论编辑

叶-罗理论是罗辑对史强科普时总结的。是最广为人知甚至常被误认为是唯一的黑暗森林理论,但同时也是最受争议的理论。 叶文洁提出的“基本公理”和两大重要概念

1.3. 基本公理:

生存是文明的第一需要。 文明不断增长和扩张,但宇宙中的物质总量保持不变。

1.4. 两大重要概念

1.4.1. 猜疑链:双方无法判断对方是否为善意文明。

“文明间的善意和恶意。善和恶这类字眼放到科学中是不严谨的,所以需要对它们的含义加以限制:善意就是指不主动攻击和消灭其他文明,恶意则相反。这是最低的善意了吧。”——刘慈欣《三体2:黑暗森林》 一个文明不能判断另一个文明是善文明还是恶文明 一个文明不能判断另一个文明认为本文明是善文明还是恶文明 一个文明不能判断另一个文明是否会对本文明发起攻击 一个文明无法判断另一个文明对自己是善意或恶意的 一个文明无法判断另一个文明认为自己是善意或恶意的 一个文明无法判断另一个文明判断自己对它是善意或恶意的

1.4.2. 技术爆炸:文明进步的速度和加速度不见得是一致的,弱小的文明很可能在短时间内超越强大的文明。可能由内因或者外因(例如宇宙文明的交流)引发。原著中认为人类步入工业革命后短短两百余年巨大的技术飞跃(较于人类物种存在的三百万年与七千余年的文明)即是一例(刘慈欣《三体2:黑暗森林》)。

罗辑补充的五点假设 宇宙里的文明只有最低程度的善意。 交流一定会暴露文明的位置。 文明之间的竞争残酷程度与黑暗战役相当。 不同智慧物种间难以沟通。 任何文明都有很长的寿命。

1.5. 推导过程

1.5.1. 由物质守恒与文明的指数级扩张推导出文明间的根本性矛盾。

1.5.2. 具体到两个文明A,B的接触。

不妨假设A先发现B。 由于公理1,两方为了保证自己的生存,必须先判断对方善意恶意,“善意文明并不能预先把别的文明也想成善意的”。 (1)若A选择与B交流,则由于上述的相互判断,猜疑链形成,同时A暴露己方存在。若AB实力相当,则猜疑链后B对A构成实际威胁;若B落后于A,则技术爆炸(可能由A的交流引发)可能使B在相对较短的时间内对A形成威胁。 (2)若A选择隐蔽,则B在技术爆炸后仍会发现A,猜疑链发生,A的存在暴露,转化为第一种情况。 由公理1和猜疑链性质,得出结论:若文明A发现文明B,A只能对B施以打击。 “总结起来,一、让你知道我的存在;二、让你存在下去,对我来说都是危险的,都违反第一条公理。”——刘慈欣《三体2:黑暗森林》

1.5.3. 对于“大寂静”即费米悖论提出了一个可能的解释。技术等级较高的文明倾向于隐藏自己,使其他文明难以探查。暴露自己的文明在黑暗森林打击中被消灭。生存选择的结果是所有的文明都变得难以发现。

以上内容出于对刘慈欣《三体2:黑暗森林》相关内容的归纳整理。 对叶-罗理论的质疑 叶-罗理论的基石实际上在原著中就存在反例: 黑暗战役恰恰说明了,文明会根据实际情况调整规模,而非公理所说的不断扩张; 回归运动表明,文明间并不只有最低程度的善意; 三体文明与人类文明沟通并无困难,表明不同智慧物种间并非难以沟通。

1.6. 概率理论编辑

简述 概率理论同样出自罗辑对史强的讲解,但与叶-罗理论并非同一个理论。 概率理论的核心是:宇宙中有很多文明,总会有文明对被广播坐标进行打击。 (黑暗森林打击)若一个文明通过某种方式得知另一文明存在的可能性,则有一定概率发动不加侦查的随意打击。由于具有打击能力的文明数量极多,因此一个坐标暴露后,无论是否真的具有文明,必然受到随意性质的打击。

1.6.1. 推导过程

“一个黑暗森林中的猎手……突然看到……所有猎手都能认出的字标示出的森林中的一个位置……假设林中有一百万个猎手(在银河系数千亿颗恒星中存在的文明数量可能千百倍于此),可能有九十万个对这个标示不予理会;在剩下的十万个猎手中,可能有九万个对那个位置进行探测,证实其没有生物后也不予理会;那么在最后剩下的一万个猎手中,肯定有人会做出这样的选择:向那个位置开一枪试试,因为对技术发展到某种程度的文明来说,攻击可能比探测省力,也比探测安全,如果那个位置真的什么都没有,自己也没什么损失。”——刘慈欣《三体2:黑暗森林》 补充 那么科技水平处于可制造光速飞船并进行广播却不能实施黑暗森林打击阶段的文明可以通过飞船进行广播,而这不会导致母文明坐标的暴露。 对概率理论的质疑 概率理论实际上不能解释为什么宇宙中的星星没有被打光。而从原著对歌者的描述也可得知,清理者实际上会判断坐标的诚意,而非进行随意性质的打击,因为打击非诚意坐标将减少自身的可用资源 : 但所有坐标中,只有一部分是有诚意的。相信没有诚意的坐标常常意味着清理空旷的世界,这样做浪费精力,还有一点点害处,因为这些空世界以后还可能用得着。无诚意坐标的发送者真是不可理喻,它们会得到报应的。 …… 一般来说,被广播的单个坐标最终都会被清理,只是时间早晚的问题。你可能认为这个坐标没诚意,但在亿万个低熵世界中有亿万万个清理员,总有认为它有诚意的。低熵体都有清理基因,清理是它们的本能。

1.7. 咒语实验理论编辑

内容 咒语实验理论是基于罗辑的“咒语实验”所验证的三点客观事实所得出的理论: 高等文明存在大杀器。 黑暗森林打击及时准确。 高等文明优先选择打击而非沟通。 以此三点为基础,黑暗森林将作为事实客观存在。 缺陷 咒语实验理论的优点在于没有漏洞,缺陷在于所有设定都来自单次观测,而非多次观测的实验总结。 补充 咒语实验理论的三条在后来智子所言和对歌者的描述中得到补充和解释。 大杀器存在且成本低廉: 智子在茶道谈话上的发言: “……所谓随意的,是说坐标被发布是唯一的打击依据,不会对目标进行近距离直接探测,只是发动打击,因为对超级文明来说,近距离探测比打击成本更高;所谓经济的,是指只进行最低成本的打击,用微小低廉的发射物诱发目标星系中的毁灭能量。” 对歌者文明的描述: 二向箔悬浮在歌者面前,是封装状态,晶莹剔透。虽然只是很普通的东西,但歌者很喜欢它。他并不喜欢那些昂贵的工具,太暴烈,他喜欢二向箔所体现出来的这种最硬的柔软,这种能把死亡唱成一首歌的唯美。但歌者有些不安,“您这次怎么这样爽快就给我了?” “这又不是什么贵重东西。” 探测交流成本远高于打击: 对歌者文明的描述: 歌者启动了大眼睛的进程,他很少这么做,这是越权行为。 “你干什么?大眼睛现在很忙。”种子的长老说。 “有一个低熵世界,我想近些看看。”歌者回答。 “你的工作,远远看一眼就足够了。” “只是好奇。” “大眼睛有更重要的目标要观测,没时间满足你的好奇,做你的事去吧。”

1.8. 宇宙战争理论编辑

简述 该理论是从对《黑暗森林》和《死神永生》归纳总结得出。 该理论的核心是:主流战术决定战争形态。 简单来说:由于《三体》宇宙的客观条件(探测交流成本远高于打击、黑暗森林打击及时且准确、大杀器存在且成本低廉、打击不会暴露自身坐标)限制,所有文明都不得不藏起来打黑枪以避免被人打黑枪——因为任何文明都可以藏起来打黑枪而不被发现,同时为防止被人误射,所有藏起来的人都要对疑似目标打枪来尽可能消灭潜在的敌人,于是人人都不得不隐藏,人人都不得不打黑枪,于是黑森格局成立。 宇宙黑暗森林化过程 事实上,只要有任何一个文明在黑暗森林中开了第一枪,整个宇宙就将快速黑暗森林化: 具体过程: “元猎手”(可能只是由于内战)在黑暗森林中开了第一枪 →“元受害文明”产生 →“元受害文明”中的一部分为对抗“元猎手”而成为“二代猎手” →“二代猎手”无法找到元猎手 →“二代猎手”选择打击所有可疑目标 →“二代受害文明”产生 →…… 通过该过程,猎手的数量将以指数上升。最终演变为:“只要暴露,就会遭到打击”的黑暗森林格局。

1.9. 质疑及反驳编辑

由于四个版本的理论常被混为一谈,以下内容仅供参考: 【质疑1】:“文明不断增长和扩张”这点就有问题。现在地球社会的发展就看得出来,有些文明是在扩展的,有些是在萎缩的;有些人口在增加,有些却在减少(人口负增长不稀罕吧),怎么能说是不断的、无限的在扩张呢?而且现在有一种比较得到认可的观点,认为文明是有寿命的,跟人一样会生老病死,而文明的寿命对于动则多少万年的天文寿命来说,太短,所以这个假设暂未看到有证据支持。 【质疑2】:猜疑链则是博弈论里的基本概念,归结起来就是信息不对称导致的,而信息不对称在人类社会也普遍存在,为何大家没有打的天翻地覆你死我活?交流!这点三体也说了,但是它认为交流成本比直接攻击的成本大,这个假设也是漏洞颇大,不仅因为交流传递信息即可,攻击至少要传递一定数量级的能量和物质,这二者不在一个量级上,我对你说话容易还是我打死你容易?哪怕你是小蚂蚁.更因为攻击本身会暴露攻击者位置,可能遭到反击,这也是巨大的风险。而且交流还有可能有巨大的好处,例如三体人对唯一一个地球人的重视,他带去的童话啊什么的都能够提高三体人的生活质量,这点描写的很符合现实。互通有无大多数时候比闭关锁国好。一面是有巨大利益和较小成本的交流沟通,一面是有着较大成本和巨大风险的打击,你说应该选什么策略? 综上,黑暗森林法则仅是作者推测,存在很多漏洞,仅仅是一个理论。但黑暗森林法则作为一个科幻的核心创想来说,无疑是一项很高的成就。 三体整个小说最出彩的地方在时空跨度的描写、三观的颠覆和诡异如侦探推理般的情节,而不在森林法则。 部分人对质疑的反驳: 【反驳1】:质疑1考虑的问题局限于狭隘的地球和人类种族中。文明、猜疑链和技术爆炸三者均是以宇宙为范畴,以物种为单位的描述。而质疑1很明显建立在以地球,甚至以大洲为单位的狭隘边际内,限制在某个人种甚至某个国家为单位的发展过程中。虽然地球某些种族“有些人口在增加,有些却在减少”,但对于整个地球“人类”这个物种来说,以人类作为一个文明的整体,并以世纪为单位来看,人类文明无疑是加速甚至爆炸增长的。因此质疑1讨论的级别相差太远,根本没有可比性。 【反驳2】:“交流成本比直接攻击的成本大”,这个假设对于落后的文明来说,的确是合情理的,但对于高级的文明来说,攻击绝对比交流简单实在的多,小说中也指出:“因为对技术发展到某种程度的文明来说,攻击可能比探测省力,也比探测安全”。举个例子:假若你(高级文明)看到一只蚊子(低级文明),你是一巴掌打了过去,还是把脸贴近它跟它交流了?很显然,大部分人会选择一巴掌过去!再如:你看到一只食人蚁(注意这个名称),你会蹲下来和它交流它是否有意向要吃掉你?还是会直接用脚踩死它?答案不言而喻。对于低等级文明,高等级文明根本可以忽略你的沟通。即,”毁灭你,与你有何相干?”。同时交流意味着要有传输信息的载体,而载体将会暴露自己的存在和大致方向,所以在黑暗森林成型前交流有效,成型后交流的成本主要在于对本文明的保护。 问题在于如果不做探测,你确定你看到的是蚊子,而不是一只霸王龙? 而且不同物种的个体之间与文明之间没有有可比性。狮子会一口咬死猎物,只要能吃,而人会怕稀有物种灭绝而予以保护,就算那个物种的肉再好吃,这是智力与否的差别。 交流和攻击的成本主要在于时间(因为时间可以创就强大的对手),比如两个星系相距10光年,用质粒或二向箔打击只需要以接近光速行进单程的时间就是十多年,而交流以光速传递需要好几个来回才能说清,而几百年过去了,技术爆炸的可能性增大,最后导致交流的另一方在相对较短的时间内形成威胁,因此交流从长期来说存在风险。何况,茫茫宇宙随时都可能出现第三者恶意的文明。 另外,质疑2认为“攻击本身会暴露攻击者位置”,其实不然,对于高级的文明来说,它完全可以派遣一批“远征军”在任意的地方攻击你,而不是在母星球直接发起攻击,这样就不会暴露攻击者的位置。 问题在于“远征军”也好,“殖民星”也罢,必然会和母星有各种联系,比如舰队运行轨迹,通信痕迹。对于更高级的文明来说,这些痕迹简直就是引路的灯塔。 但同时高级文明可以做到行踪的隐藏从而避免被其他更高级文明的的捕捉:黑猫警长中的单只耳走了两条路径,一条是通往正确的一条是通往错误的,而单只耳却把正确的路径隐匿起来做到行踪的隐藏。假若单只耳一条路径都没有留下,那么就会让别的文明认为没有通讯信息。但是单只耳是在已被发现的情况下进行伪装,如若全部隐匿则会分兵两路自己早晚都会暴露。如若进行踪迹伪造则会顺手牵羊的帮自己消灭。做到了不费一兵一卒便大获全胜,但也无法排除比可伪造文明的更高级文明即可识别伪装文明。例如一个每天都在上网页的一个悠闲人士,那么他可以做到一眼识别此网页是否有意义是否是为伪装广告。 【反驳3】:首先,并不是说落后文明技术爆炸可能性大,即使是均等概率,以一个文明来讲也是不能承受1/2的毁灭几率的。其次,最重要其实是发生的时间。概率是均等的,但是时间线一定是不一致的。A文明不可能确定在B文明技术爆炸并超越自己后,还能否有足够的时间等到自己的技术爆炸! 另外,“技术爆炸”可能性是有条件的。若两个文明彼此都不与外部文明进行信息交流,则落后文明和先进文明的技术爆炸都是均等概率发生的。但一旦发生交流或者攻击不彻底,落后文明的技术爆炸的概率要比先进文明大。这是由于信息交流后,不管是有意或无意,都会给落后文明指引一条技术爆炸方向(打个比方说:清朝闭关锁国不与外界交流,一旦被西方列强打开国门,这种被迫的交流或者说不彻底的攻击,不管有意还是无意,都会指导技术发展方向和加速社会的发展。从而提前引发技术爆炸,如会在短时间内,学习西方的蒸汽机、电气、物理生物科学等技术。可以说洋务运动就是由于与西方的交流而引发的,倘若西方没有打开清朝的大门,试问洋务运动还会发生吗,估计到现在我们还不知道什么是蒸汽机呢。另外攻击必须彻底摧毁对方,否则将来会受到毁灭性的报复。 【反驳4】:宇宙社会学基本公理:第二条、文明不断增长和扩张,但宇宙中的物质总量基本保持不变。 此条的说法有问题,物质总量不变和是否竞争没有关系,大家竞争的实际上是资源。但按照现在的说法资源其实是一种知识。就比如:现在大家都看石油是资源,但古人只能用他来做spa,现在大家都知道核聚变材料就在大海中,但还没有人将大海作为资源象石油一样竞争。如果以此为推理基础,在进行推理,我们与外星人的合作的好处就会大于竞争。因为竞争是没有办法产生超过合作的知识提升的。 部分人对反驳4的质疑: 文明是殊途同归的,就像EVE,主要资源就那么几种,而服务器里的资源总量是有限的,如果两个文明都发展了核聚变那么两个文明就都需要聚变原料,发展的科技不一样(无机科技和有机生物科技),需求的资源不一样(矿物和生物质),甚至生存条件都不一样(电磁波生命和碳基生命),但科技不同也意味着知识无法通用。所以反驳4成立的条件是有一种通用的几乎无尽的能源,比如空间能,但能使用空间能的文明不会需要一个弱小文明的科技。而就算共同研发也要确定好每个参与者的地位。 哪怕这个宇宙中的所有文明联合在一起可以构建一个完美的物质能量资源循环那些文明们也不会那么做,看看人类对自己母星做了什么就知道了,一个文明首先要满足生存条件,但在满足生存条件后这个文明就会索求其他东西,如果说有什么能让全宇宙的文明坐下来和谈,那么这个东西一定是一个能兼容任何生命形式的意识的虚拟空间。 而且风俗不同,长相不同,甚至连生物学都不同,人类和三体人只是在通过电磁波用自译解系统在交流,你的文明认为什么事情是不可容忍的,其他的文明认为这种事情很正常,你能保证你所处的文明里不会有任何一个人做出过激举动吗?你能确保像《群星》一样群魔乱舞甚至长得跟shit一样的外星人能和你的文明完全和谐相处吗?种族歧视,肤色歧视,外貌歧视,国籍歧视甚至国籍仇恨这些东西人类并不一定能全员抛弃。

1.10. 小说实例编辑

文革期间一次偶然的星际通讯引发了三体世界对地球的入侵及人类文明与三体文明之间三百多年的恩怨情仇。 三体文明科技遥遥领先,但思维透明、无法进行复杂战略欺骗,科技只能匀速发展,且三体(第一)舰队到达地球须四百年;人类虽然科技暂时落后,但具有科技爆炸式加速发展、思维复杂且不透明的优势。因此双方竭力扬长避短,展开了激烈的厮杀:三体文明利用人类中的第五纵队“地球三体组织”(其成员称为ETO,Earth Three-body Organization,均是痛恨人类劣根性的各界精英,具有很大影响力)从内部对人类文明进行破坏,同时用高度智能的微观粒子“智子”扰乱人类的加速器,阻止人类在基础科学上的进一步发展,以图锁死人类的科学;而人类则推选出四位“面壁者”与三体文明展开了智慧博弈。 在前三位面壁者惨遭失败、人类舰队被区区一个三体强互作用力探测器(“水滴”)全歼后,最后的面壁者罗辑利用宇宙的“黑暗森林法则”(宇宙中的每个文明都是带枪的猎人,其他文明都是永恒的威胁,任何暴露自己存在的文明都将很快被消灭)逼退了三体(第一)舰队并建立了对三体文明的“黑暗森林威慑”,迫使三体文明解除了对人类的科技封锁。 然而人类的劣根性在半个世纪后毁掉了来之不易的胜利:陷入大同世界童话无法自拔的大众因为罗辑使用非常手段拯救人类而仇视罗辑,并将“执剑者”(掌控引力波天线开关,决定是否进行“黑暗森林威慑”操作的人)由罗辑换成了程心。结果由于程心无法下让人类与三体世界同归于尽的决心,在更换执剑者之后短短十五分钟,水滴就摧毁了地球上的全部引力波天线,随后智子(前面提到的女性AI)开始在地球上执行人类灭绝计划,同时三体第二舰队正以光速驶来,四年后就将到达地球。 幸而此时处在太阳系之外的“蓝色空间”号飞船从四维空间伏击了“万有引力”号飞船(“万有引力”同时也是一个巨大的引力波天线)与水滴联合编队(“蓝色空间”因在“末日战役”前追击逃亡的章北海座舰“自然选择”而逃过了水滴毁灭,之后又从幸存的人类小舰队为争夺生存资源展开的“黑暗战役”中幸存,但也因此被人类的道德所不容。在被人类政府诱骗回地球前,“蓝色空间”得到了因同样为争夺生存资源攻击了“量子”号并被诱骗回地球的“青铜时代”号警告,于是“蓝色空间”立即开始了新的逃亡,而地球和三体世界对“蓝色空间”展开了联合追杀),粉碎了水滴毁灭两舰的阴谋,并争取“万有引力”舰员一起向全宇宙进行了引力波广播,被暴露的三体世界很快被高级文明毁灭,三体舰队也被迫放弃了入侵地球和灭绝人类的计划(太阳系与三体星系距离仅四光年,在三体星系暴露的情况下,太阳系迟早也会被发现和攻击),为人类争取到了逃离太阳系的时间。同时,打入三体文明内部的云天明也用童话的方式通过其暗恋的女神程心向人类传递了至关重要的战略情报,向人类指出了黑域和曲率驱动光速飞船两大活路(两者实际是联系在一起的,曲率驱动光速飞船进入光速时会降低空间曲率产生永久航迹,足够多的这种航迹将太阳系包裹起来就能形成黑域,黑域的光速只有16.7千米/秒,任何东西都无法飞出黑域,其他文明一看就知道黑域里的文明不会对其构成威胁,因此也就不会对黑域进行攻击,但航迹太少反而是向其他文明发出的危险信号)。但程心的爱和母性使得光速飞船的研究被耽误了宝贵的35年(一是人类大众无法接受能逃多少人是多少人的思想,二是三体第二舰队的航迹让人类认为光速飞船非常危险),人类在根本未考虑太阳系结构与三体星系结构的情况下就开始实施“掩体计划”(三体星系是由三颗太阳与一颗行星组成的,攻击者用光粒攻击一颗太阳就毁灭了三体世界,因此人类也以为太阳系将来也是被光粒攻击太阳,就在远离太阳的行星上建起了数个太空城),结果最后只有程心和艾AA乘仅有的一艘光速飞船逃离了太阳系,其他地球人类都连同太阳系被压成了一张没有厚度的巨画。 至此,两个文明的大部分个体都在黑暗森林打击中被毁灭,幸存的个体都以星舰的形式延续文明。

1.11. 歌者文明编辑

歌者文明是出现在刘慈欣所著的《地球往事》系列丛书的第三部《死神永生》中的一个文明程度远高于地球文明的外星种族。 由于黑暗森林法则的存在,歌者文明在途经太阳系的时候,随手扔了一块二向箔,但是将人类文明毁灭的并不是歌者的二向箔,而是其他文明的二向箔。这一点从书中的纪元年可见,地球的毁灭比歌者文明的二向箔早一年,正如文中所说:“再快也有比你快的。” 歌者文明的名称并不是歌者,歌者只是该文明的一个个体的名称,他的工作不过是随手清理那些发现的已经暴露的文明罢了,地球就是其中之一。吟唱古老的歌谣基本是歌者的唯一乐趣,以下是歌者吟唱的诗: 我看到了我的爱恋 我飞到她的身边 我捧出给她的礼物 那是一小块凝固的时间 时间上有美丽的条纹 摸起来像浅海的泥一样柔软 她把时间涂满全身 然后拉起我飞向存在的边缘 这是灵态的飞行 我们眼中的星星像幽灵 星星眼中的我们也像幽灵 …… 以下绝大部分是网友的猜想,其中绝大部分原文中并未提及,仅供参考 地位 据猜测,大约在宇宙中处于中上水平,在其之上还有至少二个等级。在其之下就是地球三体等较原始落后的文明。 作战能力:星系级 航行范围:宇宙可见区域 武器:利用宇宙规律 意义之塔 这是歌者文明所有所追求的一切,就像法律书写在石塔上那样,“意义之塔”上记录一个文明的追求和价值观。在歌者文明的塔上,最高的是生存。 我们已知的歌者文明的塔上的内容:生存,乐趣,在不断熵增的宇宙中保持和提高自己的低熵水平。其中乐趣是最不重要的。在开战之后,乐趣因为意义地位较低,很大程度上被遗忘了。 在意义之塔的更高处,在歌者文明看不到的高处,还有更高的意义。但这不是这个层次的文明所能考虑和理解的事情。 这个文明层次最大的矛盾和任务,是生存。为了生存,他们必须战争、隐藏和清理。 处境 母世界,即歌者所在的文明陷入与周遭边缘文明的战争。战争正在陷入逐步不利的局面。边缘文明正在逐步扩大他们的成果。母世界陷入战绩后撤、文明萎缩的境地。 战争的范围大小:大约涉及十到二十个银河系的大小。 母世界由大约二到三个星系组成。是宇宙该区域最大最亮、最繁华的星系群。周遭的小星系体积很小,最小的只有银河的三分之一。因此称为边缘世界。但从这些小星系崛起的文明现在变的非常强大。 生物 歌者文明的生物是一种海陆两生生物。在陆地上,生物能够更好的用声音来表达自己的意思与情感。因此,歌者文明是一种用音乐声来交流和表达的文明。由于音乐表达含义是一种冗长而不精准的过程,在早期歌者文明的科技发展的很慢。 在原始时期的末期,歌者文明全面改用了新的语言体系,大大缩短了音乐交流的节奏和速度,确定了一些音符的精准含义。语言体系的改进使得歌者文明进入了科技时代。 科技时代的主要发明:超级决策。由于歌者文明使用的是音乐语言,因此,自古开始歌者文明的群体决策就有一种独特的类似于大合唱的方式来进行。当需要进行一次群体决策时,所有参与决策的人,如果是公民大会就有几万甚至十几万人,在一个广场上一起唱歌。每个人用自己的歌声把自己的意思表达出来。当这样的歌唱持续了几个小时后,就会发现渐渐的,所有杂乱无章的音符渐渐的变得开始统一,有一些人的意见成为了主流,人们开始跟随那个声音。到最后全民的决策作出的时候,上万人会同时开始吟唱同一段音符。这种决策过程类似于上万个神经元在大脑中作出一个决定一样。歌者文明的第一台电脑就是根据类似的原理来研制的。这种原理研制出来的电脑,从一开始就是多核多线程的,随着机器的不断进步,歌者文明拥有极为强大的计算力。且这样的电脑在很大程度上还具有创造力。 根据猜测,歌者文明强大的计算能力不是基于主频速度的不断提升来实现的,而是在现有计算结构上不断增加更多更高速的神经元来实现的。因此歌者文明的中央计算器从诞生的那一天起,就在不断的增大和扩建。直到上亿个时间颗粒过去了,第一个神经单元还存在于那台古老的机器的中央,而机器还在使用中,虽然那些古老的单元已经实在贡献等于零了,但它们被后来的神经元挤压在中央,是不可能再取出来的了。 在文明发展的高度成熟时期,最庞大的超核——即中央计算机,有一个行星之大,这种巨型的计算机器需要巨量的能源,通常一台计算机需要几颗恒星为其提供运行所用的能源。越大的计算机越靠近星系的中央,因为那里越是恒星密集,能源更加充沛。 这种巨型的计算系统帮助歌者文明实现了高速度的发展。计算机不但能够完成海量数据的计算,还能进行虚拟的物理实验,甚至能够独立进行科学项目研究——这种计算机有思考能力。当你给它一个命题之后,它可以设定假想上百个解决方向,然后分成上百个线程去跟进这一百个方向,不断的进行推演去证明,失败的证明就回收进程,成功的继续。 依托这种高级计算成长起来的文明,不断的建设更大更强的计算机器.同时在航天和物理学技术爆炸的时代,迅速的统治了自己的星系。然后把范围扩大到周边的其它星系。 战争 在歌者文明占据了三个星系,继续向外扩张的过程,遭遇到了边缘世界的抵抗. 边缘世界的生物体系是一种无机的生物。他们由某种岩石星球上诞生,在那个贫瘠的星系缺少有机生物诞生的环境.当歌者文明遭遇他们的时候,他们刚刚才完成技术爆炸,还没有来得及扩张自己。 当两种文明初次相遇的时候,彼此都认不出来对方竟然是一种生命。歌者文明认为只有有机体才是生命,而对方则从来没有见过有机物质。 刚开始,歌者文明认为只要用很简单的方式就能消灭对方,然而,让他们万万没有想到的是,无机生命的运作方式,以及对生命的概念与有机生命是完全不一样的。 初期战争:化学战和物理战。歌者文明采取物理上毁灭对方行星的方式。而边缘世界则改变了大量歌者文明星球上的化学特质。许多歌者生物患了氧化病。 中期战争:大量毁灭边缘世界的恒星,这一阶段对边缘世界是最难熬的时期。然后很快歌者文明发现,那些失去恒星的行星上,无机生物并未死掉,无机生物并不需要太阳、阳光和水。有些失去恒星的生物只不过由于寒冷被冻住了,只要边缘世界重新回去解冻他们,这些生物仍然能够回到战场上。 白热化战争:歌者文明开始用激活星系黑洞的方式对边缘世界实施打击。每一个星系的中央都存在着一个黑洞,通过向黑洞投送大量物质的方式,黑洞将出现猛烈的喷发,这种喷发放射出的射线可穿过极遥远的宇宙,消灭一切路上存在的生物。在这个阶段边缘世界开始了向其它周边小星系的全面移民过程.周边世界有五六个较小的星系,边缘世界的居民像蒲公英一样的漂向每一个可以触及的星球。黑洞打击之后,一个星系消灭了,却出现了若干个敌人占领的星系,真正的边缘星系诸国形成了。 反转战争。在移民的过程当中,边缘世界出现了再一次的技术爆炸。有些边缘世界人全面改造了自己的物理和化学特质。无机生物由于存在的原理与有机生物截然不同,使得他们可以完全的改造自己。他们的战术包括:攻击行星磁场,使行星裸露在宇宙辐射中,有机体全面死亡。攻击恒星,使恒星猛然爆发、或失去外壳变成一团火热的星云。 在反击的后期,边缘世界开始准备一项浩大的工程,让那颗离歌者文明最近的黑洞卷入歌者文明的星系里。当两个星系中央的黑洞发生互相吸引的时候,两个星系都会被卷入黑洞的互相纠缠的过程中。黑洞在互相纠缠中最终将融为一体,但星系里的所有星星都会像被勺子搅过一遍的汤一样。 在这个情况下,歌者文明开始局部使用二向箔(降维武器)。 战争前景 使用二向箔这样的工具,在星系尺度的战争上是没有什么用的。因为一个太阳系针对一个银河来讲,太小了。如果要将整个银河系都降成二维,需要相当巨大的二维武器,也需要相当长的时间。 在未来遥远可见的时代,三维的歌者文明仍将存在。但文明二维化的准备工作已经开始。边缘世界尚未掌握这项技术。当十个星系二维化的进程一开始,毁灭与胜利也就基本上写下了结局。一些敌人可能逃逸到别的地方,但这些逃跑的家伙,会像家养的兔子一样,逃进黑暗森林。在这场战争之外的敌人,可能更加凶险。 其它 维度武器在这一层级的文明中,是最高级的武器。歌者文明在这一层级的文明中,尚不算最先进的。虽然它的探索和飞行可以超出十个星系,但尚且无法扩张到十个星系之外。还有比它强大的多的文明。 比它更高一级的文明,将不仅仅是“利用”物理规律而已,而将是制定和更改物理规律的家伙。也被低级文明称为,神一样的文明。

阅读全文 »

vcpkg

发表于 2018-03-08 | 分类于 vcpkg

1. vcpkg windows 安装boost

安装vcpkg

git clone --recursive -v https://github.com/Microsoft/vcpkg.git
pushd vcpkg

call bootstrap-vcpkg.bat
echo vcpkg integrate remove
echo vcpkg integrate install
echo vcpkg integrate project
popd

安装boost

pushd vcpkg
::arm-uwp,arm-windows,arm64-uwp,arm64-windows,x64-linux,x64-osx,x64-uwp,x64-windows,x64-windows-static
vcpkg install boost:x64-windows-static
::vcpkg export boost:x64-windows-static --7zip
popd

cmake 编写

cmake_minimum_required(VERSION 3.8)

SET(CMAKE_TOOLCHAIN_FILE "${CMAKE_CURRENT_SOURCE_DIR}/../dmvcpkg/vcpkg/scripts/buildsystems/vcpkg.cmake")

PROJECT(dmspawn)
LIST(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
INCLUDE(cmake/ModuleImport.cmake)
INCLUDE(cmake/ModuleCompileOptions.cmake)
ModuleSetCompileOptions()
ModuleSetWinCompilerFlags()

find_package(Boost COMPONENTS coroutine REQUIRED)
include_directories(${Boost_INCLUDE_DIRS})
ExeImport("test" "${Boost_LIBRARIES}")

cmake 构建命令行

vcpkg install boost:x64-windows-static

rmdir /S /Q build
mkdir build
pushd build
cmake -A x64 -DCMAKE_BUILD_TYPE=relwithdebinfo -DVCPKG_TARGET_TRIPLET=x64-windows-static ..
cmake --build . --config relwithdebinfo -- /m:%NUMBER_OF_PROCESSORS%

popd

手动下载源 例如: https://www.libsdl.org/release/SDL2-2.0.14.tar.gz 下载后copy到vckpkg的downloads目录即可 再启动安装脚本.

2. 命令-说明

vcpkg search [pat]

查询当前版本的vcpkg是否支持名字包含所提供的字符串的库。

此命令有一个可选参数:–x-full-desc,这个参数的作用是确保即使库的描述字段过长,也不会被自动的截断

vcpkg install ...

安装一个库,此命令有多个可选参数,详情请参考:Install命令

vcpkg remove ...

卸载一个已安装的库,此命令有5个可选参数:

–purge 同时卸载库的缓存文件,此参数为默认参数

–no-purge 不卸载库的缓存文件,此参数已被遗弃

–recurse 允许卸载未在命令行上明确指定的包

–dry-run 仅显示将被卸载的包,而不执行具体的卸载操作

–outdated 显示将会被卸载的过期的库,但不执行卸载操作,若要执行卸载操作,需要额外添加 –recurse参数

vcpkg list

列出当前vcpkg上已安装的库,此命令有两个可选参数:

–x-full-desc 确保即使库的描述字段过长,也不会被自动的截断 –x-json 以json格式显示安装的库

vcpkg update

显示需要更新的库的列表

vcpkg upgrade

显示需要重新安装的过期库的列表,此命令有两个可选参数:

–no-dry-run 执行具体的安装命令

–keep-going 此参数需和参数–no-dry-run 一同使用,其作用是保证所有过期的库都完成安装,即使中间有某一个库安装失败,整个安装过程也不会立刻停止,而是继续安装下一个库

vcpkg hash [alg]

用特定算法对文件进行哈希,默认为SHA512

vcpkg help topics

显示帮助主题的列表,目前可用的主题如下:

Binarycaching,assetcaching,create,depend-info,edit,env,export,help,install,integrate,list,owns,remove,search,topics,triplet,versioning

vcpkg help

显示特定主题的帮助信息

vcpkg integrate install

使已安装的软件包在整个用户中可用,第一次使用时需要管理员权限

vcpkg integrate remove

删除用户范围内的集成

vcpkg integrate project

生成一个nuget包,供单个VS项目使用

vcpkg integrate powershell

启用PowerShell的标签完成功能

vcpkg export ... [opt]...

导出一个库,此命令有多个可选参数,详情请参考:Export 命令

vcpkg edit

使用编辑器打开一个库进行编辑,此命令有两个可选参数:

–buildtrees 打开编辑器进入特定库的buildtree子文件夹

–all 打开编辑器进入库以及库专用的buildtree 子文件夹使用哪个编辑器是由%EDITOR%这个变量决定的,它的默认值为”code”,表示此命令打开的编辑器默认为VS code,若未安装VS code,则命令不工作

vcpkg create [archivename]

在vcpkg中为一个新的库创建相关的文件,此命令需要3个参数:

新库的名称 库的名称不能和已有的库重名

库文件的下载路径 下载路径必须是可用的链接

压缩包的名称 压缩包的名称是自定义的

执行此命令后,会在.\vcpkg\ports文件夹下创建一个以库名称命名的文件夹,其中包含vcpkg.json文件和portfile.cmake文件

vcpkg owns

在.\vcpkg\installed文件夹下查找包含所提供字符串的文件

vcpkg depend-info ...

显示库的依赖项列表,此命令有5个可选参数:

–dot 在点的基础上创建图形

–dgml 在dgml的基础上创建图形

–show-depth 在输出中显示递归深度

–max-recurse=… 设置最大递归深度,值为-1表示没有限制

–sort=… 设置依赖关系列表的排序顺序,可接受的值是:lexicographical,reverse,topological(默认)

vcpkg env

为开发或编译创建一个干净的cmd环境,此命令有5个可选参数:

–bin 添加installed/x86-windows/bin/的路径到PATH环境变量

–include 添加installed/x86-windows/include/的路径到INCLUDE环境变量

–debug-bin 添加installed/x86-windows/debug/bin/的路径到PATH环境变量

–tools 添加installed/x86-windows/tools/的路径到PATH环境变量

–python 添加installed/x86-windows/python的路径到PYTHONPATH环境变量

vcpkg version

显示vcpkg的版本信息

vcpkg contact

显示vcpkg团队的联系方式以供用户提供反馈

此命令有一个可选参数:–survey, 其作用是启动默认浏览器到当前的vcpkg survey页面,但是目前执行此命令后仅仅只是得到一个提示信息, 而不是打开默认浏览器

vcpkg x-init-registry

在目录下初始化一个注册表

给一个registry仓库添加了一个readme文件和license文件

vcpkg x-history

显示目标库在vcpkg上的历史

阅读全文 »

url

发表于 2018-03-08 | 分类于 url

MacOS

MacOS 10.10 ~ ?

https://dl.google.com/chrome/mac/stable/GGRO/googlechrome.dmg

MacOS 10.9

https://dl.google.com/chrome/mac/legacy10_9/GGRO/googlechrome.dmg

MacOS 10.6 ~ 10.8

https://dl.google.com/chrome/mac/legacy/GGRO/googlechrome.dmg

阅读全文 »

svn环境设定

发表于 2018-03-08 | 分类于 svn

1. 检出

svn  checkout  http://路径(目录或文件的全路径) [本地目录全路径] --username 用户名

svn  checkout  svn://路径(目录或文件的全路径) [本地目录全路径]  --username 用户名

例子:

svn co svn://localhost/测试工具 /home/testtools --username wzhnsc  
svn co http://localhost/test/testapp --username wzhnsc  
svn checkout svn://localhost/测试工具 /home/testtools --username wzhnsc  
svn checkout http://localhost/test/testapp --username wzhnsc  
注:如果不带--password 参数传输密码的话,会提示输入密码,建议不要用明文的--password 选项。
   其中 username 与 password前是两个短线,不是一个。
   不指定本地目录全路径,则检出到当前目录下。

2. 导出(导出一个干净的不带.svn文件夹的目录树)

svn export [-r 版本号]  http://路径(目录或文件的全路径) [本地目录全路径] --username 用户名
svn export [-r 版本号]  svn://路径(目录或文件的全路径) [本地目录全路径] --username 用户名
svn export 本地检出的(即带有.svn文件夹的)目录全路径  要导出的本地目录全路径

例子:

svn export svn://localhost/测试工具 /home/testtools --username wzhnsc
svn export svn://localhost/test/testapp --username wzhnsc
svn export /home/testapp /home/testtools
注:第一种从版本库导出干净工作目录树的形式是指定URL,
如果指定了修订版本号,会导出相应的版本,
如果没有指定修订版本,则会导出最新的,导出到指定位置。
如果省略 本地目录全路径,URL的最后一部分会作为本地目录的名字。
第二种形式是指定 本地检出的目录全路径 到 要导出的本地目录全路径,所有的本地修改将会保留,
但是不在版本控制下(即没提交的新文件,因为.svn文件夹里没有与之相关的信息记录)的文件不会拷贝。

3. 添加新文件

svn add 文件名
注:告诉SVN服务器要添加文件了,还要用svn commint -m真实的上传上去!

例子:

svn add test.php
添加test.php 
svn commit -m "添加我的测试用test.php" test.php
svn add *.php
添加当前目录下所有的php文件
svn commit -m "添加我的测试用全部php文件" *.php

4. 提交

svn commit -m "提交备注信息文本" [-N] [--no-unlock] 文件名
svn ci -m "提交备注信息文本" [-N] [--no-unlock] 文件名
必须带上-m参数,参数可以为空,但是必须写上-m

例子:

svn commit -m "提交当前目录下的全部在版本控制下的文件" *
注意这个 * 表示全部文件
svn commit -m "提交我的测试用test.php" test.php
svn commit -m "提交我的测试用test.php" -N --no-unlock test.php
保持锁就用–no-unlock开关
svn ci -m "提交当前目录下的全部在版本控制下的文件" *
注意这个 * 表示全部文件
svn ci -m "提交我的测试用test.php" test.php
svn ci -m "提交我的测试用test.php" -N --no-unlock test.php

保持锁就用–no-unlock开关

5. 更新文件

svn update
svn update -r 修正版本 文件名
svn update 文件名

例子:

svn update
后面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版本
svn update -r 200 test.cpp
将版本库中的文件 test.cpp 还原到修正版本(revision)200
svn update test.php 
更新与版本库同步。提交的时候提示过期冲突,需要先 update 修改文件,然后清除svn resolved,最后再提交commit。

6. 删除文件

svn delete svn://路径(目录或文件的全路径) -m "删除备注信息文本"
推荐如下操作:
svn delete 文件名 
svn ci -m "删除备注信息文本”

例子:

svn delete svn://localhost/testapp/test.php -m "删除测试文件test.php"
推荐如下操作:
svn delete test.php 
svn ci -m "删除测试文件test.php"

7. 加锁/解锁

svn lock -m "加锁备注信息文本" [--force] 文件名 
svn unlock 文件名

例子:

svn lock -m "锁信测试用test.php文件" test.php 
svn unlock test.php

8. 比较差异

svn diff 文件名 
svn diff -r 修正版本号m:修正版本号n 文件名

例子:

svn diff test.php
将修改的文件与基础版本比较
svn diff -r 200:201 test.php
对 修正版本号200 和 修正版本号201 比较差异

9. 查看文件或者目录状态

svn st 目录路径/名
svn status 目录路径/名
目录下的文件和子目录的状态,正常状态不显示 
[?:不在svn的控制中;  M:内容被修改;C:发生冲突;A:预定加入到版本库;K:被锁定]
svn  -v 目录路径/名
svn status -v 目录路径/名
显示文件和子目录状态
[第一列保持相同,第二列显示工作版本号,第三和第四列显示最后一次修改的版本号和修改人]
注:svn status、svn diff和 svn revert这三条命令在没有网络的情况下也可以执行的,
  原因是svn在本地的.svn中保留了本地版本的原始拷贝。

10. 查看日志

svn log 文件名

例子:

svn log test.php
显示这个文件的所有修改记录,及其版本号的变化 

11. 查看文件详细信息

svn info 文件名

例子:

svn info test.php
svn 帮助
svn help
全部功能选项
svn help ci
具体功能的说明

12. 查看版本库下的文件和目录列表

svn list svn://路径(目录或文件的全路径)
svn ls svn://路径(目录或文件的全路径)

例子:

svn list svn://localhost/test
svn ls svn://localhost/test
显示svn://localhost/test目录下的所有属于版本库的文件和目录 

13. 创建纳入版本控制下的新目录

svn mkdir 目录名
svn mkdir -m "新增目录备注文本" http://目录全路径

例子:

svn mkdir newdir
svn mkdir -m "Making a new dir." svn://localhost/test/newdir 
注:添加完子目录后,一定要回到根目录更新一下,不然在该目录下提交文件会提示"提交失败”

svn update
注:如果手工在checkout出来的目录里创建了一个新文件夹newsubdir,
  再用svn mkdir newsubdir命令后,SVN会提示:
  svn: 尝试用 "svn add”或 "svn add --non-recursive”代替?
  svn: 无法创建目录"hello”: 文件已经存在
  此时,用如下命令解决:
  svn add --non-recursive newsubdir
  在进入这个newsubdir文件夹,用ls -a查看它下面的全部目录与文件,会发现多了:.svn目录
  再用 svn mkdir -m "添hello功能模块文件" svn://localhost/test/newdir/newsubdir 命令,
  SVN提示:
  svn: File already exists: filesystem '/data/svnroot/test/db', transaction '4541-1',
  path '/newdir/newsubdir '

14. 恢复本地修改

svn revert [--recursive] 文件名
注意: 本子命令不会存取网络,并且会解除冲突的状况。但是它不会恢复被删除的目录。

例子:

svn revert foo.c
丢弃对一个文件的修改
svn revert --recursive .
恢复一整个目录的文件,. 为当前目录 
把工作拷贝更新到别的URL
svn switch http://目录全路径 本地目录全路径
svn switch http://localhost/test/456 .
(原为123的分支)当前所在目录分支到localhost/test/456

15. 解决冲突

svn resolved [本地目录全路径]

例子:

$ svn update
C foo.c
Updated to revision 31.

如果你在更新时得到冲突,你的工作拷贝会产生三个新的文件:
$ ls
foo.c
foo.c.mine
foo.c.r30
foo.c.r31
当你解决了foo.c的冲突,并且准备提交,运行svn resolved让你的工作拷贝知道你已经完成了所有事情。
你可以仅仅删除冲突的文件并且提交,但是svn resolved除了删除冲突文件,还修正了一些记录在工作拷贝管理区域的记录数据,所以我们推荐你使用这个命令。
不checkout而查看输出特定文件或URL的内容
svn cat http://文件全路径
例子:
svn cat http://localhost/test/readme.txt

16. 新建一个分支copy

svn copy branchA branchB  -m "make B branch"
从branchA拷贝出一个新分支branchB

17. 合并内容到分支merge

svn merge branchA branchB
把对branchA的修改合并到分支branchB

18. patch处理

同事 A 运行如下命令生成 patch:

svn diff > mod.patch

应用 patch:

同事 B 运行如下命令应用 patch:

svn patch mod.patch

当他 review 完代码,想删除该 patch 时, 可运行:

svn patch --reverse-diff mod.patch
阅读全文 »

github环境设置

发表于 2018-03-08 | 分类于 github环境设置

1. 问题: github新建仓库 action 编译异常

Run Sibz/github-status-action@v1
Error: Error setting status:
Resource not accessible by integration
Request object:
{
  "context": "Set Status",
  "description": "Passed",
  "state": "success",
  "owner": "brinkqiang",
  "repo": "dmuuid",
  "sha": "fef880d110c76f0662f2e0a5c0f8dcedeeeaf2f7",
  "target_url": ""
}

github似乎修改 项目的默认设置。 修改如下:

项目 -> Settings -> Action -> General ->

把 Read repository contents permission 去掉

把 Read and write permissions 勾选上

2. 问题:如何在github上面查询哪些项目使用了lfs

在https://github.com/settings/billing/summary页面可以查到lfs的使用情况

3. 问题:github命令行工具gh 如何下载 使用

https://github.com/cli/cli/releases

linux下或可用apt install gh

gh auth login

在web登录 打开https://github.com/login/device 输入命令行输出的字符串

gh repo list

阅读全文 »

gitaliases

发表于 2018-03-08 | 分类于 gitaliases
序列号 别名 命令 中文说明
1 g git 显示git命令帮助
2 ga git add 添加文件到暂存区
3 gaa git add –all 添加所有更改的文件到暂存区
4 gapa git add –patch 以补丁形式添加文件到暂存区
5 gau git add –update 更新暂存区中的文件状态
6 gb git branch 显示分支列表
7 gba git branch -a 显示所有分支(包括远程分支)
8 gbda git branch –merged | command grep -vE “^(*|\smaster\s$)” | command xargs -n 1 git branch -d 删除已合并的分支(除了当前分支和master)
9 gbl git blame -b -w 显示文件每一行的作者和提交信息
10 gbnm git branch –no-merged 显示未合并的分支
11 gbr git branch –remote 显示远程分支
12 gbs git bisect 启动二分查找以定位引入错误的提交
13 gbsb git bisect bad 标记当前提交为坏的
14 gbsg git bisect good 标记当前提交为好的
15 gbsr git bisect reset 重置二分查找状态
16 gbss git bisect start 启动二分查找
17 gc git commit -v 提交更改并打开编辑器编辑提交信息
18 gc! git commit -v –amend 修改最近一次提交(添加新更改)
19 gca git commit -v -a 提交所有更改并打开编辑器编辑提交信息
20 gcam git commit -a -m 提交所有更改并直接输入提交信息
21 gca! git commit -v -a –amend 修改最近一次提交(包含所有更改)
22 gcan! git commit -v -a -s –no-edit –amend 修改最近一次提交,包含所有更改,并签署提交,不打开编辑器
23 gcb git checkout -b 创建并切换到新分支
24 gcf git config –list 显示所有配置选项
25 gcl git clone –recursive 克隆仓库并递归初始化子模块
26 gclean git clean -df 清理工作目录中的未跟踪文件和目录
27 gcm git checkout master 切换到master分支
28 gcd git checkout develop 切换到develop分支
29 gcmsg git commit -m 提交更改并直接输入提交信息
30 gco git checkout 切换分支或恢复文件
31 gcount git shortlog -sn 显示每个作者的提交次数
32 gcp git cherry-pick 横向应用提交到当前分支
33 gcpa git cherry-pick –abort 中止 cherry-pick 操作
34 gcpc git cherry-pick –continue 继续 cherry-pick 操作
35 gcs git commit -S 提交更改并签署提交信息
36 gd git diff 显示工作目录与暂存区的差异
37 gdca git diff –cached 显示暂存区与最近一次提交的差异
38 gdt git diff-tree –no-commit-id –name-only -r 显示提交之间的文件变更列表
39 gdw git diff –word-diff 以单词级别显示差异
40 gf git fetch 从远程仓库获取更新但不合并
41 gfa git fetch –all –prune 获取所有远程仓库的更新并移除已删除的远程分支
42 gfo git fetch origin 从origin远程仓库获取更新
43 gg git gui citool 启动Git GUI工具并打开提交窗口
44 gga git gui citool –amend 启动Git GUI工具并打开修改提交窗口
45 ggf git push –force origin $(current_branch) 强制推送当前分支到origin
46 ghh git help 显示git命令帮助
47 ggpull ggl git pull
48 ggpur ggu git pull –rebase
49 ggpush ggp git push
50 ggsup git branch –set-upstream-to = origin/$(current_branch) 设置当前分支的上游分支
51 gpsup git push –set-upstream origin $(current_branch) 推送当前分支并设置上游分支
52 gignore git update-index –assume-unchanged 忽略文件的更改不跟踪
53 gignored git ls-files -v | grep “^[[:lower:]]” 显示被忽略的文件
54 git-svn-dcommit-push git svn dcommit && git push github master:svntrunk 将提交推送到svn和github
55 gk \gitk –all –branches 启动gitk显示所有分支
56 gke \gitk –all $(git log -g –pretty = format:%h) 启动gitk并显示指定提交
57 gl git pull 从远程仓库拉取并合并更新
58 glg git log –stat –color 显示提交日志并包含统计信息和颜色
59 glgg git log –graph –color 显示提交日志图并着色
60 glgga git log –graph –decorate –all 显示所有提交的日志图并包含装饰信息
61 glgm git log –graph –max-count = 10 显示最近10个提交的日志图
62 glgp git log –stat –color -p 显示提交日志并包含统计信息和补丁
63 glo git log –oneline –decorate –color 以单行格式显示提交日志并包含装饰信息和颜色
64 glog git log –oneline –decorate –color –graph 以单行格式显示提交日志并包含装饰信息、颜色和图形
65 glol git log –graph –pretty = format:’%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset’ –abbrev-commit 以图形方式显示提交日志并包含详细信息
66 glola git log –graph –pretty = format:’%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset’ –abbrev-commit –all 以图形方式显示所有提交的日志并包含详细信息
67 glp _git_log_prettily 显示提交日志的漂亮格式
68 gm git merge 合并分支
69 gmom git merge origin/master 合并origin/master分支
70 gmt git mergetool –no-prompt 启动合并工具
71 gmtvim git mergetool –no-prompt –tool = vimdiff 使用vimdiff作为合并工具
72 gmum git merge upstream/master 合并upstream/master分支
73 gp git push 推送当前分支到远程仓库
74 gpd git push –dry-run 检查推送操作但不实际推送
75 gpoat git push origin –all && git push origin –tags 推送所有分支和标签到origin
76 gpristine git reset –hard && git clean -dfx 重置工作目录到最近一次提交并清理未跟踪文件
77 gpu git push upstream 推送当前分支到upstream
78 gpv git push -v 推送当前分支并显示详细信息
79 gr git remote 显示远程仓库信息
80 gra git remote add 添加远程仓库
81 grb git rebase 重新基准当前分支
82 grba git rebase –abort 中止rebase操作
83 grbc git rebase –continue 继续rebase操作
84 grbi git rebase -i 交互式地重新基准当前分支
85 grbm git rebase master 将当前分支重新基准到master分支
86 grbs git rebase –skip 跳过当前提交并继续rebase操作
87 grh git reset HEAD 重置工作目录到最近一次提交
88 grhh git reset HEAD –hard 重置工作目录和暂存区到最近一次提交
89 grmv git remote rename 重命名远程仓库
90 grrm git remote remove 移除远程仓库
91 grset git remote set-url 设置远程仓库的URL
92 grt cd $(git rev-parse –show-toplevel || echo “.”) 进入仓库的顶层目录
93 gru git reset – 重置工作目录到指定状态
94 grup git remote update 更新所有远程分支信息
95 grv git remote -v 显示远程仓库的详细信息
96 gsb git status -sb 显示简明的分支状态
97 gsd git svn dcommit 将本地提交推送到svn仓库
98 gsi git submodule init 初始化子模块
99 gsps git show –pretty = short –show-signature 显示提交的简明信息并显示签名
100 gsr git svn rebase 从svn仓库拉取更新并重新基准当前分支
101 gss git status -s 显示简明的工作目录状态
102 gst git status 显示工作目录状态
103 gsta git stash save 保存工作现场到stash
104 gstaa git stash apply 应用stash中的保存现场
105 gstd git stash drop 删除stash中的保存现场
106 gstl git stash list 列出所有的stash
107 gstp git stash pop 应用并删除stash中的保存现场
108 gstc git stash clear 清除所有的stash
109 gsts git stash show –text 显示stash中的保存现场内容
110 gsu git submodule update 更新所有子模块
111 gts git tag -s 创建签名标签
112 gunignore git update-index –no-assume-unchanged 取消忽略文件的更改跟踪
113 gunwip git log -n 1 | grep -q -c “--wip--” && git reset HEAD~1 如果最近一次提交信息是”–wip–“,则重置到上一次提交
114 gup git pull –rebase 拉取并重新基准当前分支
115 gupv git pull –rebase -v 拉取并重新基准当前分支并显示详细信息
116 gupa git pull –rebase –autostash 拉取并重新基准当前分支并自动保存现场
117 gupav git pull –rebase –autostash -v 拉取并重新基准当前分支并自动保存现场并显示详细信息
118 glum git pull upstream master 从upstream拉取master分支并合并到当前分支
119 gvt git verify-tag 验证标签的签名
120 gwch git whatchanged -p –abbrev-commit –pretty = medium 显示指定范围内的文件变更列表
121 gwip git add -A; git rm $(git ls-files –deleted) 2> /dev/null; git commit -m “–wip–” 暂存所有更改并提交一条包含”–wip–“信息的提交
阅读全文 »

git环境设置

发表于 2018-03-08 | 分类于 git

Mobile Preview

1. git基础操作

使用 .gitattributesde 配置文件 内容如下
*.h linguist-language=C++
*.c linguist-language=C++

使用 .git-credentials  配置文件(win下面在 C:\user\username下面) 内容如下
https://username:password@github.com
再执行 git config --global credential.helper store
或执行(缓存10个小时) git config --global credential.helper cache –timeout=36000

git clone https://brinkqiang:password@github.com/brinkqiang/dmlua.git
git remote add origin https://brinkqiang:password@github.com/brinkqiang/dmlua.git
git branch -al 查看本地和远程的所有分支。 
本地创建仓库
git init
本地创建纯净的仓库
git init --bare --shared
添加
git readme.txt add
添加当前目录所有文件
git add .
本地提交
git commit 
拉取
git pull
远端提交
git push -u origin master   (注:此操作目的是把本地仓库push到github上面,此步骤需要你输入帐号和密码)
git submodule init && git submodule update
git submodule add https://github.com/google/googletest.git thirdparty/gtest
bat设置如下
git config --global user.name ""
git config --global user.email ""
git config --global credential.helper store
git config --global credential.helper cache –timeout=36000
git config --global http.postBuffer 200000000
git config --global http.sslVerify "false"

2. git代理设置

edit .gitconfig
[http]
    proxy = http://127.0.0.1:8087
    sslVerify = false
    postBuffer = 200000000

3. git放弃本地所有修改

git fetch --all
git reset --hard origin/master
git pull

4. git 切换当前链接方式

本地将所有https方式转换成ssh方式

git config --global url."git@github.com:".insteadOf "https://github.com/"

本地https -> ssh方式

git remote set-url origin git@github.com:username/project.git

本地ssh -> https方式

git remote set-url origin https://github.com/username/project.git

5. git换行符

5.1. 假如你正在Windows上写程序,又或者你正在和其他人合作,他们在Windows上编程,而你却在其他系统上,在这些情况下,你可能会遇到行尾结束符问题。这是因为Windows使用回车和换行两个字符来结束一行,而Mac和Linux只使用换行一个字符。虽然这是小问题,但它会极大地扰乱跨平台协作。

Git可以在你提交时自动地把行结束符CRLF转换成LF,而在签出代码时把LF转换成CRLF。用core.autocrlf来打开此项功能,如果是在Windows系统上,把它设置成true,这样当签出代码时,LF会被转换成CRLF: git config –global core.autocrlf true

5.2. Linux或Mac系统使用LF作为行结束符,因此你不想 Git 在签出文件时进行自动的转换;当一个以CRLF为行结束符的文件不小心被引入时你肯定想进行修正,把core.autocrlf设置成input来告诉 Git 在提交时把CRLF转换成LF,签出时不转换:

git config –global core.autocrlf input

5.3. 如果你是Windows程序员,且正在开发仅运行在Windows上的项目,可以设置false取消此功能,把回车符记录在库中:

git config –global core.autocrlf false

6. 注意

使用gogs http上传方式 可能存在缓冲区过小的问题 fatal: The remote end hung up unexpectedly fatal: The remote end hung up unexpectedly error: RPC failed; HTTP 400 curl 22 The requested URL returned error: 400 Failed reading client body 可以在工作目录执行如下命令 git config –global http.postBuffer 204800000

7. 干净的新仓库

git checkout --orphan latest_branch

git add -A
git commit -m "Reset repository"

git branch -D master

git branch -M master

git push -f origin master

8. 创建cmake模块化项目


git clone --depth 1 --recurse-submodules git@github.com:grpc/grpc.git

git fetch --tags

git checkout v1.68.2

git submodule update --init --recursive

tar --exclude='.git' -czvf grpc.tar.gz grpc

9. 创建新的分支

# 查看本地当前分支
git branch
# 查看远端分支
git branch -r


# 创建切换分支
git switch -c new_branch
# 切换分支
git switch new_branch
# 关联分支
git push --set-upstream origin new_branch


# 拉取远端代码 合并
git pull 
# 拉取远端代码 不合并
git fetch

# 拉取远端所有分支
git fetch --all
git branch -r

# 合并其他分支, 当前合并其他分支.
git merge other_branch
# 删除本地分支 以及远端分支 v2
git branch -D v2 && git push origin --delete v2

10. 创建分支注意

10.1. 从main或者master分支切换 到指定版本后 子模块 可能还是使用的 main或者master分支 这点要特别注意

git checkout v1.68.2
git submodule update --init --recursive

11. 本地签入合并冲突提示: Please, commit your changes or stash them before you can merge.

git stash
git pull
git stash pop

12. 本地上传gitlab项目

先删除.git目录

git init
git remote add origin git@gitlab.com:userName/projectName.git
git add .
git commit -m "note"
git push original master

13. 增加可执行权限

git ls-files --stage
100644 0479304e6086a7b886718aacd1e4e50da9145f66 0       dmgen

644权限,默认不能执行

git update-index --chmod +x dmgen

git ls-files --stage
100755 0479304e6086a7b886718aacd1e4e50da9145f66 0       dmgen

现在文件是755可执行权限.

git commit -m "xxx!"
 1 files changed, 0 insertions(+), 0 deletions(-)
 mode change 100644 => 100755 src/dmgen

git push

14. 仓库迁移

git clone ne https://github.com/brinkqiang/dmgen pushd dmgen git remote add gitlab https://new.github.com/brinkqiang/dmgen git push gitlab master popd

15. zsh git

git branch 分支名 //创建分支

gco 分支名 //切换分支

gwip //签入
ggpush //推送远端

gpoat //创建上传分支

16. git lfs

git lfs install git lfs track “.zip” git lfs track “.rar” git add .gitattributes

17. windows更新git

git update-git-for-windows

17.1. The git Plugin

The git plugin provides many aliases and a few useful functions.

Enable it by adding git to the plugins array before sourcing OMZ (see [[Plugins]]).

17.2. Aliases

Alias Command
g git
ga git add
gaa git add –all
gapa git add –patch
gau git add –update
gb git branch
gba git branch -a
gbda git branch –merged | command grep -vE “^(*|\smaster\s$)” | command xargs -n 1 git branch -d
gbl git blame -b -w
gbnm git branch –no-merged
gbr git branch –remote
gbs git bisect
gbsb git bisect bad
gbsg git bisect good
gbsr git bisect reset
gbss git bisect start
gc git commit -v
gc! git commit -v –amend
gca git commit -v -a
gcam git commit -a -m
gca! git commit -v -a –amend
gcan! git commit -v -a -s –no-edit –amend
gcb git checkout -b
gcf git config –list
gcl git clone –recursive
gclean git clean -df
gcm git checkout master
gcd git checkout develop
gcmsg git commit -m
gco git checkout
gcount git shortlog -sn
gcp git cherry-pick
gcpa git cherry-pick –abort
gcpc git cherry-pick –continue
gcs git commit -S
gd git diff
gdca git diff –cached
gdt git diff-tree –no-commit-id –name-only -r
gdw git diff –word-diff
gf git fetch
gfa git fetch –all –prune
gfo git fetch origin
gg git gui citool
gga git gui citool –amend
ggf git push –force origin $(current_branch)
ghh git help
ggpull ggl
ggpur ggu
ggpush ggp
ggsup git branch –set-upstream-to = origin/$(current_branch)
gpsup git push –set-upstream origin $(current_branch)
gignore git update-index –assume-unchanged
gignored git ls-files -v | grep “^[[:lower:]]”
git-svn-dcommit-push git svn dcommit && git push github master:svntrunk
gk \gitk –all –branches
gke \gitk –all $(git log -g –pretty = format:%h)
gl git pull
glg git log –stat –color
glgg git log –graph –color
glgga git log –graph –decorate –all
glgm git log –graph –max-count = 10
glgp git log –stat –color -p
glo git log –oneline –decorate –color
glog git log –oneline –decorate –color –graph
glol git log –graph –pretty = format:’%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset’ –abbrev-commit
glola git log –graph –pretty = format:’%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset’ –abbrev-commit –all
glp _git_log_prettily
gm git merge
gmom git merge origin/master
gmt git mergetool –no-prompt
gmtvim git mergetool –no-prompt –tool = vimdiff
gmum git merge upstream/master
gp git push
gpd git push –dry-run
gpoat git push origin –all && git push origin –tags
gpristine git reset –hard && git clean -dfx
gpu git push upstream
gpv git push -v
gr git remote
gra git remote add
grb git rebase
grba git rebase –abort
grbc git rebase –continue
grbi git rebase -i
grbm git rebase master
grbs git rebase –skip
grh git reset HEAD
grhh git reset HEAD –hard
grmv git remote rename
grrm git remote remove
grset git remote set-url
grt cd $(git rev-parse –show-toplevel || echo “.”)
gru git reset –
grup git remote update
grv git remote -v
gsb git status -sb
gsd git svn dcommit
gsi git submodule init
gsps git show –pretty = short –show-signature
gsr git svn rebase
gss git status -s
gst git status
gsta git stash save
gstaa git stash apply
gstd git stash drop
gstl git stash list
gstp git stash pop
gstc git stash clear
gsts git stash show –text
gsu git submodule update
gts git tag -s
gunignore git update-index –no-assume-unchanged
gunwip git log -n 1 | grep -q -c “--wip--” && git reset HEAD~1
gup git pull –rebase
gupv git pull –rebase -v
gupa git pull –rebase –autostash
gupav git pull –rebase –autostash -v
gunignore git update-index –no-assume-unchanged
glum git pull upstream master
gvt git verify-tag
gwch git whatchanged -p –abbrev-commit –pretty = medium
gwip git add -A; git rm $(git ls-files –deleted) 2> /dev/null; git commit -m “–wip–”

17.3. Deprecated Aliases

These are aliases that have been removed, renamed, or otherwise modified in a way that may, or may not, receive further support.

Alias Command Modification  
gap git add –patch new alias gapa  
gcl git config –list new alias gcf  
gdc git diff –cached new alias gdca  
gdt git difftool no replacement  
ggpull git pull origin $(current_branch) new alias ggl (ggpull still exists for now though)  
ggpur git pull –rebase origin $(current_branch) new alias ggu (ggpur still exists for now though)  
ggpush git push origin $(current_branch) new alias ggp (ggpush still exists for now though)  
gk gitk –all –branches now aliased to \gitk --all --branches  
glg git log –stat –max-count = 10 now aliased to git log --stat --color  
glgg git log –graph –max-count = 10 now aliased to git log --graph --color  
gwc git whatchanged -p –abbrev-commit –pretty = medium new alias gwch  
gwip git add -A; git ls-files –deleted -z \ xargs -r0 git rm; git commit -m “–wip–” now aliased to git add -A; git rm $(git ls-files --deleted) 2> /dev/null; git commit -m "--wip--"

17.4. Functions

17.4.1. Current

Command Description
current_branch Return the name of the current branch
current_repository Return the names of the current remotes
git_current_user_name Returns the user.name config value
git_current_user_email Returns the user.email config value

17.4.2. WiP

These features allow to pause a branch development and switch to another one (“Work in Progress”, or wip). When you want to go back to work, just unwip it.

Command Description
work_in_progress Echoes a warning if the current branch is a wip
gwip Commit wip branch
gunwip Uncommit wip branch

17.5. github host

17.5.1. 获取Github相关网站的ip

访问https://www.ipaddress.com,找到页面中下方的“IP Address Tools - Quick Links”,分别输入github.global.ssl.fastly.net和github.com,查询ip地址。

17.5.2. 修改host

140.82.113.4 github.com
140.82.113.4 gist.github.com
185.199.109.153 assets-cdn.github.com
185.199.109.153 raw.githubusercontent.com
185.199.109.153 gist.githubusercontent.com
185.199.109.153 cloud.githubusercontent.com
185.199.109.153 camo.githubusercontent.com
185.199.109.153 avatars0.githubusercontent.com
185.199.109.153 avatars1.githubusercontent.com
185.199.109.153 avatars2.githubusercontent.com
185.199.109.153 avatars3.githubusercontent.com
185.199.109.153 avatars4.githubusercontent.com
185.199.109.153 avatars5.githubusercontent.com
185.199.109.153 avatars6.githubusercontent.com
185.199.109.153 avatars7.githubusercontent.com
185.199.109.153 avatars8.githubusercontent.com

17.5.3. 更新缓存

ipconfig /flushdns sudo dscacheutil -flushcache

17.5.4. github验证机制调整

在新机器上 设置好ssh-key的情况。 依旧需要账号密码, 这里的密码 不是登陆密码 而是Personal access tokens
阅读全文 »

git-my

发表于 2018-03-08 | 分类于 git-my

Mobile Preview Mobile Preview

1. git 开发环境搭建

1.1. git zsh My-Zsh安装

1.2. 设置git参数

1.3. 设置git ssh key

2. git 工作区域差别

2.1. Workspace: 工作区,就是你平时存放项目代码的地方

2.2. Index/Stage: 暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息

2.3. Repository: 仓库区(或版本库),就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本

2.4. Remote: 远程仓库,托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换

3. git in Oh-My-Zsh基础操作

3.1. gl 拉代码

3.2. gwip 本地签入代码

3.3. ggpush 远端签入代码

3.4. ggpull 本地分支拉代码

3.5. grhh 放弃本地未签入修改

3.6. gfa && git reset –hard origin/master && gl 放弃本地已签入修改

3.7. gb 创建分支不切换(gb sys)

3.8. gco 切换分支(gco sys)

3.9. gba 查看所有分支

3.10. gcb 创建分支并切换到该分支(例: gcb user) 在之后 git push 签入到远端

3.11. gm 合并分支

3.12. gmom 合并分支到origin/master

3.13. gbd 删除分支

3.14. gst 获取本地状态

3.15. gd 获取差异

4. git 新分支替换master分支步骤

4.1. 对master备份(GitHub支持备份)

4.2. 进入setting设置develop为默认仓库

Mobile Preview

4.3. 本地操作删除远程master分支:git push origin -d master

4.4. 本地仓库删除master分支:git branch –delete master

4.5. 本地创建新的master分支,并拉取远程develop分支最新内容git checkout -b master origin/develop

4.6. 将新的master分支推送到远程git push origin master:master

5. patch处理

同事 A 运行如下命令生成 patch:

git diff > mod.patch

应用 patch:

同事 B 运行如下命令应用 patch:

git apply --check mod.patch
git apply mod.patch

当他 review 完代码,想删除该 patch 时, 可运行:

git apply -R mod.patch

6. 设置git协议替代https协议

git config –global url.”git@github.com:”.insteadOf “https://github.com/”

7. 强制使用远端分支

git fetch –all && git reset –hard origin/master && git pull

阅读全文 »

framesync

发表于 2018-03-08 | 分类于 framesync

帧同步的基本原理 帧事件数据采集 帧同步的事件处理与动画 帧同步的逻辑数据同步 帧同步之跳帧处理

现代多人游戏中,多个客户端之间的通讯大多以同步多方状态为主要目标,为了实现这一目标,主要有两个技术方向:

状态同步 帧同步 状态同步

状态同步简单来说就是同步游戏中的各种状态,当客户端发送游戏动作到服务器,服务器接收到之后,通过计算游戏行为的结果,然后广播下发给客户端游戏中的各种状态数据。客户端接收到状态数据后显示内容。这种做法类似于各个客户端都在远程操作服务器上的软件。例如最高的mud,以及日后大量的国产网游,特别是回合制游戏,大多采用这种方式。

状态同步的流程:

客户端上传操作到服务器 服务器收到后计算游戏行为的结果(如技能逻辑、战斗计算等) 服务器以广播的方式下发游戏中各种状态 客户端收到状态后更新本地状态(如动作状态、Buff状态、位置等) 为了给游戏玩家更好的体验,减少同步的数据量,客户端也会做很多的本地运算,减少服务器同步的频率以及数据量。

状态同步其实是一种不严谨的同步,它的思想中不同玩家屏幕上的一致性的表现并不是重要指标,只要每次操作的结果相同即可。所以状态同步对网络延迟的要求并不高。例如:RPG游戏中200~300ms的延迟对用户来说是可以接受的,但在RTS(即时战略)游戏中50ms的延迟却会很受伤。

帧同步

帧同步是RTS游戏经常采用的一种同步技术,状态同步中数据量会随着需要同步的单位数量增长,而对于RTS来讲动不动就是几百个单位可以被操作,如果这些都需要同步的话,数据量是不能被接受的,所以帧同步不同步状态,之同步操作。例如游戏中同步玩家的操作指令,操作指令包含当前的帧索引。

简单来说,客户端发送游戏动作到服务器,服务器接收并汇总,然后直接转发给所有客户端,或者客户端直接通过P2P技术发送。客户端根据收到的游戏动作来做运算和显示。这种做法等于客户端之间相互远程控制其他客户端上的游戏软件。早期的ipx网络游戏,例如红色警戒、帝国时代、星际争霸,以及大量支持网络连线双打游戏机模拟机,都是采用这种方式。

那些游戏需要使用帧同步呢?

多人实时对战游戏 游戏中需要战斗回放功能 游戏中需要加速功能 需要服务器同步逻辑校验防止作弊 帧同步的流程

同步随机种子:游戏中设计随机数的使用,通过同步随机数种子可以保持随机数的一致性。 客户端上传操作指令给服务器,操作指令包含游戏操作和当前帧索引。 游戏广播所有客户端的操作,如果没有操作也要广播空指令来驱动游戏帧前进。

帧同步主要依赖客户端的能力,服务器仅仅是做一个转发,甚至客户端可以无需服务器,通过P2P方式来转发数据。由于只是转发游戏的行为,所以广播的数据量比状态同步要小很多。非常适合游戏行为非常频繁的动作游戏,诸如飞行射击、FPS、RTS(即时战略)。

状态同步由于要把整个游戏的状态都广播下去,如果游戏中的对象特别多,比如满屏的子弹、怪物,那么要广播的数据量就会很大,这个时候帧同步的优势就比较明显,因为不管有多少”机器控制的角色“,仅仅需要广播玩家角色有关的操作即可。反过来,如果游戏中有大量玩家同时聚集,那么帧同步和状态同步的差异就不太明显。反而状态同步能得到更多安全性,因为游戏运算在服务器上,比较容易防止外挂。

简单来说,帧同步技术最要的概念是”相同的输入 + 相同的时机 = 相同的显示“。也就是说,游戏接收来自网络的多个客户端的操作,如果这些操作在各个客户端上都是一样的,那么多个客户端的显示也就是一样的,进而带来了”同步“的效果。在这种情况下,各个客户端的运算要绝对一致,不能依赖诸如本地时间、本地随机等”输入“,而要一切以网络来的数据为主。

因为帧同步的特性,因此很容易做出战斗回放,即服务器记录所有操作,客户端请求到操作文件再执行一次。帧同步的特性导致客户端的逻辑实现和表现实现必须完全分离。

帧同步的目的在于消除网络波动性带给玩家的卡顿以及忽快忽慢的不良体验。

状态同步和帧同步的比较和选择

对于单位比较多的即时策略游戏,帧同步是很好的选择。相反的,如果玩家比较多,状态同步则更加合适,因为安全性更高。一般大型MMOARPG都采用状态同步,由于状态同步采用C/S架构,所有状态由服务器来控制,安全性比较高,但流量比较大。帧同步采用的是囚徒模式,所有C端强制采用一个逻辑帧率,从而保证输出一致,其特点是流量小,安全性较差。

囚徒模式又叫锁步模式,就是把所有参与对战的客户端看成排成一列的囚犯,这些囚犯们的左脚都被锁链给连起来,如果要往前走,就只能同时迈步,如果其中某个人走快了或走慢了,都回让整队人停下来。

帧同步的基本原理 帧同步是一种对同步源进行像素级同步显示的处理技术,对于网络上的多个接入者,一个信号将会通过主机同步发送给其他人,并同步显示在各个终端上。同步信号可以是每帧的像素数据,也可以是影响数据变化的关键事件信息。

帧同步在网络游戏应用中的设计有别于传统的MMORPG游戏,因为可以承载大量的后台计算,实现类单机的效果,所以可以在射击类、飞行类游戏中实现弹幕计算或格斗类的高精度打击效果。

什么叫做帧同步呢?服务器收集客户端手机发送过来的操作,然后在特定的时间(收集完成之后),再广播发送给每个客户端。客户端根据接收到的输入,进行同样的逻辑处理,最终得到同样的结果的过程。在实现上,一般都是以服务器按固定的帧率,来搜集每个客户端的输入,然后把这些输入广播给所有客户端。由于每个操作指令到达所有客户端的时间(帧)都是一样的,所以每个客户端运算的结果也是一样的,也就是同样的输入就会得到同样的结果。

这就好像是玩家通过网络将操作手柄连接到你的手机,这种同步方案是传统单机局域网游戏中最常见的。

帧同步模型最大的优点在于强一致性,每个客户端的表现是完全一样的,非常适合高度要求操作技巧的游戏。由于广播的仅仅是玩家的操作,所以数据量很少。不管游戏中的角色数量、状态数量有多大多复杂,都不会影响广播的数据量。

帧同步模型最大的缺点是对所有玩家的延迟都有要求,一般来说要求在50毫秒以内,如果有一个客户端网络卡住了,所有客户端都要停下来等待。

另外在帧同步模式中,数据同步的频率较高,网络延迟越小越好。由于TCP的滑动窗口机制和重传机制,导致延时机制,导致延时无法控制。因此帧同步一般采用UDP进行网络传输,但UDP又会衍生出可靠性问题,对于客户端,如果某些UDP包没有收到,就会出现丢帧的情况。

客户端A的操作A1与客户端B的操作B1,共同封装成OperateCmd数据发送给PVP服务器,PVP服务器每66毫秒产生一个逻辑祯,在该桢所在时间段内,收到A1和B1后,生成一个Frame数据块,在该帧时间结束时,将Frame发送给客户端A和B。Frame数据块内有该帧的帧号,客户端A和B接收到Frame数据后,便知道该帧内,客户端A和客户端B都做了什么操作。然后根据接收到的消息A1和B1进行游戏表现,最终呈现给玩家A和B的结果是一致性的,从而实现客户端A和B的数据同步。

帧同步既然是在特定时间发送,也就是说每隔一段时间收集用户操作指令,那么要间隔多久内。例如每隔一段时间搜索用户的操作。此时,如果时间太快则网络速率达不到要求,如果时间太长则用户操作不流程。哪里多少才比较合适呢?根据统计玩家至少要在50ms-100ms可以完成一次,一般维持到15-20次左右会比较安全。

阅读全文 »

codegen

发表于 2018-03-08 | 分类于 codegen

1. 代码自动生成技术基建

1.1. 文件编码转换工具dmpackage

1.2. 模板引擎ctemplate

1.3. 数据引擎protobuf

2. 代码自动生成技术组件

2.1. 数据中间件dmconfig

2.4. makefile生成器

2.2. cmake框架生成器dmgen

2.3. lua模块生成器

2.5. 错误码生成器dmgen4error

2.6. 协议派发生成器dmgen4msg

2.7. SQL语句生成器

2.8. ORM生成器

2.9. 命令行工具框架生成器

阅读全文 »

cmake

发表于 2018-03-08 | 分类于 cmake

1. cmake

cmake 生成工程文件

Win set vs version

cmake -G Visual Studio 14 2015" -A Win32 -DCMAKE_BUILD_TYPE=relwithdebinfo ..
cmake -G Visual Studio 14 2015" -A x64 -DCMAKE_BUILD_TYPE=relwithdebinfo ..

Win auto

cmake -A x64 -DCMAKE_BUILD_TYPE=relwithdebinfo ..
cmake --build . --config relwithdebinfo -- /m:%NUMBER_OF_PROCESSORS%

linux

cmake -DCMAKE_BUILD_TYPE=relwithdebinfo ..
cmake --build . --config relwithdebinfo -- -j$(nproc)

cmake windows平台符号导出

set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)

cmake在不同平台构建32位/64位

GCC (on Linux) and some other compilers, e.g Sun Studio. Set CFLAGS and CXXFLAGS to include -m32 (32-bit build) or -m64 (64-bit build).

Windows, Visual Studio generator .Use 64 bit generator ,e.g

cmake -G "Visual Studio 10 Win64" path\to\source\dir

to compile 64-bit (x64). Omit "Win64" in generator name, to build for 32 bit

Mac OS X. Use CMAKE_OSX_ARCHITECTURES CMake variable.

cmake -DCMAKE_OSX_ARCHITECTURES=i386 /path/to/source/dir will compile 32 bit build

cmake -DCMAKE_OSX_ARCHITECTURES=x86_64 /path/to/source/dir will compile 64 bit.

Finally, cmake "-DCMAKE_OSX_ARCHITECTURES=x86_64;i386" /path/to/source/dir will create 96-bit universal binaries :)

CMake Error: Could not find CMAKE_ROOT !!!” 的解决方法

1. (hash -r)

2. cmake3

sudo rm -rf /usr/bin/cmake
sudo ln /usr/bin/cmake3 /usr/bin/cmake

cmake -G Visual Studio 14 2015” -A Win32

阅读全文 »

ai

发表于 2018-03-08 | 分类于 ai

1. AI自动补全

1.1. PYTHON 插件

https://kite.com/integrations/vs-code/

1.2. Java / Python / PHP / C++ / JavaScript / TypeScript

https://www.aixcoder.com/#/Product

https://file.aixcoder.com/plugin/vscode/aixcoder-0.1.19-community.vsix

https://file.aixcoder.com/plugin/sublime/sublime-aiXcoder-1.0.0.zip

1.3. https://tabnine.com/

https://tabnine.com/

其他插件依赖 https://github.com/cquery-project/cquery

阅读全文 »

vscode

发表于 2018-03-05 | 分类于 vscode

1. VsCode 快捷键有五种组合方式(科普)

  1. Ctrl + Shift + ? : 这种常规组合按钮
  2. Ctrl + V Ctrl +V : 同时依赖一个按键的组合
  3. Shift + V c : 先组合后单键的输入
  4. Ctrl + Click: 键盘 + 鼠标点击
  5. Ctrl + DragMouse : 键盘 + 鼠标拖动

2. 通用快捷键

快捷键 作用
Ctrl+Shift+P,F1 展示全局命令面板
Ctrl+P 快速打开最近打开的文件
Ctrl+Shift+N 打开新的编辑器窗口
Ctrl+Shift+W 关闭编辑器

3. 基础编辑

快捷键 作用
Ctrl + X 剪切
Ctrl + C 复制
Alt + up/down 移动行上下
Shift + Alt up/down 在当前行上下复制当前行
Ctrl + Shift + K 删除行
Ctrl + Enter 在当前行下插入新的一行
Ctrl + Shift + Enter 在当前行上插入新的一行
Ctrl + Shift + | 匹配花括号的闭合处,跳转
Ctrl + ] / [ 行缩进
Home 光标跳转到行头
End 光标跳转到行尾
Ctrl + Home 跳转到页头
Ctrl + End 跳转到页尾
Ctrl + up/down 行视图上下偏移
Alt + PgUp/PgDown 屏视图上下偏移
Ctrl + Shift + [ 折叠区域代码
Ctrl + Shift + ] 展开区域代码
Ctrl + K Ctrl + [ 折叠所有子区域代码
Ctrl + k Ctrl + ] 展开所有折叠的子区域代码
Ctrl + K Ctrl + 0 折叠所有区域代码
Ctrl + K Ctrl + J 展开所有折叠区域代码
Ctrl + K Ctrl + C 添加行注释
Ctrl + K Ctrl + U 删除行注释
Ctrl + / 添加关闭行注释
Shift + Alt +A 块区域注释
Alt + Z 添加关闭词汇包含

4. 导航

快捷键 作用
Ctrl + T 列出所有符号
Ctrl + G 跳转行
Ctrl + P 跳转文件
Ctrl + Shift + O 跳转到符号处
Ctrl + Shift + M 打开问题展示面板
F8 跳转到下一个错误或者警告
Shift + F8 跳转到上一个错误或者警告
Ctrl + Shift + Tab 切换到最近打开的文件
Alt + left / right 向后、向前
Ctrl + M 进入用Tab来移动焦点

5. 查询与替换

快捷键 作用
Ctrl + F 查询
Ctrl + H 替换
F3 / Shift + F3 查询下一个/上一个
Alt + Enter 选中所有出现在查询中的
Ctrl + D 匹配当前选中的词汇或者行,再次选中-可操作
Ctrl + K Ctrl + D 移动当前选择到下个匹配选择的位置(光标选定)
Alt + C / R / W

6. 多行光标操作于选择

快捷键 作用
Alt + Click 插入光标-支持多个
Ctrl + Alt + up/down 上下插入光标-支持多个
Ctrl + U 撤销最后一次光标操作
Shift + Alt + I 插入光标到选中范围内所有行结束符
Ctrl + I 选中当前行
Ctrl + Shift + L 选择所有出现在当前选中的行-操作
Ctrl + F2 选择所有出现在当前选中的词汇-操作
Shift + Alt + right 从光标处扩展选中全行
Shift + Alt + left 收缩选择区域
Shift + Alt + (drag mouse) 鼠标拖动区域,同时在多个行结束符插入光标
Ctrl + Shift + Alt + (Arrow Key) 也是插入多行光标的[方向键控制]
Ctrl + Shift + Alt + PgUp/PgDown 也是插入多行光标的[整屏生效]

7. 丰富的语言操作

快捷键 作用
Ctrl + Space 输入建议[智能提示]
Ctrl + Shift + Space 参数提示
Tab Emmet指令触发/缩进
Shift + Alt + F 格式化代码
Ctrl + K Ctrl + F 格式化选中部分的代码
F12 跳转到定义处
Alt + F12 代码片段显示定义
Ctrl + K F12 在其他窗口打开定义处
Ctrl + . 快速修复部分可以修复的语法错误
Shift + F12 显示所有引用
F2 重命名符号
Ctrl + Shift + . / , 替换下个值
Ctrl + K Ctrl + X 移除空白字符
Ctrl + K M 更改页面文档格式

8. 编辑器管理

快捷键 作用
Ctrl + F4, Ctrl + W 关闭编辑器
Ctrl + k F 关闭当前打开的文件夹
Ctrl + |切割编辑窗口
Ctrl + 1/2/3 切换焦点在不同的切割窗口
Ctrl + K Ctrl <-/-> 切换焦点在不同的切割窗口
Ctrl + Shift + PgUp/PgDown 切换标签页的位置
Ctrl + K <-/-> 切割窗口位置调换

9. 文件管理

快捷键 作用
Ctrl + N 新建文件
Ctrl + O 打开文件
Ctrl + S 保存文件
Ctrl + Shift + S 另存为
Ctrl + K S 保存所有当前已经打开的文件
Ctrl + F4 关闭当前编辑窗口
Ctrl + K Ctrl + W 关闭所有编辑窗口
Ctrl + Shift + T 撤销最近关闭的一个文件编辑窗口
Ctrl + K Enter 保持开启
Ctrl + Shift + Tab 调出最近打开的文件列表,重复按会切换
Ctrl + Tab 与上面一致,顺序不一致
Ctrl + K P 复制当前打开文件的存放路径
Ctrl + K R 打开当前编辑文件存放位置【文件管理器】
Ctrl + K O 在新的编辑器中打开当前编辑的文件

10. 显示

快捷键 作用
F11 切换全屏模式
Shift + Alt + 1 切换编辑布局【目前无效】
Ctrl + =/- 放大 / 缩小
Ctrl + B 侧边栏显示隐藏
Ctrl + Shift + E 资源视图和编辑视图的焦点切换
Ctrl + Shift + F 打开全局搜索
Ctrl + Shift + G 打开Git可视管理
Ctrl + Shift + D 打开DeBug面板
Ctrl + Shift + X 打开插件市场面板
Ctrl + Shift + H 在当前文件替换查询替换
Ctrl + Shift + J 开启详细查询
Ctrl + Shift + V 预览Markdown文件【编译后】
Ctrl + K v 在边栏打开渲染后的视图【新建】

11. 调试

快捷键 作用
F9 添加解除断点
F5 启动调试、继续
F11 / Shift + F11 单步进入 / 单步跳出
F10 单步跳过
Ctrl + K Ctrl + I 显示悬浮

12. 集成终端

快捷键 作用
Ctrl + ` 打开集成终端
Ctrl + Shift + ` 创建一个新的终端
Ctrl + Shift + C 复制所选
Ctrl + Shift + V 复制到当前激活的终端
Shift + PgUp / PgDown 页面上下翻屏
Ctrl + Home / End 滚动到页面头部或尾部

Setting Sync

KEY: 73dff1bc6b61f81163d08f4cda5b2bcae9972fe9 GIST ID : 62c2d85b27a022019edd98a3fd465400

13. win10 ssh(wsl) + vscode 远程 调试

13.1. 先下载

https://vscode.cdn.azure.cn/insider/7c0095ee2d064033fc13184127a9adc603454729/VSCodeUserSetup-x64-1.42.0-insider.exe

13.2. 安装C/C++扩展

13.3. 安装cmake扩展

13.4. 安装Remote Development扩展

13.5. linux端需要安装gcc/g++/gdb

14. win ssh + vscode 权限问题

Bad owner or permissions on C:\Users\USER/.ssh/config
1.进入如下路径C:\Users\用户名\.ssh,你会看到有config这个文件
2.右击config,属性->安全->高级->禁止继承->删除所有继承->确认
如果系统是英文:
Properties -> Security -> Advanced -> Disable Inheritance -> Remove all inherited permissions from this object

15. vscode-proto3插件配置设置

"protoc": {
    "path": "protoc",
    "compile_on_save": false,
    "options": [
        "--proto_path=.",
        "--cpp_out=."
    ]
}

16. vscode 中 默认include 无提示

设置搜索 C_Cpp: Intelli Sense Engine Fallback enabled

阅读全文 »

vmware

发表于 2018-02-25 | 分类于 vmware

1. 通过vmdk安装centos虚拟机

https://www.osboxes.org
下载对应版本的vmdk文件
1) 首先要打开VMware软件,点击创建一个新的虚拟机。
2) 点击下一步到 安装来源,选择稍后安装操作系统。然后点击下一步。
3) 客户机操作系统选择Linux,版本选择centos,点击下一步。
4) 网络连接使用网络地址转换。点击下一步。
5) 磁盘使用现有虚拟磁盘,点击下一步。
6) 点击浏览选择一个现有虚拟磁盘,点击打开,点击下一步,点击完成即可。
7) VMware中通过VMdk文件创建虚拟机成功。

1. nat ssh

nat 模式 vmnet8 子网IP: 192.168.101.0 掩码255.255.255.0 起始IP: 192.168.101.128 结束IP: 192.168.101.254

虚拟机IP: 192.168.101.128 网关IP: 192.168.101.2 宿主机IP: 192.168.101.1 端口转发: 22 TCP 192.168.101.128:22

2. openwrt nat 设置

vmnet8 子网IP: 192.168.51.0 掩码255.255.255.0 起始IP: 192.168.51.100 结束IP: 192.168.51.254 网关IP: 192.168.51.2 宿主机IP: 192.168.51.1

vim /etc/config/network

config interface ‘loopback’ option device ‘lo’ option proto ‘static’ option ipaddr ‘127.0.0.1’ option netmask ‘255.0.0.0’

config globals ‘globals’ option ula_prefix ‘fdd1:c3d0:565b::/48’ option packet_steering ‘1’

config device option name ‘br-lan’ option type ‘bridge’ list ports ‘eth0’ option promisc ‘1’

config interface ‘lan’ option device ‘br-lan’ option proto ‘static’ option ip6assign ‘60’ option ipaddr ‘192.168.51.101’ option netmask ‘255.255.255.0’ option gateway ‘192.168.51.2’ option peerdns ‘0’ list dns ‘192.168.51.2’

/etc/init.d/network restart

阅读全文 »

timer

发表于 2018-02-25 | 分类于 timer

定时器的作用 定时器在操作系统中起到了举足轻重的作用。在做IO操作时,需要超时机制保证任务不处于无休止的等待状态;在延时处理时,可以通过“闹表”进行相对准点的唤醒操作。在多任务操作系统中,定时器是一种非常常用的资源。

对于熟悉硬件的工程师,定时器一般是芯片中的硬件定时器资源,实际上在操作系统中指的定时器资源并非局限于硬件资源,更重要的是软件定时器资源。硬件定时器资源通常实现操作系统的心跳,在uc/os中心跳频率默认值为200Hz,也就是5ms产生一次操作系统心跳。软件定时器是在操作系统心跳的基础上实现的。

   下面对Linux中的定时器实现算法作详细分析。

Linux中定时器的实现 Linux中的定时器实现有点意思,在定时器较多的情况下实现效率较高,并且该算法思想可以在其它嵌入式系统中得以应用。

   定时器实现的核心思想是采用了多级hash链表,并且每级hash的长度都不一样,多级hash链表可以类比为秒、分、时、天、月,每级的时间跨度都不一样。Linux中实现的五级hash链表关系如下图所示:

Mobile Preview

 如上图所示为5级hash链表,V1为最低层的hash链表,V5为最顶层的hash链表。V1~V5 hash table的每一项为一条定时器链表,新添加的定时器会通过expire(定时时间值)和base->timer_jiffies(当前定时值)的差值expire_time来索引应该挂接到哪一层hash table中,并且索引到hash table中的具体项,然后将新增加的定时器加入到该项的timer list中。hash长度从V1到V5变得越来越大。V1的hash长度为1个jiffies,也就是说V1的hash table每一项为同一jiffies的定时器链表;V5的hash长度为64M jiffies,也就是hash table的每一项会链接连续64M jiffies定时长度的timer。不同层次的hash table具有不同的hash长度,离当前时间点越远的timer位于hash长度越长的table中,因为这些定时器还需要等待较长时间才能得以处理,所以可以采用大块分类的方法,离当前时间点越近的timer需要细粒度的切分,因为jiffies每变化一次都需要处理timer,所以最低层的table按一个jiffies进行切分。随着时间点的后移,不断的对最底层的hash table进行处理,并且通过当前时间点索引上层hash table,将定时器分配到下几级的hash table中。每个hash table与定时器之间的关系如下图所示。

Mobile Preview

   Linux中描述多级hash table的数据结构如下:

struct tvec_t_base_s {

   spinlock_t lock;                                  /* 多级hash table自旋锁 */

   struct timer_list *running_timer;          /* 当前运行的定时器 */

   unsigned long timer_jiffies;                  /* 当前运行的jiffies */

   tvec_root_t tv1;                                 /* V1 hash table */

   tvec_t tv2;                                         /* V2 hash table */

   tvec_t tv3;                                         /* V3 hash table */

   tvec_t tv4;                                         /* V4 hash table */

   tvec_t tv5;                                         /* V5 hash table */

} ____cacheline_aligned_in_smp;

   添加一个定时器需要进行hash table操作,根据定时值索引具体的定时器list,该算法描述如下:

1、 通过定时器的expire(定时时间点,以jiffies为基本度量单位)和当前的时间点(timer_jiffies)计算得到定时间隔idx。

2、 如果idx小于TVR_SIZE(通常为256个jiffies),那么可以将定时器加入到V1 hash table中,通过expire计算得到V1 hash table的索引块,然后加入到该块所对应的定时器链表中。

3、 如果idx位于V2~V5的hash table中,那么同样通过expire,根据(expire » (TVR_BITS + N * TVN_BITS)) & TVN_MASK得到hash table中的块索引号,然后加入到该块所对应的定时器链表中。

当硬件定时器计完一个jiffies之后,会引起硬件中断,在硬件中断服务程序中会触发软中断,在定时器软中断服务程序中会调用__run_timers()完成定时器多级hash table的处理,并且处理定时时间到的所有timer。__run_timers算法实现描述如下:

1、 根据当前jiffes和base->timer_jiffies循环判断多级hash table扫描条件,如果满足条件,那么继续(2),否则退出循环。

2、 通过base->timer_jiffies计算得到V1 table中需要处理的索引项。并且将索引高层hash table中的具体项,将该项中的timer分散到低层table中去。

3、 增加base->timer_jiffies值,提取出V1中索引得到的定时器链表。

4、 如果该定时器链表不为空,那么依次处理链表中的定时器,处理过程为调用定时器的处理函数timer->function。

5、 循环至(1)。

从运作原理可以看出,这个算法中,寻找触发的定时器的时间复杂度接近O(n)(n是第一组每个队列中定时器的个数,其它组的操作几乎可以忽略)。而这个n在绝大部分情况下接近1。插入和删除操作的时间复杂度也为O(1)。这是迄今为止最好的算法。

Linux中定时器实现的优缺点 Linux中软定时器的实现还是非常漂亮的,特别对于定时器应用较多的场合效率非常高。其通过hash索引的方法避免了定时器链表的反复查询,并且其通过多级链表分类对待离当前时间点不同的定时器,离当前时间点较远的定时器可以在一个时间区间内共享一个定时器链表,离当前时间点较近的定时器只能是相同的定时时间点才能共享一个定时器链表。在uc/os嵌入式操作系统中,延时定时器是通过扫描、递减每个任务的当前定时值实现的,所以在硬件定时器的中断服务程序中不断扫描任务链,这样的做法可扩展性很差,效率较低。当定时的任务一多,中断服务程序就忙不过来了,成为系统瓶颈,甚至会影响心跳频率的选择。相比而言,Linux的定时器实现漂亮的多。但是,Linux的定时器实现会占用一定量的内存资源,一般来说,所有定时器链表为空时还需要占用2K的存储空间,所以,对于一些对内存资源非常在意的小型应用而言,需要慎重考虑这个算法。

阅读全文 »

TensorFlow

发表于 2018-02-25 | 分类于 machine-learning

1. TensorFlow安装

linux

yum install python36-devel
yum install python36-numpy
yum install swig
git clone https://github.com/brinkqiang/tensorflow
pushd tensorflow/tensorflow/contrib/cmake
mkdir build
cd build
cmake ..
popd

win

git clone https://github.com/brinkqiang/tensorflow
pushd tensorflow/tensorflow/contrib/cmake
mkdir build
cd build
cmake .. -A x64 -Dtensorflow_BUILD_PYTHON_BINDINGS=OFF
popd

1.1. https://www.vim.org

1.2. https://neovim.io

1.3. https://spacevim.org

阅读全文 »

smb环境设置

发表于 2018-02-25 | 分类于 smb

1. smb安装

yum install samba samba-client samba-swat

2. smb基础配置

setup 设置smb开机自动启动
service smb restart
(可选) /etc/samba/smb.conf文件 设置 Security=share/user 无需身份验证guest/需身份验证

useradd username
passwd  username
设置密码 smbpasswd username
存在用户要用smbpasswd -a username设置密码
删除用户smbpasswd -x username

记得关闭iptables 和SELinux
setup -> Firewall
编辑/etc/selinux/config文件
把SELINUX=enforcing 改成 SELINUX=disabled
再在命令行输入一句 setenforce 0

setenforce 0  (关闭SELinux服务,如果要打开则setenforce 1)
iptables -F    (关闭包过滤)
阅读全文 »

regular

发表于 2018-02-25 | 分类于 regular


Learn Regex


什么是正则表达式 ?

正则表达式是一种被用于从文本中检索符合某些特定模式的文本。

正则表达式是从左到右来匹配一个字符串的。”Regular Expression” 这个词太长了,我们通常使用它的缩写 “regex” 或者 “regexp”。 正则表达式可以被用来替换字符串中的文本、验证表单、基于模式匹配从一个字符串中提取字符串等等。

想象一下,您正在编写应用程序,并且您希望在用户选择用户名时设置规则。我们希望用户名可以包含字母,数字,下划线和连字符。 为了让它看起来不丑,我们还想限制用户名中的字符数量。我们可以使用以下正则表达式来验证用户名:

Regular expression

上面这个正则表达式可以匹配 john_doe,jo-hn\_doe 和 john12\_as。但是它不能匹配 Jo,因为该字符串里面包含了大写字符,并且它太短了。

目录

  • 基本匹配
  • 元字符
    • 英文句号
    • 字符集
      • 否定字符集
    • 重复
      • 星号
      • 加号
      • 问号
    • 花括号
    • 字符组
    • 分支结构
    • 转义特殊字符
    • 定位符
      • 插入符号
      • 美元符号
  • 简写字符集
  • 断言
    • 正向先行断言
    • 负向先行断言
    • 正向后行断言
    • 负向后行断言
  • 标记
    • 不区分大小写
    • 全局搜索
    • 多行匹配
  • 常用正则表达式

1. 基本匹配

正则表达式只是我们用于在文本中检索字母和数字的模式。例如正则表达式 cat,表示: 字母 c 后面跟着一个字母 a,再后面跟着一个字母 t。

"cat" => The cat sat on the mat

正则表达式 123 会匹配字符串 “123”。通过将正则表达式中的每个字符逐个与要匹配的字符串中的每个字符进行比较,来完成正则匹配。 正则表达式通常区分大小写,因此正则表达式 Cat 与字符串 “cat” 不匹配。

"Cat" => The cat sat on the Cat

2. 元字符

元字符是正则表达式的基本组成元素。元字符在这里跟它通常表达的意思不一样,而是以某种特殊的含义去解释。有些元字符写在方括号内的时候有特殊含义。 元字符如下:

元字符 描述
. 匹配除换行符以外的任意字符。
[ ] 字符类,匹配方括号中包含的任意字符。
[^ ] 否定字符类。匹配方括号中不包含的任意字符
* 匹配前面的子表达式零次或多次
+ 匹配前面的子表达式一次或多次
? 匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。
{n,m} 花括号,匹配前面字符至少 n 次,但是不超过 m 次。
(xyz) 字符组,按照确切的顺序匹配字符xyz。
| 分支结构,匹配符号之前的字符或后面的字符。
\ 转义符,它可以还原元字符原来的含义,允许你匹配保留字符 [ ] ( ) { } . * + ? ^ $ \ |
^ 匹配行的开始
$ 匹配行的结束

2.1 英文句号

英文句号 . 是元字符的最简单的例子。元字符 . 可以匹配任意单个字符。它不会匹配换行符和新行的字符。例如正则表达式 .ar,表示: 任意字符后面跟着一个字母 a, 再后面跟着一个字母 r。

".ar" => The car parked in the garage.

2.2 字符集

字符集也称为字符类。方括号被用于指定字符集。使用字符集内的连字符来指定字符范围。方括号内的字符范围的顺序并不重要。 例如正则表达式 [Tt]he,表示: 大写 T 或小写 t ,后跟字母 h,再后跟字母 e。

"[Tt]he" => The car parked in the garage.

然而,字符集中的英文句号表示它字面的含义。正则表达式 ar[.],表示小写字母 a,后面跟着一个字母 r,再后面跟着一个英文句号 . 字符。

"ar[.]" => A garage is a good place to park a car.

2.2.1 否定字符集

一般来说插入字符 ^ 表示一个字符串的开始,但是当它在方括号内出现时,它会取消字符集。例如正则表达式 [^c]ar,表示: 除了字母 c 以外的任意字符,后面跟着字符 a, 再后面跟着一个字母 r。

"[^c]ar" => The car parked in the garage.

2.3 重复

以下元字符 +,* 或 ? 用于指定子模式可以出现多少次。这些元字符在不同情况下的作用不同。

2.3.1 星号

该符号 * 表示匹配上一个匹配规则的零次或多次。正则表达式 a* 表示小写字母 a 可以重复零次或者多次。但是它如果出现在字符集或者字符类之后,它表示整个字符集的重复。 例如正则表达式 [a-z]*,表示: 一行中可以包含任意数量的小写字母。

"[a-z]*" => The car parked in the garage #21.

该 * 符号可以与元符号 . 用在一起,用来匹配任意字符串 .*。该 * 符号可以与空格符 \s 一起使用,用来匹配一串空格字符。 例如正则表达式 \s*cat\s*,表示: 零个或多个空格,后面跟小写字母 c,再后面跟小写字母 a,再再后面跟小写字母 t,后面再跟零个或多个空格。

"\s*cat\s*" => The fat cat sat on the cat.

2.3.2 加号

该符号 + 匹配上一个字符的一次或多次。例如正则表达式 c.+t,表示: 一个小写字母 c,后跟任意数量的字符,后跟小写字母 t。

"c.+t" => The fat cat sat on the mat.

2.3.3 问号

在正则表达式中,元字符 ? 用来表示前一个字符是可选的。该符号匹配前一个字符的零次或一次。 例如正则表达式 [T]?he,表示: 可选的大写字母 T,后面跟小写字母 h,后跟小写字母 e。

"[T]he" => The car is parked in the garage.
"[T]?he" => The car is parked in the garage.

2.4 花括号

在正则表达式中花括号(也被称为量词 ?)用于指定字符或一组字符可以重复的次数。例如正则表达式 [0-9]{2,3},表示: 匹配至少2位数字但不超过3位(0到9范围内的字符)。

"[0-9]{2,3}" => The number was 9.9997 but we rounded it off to 10.0.

我们可以省略第二个数字。例如正则表达式 [0-9]{2,},表示: 匹配2个或更多个数字。如果我们也删除逗号,则正则表达式 [0-9]{2},表示: 匹配正好为2位数的数字。

"[0-9]{2,}" => The number was 9.9997 but we rounded it off to 10.0.
"[0-9]{2}" => The number was 9.9997 but we rounded it off to 10.0.

2.5 字符组

字符组是一组写在圆括号内的子模式 (...)。正如我们在正则表达式中讨论的那样,如果我们把一个量词放在一个字符之后,它会重复前一个字符。 但是,如果我们把量词放在一个字符组之后,它会重复整个字符组。 例如正则表达式 (ab)* 表示匹配零个或多个的字符串 “ab”。我们还可以在字符组中使用元字符 |。例如正则表达式 (c|g|p)ar,表示: 小写字母 c、g 或 p 后面跟字母 a,后跟字母 r。

"(c|g|p)ar" => The car is parked in the garage.

2.6 分支结构

在正则表达式中垂直条 | 用来定义分支结构,分支结构就像多个表达式之间的条件。现在你可能认为这个字符集和分支机构的工作方式一样。 但是字符集和分支结构巨大的区别是字符集只在字符级别上有作用,然而分支结构在表达式级别上依然可以使用。 例如正则表达式 (T|t)he|car,表示: 大写字母 T 或小写字母 t,后面跟小写字母 h,后跟小写字母 e 或小写字母 c,后跟小写字母 a,后跟小写字母 r。

"(T|t)he|car" => The car is parked in the garage.

2.7 转义特殊字符

正则表达式中使用反斜杠 \ 来转义下一个字符。这将允许你使用保留字符来作为匹配字符 { } [ ] / \ + * . $ ^ | ?。在特殊字符前面加 \,就可以使用它来做匹配字符。 例如正则表达式 . 是用来匹配除了换行符以外的任意字符。现在要在输入字符串中匹配 . 字符,正则表达式 (f|c|m)at\.?,表示: 小写字母 f、c 或者 m 后跟小写字母 a,后跟小写字母 t,后跟可选的 . 字符。

"(f|c|m)at\.?" => The fat cat sat on the mat.

2.8 定位符

在正则表达式中,为了检查匹配符号是否是起始符号或结尾符号,我们使用定位符。 定位符有两种类型: 第一种类型是 ^ 检查匹配字符是否是起始字符,第二种类型是 $,它检查匹配字符是否是输入字符串的最后一个字符。

2.8.1 插入符号

插入符号 ^ 符号用于检查匹配字符是否是输入字符串的第一个字符。如果我们使用正则表达式 ^a (如果a是起始符号)匹配字符串 abc,它会匹配到 a。 但是如果我们使用正则表达式 ^b,它是匹配不到任何东西的,因为在字符串 abc 中 “b” 不是起始字符。 让我们来看看另一个正则表达式 ^(T|t)he,这表示: 大写字母 T 或小写字母 t 是输入字符串的起始符号,后面跟着小写字母 h,后跟小写字母 e。

"(T|t)he" => The car is parked in the garage.
"^(T|t)he" => The car is parked in the garage.

2.8.2 美元符号

美元 $ 符号用于检查匹配字符是否是输入字符串的最后一个字符。例如正则表达式 (at\.)$,表示: 小写字母 a,后跟小写字母 t,后跟一个 . 字符,且这个匹配器必须是字符串的结尾。

"(at\.)" => The fat cat. sat. on the mat.
"(at\.)$" => The fat cat sat on the mat.

3. 简写字符集

正则表达式为常用的字符集和常用的正则表达式提供了简写。简写字符集如下:

简写 描述
. 匹配除换行符以外的任意字符
\w 匹配所有字母和数字的字符: [a-zA-Z0-9_]
\W 匹配非字母和数字的字符: [^\w]
\d 匹配数字: [0-9]
\D 匹配非数字: [^\d]
\s 匹配空格符: [\t\n\f\r\p{Z}]
\S 匹配非空格符: [^\s]

4. 断言

后行断言和先行断言有时候被称为断言,它们是特殊类型的 非捕获组 (用于匹配模式,但不包括在匹配列表中)。当我们在一种特定模式之前或者之后有这种模式时,会优先使用断言。 例如我们想获取输入字符串 $4.44 and $10.88 中带有前缀 $ 的所有数字。我们可以使用这个正则表达式 (?<=\$)[0-9\.]*,表示: 获取包含 . 字符且前缀为 $ 的所有数字。 以下是正则表达式中使用的断言:

符号 描述
?= 正向先行断言
?! 负向先行断言
?<= 正向后行断言
?<! 负向后行断言

4.1 正向先行断言

正向先行断言认为第一部分的表达式必须是先行断言表达式。返回的匹配结果仅包含与第一部分表达式匹配的文本。 要在一个括号内定义一个正向先行断言,在括号中问号和等号是这样使用的 (?=...)。先行断言表达式写在括号中的等号后面。 例如正则表达式 (T|t)he(?=\sfat),表示: 匹配大写字母 T 或小写字母 t,后面跟字母 h,后跟字母 e。 在括号中,我们定义了正向先行断言,它会引导正则表达式引擎匹配 The 或 the 后面跟着 fat。

"(T|t)he(?=\sfat)" => The fat cat sat on the mat.

4.2 负向先行断言

当我们需要从输入字符串中获取不匹配表达式的内容时,使用负向先行断言。负向先行断言的定义跟我们定义的正向先行断言一样, 唯一的区别是不是等号 =,我们使用否定符号 !,例如 (?!...)。 我们来看看下面的正则表达式 (T|t)he(?!\sfat),表示: 从输入字符串中获取全部 The 或者 the 且不匹配 fat 前面加上一个空格字符。

"(T|t)he(?!\sfat)" => The fat cat sat on the mat.

4.3 正向后行断言

正向后行断言是用于获取在特定模式之前的所有匹配内容。正向后行断言表示为 (?<=...)。例如正则表达式 (?<=(T|t)he\s)(fat|mat),表示: 从输入字符串中获取在单词 The 或 the 之后的所有 fat 和 mat 单词。

"(?<=(T|t)he\s)(fat|mat)" => The fat cat sat on the mat.

4.4 负向后行断言

负向后行断言是用于获取不在特定模式之前的所有匹配的内容。负向后行断言表示为 (?<!...)。例如正则表达式 (?<!(T|t)he\s)(cat),表示: 在输入字符中获取所有不在 The 或 the 之后的所有单词 cat。

"(?<!(T|t)he\s)(cat)" => The cat sat on cat.

5. 标记

标记也称为修饰符,因为它会修改正则表达式的输出。这些标志可以以任意顺序或组合使用,并且是正则表达式的一部分。

标记 描述
i 不区分大小写: 将匹配设置为不区分大小写。
g 全局搜索: 搜索整个输入字符串中的所有匹配。
m 多行匹配: 会匹配输入字符串每一行。

5.1 不区分大小写

i 修饰符用于执行不区分大小写匹配。例如正则表达式 /The/gi,表示: 大写字母 T,后跟小写字母 h,后跟字母 e。 但是在正则匹配结束时 i 标记会告诉正则表达式引擎忽略这种情况。正如你所看到的,我们还使用了 g 标记,因为我们要在整个输入字符串中搜索匹配。

"The" => The fat cat sat on the mat.
"/The/gi" => The fat cat sat on the mat.

5.2 全局搜索

g 修饰符用于执行全局匹配 (会查找所有匹配,不会在查找到第一个匹配时就停止)。 例如正则表达式 /.(at)/g,表示: 除换行符之外的任意字符,后跟小写字母 a,后跟小写字母 t。 因为我们在正则表达式的末尾使用了 g 标记,它会从整个输入字符串中找到每个匹配项。

".(at)" => The fat cat sat on the mat.
"/.(at)/g" => The fat cat sat on the mat.

5.3 多行匹配

m 修饰符被用来执行多行的匹配。正如我们前面讨论过的 (^, $),使用定位符来检查匹配字符是输入字符串开始或者结束。但是我们希望每一行都使用定位符,所以我们就使用 m 修饰符。 例如正则表达式 /at(.)?$/gm,表示: 小写字母 a,后跟小写字母 t,匹配除了换行符以外任意字符零次或一次。而且因为 m 标记,现在正则表达式引擎匹配字符串中每一行的末尾。

"/.at(.)?$/" => The fat
                cat sat
                on the mat.
"/.at(.)?$/gm" => The fat
                  cat sat
                  on the mat.

常用正则表达式

  • 正整数: ^\d+$
  • 负整数: ^-\d+$
  • 电话号码: ^+?[\d\s]{3,}$
  • 电话代码: ^+?[\d\s]+(?[\d\s]{10,}$
  • 整数: ^-?\d+$
  • 用户名: ^[\w\d_.]{4,16}$
  • 字母数字字符: ^[a-zA-Z0-9]*$
  • 带空格的字母数字字符: ^[a-zA-Z0-9 ]*$
  • 密码: ^(?=^.{6,}$)((?=.*[A-Za-z0-9])(?=.*[A-Z])(?=.*[a-z]))^.*$
  • 电子邮件: ^([a-zA-Z0-9._%-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4})*$
  • IPv4 地址: ^((?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))*$
  • 小写字母: ^([a-z])*$
  • 大写字母: ^([A-Z])*$
  • 网址: ^(((http|https|ftp):\/\/)?([[a-zA-Z0-9]\-\.])+(\.)([[a-zA-Z0-9]]){2,4}([[a-zA-Z0-9]\/+=%&_\.~?\-]*))*$
  • VISA 信用卡号码: ^(4[0-9]{12}(?:[0-9]{3})?)*$
  • 日期 (MM/DD/YYYY): ^(0?[1-9]|1[012])[- /.](0?[1-9]|[12][0-9]|3[01])[- /.](19|20)?[0-9]{2}$
  • 日期 (YYYY/MM/DD): ^(19|20)?[0-9]{2}[- /.](0?[1-9]|1[012])[- /.](0?[1-9]|[12][0-9]|3[01])$
  • 万事达信用卡号码: ^(5[1-5][0-9]{14})*$

阅读全文 »

protobuf

发表于 2018-02-25 | 分类于 protobuf

总的来说,proto3 比 proto2 支持更多语言但 更简洁。去掉了一些复杂的语法和特性,更强调约定而弱化语法。如果是首次使用 Protobuf ,建议使用 proto3 。

1. 在第一行非空白非注释行,必须写:

syntax = “proto3”;

2. 字段规则移除了 “required”,”optional”;

在 proto2 中 required 也是不推荐使用的。proto3 直接从语法层面上移除了 required 规则。其实可以做的更彻底,把所有字段规则描述都撤销,原来的 repeated 改为在类型或字段名后加一对中括号。这样是不是更简洁?

3. “repeated”字段默认采用 packed 编码;

在 proto2 中,需要明确使用 [packed=true] 来为字段指定比较紧凑的 packed 编码方式。

4. 语言增加 Go. Ruby. JavaNano 支持;

5. 移除了 default 选项;

在 proto2 中,可以使用 default 选项为某一字段指定默认值。在 proto3 中,字段的默认值只能根据字段类型由系统决定。也就是说,默认值全部是约定好的,而不再提供指定默认值的语法。

在字段被设置为默认值的时候,该字段不会被序列化。这样可以节省空间,提高效率。

但这样就无法区分某字段是根本没赋值,还是赋值了默认值。这在 proto3 中问题不大,但在 proto2 中会有问题。

比如,在更新协议的时候使用 default 选项为某个字段指定了一个与原来不同的默认值,旧代码获取到的该字段的值会与新代码不一样。

另一个重约定而弱语法的例子是 go 语言里的公共/私有对象。Go 语言约定,首字母大写的为公共对象,否则为私有对象。所以在 Go 语言中是没有 public. private 这样的语法的。

6. 枚举类型的第一个字段必须为 0 ;

这也是一个约定。

7. 移除了对分组的支持;

8. v3.12 扩展增加optional 命令行 –experimental_allow_proto3_optional

9. 类型

Mobile Preview

10. v3.14 vs2019 最新版 编译问题修正

generated_message_util.cc

PROTOBUF_CONSTINIT static const std::string& fixed_address_empty_string_test = GetEmptyStringAlreadyInited(); (void)fixed_address_empty_string_test;

->

static const std::string& fixed_address_empty_string_test = GetEmptyStringAlreadyInited(); (void)fixed_address_empty_string_test;

阅读全文 »

意识能量

发表于 2018-02-25 | 分类于 power

1. 意识能量

Mobile Preview

2. 意识能量

Mobile Preview

3. 意识能量

Mobile Preview

4. 意识能量

Mobile Preview

5. 意识能量

Mobile Preview

6. 意识能量

Mobile Preview

7. 意识能量

Mobile Preview

阅读全文 »

性格学

发表于 2018-02-25 | 分类于 Personalities

1. MBTI区别

Mobile Preview

2. MBTI理论中的类型关系

Mobile Preview

3. MBTIand九型人格

Mobile Preview

4. MBTI智商

Mobile Preview

5. MBTI组合

Mobile Preview

6. MBTI男性分布

Mobile Preview

7. MBTI女性分布

Mobile Preview

外倾感觉(Se): 参与(Engaging) -> 体验(Experiencing) -> 享受(Enjoying) 内倾感觉(Si): 落实(Implementing) -> 确认(Verifying) -> 计算(Accounting) 外倾直觉(Ne): 考虑(Entertaining) -> 洞察(Evsisioning) -> 促使(Enabling) 内倾直觉(Ni): 想象(Imagining) -> 确信(Knowing) -> 预测(Divining) 外倾思维(Te): 调节(Regulating) -> 规划(Planning) -> 执行(Enforcing) 内倾思维(Ti): 命名(Naming) -> 界定(Defining) -> 理解(Understanding) 外倾情感(Fe): 验证(Validating) -> 肯定(Affirming) -> 协调(Relating) 内倾情感(Fi): 判断(Judging) -> 评价(Appraising) -> 确立理念(Establishing)

我们真正需要恐惧的是恐惧本身 - 罗斯福

阅读全文 »

mysql环境设置

发表于 2018-02-25 | 分类于 mysql

1. 安装设置mysql

1.1. 安装mysql

yum -y install yum-utils
rpm -ivh https://repo.mysql.com//mysql57-community-release-el7-9.noarch.rpm
rpm -ivh https://repo.mysql.com/yum/mysql-8.0-community/sles/12/x86_64/mysql-community-server-8.0.4-0.1.rc.sles12.x86_64.rpm

yum-config-manager --disable mysql57-community
yum-config-manager --enable mysql80-community

yum install mysql-community-server -y

systemctl start mysqld
systemctl enable mysqld

1.2. 找登录密码

grep "password" /var/log/mysqld.log

1.3. 登录

mysql -uroot -p

1.4. 设置密码安全策略

mysql 5.5+
在mysql控制台下
set global validate_password_policy=0;
当次生效

或者
在/etc/my.cnf文件添加validate_password_policy配置,指定密码策略

选择0(LOW),1(MEDIUM),2(STRONG)其中一种,选择2需要提供密码字典文件
validate_password_policy=0

如果不需要密码策略,添加my.cnf文件中添加如下配置禁用即可:

validate_password = off

mysql 8.0+
set global validate_password.policy=0;
set global validate_password.length=1;  

1.5. 设置密码

在mysql控制台下
set password = password('new_password');

1.6. 创建新账号增加权限

grant all privileges on *.* to 'username'@'%' identified by 'password' with grant option;
FLUSH PRIVILEGES;

grant all privileges on gogs.* to 'git'@'%' identified by 'password' with grant option;
FLUSH PRIVILEGES;

2. 命令行执行SQL

mysql -h127.0.0.1 -uusername -ppassword -e "create database zabbix character set utf8 collate utf8_bin;"
mysql -h127.0.0.1 -uusername -ppassword -e "grant all privileges on *.* to 'username'@'%' identified by 'password' with grant option;"

mysql -h127.0.0.1 -uusername -ppassword < server/createdb.sql

3. 密码恢复

3.1. 停止mysqld;

(1). /etc/init.d/mysql stop
(2). killall -TERM mysqld
(您可能有其它的方法,总之停止mysqld的运行就可以了)

3.2. 用以下命令启动MySQL,以不检查权限的方式启动;

mysqld --skip-grant-tables &

3.3. 然后用空密码方式使用root用户登录 MySQL

mysql -u root

3.4. 修改root用户的密码

mysql> update mysql.user set password=PASSWORD('newpassword') where User='root'; 
mysql> flush privileges;
mysql> quit
重新启动MySQL

/etc/init.d/mysql restart
就可以使用新密码 newpassword 登录了。

4. xpath

SELECT id, FROM_UNIXTIME(CAST(EXTRACTVALUE ( DATA, '/coder/datas/GuildWorldBoss/Start' )/1000 AS UNSIGNED ), '%Y-%c-%d %H:%i:%s' ) AS StartTime FROM guildwb

5. mysql执行log开启

5.1. 查看状态

SHOW VARIABLES LIKE’general_log%’;

5.2. 开启

SET GLOBAL general_log =’ON’;

5.3. 关闭

SET GLOBAL general_log =’OFF’;

6. 配置

mysql 5.7以上版本默认开启ssl关闭方式如下 vim /etc/my.cnf 增加 skip_ssl

7. mysql数据库注意点

7.1. on duplicate key update 死锁问题

如果遇到这个问题怎么办呢?我们有下面的一些方法来解决这个问题:

使用mysql5.6版本,可以看见这个是在5.7中引入的,5.6中不会出现这个情况

使用RC级别,RC隔离级别下不会有gap锁
-- 不要使用 insert on duplicate key update,使用普通的insert。我们最后使用的就是这个方法,因为ON DUPLICATE KEY UPDATE 这个在代码中的确是没有必要

在数据库表中只建立主键,不建立其他唯一索引。

先insert 再捕获异常,然后进行更新

使用insert ignore,然后判断update rows 是否是1,然后再决定是否更新。

8. mysqlserver8.0问题点

mysql server errorlog忽然爆出大量的sha256_password’ is deprecated and will be removed in a future release.

select user,host,plugin from mysql.user; INSTALL PLUGIN CONNECTION_CONTROL SONAME ‘connection_control.so’; INSTALL PLUGIN CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS SONAME ‘connection_control.so’; select * from information_schema.connection_control_failed_login_attempts;

经过排查和确认,某程序的加密方式与MySQL 8.0 caching_sha2_password 不兼容导致的,可以通过使用 mysql_native_password 创建用户尝试避开不兼容的问题

9. mysqlserver innodb_autoinc_lock_mode用途

AUTO_INCREMENT Handling in InnoDB InnoDB提供了一个可配置的锁定机制,可以显着提高使用AUTO_INCREMENT列向表中添加行的SQL语句的可伸缩性和性能。 要对InnoDB表使用AUTO_INCREMENT机制,必须将AUTO_INCREMENT列定义为索引的一部分,以便可以对表执行相当于索引的SELECT MAX(ai_col)查找以获取最大列值。 通常,这是通过使列成为某些表索引的第一列来实现的。

本节介绍AUTO_INCREMENT锁定模式的行为,对不同AUTO_INCREMENT锁定模式设置的使用含义,以及InnoDB如何初始化AUTO_INCREMENT计数器。

InnoDB AUTO_INCREMENT锁定模式

InnoDB AUTO_INCREMENT锁定模式使用含义

InnoDB AUTO_INCREMENT计数器初始化

SELECT @@innodb_autoinc_lock_mode;

9.1. innodb_autoinc_lock_mode 的说明

  innodb_auto_lockmode有三个取值:     1、0 这个表示tradition 传统     2、1 这个表示consecutive 连续     3、2 这个表示interleaved 交错

9.2. tradition(innodb_autoinc_lock_mode=0) 模式:

  1、它提供了一个向后兼容的能力   2、在这一模式下,所有的insert语句(“insert like”) 都要在语句开始的时候得到一个     表级的auto_inc锁,在语句结束的时候才释放这把锁,注意呀,这里说的是语句级而不是事务级的,    一个事务可能包涵有一个或多个语句。   3、它能保证值分配的可预见性,与连续性,可重复性,这个也就保证了insert语句在复制到slave 的时候还能生成和master那边一样的值(它保证了基于语句复制的安全)。 4、由于在这种模式下auto_inc锁一直要保持到语句的结束,所以这个就影响到了并发的插入。

9.3. consecutive(innodb_autoinc_lock_mode=1) 模式:

  1、这一模式下去simple insert 做了优化,由于simple insert一次性插入值的个数可以立马得到 确定,所以mysql可以一次生成几个连续的值,用于这个insert语句;总的来说这个对复制也是安全的 (它保证了基于语句复制的安全)   2、这一模式也是mysql的默认模式,这个模式的好处是auto_inc锁不要一直保持到语句的结束,只要 语句得到了相应的值后就可以提前释放锁

9.4. interleaved(innodb_autoinc_lock_mode=2) 模式

  1、由于这个模式下已经没有了auto_inc锁,所以这个模式下的性能是最好的;但是它也有一个问题,就是 对于同一个语句来说它所得到的auto_incremant值可能不是连续的。

阅读全文 »

linux

发表于 2018-02-25 | 分类于 linux

1. linux内存文件相关命令

free -h df -h du -sh * | sort -nr

2. 取系统版本

awk -F= ‘/^NAME/{print $2}’ /etc/os-release

"CentOS Linux"
if [ -f /etc/redhat-release ]; then
  yum -y install git
fi

if [ -f /etc/lsb-release ]; then
  apt -y install git
fi

获取当前文件夹名字最后的名字

$(pwd | sed "s/\// /g" | awk 'NR==1{print $NF}')

3. 查看硬件信息

uname -a # 查看内核/操作系统/CPU信息的linux系统信息命令 
head -n 1 /etc/issue # 查看操作系统版本,是数字1不是字母L 
cat /proc/cpuinfo # 查看CPU信息的linux系统信息命令 
hostname # 查看计算机名的linux系统信息命令 
lspci -tv # 列出所有PCI设备 
lsusb -tv # 列出所有USB设备的linux系统信息命令 
lsmod # 列出加载的内核模块 
env # 查看环境变量资源 
free -m # 查看内存使用量和交换区使用量 
df -h # 查看各分区使用情况 
du -sh # 查看指定目录的大小 
grep MemTotal /proc/meminfo # 查看内存总量 
grep MemFree /proc/meminfo # 查看空闲内存量 
uptime # 查看系统运行时间、用户数、负载 
cat /proc/loadavg # 查看系统负载磁盘和分区 
mount | column -t # 查看挂接的分区状态 
fdisk -l # 查看所有分区 
swapon -s # 查看所有交换分区 
hdparm -i /dev/hda # 查看磁盘参数(仅适用于IDE设备) 
dmesg | grep IDE # 查看启动时IDE设备检测状况网络 
ifconfig # 查看所有网络接口的属性 
iptables -L # 查看防火墙设置 
route -n # 查看路由表 
netstat -lntp # 查看所有监听端口 
netstat -antp # 查看所有已经建立的连接 
netstat -s # 查看网络统计信息进程 
ps -ef # 查看所有进程 
top # 实时显示进程状态用户 
w # 查看活动用户 
id # 查看指定用户信息 
last # 查看用户登录日志 
cut -d: -f1 /etc/passwd # 查看系统所有用户 
cut -d: -f1 /etc/group # 查看系统所有组 
crontab -l # 查看当前用户的计划任务服务 
chkconfig –list # 列出所有系统服务 
chkconfig –list | grep on # 列出所有启动的系统服务程序 
rpm -qa # 查看所有安装的软件包 
cat /proc/cpuinfo :查看CPU相关参数的linux系统命令 
cat /proc/partitions :查看linux硬盘和分区信息的系统信息命令 
cat /proc/meminfo :查看linux系统内存信息的linux系统命令 
cat /proc/version :查看版本,类似uname -r 
cat /proc/ioports :查看设备io端口 
cat /proc/interrupts :查看中断 
cat /proc/pci :查看pci设备的信息 
cat /proc/swaps :查看所有swap分区的信息

4. sudo

增加sudo权限 vim /etc/sudoers

root ALL=(ALL) ALL user ALL=(ALL) ALL

5. apt

关闭锁定

5.1. gsettings set org.gnome.desktop.session idle-delay 0

5.2. ifconfig 支持安装

sudo apt install net-tools

sudo vi /etc/apt/sources.list

deb cdrom:[Ubuntu 16.04.3 LTS Xenial Xerus - Release amd64 (20170801)]/ xenial main restricted deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse

source /etc/apt/sources.list sudo apt update

6. getip

lan_ip=ip addr | grep inet | grep -v inet6 | grep -v 127.0.0.1 | awk '{print $2}' | awk -F '/' '{print $1}' echo $lan_ip

wan_ip=wget -qO - ifconfig.co echo $wan_ip

7. trace

yum install ltrace yum install strace

ptree -p pidof zsh pidof zsh lsof zsh strace -c -p pidof zsh

8. watch

git clone https://github.com/brinkqiang/glances cd glances python setup.py install

apt install python-jinja2 apt install python3-jinja2

yum install python-jinja2 yum install python33-python-jinja2

9. 查看io

iostat sudo iotop

10. gcc -L、-Wl,-rpath, -Wl,-rpath-link的区别

-L:只是在编译时指定库的位置,但是运行时无法找到该位置;
-rpath和-rpath-link都可以在链接时指定库的路径。
但是运行时,-rpath-link指定的路径就不再有效,因为链接器没有将库的路径包含进可执行文件中或库中;
而-rpath指定的路径,已被链接器写入可执行文件中或库中

11. fuser

fuser:通过文件或文件系统找出正在使用该文件的程序

fuser [-umv] [-k [i] [-signal]] file/dir 选项与参数: -u :除了程序的 PID 之外,同时列出该程序的拥有者; -m :后面接的那个档名会主动的上提到该文件系统的最顶层,对 umount 不成功很有效! -v :可以列出每个文件与程序还有命令的完整相关性! -k :找出使用该文件/目录的 PID ,并试图以 SIGKILL 这个讯号给予该 PID; -i :必须与 -k 配合,在删除 PID 之前会先询问使用者意愿! -signal:例如 -1 -15 等等,若不加的话,默认是 SIGKILL (-9) 例子: fuser -uv . USER PID ACCESS COMMAND .: root 20639 ..c.. (root)bash ACCESS 代表的意义为: c :此程序在当前的目录下(非次目录); e :可被触发为运行状态; f :是一个被开启的文件; r :代表顶层目录 (root directory); F :该文件被开启了,不过在等待回应中; m :可能为分享的动态函式库;

12. lsof

lsof:列出被进程打开的文件名

lsof [-aUu] [+d] 选项与参数: -a :多项数据需要『同时成立』才显示出结果 -U :仅列出 Unix like 系统的 socket 文件类型; -u :后面接 username,列出该使用者相关程序所开启的文件; +d :后面接目录,亦即找出某个目录底下已经被开启的文件!

阅读全文 »

zsh

发表于 2018-02-25 | 分类于 zsh

1. 安装

yum -y install zsh 
chsh -s /bin/zsh
zsh
sh -c "$(wget https://raw.githubusercontent.com/brinkqiang/oh-my-zsh/master/tools/install.sh -O -)"

选择主题
https://github.com/robbyrussell/oh-my-zsh/wiki/Themes

git clone https://github.com/zsh-users/zsh-autosuggestions.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

git clone https://github.com/zsh-users/zsh-history-substring-search.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-history-substring-search


plugins=(
git tmux github yum dnf systemd autojump history zsh-history-substring-search zsh-autosuggestions zsh-syntax-highlighting
)

2. 更新

upgrade_oh_my_zsh

3. 快捷

Oh-My-Zsh Git Aliases
enable (git) plugin.

g	git	gst	git status
gl	git pull	gup	git fetch && git rebase
gp	git push	gc	git commit -v
gca	git commit -v -a	gco	git checkout
gcm	git checkout master	gb	git branch
gba	git branch -a	gcount	git shortlog -sn
gcp	git cherry-pick	glg	git log --stat --max-count=5
glgg	git log --graph --max-count=5	gss	git status -s
ga	git add	gm	git merge
grh	git reset HEAD	grhh	git reset HEAD --hard
gsr	git svn rebase	gsd	git svn dcommit
ggpull	git pull origin $(current_branch)
ggpush	git push origin $(current_branch)
gdv	git diff -w "$@" | view -
ggpnp	git pull origin $(current_branch) && git push origin $(current_branch)
git-svn-dcommit-push	git svn dcommit && git push github master:svntrunk
gpa	git add .; git commit -m "$1"; git push; # only in the ocodo fork.

4. zsh配置错误导致用户无法登陆解决办法

使用命令行ssh -p port user@ip -t “/bin/bash”

阅读全文 »

linux

发表于 2018-02-25 | 分类于 linux

1. 安装 SCLo源

什么是SCLo,简单的说,就是比epel更丰富的软件包集合: https://www.softwarecollections.org/en/about/

$ sudo yum install centos-release-scl -y

2. gcc升级方法

$ sudo yum install devtoolset-7-gcc devtoolset-7-gcc-c++ -y
$ scl enable devtoolset-7 bash
$ source /opt/rh/devtoolset-7/enable
$ gcc --version
阅读全文 »

linux-tools

发表于 2018-02-25 | 分类于 linux

1. ag:比grep、ack更快的递归搜索文件内容。

2. tig:字符模式下交互查看git项目,可以替代git命令。

3. mycli:mysql客户端,支持语法高亮和命令补全,效果类似ipython,可以替代mysql命令。

4. shellcheck:shell脚本静态检查工具,能够识别语法错误以及不规范的写法。

5. yapf:Google开发的python代码格式规范化工具,支持pep8以及Google代码风格。

6. fzf:命令行下模糊搜索工具,能够交互式智能搜索并选取文件或者内容,配合终端ctrl-r历史命令搜索简直完美。

7. PathPicker(fpp):在命令行输出中自动识别目录和文件,支持交互式,配合git非常有用。

8. htop: 提供更美观、更方便的进程监控工具,替代top命令。

9. axel:多线程下载工具,下载文件时可以替代curl

10. cloc:代码统计工具,能够统计代码的空行数、注释行、编程语言。

11. ccache:高速C/C++编译缓存工具,反复编译内核非常有用。

12. tmux:终端复用工具,替代screen、nohup。

阅读全文 »

linux

发表于 2018-02-25 | 分类于 linux

1. linux常见查找命令

1.1. which

从文档可以看出:which命令的作用是,在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。

参数信息:

-n<文件名长度>:制定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名;文件名长度>

-p<文件名长度>:与-n参数相同,但此处的<文件名长度>包含了文件的路径;文件名长度>文件名长度>

-w:指定输出时栏位的宽度;

-V:显示版本信息。

1.2. whereis

从文档可以看出:whereis命令只能用于程序名的搜索,

参数信息:

-b:只查找二进制文件;

-B<目录>:只在设置的目录下查找二进制文件;目录>

-f:不显示文件名前的路径名称;

-m:只查找说明文件;

-M<目录>:只在设置的目录下查找说明文件;目录>

-s:只查找原始代码文件;

-S<目录>只在设置的目录下查找原始代码文件;目录>

-u:查找不包含指定类型的文件。

如果省略参数,则返回所有信息。

例: whereis ls 和 whereis grep

1.3. whatis

whatis命令是用于查询一个命令执行什么功能,并将查询结果打印到终端上

whatis 命令相当于 man -f 命令

whatis cp whatis grep whatis chown whatis man

1.4. locate

yum -y install mlocate updatedb

locate命令和slocate命令都用来查找文件或目录。

用法:locate/slocate (选项)参数

locate命令其实是find -name的另一种写法,但是locate要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库/var/lib/locatedb,这个数据库中含有本地所有文件信息。

1.5. find

find命令用来在指定目录下查找文件。

任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。

1.5.1. 使用格式

find <指定目录><指定条件><指定动作>指定动作>指定条件>指定目录>

  • <指定目录>: 所要搜索的目录及其所有子目录。默认为当前目录。 指定目录>
  • <指定条件>: 所要搜索的文件的特征。 指定条件>
  • <指定动作>: 对搜索结果进行特定的处理。 指定动作>

1.5.2. 参数选项

find命令是最常见和强大的查找命令,用它可以找到任何你想查找的内容。因此它的参数也是非常多的。

大概可以归类为以下几种:

1.根据文件或正则表达式进行匹配。

2.根据时间查找。

3.根据文件权限(所属组,拥有者)查找。

4.借助-exec与其他命令结合使用。

1.6. type

type命令用来显示指定命令的类型,判断给出的指令是内部指令还是外部指令

1.7. ldd

ldd用来查看程序运行所需的共享库,常用来解决程序因缺少某个库文件而不能运行的一些问题

1.8. awk & sed & grep

sed 编辑, awk 根据内容分析并处理, grep 查找.

  • awk(关键字:分析&处理) 一行一行的分析处理 awk ‘条件类型1{动作1}条件类型2{动作2}’ filename, awk 也可以读取来自前一个指令的 standard input 相对于sed常常用于一整行处理, awk则比较倾向于一行当中分成数个”字段”(区域)来处理, 默认的分隔符是空格键或tab键

例如: last -n 5 | awk ‘{print $1 “\t” $3}’ 这里大括号内$1”\t”$3 之间不加空格也可以, 不过最好还是加上个空格, 另外注意”\t”是有双引号的, 因为本身这些内容都在单引号内 $0 代表整行 $1代表第一个区域, 依此类推 awk的处理流程是:

  1. 读第一行, 将第一行资料填入变量 $0, $1… 等变量中
  2. 依据条件限制, 执行动作
  3. 接下来执行下一行 所以, AWK一次处理是一行, 而一次中处理的最小单位是一个区域 另外还有3个变量, NF: 每一行处理的字段数, NR 目前处理到第几行 FS 目前的分隔符 逻辑判断 > < >= <= == !== , 赋值直接使用= cat /etc/passwd | awk ‘{FS=”:”} $3<10 {print $1 “\t” $3}’ 首先定义分隔符为:, 然后判断, 注意看, 判断没有写在{}中, 然后执行动作, FS=”:”这是一个动作, 赋值动作, 不是一个判断, 所以不写在{}中 BEGIN END , 给程序员一个初始化和收尾的工作, BEGIN之后列出的操作在{}内将在awk开始扫描输入之前执行, 而END{}内的操作, 将在扫描完输入文件后执行. awk ‘/test/ {print NR}’ abc 将带有test的行的行号打印出来, 注意//之间可以使用正则表达式 awk {}内, 可以使用 if else ,for(i=0;i<10;i++), i=1 while(i<NF) 可见, awk的很多用法都等同于C语言, 比如”\t” 分隔符, print的格式, if, while, for 等等
  • sed(关键字: 编辑) 以行为单位的文本编辑工具 sed可以直接修改档案, 不过一般不推荐这么做, 可以分析 standard input

Mobile Preview

基本工作方式: sed [-nef] ‘[动作]’ [输入文本] -n : 安静模式, 一般sed用法中, 来自stdin的数据一般会被列出到屏幕上, 如果使用-n参数后, 只有经过sed处理的那一行被列出来.
-e : 多重编辑, 比如你同时又想删除某行, 又想改变其他行, 那么可以用 sed -e ‘1,5d’ -e ‘s/abc/xxx/g’ filename
-f : 首先将 sed的动作写在一个档案内, 然后通过 sed -f scriptfile 就可以直接执行 scriptfile 内的sed动作 (没有实验成功, 不推荐使用)
-i : 直接编辑, 这回就是真的改变文件中的内容了, 别的都只是改变显示. (不推荐使用) 动作:
a 新增, a 后面可以接字符串, 而这个字符串会在新的一行出现. (下一行)
c 取代, c 后面的字符串, 这些字符串可以取代 n1,n2之间的行
d 删除, 后面不接任何东西
i 插入, 后面的字符串, 会在上一行出现
p 打印, 将选择的资料列出, 通常和 sed -n 一起运作 sed -n ‘3p’ 只打印第3行
s 取代, 类似vi中的取代, 1,20s/old/new/g

[line-address]q 退出, 匹配到某行退出, 提高效率

[line-address]r 匹配到的行读取某文件 例如: sed ‘1r qqq’ abc , 注意, 写入的文本是写在了第1行的后边, 也就是第2行

[line-address]w file, 匹配到的行写入某文件 例如: sed -n ‘/m/w qqq’ abc , 从abc中读取带m的行写到qqq文件中, 注意, 这个写入带有覆盖性.

举例:

sed '1d' abc 删除 abc 档案里的第一行, 注意, 这时会显示除了第一行之外的所有行, 因为第一行已经被删除了(实际文件并没有被删除,而只是显示的时候被删除了)  
sed -n '1d' abc 什么内容也不显示, 因为经过sed处理的行, 是个删除操作, 所以不现实.  
sed '2,$d' abc 删除abc中从第二行到最后一行所有的内容, 注意, $符号正则表达式中表示行末尾, 但是这里并没有说那行末尾, 就会指最后一行末尾, ^开头, 如果没有指定哪行开头, 那么就是第一行开头  
sed '$d' abc 只删除了最后一行, 因为并没有指定是那行末尾, 就认为是最后一行末尾  
sed '/test/d' abc 文件中所有带 test 的行, 全部删除  
sed '/test/a RRRRRRR' abc 将 RRRRRRR 追加到所有的带 test 行的下一行 也有可能通过行  
sed '1,5c RRRRRRR' abc  
sed '/test/c RRRRRRR' abc 将 RRRRRRR 替换所有带 test 的行, 当然, 这里也可以是通过行来进行替换, 比如 sed '1,5c RRRRRRR' abc  
  • grep(关键字: 截取) 文本搜集工具, 结合正则表达式非常强大

主要参数 []

-c : 只输出匹配的行  
-i : 不区分大小写  
-h : 查询多文件时不显示文件名  
-l : 查询多文件时, 只输出包含匹配字符的文件名  
-n : 显示匹配的行号及行  
-v : 显示不包含匹配文本的所有行(我经常用除去grep本身)  
-E : 使用正则表达式  
基本工作方式: grep 要匹配的内容 文件名, 例如:  
grep "test" d* 显示所有以d开头的文件中包含test的行  
grep "test" aa bb cc 显示在 aa bb cc 文件中包含test的行  
grep "[a-z]\{5}\" aa 显示所有包含字符串至少有5个连续小写字母的串  
grep -i -E "error|fail|false|fault" ./log/gogs* 查找gogs错误信息
1 多个关键字查找
    1.1 使用-e

grep -e 'stdio\.h' -e 'stdlib\.h' /usr/include/*.h

    1.2 使用-f file
        将关键字以行方式保存在一个文件中
    1.3 使用元字符 \|
grep 'stdio\.h\|stdlib.h' /usr/include/*.h

    1.4 多关键字 and 查找
grep 'stdio\.h\|stdlib.h' /usr/include/*.h


2. 单词匹配
    -w(gnu 选项)
grep -w 'main' /usr/include/*.h

    \<\>
grep '\<main\>' /usr/include/*.h


2.善用 -E
    -E选项启用 extended expression,正则写起来更加灵活
        例如匹配一行内两个连续重复the或that或and或or
man gcc | grep -E '(\<the\>|\<that\>|\<and\>|\<or\>) \1'

3 多文件查找
grep -l 'main' *.c


4 忽略大小写 -i
grep -i -w 'sTAt' /usr/include/*.h

5 递归查找 -r(posix 未说明)
grep -i -w -r -E 'error|failed|failure' /var/log |less


6 显示匹配行周围行 (posix 未说明)
    B/A/C(before/after/context
    -B n
    -A n
    -C n
grep -w -i -C 3 'struct stat' /usr/include/*.h

7 取反-v
grep -v -w 'hello' filename

    如果没有取反,世界将不再美丽
8 匹配数 -c
echo aaaa | grep -c 'a'

    这个输出是1!因为grep是行匹配的

9 输出文件名 -l
grep -l -r -i -w 'filename_max' /usr/include/*.h


10 只输出匹配部分-o (gnu 选项)
echo abcddf |grep -o 'dd'
阅读全文 »

linux-malloc

发表于 2018-02-25 | 分类于 linux-malloc
  • 内存优化总结:ptmalloc、tcmalloc和jemalloc

1. linux内存池相关

内存管理可以分为三个层次,自底向上分别是:

操作系统内核的内存管理
glibc层使用系统调用维护的内存管理算法
应用程序从glibc动态分配内存后,根据应用程序本身的程序特性进行优化, 比如使用引用计数std::shared_ptr,apache的内存池方式等等。
当然应用程序也可以直接使用系统调用从内核分配内存,自己根据程序特性来维护内存,但是会大大增加开发成本。
一个优秀的通用内存分配器应具有以下特性:

额外的空间损耗尽量少
分配速度尽可能快
尽量避免内存碎片
缓存本地化友好
通用性,兼容性,可移植性,易调试

2. 动态加载tcmalloc

安装依赖

sudo yum -y install gperftools-devel gperftools-libs

直接挂接

LD_PRELOAD="/usr/lib64/libtcmalloc.so.4" ./dmserver

挂接顺便检测内存泄漏

LD_PRELOAD="/usr/lib64/libtcmalloc.so.4" HEAPCHECK=normal ./dmserver

cmake

SET_TARGET_PROPERTIES(project PROPERTIES LINK_FLAGS /INCLUDE:"__tcmalloc")

如果存在内存泄漏

Leak check _main_ detected leaks of 1136 bytes in 2 objects
The 2 largest leaks:
Leak of 568 bytes in 1 objects allocated from:
        @ 7fa7f4197dd2 
        @ 7fa7f4198c30 
        @ 7fa7fd11f780 
        @ 7fa7fd15aaf3 
        @ 7fa7fd15189a 
        @ 7fa7fd1519e8 
        @ 7fa7fd151ac5 
        @ 7fa7fd151d9f 
        @ 7fa7fd15afd3 
        @ 7fa7fd1520ed 
        @ 7fa7fd11ea42 
        @ 7fa7f14dfb35 
        @ 7fa7fd11f151 
        @ 0 
Leak of 568 bytes in 1 objects allocated from:
        @ 7fa7f4197dd2 
        @ 7fa7f4198c30 
        @ 7fa7fd12402f 
        @ 7fa7fd15aaf3 
        @ 7fa7fd15189a 
        @ 7fa7fd1519e8 
        @ 7fa7fd151ac5 
        @ 7fa7fd151d9f 
        @ 7fa7fd15afd3 
        @ 7fa7fd1520ed 
        @ 7fa7fd11ea42 
        @ 7fa7f14dfb35 
        @ 7fa7fd11f151 
        @ 0 


If the preceding stack traces are not enough to find the leaks, try running THIS shell command:

pprof ./bin/exe "/tmp/exe.7539._main_-end.heap" --inuse_objects --lines --heapcheck  --edgefraction=1e-10 --nodefraction=1e-10 --gv

If you are still puzzled about why the leaks are there, try rerunning this program with HEAP_CHECK_TEST_POINTER_ALIGNMENT=1 and/or with HEAP_CHECK_MAX_POINTER_OFFSET=-1
If the leak report occurs in a small fraction of runs, try running with TCMALLOC_MAX_FREE_QUEUE_SIZE of few hundred MB or with TCMALLOC_RECLAIM_MEMORY=false, it mi
Exiting with error code (instead of crashing) because of whole-program memory leaks

执行如下命令, 获得分析报告

pprof ./bin/exe "/tmp/exe.7539._main_-end.heap" --inuse_objects --lines --heapcheck  --edgefraction=1e-10 --nodefraction=1e-10 --text
阅读全文 »

linux-log

发表于 2018-02-25 | 分类于 linux-log

1. Linux查看日志常用命令

阅读全文 »

linux-ipc

发表于 2018-02-25 | 分类于 linux-ipc

1. 共享内存

现代Linux有两种共享内存机制:

POSIX共享内存(shm_open()、shm_unlink()) System V共享内存(shmget()、shmat()、shmdt()) 其中,System V共享内存历史悠久,一般的UNIX系统上都有这套机制;而POSIX共享内存机制接口更加方便易使用,一般是结合内存映射mmap用。

mmap和System V共享内存的主要区别在于: sysv shm是持久化的,除非被一个进程明确的删除,否则它始终存在于内存里,直到系统关机; mmap映射的内存在不是持久化的,假如进程关闭,映射随即失效,除非事前已经映射到了一个文件上。 内存映射机制mmap是POSIX标准的系统调使用,有匿名映射和文件映射两种。

匿名映射用进程的虚拟内存空间,它和malloc(3)相似,实际上有些malloc实现会用mmap匿名映射分配内存,不过匿名映射不是POSIX标准中规定的。 文件映射有MAP_PRIVATE和MAP_SHARED两种。前者用COW的方式,把文件映射到当前的进程空间,修改操作不会改动源文件。后者直接把文件映射到当前的进程空间,所有的修改会直接反应到文件的page cache,而后由内核自动同步到映射文件上。

相比于IO函数调使用,基于文件的mmap的一大优点是把文件映射到进程的地址空间,避免了数据从使用户缓冲区到内核page cache缓冲区的复制过程;当然还有一个优点就是不需要频繁的read/write系统调使用。

因为接口易使用,且可以方便的persist到文件,避免主机shutdown丢失数据的情况,所以在现代操作系统上一般偏向于用mmap而不是传统的System V的共享内存机制。

建议仅把mmap使用于需要大量内存数据操作的场景,而不使用于IPC。由于IPC总是在多个进程之间通信,而通信则涉及到同步问题,假如自己手工在mmap之上实现同步,容易滋生bug。推荐用socket之类的机制做IPC,基于socket的通信机制相对健全很多,有很多成熟的机制和模式,比方epoll, reactor等。

sysv shm的实现可以参考glibc源码,shm_open(3) 打开一个名为abc的共享内存,等价于open(“/dev/shm/abc”, ..),其中 /dev/shm 是Linux下sysv共享内存的默认挂载点。shm_open调使用返回一个文件形容符,其实也可以给 mmap(2) 用,作为named share memory用。

第一种:mmap方式,适用场景:非持久化, 父子进程之间,创建的内存非常大时 第二种:shmget方式,适用场景:持久化, 同一台电脑上不同进程之间,创建的内存相对较小时

下面表格详细列举 System V 共享内存 和 POSIX 共享内存 的差异。


System V 共享内存 与 POSIX 共享内存 差异比较

比较项目 System V 共享内存 POSIX 共享内存
创建与打开 使用 shmget 创建,通过键值(key_t)标识 使用 shm_open 创建,通过名称(字符串)标识
标识方式 整数键值,需要使用 ftok 生成,可能冲突 以 / 开头的字符串名称,类似文件路径,冲突概率小
连接与断开 使用 shmat 连接,shmdt 断开 使用 mmap 映射,munmap 解除映射
删除共享内存 使用 shmctl 的 IPC_RMID 命令显式删除 使用 shm_unlink 删除共享内存对象
权限控制 基于 UNIX 权限位,使用 shmctl 进行权限管理 基于文件系统权限,使用标准的文件权限管理
命名空间 系统范围内,全局共享,键值易冲突 基于文件系统的命名空间,名称管理更直观
API 复杂度 API 较旧,函数多且复杂,使用较繁琐 API 简洁明了,类似于标准文件操作
跨平台兼容性 某些非 UNIX 系统可能不完全支持,兼容性较差 遵循 POSIX 标准,跨平台兼容性更好
持久性 重启后共享内存段可能仍存在,需要手动删除,易泄漏 重启后共享内存对象不存在,生命周期受文件系统管理
适用场景 需要兼容旧系统或特定系统需求的场景 新的应用程序开发,推荐使用,便于维护和移植
资源清理 需要显式地删除共享内存段,否则可能占用内核资源 所有引用关闭且调用 shm_unlink 后自动清理
编程范式 与传统的 System V IPC 机制一致,学习成本高 更符合现代编程习惯,易于上手
性能 性能高,但管理复杂度高,适合大型、复杂的 IPC 性能高,且管理方便,适合大多数 IPC 场景

详细说明

  • 创建与打开:
    • System V:使用 shmget 创建共享内存段,需要提供一个键值(key_t 类型),该键值需要全局唯一,通常使用 ftok 函数生成。
    • POSIX:使用 shm_open 创建共享内存对象,通过名称(字符串)标识,名称以斜杠开头,类似于文件路径,更直观。
  • 标识方式:
    • System V:使用整数键值标识,可能出现键值冲突,需要小心管理。
    • POSIX:使用字符串名称标识,命名更加灵活,冲突概率较小。
  • 连接与断开:
    • System V:使用 shmat 将共享内存段附加到进程地址空间,使用 shmdt 断开。
    • POSIX:使用 mmap 将共享内存对象映射到进程地址空间,使用 munmap 解除映射。
  • 删除共享内存:
    • System V:需要使用 shmctl 的 IPC_RMID 命令显式删除,否则共享内存段会一直存在于内核中,可能导致资源泄漏。
    • POSIX:使用 shm_unlink 删除共享内存对象,当所有打开的文件描述符关闭后,内存会自动释放。
  • 权限控制:
    • System V:基于 UNIX 权限位(读、写、执行),权限管理较为原始,需要通过 shmctl 进行复杂的权限设置。
    • POSIX:基于文件系统权限,使用标准的 chmod、fchmod 等函数,权限管理更灵活方便。
  • 命名空间:
    • System V:共享内存键值在整个系统范围内,易发生冲突,且管理不便。
    • POSIX:共享内存对象存在于文件系统命名空间下,名称管理直观,冲突概率低。
  • API 复杂度:
    • System V:API 较为繁琐,函数多且复杂,学习和使用成本高。
    • POSIX:API 简洁,函数少,类似于标准文件操作,易于学习和使用。
  • 跨平台兼容性:
    • System V:某些非 UNIX 系统可能不支持或支持不完全,跨平台兼容性较差。
    • POSIX:遵循 POSIX 标准,跨平台兼容性好,适用于大多数 UNIX 系统。
  • 持久性:
    • System V:共享内存段在系统重启后可能仍然存在,需要手动删除,容易造成内存泄漏。
    • POSIX:共享内存对象在系统重启后不存在,其生命周期受文件系统管理,更安全。
  • 适用场景:
    • System V:适用于需要兼容旧系统、特定系统需求,或者已有大量基于 System V IPC 的代码库的场景。
    • POSIX:推荐用于新应用程序开发,API 更现代化,易于维护和移植。
  • 资源清理:
    • System V:需要程序员手动删除共享内存段,否则会一直占用系统资源。
    • POSIX:当所有引用关闭并调用 shm_unlink 后,系统会自动清理共享内存对象。
  • 编程范式:
    • System V:与早期 UNIX 系统的 IPC 机制一致,概念较为陈旧,可能不符合现代编程习惯。
    • POSIX:API 设计更符合现代编程理念,使用体验更好。
  • 性能:
    • 两者在性能上差别不大,但 POSIX 共享内存的管理更方便,代码更简洁,更易于维护。

案例说明

System V 共享内存示例

// 创建共享内存段
key_t key = ftok("shmfile", 65);
int shmid = shmget(key, 1024, 0666|IPC_CREAT);
// 连接共享内存段
char *str = (char*) shmat(shmid, NULL, 0);
// 使用共享内存...
// 断开共享内存段
shmdt(str);
// 删除共享内存段
shmctl(shmid, IPC_RMID, NULL);

POSIX 共享内存示例

// 创建共享内存对象
int fd = shm_open("/shmfile", O_CREAT | O_RDWR, 0666);
// 设置共享内存大小
ftruncate(fd, 1024);
// 映射共享内存对象
char *ptr = mmap(0, 1024, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
// 使用共享内存...
// 解除映射
munmap(ptr, 1024);
// 关闭文件描述符
close(fd);
// 删除共享内存对象
shm_unlink("/shmfile");

总结

  • System V 共享内存:适合需要兼容旧系统或已有大量 System V IPC 代码的项目,但需要注意手动管理共享内存的创建和删除,防止资源泄漏。
  • POSIX 共享内存:更现代化的共享内存机制,API 简洁明了,建议在新的项目中使用,具备更好的跨平台兼容性和易用性。

希望以上表格和说明能够清晰地展示 System V 共享内存 和 POSIX 共享内存 的差异。如有任何疑问,请随时提问!

2. 管道 (PIPE)

管道实际是用于进程间通信的一段共享内存,创建管道的进程称为管道服务器,连接到一个管道的进程为管道客户机。一个进程在向管道写入数据后,另一进程就可以从管道的另一端将其读取出来。 管道的特点: 1、管道是半双工的,数据只能向一个方向流动;需要双方通信时,需要建立起两个管道; 2、只能用于父子进程或者兄弟进程之间(具有亲缘关系的进程)。比如fork或exec创建的新进程,在使用exec创建新进程时,需要将管道的文件描述符作为参数传递给exec创建的新进程。当父进程与使用fork创建的子进程直接通信时,发送数据的进程关闭读端,接受数据的进程关闭写端。 3、单独构成一种独立的文件系统:管道对于管道两端的进程而言,就是一个文件,但它不是普通的文件,它不属于某种文件系统,而是自立门户,单独构成一种文件系统,并且只存在与内存中。 4、数据的读出和写入:一个进程向管道中写的内容被管道另一端的进程读出。写入的内容每次都添加在管道缓冲区的末尾,并且每次都是从缓冲区的头部读出数据。 管道的实现机制:

管道是由内核管理的一个缓冲区,相当于我们放入内存中的一个纸条。管道的一端连接一个进程的输出。这个进程会向管道中放入信息。管道的另一端连接一个进程的输入,这个进程取出被放入管道的信息。一个缓冲区不需要很大,它被设计成为环形的数据结构,以便管道可以被循环利用。当管道中没有信息的话,从管道中读取的进程会等待,直到另一端的进程放入信息。当管道被放满信息的时候,尝试放入信息的进程会等待,直到另一端的进程取出信息。当两个进程都终结的时候,管道也自动消失。

管道只能在本地计算机中使用,而不可用于网络间的通信。

3. 信号 (signal)

信号机制是unix系统中最为古老的进程之间的通信机制,用于一个或几个进程之间传递异步信号。信号可以有各种异步事件产生,比如键盘中断等。shell也可以使用信号将作业控制命令传递给它的子进程。

4. 消息队列(Message queues)

消息队列是内核地址空间中的内部链表,通过linux内核在各个进程直接传递内容,消息顺序地发送到消息队列中,并以几种不同的方式从队列中获得,每个消息队列可以用IPC标识符唯一地进行识别。内核中的消息队列是通过IPC的标识符来区别,不同的消息队列直接是相互独立的。每个消息队列中的消息,又构成一个独立的链表。 消息队列克服了信号承载信息量少,管道只能承载无格式字符流。

5. 信号量(Semaphore)

信号量是一种计数器,用于控制对多个进程共享的资源进行的访问。它们常常被用作一个锁机制,在某个进程正在对特定的资源进行操作时,信号量可以防止另一个进程去访问它。 信号量是特殊的变量,它只取正整数值并且只允许对这个值进行两种操作:等待(wait)和信号(signal)。(P、V操作,P用于等待,V用于信号) p(sv):如果sv的值大于0,就给它减1;如果它的值等于0,就挂起该进程的执行 V(sv):如果有其他进程因等待sv而被挂起,就让它恢复运行;如果没有其他进程因等待sv而挂起,则给它加1 简单理解就是P相当于申请资源,V相当于释放资源

6. 套接字(socket)

套接字机制不但可以单机的不同进程通信,而且使得跨网机器间进程可以通信。 套接字的创建和使用与管道是有区别的,套接字明确地将客户端与服务器区分开来,可以实现多个客户端连到同一服务器。 服务器套接字连接过程描述: 首先,服务器应用程序用socket创建一个套接字,它是系统分配服务器进程的类似文件描述符的资源。 接着,服务器调用bind给套接字命名。这个名字是一个标示符,它允许linux将进入的针对特定端口的连接转到正确的服务器进程。 然后,系统调用listen函数开始接听,等待客户端连接。listen创建一个队列并将其用于存放来自客户端的进入连接。 当客户端调用connect请求连接时,服务器调用accept接受客户端连接,accept此时会创建一个新套接字,用于与这个客户端进行通信。 客户端套接字连接过程描述: 客户端首先调用socket创建一个未命名套接字,让后将服务器的命名套接字作为地址来调用connect与服务器建立连接。 只要双方连接建立成功,我们就可以像操作底层文件一样来操作socket套接字实现通信。

阅读全文 »

linux-debug

发表于 2018-02-25 | 分类于 linux-debug

1. gdb调试

阅读全文 »

linux-core

发表于 2018-02-25 | 分类于 linux

程序异常推出时,内核会生成一个core文件(是内存映像以及调试信息)。可以通过使用gdb来查看core文件,指示出导致程序出错的代码所在的文件和行数。

1、查看系统中core文件生成的开关是否打开

1)使用ulimit -c命令可查看core文件的生成开关,若结果为0,则便是关闭了此功能,不会生成core文件。

2、设置core文件生成

1)使用命令ulimit -c filesize命令 若ulimit -c unlimited 则标识此core文件的大小不受限制 若指定filesize,如果生成的信息超过此大小,将会被裁剪,最终生成一个不完整的core文件,在调 试此core文件时,gdb会提示错误。 2)但是若想整个系统中生效则在shell里面设置是不行的,方法如下: (1)编辑/root/.bash_profile文件,在其中加入ulitmit -S -c unlimited (2)source /root/.bash_profile

阅读全文 »

linux gogs环境设置

发表于 2018-02-25 | 分类于 gogs

1. swap设置

1.1. 添加swap文件

sudo dd if=/dev/zero of=/swapfile bs=1M count=4096

1.2. 创建swap文件

sudo mkswap /swapfile

1.3. 激活swap文件

sudo swapon /swapfile

1.4. 查看swap信息

sudo swapon -s

1.5. 添加到fstab文件中让系统引导时自动启动

sudo cat /etc/fstab
sudo sed -i '/\/swapfile swap swap defaults 0 0/d' /etc/fstab
sudo sh -c 'echo "/swapfile swap swap defaults 0 0" >> /etc/fstab'
sudo cat /etc/fstab

1.6. 检查交换分区是否生效

free -m
grep SwapTotal /proc/meminfo

1.7. 释放swap文件

swapoff /swapfile

1.8. 删除swap文件

rm -rf /swapfile

2. dns设置

vim /etc/resolv.conf

3. rinetd & ss设置

vim /usr/local/etc/rinetd.conf
killall -9 ss-server
killall -9 rinetd
nohup rinetd -c /usr/local/etc/rinetd.conf &
nohup ss-server -s 0.0.0.0 -p port -k password -u -m chacha20-ietf &

4. 设置自启动

chmod 777 /etc/rc.d/rc.local
vim /etc/rc.d/rc.local

5. 新建root类型账户

useradd username passwd username usermod -u 0 -o username

6. 安装X Window

yum groupinstall "GNOME Desktop"
yum groupinstall "X Window System"

7. 安装golang

yum install golang.x86_64

8. 安装gogs

# 配置文档说明 https://gogs.io/docs/advanced/configuration_cheat_sheet

useradd git
passwd git
chown -R git:git /home/git/gogs
cd /home/git

wget https://dl.gogs.io/0.11.53/gogs_0.11.53_linux_amd64.tar.gz
tar -xvzf gogs_0.11.53_linux_amd64.tar.gz

su

cp /home/git/gogs/scripts/systemd/gogs.service /usr/lib/systemd/system/

cd /home/git/gogs

mysql -u root -p < scripts/mysql.sql

vim custom/conf/app.ini

[repository.upload]
FILE_MAX_SIZE    = 512
MAX_FILES        = 1024

ssh-keygen -t rsa -f id_rsa
./gogs cert -ca=true -duration=8760h0m0s -host=myhost.example.com

mkdir -p /etc/nginx/path/to
cp cert.pem key.pem /etc/nginx/path/to

systemctl disable gogs
systemctl enable gogs
systemctl start gogs

./gogs backup
./gogs restore

9. 安装nginx

yum install nginx.x86_64 vim /etc/nginx/nginx.conf

server { listen 443 ssl; server_name myhost.example.com; ssl_certificate path/to/cert.pem; ssl_certificate_key path/to/key.pem;

location / {
    proxy_set_header  X-Real-IP  $remote_addr;
    proxy_pass http://localhost:3000$request_uri;
} } server {
listen 80;
server_name myhost.example.com;
return 301 https://$host$request_uri; }

systemctl enable nginx systemctl start nginx

set lua = 521172152fee0b1d37bcd2869979718df1ecc5e0 set timer = dfc702952a1afa2118acdb8bc195689bddbb6c76 set ci = 66b377adfb5e2f66f471a31c498eaca44bfcd3b9

set lua = 76590d751519d216262c6f13969d45dcd4bfdafc set timer = 2c4d319b0517c205706eb4e2aa571d48300a0298 set ci = dfa4d5093b60338a7599d1ee4b20d57bf5c95a9e

set project = a5cf55a666160243a990c88685fd4006d535d1e6

10. gogs配置文件

gogs/custom/conf/app.ini

1. 上传文件配置

[repository.upload] FILE_MAX_SIZE = 512 MAX_FILES = 10240

2. 超时处理配置

[git.timeout] MIGRATE = 600 MIRROR = 600 CLONE = 3000 PULL = 3000 GC = 60

阅读全文 »

gogs-config

发表于 2018-02-25 | 分类于 gogs

gogs 配置文件手册

本手册会详尽地描述有关 Gogs 配置文件的选项,帮助您更好地理解和使用 Gogs。

请记住,任何修改都是发生在 custom/conf/app.ini 自定义配置文件中,该文件的具体位置与您的设置有关。

完整的默认设置可以通过 app.ini 文件查看。如果您看到类似 %(X)s 字符,这是由 ini 提供的递归取值的特性。

概览

名称 描述
APP_NAME 应用名称,可以改成您的组织或公司名称
RUN_USER 运行应用的用户名称,我们建议您使用 git,但如果您在个人计算机上运行 Gogs,请修改为您的系统用户名称。如果没有正确设置这个值,很可能导致您的应用崩溃
RUN_MODE 鉴于性能和其它考虑,建议在部署环境下修改为 prod 模式。在您完成安装操作时,该值也会被设置为 prod

服务器 (server)

名称 描述
PROTOCOL http 或 https
DOMAIN 服务器域名
ROOT_URL 公开的完整 URL 路径
HTTP_ADDR 应用 HTTP 监听地址
HTTP_PORT 应用 HTTP 监听端口号
UNIX_SOCKET_PERMISSION Unix 套接字文件的权限
LOCAL_ROOT_URL 用于 Gogs 工作进程(如:SSH)回访应用的本地(DMZ)URL,一般情况下请保持默认值,除非您的 SSH 服务器节点与 HTTP 并不是同一个节点入口
DISABLE_SSH 当 SSH 功能不可用时可以禁用
START_SSH_SERVER 启用该选项来启动内置 SSH 服务器
SSH_DOMAIN 允许公用网络访问 SSH 的域名
SSH_PORT SSH 端口号,如果不为 22 的话可以在此修改
SSH_LISTEN_HOST 内置 SSH 服务器监听的地址
SSH_LISTEN_PORT 内置 SSH 服务器监听的端口
SSH_ROOT_PATH SSH 根目录,一般为 ~/.ssh,但必须填写为 /home/git/.ssh
REWRITE_AUTHORIZED_KEYS_AT_START 激活该选项以在应用启动时自动重写 authorized_keys 文件,该选项在使用内置 SSH 服务器时将会被自动禁用
SSH_KEY_TEST_PATH 用于测试 SSH 公钥的临时目录
SSH_KEYGEN_PATH ssh-keygen 程序的路径,默认为 ssh-keygen 即通过系统路径查找
MINIMUM_KEY_SIZE_CHECK 指定不同类型的公钥的最小密钥大小
OFFLINE_MODE 激活该选项来禁止从 CDN 获取静态资源,同时 Gravatar 服务也将被自动禁用
DISABLE_ROUTER_LOG 激活该选项来禁止打印路由日志
CERT_FILE HTTPS 授权文件路径
KEY_FILE HTTPS 的密钥文件路径
STATIC_ROOT_PATH 模板文件和静态文件的上级目录,默认为应用二进制所在的位置
APP_DATA_PATH 应用内部数据的存放目录
ENABLE_GZIP 激活该选项来启用应用级别 GZIP 支持
LANDING_PAGE 未登录用户的默认首页,可以是 home 或 explore(探索页)

仓库 (repository)

名称 描述
ROOT 用户仓库存储根目录,必须为绝对路径,默认为 ~/<user name>/gogs-repositories
SCRIPT_TYPE 系统脚本类型,一般情况下均为 bash,但有些用户反应只能使用 sh
ANSI_CHARSET 当遇到无法识别的字符集时使用的默认字符集
FORCE_PRIVATE 强制要求所有新建的仓库都是私有的
MAX_CREATION_LIMIT 全局默认的每个用户可创建创建仓库上限,-1 表示无限制
PREFERRED_LICENSES 建议用户首选的授权类型
DISABLE_HTTP_GIT 激活该选项来禁止用户通过 HTTP 对 Git 仓库进行交互操作,即用户只能通过 SSH 操作
ENABLE_LOCAL_PATH_MIGRATION 激活该选项来启用本地路径迁移仓库功能。启动后默认只有管理员可以使用,普通用户必须经由管理员授权
ENABLE_RAW_FILE_RENDER_MODE 激活该选项来启用在查看原始数据时对页面进行真实渲染,例如渲染实际的 HTML 页面,有潜在安全隐患

仓库 - 编辑器 (repository.editor)

名称 描述
LINE_WRAP_EXTENSIONS 需要显示为行包装的文件名后缀,通过逗号分隔。如果是无后缀名的文件,则单独放置一个逗号,例如:.txt,

仓库 - 文件上传 (repository.upload)

名称 描述
ENABLED 激活该选项来启用仓库文件上传功能
TEMP_PATH 文件上传的临时存放目录
ALLOWED_TYPES 允许上传的文件类型(例如:”image/jpeg|image/png”),留空表示允许上传任意类型的文件
FILE_MAX_SIZE 单个上传的文件的最大体积,以 MB 为单位
MAX_FILES 单次同时上传的最多文件个数

版本发布 - 附件 (release.attachment)

名称 描述
ENABLED 激活该选项来启用版本发布附件功能
PATH 存放附件的路径
ALLOWED_TYPES 允许上传的 MIME 类型,例如 “image/jpeg|image/png”,使用 */* 允许所有类型的文件
MAX_SIZE 最大允许上传的附件体积,单位为 MB,例如 32
MAX_FILES 最大允许一次性上传的附件个数,例如 10

Markdown (markdown)

名称 描述
ENABLE_HARD_LINE_BREAK 指示是否启用硬性换行扩展
CUSTOM_URL_SCHEMES 允许被解析为链接的自定义 URL 方案,例如 git(用于 git://)和magnet(用于 magnet://)
FILE_EXTENSIONS 需要被渲染为 Markdown 格式的文件名后缀,通过逗号分隔。如果是无后缀名的文件,则单独放置一个逗号,例如:.markdown,

Smartypants (smartypants)

名称 描述
ENABLED 指示是否启用 Smartypants 扩展

HTTP (http)

名称 描述
ACCESS_CONTROL_ALLOW_ORIGIN 头信息 Access-Control-Allow-Origin 的自定义值,默认为空,即不响应此头信息

数据库 (database)

名称 描述
DB_TYPE 数据库类型,可以是 mysql、postgres、mssql 或 sqlite3
HOST 数据库主机地址与端口
NAME 数据库名称
USER 数据库用户名
PASSWD 数据库用户密码
SSL_MODE 仅限 PostgreSQL 使用
PATH 仅限 SQLite3 使用,数据库文件路径

应用管理 (admin)

名称 描述
DISABLE_REGULAR_ORG_CREATION 激活该选项来禁止普通用户(非管理员)创建组织

安全 (security)

名称 描述
INSTALL_LOCK 用于指示是否允许访问安装页面(该页面可以设置管理员帐号,因此该选项非常重要)
SECRET_KEY 全局的加密密钥,务必修改该值以确保您的服务器安全(会在每次安装时自动生成随机字符串)
LOGIN_REMEMBER_DAYS 记住登录的天数
COOKIE_USERNAME 记录用户名的 Cookie 名称
COOKIE_REMEMBER_NAME 记录用户自动登录信息的 Cookie 名称
REVERSE_PROXY_AUTHENTICATION_USER 反向代理认证用户的 Header 字段名

服务 (service)

名称 描述
ACTIVE_CODE_LIVE_MINUTES 激活码的有效期,单位为分钟
RESET_PASSWD_CODE_LIVE_MINUTES 重置密码的有效期,单位为分钟
REGISTER_EMAIL_CONFIRM 激活该选项来要求注册用户必须验证邮箱,要求已启用 Mailer
DISABLE_REGISTRATION 激活该选项来禁止用户注册功能,只能由管理员创建帐号
SHOW_REGISTRATION_BUTTON 用于指示是否显示注册按钮
REQUIRE_SIGNIN_VIEW 激活该选项来要求用户必须登录才能浏览任何页面
ENABLE_CACHE_AVATAR 激活该选项来缓存 Gravatar 的头像
ENABLE_NOTIFY_MAIL 激活该选项来发送通知邮件给关注者,例如创建 issue 时,要求已启用 Mailer
ENABLE_REVERSE_PROXY_AUTHENTICATION 激活该选项来开启反向代理用户认证,请从 #165 了解更多信息
ENABLE_REVERSE_PROXY_AUTO_REGISTRATION 激活该选项来开启反向代理用户认证的自动注册功能
DISABLE_MINIMUM_KEY_SIZE_CHECK 激活该选项来禁止检查响应类型的密钥最小长度
ENABLE_CAPTCHA 激活该选项以在用户注册时要求输入验证码

Web 钩子 (webhook)

名称 描述
TYPES 启动的 Web 钩子类型,可以是 gogs、slack 或 discord
DELIVER_TIMEOUT 发送通知的超时时间,以秒为单位
SKIP_TLS_VERIFY 指示是否允许向具有非信任证书的地址发送通知
PAGING_NUM Web 钩子历史页面每页显示记录条数

邮件 (mailer)

名称 描述
ENABLED 启用该选项以激活邮件服务
SUBJECT_PREFIX 邮件标题的前缀
HOST SMTP 主机地址与端口
DISABLE_HELO 禁用 HELO 操作
HELO_HOSTNAME HELO 操作的自定义主机名
SKIP_VERIFY 不验证自签发证书的有效性
FROM 邮箱的来自地址,遵循 RFC 5322规范,可以是一个单纯的邮箱地址或者 "名字" <email@example.com> 的形式
USER 邮箱用户名
PASSWD 邮箱密码
USE_PLAIN_TEXT 使用 text/plain 作为邮件内容格式

备注:Gogs 仅支持使用 STARTTLS 的 SMTP 协议

缓存 (cache)

名称 描述
ADAPTER 缓存引擎适配器,可以为 memory、redis 或 memcache。如果您使用 redis 或 memcache,请确保使用 -tags 选项重新构建所有依赖,例如:go build -tags='redis'
INTERVAL 仅限内存缓存使用,GC 周期,单位为秒
HOST 仅限 redis 和 memcache 使用,主机地址和端口号
- Redis:network=tcp,addr=127.0.0.1:6379,password=macaron,db=0,pool_size=100,idle_timeout=180
- Memache:127.0.0.1:9090;127.0.0.1:9091

会话 (session)

名称 描述
PROVIDER Session 引擎提供者,可以是 memory、file、redis 或 mysql
PROVIDER_CONFIG 如果提供者为 file,则为文件根目录;如果为其它提供者,则为主机地址和端口号
COOKIE_SECURE 激活该选项以要求所有 session 操作均通过 HTTPS
GC_INTERVAL_TIME GC 周期,单位为秒

图片 (picture)

名称 描述
AVATAR_UPLOAD_PATH 存放用户上传头像的目录
GRAVATAR_SOURCE 可以是 gravatar、duoshuo 或任何 URL,例如:http://cn.gravatar.com/avatar/
DISABLE_GRAVATAR 激活该选项来仅使用本地头像
ENABLE_FEDERATED_AVATAR 激活该选项来启用 Federated 头像服务(http://www.libravatar.org),当 Gravatar 被禁用时此选项无法生效

附件 (attachment)

名称 描述
ENABLED 激活该选项以允许用户上传附件
PATH 存放附件的路径
ALLOWED_TYPES 允许上传的 MIME 类型,例如 “image/jpeg|image/png”,使用 */* 允许所有类型的文件
MAX_SIZE 最大允许上传的附件体积,单位为 MB,例如 4
MAX_FILES 最大允许一次性上传的附件个数,例如 5

时间 (time)

名称 描述
FORMAT 指定日期的输出格式,默认为 RFC1123,其它可选的格式为 ANSIC、UnixDate、RubyDate、RFC822、RFC822Z、RFC850、RFC1123、RFC1123Z、RFC3339、RFC3339Nano、Kitchen、Stamp、StampMilli、StampMicro 和 StampNano。访问 http://golang.org/pkg/time/#pkg-constants 查看详情

日志 (log)

名称 描述
ROOT_PATH 日志文件的根目录
MODE 日志记录模式,默认为 console。如果想要开启多模式,请使用逗号分割,例如:"console, file"
LEVEL 基本日志级别,默认为 Trace

日志 - 控制台 (log.console)

名称 描述
LEVEL 控制台日志级别,留空则继承父值

日志 - 文件 (log.file)

名称 描述
LEVEL 文件日志级别,留空则继承父值
LOG_ROTATE 激活该选项以启用日志文件自转
DAILY_ROTATE 激活该选项以进行日常自转
MAX_SIZE_SHIFT 自转需要达到的最大文件体积,使用位左移,默认为 28 即 1 « 28,表示 256MB
MAX_LINES 自转需要达到的最大文件行数,默认为 1000000
MAX_DAYS 保留自转文件的最长期限,默认为 7 天后删除

日志 - Slack (log.slack)

名称 描述
LEVEL Slack 日志级别,留空则继承父值
URL Slack Web 钩子 URL

日志 - Discord (log.discord)

名称 描述
LEVEL Discord 日志级别,留空则继承父值
URL Discord Web 钩子 URL
USERNAME 在 Web 钩子中显示的用户名

Cron (cron)

名称 描述
ENABLED 激活该选项以允许周期性运行 Cron 任务
RUN_AT_START 激活该选项以允许在启动时执行 Cron 任务

Cron - 更新镜像 (cron.update_mirrors)

名称 描述
SCHEDULE 定时更新仓库镜像的 Cron 语法,例如:@every 1h

Cron - 仓库健康检查 (cron.repo_health_check)

名称 描述
SCHEDULE 定时进行仓库健康检查的 Cron 语法,例如:@every 24h
TIMEOUT 仓库健康检查超时的定义语法,例如:60s
ARGS git fsck 命令的参数,例如:--unreachable --tags

Cron - 仓库统计检查 (cron.check_repo_stats)

名称 描述
RUN_AT_START 激活该选项以在启动时执行仓库统计检查
SCHEDULE 定时进行仓库统计检查的 Cron 语法,例如:@every 24h

Cron - 仓库归档清理 (cron.repo_archive_cleanup)

名称 描述
RUN_AT_START 激活该选项以在启动时执行仓库归档清理
SCHEDULE 定时进行仓库归档清理的 Cron 语法,例如:@every 24h
OLDER_THAN 仓库归档的文件有效期,过期的归档将被清理,例如:24h

Git (git)

名称 描述
DISABLE_DIFF_HIGHLIGHT 激活该选项以禁用行内差异高亮
MAX_GIT_DIFF_LINES 差异对比页面单个文件显示的最大行数
MAX_GIT_DIFF_LINE_CHARACTERS 差异对比页面单行显示的最大字符数
MAX_GIT_DIFF_FILES 差异对比页面文件显示的最多个数
GC_ARGS git gc 命令的参数,例如:--aggressive --auto

Git - 超时 (git.timeout)

名称 描述
MIGRATE 仓库迁移操作超时,默认为 600 秒
MIRROR 仓库镜像同步操作超时,默认为 300 秒
CLONE 仓库克隆操作超时,默认为 300 秒
PULL 仓库拉取操作超时,默认为 300 秒
GC 仓库垃圾回收操作超时,默认为 60 秒

UI (ui)

名称 描述
EXPLORE_PAGING_NUM 探索页面每页显示仓库的数量
ISSUE_PAGING_NUM 每页显示工单(Issue)的数量(应用到所有以列表形式显示工单的页面)
FEED_MAX_COMMIT_NUM 一条最新活动中显示代码提交(Commit)的最大数量
THEME_COLOR_META_TAG 被用于 Android >= 5.0 版本 “theme-color” 标记的值,无效的值将被忽略并使用默认值(查看详情)
MAX_DISPLAY_FILE_SIZE 显示到页面的最大文件体积(Byte)

UI - Admin (ui.admin)

名称 描述
USER_PAGING_NUM 用户管理页面每页显示记录条数
REPO_PAGING_NUM 仓库管理页面每页显示记录条数
NOTICE_PAGING_NUM 系统提示管理页面每页显示记录条数
ORG_PAGING_NUM 组织管理页面每页显示记录条数

Prometheus (prometheus)

名称 描述
ENABLED 激活该选项以启用 Prometheus 监控信息,默认为 true
ENABLE_BASIC_AUTH 激活该选项以启用 HTTP 基本认证保护监控信息数据,默认为 false
BASIC_AUTH_USERNAME HTTP 基本认证的用户名
BASIC_AUTH_PASSWORD HTTP 基本认证的密码

其他 (other)

名称 描述
SHOW_FOOTER_BRANDING 激活该选项以在页脚显示 Gogs 推广信息
SHOW_FOOTER_VERSION 激活该选项以在页脚显示 Gogs 版本信息
SHOW_FOOTER_TEMPLATE_LOAD_TIME 激活该选项以在页脚显示 Gogs 模板加载时间
阅读全文 »

design

发表于 2018-02-25 | 分类于 design

1. DDD领域驱动设计

Mobile Preview

从遇到问题开始 当人们要做一个软件系统时,一般总是因为遇到了什么问题,然后希望通过一个软件系统来解决。

比如,我是一家企业,然后我觉得我现在线下销售自己的产品还不够,我希望能够在线上也能销售自己的产品。所以,自然而然就想到要做一个普通电商系统,用于实现在线销售自己企业产品的目的。

再比如,我是一家互联网公司,公司有很多系统对外提供服务,面向很多客户端设备。但是最近由于各种原因,导致服务经常出故障。所以,我们希望通过各种措施提高服务的质量和稳定性。其中的一个措施就是希望能做一个灰度发布的平台,这个平台可以提供灰度发布的服务。然后,当某个业务系统做了一些修改并需要发布时,可以使用我们的灰度发布平台来非常方便的实现灰度发布的功能。比如在灰度发布平台上方便的定制允许哪些特定的客户端才会访问新服务,哪些客户端继续使用老服务。灰度发布平台可以提供各种灰度的策略。有了这样的灰度发布机制,那即便系统的新逻辑有什么问题,受影响的面也不会很大,在可控范围内。所以,如果公司里的所有对外提供服务的系统都接入了灰度平台,那这些系统的发布环节就可以更加有保障了。

总之,我们做任何一个软件系统,都是有原因的,否则就没必要做这个系统,而这个原因就是我们遇到的问题。所以,通过问题,我们就知道了我们需要一个什么样的系统,这个系统解决什么样的问题。最后,我们就很自然的得出了一个目标,即知道了自己要什么。比如我要做一个论坛、一个博客系统、一个电商平台、一个灰度发布系统、一个IDE、一个分布式消息队列、一个通信框架,等等。

DDD切入点1 - 理解概念 DDD的全称为Domain-driven Design,即领域驱动设计。下面我从领域、问题域、领域模型、设计、驱动这几个词语的含义和联系的角度去阐述DDD是如何融入到我们平时的软件开发初期阶段的。要理解什么是领域驱动设计,首先要理解什么是领域,什么是设计,还有驱动是什么意思,什么驱动什么。

什么是领域(Domain)? 前面我们已经清楚的知道我们现在要做一个什么样的系统,这个系统需要解决什么问题。我认为任何一个系统都会属于某个特定的领域,比如论坛是一个领域,只要你想做一个论坛,那这个论坛的核心业务是确定的,比如都有用户发帖、回帖等核心基本功能。比如电商平台、普通电商系统,这种都属于网上电商领域,只要是这个领域的系统,那都有商品浏览、购物车、下单、减库存、付款交易等核心环节。所以,同一个领域的系统都具有相同的核心业务,因为他们要解决的问题的本质是类似的。

因此,我们可以推断出,一个领域本质上可以理解为就是一个问题域,只要是同一个领域,那问题域就相同。所以,只要我们确定了系统所属的领域,那这个系统的核心业务,即要解决的关键问题、问题的范围边界就基本确定了。通常我们说,要成为一个领域的专家,必须要在这个领域深入研究很多年才行。因为只有你研究了很多年,你才会遇到非常多的该领域的问题,同时你解决这个领域中的问题的经验也非常丰富。很多时候,领域专家比技术专家更加吃香,比如金融领域的专家。

什么是设计(Design)? DDD中的设计主要指领域模型的设计。为什么是领域模型的设计而不是架构设计或其他的什么设计呢?因为DDD是一种基于模型驱动开发的软件开发思想,强调领域模型是整个系统的核心,领域模型也是整个系统的核心价值所在。每一个领域,都有一个对应的领域模型,领域模型能够很好的帮我们解决复杂的业务问题。

从领域和代码实现的角度来理解,领域模型绑定了领域和代码实现,确保了最终的代码实现就一定是解决了领域中的核心问题的。因为:1)领域驱动领域模型设计;2)领域模型驱动代码实现。我们只要保证领域模型的设计是正确的,就能确定领域模型可以解决领域中的核心问题;同理,我们只要保证代码实现是严格按照领域模型的意图来落地的,那就能保证最后出来的代码能够解决领域的核心问题的。这个思路,和传统的分析、设计、编码这几个阶段被割裂(并且每个阶段的产物也不同)的软件开发方法学形成鲜明的对比。

什么是驱动(Driven)? 上面其实已经提到了,就是:1)领域驱动领域模型设计;2)领域模型驱动代码实现。这个就和我们传统的数据库驱动开发的思路形成对比了。DDD中,我们总是以领域为边界,分析领域中的核心问题(核心关注点),然后设计对应的领域模型,再通过领域模型驱动代码实现。而像数据库设计、持久化技术等这些都不是DDD的核心,而是外围的东西。

领域驱动设计(DDD)告诉我们的最大价值我觉得是:当我们要开发一个系统时,应该尽量先把领域模型想清楚,然后再开始动手编码,这样的系统后期才会很好维护。但是,很多项目(尤其是互联网项目,为了赶工)都是一开始模型没想清楚,一上来就开始建表写代码,代码写的非常冗余,完全是过程是的思考方式,最后导致系统非常难以维护。而且更糟糕的是,出来混总是要还的,前期的领域模型设计的不好,不够抽象,如果你的系统会长期需要维护和适应业务变化,那后面你一定会遇到各种问题维护上的困难,比如数据结构设计不合理,代码到处冗余,改BUG到处引入新的BUG,新人对这种代码上手困难,等。而那时如果你再想重构模型,那要付出的代价会比一开始重新开发还要大,因为你还要考虑兼容历史的数据,数据迁移,如何平滑发布等各种头疼的问题。所以,就导致我们最后天天加班。

虽然,我们都知道这个道理,但是我也明白,人的习惯很难改变的,大部分人都很难从面向过程式的想到哪里写到哪里的思想转变为基于系统化的模型驱动的思维。我想,这或许是DDD很难在中国或国外流行起来的原因吧。但是,我想这不应该成为我们放弃学习DDD的原因,对吧!

概念总结: 领域就是问题域,有边界,领域中有很多问题; 任何一个系统要解决的那个大问题都对应一个领域; 通过建立领域模型来解决领域中的核心问题,模型驱动的思想; 领域建模的目标针对我们在领域中所关心的问题,即只针对核心关注点,而不是整个领域中的所有问题; 领域模型在设计时应考虑一定的抽象性、通用性,以及复用价值; 通过领域模型驱动代码的实现,确保代码让领域模型落地,代码最终能解决问题; 领域模型是系统的核心,是领域内的业务的直接沉淀,具有非常大的业务价值; 技术架构设计或数据存储等是在领域模型的外围,帮助领域模型进行落地; DDD切入点2 - 理解领域、拆分领域、细化领域 理解领域知识是基础 上面我们通过第一步,虽然我们明确了要做一个什么样的系统,该系统主要解决什么问题,但是就这样我们还无法开始进行实际的需求分析和模型设计,我们还必须将我们的问题进行拆分,需求进行细化。有些时候,需求方,即提出问题的人,很可能自己不清楚具体想要什么。他只知道一个概念,一个大的目标。比如他只知道要做一个股票交易系统,一个灰度发布系统,一个电商平台,一个开发工具,等。但是他不清楚这些系统应该具体做成什么样子。这个时候,我认为领域专家就非常重要了,DDD也非常强调领域专家的重要性。因为领域专家对这个领域非常了解,对领域内的各种业务场景和各种业务规则也非常清楚,总之,对这个领域内的一切业务相关的知识都非常了解。所以,他们自然就有能力表达出系统该做成什么样子。所以,要知道一个系统到底该做成什么样子,到底哪些是核心业务关注点,只能靠沉淀领域内的各种知识,别无他法。因此,假设你现在打算做一个电商平台,但是你对这个领域没什么了解,那你一定得先去了解下该领域内主流的电商平台,比如淘宝、天猫、京东、亚马逊等。这个了解的过程就是你沉淀领域知识的过程。如果你不了解,就算你领域建模的能力再强,各种技术架构能力再强也是使不上力。领域专家不是某个固定的角色,而是某一类人,这类人对这个领域非常了解。比如,一个开发人员也可以是一个领域专家。假设你在一个公司开发和维护一个系统已经好几年了,但是这个系统的产品经理(PD)可能已经换过好几任了,这种情况下,我相信这几任产品经理都没有比你更熟悉这个领域。

拆分领域 上面我们明白了,领域建模的基础是要先理解领域,让自己成为领域专家。如果做到了这点,我们就打好了坚实的基础了。但是,有时一个领域往往太复杂,涉及到的领域概念、业务规则、交互流程太多,导致我们没办法直接针对这个大的领域进行领域建模。所以,我们需要将领域进行拆分,本质上就是把大问题拆分为小问题,然后各个击破的思路。然后既然把一个大的领域划分为了多个小的领域(子域),那最关键的就是要理清每个子域的边界;然后要搞清楚哪些子域是核心子域,哪些是非核心子域,哪些是公共支撑子域;然后,还要思考子域之间的联系是什么。那么,我们该如何划分子域呢?我的个人看法是从业务相关性的角度去思考,也就是我们平时说的按业务功能为出发点进行划分。还是拿经典的电商系统来分析,通常一个电商系统都会包含好几个大块,比如:

会员中心:负责用户账号登录、用户信息的管理; 商品中心:负责商品的展示、导航、维护; 订单中心:负责订单的生成和生命周期管理; 交易中心:负责交易相关的业务; 库存中心:负责维护商品的库存; 促销中心:负责各种促销活动的支持; 上面这些中心看起来很自然,因为大家对电子商务的这个领域都已经非常熟悉了,所以都没什么疑问,好像很自然的样子。所以,领域划分是不是就是没什么挑战了呢?显然不是。之所以我们觉得子域划分很简单,是因为我们对整个大领域非常了解了。如果我们遇到一个冷门的领域,就没办法这么容易的去划分子域了。这就需要我们先去努力理解领域内的知识。所以,我个人从来不相信什么子域划分的技巧什么的东西,因为我觉得这个工作没有任何诀窍可以使用。当我们不了解一个东西的时候,如何去拆解它?当我们对整个领域有一定的熟悉了,了解了领域内的相关业务的本质和关系,我们就自然而然的能划分出合理的子域了。不过并不是所有的系统都需要划分子域的,有些系统只是解决一个小问题,这个问题不复杂,可能只有一两个核心概念。所以,这种系统完全不需要再划分子域。但不是绝对的,当一个领域,我们的关注点越来越多,每个关注点我们关注的信息越来越多的时候,我们会不由自主的去进一步的划分子域。比如,也许我们一开始将商品和商品的库存都放在商品中心里,但是后来由于库存的维护越来越复杂,导致揉在一起对我们的系统维护带来一定的困难时,我们就会考虑将两者进行拆分,这个就是所谓的业务垂直分割。

细化子域 通过上面的两步,我们了解了领域里的知识,也对领域进行了子域划分。但这样还不够,凭这些我们还无法进行后续的领域模型设计。我们还必须再进一步细化每个子域,进一步明确每个子域的核心关注点,即需求细化。我觉得我们需要细化的方面有以下几点:

梳理领域概念:梳理出领域内我们关注的概念、概念的关系,并统一交流词汇,形成统一语言; 梳理业务规则:梳理出领域内我们关注的各种业务规则,DDD中叫不变性(invariants),比如唯一性规则,余额不能小于零等; 梳理业务场景:梳理出领域内的核心业务场景,比如电商平台中的加入购物车、提交订单、发起付款等核心业务场景; 梳理业务流程:梳理出领域内的关键业务流程,比如订单处理流程,退款流程等; 从上面这4个方面,我们从领域概念、业务规则、交互场景、业务流程等维度梳理了我们到底要什么,整理了整个系统应该具备的功能。这个工作我觉得是一个非常具有创造性和有难度的工作。我们一方面会主观的定义我们想要什么;另一方面,我们还会思考我们要的东西的合理性。我认为这个就是产品经理的工作,产品经理必须要负起职责,把他的产品充分设计好,从各个方面去考虑,如何设计一个产品,才能更好的解决用户的核心诉求,即领域内的核心问题。如果对领域不够了解,如果想不清楚用户到底要什么,如果思考问题不够全面,谈何设计出一个合理的产品呢?

关于领域概念的梳理,我觉得可以采用四色原型分析法,这个分析法通过系统的方法,将概念划分为不同的种类,为不同种类的概念标注不同的颜色。然后将这些概念有机的组合起来,从而让我们可以清晰的分析出概念和概念之间的关系。有兴趣的同学可以在网上搜索下四色原型。

注意:上面我说的这四点,重点是梳理出我们要什么功能,而不是思考如何实现这些功能,如何实现是软件设计人员的职责。

DDD切入点3 - 领域模型设计 这部分内容,我想学习DDD的人都很熟悉了。DDD原著中提出了很多实用的建模工具:聚合、实体、值对象、工厂、仓储、领域服务、领域事件。我们可以使用这些工具,来设计每一个子域的领域模型。最终通过领域模型图将设计沉淀下来。要使用这些工具,首先就要理解每个工具的含义和使用场景。不要以为很简单哦,比如聚合的划分就是一个非常具有艺术的活。同一个系统,不同的人设计出来的聚合是完全不同的。而且很有可能高手之间的最后设计出来的差别反而更大,实际上我认为是世界观的相互碰撞,呵呵。所以,要领域建模,我觉得每个人都应该去学学哲学知识,这有助于我们更好的认识世界,更好的理解事物的本质。

关于这些建模工具的概念和如何运用我就不多展开了,我博客里也有很多这方面的介绍。下面我再讲一下我认为比较重要的东西,比如到底该如何领域建模?步骤应该是怎么样的?

领域建模的方法 通过上面我介绍的细化子域的内容,现在再来谈该如何领域建模,我觉得就方便很多了。我的主要方法是:

划分好边界上下文,通常每个子域(sub domain)对应一个边界上下文(bounded context),同一个边界上下文中的概念是明确的,没有任何歧义; 在每个边界上下文中设计领域模型,具体的领域模型设计方法有很多种,如以场景为出发点的四色原型分析法,或者我早期写的这篇文章;这个步骤最核心的就是找出聚合根,并找出每个聚合根包含的信息;关于如何设计聚合,可以看一下我写的这篇文章; 画出领域模型图,圈出每个模型中的聚合边界; 设计领域模型时,要考虑该领域模型是否满足业务规则,同时还要综合考虑技术实现等问题,比如并发问题;领域模型不是概念模型,概念模型不关注技术实现,领域模型关心;所以领域模型才能直接指导编码实现; 思考领域模型是如何在业务场景中发挥作用的,以及是如何参与到业务流程的每个环节的; 场景走查,确认领域模型是否能满足领域中的业务场景和业务流程; 模型持续重构、完善、精炼; 领域模型的核心作用: 抽象了领域内的核心概念,并建立概念之间的关系; 领域模型承担了领域内的状态的维护; 领域模型维护了领域内的数据之间的业务规则,数据一致性; 下图是我最近做个一个普通电商系统的商品中心的领域模型图,给大家参考:

领域模型设计只是软件设计中的一小部分 需要特别注意的是,领域模型设计只是整个软件设计中的很小一部分。除了领域模型设计之外,要落地一个系统,我们还有非常多的其他设计要做,比如:

容量规划 架构设计 数据库设计 缓存设计 框架选型 发布方案 数据迁移、同步方案 分库分表方案 回滚方案 高并发解决方案 一致性选型 性能压测方案 监控报警方案 等等。上面这些都需要我们平时的大量学习和积累。作为一个合格的开发人员或架构师,我觉得除了要会DDD领域驱动设计,还要会上面这么多的技术能力,确实是非常不容易的。

2. 敏捷开发:原则、模式与实例

SRP单一职责原则(Single Responsibility Principle):   就一个类而言,应该仅有一个引起它变化的原因。 OCP开放-封闭原则(Open Closure Principle):   软件实体(类,模块,函数等)应该可以扩展的,但不可修改。 LSPLiskov 替换原则(Liskov Substitution Principle):   子类型必须能够替换它们的基类型 DIP依赖倒置原则(Dependence Inversion Principle):   抽象不应该依赖于细节,细节应该依赖于抽象。 ISP接口隔离原则(Interface Segregation Principle):   不应该强迫客户依赖与它们不用的方法。接口属于客户,不属于它所在的类层次结构。 REP重用发布等价原则(Release Reuse Equivalency Principle):   重用粒度就是发布粒度。 CCP共同封闭原则(Common Closure Principle):   包中 所有类应该对于同一类性质的变化应该是共同封闭的。一个变化若对包产生影响,则将对包中所有的类产生影响。而对其它的包不造成影响。 CRP共同重用原则(Common Resue Principle):   一个包中的所有类应该是共同重用的。如果重用了包中的一个类,那么就要重用包中的所有类。 ADP无环依赖原则(Acyclic Dependencies Principle):   在包的依赖关系图中不允许存在环。 SDP稳定依赖原则(Stable Dependencies Principle):   易变化包不应该依赖稳定包。 SAP稳定抽象原则(Stable Abstract Principle):   朝着抽象方向扩展。

3. 设计模式

一、设计模式的分类 总体来说设计模式分为三大类:

创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。

结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。

行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。

其实还有两类:并发型模式和线程池模式。用一个图片来整体描述一下:

Mobile Preview

C++设计模式代码展示 https://github.com/brinkqiang/dmdesignpattern

二、设计模式的六大原则 总原则:开闭原则(Open Close Principle) 开闭原则就是说对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,而是要扩展原有代码,实现一个热插拔的效果。所以一句话概括就是:为了使程序的扩展性好,易于维护和升级。想要达到这样的效果,我们需要使用接口和抽象类等,后面的具体设计中我们会提到这点。

1、单一职责原则 不要存在多于一个导致类变更的原因,也就是说每个类应该实现单一的职责,如若不然,就应该把类拆分。

2、里氏替换原则(Liskov Substitution Principle) 里氏代换原则(Liskov Substitution Principle LSP)面向对象设计的基本原则之一。 里氏代换原则中说,任何基类可以出现的地方,子类一定可以出现。 LSP是继承复用的基石,只有当衍生类可以替换掉基类,软件单位的功能不受到影响时,基类才能真正被复用,而衍生类也能够在基类的基础上增加新的行为。里氏代换原则是对“开-闭”原则的补充。实现“开-闭”原则的关键步骤就是抽象化。而基类与子类的继承关系就是抽象化的具体实现,所以里氏代换原则是对实现抽象化的具体步骤的规范。—— From Baidu 百科

历史替换原则中,子类对父类的方法尽量不要重写和重载。因为父类代表了定义好的结构,通过这个规范的接口与外界交互,子类不应该随便破坏它。

3、依赖倒转原则(Dependence Inversion Principle) 这个是开闭原则的基础,具体内容:面向接口编程,依赖于抽象而不依赖于具体。写代码时用到具体类时,不与具体类交互,而与具体类的上层接口交互。

4、接口隔离原则(Interface Segregation Principle) 这个原则的意思是:每个接口中不存在子类用不到却必须实现的方法,如果不然,就要将接口拆分。使用多个隔离的接口,比使用单个接口(多个接口方法集合到一个的接口)要好。

5、迪米特法则(最少知道原则)(Demeter Principle) 就是说:一个类对自己依赖的类知道的越少越好。也就是说无论被依赖的类多么复杂,都应该将逻辑封装在方法的内部,通过public方法提供给外部。这样当被依赖的类变化时,才能最小的影响该类。

最少知道原则的另一个表达方式是:只与直接的朋友通信。类之间只要有耦合关系,就叫朋友关系。耦合分为依赖、关联、聚合、组合等。我们称出现为成员变量、方法参数、方法返回值中的类为直接朋友。局部变量、临时变量则不是直接的朋友。我们要求陌生的类不要作为局部变量出现在类中。

6、合成复用原则(Composite Reuse Principle) 原则是尽量首先使用合成/聚合的方式,而不是使用继承。

阅读全文 »

cppcheck

发表于 2018-02-25 | 分类于 cppcheck

CppCheck是一个C/C++代码缺陷静态检查工具。不同于C/C++编译器及其它分析工具,CppCheck只检查编译器检查不出来的bug,不检查语法错误。所谓静态代码检查就是使用一个工具检查我们写的代码是否安全和健壮,是否有隐藏的问题。

  1. Windows下. 安装一个visual studio插件即可
  2. Linux下. yum install cppcheck cmake中增加如下调用 需要cmake 3.9版本以上 SET(CMAKE_CXX_CPPCHECK “cppcheck”) 或者 FIND_PROGRAM(CMAKE_CXX_CPPCHECK NAMES cppcheck) IF (CMAKE_CXX_CPPCHECK) LIST( APPEND CMAKE_CXX_CPPCHECK “–enable=warning” “–inconclusive” “–force” “–inline-suppr” “–suppressions-list=${CMAKE_SOURCE_DIR}/CppCheckSuppressions.txt” ) ENDIF()
阅读全文 »

build

发表于 2018-02-25 | 分类于 build

1. 提高编译速度

1. windows

increbuild

2. linux

tmpfs: 解决IO瓶颈,充分利用本机内存资源
make -j: 充分利用本机计算资源
distcc: 利用多台计算机资源
dmucs: distcc服务的分布式负载均衡解决方案
ccache: 减少重复编译相同代码的时间

安装配置distcc

在A机器编译, 想借用B机器的cpu, 则A叫做master, B叫做slave

配置: 在slave机器上: 新建账号 adduser distcc vim /etc/sysconf/distcc 加上: OPTIONS=”–nice 5 –jobs 4 –allow 192.168.0.0/16” USER=”distcc” 其中 192.168.0.0/16 是master机器的ip地址 然后启动 service distccd start

在master机器上 vim /etc/distcc/hosts 加上: localhost/4 192.168.16.183/4 表示本地执行4个编译进程, 192.168.16.183执行4个编译进程

调试: 在slave上 加上环境变量, DISTCC_VERBOSE=1

yum install distcc 
yum install distcc-server
阅读全文 »

atomic

发表于 2018-02-25 | 分类于 atomic

C语言原子操作的应用(内存次序,内存屏障)

1. 内存次序

为优化程序代码,编译器和处理器可以自由地对任何无相互依赖关系的命令进行重新排列。例如,两个分配语句 a=0;B=1;,它们可以以任一顺序执行。然而,在多线程环境下,由于不同线程内存操作之间的依赖性对于编译器或处理器通常是不可见的,所以对编译器或处理器执行命令重新排序可能会引发错误。

使用原子对象可以默认地防止此类重新排序。但是,防止优化意味着可能会牺牲速度。有经验的程序员可以在较低的内存次序请求下,通过明确地使用原子操作提高性能。

对于每个执行原子操作的函数(例如 atomic_store()),都有另一个版本,这些函数的名称以 _explicit 结尾,如 atomic_store_explicit(),它们增加了一个类型为 memory_order 的参数。

memory_order 类型是一个枚举,它定义了以下常量,以指定特定的内存次序请求:

memory_order_relaxed

调用者指定无任何内存次序请求,从而使编译器可以自由地改变操作的顺序。

memory_order_release

指定在当前线程 T1 中对一个原子对象A进行写访问时执行释放操作(release operation)。释放操作的作用是:当另一个线程 T2 对 A 执行捕获操作时(读访问),所有 T1 曾对 A 执行的操作在 T2 捕获 A 以后,对 T2 都是可见的。

memory_order_acquire

指定对一个原子对象进行读访问时执行捕获操作(acquire operation)。它确保在该函数调用前,后续的内存访问操作不发生重新排列。

memory_order_consume

一个消耗操作(consume operation)的限制小于一个捕获操作:它仅当后续内存访问操作直接依赖读取原子变量时,防止重新排序。

memory_order_acq_rel

同时具有捕获和释放操作。

memory_order_seq_cst

顺序一致性(sequential consistency)请求包括对 memory_order_acq_rel 的捕获和释放操作。此外,它还指定了所有操作按一个次序严格执行,该次序为所包含原子对象的修改次序。顺序一致性是默认的内存顺序请求,如果没有显式指定更低的请求,这种请求会应用到所有原子操作。

如果将 counter 声明为原子对象,自增和自减 counter 都是独立于其他操作的,因此不必指定内存访问次序。换句话说,在下述语句位置: ++counter; // 隐含memory_order_seq_cst

下面语句充分且允许编译器执行更多的优化:

atomic_fetch_add_explicit( &counter, 1, memory_order_relaxed );

释放和捕获操作是在命令间建立 happens-before 关系的有效途径。换句话说,如下例所示,_explicit 函数确保一个线程完成操作 A 后才能执行操作 B:

struct Data *dp = NULL, data;
atomic_intptr_t aptr = ATOMIC_VAR_INIT(0);
// 线程1
   data = ...;                                          // 操作A
   atomic_store_explicit( &aptr, (intptr_t)&data,
                          memory_order_release );
// 线程2
   dp = (struct Data*)atomic_load_explicit( &aptr,
                                            memory_order_acquire );
   if( dp != NULL)
      // 处理*dp所引用的数据
                                                            // 操作B
   else
      // *dp所引用的数据还不可获得

对于一个使用互斥同步的程序,当互斥锁定时,隐含了一个捕获操作,当互斥解锁时,隐含了一个释放操作。这意味着:如果一个线程 T1 使用互斥来保护一个操作 A,而另一个线程 T2 使用相同的互斥来保护一个操作 B,假如 T1 先锁定互斥,那么操作 A 将先完成执行,然后才执行操作 B。相反,假如 T2 先锁定互斥,那么当 T1 执行操作 A 时,通过操作 B 所执行的所有修改,对于线程 T1 是可见的。

2. 内存屏障

对于一个原子操作的内存次序请求,也可以通过一个原子操作单独指定。这种技术被称为建立一个栅栏(fence)或内存屏障(memory barrier)。要设置一个栅栏,C11 提供了以下函数: void atomic_thread_fence(memory_order order);

若参数值为 memory_order_release,函数 atomic_thread_fence()建立一个释放栅栏(releas fence)。在这种情况下,原子写操作必须在释放栅栏之后发生。

若参数值为 memory_order_acquire 或 memory_order_consume,函数 atomic_thread_fence()建立一个捕获栅栏(acquire fence)。在这种情况下,原子读操作必须在捕获栅栏之前发生。

栅栏允许更大程度的内存顺序优化。 纯文本复制 // 线程2

dp = (struct Data*)atomic_load_explicit( &aptr, memory_order_relaxed );
if( dp != NULL)
{
    atomic_thread_fence(memory_order_acquire);
    // 操作B:处理*dp所引用的数据
}
else
    // *dp所引用的数据还不可获得
阅读全文 »

clang环境设置

发表于 2018-01-25 | 分类于 clang

1. 平台clang编译

1.1. windows vs环境

1.1.1. 安装平台工具集

  • 以vs2019为例
  • 安装以下组件
  • 打开 vs 选择 工具 -> 获取工具和功能 -> 单个组件 搜索以下
  • 适用于v142的C++ clang-cl 生成工具
  • 适用于 windows 的C++ clang编译器
  • 工程中选择 LLVM (clang-cl)工具集

2. 内存问题的排查工具和方法– Clang的AddressSanitizer

2.1. 内存泄漏监测

AddressSanitizer是clang中的一个内存错误检测器,它可以检测到以下问题:

- Out-of-bounds accesses to heap, stack and globals
- Use-after-free
- Use-after-return (to some extent)
- Double-free, invalid free
- Memory leaks (experimental)
使用clang编译代码时用-fsanitize=address就能打开AddressSanitizer工具,为了在检测到内存错误时打印出您的程序调用栈,需要在编译时加上选项 -fno-omit-frame-pointer选项,同时为了得出更清晰的调用栈信息,请用-O1选项编译程序。

注意: gcc4.8+增加对-fsanitize=address, -fsanitize=leak的支持

2.2. 示例代码

  • core.c ```cpp #include #include

struct elem { int a; double b; char* c; };

int main() { char* p = (char*)malloc(sizeof(char) * 10); if (p == NULL) { return 0; }

struct elem* e = (struct elem*)malloc(sizeof(struct elem));
if (e == NULL) {
    free(p);
    return 0;
}

e->a = 10;
e->b = 10.10;
e->c = p;

double *xx = &e->b;

printf("%f\n", *xx);

free(e);

printf("%f\n", *xx);

return 0; } ``` 上面的代码中有两处问题,一是p未被释放,导致了内存泄漏;二是xx指向了一块被释放了的内存。

2.3. 编译测试

clang -O1 -g -fsanitize=address -fno-omit-frame-pointer -o core core.c

2.4. 检测编译时间

编译目录出出现一个xxx.json 在chrome中输入chrome://tracing/ 把xxx.json扔进去 即可看到火焰图

if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
	set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -ftime-trace")
	set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ftime-trace")

	set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -ftime-report")
	set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ftime-report")	
endif()
g++ -ftime-report -o main main.cpp
阅读全文 »

心理学暗示原理

发表于 2018-01-05 | 分类于 psychology

1. 心理学小测试

1.1. 题目1

- 2+2=?
- 4+4=?
- 8+8=?
- 16+16=?
- 32+32=?
- 64+64=?
- 128+128=?
- 256+256=?
- 
- 5-12迅速选一个数字写在纸上

1.2. 题目2

- 8+329=?
- 27+7=?
- 
- 说出一个面部器官的名字?
- 说出一个家禽的名字?

1.3. 题目3

- 1+5=?
- 2+4=?
- 3+3=?
- 4+2=?
- 5+1=?
- 
- 心里默念6 15秒
- 快速说出一个水果的名字

1.4. 题目4

- 将下列动物排序
- 牛-老虎-绵羊-马-猪































1.5. 题目1 平衡对称

- 2+2=?
- 4+4=?
- 8+8=?
- 16+16=?
- 32+32=?
- 64+64=?
- 128+128=?
- 256+256=?
- 
- 5-12迅速选一个数字写在纸上[7]
- 原理: 平衡 5-9 中间
- 答案: 7. 选5 惰性. 选6 防御性. 选8 积极性. 选9 攻击性. 选10+代表掩饰.

1.6. 题目2 象形

- 8+329=?
- 27+7=?
- 
- 说出一个面部器官的名字
- 答案: 鼻子
- 说出一个家禽的名字
- 答案: 鸡

1.7. 题目3 阴阳填充+象形

- 1+5=?
- 2+4=?
- 3+3=?
- 4+2=?
- 5+1=?
- 
- 心里默念6 15秒
- 快速说出一个水果的名字 
- 
- 原理: 6象形 苹果
- 答案: 苹果,葡萄

1.8. 题目4 地支取象

- 将下列动物排序
- 牛-老虎-绵羊-马-猪
- 
- 牛 代表事业
- 老虎 代表自信
- 绵羊 代表爱情
- 马 代表家庭
- 猪 代表金钱

2. 净化情绪小方法

这些原则是对全然心理学的疗愈过程得到深刻理解之有效的方法。许多人正准备以系统化的方式开始自我转化,而每天对焦在这些原则上,将会为你带来许多益处。

1.一定有更好的方法:每当有问题或冲突时,一定有更好的方法。即使是在最困难的处境,总是会有一个解决的方式可让每一个人都赢。爱、结合、原谅、沟通、合作及选择,都能带领我们穿越困难。

2.生活中所遇到的人与事都是我们的镜子:别人对我们所做的任何一件事,除非我们已对自己在某个层面先做了一些事,没有人可对我们做任何的事。我们造成了自己的实相,也撰写出我们的真相。与别人的冲突反应出我们自己内在的冲突,经由解决内在的课题,我们生活中的问题会自动解决。

3.每件事的发生皆在为我们的使命服务:在痛苦的事件发生时,我们通常会隐藏事件所内含的使命之觉察。透过全然地负起责任,释放责备及让我们一直遇到麻烦及自我挫败模式的内疚感,就会让我们不受损伤。透过了悟曾做过的错误的选择,我们可使自己在当下做出另一个抉择。如果我愿意戒除藏身于每一个问题之后的指责及内疚,藉由负起责任,就可以给予自己去改变在生活中行事为人的方法。

4.选择的力量:生活中所出现的方向,是我们持续选择的结果。改变信念,就可改变我们的观点和模式。我们对于自己的感受及经验是有责任的,然而我们可以重新选择。

5.为了疗愈及成长,对于最该学会的课题,我们总是有最完美的安排:生活中所有事情的呈现,总是在尽最高的可能,提供给我们最需要的疗愈及学习。所有的事件都是有连结的,没有任何事是巧合。如果我们具有一种眼光或是一种心态,就能认出我们看到的究竟是什么,然后我们就能看出大宇宙反映出了小事的细微之处。对于最该学会的课题,我们总有最完美的安排。我们一旦将最最痛苦的经验疗愈好,并慈悲的把它放下,就会产生智慧,并有力量去帮助在同样的情境中被困住的人。

6.关系是创造转化的工具:我们在关系里所付出的,能够在人世间造就地狱或天堂。我们对他人有多少付出,别人就对我们有多少给予。和他人联系并疗愈所有的关系,是一条加速成长的途径。治疗自己与别人的距离,不单会有力量去治疗我们的问题,也会治疗我们身边的人的问题。

7.要成功就要提供利益给每一个人:当我们认出自己的最高利益与他人的最高利益是相同的一件事时,我们就是在向前迈进。如果有任何人是所谓的「坏人」,大家最后都会输。为了要让每一个人都赢,保持沟通是非常必要的。没有亲密及平等,就无丰富可言,代之而有的是因竞争所产生的冲突。

8.领袖力是让没有任何事比响应近人的呼求帮助更重要:所有来自于自我意识、羞愧及自我攻击的问题,都是让我们远离响应近人的呼求帮助。响应近人的呼求帮助,会让这些自我攻击的人格迅速破除,并造成所有相关的人之间的一种流动。一切问题或至少是问题的某种层次,都可藉由问自己「谁需要协助」,并且响应这些呼求而得到疗愈。帮助别人不只是在帮助自己,它也在我们有需要被帮助时,能够打开我们的心去呼求帮助。

9.现有的困难是过往痛苦的伪装:痛苦指出了曾经有过的错误,因为一切的痛苦来自误解。当问题得到解决,对于过去及现在的了悟会同时出现,我们的历史及未来都会变得更好。拥有快乐的童年永远不嫌迟。

10.活出使命是自我实现的钥匙:生活的使命就是要幸福。我们不快乐的时候,疗愈能帮忙这个世界,并能做出在灵魂使命中我们承诺要给出的贡献,拥抱天命是我们对这个世界最棒的礼物。

11.爱能洗净痛苦与磨难:在两个或更多的人结合时,就会发生。借着超越个人的阻碍,我们能与他人二而为一,并经历到更高层次的意识,而痛苦就不再存在于其中。

12.关系是生活中最主要的障碍:为此,以下也是真的,关系的途径是爱与结合的途径,是最快速的进化之途径。在某种层面上而言,每一个问题都是关系的问题,而评断及隔阂是原由。所以,没有任何一个问题能不被关系中的爱、连接、宽恕而疗愈。

13.我们正走在一条进化的道路,去了悟我们是走向合一的心灵:迎接恩典及奇迹是达到目标最轻易的方法。只要去迎接它,上苍会提供我们祝福,并在每一步帮助我们。

14.疗愈奉献给我们每一件事:无论是什么处境或问题,答案就在我们看事情的方法。我们之所以来到这世界,就是为了要得到疗愈及宽恕,而疗愈及宽恕会带给人们幸福,并带领我们回归心灵的家。

15.我们的天赋就是问题的解答:每一个问题都隐藏了一份天赋。不论问题有多大,其中一个轻易转化问题的方法就是,去了悟这个问题之后所隐藏的礼物是什么。每份天赋都是减低自我及向恩典开放的功课。

16.心灵具有改变生活的力量:每一次放弃怨恨及攻击的念头,生活就会改变,问题也被转化。心灵中有一切问题的解答。当心灵或是天赋失落了,是可以被找回来的。找回来的时候,首先会引领我们走向完整,接着会带领我们走向神圣。心灵是上苍之心的延伸,而我们也都在上苍的心之内。

17.我们都有两个心灵:我们都有「高层心灵」,她与老天、精神面及神连接,我们也有「自我」这个心灵。自我的原则就是要有特殊性、惧怕、内疚、评断、竞争、受害及权威冲突。每一个问题都是某部分自我的日常计划,自我喂养自己,也使自己渐渐强大。

阅读全文 »

哲学名言

发表于 2017-09-25 | 分类于 philosophy
  • 前言

    一个人到了自我反思的时候,他将步入一个伟大的起点

1. 苏格拉底

1. 无知即罪恶。

2. 如果把世上每一个人的痛苦放在一起,再让你去选择,你可能还是愿意选择自己原来的那一份。

3. 人可以犯错,但是不可犯同一个错。

4. 谦逊是藏于土中甜美的根,所有崇高的美德由此发芽滋长。

5. 真正高明的人,就是能够借助别人的智慧,来使自己不受蒙蔽的人。

6. 不懂得工作真义的人,视工作为苦役。

7. 我们的需要越是少,我们越近似神。

8. 我与世界相遇,我自与世界相蚀,我自不辱使命,使我与众生相聚。

9. 神灵为自己保留了那对于最为重要的东西的认识。

10. 我不是给人知识,而是使知识自己产生的产婆。

11. 每个人身上都有太阳,主要是如何让它发光。

12. 知足是天赋的财富,奢侈是人为的贫穷。

13. 想起来,我还欠某人一只雄鸡未还。

14. 我到处走动,没有做别的,只是要求你们,不分老少,不要只顾你们的肉体,而要保护你们的灵魂。

15. 这个世界上有两种人,一种是快乐的猪,一种是痛苦的人。做痛苦的人,不做快乐的猪。

16. 最有效的教育方法不是告诉人们答案,而是向他们提问。

17. 告诉我你的朋友,我就知道你是什么样的人。

18. 美是难的。

19. 我的母亲是个助产婆,我要追随她的脚步,我是个精神上的助产士,帮助别人产生他们自己的思想。

20. 知道的越多,才知知道的越少。

21. 德性就是知识或:美德即知识,愚昧是罪恶之源。

22. 世界上最快乐的事,就是为真理而奋斗。

23. 世界上最快乐的事,莫过于为理想而奋斗。

24. 暗恋是世界上最美丽的爱情。

25. 好习惯是一个人在社交场中所能穿着的最佳服饰。

26. 没有人因为知道了善而不向善的。

27. 我非常清楚地知道,我并没有智慧,不论大的还是小的都没有。

28. 知足是天然的财富,奢侈是人为的贫穷。

29. 在多人之前,吾舌尤健。

30. 最优秀的人就是你自己。

31. 我平生只知道一件事,我为什么是那么无知。

32. 我像一只猎犬一样追寻真理的足迹。

33. 逆境是人类获得知识的最高学府,难题是人们取得智慧之门。

34. 教育是把我们的内心勾引出来的工具和方法。

35. 如果我们把每个人的不幸堆成一堆由大家均分,大多数人都会甘愿接受一份,欣然离去。

36. 我比别人知道得多,但是我知道自己的无知。

37. 一个人能否有成就,只看他是否具备自尊心与自信心两个条件。

38. 当许多人在一条路上徘徊不前时,他们不得不让开一条大路,让那珍惜时间的人赶到他们的前面去。

39. 许多赛跑的失败,都是失败在最后的几步。路“应跑的路”已经不容易,“跑到尽头”当然更困难。

40. 逆境是磨练人的最高学府。

41. 别人为食而生存,我为生存而食。

42. 假使把所有的人的灾难都堆积到一起,然后重新分配,那么我相信大部分的人一定都会很满意地取走他自己原有的一份。

43. 在死亡的门前,我们要思量的不是生命的空虚,而是它的重要性。

44. 你是为了吃饭而生存,还是为了生存而吃饭呢?

45. 我和世界相遇,与众生相聚。

46. 智慧意味着自知无知。

47. 在这个世界上,除了阳光. 空气. 水和笑容,我们还需要什么呢!

48. 在你发怒的时候,要紧闭你的嘴,免得增加你的怒气。

49. 任何确实的实验都说明,任何一种生理或心理的疾病都能靠吃素和喝纯水而减轻病情。

50. 自愿的人在忍受苦楚的时候,受到美好希望的鼓舞,就如打猎的人能欢欣愉快地忍受劳累,因为他有猎获野兽的希望。

51. 最热烈的爱情会有最冷漠的结局。

52. 想左右天下的人,须先能左右自己。

53. 教育不是灌输,而是点燃火焰。

54. 问题是接生婆,它能帮助新思想的诞生。

55. 命运是机会的影子。

56. 许多赛跑的失败,都是失败在最后的几步。跑“应跑的路”已经不容易,“跑到尽头”当然更困难。

57. 我不只是雅典的公民,我也是世界的公民。

58. 男人靠健忘活着,女人靠牢记活着。

59. 不要靠馈赠来获得一个朋友。

60. 你以为美与善是截然不同的两回事吗?你不知道凡是从某个观点看来是美的东西,从这同一以观点看来也就是善的吗?

61. 认识自己,方能认识人生。

62. 我知道自己的无知,我知我无知。

63. 未经审视的生活是毫无价值的。

64. 只期盼少许,才能接近最高的幸福。

65. 坏人活着是为了吃与喝,而好人却是为了活着才吃与喝。

66. 我去死,你们去活,究竟谁过得更幸福,唯有神知道。

67. 对作家来说,写得少是这样的有害,就跟医生缺乏诊病的机会一样。

68. 我只知道一件事,那就是什么都不知道。

69. 分手后我选择死去,你们可以继续活着,我们之间到底谁过的更幸福,这个答案唯有神知道。

70. 爱情犹如麦地里采麦穗,弄不好就会空手而归。

71. 我们的需要是越少,我们越近似上帝。

72. 思想应当诞生在学生的心里,教师仅仅应当像助产士那样办事。

73. 好的婚姻仅给你带来幸福,不好的婚姻则可使你成为一位哲学家。

74. 纵使富有的人以其财富自傲,但在他还不知道如何使用他的财富以前,别去夸赞他。

75. 要想向我学知识,你必须先有强烈的求知欲望,就像你有强烈的求生欲望一样。

76. 不要靠馈赠去获得朋友。你须贡献你诚挚的爱,学会怎样用正当的方法来赢得一个人的心。

77. 偷偷的暗恋是人类最美好的爱情。

78. 认识你自己。

79. 凡是原本可以做得更好的,也算是懒!

80. 最有希望的成功者,并不是才干出众的人而是那些最善于利用每一时机去发掘开拓的人。

81. 男人活着全靠健忘,女人活着全靠牢记。

82. 如果我能忍受了自己的老婆,也就能忍受任何人了!

2. 黑格尔

1. 运伟大之思者,必行伟大之迷途。
2. 背起行囊,独自旅行。
3. 做一个孤独的散步者。
4. 如果说音乐是流动的建筑,那建筑物则是凝固的音乐。
5. 悲观的头脑,乐观的意志。
6. 无知者是不自由的,因为和他对立的是一个陌生的世界。
7. 目标有价值,生活才有价值。
8. 在纯粹光明中就像在纯粹黑暗中一样,看不清什么东西。
9. 任性和偏见就是自己个人主观的意见和意向。
10. 只有那些永远躺在坑里、从不仰望高空的人,才不会掉进坑里。
11. 人是靠思想站立起来的。
12. 最大的天才尽管朝朝暮暮躺在青草地上,让微风吹来,眼望着天空,温柔的灵感也始终不光顾他。
13. 凡是存在的事物就天然具有合理性……
14. 恶是发展原动力。
15. 实体在本质上即是主体。
16. 如果你生活是一种无法抗拒的、无法改变的痛苦里,那么这种痛苦将是你的幸福!给自己一个希望和勇气,大喊没有什么大不了的!慷慨的说句“大不了就是一死”!
17. 嘿,哥们,我说,没有意义的怎么可能存在。
18. 世界历史即是世界审判,揭示了其历史观兼有神义论和人义论的双重品格。
19. 一个深刻的灵魂,即使痛苦,也是美的。
20. 太阳下面没有新事物。
21. 良心,它就是对它自己有了确信的精神。
22. 世上不是缺少美,而是缺少发现美。
23. 密涅瓦的猫头鹰在黄昏起飞。
24. 绝对的光明,如同绝对的黑暗。
25. 假如没有热情,世界上任何伟大的事业都不会成功。
26. 人死于习惯。
27. 民必须体会到宪法是自己的权利,可以落实到实处。否则,宪法就只是徒有其表,不具有任何意义和价值。
28. 一个恶徒的犯罪思想也比天堂里的奇迹更伟大,更崇高。
29. 方法不是外在的形式,而是内容的灵魂。
30. 历史常常惊人地重演。
31. 人类是地球上的匆匆来客。
32. 一个灰色的回忆,怎能抗衡当前的生动与自由。
33. 民族不是为了国家而存在的,民族是由国家创造的。
34. 熟知并非真知。
35. 上帝惊叹细节。
36. 人类从历史中所得到的教训就是:人类从来不记取历史教训。
37. 一个真正的艺术家不应当只是单一的画家,应是兴趣广泛的多面手。
38. 美是理念的感性显现。
39. 在这唯一的权力面前,没有东西能够维持一种独立的生存。
40. 象征是之间呈现于感性观念的一种现成的外在事物,对这种外在事物并不直接就它本身来看,而是就它所暗示的一种较广泛较普遍的意义来看。

3. 爱因斯坦

1. 教育就是当一个人把在学校所学全部忘光之后剩下的东西。
2. 不要努力成为一个成功者,要努力成为一个有价值的人。
3. 如果一个想法在一开始不是荒谬的,那它就是没有希望的。
4. 生活就像骑自行车,要想保持平衡就要不断运动.
5. 每个人都身怀天赋,但如果用会不会爬树的能力来评判一只鱼,它会终其一生以为自己愚蠢。
6. 一个从未犯错的人是因为他不曾尝试新鲜事物。
7. 我喜欢旅行,但不喜欢到达目的地。
8. 把你的手放在滚热的炉子上一分钟,感觉起来像一小时。坐在一个漂亮姑娘身边整整一小时,感觉起来像一分钟。这就是相对论。
9. 我从不去想未来。因为它来得已经够快的了。
10. 有两种东西是无限的,宇宙和人类的愚蠢。
11. 世间最美好的东西,莫过于有几个头脑和心地都很正直的朋友。
12. 想像力比知识更重要。因为知识是有限的,而想像力是无限,它包含了一切,推动着进步,是人类进化的源泉。
13. 逻辑会把你从A带到B,想象力能带你去任何地方。
14. 如果你不能简单说清楚,就是你没完全明白。 
15. 真正有价值的是直觉。在探索的道路上智力无甚用处。
16. 提出一个问题往往比解决一个问题更重要
17. 创新的秘密在于知道如何把你的智谋藏而不露。
18. 莫扎特从不为永恒作曲,但是正因为这个理由,所以他的许多作品均是永恒的。
19. 我从来不记忆和思考那些词典、手册里的东西,我的脑袋只用来记忆和思考那些还没有载入书本的东西。
20. 时间存在的意义就是任何事都不可能立刻实现

4. 曾国藩

第一戒:久利之事勿为,众争之地勿往

第二戒:勿以小恶弃人大美,勿以小怨忘人大恩

第三戒:说人之短乃护己之短,夸己之长乃忌人之长

第四戒:利可共而不可独,谋可寡而不可众

第五戒:古今之庸人,皆以一惰字致败,天下古今之才人,皆以一傲字致败

第六戒:凡办大事,以识为主,以才为辅;凡成大事,人谋居半,天意居半

5. 随笔

1. 一个人炫耀什么,说明内心缺少什么。

2. 一个人越在意的地方,就是最令他自卑的地方。

3. 人都有以第一印象定好坏的习惯,以为一个人好时,就会爱屋及乌,以为一个人不好时,就会全盘否认

4. 人越是自得的事情,越爱隐躲,越是痛苦的事情越爱小题大作。

5. 这个世界既不是有钱人的世界,也不是有权人的世界,它是有心人的世界。

6. 婚姻的杀手有时不是外遇,而是时间。

7. 当你再也没有什么可以失去的时候,就是你开始得到的时候。

8. 学习要加,骄傲要减,机会要乘,懒惰要除。

9. 童年的无知可爱,少年的无知可笑;青年的无知可怜;中年的无知可叹,老年的无知可悲。

10. 人答应一个陌生人的发迹,却不能容忍一个身边人的提升。由于同一层次的人之间存在着对比. 利益的

冲突是关于人性的总结,而与陌生人不存在这方面的题目。

11. 一个女人喜欢一个男人时,她希望听到谎言;当一个女人厌恶一个男人时,她希望听到真理。

12. 假如你借太多的钱给一个人,你会令此人变成坏人。

13. 现代的婚姻是情感的产物,更是竞争的结晶。

14. 敌人变成战友多半是为了生存,战友变成敌人多半是为了金钱。

15. 有所得是低级快乐,有所求是高级快乐。

16. 天才失败了就是蠢才!

17. 世界上1%的人是吃小亏而占大便宜,而99%的人是占小便宜吃大亏。大多数成功人士都源于那1%。

18. 人假如靠吃饭活着,那饭不叫饭,叫饲料。

19. 中国人学美国人轻易,中国人学中国人难。

20. 一个人幸运的条件,实在是他有能力改变自己。

21. 人的成长要接受四个方面的教育:父母. 老师. 书籍,社会。有趣的是工作总结经典语句,后者似乎总是与前面三种背道而驰。

22. 经营自己的优点,能使你人生增值;经营你的短处,能使你人生贬值。

23. 生命如同一片绿叶,随着时间的流逝,慢慢变的枯黄,但他的叶脉还是那么清楚可见。

24. 把事情变复杂很简单,把事情变简单很复杂。

25. 假如是棵小草,即使在最好的企业里,你也长不成大树。果真如此,不如历经风雨,把自己培养成名贵花卉。

26. 二十一世纪工作生存法则就是:建立个人品牌,把你的名字变成钱。

27. 怕爹是孝敬,怕老婆是爱情。

28. 没有分歧格的学生,只有分歧格的家长。

29. 地球是运动的,一个人不会永远处在倒霉的位置。

30. 我们可以躲开大家,却躲不开一只苍蝇。生活中使我们不快乐的常是一些芝麻小事。

31. 有一种人只做两件事:你成功了,他妒嫉你;你失败了,他笑话你。
阅读全文 »

记忆法

发表于 2017-09-25 | 分类于 memory
  • 前言

记忆法是我最先接触的”玄学”, 当初是为了解决记忆力下降的问题. 确实是有效的.

但是副作用也很明显. 就个人而言. 记忆力的强化 会削弱本身 对规律的洞察的能力. 猜想 原因可能是 既然可以记住 为什么要理解他的规律.

其提升速度的快慢 取决于对基础编码表的熟悉程度

A. 连续两次 把饭店的醋当茶喝

B. 走神比较严重 产生需要转换的问题 看到一个数字 立马浮现出来的不是数字 而是具体的图像. 会降低对数字的敏感度.

1. 故事联想

(1) 正确无序记住
(2) 准确无序记住

2. 定位联想

(1) 正确有序记住
(2) 准确有序记住

3. 编码表

1 蜡烛、衣服、铅笔、树、鱼、雨、姨、意、义、遇、幺、妖、弯、多
2 鹅、 耳朵、儿子、娘、梁、粮、俩、鸭子、爱、恶、鳄、双、对
3 耳朵、 伞、山、丧、散、上、生、屁股、酸菜、蒜
4 帆船、 寺庙、士、死、事、私、施、屎、市、诗、师、小汽车
5 秤钩、 虎、呜、巫、母、武、舞、伍、手、五角星、壶
6 勺子 刘德华、陆、鹿、驴、牛、留、柳、路、妞、纽、扭、豆芽
7  镰刀、妻、旗、气、齐天大圣、锄头、拐杖、起、鸡、漆、梯
8  眼镜、发、罚、法、葫芦、麻花、链、坝、花、把
9 哨子、 啤酒、久、舅、旧、救、揪、狗、猫、韭菜
10 棒球 石头、石林、衣领、窑洞、妖洞、摇动、移动、要领
11 筷子、走路、平行线、铁路、双杠、姨姨、雨衣、寓意、意义
12  挂历、椅儿、婴儿、幺儿、鱼儿、鱼粮、姨娘、一双、一对、一两
13 医生、 衣裳、石山、失散、一生、衣伞
14  钥匙、要死、多发、意思、遗失、轶事、意识、一世、玉石
15  鹦鹉、义务、义乌、一壶、衣服、衣物、遗物、药物、玉壶
16  石榴、石牛、石妞、一路、一溜、衣禄、一楼
17  仪器、妖气、义务、遗弃、一起、玉器、一汽、石鸡、石刀
18 哑巴、一把、泥巴、药吧、要发、石坝
19 衣钩、要求、幺舅、石狗、石猫、依旧
20 香烟、耳铃、爱你、耳洞
21 鳄鱼、 二姨妈、阿姨、恶医、恶意
22   双胞、额娘、二两、双双、对对、鸳鸯、娘娘、兔儿、土鸭、涂鸦
23  和尚、峨山、梁山、儿散、凉扇、鸭屁、爱上、耳环
24  闹钟、、耳屎、爱死、饿死、屙屎、粮食
25   二胡、恶虎、鸭蛋、鹅屋、儿屋、土屋
26   河流、二流子、恶妞、二妞、二楼
27   耳机、爱妻、恶妻、二鸡、两栖
28   恶霸、二爸、二巴、土坝、土瓜、两发、凉瓜
29  饿囚、土狗、按钮、瘦子、饿久
30   三轮车、山洞、山岭、山林、森林、山石
31   鲨鱼、鳝鱼、上衣、三姨、山妖、山药、山腰、狐狸
32   扇儿、山鸭、山崖,山丫、生涯
33            星星、水波、马桶、酸酸、
34  三丝、生死、绳子、酸死、三思、丧事、上司
35  山虎、 散布、散步、山谷、珊瑚,上午
36 山鹿  山路、三楼、山牛、山妞、迷路、上路、上楼
37 山鸡、  三七花、丧气、生机、生气、神机、升旗
38   妇女节、傻瓜、伞把、散发、伤疤、山霸王
39 山丘 散酒、三舅、三九感冒灵、喂药、三角形、酸角
40  司令、失灵、尿桶、私通
41 司仪、 死鱼、四楼、示意、事宜
42 柿儿 死鹅、死鸭、示爱、死俩、死儿
43 石山  四川、丝衫、师生、瓷砖、慈善
44  蛇、香蕉、逝世、试试、事事
45  师父、师母、石虎、事物、食物、清明节
46 饲料、 思路、死路、4楼、死牛、私六
47  司机、死机、死去、市区
48 石板、丝瓜、 司法、柿花、孤儿、死爸、市花
49 湿狗、 四舅、死狗、市酒、世界
50  武林、武陵、舞林、虎胆、孤单
51  工人  武艺   舞衣  五姨
52 鼓儿 我儿子、我爱、武松、吾儿、五粮液、妩媚娘
53 乌纱帽 巫山、云南、午餐、舞扇、虎山
54  武士、青年节、舞狮、无事、虎屎、虎视、故事
55  火车、马克思、勾勾、呜呜、污物、虎屋
56 葫芦 无路、5楼、瞎子、乌牛、蜗牛、无聊
57  武器、机关枪、无妻、光棍、乌鸡、无机、张无忌
58 尾巴 苦瓜、无法、和尚(无发)、我爸、虎爸
59  蜈蚣武警、无救、棺材、乌狗、污垢
60 榴莲 柳林、漏洞、绿林、牛洞、纽洞、扭动
61  儿童、牛医、牛衣、镂衣、路易、牛妖、扭腰
62   牛儿、牛耳、扭耳、鹿儿、陆良、牛粮
63  流沙(沙僧) 庐山、流散、硫酸、牛头山、绿伞
64 螺丝 牛屎、律师、烈士、流失、鹿死、劣势
65 尿壶、牛屋、露骨、妞屋、落伍、螺母
66 蝌蚪 大顺、溜溜球、妞妞、禄禄、六路车
67  油漆 楼梯、漏气、牛气(冲天)、怒气
68 喇叭 路霸、牛爸、
69 八卦 牛角、溜狗、溜猫、绿球
70  冰淇淋、麒麟、机灵、激灵、鸡蛋
71 鸡翼机翼  建党节、起义、歧义、机要、鸡药
72  企鹅、妻儿、凄凉、鸡粮、乞儿
73 花旗参 凄惨、旗杆、气浪、鸡肝、沮丧
74  骑士、气死、鸡屎、气势、歧视、启事
75 西服、媳妇、去污、几乎
76  汽油、气流、急流、激流、骑鹿、鸡肉
77  机器人(叮当猫) 牛朗、织女、鹊桥、芦沟桥、凄凄惨惨、七喜
78 青蛙 西瓜、去吧、鸡爸、妻发、西华公园
79 气球、 汽酒、鸡狗、乞求、骑狗
80  巴黎铁塔、百灵鸟、伤疤灵、发动、不动
81 白蚁、 建军节、白衣、白玉、护士、花衣、军队
82靶儿
83芭蕉扇 巴山
84巴士
85宝物
86八路
87白旗  白棋
88爸爸
89芭蕉
90酒瓶
91球衣
92球儿
93旧伞
94酒寺 首饰
95酒壶
96旧炉
97旧旗
98酒吧
99舅舅
00望远镜
阅读全文 »

催眠术

发表于 2017-09-25 | 分类于 hypnotism
  • 前言

有段时间有失眠的现象, 就去研究了一下. 研究表明是有效的.

好像对别人容易操作 对自己操作反而没那么方便.

催眠术 与NLP非常相似 都是通过某种手法(暗示) 操作人的潜意识

案例:

A: 回老家 给某人测试过一次. 他那天说 今天估计要失眠了. 就测试引导了一下. 结果十秒不到就睡着了. 然后打呼噜. 害我失眠了.

B: 网上帮某人网络测试. 测试完好像说没事 也不知道有没有后遗症. 用的方法 是一种截断 人的联想思路的方法. 简单来说就是人思考事物 是通过联想的方式 通过A想到B B想到C. 这种方法就是摘除B. 在中国古代有种叫忘名术 应该就是这个原理. 老外也做过一种让你忘记银行卡密码的测试.

Mobile Preview

阅读全文 »

哲学故事

发表于 2017-04-09 | 分类于 philosophy

1. 王阳明

1.1. “光不仅在烛上”

故事背景:

一个叫徐樾的弟子在岸边如信徒朝圣一样虔敬的希望和王阳明见面,王阳明答应了。徐樾还处于王阳明心学的初级阶段——静坐,他确信在静坐中理解了王阳明心学,得到了真谛。王阳明就让他举例子说明,徐樾就兴奋的举起例子来,他举一个,王阳明否定一个,举了十几个,已无例可举,相当沮丧。王阳明指点他道:你太执着于事物。徐樾不理解。王阳明就指着船里的蜡烛的光说:“这是光。”在空中画了个圈说,“这也是光。”又指向船外被烛光照耀的湖面说,”这也是光”,再指向目力所及处,“这还是光。“徐樾先是茫然,但很快就兴奋起来,说:“老师我懂了。”王阳明说:“不要执着,光不仅在烛上,记住这点。”徐樾拜谢而去。

1.2. “你未看此花时,此花与汝心同归于寂,你来看此花时,则此花颜色一时明白起来。”

故事背景:

有一年春天,王阳明和他的朋友到山间游玩。朋友指着岩石间一朵花对王阳明说,你经常说,心外无理,心外无物。天下一切物都在你心中,受你心的控制,你看这朵花,在山间自开自落,你的心能控制它吗?难道你的心让它开,它才开的;你的心让它落,它才落的?

王阳明的回答很有味道:“你未看此花时,此花与汝心同归于寂;便知此花不在你的心外。”

1.3. “这和尚终日口巴巴说甚么!终日眼睁睁看甚么!”

故事背景:

他在一座寺庙中看到一个枯坐的和尚。据知情人透露,这个和尚已不视不言静坐三年。

王阳明笑了笑,就绕着和尚走了几圈,像是道士捉鬼前的作法。最后他在和尚面前站定,看准了和尚,冷不防的大喝一声:“这和尚终日口巴巴说甚么!终日眼睁睁看甚么!”这句话就是传说中禅宗和尚的禅机。所谓禅机,就是用含有机要秘诀的言辞、动作或事物来暗示教义,让接收方触机领悟。

不知是王阳明的禅机触动了和尚,还是王阳明的大嗓门惊动了和尚,总之,和尚惊慌的睁开眼,“啊呀”一声。

王阳明盯紧他,问:“家里还有何人?”

和尚回答:“还有老母。”

“想念她吗?”

和尚不语。一片寂静,静的能听到和尚头上的汗水流淌的声音。最后,和尚打破了这一死寂,用一种愧疚的语气回答:“怎能不想念啊。”

1.4. “我以落第动心为耻”

故事背景:

1496年,他在会试中再度名落孙山。有人在发榜现场未见到自己的名字而嚎啕大哭,王阳明却无动于衷。大家以为他是伤心过度,无法动用悲伤的表情了,于是都来安慰他。

他的脸上略过一丝沧桑的笑。他说:“你们都以落第为耻,我却以落第动心为耻。”

1.5. “第一等事应是读书做圣贤。”

故事背景:

1483年,王阳明在北京的私塾读书。有一天,他一本正经的问老师:“何谓第一等事?”这话的意思其实就是问,人生的终极价值到底是什么?

他的老师吃了一惊,从来没有学生问过他这样的问题,他看了看王阳明,笑笑,又思考了一会,才做出他自认最完美的回答:“当然是读书做大官啊。”

王阳明显然对这个答案不满意,他看着老师说:“我认为不是这样。”

老师不自然地“哦”了一声:“怎么?你还有不同的看法?”王阳明夸张地点头,说:“我以为第一等事应是读书做圣贤。”

1.6. “此心光明,亦复何言”

故事背景:

1528年阴历十一月二十八日夜,王阳明从一个美的出奇的梦中醒来,他问弟子:“到哪里了?”

弟子回答:“青龙铺(今大余县青龙镇赤江村)。”

王阳明又问:“船好像停了?”

弟子回答:“在章江河畔。”

王阳明笑了一下:“到南康还有多远?”

弟子回答:还有一大段距离。

王阳明又是一笑,恐怕来不及了。

他让人帮他更换了衣冠,倚着一个侍从坐正了,就那样坐了一夜。第二天凌晨,他叫人把周积叫进来。周积匆忙的跑了进来,王阳明已倒了下去,很久才睁开眼,看向周积,说:“我走了。”

周积无声的下泪,问:“老师有何遗言?”船里静的只有王阳明咝咝的呼吸声。

王阳明用他在人生中最后的一点力气向周积展现了一个微笑,说:“此心光明,亦复何言?”

1.7. 胜负之决只在此心动与不动

故事背景:

有弟子问王阳明,用兵是不是有特定的技巧(用兵有术否)?王阳明回答:哪里有什么技巧,只是努力做学问,养的此心不动,如果你非要说有技巧,那此心不动就是唯一的技巧。大家的智慧都相差无几,胜负之决只在此心动与不动。

王阳明举个例子说,当时和朱宸濠对战时,我们处于劣势,我向身边的人发布准备火攻的命令,那人无动于衷,我说了四次,他才从茫然中回过神来。这种人就是平时学问不到位,一临事,就慌乱失措。那些急中生智的人的智慧可不是天外飞来的,而是平时学问纯笃的功劳。

1.8. “你看满大街都是圣人,满大街的人看你也是圣人”

故事背景:

有一天,那个个性极强的王艮出游归来,王阳明问他:“都见到了什么?”

王艮以一副异常惊讶的声调说:“我看到满街都是圣人。”

我们应该注意,王艮这句话别有深意。王艮来拜王阳明为师前就是狂傲不羁的人,拜王阳明为师后,也未改变“傲”的气质,王阳明多次说:“人人都可以成为圣人。”王艮不相信。他始终认为圣人是遥不可及的,所以他说的“我看满街都是圣人”这句话,是在讥笑王阳明的言论:“你瞧,那些在大街上的凡夫俗子都是圣人,我怎么就不相信,天下会有这样多圣人啊。” 王阳明大概是猜透了王艮的心意,于是就借力打力:“你看到满大街都是圣人,满大街的人看你也是圣人。”

王艮尴尬的一笑:都是圣人。

王阳明点头说:对!人人都是圣人,谁也不比任何人差。

1.9. 他一疑,事就成了

故事背景:

王阳明的这个计谋用两个字就可以概括:造假。他伪造了各种迎接正规军南昌的公文,在这些公文中最耀眼的就是正规军的人数,粗算一下,大概有十万人。公文中还声称,约定在本年六月二十日合围南昌城,二十一日发动拂晓总攻。在另外的公文中,王阳明“回复”说,不要太急躁,为了避免重大伤亡,攻城是下策,应该等朱宸濠出城后打歼灭战。

他还伪造了答复李士实和刘养正投诚的书信,在信中,他对两人弃暗投明的态度表示深深的欣赏,并且答应两人,在平定朱宸濠后会给两人升官发财的机会。他再伪造朱宸濠手下指挥官们的投降密状,让人去和平时与朱宸濠结交的人相谈,在会谈结束后故意把这些公文遗落。自然,这些伪造的公文统统都到了朱宸濠手里。

有地方官员对王阳明这些造假计谋不以为然,他们问王阳明:“这有用吗?”

王阳明不答反问:“先不说是否有用,只说朱宸濠疑不疑。”

有官员不假思索的回答:“肯定会疑。”

王阳明笑道:“他一疑,事就成了。”

1.10. “你死都不怕,还在乎一条内裤么?”

故事背景:

关于“盗贼也有良知”这个论点,王阳明并非信口开河,而是有事实依据。据说他在庐陵担任县令时,抓到了一个罪恶滔天的大盗。这个大盗冥顽不灵,面对各种讯问强烈顽抗。

王阳明亲自审问他,他一副死猪不怕开水烫的架势说:“要杀要剐随便,就别废话了!”

王阳明于是说:“那好,今天就不审了。不过,天气太热,你还是把外衣脱了,我们随便聊聊。”

大盗说:“脱就脱!”

过了一会,王阳明又说:“天气实在是热,不如把内衣也脱了吧!”

大盗仍然是不以为然的样子:“光着膀子也是经常的事,没什么大不了的。”

又过了一会,王阳明又说:“膀子都光了,不如把内裤也脱了,一丝不挂岂不更自在?”

大盗这回一点都不“豪爽”了,慌忙摆手说:“不方便,不方便!”

王阳明说:“有何不方便?你死都不怕,还在乎一条内裤吗?看来你还是有廉耻之心的,是有良知的,你并非一无是处呀!”

1.11. 某人评论

很早就听人说王阳明有多牛,更有人把他誉为古往今来两个半“完人”之一,但是我始终没有动力去了解他,因为我担心又是一个成功学故事,听起来很好,然并卵。直到2016年下半年VR行业遭遇资本寒冬,魔镜做了拆分和裁员,媒体大幅唱衰VR时,也是我这次创业最痛苦的时候,我看了两本关于王阳明的书。一本是许葆云写的《王阳明》长篇小说,故事很精彩,剧情跌宕起伏,让人欲罢不能。合上书,我在想如果是我出生在一个极度黑暗的时代,皇帝昏庸,宦官当道,但我的志向却是齐家治国平天下,那人生可能除了绝望就什么都不会有了。而王阳明却在经历人生最痛苦的时刻,在龙场悟道,悟得了“致良知”。这让我想起了佛陀在菩提树下的顿悟,人可能必须经历极度痛苦的折磨,四处找不到出路,第六感才会被打开,才会思考人生的终极问题,看破自己本能追求的虚假性,最终让思想境界上升一个层次。

  另外一本书是秦家懿写的《王阳明》,主要讲王阳明的哲学。对我的启发除了“致良知”和“知行合一”之外,“多学无益”这一条对我的触动很大,彻底颠覆了我过去对学习的看法。我之前很认同朱熹的“格物致知”,就是不断的学各种知识,从各种现象里悟道理,我相信只要学的知识足够多,就可以有一天突然顿悟,彻底把所有知识打通,上升一个境界。我在2014年程苓峰私董会上分享过耗散结构对我的启发,点击左下角阅读原文查看《用耗散结构解决管理难题》。耗散结构是一个物理学定律,讲的是一个系统只要满足三个条件,就可以从无序到有序,从低层次有序到高层次有序进化,这三个条件是:开放系统,远离平衡态,内部的非线性系统。这个物理学定律对我启发很大,让我看到了自己内向的性格容易形成封闭系统,会导致熵增,最终的结果是走向热寂,也就是不再变化的固定状态。所以我从2014年以后疯狂的对外学习和交流,因为耗散结构给了我很大的信心,只要保持开放性,不让自己处于平衡态,随着接触的外部信息越多,自己就一定会不断升级。不可否认,不断向外看的确给我带来了一次很大的升级,但是从我学习投入产出比的角度看,疯狂学习的效率极低,学习了很多知识,为什么成为自己的知识却那么少呢?

  我相信耗散结构的原理本身不会有错,那问题出在哪里呢?我从王阳明这里似乎找到了答案,他认为要成为圣人,根本不需要穷经皓首,苦读四书五经,只要一条“致良知”就够了,说话做事,时时刻刻都从这个原点出发即可。多学无益这个观点让我看到了我对耗散结构的误读,我只关注了前两个条件,就是开放系统和远离平衡态,但是却忽视了“非线性系统”,就是内部是否形成了一套相互作用的系统,任何一个信息进来是否有能力去消化,变成自己的。换句话说,就是必须在内部有一个“核”,这个内核会拣选信息,知道这个信息和系统内部其它知识之间的关系,知道这个信息如何自洽的融入到内部系统里。如果没有这个内核,就会陷入盲目学习,听到的知识没有与内核发生化学反应,知识永远是知识,和自己的内在系统无法融会贯通。

  我学的那些知识,就像令狐冲体内的“八股真气”,它们各成体系,不仅不能相融,而且还会相互打架,譬如:谷歌说应该人性化管理,华为说应该军事化管理,到底应该听谁的?韩都衣舍的老板说互联网时代的营销彻底颠覆了传统营销,而OPPO的老板说互联网时代营销的本质没有变,到底应该信谁的?做硬件产品应该走性价比路线,还是应该走品牌溢价的路线?仔细一想,感觉全乱了,好像在任何点上都有两套完全相反的理论,知识学多了不仅没有解决问题,反而造成了很多选择困惑。于是我开始问自己:

  1. 自己是否有稳固的思想内核?

  2. 自己是否有坚信的理念,价值观,方法论?而且在反复实践?

  3. 自己是否能把新知识整合到内部知识体系?

  问完自己之后,浑身都是冷汗,才发现自己只是一个硬盘,记录了很多别人的知识,但是自己并没有整合到一个体系内,而今天知识是最不值钱的,因为百度一搜就有成千上万的免费知识。我自己必须形成自己的内核,学会“易筋经”,把体内的“八股真气”融会贯通,才能为我所用,否则自己一定会被内耗到精疲力竭。

2. 其他

2.1 疑人偷斧

从前,有个人丢了一把斧子。他怀疑是邻居家的孩子偷的,就暗暗地注 意那个孩子。他看那个孩子走路的姿势,像是偷了斧子的样子;他观察那个孩子的神色,也象是偷了斧子的样子;他听那个孩子说话的语气,更象是偷 了斧子的样子。总之,在他的眼睛里,那个孩子的一举一动都像是偷斧子的。 不久,他在刨土坑的时候,找到了那把斧子。原来是他自己遗忘在土坑里了。从此以后,他再看邻居家那个孩子,一举一动丝毫也不象偷过斧子的样子了。 人生启示 遇到问题要调查研究再作出判断,绝对不能毫无根据地瞎猜疑。疑神疑鬼地瞎猜疑,往往会产生错觉。判断一个人也是如此,切忌以自己主观想象作为衡量别人的标准,主观意识太强,经常会造成识人的错误与偏差。 而现实生活中,大多数领导在人才的应用上,常凭着主观意识去任命一个人,而不加以客观、公正的审核。感情用事是领导的大忌。对人对事,领导都不要先入为主,带上有色眼镜看人,更不应以小人之心度君子之腹,否则,公司就会失去很多优秀人才。

阅读全文 »

vs环境设置

发表于 2017-02-25 | 分类于 vs

1. 强制卸载

vs_ultimate.exe /uninstall /force

2. vs2017+离线安装 报错:安装程序清单签名验证失败

2.1. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\fipsalgorithmpolicy把1改成0

2.2. 导入certificates目录证书

2.3. 删除 vs_installer.opc

2.4. 设置 下载缓存路径 为 离线安装文件路径

2.5. NJVYC-BMHX2-G77MM-4XJMR-6Q8QF

阅读全文 »

神经语言程序学(Neuro-Linguistic Programming)

发表于 2017-02-25 | 分类于 NLP

Mobile Preview

  • 前言

    NLP是一种心理学范畴的洗脑技术, 其原理认为人跟计算机一样, 都是可程序化定制.

1. NLP

精神=我与世界

身份=我是谁

信念与价值观=我的态度

能力=我可以选择

行为=我可以做什么

环境=活在当下

理解层次早期被称为Neuro-Logical Levels,最初由格雷戈里·贝特森发展出来,后由罗伯特·迪尔茨(Robert Dilts)整理,在1991年推出。理解层次是一套模式(Pattern),因为它可以用来解释社会上出现的很多事情。理解层次在辅导工作中让我们明白受导者的困扰所在,因而更容易帮助他找出解决问题的方法,是很实用的一套概念。而NLP中也有一套技巧被称为“理解层次贯通法”,帮助用者明白从困惑中突破的关系,并且与自己潜意识的深层力量联系,使得人生策划方面更有效果,所以也是技巧。

1.1. 精神

我与世界上其他人、事物的关系。当一个人谈及他的人生的意义或者一家公司谈及它对社会的贡献时,便涉及到“精神”的层次了。

1.2. 身份

一个人或者一家公司怎样看自己(我是谁?)。给自己定位,或者描述出自己的定位,便涉及到身份的意义了。承接上面(精神)的意思,便是“自己准备以怎样的身份去实现人生的意义”。

1.3. 信念、价值

为了配合上述的身份,我需要有一套怎样的信念和价值?每一个人活在这个世界上,必然地已经有了一个不自觉的身份,亦已经有了一套相关的信念与价值。它们决定我们做每一件事的态度,但并不常会有意识地涌现。(一般来说只有在反省整个人生或者学习NLP的时候,一个人才会想到身份和信念/价值的问题)在每天的生活里持着一套信念和价值去处理每一件事。多数出现的信念、价值层次问题是: — 为什么做(或不做) — 有些什么(重要)意义? — 应该是怎样的? — 对我有什么好处?

1.4. 能力

这个层次涉及到一个人怎样认识自己能有的选择(有没有选择,或者是“我必须这样做?”)。每一个选择都是一份能力,故此选择越多,能力越大。我们一般说的能力,表面上指的是技能:懂英文、会用电脑、用某种技巧做某事。但是细心想想,它们其实也都是更多的选择。情绪代表能力,也列入这个层次。

1.5. 行为

这个层次所指的是“做什么?”、“有没有做?”,即能力的挑选和实际发挥,也就是在环境中我的实际运作。

1.6. 环境

“环境”包括了所有身体以外,即外界的条件。世界上的种种人、事、物、时、地、金钱和设备等都属“环境”。

1.7. 层次

有人用简单的词来解释这6个层次:

精神:Who else? (还有谁?)
身份:Who am I? (我是谁?)
信念、价值:Why? (为什么?)
能力:How? (怎样做?)
行为:What? (做什么)
环境:Where and When?(何时、何地?)

由环境到能力的低三层我们每天都有意识地接触到 ,所以是由意识所主导的,由信念、价值到精神的高三层,我们日常很少刻意地去思想,所以往往忽略了,其实,我们在人生中所做的每一件事都被这三层所主宰。它们由潜意识所控制着,往往不容易说得明白,却是人生成败苦乐之决定因素。可以说,环境至能力的低层,只不过是高三层的放映或者在现实生活中的显示而已。 个人的最高(或者最深的)境界是身份,所以,一般情况下往往只用到理解层次中较低的5层。层次越低的问题,越容易解决。日常生活中的问题多是环境及行为层次的问题,当问题是在信念或身份的层次时,解决便较为困难了。一般来说,一个低层次的问题,在更高的层次里容易找到解决方法。反过来说,一个高层次的何题,用一个较低层次的解决方法,难以有效果。 一个人做任何事,如果能将6个层次都一致连贯,他便会身心一致,全力以赴地去做,既开心,又有效果。反之,事情不成功,有压力或情绪,定是6层之中有不协调的情况出现。 理解层次让我们简单地认识到问题或困扰背后的原因,因而会更快地以“治本”态度去处理它。研究NLP的人,如果只在行为或能力方面操心费神,成就不会很高。所有NLP大师都必守在信念/价值和身份,甚至精神的层次上,有过人的掌握和心得。 这也解释了为什么NLP的真义不在其技巧方面,而在改变人的心态方面。技巧只是改变行为或者增添选择,而心态则是信念、价值或者身份,甚至精神的层次。 “三赢”概念便是精神层次最简单的实现。“我好、你好、世界好”七个字,便肯定了我与世界的关系以及这方面的正面效果。 身份和信念、价值对一个人的影响如此深远,我将在下面两章里与大家作更深入的讨论。在这里,让我们集中于整个“理解层次”概念的掌握和运用。 是一连串的例子,旨在帮助你明白这6个层次在现实生活中的意思。

2. NLP的基本精神

——NLP的基本精神,NLPer思考和解决问题的出发点,也就是NLPer的人生观。

一、 没有两个人是一样的

二、 一个人不能控制另外一个人

三、有效果比有道理更重要

四、只有由感官经验塑造出来的世界,没有绝对的真实世界

五、沟通的意义在于对方的回应

六、重复旧的做法,只会得到旧的结果

七、凡事必有至少三个解决方法

八、每一个人都选择给自己最佳利益的行为

九、每人都已经具备使自己成功快乐的资源

十、 在任何一个系统里,最灵活的部分便是最能影响大局的部分

十一、没有挫败,只有回应讯息

十二、动机和情绪总不会错,只是行为没有效果而已

3. NLP基础语法


3.1. 没有两个人是一样的

3.1.1. No two persons are the same.

3.1.2. 没有两个人的人生经验会完全一样,所以没有两个人的信念.价值观和规条系统会是一样。

3.1.3. 因此没有两个人对同一件事的看法能够绝对一致。

3.1.4. 因此没有两个人对同一件事的反应会是一样。

3.1.5. 因此没有两个人的态度和行为模式会完全一样。

3.1.6. 因此发生在一个人身上的事,不能假定发生在另一个人身上也会有一样的结果。

3.1.7. 人与人之间的不同,建造了这个世界的奇妙可贵。

3.1.8. 尊重别人的不同之处,别人才会尊重自己独特的地方。

3.1.9. 每一个人的信念.价值观和规条系统都是在不断演变中,所以没有一个人在两分钟是一样的。

3.1.10. 两人的信念.价值观和规条不一样,不一定会使两个人不能沟通或者发展出良好关系。

3.1.11. 给别人空间也就是尊重别人的信念.价值观和规条,才能有良好的沟通和关系。

3.1.12. 同样地,自己与别人的看法不同,也是正常的事。

3.1.13. 当尊重别人的信念.价值观和规条的同时,我们也有权利要求别人尊重自己的信念,价值观和规条。


3.2. 一个人不能控制另外一个人

3.2.1. One person cannot change another person.

3.2.2. 一个人不能改变另外一个人,一个人只能改变自己。

3.2.3. 每个人的信念.价值观.规条系统只对本人有效,不应强求别人接受。

3.2.4. 改变自己,别人才会有可能改变。

3.2.5. 一个人不能推动另外一个人。每个人都只可以自己推动自己。

3.2.6. 找出对方的价值观,创造.增大或转移对方在乎的价值,对方便会产生推动自己的行为。

3.2.7. 一个人因此不能“教导”另外一个人。一个人只能引导另外一个人去学习。

3.2.8. 因此一个人不能希望另外一人放弃自己的一套信念.价值观和规条系统,而去接受另外的一套。

3.2.9. 好的动机只给一个人去做某一件事的原因,但是不能给他控制别人,或使事情恰如他所愿发生的权利。

3.2.10. 不强迫别人跟随自己的一套信念.价值观和规条,别人便不会抗拒。

3.2.11. 同样地,我们只能自己推动自己。


3.3. 有效果比有道理更重要

3.3.1. Usefulness is more important.

3.3.2. 光说做法有道理或者正确而不顾是否有没有效果,是在自欺欺人。

3.3.3. 在三赢(我好.人好.世界好)的原则基础上追求效果,比坚持什么是对的更有意义。

3.3.4. 说道理往往是把焦点放在过去的事情上;注效果则容易把注意力放在未来。

3.3.5. 效果是原定计划的意义基础,亦是所有行动的指标。

3.3.6. 有道理是由理性方面的标准来决定的。因为没有两个人的信念,价值观和规条是一样,所以,没有两个人的“道理”是一样的。

3.3.7. 故此,坚持道理,只不过是坚持一套不能放在另一个人身上的信念.价值观和规条。

3.3.8. 真正推动一个人的力量是在感性的一边,要有效果就要加上了理性方面的认同才回出现。故此,有效果需要一个人的理性和感性上的共鸣。

3.3.9. 没有效果的道理,是背弃了信念和价值的规条,应该加以检讨。

3.3.10. 有效和有道理往往可以并存,但必先由相信有这个可能的信念始。

3.3.11. 只追求有道理但无效果的人生,难以有成功和快乐的体验。


3.4. 只有由感官经验塑造出来的世界,没有绝对的真实世界

3.4.1. The map is not territory.

3.4.2. 每个人运用自己的感官器官把资料摄入(摄入过程),由感官运用是主观地有选择性的,因为不能,亦不需要把所有资料捕捉。

3.4.3. 摄入的资料经由我们的信念.价值观和规条过滤而决定其意义,亦因此能储存在脑中(编码过程)。我们的信念.价值观和规条是主观的形成的,故此,过滤出来的意义也是主观的。

3.4.4. 我们每一个人的世界,都是用上述的方式一点一滴地塑造出来的亦因此是主观的。

3.4.5. 我们只能用这种方式建立对这个世界的认知,没有其他方法。

3.4.6. 因此没有绝对的真实,或者相对的真实。

3.4.7. 因此每个人的世界是在他的脑里。我们是凭脑里对世界的认知去处理每一件事。

3.4.8. 因此,改变一个人脑里的世界,这个人对世界中事物的态度便会改变。

3.4.9. 因此,每个人都是用自制的地图在这个世界里生活。

3.4.10. 改变主观经验在脑里的结构模式,事情对我们的影响便会改变,我们对事情的感受亦会改变。因此,我们无须改变外面的世界(我们无法知道它是怎样变的),改变我们自己(脑里的世界),我们的人生便会有所改变。

3.4.11. 事情从来都不会给我们压力,压力是来自我们对事情的反应。

3.4.12. 情绪也从来不是来自某人得言行,或环境里出现的转变,而是来自我们对这些的态度,亦即是我们的信念.价直观和规条系统。


3.5. 沟通的意义在于对方的回应

3.5.1. The meaning of communication is the response one gets.

3.5.2. 沟通没有对与错,只有“有效果”或者“没有效果”之分。

3.5.3. 自己说得多“对”没有意义,对方收到你想表达的讯息才是沟通意义。

3.5.4. 因此自己说什么不重要,对方听到什么才是重要。

3.5.5. 话有很多方法说出来,使听者完全收到讲者意图传达的讯息,便是这正确的方法。

3.5.6. 沟通的效果,来自声调和身体语言的比文字更大。

3.5.7. 沟通讯息的送出与接受在潜意识层面的比意识层面的大得多。

3.5.8. 没有两个人对同样的讯息有完全同样的反应。

3.5.9. 说话的效果由讲者控制,但由听者决定。

3.5.10. 改变说的方法,才有机会改变听的效果。

3.5.11. 沟通成功的先决条件是和谐气氛。

3.5.12. 抗拒是对讲者不够灵活的说明。


3.6. 重复旧的做法,只会得到旧的结果

3.6.1. Repeating the same behavior will repeat the same result.

3.6.2. 做法有不同,结果才会有不同。

3.6.3. 如果 你的事没有结果,改变你的做法。任何新的做法,都比旧的多一分成功机会。

3.6.4. 想明天比昨天更好,必须用与昨天不同的做法。

3.6.5. 改变自己,别人才有可能改变。

3.6.6. 世界上本来便是每样事物都在不停地改变中,不肯改变的便面临淘汰或失败的威胁。

3.6.7. 因此只有不断的改变做法,才能保持与其他事物关系有理想状态。

3.6.8. “做法”是规条,目的是取得价值,实现信念。维持最有效果的规条,就是灵活地不断修正做法,才能保证取得价值,实现信念。

3.6.9. 改变是所有进步的起点。


3.7. 凡事必有至少三个解决方法

3.7.1. There are at least three solutions to every situation.

3.7.2. 对事情只有一个方法的人,必陷入困境,因为别无选择。

3.7.3. 对事情有两个方法的人也陷困境,因为他制造了左右两难,进退维谷的局面给自己。

3.7.4. 有第三个方法的人,通常会找到第四.五个方法,甚至更多的方法。

3.7.5. 有选择就是有能力。所以,有选择总比没有选择好。

3.7.6. 至今不成功,只是说至今用过的方法都得不到想要的效果。

3.7.7. 没有办法,只是说已知的办法都行不通。

3.7.8. 世界上尚有很多我们过去没有想过,或者尚未认识的方法。

3.7.9. 只有相信尚有未知的有效方法,才会有机会找到它和使事情改变。

3.7.10. 不论什么事情,我们总有选择的权利,而且不只是一个。

3.7.11. “没有办法”使事情划上句号,“总有办法”使事情有突破的可能。

3.7.12. “没有办法”对你没有好处,应停止想它;“总有办法”对你有好处,故应把它留在脑中。

3.7.13. 为何不使自己成为第一个找出办法的人?


3.8. 每一个人都选择给自己最佳利益的行为

3.8.1. Every one chooses the best behavior at the moment.

3.8.2. 每一个人做任何事都是为满足自己的一些深层需要。

3.8.3. 每一个恩的行为,对他的潜意识来说,都是当时环境里最符合自己利益的做法。

3.8.4. 因此,每个行为的背后,都必定有正面的动机。

3.8.5. 了解和接受其正面动机,才容易引导一个人改变他的行为。

3.8.6. 动机不会错,只是行为不能达到效果。(满足背后正面动机的效果)

3.8.7. 接受一个人的动机,他便会觉得我们接受他这个人。

3.8.8. 动机往往是在潜意识的层面,不能意识地说出来。

3.8.9. 找出行为背后的动机,最易的方法是问企图经由该行为得到的价值是什么。

3.8.10. 任何行为在某些环境中都会有其效用。

3.8.11. 因此,没有不对的行为,只有在当时环境中没有效果的行为。


3.9. 每人都已经具备使自己成功快乐的资源

3.9.1. Every one already possesses all the resources needed.

3.9.2. 每一个人都有过成功快乐的经验,也即是说有使自己成功快乐的能力。

3.9.3. 人类只用了大脑能力的极少部分,提升大脑的运用,很多新的突破便会出现。

3.9.4. 运用大脑的能力,现在已有大量的技巧发展出来,人类比以前更易把效果提升。

3.9.5. 每一个人都可以凭改变思想去改变自己的情绪和行为,因而改变自己的人生。

3.9.6. 每天里遇到的事情,都有能给我们成功快乐的因素,取舍全由个人决定。

3.9.7. 所有事情或经验里面,正面和负面的意义同时存在,把事情或经验转为绊脚石抑或踏脚石,由自己决定。

3.9.8. 成功快乐的确人所拥有的思想和行为能力,都是经过一个过程而培养出来的。在开始的时候,他们与其他人所具备的条件一样。

3.9.9. 有能力替自己制造出困扰的人,也有能力替自己消除困扰。

3.9.10. 情绪.压力.困扰都不是源自外界的人事物,而是由自己内里的信念.价值观和规条系统产生出来的。

3.9.11. 自己不信有能力或有可能,是使自己得不到渴求的成功快乐的最有效的保证。


3.10. 在任何一个系统里,最灵活的部分便是最能影响大局的部分

3.10.1. In any system, the most flexible person has the control.

3.10.2. 灵活便是有一个以上的选择;选择便是能力。因此最灵活的人便是最有能力的人。

3.10.3. 灵活来自减少信使自己的一套信念.价值观和规条,而多凭观察而运用环境所提供的其他条件。

3.10.4. 灵活是使事情更快有效果的重要因素。因此,亦是人生成功快乐的重要因素。

3.10.5. 灵活亦是自信的表现。自信越不足,坚持某个模式的态度会越强硬。

3.10.6. 容许不同的意见和可能性,便是灵活。

3.10.7. 在一个群体中,固执使人紧张,灵活使人放松。

3.10.8. 灵活不代表放弃自己的立场,而是容许找出双赢的可能性(更进一步而三赢)。

3.10.9. 在沟通中,明白不代表接受;接受不代表投降(放弃立场)。

3.10.10. “流水”是学习灵活的最好老师。

3.10.11. 灵活是用自己的步伐去作出转变;而固执则是在被迫的情况下作出转变。


3.11. 没有挫败,只有回应讯息

3.11.1. There is no failure, only feedback.

3.11.2. “挫败”只是指出过去的做法得不到期望的效果,是给我们需要改变的信号。

3.11.3. “挫败”只是在事情划上句号时才能用上,欲想事情解决,即是事情仍会继续下去,这二字便不适用。

3.11.4. “挫败”是指过去的事;“怎样改变做法”是指向未来。

3.11.5. 挫败是过去的经验;而经验是让我们提升自我的踏脚石,因为经验是能力的基础,而能力是自信的基础。

3.11.6. 每次“挫败”,都只是不过是学习过程里修正行动的其中一步。

3.11.7. 人生里所有的学习,都是经由不断地修正而达致完善。

3.11.8. 想要成功,首先要相信有成功的可能。

3.11.9. 把每次的“挫败”带来的教训掌握了,每次便都变成了学习。

3.11.10. 自信不足的人,潜意识总是在找“不用干下去”的籍口,“挫败”二字便很容易冒出来。


3.12. 动机和情绪总不会错,只是行为没有效果而已

3.12.1. Intentions and emotions are never wrong, only the behavior has not been effective.

3.12.2. 动机在潜意识里。总是正面的确。潜意识从来不会伤害自己,只是误会地以为某行为可以满足该动机,而又不知有其他做法的可能。

3.12.3. 情绪总是给我们一份推动力。情绪是使我们在该事情之中有所学习。学到了,情绪便会消失。

3.12.4. 我们可以接受一个人的动机和情绪,同时不接受他的行为。

3.12.5. 接受动机和情绪,便是接受那个人。那个人也会感觉出你对他的接受,因而更肯让你去引导他作出改变。

3.12.6. 任何一次行为不等于一个人。

3.12.7. 行为不能接受,是因为没有效果;找出更好的做法,是两人的共同目标,能使两人有更好的沟通和关系。

3.12.8. 找出更好的做法的方法之一是追查动机背后的价值观


4. 冰山隐喻

萨提亚的冰山隐喻理论主要包括七个层次,从上到下一次是行为、应对方式、感受、观点、期待、渴望和自己。

4.1. 行为—-行动、故事内容

4.2. 应对方式—–姿态

(包括讨好、指责、超理智、打岔和表里一致)

4.3. 感受

(喜悦、兴奋、着迷、愤怒、伤害、恐惧、忧伤、悲伤等等 )   感受的感受—-为什么有这种感受 (关于感受的决定)

4.4. 观点—信念,假设,主观现实,思考,想法,价值观

(信念、假设、预设立场、主观现实、认知)

4.5. 期待—对自己,对别人,来自他人的期待

(对自己的、对他人的,来自他人的)

4.6. 渴望—-爱,接纳,归属,创意,连结,自由等等

(人类共有的:被爱、被认可、被接纳、被认可、有目的的、意义、自由)

4.7. 自己:我是谁———灵性,灵魂,生命能量,精髓,核心,存在

(生命力、精神、灵性、核心、本质)


阅读全文 »

algorithm

发表于 2017-02-25 | 分类于 algorithm
  1. 算法分析与渐近符号
    • 比喻:就像评估一辆车的性能,不仅看它的最高速度,还要考虑它在不同路况下的表现。渐近符号就像是描述车辆性能的简洁方式,用于概括性地表示在各种情况下的表现。
阅读全文 »

pb

发表于 2016-09-06 | 分类于 pb

前言: 最近和同事聊起 我正在开发的基于pb的通用代码生成模板. 被问之存在的意义. 一时间无法回答. 回去反思了一下 这个想法的生成过程.

从思想的源头说起 去做这个事情 源于一句话 程序的精髓 在于数据结构的组织与控制. 我通过这句话去反推 发现了其中的一些小秘密. 类似的成果物 如llvm llvm针对编译相关, 而我希望实现的可能是业务相关代码的生成控制. 这个东西是一个描述数据结构的数据结构. 其重要性 在于 当数据结构本身可以被描述. 而对应的逻辑行为可以抽象为某种固定模式的代码. 那么该代码段 即可被自动生成. 结合这个思想跟前段时间接触到的DDD(领域设计模型), 以及pb可选数据结构对我产生的启发.

萌生了一个将这套方案应用到游戏领域. 对应的思想其实某公司已经有对应的产品. 大约做到第二级. 我希望能做到第四级左右.

会有同学问 为啥别人做到第二级. 你觉得自己可以做到第四级. 那是因为我发现了 二 -> 四 之间的问题点. 即两种思想的融合, 说的通俗一点, 即 研发技术体系 与 业务开发体系的思考模式的差异性. 说到这里应该有人能猜到解决方案是什么了.

千里之行始于足下

阅读全文 »

builderror

发表于 2016-09-06 | 分类于 builderror

1. vs使用C++17编译时出错:error C2872: ‘byte‘: ambiguous symbol

_HAS_STD_BYTE=0 来解决该问题 本质原因是 using namespace std; 产生的名字污染.

阅读全文 »

tmux

发表于 2015-10-05 | 分类于 tmux
  • tmux是指通过一个终端登录远程主机并运行后,在其中可以开启多个控制台的终端复用软件。

yum -y install tmux

##############################################################################
# session
##############################################################################

tmux                      # 创建新的 session
tmux new -S name          # 创建新的 session 并指定一个name
tmux ls                   # 查看多少个后台工作的 session
tmux a/at/attach          # 重新连接 session 
tmux a/at/attach -t num   # 如果有多个 session, 指定 session num 连接
tmux kill-ses -t myses    # kill 某个 session
tmux kill-ses -a          # kill 所有 session, 除了当前的 session
tmux kill-ses -a -t myses # kill 所有 session, 除了 myses


##############################################################################
# 操作方式 
##############################################################################

<prefix> + key            # <prefix> 默认为 ctrl + b
<prefix> + c              # 表示先按 ctrl + b 再按 c 键


##############################################################################
# 帮助信息
##############################################################################

<prefix> + ?              # 查看所有的 key map


##############################################################################
# window 操作 
##############################################################################

<prefix> + c              # 新建一个 window
<prefix> + n              # 下一个 window
<prefix> + p              # 上一个 window
<prefix> + w              # 列出 window
<prefix> + &              # 关闭当前 window
<prefix> + num[1-9]       # 选定特定 num 的 window
<prefix> + f              # 查找 window 
<prefix> + ,              # 重命名 window 
<prefix> + .              # 移动 window 



##############################################################################
# pane 操作 
##############################################################################

<prefix> + %              # 纵向分裂 
<prefix> + "              # 横向分裂 
<prefix> + 方向键         # 在一个 window 中切换 pane 
<prefix> + ctrl-方向键    # 调整 pane 大小
<prefix> + z              # 全屏化当前 pane, 再次执行退出全屏 
<prefix> + x              # 关闭当前 pane
<prefix> + q              # 显示 pane 编号
<prefix> + o              # 跳到下一个 pane 
<prefix> + {              # 跟前一个编号的 pane 交换
<prefix> + }              # 跟后一个编号的 pane 交换
<prefix> + ;              # 跳转到上一个活跃的 pane 
<prefix> + !              # 将 pane 转化为 window 
<prefix> + <Space>        # 改变 pane 的布局 


##############################################################################
# session 
##############################################################################

<prefix> + d              # detach 整个session, 后续可以重新连接
<prefix> + s              # 列出 session
<prefix> + $              # 重命名 session
<prefix> + (              # 跳到上一个 seesion 
<prefix> + )              # 跳到下一个 seesion 


##############################################################################
# Misc 
##############################################################################
<prefix> + t              # 显示时钟 
<prefix> + :              # 命令行 

##############################################################################
# pane 同步
##############################################################################

:setw synchronize-panes  # 打开(关闭) pane 同步模式, 发送命令到所有的 pane 中
                         # 只影响当前 window 的 pane

##############################################################################
# 复制模式 (copy-mode) 
##############################################################################

添加下面一行到 $HOME/.tmux.conf, 通过 vim 的快捷键实现浏览, 复制等操作;

setw -g mode-keys vi 

更多 vim 快捷键可参考 ../editors/vim.txt, 以下列出一些常用快捷键. 

<prefix> + [              # 进入 copy mode 

vi             emacs      功能
^              M-m        # 跳转到一行开头
Escape         C-g        # 放弃选择
k              Up         # 上移
j              Down       # 下移 
h              Left       # 左移
l              Right      # 右移
L                         # 最后一行
M              M-r        # 中间一行
H              M-R        # 第一行    
$              C-e        # 跳转到行尾
:              g          # 跳转至某一行
C-d            M-Down     # 下翻半页
C-u            M-Up       # 上翻半页
C-f            Page down  # 下翻一页
C-b            Page up    # 上翻一页
w              M-f        # 下一个字符     
b              M-b        # 前一个字符
q              Escape     # 退出        
?              C-r        # 往上查找
/              C-s        # 往下查找
n              n          # 查找下一个

Space          C-Space    # 进入选择模式
Enter          M-w        # 确认选择内容, 并退出 

<prefix> + ]              # 粘贴选择内容(粘贴 buffer_0 的内容) 

:show-buffer              # 显示 buffer_0 的内容
:capture-buffer           # 复制整个能见的内容到当前的 buffer
:list-buffers             # 列出所有的 buffer 
:choose-buffer            # 列出所有的 buffer, 并选择用于粘贴的 buffer
:save-buffer buf.txt      # 将 buffer 的内容复制到 buf.txt
:delete-buffer -b 1       # 删除 buffer_1


##############################################################################
# mouse-mode 
##############################################################################

:setw -g mode-mouse on           # 打开鼠标模式
:set -g mouse-select-pane on     # 通过鼠标选择 pane
:set -g mouse-resize-pane on     # 通过鼠标更改 pane 大小
:set -g mouse-select-window on   # 通过鼠标选择 window
阅读全文 »

linux-fonts

发表于 2015-09-05 | 分类于 linux

1. 安装前置

yum -y install fontconfig
yum -y install ttmkfdir

2. 安装字体

git clone https://github.com/brinkqiang/dmfont
pushd dmfont
sh build.sh

ttmkfdir -d ~/.fonts -o ~/.fonts/fonts.scale

fc-cache
fc-list | grep fixedsys

3. 配置文件

vim /etc/fonts/fonts.conf
阅读全文 »

linux-epoll

发表于 2015-09-05 | 分类于 linux

几种IO模型的触发方式 select()模型是水平触发模式,信号驱动IO是边缘触发模式,epoll()模型即支持水平触发,也支持边缘触发,默认是水平触发

epoll的两种触发方式 Level_triggered(水平触发):当被监控的文件描述符上有可读写事件发生时,epoll_wait()会通知处理程序去读写。如果这次没有把数据一次性全部读写完(如读写缓冲区太小),那么下次调用 epoll_wait()时,它还会通知你在上次没读写完的文件描述符上继续读写

Edge_triggered(边缘触发):当被监控的文件描述符上有可读写事件发生时,epoll_wait()会通知处理程序去读写。如果这次没有把数据全部读写完(如读写缓冲区太小),那么下次调用epoll_wait()时,它不会通知你,也就是它只会通知你一次,直到该文件描述符上出现第二次可读写事件才会通知你

由此可见,水平触发时如果系统中有大量你不需要读写的就绪文件描述符,而它们每次都会返回,这样会大大降低处理程序检索自己关心的就绪文件描述符的效率,而边缘触发,则不会充斥大量你不关心的就绪文件描述符,从而性能差异,高下立见

关于两种触发方式的难点整理 accept函数调用时使用哪种触发方式? accept除了在某些特殊情况下(如连接已完成三次握手、进入就绪队列中等待被accept,然后客户端又断开),一调用就直接返回,因此讨论起fd的阻塞非阻塞无意义,nigix的实现中,accept函数调用使用水平触发的socket fd,是出于对丢失连接的考虑(边缘触发时,accept只会执行一次接收一个连接,内核不会再去通知有连接就绪),当然,若使用while循环包裹住accept也是能够实现接受所有连接,稍显复杂,不如直接使用水平触发简单直观 为何边缘触发不用处理EINTR socket接口并不是被信号中断,只是调用了睡眠,发生信号睡眠会被唤醒通知进程,然后socket接口选择主动退出,这样做可以避免一直阻塞在那里,有退出的机会。非阻塞时不会调用睡眠,而ET使用的事非阻塞socket fd 为何ET使用的是非阻塞fd 由于边缘触发的模式,每次epoll_wait返回就绪的fd,必须读完读取缓冲区里的所有数据(直至接收数据返回EAGAIN),必须套上while循环,此时若使用阻塞的fd,当读取完缓冲区里的数据后,接受数据过程会阻塞,从而无法接受新的连接,而水平触发由于只接受一次数据(既然fd就绪可读,第一次调用并不会阻塞),然后若缓冲区仍有数据,等待下次epoll_wait返回 关于epoll_wait的写就绪事件 水平触发: 若socket fd 可写,每次epoll_wait都会返回该fd,会造成CPU占用100%的毛病, 解决方法

需要向socket写数据的时候才把socket加入epoll,等待可写事件。 接受到可写事件后,调用write或者send发送数据。 当所有数据都写完后,把socket移出epoll。 开始不把socket加入epoll,需要向socket写数据的时候,直接调用write或者send发送数据。如果返回 EAGAIN,把socket加入epoll,在epoll的驱动下写数据,全部数据发送完毕后,再移出epoll 后一种方式在send数据较少时,能够减少epoll_wait的调用,性能有所提升

边缘触发: 只有在socket fd由不可写到可写状态时,epoll_wait才回返回该socket fd,因此,需要向socket写数据的时候,直接循环调用write或者send,直至finish或者返回EAGAIN,若返回EAGAIN则注册该socket fd的EPOLLOUT事件,等待下次epoll_wait触发发送数据,发送完成后再注册该socket fd的EPOLLIN事件,即ATM模式

EPOLL事件的触发时机

EPOLLIN ET模式:每次EPOLL_CTL_ADD或EPOLL_CTL_MOD时,如果加入前,就是可读状态,那么加入后会触发1次 ,不管sock缓冲是否读完,只要对方有send或connect或close或强退,就会触发EPOLLIN(ET/LT是针对一次socket fd就绪的,即一次fd就绪后有数据没读完/没写完,是否还会通知,所以该连接新的数据到来,该事件会触发) LT模式:只要socket可读,就会一直触发EPOLLIN EPOLLOUT ET模式: 每次EPOLL_CTL_ADD或EPOLL_CTL_MOD时,如果加入前,就是可写状态,那么加入后会触发1次 ,如果EPOLLOUT与EPOLLIN一起注册,不管sock发送缓冲是否从满变不满,只要socket发送是不满的,那么每次EPOLLIN触发时,都会触发EPOLLOUT,即获取到不被期望的写事件,这也是为什么要使用ATM模式的原因 LT模式:只要socket可写,就会一直触发EPOLLOUT 简单来说,ET模式下,只要监听了EPOLLIN和EPOLLOUT,socket的每次动作(包括close与不close直接强退),都会触发1次, 与读写缓冲的状态无关。

阅读全文 »

真理之门

发表于 2015-06-21 | 分类于 life
  • 前言
    真理之门 是集合NLP 催眠术 记忆法 梦境操纵的一种手法
    用于解决 正常情况下无法解决的难题. 你特别想知道答案的难题. 其前置条件是你拥有足够的信息.
    如果你什么信息都没有 也不行. 其真实原理 应该是人的大数据综合分析能力.

大概是这样的。 就是你睡觉前 默念 你需要解决的问题。 然后枚举跟这个问题相关联的信息。 然后告诉自己的潜意识 这个问题帮我解决一下。 模拟潜意识回答 好的没问题 交给我了。

然后睡觉就行了

1. 脑心共鸣

意识聚集在心区的同时保持与大脑的连线 开始心中默念

阅读全文 »

vim-plug

发表于 2015-03-21 | 分类于 vim

1. YouCompleteMe

1 简介

  • 插件介绍:YouCompleteMe是一款针对Vim的快速,即用型的模糊搜索代码补全引擎。包括以下几种引擎:

    *   基于标识符的引擎,可与每种编程语言一起使用 *   基于[Clang](http://clang.llvm.org/)的引擎,为C / C ++ / Objective-C / Objective-C ++(C系列)提供本地语义代码补全 *   基于[Jedi](https://github.com/davidhalter/jedi)的Python 2和3的补全引擎 *   基于[OmniSharp的](https://github.com/OmniSharp/omnisharp-server)C#补全引擎 *   Go的[Gocode](https://github.com/nsf/gocode)和[Godef](https://github.com/Manishearth/godef)语义引擎的组合, *   基于[TSServer](https://github.com/Microsoft/TypeScript/tree/master/src/server)的TypeScript完成引擎, *   基于[Tern](http://ternjs.net/)的JavaScript补全引擎, *   基于[racer](https://github.com/phildawes/racer)的Rust补全引擎, *   基于[jdt.ls](https://github.com/eclipse/eclipse.jdt.ls)的Java实验性补全引擎。 *   基于omnifunc的补全引擎,它使用来自Vim的omnicomplete系统的数据为许多其他语言(Ruby,PHP等)提供语义补全。 *   基于UltiSnips的代码片补全引擎
    
  • 仓库地址:https://github.com/Valloric/YouCompleteMe

2 安装教程(Ubuntu 16.04)

  • 首先确保Vim版本至少为7.4.1578,并且支持Python 2或Python 3。

    *   `$vim --version | grep python`,显示`+python`则支持,否则安装支持python2的vim-nox-py2,或者使用源码重新编译vim
    
  • 使用Vundle安装YCM,以支持python2或python3

    *   `$ git clone https://github.com/Valloric/YouCompleteMe.git ~/.vim/bundle/YouCompleteMe` *   `$ cd ~/.vim/bundle/YouCompleteMe` *   `$ git submodule update --init --recursive` *   `$vim ~/.vimrc` *   在`call vundle#begin()`和`call vundle#end()`之间添加`Plugin 'Valloric/YouCompleteMe'` *   `:wq` *   `$vim` *   `:PluginInsttall`
    
  • 安装编译环境

    *   `sudo apt install build-essential cmake` *   `sudo apt install python-dev python3-dev` *   `sudo apt install ctags`*   `sudo apt install gcc g++` *   `sudo apt install clang libclang-dev`
    
  • 编译YCM

    *   `cd ~/.vim/bundle/YouCompleteMe` *   `./install.py` *   语言支持:
    
            *   C/C++/Objective-C/Objective-C++:编译时添加`--clang-completer`
    *   C#:先安装[Mono](http://www.mono-project.com/docs/getting-started/install/linux/#debian-ubuntu-and-derivatives),编译时添加`--cs-completer`
    *   Go:先安装[Go](https://golang.org/doc/install),编译时添加`--go-completer`
    *   TypeScript:先安装[ Node.js and npm](https://docs.npmjs.com/getting-started/installing-node),然后使用`npm install -g typescript`安装TypeScript SDK
    *   JavaScript: 先安装[ Node.js and npm](https://docs.npmjs.com/getting-started/installing-node),编译时添加`--js-completer`
    *   Rust: 先安装[Rust](https://www.rust-lang.org/),编译时添加`--rust-completer`
    *   Java: 先安装[JDK8](http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html),编译时添加`--java-completer`
    *   全部支持:先安装所有的依赖环境,编译时添加`--all`
    

3 C族语义补全配置

  • $vim ~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py
  • 在flags的括号中添加头文件路径:

    ‘-isystem’, ‘C/C++ 头文件绝对路径’,`</pre>

  • 如果不想因为c++11新特性发出警告就添加’-Wc++11-compat’,并删除’-Wc++98-compat’(如果有的话)
  • 也可以考虑使用YCM-Generator生成ycm_extra_conf.py文件。

4 命令

  • :YcmRestartServer * 如果ycmd补全服务器由于某种原因突然停止,则可以使用此命令重新启动它
  • :YcmForceCompileAndDiagnostics * 调用此命令将强制YCM立即重新编译文件并显示遇到的任何新诊断信息
  • :YcmDiags * 如果在文件中检测到任何错误或警告,则调用此命令将用齐填充Vim的位置列表,然后将其打开。如果给定的错误或警告可以通过调用:YcmCompleter FixIt来修复,那么(FixIt available)会。有关更多附加到错误或警告文本中信息,请参阅FixIt完成程序子命令。g:ycm_open_loclist_on_ycm_diags可以禁止打开位置列表,但仍然会填充它。
  • :YcmShowDetailedDiagnostic * 当用户的光标在出现诊断信息的代码行时,该命令显示完整的诊断文本
  • :YcmDebugInfo * 打印出当前文件的各种调试信息。如果您使用语义补全引擎,那么可以查看该文件将使用哪些编译命令。
  • :YcmToggleLogs * 会显示YCM、ycmd服务器和当前文件类型的语义引擎服务器创建的日志文件列表,如果有的话。
  • :YcmCompleter * 通过该命令,可以访问YCM中类似于IDE的其他功能,例如语义GoTo,类型信息,FixIt和 refactoring等。如果无其他参数则列出当前可以使用的子命令列表

    4.1 YcmCompleter子命令

      被调用的子命令会自动发送到当前激活的语义补全引擎,因此:如果当前文件是Python文件,YcmCompleter GoToDefinition将调用Python语义补全器上的GoToDefinition子命令,如果当前文件是C /C ++/Objective-C之一,则发送到clang补全引擎。可以将子命令映射到。例如,nnoremap jd:YcmCompleter GoTo 将 jd映射到YcmCompleter GoTo 。

    4.1.1 GoTo系列

      GoTo系列命令用于浏览代码时,进行跳转,当移动光标时,子命令会进入到Vim的跳转列表中,可以使用CTRL-O跳回到原来的位置,CTRL-I向前跳转。如果有多个目标,quickfix列表将填充所有可用位置,并在屏幕底部打开。您可以使用YcmQuickFixOpened自动命令来更改此行为。

  • :YcmCompleter GoToInclude * 查找当前行的头文件并跳转到它。文件类型支持:c,cpp,objc,objcpp
  • :YcmCompleter GoToDeclaration * 查找光标下的标识符并跳转到其声明,文件类型支持:c,cpp,objc,objcpp,cs,go,java,python,rust,typescript
  • :YcmCompleter GoToDefinition * 查找光标下的标识符并跳转到其定义。注意:对于C族语言,这仅适用于符号的定义位于当前翻译单元中时。翻译单元由您正在编辑的文件以及引入的头文件组成。文件类型支持:c,cpp,objc,objcpp,cs,go,java,javascript,python,rust,typescript
  • :YcmCompleter GoTo * 该命令尝试执行它可以执行的“最明智的”GoTo操作。目前,这意味着它尝试查找光标下的符号并在可能的情况下跳转到其定义,如果定义不能从当前翻译单元访问,则跳转到符号的声明。对于C/C++/Objective-C,它首先尝试查找当前行的头文件并跳转到它。对于C#,先尝试查找当前标识符的实现。文件类型中支持:c,cpp,objc,objcpp,cs,go,java,javascript,python,rust,typescript
  • :YcmCompleter GoToImprecise * 与GoTo命令相同,只是在AST中查找节点前,不会使用libclang重新编译文件。文件类型支持:c,cpp,objc,objcpp。
  • :YcmCompleter GoToReferences * 这个命令试图找到项目中所有文件中引用光标下标识符的位置,并在quickfix列表列出这些位置。文件类型支持:java,javascript,python,typescript
  • :YcmCompleter GoToImplementation * 查找光标下的标识符并跳转到其实现(而不是接口)。如果有多个实现,则提供可供选择的实现列表。文件类型支持: cs。
  • :YcmCompleter GoToImplementationElseDeclaration * 查找光标下的标识符并跳转到其实现,否则跳转到它的声明。如果有多个实现,则提供可供选择的实现列表。文件类型支持:cs
  • :YcmCompleter GoToType * 查找光标下的标识符并跳转到其类型的定义,例如如果标识符是一个对象,则转到其类的定义。文件类型支持:typescript

    4.1.2 语义信息命令

      这些命令对于查找有关代码的静态信息很有用,例如变量类型,查看声明和文档字符串

  • :YcmCompleter GetType * 显示光标下的变量或方法的类型,以及父类型。文件类型支持:c,cpp,objc,objcpp,java,javascript,typescript
  • :YcmCompleter GetTypeImprecise * 与GetType命令相同,只是它在AST中查找节点前不会使用libclang重新编译文件。文件类型支持:c,cpp,objc,objcpp
  • :YcmCompleter GetParent * 显示光标下标识符的语义父项。语义父项指语义上包含给定标识符的项目。,在类中声明,但在类外实现的函数,语义父项是类。对于全局声明,语义父项是翻译单元。文件类型支持:c,cpp,objc,objcpp
  • :YcmCompleter GetDoc * 显示预览窗口,其中包含有关光标下标识符的快速信息。根据文件类型的不同,包括如下内容:标识符的类型或声明,Doxygen /javadoc注释,Python文档,等等。文件类型支持:c,cpp,objc,objcpp,cs,java,javascript,python,typescript,rust
  • :YcmCompleter GetDocImprecise * 与GetDoc命令相同,只是它在查找AST节点之前不用libclang重新编译文件。文件类型支持:c,cpp,objc,objcpp

    4.1.3 重构命令

      这些命令会更改源代码以执行重构或代码更正。YouCompleteMe不会执行任何无法撤消的操作,也不会将文件保存或写入磁盘。

  • :YcmCompleter FixIt * 在可用的情况下,尝试更改缓冲区以纠正当前行上的诊断错误或警告。如果有多个建议可用,则会显示选项并可以选择一个。提供诊断的补全引擎可以对源进行微小的修改以纠正诊断。例如语法错误,如缺少后缀分号等。如果没有 FixIt可用,或者当前行上没有诊断信息,则此命令对当前缓冲区没有影响。如果进行了任何修改,则对缓冲区所做的更改数量将被显示,用户可以使用编辑器的撤消命令进行恢复。当诊断可用时,并且g:ycm_echo_current_diagnostic设置为1,则当补全引擎能够添加此指示时,文本(FixIt)会附加到显示的诊断信息后。当补全引擎能够添加此指示时,文本(FixIt可用)也附加到:YcmDiags命令输出的诊断文本中。文件类型支持:c,cpp,objc,objcpp,cs,java,typescript
  • :YcmCompleter RefactorRename <new name> * 在支持的文件类型中,此命令尝试执行光标下的标识符的语义重命名。这包括重命名声明,标识符的定义和用法,或任何其他语言适当的操作。具体行为由使用中的语义引擎定义。与FixIt类似,此命令对源文件自动应用修改。重命名操作可能涉及对多个文件的更改,这些文件可能不会在Vim缓冲区中打开。YouCompleteMe为你处理所有的文件。文件类型支持:java,javascript(仅限变量),typescript
  • 多文件重构 * 当重构或FixIt命令触及多个文件时,YouCompleteMe会尝试将这些修改应用到当前选项卡中任何现有的、打开的可见缓冲区。如果找不到这样的缓冲区,则YouCompleteMe将在当前窗口顶部的一个新的水平窗口中打开文件,应用更改,然后隐藏该窗口。注意:之后的缓冲区仍保持打开状态,必须手动保存。这样做之前会打开确认对话框提醒您即将发生的动作。
    • 修改完成后,quickfix列表将列出所有修改的位置。用于查看使用:copen进行的所有自动更改。通常,使用CTRL-W 在新列视图中打开选定的文件。
    • 缓冲区不会自动保存。也就是说,您必须在查看quickfix列表中的更改后手动保存修改后的缓冲区。使用Vim强大的撤消功能可以撤消更改。请注意,Vim的undo是针对每个缓冲区,因此要撤消所有更改,必须分别在每个修改的缓冲区中应用撤消命令。
    • 在应用修改时,Vim可能会找到已经打开并且具有交换文件的文件。如果您在任何此类提示中选择“中止”或“退出”,该命令将中止。这会使重构操作部分完成,必须使用Vim的撤销功能手动更正。在这种情况下,quickfix列表未被填充。用:buffers查看由命令打开的缓冲区。
  • :YcmCompleter Format * 该命令根据Vim选项shiftwidth和expandtab的值来格式化整个缓冲区或其一部分。要格式化文档的特定部分,您可以使用Vim的可视模式进行选择或直接在命令前输入范围。文件类型支持:java,typescript
  • :YcmCompleter OrganizeImports
  • 该命令将删除未使用的imports并对当前文件中的imports进行排序。它还可以将来自TypeScript中相同模块的导入进行分组和解析Java中的导入。

    4.1.4 杂项命令

      这些命令用于一般管理,而不是IDE功能。它们涵盖了语义引擎服务器实例和编译标志等内容。

  • :YcmCompleter RestartServer * 为与YCM对话的独立服务器的语义引擎重新启动以作为本地主机服务器,在编辑JavaScript项目中的文件以切换到该项目时,请参阅此子命令。可以为Python提供一个额外的可选参数,指定用于重启Python语义引擎的python二进制文件。文件类型支持:cs,go,java,javascript,python,rust, typescript
  • :YcmCompleter ClearCompilationFlagCache * YCM将缓存从ycm_extra_conf.py文件中的FlagsForFile函数获得的标志,除非返回它们时,将do_cache参数设置为False。它还缓存从编译数据库中提取的标志。该缓存在内存中,永远不会失效(除非使用:YcmRestartServer命令重新启动服务器)。该命令完全清除该缓存。YCM将在未来根据需要重新查询您的FlagsForFile函数或编译数据库。文件类型支持:c,cpp,objc,objcpp
  • :YcmCompleter ReloadSolution * 指示Omnisharp服务器清除其缓存并从磁盘重新加载所有文件。文件类型支持:cs

    5 函数

  • call youcompleteme#GetErrorCount() * 获取YCM诊断为错误的数量。如果不存在错误,则此函数返回0
  • call youcompleteme#GetWarningCount() * 获取YCM诊断为警告的数量。如果不存在警告,则此函数返回0

    6 自动命令

  • YcmLocationOpened   当YCM打开位置列表窗口以响应YcmDiags命令时,会触发此自动命令。默认情况下,位置列表窗口当前窗口的底部打开,其高度自适应。YcmLocationOpened可以用于修改设置。例如:

    `function! s:CustomizeYcmLocationWindow()
      " Move the window to the top of the screen.
      wincmd K
      " Set the window height to 5.
      5wincmd _
      " Switch back to working window.
      wincmd p
    endfunction
    
    autocmd User YcmLocationOpened call s:CustomizeYcmLocationWindow()`
  • YcmLocationOpened   当YCM打开quickfix窗口以响应GoTo*和RefactorRename子命令时,会触发此自动命令。默认情况下,quickfix窗口在屏幕底部打开并且其高度设置为自适应。YcmQuickFixOpened自动命令可以用来修改该设置。例如

    `function! s:CustomizeYcmQuickFixWindow()
      " Move the window to the top of the screen.
      wincmd K
      " Set the window height to 5.
      5wincmd _
    endfunction
    
    autocmd User YcmQuickFixOpened call s:CustomizeYcmQuickFixWindow()
    
    

7 选项

  • let g:ycm_min_num_of_chars_for_completion = 2

    *   设置触发标识符补全的最小字符数,设置为99或更大的数字,则等效于关闭标识符补全功能,但保留语义补全功能
    
  • let g:ycm_min_num_identifier_candidate_chars = 0

    *   设置要在标示符补全列表中显示的候选项的最小字符数,0表示没有限制,对语义补全无影响
    
  • let g:ycm_max_num_candidates = 50

    *   设置语义补全的最大候选项数量,0表示没有限制
    
  • let g:ycm_max_num_identifier_candidates = 10

    *   设置标识符补全的最大候选项数量,0表示没有限制
    
  • let g:ycm_auto_trigger=1

    *   0表示关闭ycm语义补全和标识符补全触发器,但仍可以用ctrl+space 打开语义补全,1表示打开
    
  • let g:ycm_filetype_whitelist = { '*': 1 }

    *   文件类型白名单,vim打开这些类型文件时会开启YCM。`*`表示所有文件类型
    
  • let g:ycm_filetype_blacklist = {'tagbar' : 1, 'qf' : 1,'notes' : 1, 'markdown' : 1, 'unite' : 1, 'text' : 1, 'vimwiki' : 1, 'pandoc' : 1, 'infolog' : 1, 'mail' : 1}

    *   文件类型黑名单,vim打开这些类型文件时会关闭YCM
    
  • let g:ycm_filetype_specific_completion_to_disable={'gitcommit': 1}

    *   语义补全黑名单,vim打开这些类型文件时会关闭YCM语义补全,但标识符补全仍可用
    
  • let g:ycm_show_diagnostics_ui = 1

    *   开启YCM的显示诊断信息的功能,0表示关闭
    
  • let g:ycm_error_symbol = '>>'

    *   ”设置错误标志为>>
    
  • let g:ycm_warning_symbol = '>>'

    *   ”设置警告标志为>>
    
  • let g:ycm_enable_diagnostic_signs = 1

    *   在代码中高亮显示YCM诊断对应的内容,如果关闭,则会关闭错误和警告高亮功能,0表示关闭
    
  • let g:ycm_enable_diagnostic_highlighting = 1

    *   高亮显示代码中与诊断信息有关的文本或代码,0表示关闭
    
  • let g:ycm_echo_current_diagnostic = 1

    *   当光标移到所在行时显示诊断信息
    
  • let g:ycm_filter_diagnostics={}

    *   诊断信息过滤器,此选项控制YCM将呈现哪些诊断,针对特定文件类型,用正则表达式控制要显示的内容,用level控制消息的级别,`{}`表示显示所有诊断信息
    
  • let g:ycm_always_populate_location_list = 0

    *   每次获取新诊断数据时自动填充位置列表,1表示打开,默认关闭以免干扰可能已放置在位置列表中的其他数据。在vim中用`:help location-list`命令查看位置列表的具体解释
    
  • let g:ycm_open_loclist_on_ycm_diags = 1

    *   在强制编译后自动打位置列表并用诊断信息填充,所谓位置列表就是标出各错误或警告对应在哪些行的小窗口,可以实现直接跳转到错误行
    
  • let g:ycm_complete_in_comments=0

    *   补全功能在注释中同样有效,1表示打开
    
  • let g:ycm_complete_in_strings = 1

    *   打开字符串自动补全功能。0代表关闭。这用于c系语言中#include后列出头文件很有用,如果设置为0则关闭文件名补全功能
    
  • let g:ycm_collect_identifiers_from_comments_and_strings = 0

    *   让YCM可以收集注释中的文字来分析以用于补全,默认为0,只能收集代码中的文字来分析
    
  • let g:ycm_collect_identifiers_from_tags_files = 0

    *   开启tags补全引擎 ,在vim中用:h ‘tags’命令来查看相关信息,只支持ctags,切必须使用`--fields=+l`选项
    
  • let g:ycm_seed_identifiers_with_syntax = 0

    *   使用vim的语法标识符来建立标识符数据库
    
  • let g:ycm_extra_conf_vim_data = []

    *   将数据从Vim发送到`.ycm_extra_conf.py`文件中的FlagsForFile函数。
    
  • let g:ycm_server_python_interpreter = ''

    *   为ycm服务器指定特定的python解释器,默认为空表示在系统上搜索适当的Python解释器
    
  • let g:ycm_keep_logfiles = 0

    *   YCM关闭时保存日志,0表示关闭
    
  • let g:ycm_log_level = 'info'

    *   设置YCM的日志记录级别,可以是debug,info,warning,error或critical。debug是最详细的
    
  • let g:ycm_auto_start_csharp_server = 1

    *   设置当vim打开c#文件时,OmniSharp server自动开启,0代表不自动开启
    
  • let g:ycm_auto_stop_csharp_server = 1

    *   设置当vim关闭c#文件时,OmniSharp server自动关闭,0代表不自动关闭
    
  • let g:ycm_csharp_server_port = 0

    *   指定OmniSharp server的监视端口,0表示使用os自动提供的未使用的端口
    
  • let g:ycm_csharp_insert_namespace_expr = ''

    *   默认c#中插入命名空间时自动在最近的using语句下插入using语句,如要插入到其他地方则设置该选项
    
  • let g:ycm_add_preview_to_completeopt = 0

    *   为当前补全选项在vim顶部增加预览窗口,用来显示函数原型等信息,如果vim的completeopt已经设置为prieview则不会有影响,`:h completeopt`查看相关信息,用`:set completeopt?`查看当前vim的设置,默认为0
    
  • let g:ycm_autoclose_preview_window_after_completion = 0

    *   选中补全选项后自动关闭预览窗口,当`g:ycm_add_preview_to_completeopt`设为1时或者vim的`completeopt`设为preview有效
    
  • let g:ycm_autoclose_preview_window_after_insertion = 0

    *   离开插入模式后自动关闭预览窗口,当`g:ycm_add_preview_to_completeopt`设为1时或者vim的`completeopt`设为preview有效
    
  • let g:ycm_max_diagnostics_to_display = 30
  • 此选项控制在文件中检测到错误或警告时向用户显示的最大诊断数
  • let g:ycm_key_list_select_completion = ['<TAB>', '<Down>']

    *   设置用于选择补全列表中的第一个选项以及进入补全列表后向下选择的快捷键,默认为tab键和方向下键
    
  • let g:ycm_key_list_previous_completion = ['<S-TAB>', '<Up>']

    *   设置用于向上选择补全列表中的选项的快捷键,默认为shift+tab,和方向上键
    
  • let g:ycm_key_list_stop_completion = ['<C-y>']

    *   设置用于关闭补全列表的快捷键,默认为ctrl+y
    
  • let g:ycm_key_invoke_completion = '<C-Space>'

    *   设置强制启用语义补全的快捷键,有些系统函数如fopen, strcpy如果不智能提示,可以按+键
    
  • let g:ycm_key_detailed_diagnostics = '<leader>d'

    *   设置查看光标停留处的错误诊断详细信息的快捷键,默认为\d
    
  • let g:ycm_global_ycm_extra_conf = ''

    *   设置`.ycm_extra_conf.py`的全局路径,避免每次都需要复制到当前目录.若为空则每次都需复制`.ycm_extra_conf.py`文件到当前目录
    
  • let g:ycm_confirm_extra_conf = 1

    *   允许自动加载`.ycm_extra_conf.py`,不再提示 ,设置为1,则每次都提示用于确认该文件是否安全
    
  • let g:ycm_extra_conf_globlist = []

    *   设置加载 `.ycm_extra_conf.py`的路径,`*`表示匹配任何字符,`?`匹配任何单个字符,[seq] 匹配seq中的任何单个字符,[!seq] 匹配不在seq中的任何单个字符,路径前加`!`表示不加载所有改路径上匹配的文件
    
  • let g:ycm_filepath_completion_use_working_dir = 0

    *   设置YCM的文件名补全时,相对路径是按照vim的当前工作目录还是活动缓冲区中的文件所在目录来解释。0是按照文件所在目录。
    
  • let g:ycm_semantic_triggers = {'c' : ['->', '.'],'objc' : ['->', '.', 're!\[[_a-zA-Z]+\w*\s', 're!^\s*[^\W\d]\w*\s','re!\[.*\]\s'],'ocaml' : ['.', '#'],'cpp,objcpp' : ['->', '.', '::'],'perl' : ['->'],'php' : ['->', '::'],'cs,java,javascript,typescript,d,python,perl6,scala,vb,elixir,go' : ['.'],'ruby' : ['.', '::'],'lua' : ['.', ':'],'erlang' : [':'],}

    *   设置YCM的语义触发器的关键字
    
  • let g:ycm_cache_omnifunc = 1

    *   某些omni补全引擎引起与YCM缓存不适配,可能不会为给定的前缀产生所有可能的结果,如果关闭该选项则每次都重新查询omni补全引擎生成匹配项 ,默认为1代表开启
    
  • let g:ycm_use_ultisnips_completer = 1

    *   启用ultisnips补全,1代表允许
    
  • let g:ycm_goto_buffer_command = 'same-buffer'

    *   设置使用goto跳转快捷键时,新窗口的打开方式可以设置为’same-buffer’, ‘horizontal-split’, ‘vertical-split’, ‘new-tab’或 ‘new-or-existing-tab’
    
  • let g:ycm_disable_for_files_larger_than_kb = 1000

    *   设置YCM的作用的文件大小上限,单位为Kb,0表示无上限
    
  • let g:ycm_python_binary_path = 'python'

    *   指定用来运行jedi补全库的Python解释器。默认情况下与ycm服务器使用相同的解释器
    
阅读全文 »

gdb

发表于 2014-10-05 | 分类于 gdb

##############################################################################

1. 抓取进程当前调用堆栈

##############################################################################

gstack $(pidof proc_name)

##############################################################################

2. gdb调试某进程

##############################################################################

gdb proc_name $(pidof proc_name)
##############################################################################
# 启动 GDB
##############################################################################

gdb object                # 正常启动,加载可执行
gdb object core           # 对可执行 + core 文件进行调试
gdb object pid            # 对正在执行的进程进行调试
gdb                       # 正常启动,启动后需要 file 命令手动加载
gdb -tui                  # 启用 gdb 的文本界面


##############################################################################
# 帮助信息
##############################################################################

help                      # 列出命令分类
help running              # 查看某个类别的帮助信息
help run                  # 查看命令 run 的帮助
help info                 # 列出查看程序运行状态相关的命令
help info line            # 列出具体的一个运行状态命令的帮助
help show                 # 列出 GDB 状态相关的命令
help show commands        # 列出 show 命令的帮助


##############################################################################
# 断点
##############################################################################

break main                # 对函数 main 设置一个断点,可简写为 b main
break 101                 # 对源代码的行号设置断点,可简写为 b 101
break basic.c:101         # 对源代码和行号设置断点
break basic.c:foo         # 对源代码和函数名设置断点
break *0x00400448         # 对内存地址 0x00400448 设置断点
info breakpoints          # 列出当前的所有断点信息,可简写为 info break
delete 1                  # 按编号删除一个断点
delete                    # 删除所有断点
clear                     # 删除在当前行的断点
clear function            # 删除函数断点
clear line                # 删除行号断点
clear basic.c:101         # 删除文件名和行号的断点
clear basic.c:main        # 删除文件名和函数名的断点
clear *0x00400448         # 删除内存地址的断点
disable 2                 # 禁用某断点,但是部删除
enable 2                  # 允许某个之前被禁用的断点,让它生效
tbreak function|line      # 临时断点
ignore {id} {count}       # 忽略某断点 N-1 次
condition {id} {expr}     # 条件断点,只有在条件生效时才发生
condition 2 i == 20       # 2号断点只有在 i == 20 条件为真时才生效
watch {expr}              # 对变量设置监视点
info watchpoints          # 显示所有观察点


##############################################################################
# 运行程序
##############################################################################

run                       # 运行程序
run {args}                # 以某参数运行程序
run < file                # 以某文件为标准输入运行程序
run < <(cmd)              # 以某命令的输出作为标准输入运行程序
run <<< $(cmd)            # 以某命令的输出作为标准输入运行程序
set args {args} ...       # 设置运行的参数
show args                 # 显示当前的运行参数
cont                      # 继续运行,可简写为 c
step                      # 单步进入,碰到函数会进去
step {count}              # 单步多少次
next                      # 单步跳过,碰到函数不会进入
next {count}              # 单步多少次
CTRL+C                    # 发送 SIGINT 信号,中止当前运行的程序
attach {process-id}       # 链接上当前正在运行的进程,开始调试
detach                    # 断开进程链接
finish                    # 结束当前函数的运行
until                     # 持续执行直到代码行号大于当前行号(跳出循环)
until {line}              # 持续执行直到执行到某行
kill                      # 杀死当前运行的函数


##############################################################################
# 栈帧
##############################################################################

bt                        # 打印 backtrace 
frame                     # 显示当前运行的栈帧
up                        # 向上移动栈帧(向着 main 函数)
down                      # 向下移动栈帧(远离 main 函数)
info locals               # 打印帧内的相关变量
info args                 # 打印函数的参数


##############################################################################
# 代码浏览
##############################################################################

list 101                  # 显示第 101 行周围 10行代码
list 1,10                 # 显示 1 到 10 行代码
list main                 # 显示函数周围代码
list basic.c:main         # 显示另外一个源代码文件的函数周围代码
list -                    # 重复之前 10 行代码
list *0x22e4              # 显示特定地址的代码
cd dir                    # 切换当前目录
pwd                       # 显示当前目录
search {regexpr}          # 向前进行正则搜索
reverse-search {regexp}   # 向后进行正则搜索
dir {dirname}             # 增加源代码搜索路径
dir                       # 复位源代码搜索路径(清空)
show directories          # 显示源代码路径


##############################################################################
# 浏览数据
##############################################################################

print {expression}        # 打印表达式,并且增加到打印历史
print /x {expression}     # 十六进制输出,print 可以简写为 p
print array[i]@count      # 打印数组范围
print $                   # 打印之前的变量
print *$->next            # 打印 list
print $1                  # 输出打印历史里第一条
print ::gx                # 将变量可视范围(scope)设置为全局
print 'basic.c'::gx       # 打印某源代码里的全局变量,(gdb 4.6)
print /x &main            # 打印函数地址
x *0x11223344             # 显示给定地址的内存数据
x /nfu {address}          # 打印内存数据,n是多少个,f是格式,u是单位大小
x /10xb *0x11223344       # 按十六进制打印内存地址 0x11223344 处的十个字节
x/x &gx                   # 按十六进制打印变量 gx,x和斜杆后参数可以连写
x/4wx &main               # 按十六进制打印位于 main 函数开头的四个 long 
x/gf &gd1                 # 打印 double 类型
help x                    # 查看关于 x 命令的帮助
info locals               # 打印本地局部变量
info functions {regexp}   # 打印函数名称
info variables {regexp}   # 打印全局变量名称
ptype name                # 查看类型定义,比如 ptype FILE,查看 FILE 结构体定义
whatis {expression}       # 查看表达式的类型
set var = {expression}    # 变量赋值
display {expression}      # 在单步指令后查看某表达式的值
undisplay                 # 删除单步后对某些值的监控
info display              # 显示监视的表达式
show values               # 查看记录到打印历史中的变量的值 (gdb 4.0)
info history              # 查看打印历史的帮助 (gdb 3.5)


##############################################################################
# 目标文件操作
##############################################################################

file {object}             # 加载新的可执行文件供调试
file                      # 放弃可执行和符号表信息
symbol-file {object}      # 仅加载符号表
exec-file {object}        # 指定用于调试的可执行文件(非符号表)
core-file {core}          # 加载 core 用于分析


##############################################################################
# 信号控制
##############################################################################

info signals              # 打印信号设置
handle {signo} {actions}  # 设置信号的调试行为
handle INT print          # 信号发生时打印信息
handle INT noprint        # 信号发生时不打印信息
handle INT stop           # 信号发生时中止被调试程序
handle INT nostop         # 信号发生时不中止被调试程序
handle INT pass           # 调试器接获信号,不让程序知道
handle INT nopass         # 调试起不接获信号
signal signo              # 继续并将信号转移给程序
signal 0                  # 继续但不把信号给程序


##############################################################################
# 线程调试
##############################################################################

info threads              # 查看当前线程和 id
thread {id}               # 切换当前调试线程为指定 id 的线程
break {line} thread all   # 所有线程在指定行号处设置断点
thread apply {id..} cmd   # 指定多个线程共同执行 gdb 命令
thread apply all cmd      # 所有线程共同执行 gdb 命令
set schedule-locking ?    # 调试一个线程时,其他线程是否执行,off|on|step
set non-stop on/off       # 调试一个线程时,其他线程是否运行
set pagination on/off     # 调试一个线程时,分页是否停止
set target-async on/off   # 同步或者异步调试,是否等待线程中止的信息


##############################################################################
# 进程调试
##############################################################################

info inferiors                       # 查看当前进程和 id
inferior {id}                        # 切换某个进程
kill inferior {id...}                # 杀死某个进程
set detach-on-fork on/off            # 设置当进程调用fork时gdb是否同时调试父子进程
set follow-fork-mode parent/child    # 设置当进程调用fork时是否进入子进程


##############################################################################
# 汇编调试
##############################################################################

info registers            # 打印普通寄存器
info all-registers        # 打印所有寄存器
print/x $pc               # 打印单个寄存器
stepi                     # 指令级别单步进入,可以简写为 si
nexti                     # 指令级别单步跳过,可以简写为 ni
display/i $pc             # 监控寄存器(每条单步完以后会自动打印值)
x/x &gx                   # 十六进制打印变量
info line 22              # 打印行号为 22 的内存地址信息
info line *0x2c4e         # 打印给定内存地址对应的源代码和行号信息
disassemble {addr}        # 对地址进行反汇编,比如 disassemble 0x2c4e


##############################################################################
# 历史信息
##############################################################################

show commands             # 显示历史命令 (gdb 4.0)
info editing              # 显示历史命令 (gdb 3.5)
ESC-CTRL-J                # 切换到 Vi 命令行编辑模式
set history expansion on  # 允许类 c-shell 的历史
break class::member       # 在类成员处设置断点
list class:member         # 显示类成员代码
ptype class               # 查看类包含的成员
print *this               # 查看 this 指针
rbreak {regexpr}          # 匹配正则的函数前断点,如 ex_* 将断点 ex_ 开头的函数


##############################################################################
# 其他命令
##############################################################################

define command ... end    # 定义用户命令
<return>                  # 直接按回车执行上一条指令
shell {command} [args]    # 执行 shell 命令
source {file}             # 从文件加载 gdb 命令
quit                      # 退出 gdb


##############################################################################
# GDB 前端
##############################################################################

gdb-tui                   使用 gdb -tui 启动
cgdb                      http://cgdb.github.io/
emacs                     http://gnu.org/software/emacs
gdbgui                    https://github.com/cs01/gdbgui

GDB 图形化前端评测        http://www.skywind.me/blog/archives/2036


##############################################################################
# GDB 函数堆栈乱掉
##############################################################################

info reg
rbp
x/128ag address

info reg
ebp
x/127aw ebp

程序core掉,要去debug,但是函数堆栈乱掉了,很恶心.....经过Google/wiki一番,找到两种解决办法.

1. 手动还原backtrace

  手动还原其实就是看栈里面的数据,自己还原函数栈,听起来很复杂其实也比较简单.手头上没有比较好的例子,所以大家就去看

  http://devpit.org/wiki/x86ManualBacktrace 上面的例子.那个例子很好,是x86下面的,amd64下面也是类似.

  amd64下面,无非就是寄存器变成rbp,字长增加了一倍.当然这边选择了手动寻找函数返回地址,然后info symbol打印出函数名,其实还可以通过gdb格式化来直接打印函数名:

  gdb>x/128ag rbp内的内容

  所以手动还原的办法就变得很简单:

  gdb>info reg rbp            *x86换成info reg ebp

  gdb>x/128ag  rbp内的内容        *x86换成 x/128aw ebp的内容

  这样就能看到函数栈.如果你想解析参数是啥,也是可以的,只是比较麻烦,苦力活儿....想解析参数,就要知道栈的布局,可以参考这篇文章:

  http://blog.csdn.net/liigo/archive/2006/12/23/1456938.aspx

  这个办法比较简单,很容易实践,但是有一个前提,如果栈的内容被冲刷干净了,你连毛都看不到(事实就是这样).所以你需要开始栈保护...至少你还能找到栈顶的函数...

  gcc有参数: -fstack-protector 和 -fstack-protector-all,强烈建议开启....

2. 手动记录backtrace

  开启了栈保护,这样至少会看到一个函数栈....如果想要知道更多的信息,对不起,没的...后来看公司内部的wiki,外加上google,得知很多人通过trace的办法来debug.:-D

  简单的说,在gcc2时代,提供了两个接口函数:

  void __cyg_profile_func_enter (void *this_fn, void *call_site)
  void __cyg_profile_func_exit  (void *this_fn, void *call_site)

  方便大家伙做profile,然后很多人用这俩函数来调试代码.:-D

  函数功能很简单,第一个就是函数入栈,第二就是函数出栈.所以你只要自己维护一个栈,然后在他入栈的时候你也入栈(只记录函数地址),出栈的时候你也出栈.等程序挂了,你去看你自己维护的栈,这样就能搞到第二手的函数栈(第一手的可能被破坏了).然后在去info symbol或者x/num ag格式化打印也可以的.

  需要注意的是,编译需要加上参数-finstrumnet-function,而且这里函数的声明需要加上__attribute__ ((no_instrument_function))宏,否则他会无限递归调用下去,:-)

  如果是单线程,就搞一个栈就行了,如果多个线程,一个线程一个栈~~~
阅读全文 »

ssr

发表于 2014-09-05 | 分类于 ssr

1. ssr安装

yum -y install git
yum -y install gcc-c++ autoconf libtool automake make
yum -y install gettext asciidoc xmlto c-ares-devel libev-devel pcre-devel
yum -y install mbedtls mbedtls-devel libsodium libsodium-devel

git clone https://github.com/brinkqiang/ssr.git
pushd ssr
git submodule update --init --recursive

sudo libtoolize && sudo aclocal && sudo autoheader && sudo autoconf && sudo automake --add-missing
sh configure
make
make install
popd

vim /etc/rc.d/rc.local

ss-server -s 0.0.0.0 -p  -k  -u -m chacha20 &

2. rinetd安装

yum -y install gettext gcc autoconf libtool automake make asciidoc xmlto c-ares-devel libev-devel

git clone https://github.com/brinkqiang/dmrinetd.git
pushd dmrinetd

sudo libtoolize && sudo aclocal && sudo autoheader && sudo autoconf && sudo automake --add-missing

sh configure
make
make install
popd

vim /etc/rc.d/rc.local
rinetd -c /usr/local/etc/rinetd.conf &

vim /usr/local/etc/rinetd.conf
阅读全文 »

awesome-python-cn

发表于 2012-06-21 | 分类于 awesome

Python 资源大全中文版

我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列的资源整理。awesome-python 是 vinta 发起维护的 Python 资源列表,内容包括:Web 框架、网络爬虫、网络内容提取、模板引擎、数据库、数据可视化、图片处理、文本处理、自然语言处理、机器学习、日志、代码分析等。由伯乐在线持续更新。

Awesome 系列虽然挺全,但基本只对收录的资源做了极为简要的介绍,如果有更详细的中文介绍,对相应开发者的帮助会更大。这也是我们发起这个开源项目的初衷。

关于项目

我们要做什么?

  • 基于 awesome-python 列表,我们将对其中的各个资源项进行编译整理。此外还将从其他来源补充好资源。
  • 整理后的内容,将收录在伯乐在线资源频道。可参考已整理的内容:
    • 《Scrapy:Python 的爬虫框架》
    • 《Flask:一个使用 Python 编写的轻量级 Web 应用框架》

如何为列表贡献新资源?

欢迎大家为列表贡献高质量的新资源,提交 PR 时请参照以下要求:

  • 请确保推荐的资源自己使用过
  • 提交 PR 时请注明推荐理由

资源列表管理收到 PR 请求后,会定期(每周)在微博转发本周提交的 PR 列表,并在微博上面听取使用过这些资源的意见。确认通过后,会加入资源大全。

感谢您的贡献!

本项目的参与者

  • 维护者:
  • 贡献者:艾凌风、Namco、Daetalus、黄利民、atupal、rainbow、木头lbj、beyondwu、cissoid、李广胜、polyval、冰斌、赵叶宇、л stalgic、硕恩、strongit、yuukilp、chenjiandongx、autopenguin、visonforcoding、Super赛亚人、Since-future、knktc

注:名单不分排名,不定期补充更新

资源列表

环境管理

管理 Python 版本和环境的工具

  • p:非常简单的交互式 python 版本管理工具。官网
  • pyenv:简单的 Python 版本管理工具。官网
  • Vex:可以在虚拟环境中执行命令。官网
  • virtualenv:创建独立 Python 环境的工具。官网
  • virtualenvwrapper:virtualenv 的一组扩展。官网

包管理

管理包和依赖的工具。

  • pip:Python 包和依赖关系管理工具。官网
  • pip-tools:保证 Python 包依赖关系更新的一组工具。官网
  • pipenv:Pyhton 官方推荐的新一代包管理工具。官网
  • conda:跨平台,Python 二进制包管理工具。官网
  • Curdling:管理 Python 包的命令行工具。官网
  • wheel:Python 分发的新标准,意在取代 eggs。官网

包仓库

本地 PyPI 仓库服务和代理。

  • warehouse:下一代 PyPI。官网
  • bandersnatch:PyPA 提供的 PyPI 镜像工具。官网
  • devpi:PyPI 服务和打包/测试/分发工具。官网
  • localshop:本地 PyPI 服务(自定义包并且自动对 PyPI 镜像)。官网

分发

打包为可执行文件以便分发。

  • PyInstaller:将 Python 程序转换成独立的执行文件(跨平台)。官网
  • dh-virtualenv:构建并将 virtualenv 虚拟环境作为一个 Debian 包来发布。官网
  • Nuitka:将脚本、模块、包编译成可执行文件或扩展模块。官网
  • py2app:将 Python 脚本变为独立软件包(Mac OS X)。官网
  • py2exe:将 Python 脚本变为独立软件包(Windows)。官网
  • pynsist:一个用来创建 Windows 安装程序的工具,可以在安装程序中打包 Python 本身。官网

构建工具

将源码编译成软件。

  • buildout:一个构建系统,从多个组件来创建,组装和部署应用。官网
  • BitBake:针对嵌入式 Linux 的类似 make 的构建工具。官网
  • fabricate:对任何语言自动找到依赖关系的构建工具。官网
  • PlatformIO:多平台命令行构建工具。官网
  • PyBuilder:纯 Python 实现的持续化构建工具。官网
  • SCons:软件构建工具。官网

交互式解析器

交互式 Python 解析器。

  • IPython:功能丰富的工具,非常有效的使用交互式 Python。官网
  • bpython:界面丰富的 Python 解析器。官网
  • ptpython:高级交互式 Python 解析器, 构建于 python-prompt-toolkit 之上。官网

文件

文件管理和 MIME(多用途的网际邮件扩充协议)类型检测。

  • aiofiles:基于 asyncio,提供文件异步操作。官网
  • imghdr:(Python 标准库)检测图片类型。官网
  • mimetypes:(Python 标准库)将文件名映射为 MIME 类型。官网
  • path.py:对 os.path 进行封装的模块。官网
  • pathlib:(Python3.4+ 标准库)跨平台的、面向对象的路径操作库。官网
  • python-magic:文件类型检测的第三方库 libmagic 的 Python 接口。官网
  • Unipath:用面向对象的方式操作文件和目录。官网
  • watchdog:管理文件系统事件的 API 和 shell 工具。官网

日期和时间

操作日期和时间的类库。

  • arrow:更好的 Python 日期时间操作类库。官网
  • Chronyk:Python 3 的类库,用于解析手写格式的时间和日期。官网
  • dateutil:Python datetime 模块的扩展。官网
  • delorean:解决 Python 中有关日期处理的棘手问题的库。官网
  • maya:人性化的时间处理库。官网
  • moment:一个用来处理时间和日期的 Python 库。灵感来自于 Moment.js。官网
  • pendulum:一个比 arrow 更具有明确的,可预测的行为的时间操作库。官网
  • PyTime:一个简单易用的 Python 模块,用于通过字符串来操作日期/时间。官网
  • pytz:现代以及历史版本的世界时区定义。将时区数据库引入 Python。官网
  • when.py:提供用户友好的函数来帮助用户进行常用的日期和时间操作。官网

文本处理

用于解析和操作文本的库。

  • 通用
    • chardet:字符编码检测器,兼容 Python2 和 Python3。官网
    • difflib:(Python 标准库)帮助我们进行差异化比较。官网
    • ftfy:让 Unicode 文本更完整更连贯。官网
    • fuzzywuzzy:模糊字符串匹配。官网
    • Levenshtein:快速计算编辑距离以及字符串的相似度。官网
    • pangu.py:在中日韩语字符和数字字母之间添加空格。官网
    • pypinyin:汉字拼音转换工具 Python 版。官网
    • shortuuid:一个生成器库,用以生成简洁的,明白的,URL 安全的 UUID。官网
    • simplejson:Python 的 JSON 编码、解码器。官网
    • unidecode:Unicode 文本的 ASCII 转换形式 。官网
    • uniout:打印可读的字符,而不是转义的字符串。官网
    • xpinyin:一个用于把汉字转换为拼音的库。官网
    • yfiglet-figlet:pyfiglet -figlet 的 Python 实现。
    • flashtext: 一个高效的文本查找替换库。官网
  • Slug 化
    • awesome-slugify:一个 Python slug 化库,可以保持 Unicode。官网
    • python-slugify:Python slug 化库,可以把 unicode 转化为 ASCII。官网
    • unicode-slugify:一个 slug 工具,可以生成 unicode slugs ,需要依赖 Django 。官网
  • 解析器
    • phonenumbers:解析,格式化,储存,验证电话号码。官网
    • PLY:lex 和 yacc 解析工具的 Python 实现。官网
    • Pygments:通用语法高亮工具。官网
    • pyparsing:生成通用解析器的框架。官网
    • python-nameparser:把一个人名分解为几个独立的部分。官网
    • python-user-agents:浏览器 user agent 解析器。官网
    • sqlparse:一个无验证的 SQL 解析器。官网

特殊文本格式处理

一些用来解析和操作特殊文本格式的库。

  • 通用
    • tablib:一个用来处理中表格数据的模块。官网
  • Office
    • Marmir:把输入的 Python 数据结构转换为电子表单。官网
    • openpyxl:一个用来读写 Excel 2010 xlsx/xlsm/xltx/xltm 文件的库。官网
    • pyexcel:一个提供统一 API,用来读写,操作 Excel 文件的库。官网
    • python-docx:读取,查询以及修改 Microsoft Word 2007/2008 docx 文件。官网
    • relatorio:模板化 OpenDocument 文件。官网
    • unoconv:在 LibreOffice/OpenOffice 支持的任意文件格式之间进行转换。官网
    • XlsxWriter:一个用于创建 Excel .xlsx 文件的 Python 模块。官网
    • xlwings:一个使得在 Excel 中方便调用 Python 的库(反之亦然),基于 BSD 协议。官网
    • xlwt:读写 Excel 文件的数据和格式信息。官网 / xlrd
  • PDF
    • PDFMiner:一个用于从 PDF 文档中抽取信息的工具。官网
    • PyPDF2:一个可以分割,合并和转换 PDF 页面的库。官网
    • ReportLab:快速创建富文本 PDF 文档。官网
  • Markdown
    • Mistune:快速并且功能齐全的纯 Python 实现的 Markdown 解析器。官网
    • Python-Markdown:John Gruber’s Markdown 的 Python 版实现。官网
    • Python-Markdown2:纯 Python 实现的 Markdown 解析器,比 Python-Markdown 更快,更准确,可扩展。官网
  • YAML
    • PyYAML:Python 版本的 YAML 解析器。官网
  • CSV
    • csvkit:用于转换和操作 CSV 的工具。官网
  • Archive
    • unp:一个用来方便解包归档文件的命令行工具。官网

自然语言处理

用来处理人类语言的库。

  • NLTK:一个先进的平台,用以构建处理人类语言数据的 Python 程序。官网
  • jieba:中文分词工具。官网
  • langid.py:独立的语言识别系统。官网
  • Pattern:Python 网络信息挖掘模块。官网
  • SnowNLP:一个用来处理中文文本的库。官网
  • TextBlob:为进行普通自然语言处理任务提供一致的 API。官网
  • TextGrocery:一简单高效的短文本分类工具,基于 LibLinear 和 Jieba。官网
  •   thulac:清华大学自然语言处理与社会人文计算实验室研制推出的一套中文词法分析工具包官网

文档

用以生成项目文档的库。

  • Sphinx:Python 文档生成器。官网
  • awesome-sphinxdoc:官网
  • MkDocs:对 Markdown 友好的文档生成器。官网
  • pdoc:一个可以替换 Epydoc 的库,可以自动生成 Python 库的 API 文档。官网
  • Pycco:文学编程(literate-programming)风格的文档生成器。官网
  • readthedocs:一个基于 Sphinx/MkDocs 的在线文档托管系统,对开源项目免费开放使用。官网

配置

用来保存和解析配置的库。

  • config:logging 模块作者写的分级配置模块。官网
  • ConfigObj:INI 文件解析器,带验证功能。官网
  • ConfigParser:(Python 标准库) INI 文件解析器。官网
  • profig:通过多种格式进行配置,具有数值转换功能。官网
  • python-decouple:将设置和代码完全隔离。官网

命令行工具

用于创建命令行程序的库。

  • 命令行程序开发
    • asciimatics:跨平台,全屏终端包(即鼠标/键盘输入和彩色,定位文本输出),完整的复杂动画和特殊效果的高级 API。官网
    • cement:Python 的命令行程序框架。官网
    • click:一个通过组合的方式来创建精美命令行界面的包。官网
    • cliff:一个用于创建命令行程序的框架,可以创建具有多层命令的命令行程序。官网
    • clint:Python 命令行程序工具。官网
    • colorama:跨平台彩色终端文本。官网
    • docopt:Python 风格的命令行参数解析器。官网
    • Gooey:一条命令,将命令行程序变成一个 GUI 程序。官网
    • python-prompt-toolkit:一个用于构建强大的交互式命令行程序的库。官网
    • python-fire:Google 出品的一个基于 Python 类的构建命令行界面的库。官网
    • Pythonpy:在命令行中直接执行任何 Python 指令。官网
  • 生产力工具
    • aws-cli:Amazon Web Services 的通用命令行界面。官网
    • bashplotlib:在终端中进行基本绘图。官网
    • caniusepython3:判断是哪个项目妨碍你你移植到 Python3。官网
    • cookiecutter:从 cookiecutters(项目模板)创建项目的一个命令行工具。官网
    • doitlive:一个用来在终端中进行现场演示的工具。官网
    • pyftpdlib:一个速度极快和可扩展的 Python FTP 服务库。官网
    • howdoi:通过命令行获取即时的编程问题解答。官网
    • httpie:一个命令行 HTTP 客户端,cURL 的替代品,易用性更好。官网
    • PathPicker:从 bash 输出中选出文件。官网
    • percol:向 UNIX shell 传统管道概念中加入交互式选择功能。官网
    • SAWS:一个加强版的 AWS 命令行。官网
    • thefuck:修正你之前的命令行指令。官网
    • mycli:一个 MySQL 命令行客户端,具有自动补全和语法高亮功能。官网
    • pgcli:Postgres 命令行工具,具有自动补全和语法高亮功能。官网
    • try:一个从来没有更简单的命令行工具,用来试用 python 库。官网

下载器

用来进行下载的库.

  • s3cmd:一个用来管理 Amazon S3 和 CloudFront 的命令行工具。官网
  • s4cmd:超级 S3 命令行工具,性能更加强劲。官网
  • you-get:一个 YouTube/Youku/Niconico 视频下载器,使用 Python3 编写。官网
  • youtube-dl:一个小巧的命令行程序,用来下载 YouTube 视频。官网

图像处理

用来操作图像的库.

  • pillow:Pillow 是一个更加易用版的 PIL。官网
  • hmap:图像直方图映射。官网
  • imgSeek:一个使用视觉相似性搜索一组图片集合的项目。官网
  • nude.py:裸体检测。官网
  • pyBarcode:不借助 PIL 库在 Python 程序中生成条形码。官网
  • pygram:类似 Instagram 的图像滤镜。官网
  • python-qrcode:一个纯 Python 实现的二维码生成器。官网
  • Quads:基于四叉树的计算机艺术。官网
  • scikit-image:一个用于(科学)图像处理的 Python 库。官网
  • thumbor:一个小型图像服务,具有剪裁,尺寸重设和翻转功能。官网
  • wand:MagickWand的 Python 绑定。MagickWand 是 ImageMagick 的 C API 。官网
  • face_recognition:简单易用的 python 人脸识别库。官网

OCR

光学字符识别库。

  • pyocr:Tesseract 和 Cuneiform 的一个封装(wrapper)。官网
  • pytesseract:Google Tesseract OCR 的另一个封装(wrapper)。官网
  • python-tesseract:Google Tesseract OCR 的一个包装类。

音频

用来操作音频的库

  • audiolazy:Python 的数字信号处理包。官网
  • audioread:交叉库 (GStreamer + Core Audio + MAD + FFmpeg) 音频解码。官网
  • beets:一个音乐库管理工具及 MusicBrainz 标签添加工具。官网
  • dejavu:音频指纹提取和识别。官网
  • django-elastic-transcoder:Django + Amazon Elastic Transcoder。官网
  • eyeD3:一个用来操作音频文件的工具,具体来讲就是包含 ID3 元信息的 MP3 文件。官网
  • id3reader:一个用来读取 MP3 元数据的 Python 模块。官网
  • m3u8:一个用来解析 m3u8 文件的模块。官网
  • mutagen:一个用来处理音频元数据的 Python 模块。官网
  • pydub:通过简单、简洁的高层接口来操作音频文件。官网
  • pyechonest:Echo Nest API 的 Python 客户端。官网
  • talkbox:一个用来处理演讲/信号的 Python 库。官网
  • TimeSide:开源 web 音频处理框架。官网
  • tinytag:一个用来读取 MP3, OGG, FLAC 以及 Wave 文件音乐元数据的库。官网
  • mingus:一个高级音乐理论和曲谱包,支持 MIDI 文件和回放功能。官网

Video

用来操作视频和 GIF 的库。

  • moviepy:一个用来进行基于脚本的视频编辑模块,适用于多种格式,包括动图 GIFs。官网
  • scikit-video:SciPy 视频处理常用程序。官网

地理位置

地理编码地址以及用来处理经纬度的库。

  • GeoDjango:世界级地理图形 web 框架。官网
  • GeoIP:MaxMind GeoIP Legacy 数据库的 Python API。官网
  • geojson:GeoJSON 的 Python 绑定及工具。官网
  • geopy:Python 地址编码工具箱。官网
  • pygeoip:纯 Python GeoIP API。官网
  • django-countries:一个 Django 应用程序,提供用于表格的国家选择功能,国旗图标静态文件以及模型中的国家字段。官网

HTTP

使用 HTTP 的库。

  • aiohttp:基于 asyncio 的异步 HTTP 网络库。官网
  • requests:人性化的 HTTP 请求库。官网
  • grequests:requests 库 + gevent ,用于异步 HTTP 请求.官网
  • httplib2:全面的 HTTP 客户端库。官网
  • treq:类似 requests 的 Python API 构建于 Twisted HTTP 客户端之上。官网
  • urllib3:一个具有线程安全连接池,支持文件 post,清晰友好的 HTTP 库。官网

数据库

Python 实现的数据库。

  • pickleDB:一个简单,轻量级键值储存数据库。官网
  • PipelineDB:流式 SQL 数据库。官网
  • TinyDB:一个微型的,面向文档型数据库。官网
  • ZODB:一个 Python 原生对象数据库。一个键值和对象图数据库。官网

数据库驱动

用来连接和操作数据库的库。

  • MySQL:awesome-mysql 系列
    • aiomysql:基于 asyncio 的异步 MySQL 数据库操作库。官网
    • mysql-python:Python 的 MySQL 数据库连接器。官网
    • ysqlclient:mysql-python 分支,支持 Python 3。
    • oursql:一个更好的 MySQL 连接器,支持原生预编译指令和 BLOBs。官网
    • PyMySQL:纯 Python MySQL 驱动,兼容 mysql-python。官网
  • PostgreSQL
    • psycopg2:Python 中最流行的 PostgreSQL 适配器。官网
    • queries:psycopg2 库的封装,用来和 PostgreSQL 进行交互。官网
    • txpostgres:基于 Twisted 的异步 PostgreSQL 驱动。官网
  • 其他关系型数据库
    • apsw:另一个 Python SQLite 封装。官网
    • dataset:在数据库中存储 Python 字典
    • pymssql:一个简单的 Microsoft SQL Server 数据库接口。官网
  • NoSQL 数据库
    • asyncio-redis:基于 asyncio 的 redis 客户端 (PEP 3156)。官网
    • cassandra-python-driver:Cassandra 的 Python 驱动。官网
    • HappyBase:一个为 Apache HBase 设计的,对开发者友好的库。官网
    • Plyvel:一个快速且功能丰富的 LevelDB 的 Python 接口。官网
    • py2neo:Neo4j restful 接口的 Python 封装客户端。官网
    • pycassa:Cassandra 的 Python Thrift 驱动。官网
    • PyMongo:MongoDB 的官方 Python 客户端。官网
    • redis-py:Redis 的 Python 客户端。官网
    • telephus:基于 Twisted 的 Cassandra 客户端。官网
    • txRedis:基于 Twisted 的 Redis 客户端。官网

ORM

实现对象关系映射或数据映射技术的库。

  • 关系型数据库
    • Django Models:Django 的一部分。官网
    • SQLAlchemy:Python SQL 工具以及对象关系映射工具。官网
      • awesome-sqlalchemy 系列
    • Peewee:一个小巧,富有表达力的 ORM。官网
    • PonyORM:提供面向生成器的 SQL 接口的 ORM。官网
    • python-sql:编写 Python 风格的 SQL 查询。官网
  • NoSQL 数据库
    • django-mongodb-engine:Django MongoDB 后端。官网
    • PynamoDB:Amazon DynamoDB 的一个 Python 风格接口。官网
    • flywheel:Amazon DynamoDB 的对象映射工具。官网
    • MongoEngine:一个 Python 对象文档映射工具,用于 MongoDB。官网
    • hot-redis:为 Redis 提供 Python 丰富的数据类型。官网
    • redisco:一个 Python 库,提供可以持续存在在 Redis 中的简单模型和容器。官网
  • 其他
    • butterdb:Google Drive 电子表格的 Python ORM。官网

Web 框架

全栈 Web 框架。

  • Django:Python 界最流行的 web 框架。官网
    • awesome-django 系列
  • Flask:一个 Python 微型框架。官网
    • awesome-flask 系列
  • pyramid:一个小巧,快速,接地气的开源 Python web 框架。
    • awesome-pyramid 系列
  • Bottle:一个快速小巧,轻量级的 WSGI 微型 web 框架。官网
  • CherryPy:一个极简的 Python web 框架,服从 HTTP/1.1 协议且具有 WSGI 线程池。官网
  • TurboGears:一个可以扩展为全栈解决方案的微型框架。官网
  • web.py:一个 Python 的 web 框架,既简单,又强大。官网
  • web2py:一个全栈 web 框架和平台,专注于简单易用。官网
  • Tornado:一个 web 框架和异步网络库。官网
  • sanic:基于 Python3.5+ 的异步网络框架。官网

权限

允许或拒绝用户访问数据或功能的库。

  • Carteblanche:站在用户和设计者角度开发的一个代码对齐模块,很好地处理了代码导航及权限。官网
  • django-guardian:Django 1.2+ 实现了单个对象权限。官网
  • django-rules:一个小巧但是强大的应用,提供对象级别的权限管理,且不需要使用数据库。官网

CMS

内容管理系统

  • odoo-cms: 一个开源的,企业级 CMS,基于 odoo。官网
  • django-cms:一个开源的,企业级 CMS,基于 Django。官网
  • djedi-cms:一个轻量级但却非常强大的 Django CMS ,考虑到了插件,内联编辑以及性能。官网
  • FeinCMS:基于 Django 构建的最先进的内容管理系统之一。官网
  • Kotti:一个高级的,Python 范的 web 应用框架,基于 Pyramid 构建。官网
  • Mezzanine:一个强大的,持续的,灵活的内容管理平台。官网
  • Opps:一个为杂志,报纸网站以及大流量门户网站设计的 CMS 平台,基于 Django。官网
  • Plone:一个构建于开源应用服务器 Zope 之上的 CMS。官网
  • Quokka:灵活,可扩展的小型 CMS,基于 Flask 和 MongoDB。官网
  • Wagtail:一个 Django 内容管理系统。官网
  • Widgy:最新的 CMS 框架,基于 Django。官网

电子商务

用于电子商务以及支付的框架和库。

  • django-oscar:一个用于 Django 的开源的电子商务框架。官网
  • django-shop:一个基于 Django 的店铺系统。官网
  • Cartridge:一个基于 Mezzanine 构建的购物车应用。官网
  • shoop:一个基于 Django 的开源电子商务平台。官网
  • alipay:非官方的 Python 支付宝 API。官网
  • merchant:一个可以接收来自多种支付平台支付的 Django 应用。官网
  • money:一个货币类库。带有可选的 CLDR 后端本地化格式,提供可扩展的货币兑换解决方案。官网
  • python-currencies:显示货币格式以及它的数值。官网

RESTful API

用来开发 RESTful APIs 的库

  • Django
    • django-rest-framework:一个强大灵活的工具,用来构建 web API。官网
    • django-tastypie:为 Django 应用开发 API。官网
    • django-formapi:为 Django 的表单验证,创建 JSON APIs 。官网
  • Flask
    • flask-api:为 flask 开发的,可浏览 Web APIs 。官网
    • flask-restful:为 flask 快速创建 REST APIs 。官网
    • flask-restless:为 SQLAlchemy 定义的数据库模型创建 RESTful APIs 。官网
    • flask-api-utils:为 Flask 处理 API 表示和验证。官网
    • eve:REST API 框架,由 Flask, MongoDB 等驱动。官网
  • Pyramid
    • cornice:一个 Pyramid 的 REST 框架 。官网
  • 与框架无关的
    • falcon:一个用来建立云 API 和 web app 后端的高性能框架。官网
    • sandman:为现存的数据库驱动系统自动创建 REST APIs 。官网
    • restless:框架无关的 REST 框架 ,基于从 Tastypie 学到的知识。官网
    • ripozo:快速创建 REST/HATEOAS/Hypermedia APIs。官网

验证

实现验证方案的库。

  • OAuth
    • Authomatic:简单但是强大的框架,身份验证/授权客户端。官网
    • django-allauth:Django 的验证应用。官网
    • django-oauth-toolkit:为 Django 用户准备的 OAuth2。官网
    • django-oauth2-provider:为 Django 应用提供 OAuth2 接入。官网
    • Flask-OAuthlib:OAuth 1.0/a, 2.0 客户端实现,供 Flask 使用。官网
    • OAuthLib:一个 OAuth 请求-签名逻辑通用、 完整的实现。官网
    • python-oauth2:一个完全测试的抽象接口。用来创建 OAuth 客户端和服务端。官网
    • python-social-auth:一个设置简单的社会化验证方式。官网
    • rauth:OAuth 1.0/a, 2.0, 和 Ofly 的 Python 库。官网
    • sanction:一个超级简单的 OAuth2 客户端实现。官网
  • 其他
    • jose:JavaScript 对象签名和加密草案的实现。官网
    • PyJWT:JSON Web 令牌草案 01。官网
    • python-jws:JSON Web 签名草案 02 的实现。官网
    • python-jwt:一个用来生成和验证 JSON Web 令牌的模块。官网

模板引擎

模板生成和词法解析的库和工具。

  • Jinja2:一个现代的,对设计师友好的模板引擎。官网
  • Chameleon:一个 HTML/XML 模板引擎。 模仿了 ZPT(Zope Page Templates), 进行了速度上的优化。官网
  • Genshi:Python 模板工具,用以生成 web 感知的结果。官网
  • Mako:Python 平台的超高速轻量级模板。官网

队列

处理事件以及任务队列的库。

  • celery:一个异步任务队列/作业队列,基于分布式消息传递。官网
  • huey:小型多线程任务队列。官网
  • mrq:Mr. Queue -一个 Python 的分布式 worker 任务队列, 使用 Redis 和 gevent。官网
  • rq:简单的 Python 作业队列。官网
  • simpleq:一个简单的,可无限扩张的,基于亚马逊 SQS 的队列。官网

搜索

对数据进行索引和执行搜索查询的库和软件。

  • django-haystack:Django 模块化搜索。官网
  • elasticsearch-py:Elasticsearch 的官方底层 Python 客户端。官网
  • elasticsearch-dsl-py:Elasticsearch 的官方高级 Python 客户端。官网
  • solrpy:solr 的 Python 客户端。官网
  • Whoosh:一个快速的纯 Python 搜索引擎库。官网

动态消息

用来创建用户活动的库。

  • django-activity-stream:从你的站点行为中生成通用活动信息流。官网
  • Stream-Framework:使用 Cassandra 和 Redis 创建动态消息和通知系统。官网

资源管理

管理、压缩、缩小网站资源的工具。

  • django-compressor:将链接和内联的 JavaScript 或 CSS 压缩到一个单独的缓存文件中。官网
  • django-storages:一个针对 Django 的自定义存储后端的工具集合。官网
  • fanstatic:打包、优化,并且把静态文件依赖作为 Python 的包来提供。官网
  • File Conveyor:一个后台驻留的程序,用来发现和同步文件到 CDNs, S3 和 FTP。官网
  • Flask-Assets:帮你将 web 资源整合到你的 Flask app 中。官网
  • jinja-assets-compressor:一个 Jinja 扩展,用来编译和压缩你的资源。官网
  • webassets:为你的静态资源打包、优化和管理生成独一无二的缓存 URL。官网

缓存

缓存数据的库。

  • Beaker:一个缓存和会话库,可以用在 web 应用和独立 Python 脚本和应用上。官网
  • django-cache-machine:Django 模型的自动缓存和失效。官网
  • django-cacheops:具有自动颗粒化事件驱动失效功能的 ORM。官网
  • django-viewlet:渲染模板,同时具有额外的缓存控制功能。官网
  • dogpile.cache:dogpile.cache 是 Beaker 的下一代替代品,由同一作者开发。官网
  • HermesCache:Python 缓存库,具有基于标签的失效和 dogpile effect 保护功能。官网
  • johnny-cache:django 应用缓存框架。官网
  • pylibmc:libmemcached 接口的 Python 封装。官网

电子邮件

用来发送和解析电子邮件的库。

  • django-celery-ses:带有 AWS SES 和 Celery 的 Django email 后端。官网
  • envelopes:供人类使用的电子邮件库。官网
  • flanker:一个 email 地址和 Mime 解析库。官网
  • imbox:Python IMAP 库。官网
  • inbox.py:Python SMTP 服务器。官网
  • inbox:一个开源电子邮件工具箱。官网
  • lamson:Python 风格的 SMTP 应用服务器。官网
  • mailjet:Mailjet API 实现,用来提供批量发送邮件,统计等功能。官网
  • marrow.mailer:高性能可扩展邮件分发框架。官网
  • modoboa:一个邮件托管和管理平台,具有现代的、简约的 Web UI。官网
  • pyzmail:创建,发送和解析电子邮件。官网
  • Talon:Mailgun 库,用来抽取信息和签名。官网

国际化

用来进行国际化的库。

  • Babel:一个 Python 的国际化库。官网
  • Korean:一个韩语词态库。官网

URL 处理

解析 URLs 的库

  • furl:一个让处理 URL 更简单小型 Python 库。官网
  • purl:一个简单的,不可变的 URL 类,具有简洁的 API 来进行询问和处理。官网
  • pyshorteners:一个纯 Python URL 缩短库。官网
  • shorturl:生成短小 URL 和类似 bit.ly 短链的 Python 实现。官网
  • webargs:一个解析 HTTP 请求参数的库,内置对流行 web 框架的支持,包括 Flask, Django, Bottle, Tornado 和 Pyramid。官网

HTML 处理

处理 HTML 和 XML 的库。

  • BeautifulSoup:以 Python 风格的方式来对 HTML 或 XML 进行迭代,搜索和修改。官网
  • bleach:一个基于白名单的 HTML 清理和文本链接库。官网
  • cssutils:一个 Python 的 CSS 库。官网
  • html5lib:一个兼容标准的 HTML 文档和片段解析及序列化库。官网
  • lxml:一个非常快速,简单易用,功能齐全的库,用来处理 HTML 和 XML。官网
  • MarkupSafe:为 Python 实现 XML/HTML/XHTML 标记安全字符串。官网
  • pyquery:一个解析 HTML 的库,类似 jQuery。官网
  • requests-html:人性化的,Pythonic 的 HTML 解析库。官网
  • untangle:将 XML 文档转换为 Python 对象,使其可以方便的访问。官网
  • xhtml2pdf:HTML/CSS 转 PDF 工具。官网
  • xmltodict:像处理 JSON 一样处理 XML。官网

爬取网络站点的库

  • Scrapy:一个快速高级的屏幕爬取及网页采集框架。官网
  • cola:一个分布式爬虫框架。官网
  • Demiurge:基于 PyQuery 的爬虫微型框架。官网
  • feedparser:通用 feed 解析器。官网
  • Grab:站点爬取框架。官网
  • MechanicalSoup:用于自动和网络站点交互的 Python 库。官网
  • portia:Scrapy 可视化爬取。官网
  • pyspider:一个强大的爬虫系统。官网
  • RoboBrowser:一个简单的,Python 风格的库,用来浏览网站,而不需要一个独立安装的浏览器。官网

网页内容提取

用于进行网页内容提取的库。

  • Haul:一个可以扩展的图像爬取工具。官网
  • html2text:将 HTML 转换为 Markdown 格式文本。官网
  • lassie:人性化的网页内容检索库。官网
  • micawber:一个小型网页内容提取库,用来从 URLs 提取富内容。官网
  • newspaper:使用 Python 进行新闻提取,文章提取以及内容策展。官网
  • opengraph:一个用来解析开放内容协议(Open Graph Protocol)的 Python 模块。官网
  • python-goose:HTML 内容/文章提取器。官网
  • python-readability:arc90 公司 readability 工具的 Python 高速端口。官网
  • sanitize:为杂乱的数据世界带来调理性。官网
  • sumy:一个为文本文件和 HTML 页面进行自动摘要的模块。官网
  • textract:从任何格式的文档中提取文本,Word,PowerPoint,PDFs 等等。官网

表单

进行表单操作的库。

  • Deform:Python HTML 表单生成库,受到了 formish 表单生成库的启发。官网
  • django-bootstrap3:集成了 Bootstrap 3 的 Django。官网
  • django-crispy-forms:一个 Django 应用,他可以让你以一种非常优雅且 DRY(Don’t repeat yourself) 的方式来创建美观的表单。官网
  • django-remote-forms:一个平台独立的 Django 表单序列化工具。官网
  • WTForms:一个灵活的表单验证和呈现库。官网
  • WTForms-JSON:一个 WTForms 扩展,用来处理 JSON 数据。官网

数据验证

数据验证库。多用于表单验证。

  • Cerberus:一个映射验证器(mappings-validator)。支持多种规则,提供归一化功能,可以方便地定制为 Python 风格的 schema 定义。官网
  • colander:一个用于对从 XML, JSON,HTML 表单获取的数据或其他同样简单的序列化数据进行验证和反序列化的系统。官网
  • kmatch:一种用于匹配/验证/筛选 Python 字典的语言。官网
  • schema:一个用于对 Python 数据结构进行验证的库。官网
  • Schematics:数据结构验证。官网
  • valideer:轻量级可扩展的数据验证和适配库。官网
  • voluptuous:一个 Python 数据验证库。主要是为了验证传入 Python 的 JSON,YAML 等数据。官网
  • jsonschema:JSON Schema的 python 实现,用于 JSON 数据的验证。官网

反垃圾技术

帮助你和电子垃圾进行战斗的库。

  • django-simple-captcha:一个简单、高度可定制的 Django 应用,可以为任何 Django 表单添加验证码。官网
  • django-simple-spam-blocker:一个用于 Django 的简单的电子垃圾屏蔽工具。官网

标记

用来进行标记的库。

  • django-taggit:简单的 Django 标记工具。官网

管理面板

管理界面库。

  • Ajenti:一个你的服务器值得拥有的管理面板。官网
  • django-suit:Django 管理界面的一个替代品 (仅对于非商业用途是免费的)。官网
  • django-xadmin:Django admin 的一个替代品,具有很多不错的功能。官网
  • flask-admin:一个用于 Flask 的简单可扩展的管理界面框架。官网
  • flower:一个对 Celery 集群进行实时监控和提供 web 管理界面的工具。官网
  • Grappelli:Django 管理界面的一个漂亮的皮肤。官网
  • Wooey:一个 Django 应用,可以为 Python 脚本创建 web 用户界面。官网

静态站点生成器

静态站点生成器是一个软件,它把文本和模板作为输入,然后输出 HTML 文件。

  • Pelican:使用 Markdown 或 ReST 来处理内容, Jinja 2 来制作主题。支持 DVCS, Disqus.。AGPL 许可。官网
  • Cactus:为设计师设计的静态站点生成器。官网
  • Hyde:基于 Jinja2 的静态站点生成器。官网
  • Nikola:一个静态网站和博客生成器。官网
  • Tinkerer:Tinkerer 是一个博客引擎/静态站点生成器,由 Sphinx 驱动。官网
  • Lektor:一个简单易用的静态 CMS 和博客引擎。官网

进程

操作系统进程启动及通信库。

  • envoy:比 Python subprocess 模块更人性化。官网
  • sarge:另一 种 subprocess 模块的封装。官网
  • sh:一个完备的 subprocess 替代库。官网

并发和并行

用以进行并发和并行操作的库。

  • multiprocessing:(Python 标准库) 基于进程的“线程”接口。官网
  • threading:(Python 标准库)更高层的线程接口。官网
  • eventlet:支持 WSGI 的异步框架。官网
  • gevent:一个基于协程的 Python 网络库,使用 greenlet。官网
  • Tomorrow:用于产生异步代码的神奇的装饰器语法实现。官网
  • uvloop:在 libuv 之上超快速实现 asyncio 事件循环。官网

网络

用于网络编程的库。

  • asyncio:(Python 标准库) 异步 I/O, 事件循环, 协程以及任务。官网
  • Twisted:一个事件驱动的网络引擎。官网
  • pulsar:事件驱动的并发框架。官网
  • diesel:基于 Greenlet 的事件 I/O 框架。官网
  • pyzmq:一个 ZeroMQ 消息库的 Python 封装。官网
  • Toapi:一个轻巧,简单,快速的 Flask 库,致力于为所有网站提供 API 服务。官网
  • txZMQ:基于 Twisted 的 ZeroMQ 消息库的 Python 封装。官网

WebSocket

帮助使用 WebSocket 的库。

  • AutobahnPython:给 Python 、使用的 WebSocket & WAMP 基于 Twisted 和 asyncio。官网
  • Crossbar:开源统一应用路由(Websocket & WAMP for Python on Autobahn)。官网
  • django-socketio:给 Django 用的 WebSockets。官网
  • WebSocket-for-Python:为 Python2/3 以及 PyPy 编写的 WebSocket 客户端和服务器库。官网

WSGI 服务器

兼容 WSGI 的 web 服务器

  • gunicorn:Pre-forked, 部分是由 C 语言编写的。官网
  • uwsgi:uwsgi 项目的目的是开发一组全栈工具,用来建立托管服务, 由 C 语言编写。官网
  • bjoern:异步,非常快速,由 C 语言编写。官网
  • fapws3:异步 (仅对于网络端),由 C 语言编写。官网
  • meinheld:异步,部分是由 C 语言编写的。官网
  • netius:异步,非常快速。官网
  • paste:多线程,稳定,久经考验。官网
  • rocket:多线程。官网
  • waitress:多线程, 是它驱动着 Pyramid 框架。官网
  • Werkzeug:一个 WSGI 工具库,驱动着 Flask ,而且可以很方便大嵌入到你的项目中去。官网

RPC 服务器

兼容 RPC 的服务器。

  • SimpleJSONRPCServer:这个库是 JSON-RPC 规范的一个实现。官网
  • SimpleXMLRPCServer:(Python 标准库) 简单的 XML-RPC 服务器实现,单线程。官网
  • zeroRPC:zerorpc 是一个灵活的 RPC 实现,基于 ZeroMQ 和 MessagePack。官网

密码学

  • cryptography:这个软件包意在提供密码学基本内容和方法提供给 Python 开发者。官网
  • hashids:在 Python 中实现 hashids 。官网
  • Paramiko:SSHv2 协议的 Python (2.6+, 3.3+) ,提供客户端和服务端的功能。官网
  • Passlib:安全密码存储/哈希库,官网
  • PyCrypto:Python 密码学工具箱。官网
  • PyNacl:网络和密码学(NaCl) 库的 Python 绑定。官网

图形用户界面

用来创建图形用户界面程序的库。

  • curses:内建的 ncurses 封装,用来创建终端图形用户界面。官网
  • enaml:使用类似 QML 的 Declaratic 语法来创建美观的用户界面。官网
  • kivy:一个用来创建自然用户交互(NUI)应用程序的库,可以运行在 Windows, Linux, Mac OS X, Android 以及 iOS 平台上。官网
  • pyglet:一个 Python 的跨平台窗口及多媒体库。官网
  • PyQt:跨平台用户界面框架 Qt 的 Python 绑定 ,支持 Qt v4 和 Qt v5。官网
  • PySide:跨平台用户界面框架 Qt 的 Python 绑定 ,支持 Qt v4。官网
  • Tkinter:Tkinter 是 Python GUI 的一个事实标准库。官网
  • Toga:一个 Python 原生的, 操作系统原生的 GUI 工具包。官网
  • urwid:一个用来创建终端 GUI 应用的库,支持组件,事件和丰富的色彩等。官网
  • wxPython:wxPython 是 wxWidgets C++ 类库和 Python 语言混合的产物。官网
  • PyGObject:GLib/GObject/GIO/GTK+ (GTK+3) 的 Python 绑定。官网
  • Flexx:Flexx 是一个纯 Python 语言编写的用来创建 GUI 程序的工具集,它使用 web 技术进行界面的展示。官网

游戏开发

超赞的游戏开发库。

  • Cocos2d:cocos2d 是一个用来开发 2D 游戏, 示例和其他图形/交互应用的框架。基于 pyglet。官网
  • Panda3D:由迪士尼开发的 3D 游戏引擎,并由卡内基梅陇娱乐技术中心负责维护。使用 C++ 编写, 针对 Python 进行了完全的封装。官网
  • Pygame:Pygame 是一组 Python 模块,用来编写游戏。官网
  • PyOgre:Ogre 3D 渲染引擎的 Python 绑定,可以用来开发游戏和仿真程序等任何 3D 应用。官网
  • PyOpenGL:OpenGL 的 Python 绑定及其相关 APIs。官网
  • PySDL2:SDL2 库的封装,基于 ctypes。官网
  • RenPy:一个视觉小说(visual novel)引擎。官网

日志

用来生成和操作日志的库。

  • logging:(Python 标准库) 为 Python 提供日志功能。官网
  • logbook:Logging 库的替代品。官网
  • Eliot:为复杂的和分布式系统创建日志。官网
  • Raven:Sentry 的 Python 客户端。官网
  • Sentry:实时记录和收集日志的服务器。官网

测试

进行代码库测试和生成测试数据的库。

  • 测试框架
    • unittest:(Python 标准库) 单元测试框架。官网
    • nose:nose 扩展了 unittest 的功能。官网
    • contexts:一个 Python 3.3+ 的 BDD 框架。受到 C# – Machine.Specifications 的启发。官网
    • hypothesis:Hypothesis 是一个基于先进的 Quickcheck 风格特性的测试库。官网
    • mamba:Python 的终极测试工具, 拥护 BDD。官网
    • PyAutoGUI:PyAutoGUI 是一个人性化的跨平台 GUI 自动测试模块。官网
    • pyshould:Should 风格的断言,基于 PyHamcrest。官网
    • pytest:一个成熟的全功能 Python 测试工具。官网
    • green:干净,多彩的测试工具。官网
    • pyvows:BDD 风格的测试工具,受 Vows.js 的启发。官网
    • Robot Framework:一个通用的自动化测试框架。官网
  • Web 测试
    • Selenium:Selenium WebDriver 的 Python 绑定。官网
    • locust:使用 Python 编写的,可扩展的用户加载测试工具。官网
    • sixpack:一个和语言无关的 A/B 测试框架。官网
    • splinter:开源的 web 应用测试工具。官网
  • Mock 测试
    • mock:(Python 标准库) 一个用于伪造测试的库。官网
    • doublex:Python 的一个功能强大的 doubles  测试框架。官网
    • freezegun:通过伪造日期模块来生成不同的时间。官网
    • httmock:针对 Python 2.6+ 和 3.2+ 生成 伪造请求的库。官网
    • httpretty:Python 的 HTTP 请求 mock 工具。官网
    • responses:伪造 Python 中的 requests 库的一个通用库。官网
    • VCR.py:在你的测试中记录和重放 HTTP 交互。官网
  • 对象工厂
    • factoryboy:一个 Python 用的测试固件 (test fixtures) 替代库。官网
    • mixer:另外一个测试固件 (test fixtures) 替代库,支持 Django, Flask, SQLAlchemy, Peewee 等。官网
    • modelmommy:为 Django 测试创建随机固件。官网
  • 代码覆盖率
    • coverage:代码覆盖率测量。官网
    • Codecov:一个代码覆盖率测试工具,为开源项目提供免费代码覆盖率测试服务。官网
  • 伪数据
    • faker:一个 Python 库,用来生成伪数据。官网
    • fake2db:伪数据库生成器。官网
    • radar:生成随机的日期/时间。官网
  • 错误处理
    • FuckIt.py:FuckIt.py 使用最先进的技术来保证你的 Python 代码无论对错都能继续运行。官网

代码分析和 Lint 工具

进行代码分析,解析和操作代码库的库和工具。

  • 代码分析
    • coala:语言独立和易于扩展的代码分析应用程序。官网
    • code2flow:把你的 Python 和 JavaScript 代码转换为流程图。官网
    • pycallgraph:这个库可以把你的 Python 应用的流程(调用图)进行可视化。官网
    • pysonar2:Python 类型推断和检索工具。官网
  • Lint 工具
    • Flake8:模块化源码检查工具: pep8, pyflakes 以及 co。官网
    • Pylint:一个完全可定制的源码分析器。官网
    • YAPF: Google 的 Python 代码格式化工具。官网
    • pylama:Python 和 JavaScript 的代码审查工具。官网
  • 代码格式化
    • autopep8:自动格式化 Python 代码,以使其符合 PEP8 规范。官网
    • black:一个坚定的 Python 代码格式化工具。官网

调试工具

用来进行代码调试的库。

  • 调试器
    • ipdb:IPython 启用的 pdb。官网
    • pudb:全屏,基于控制台的 Python 调试器。官网
    • pyringe:可以在 Python 进程中附加和注入代码的调试器。官网
    • wdb:一个奇异的 web 调试器,通过 WebSockets 工作。官网
    • winpdb:一个具有图形用户界面的 Python 调试器,可以进行远程调试,基于 rpdb2。官网
    • django-debug-toolbar:为 Django 显示各种调试信息。官网
    • django-devserver:一个 Django 运行服务器的替代品。官网
    • flask-debugtoolbar:django-debug-toolbar 的 flask 版。官网
  • 性能分析器
    • lineprofiler:逐行性能分析。官网
    • Memory Profiler:监控 Python 代码的内存使用。官网、内存
    • profiling:一个交互式 Python 性能分析工具。官网
  • 其他
    • pyelftools:解析和分析 ELF 文件以及 DWARF 调试信息。官网
    • python-statsd:statsd 服务器的 Python 客户端。官网

科学计算和数据分析

用来进行科学计算和数据分析的库。

  • astropy:一个天文学 Python 库。官网
  • bcbio-nextgen:这个工具箱为全自动高通量测序分析提供符合最佳实践的处理流程。官网
  • bccb:生物分析相关代码集合。官网
  • Biopython:Biopython 是一组可以免费使用的用来进行生物计算的工具。官网
  • blaze:NumPy 和 Pandas 的大数据接口。官网
  • cclib:一个用来解析和解释计算化学软件包输出结果的库。官网
  • NetworkX:一个为复杂网络设计的高性能软件。官网
  • Neupy:执行和测试各种不同的人工神经网络算法。官网
  • Numba:Python JIT (just in time) 编译器,针对科学用的 Python ,由 Cython 和 NumPy 的开发者开发。官网
  • NumPy:使用 Python 进行科学计算的基础包。官网
  • Open Babel:一个化学工具箱,用来描述多种化学数据。官网
  • Open Mining:使用 Python 挖掘商业情报 (BI) (Pandas web 接口)。官网
  • orange:通过可视化编程或 Python 脚本进行数据挖掘,数据可视化,分析和机器学习。官网
  • Pandas:提供高性能,易用的数据结构和数据分析工具。官网
  • PyDy:PyDy 是 Python Dynamics 的缩写,用来为动力学运动建模工作流程提供帮助, 基于 NumPy, SciPy, IPython 和 matplotlib。官网
  • PyMC:马尔科夫链蒙特卡洛采样工具。官网
  • RDKit:化学信息学和机器学习软件。官网
  • SciPy:由一些基于 Python ,用于数学,科学和工程的开源软件构成的生态系统。官网
  • statsmodels:统计建模和计量经济学。官网
  • SymPy:一个用于符号数学的 Python 库。官网
  • zipline:一个 Python 算法交易库。官网
  • Bayesian-belief-networks:优雅的贝叶斯信念网络框架。官网

数据可视化

进行数据可视化的库。 参见: awesome-javascript。

  • matplotlib:一个 Python 2D 绘图库。官网
  • bokeh:用 Python 进行交互式 web 绘图。官网
  • ggplot:ggplot2 给 R 提供的 API 的 Python 版本。官网
  • plotly:协同 Python 和 matplotlib 工作的 web 绘图库。官网
  • pyecharts:基于百度 Echarts 的数据可视化库。官网
  • pygal:一个 Python SVG 图表创建工具。官网
  • pygraphviz:Graphviz 的 Python 接口。官网
  • PyQtGraph:交互式实时 2D/3D/ 图像绘制及科学/工程学组件。官网
  • SnakeViz:一个基于浏览器的 Python’s cProfile 模块输出结果查看工具。官网
  • vincent:把 Python 转换为 Vega 语法的转换工具。官网
  • VisPy:基于 OpenGL 的高性能科学可视化工具。官网

计算机视觉

计算机视觉库。

  • OpenCV:开源计算机视觉库。官网
  • pyocr:Tesseract 和 Cuneiform 的包装库。官网
  • pytesseract:Google Tesseract OCR 的另一包装库。官网
  • SimpleCV:一个用来创建计算机视觉应用的开源框架。官网

机器学习

机器学习库。 参见: awesome-machine-learning.

  • Caffe: 一个 Caffe 的 python 接口。官网
  • Caffe2:一个轻量级的,模块化的,可扩展的深度学习框架。官网
  • Crab:灵活、快速的推荐引擎。官网
  • gensim:人性化的话题建模库。官网
  • hebel:GPU 加速的深度学习库。官网
  • keras: 以 tensorflow/theano/CNTK 为后端的深度学习封装库,快速上手神经网络。官网
  • MXNet:一个高效和灵活的深度学习框架。官网
  • NuPIC:智能计算 Numenta 平台。官网
  • pattern:Python 网络挖掘模块。官网
  • PyBrain:另一个 Python 机器学习库。官网
  • pydeep:Python 深度学习库。官网
  • Pylearn2:一个基于 Theano 的机器学习库。官网
  • python-recsys:一个用来实现推荐系统的 Python 库。官网
  • Pytorch:一个具有张量和动态神经网络,并有强大 GPU 加速能力的深度学习框架。官网
  • scikit-learn:基于 SciPy 构建的机器学习 Python 模块。官网
  • skflow:一个 TensorFlow 的简化接口(模仿 scikit-learn)。官网
  • TensorFlow:谷歌开源的最受欢迎的深度学习框架。官网
  • Theano:一个快速数值计算库。官网
  • vowpalporpoise:轻量级 Vowpal Wabbit 的 Python 封装。官网

MapReduce

MapReduce 框架和库。

  • dpark:Spark 的 Python 克隆版,一个类似 MapReduce 的框架。官网
  • dumbo:这个 Python 模块可以让人轻松的编写和运行 Hadoop 程序。官网
  • luigi:这个模块帮你构建批处理作业的复杂流水线。官网
  • mrjob:在 Hadoop 或 Amazon Web Services 上运行 MapReduce 任务。官网
  • PySpark:Spark 的 Python API 。官网
  • streamparse:运行针对事实数据流的 Python 代码。集成了 Apache Storm。官网

函数式编程

使用 Python 进行函数式编程。

  • CyToolz:Toolz 的 Cython 实现 : 高性能函数式工具。官网
  • fn.py:在 Python 中进行函数式编程 : 实现了一些享受函数式编程缺失的功能。官网
  • funcy:炫酷又实用的函数式工具。官网
  • Toolz:一组用于迭代器,函数和字典的函数式编程工具。官网

第三方 API

用来访问第三方 API 的库。 参见: List of Python API Wrappers and Libraries。

  • apache-libcloud:一个为各种云设计的 Python 库。官网
  • boto:Amazon Web Services 的 Python 接口。官网
  • django-wordpress:WordPress models and views for Django.官网
  • facebook-sdk:Facebook 平台的 Python SDK.官网
  • facepy:Facepy 让和 Facebook’s Graph API 的交互变得更容易。官网
  • gmail:Gmail 的 Python 接口。官网
  • google-api-python-client:Python 用的 Google APIs 客户端库。官网
  • gspread:Google 电子表格的 Python API.官网
  • twython:Twitter API 的封装。官网

DevOps 工具

用于 DevOps 的软件和库。

  • Ansible:一个非常简单的 IT 自动化平台。官网
  • SaltStack:基础设施自动化和管理系统。官网
  • OpenStack:用于构建私有和公有云的开源软件。官网
  • Docker Compose:快速,分离的开发环境,使用 Docker。官网
  • Fabric:一个简单的,Python 风格的工具,用来进行远程执行和部署。官网
  • cuisine:为 Fabric 提供一系列高级函数。官网
  • Fabtools:一个用来编写超赞的 Fabric 文件的工具。官网
  • gitapi:Git 的纯 Python API。官网
  • hgapi:Mercurial 的纯 Python API。官网
  • honcho:Foreman 的 Python 克隆版,用来管理基于 Procfile 的应用。官网
  • pexpect:Controlling interactive programs in a pseudo-terminal like 在一个伪终端中控制交互程序,就像 GNU expect 一样。官网
  • psutil:一个跨平台进程和系统工具模块。官网
  • supervisor:UNIX 的进程控制系统。官网

任务调度

任务调度库。

  • APScheduler:轻巧但强大的进程内任务调度,使你可以调度函数。官网
  • django-schedule:一个 Django 排程应用。官网
  • doit:一个任务执行和构建工具。官网
  • gunnery:分布式系统使用的多用途任务执行工具 ,具有 web 交互界面。官网
  • Joblib:一组为 Python 提供轻量级作业流水线的工具。官网
  • Plan:如有神助地编写 crontab 文件。官网
  • schedule:人性化的 Python 任务调度库。官网
  • Spiff:使用纯 Python 实现的强大的工作流引擎。官网
  •   TaskFlow:一个可以让你方便执行任务的 Python 库,一致并且可靠。官网 *  AirFlow:Airflow 是Airbnb公司开源的,是一个工作流分配管理系统,通过有向非循环图的方式管理任务流程,设置任务依赖关系和时间调度。官方  

    外来函数接口

使用外来函数接口的库。

  • cffi:用来调用 C 代码的外来函数接口。官网
  • ctypes:(Python 标准库) 用来调用 C 代码的外来函数接口。官网
  • PyCUDA:Nvidia CUDA API 的封装。官网
  • SWIG:简化的封装和接口生成器。官网

高性能

让 Python 更快的库。

  • Cython:优化的 Python 静态编译器。使用类型混合使 Python 编译成 C 或 C++ 模块来获得性能的极大提升。官网
  • PeachPy:嵌入 Python 的 x86-64 汇编器。可以被用作 Python 内联的汇编器或者是独立的汇编器,用于 Windows, Linux, OS X, Native Client 或者 Go 。官网
  • PyPy:使用 Python 实现的 Python。解释器使用黑魔法加快 Python 运行速度且不需要加入额外的类型信息。官网
  • Pyston:使用 LLVM 和现代 JIT 技术构建的 Python 实现,目标是为了获得很好的性能。官网
  • Stackless Python:一个强化版的 Python。官网

微软的 Windows 平台

在 Windows 平台上进行 Python 编程。

  • Python(x,y):面向科学应用的 Python 发行版,基于 Qt 和 Spyder。官网
  • pythonlibs:非官方的 Windows 平台 Python 扩展二进制包。官网
  • PythonNet:Python 与 .NET 公共语言运行库 (CLR)的集成。官网
  • PyWin32:针对 Windows 的 Python 扩展。官网
  • WinPython:Windows 7/8 系统下便携式开发环境。官网

网络可视化和 SDN

用来进行网络可视化和 SDN(软件定义网络)的工具和库。

  • Mininet:一款流行的网络模拟器以及用 Python 编写的 API。官网
  • POX:一个针对基于 Python 的软件定义网络应用(例如 OpenFlow SDN 控制器)的开源开发平台。官网
  • Pyretic:火热的 SDN 编程语言中的一员,为网络交换机和模拟器提供强大的抽象能力。官网
  •   SDX Platform:基于 SDN 的 IXP 实现,影响了 Mininet, POX 和 Pyretic。官网
  •   NRU:一个基于组件的软件定义网络框架。官网

硬件

用来对硬件进行编程的库。

  • ino:操作 Arduino 的命令行工具。官网
  • Pyro:Python 机器人编程库。官网
  • PyUserInput:跨平台的,控制鼠标和键盘的模块。官网
  • scapy:一个非常棒的操作数据包的库。官网
  • wifi:一个 Python 库和命令行工具用来在 Linux 平台上操作 WiFi。官网
  • Pingo:Pingo 为类似 Raspberry Pi,pcDuino, Intel Galileo 等设备提供统一的 API 用以编程。官网

兼容性

帮助从 Python 2 向 Python 3 迁移的库。

  • Python-Future:这就是 Python 2 和 Python 3 之间丢失的那个兼容性层。官网
  • Python-Modernize:使 Python 代码更加现代化以便最终迁移到 Python 3。官网
  • Six:Python 2 和 3 的兼容性工具。官网

杂项

不属于上面任何一个类别,但是非常有用的库。

  • blinker:一个快速的 Python 进程内信号/事件分发系统。官网
  • itsdangerous:一系列辅助工具用来将可信的数据传入不可信的环境。官网
  • pluginbase:一个简单但是非常灵活的 Python 插件系统。官网
  • Pychievements:一个用来创建和追踪成就的 Python 框架。官网
  • Tryton:一个通用商务框架。官网

算法和设计模式

Python 实现的算法和设计模式。

  • algorithms:一个 Python 算法模块。官网
  • python-patterns:Python 设计模式的集合。官网
  • sortedcontainers:快速,纯 Python 实现的 SortedList,SortedDict 和 SortedSet 类型。官网

编辑器插件

编辑器和 IDE 的插件

  • Emacs
    • Elpy:Emacs Python 开发环境。官网
  • Sublime Text
    • SublimeJEDI:一个 Sublime Text 插件,用来使用超赞的自动补全库 Jedi。官网
    • Anaconda:Anaconda 把你的 Sublime Text 3 变成一个功能齐全的 Python IDE。官网
  • Vim
    • YouCompleteMe:引入基于 Jedi 的 Python 自动补全引擎。官网
    • Jedi-vim:绑定 Vim 和 Jedi 自动补全库对 Python 进行自动补全。官网
    • Python-mode:将 Vim 变成 Python IDE 的一款多合一插件。官网
  • Visual Studio
    • PTVS:Visual Studio 的 Python 工具。官网

集成开发环境

流行的 Python 集成开发环境。

  • PyCharm:商业化的 Python IDE ,由 JetBrains 开发。也有免费的社区版提供。官网
  • LiClipse:基于 Eclipse 的免费多语言 IDE 。使用 PyDev 来支持 Python 。官网
  • Spyder:开源 Python IDE。官网

自动聊天工具

用于开发聊天机器人的库

  •   Errbot:最简单和最流行的聊天机器人用来实现自动聊天工具。官网

服务

在线工具和简化开发的 API 。

金融数据

  • Tushare :一个可以提供免费股票、基金、期货、港股等金融数据的 Python 开源数据。官网
  • Ta-Lib :金融数据技术分析库,可以依据原始金融数据计算各种技术指标,计算性能比较优异。官网

持续集成

参见: awesome-CIandCD.

  • Travis CI:一个流行的工具,为你的开源和 私人 项目提供持续集成服务。(仅支持 GitHub)官网
  • CircleCI:一个持续集成工具,可以非常快速的进行并行测试。 (仅支持 GitHub)官网
  • Vexor CI:一个为私人 app 提供持续集成的工具,支持按分钟付费。官网
  • Wercker:基于 Docker 平台,用来构建和部署微服务。官网

代码质量

  • Codacy:自动化代码审查,更加快速的发布高质量代码。对于开源项目是免费的。官网
  • QuantifiedCode:一个数据驱动、自动、持续的代码审查工具。官网

资源

在这里可以找到新的 Python 库。

网站

  • r/Python
  • CoolGithubProjects
  • Django Packages
  • Full Stack Python
  • Python 3 Wall of Superpowers
  • Python Hackers
  • Python ZEEF
  • Trending Python repositories on GitHub today
  • PyPI Ranking

周刊

  • Import Python Newsletter
  • Pycoder’s Weekly
  • Python Weekly

Twitter

  • @codetengu
  • @getpy
  • @planetpython
  • @pycoders
  • @pypi
  • @pythontrending
  • @PythonWeekly

学习指南

  • Scipy-lecture-notes:如何用 Python 来做学术?官网
  • SScientific-python-lectures:Python 科学计算的资料。官网
  • Mario-Level-1:用 Python 和 Pygame 写的超级马里奥第一关。官网
  • Python Koans:Python 的交互式学习工具。官网
  • Minecraft:用 python 写的 Minecraft 游戏。官网
  • pycrumbs:Python 资源大全。官网
  • python-patterns:使用 python 实现设计模式。官网
  • Projects:Python 项目大集合。官网
  • The Hitchhiker’s Guide to Python:旅行者的 Python 学习指南。官网
  • Code Like a Pythonista: Idiomatic Python:如何像 Python 高手(Pythonista)一样编程。官网
阅读全文 »

awesome-machine-learning-cn

发表于 2012-06-21 | 分类于 awesome

机器学习资源大全中文版

我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列的资源整理。awesome-machine-learning 就是 josephmisiti 发起维护的机器学习资源列表,内容包括了机器学习领域的框架、库以及软件(按编程语言排序)。

Awesome 系列虽然挺全,但基本只对收录的资源做了极为简要的介绍,如果有更详细的中文介绍,对相应开发者的帮助会更大。这也是我们发起这个开源项目的初衷。


我们要做什么?

  • 基于 awesome-machine-learning 资源列表,我们将对各个资源项进行编译整理。
  • 整理后的内容,将收录在伯乐在线资源频道。可参考已整理的内容:
    • 《Apache OpenNLP:处理类似分词等常见任务的工具》
    • 《Mallet:NLP工具,支持文档分类、聚类、主题建模》

如何参与本项目?


本项目的参与者

  • 维护者:tangyouhua

  • 贡献者:toolate、冰斌、云中游、Daetalus、赵叶宇、You

注:名单不分排名,不定期补充更新


C++

计算机视觉

  • CCV:基于C语言/提供缓存/核心的机器视觉库,新颖的机器视觉库。官网
  • OpenCV:它提供C++、C、Python、Java 以及 MATLAB接口。并支持Windows、Linux、Android 和 Mac OS操作系统。官网

通用机器学习

  • MLPack:官网。
  • DLib:官网。
  • ecogg:官网。
  • shark:官网。

Clojure

通用机器学习

  • Clojure Toolbox:Clojure语言库与工具的分类目录。官网

Go

自然语言处理

  • go-porterstemmer:一个Porter词干提取算法的原生Go语言净室实现。官网
  • paicehusk:Paice/Husk词干提取算法的Go语言实现。官网
  • snowball:Go语言版的Snowball词干提取器。官网

通用机器学习

  • Go Learn:Go语言机器学习库。官网
  • go-pr:Go语言机器学习包。官网
  • bayesian:Go语言朴素贝叶斯分类库。官网
  • go-galib:Go语言遗传算法库。官网

数据分析/数据可视化

  • go-graph:Go语言图形库。官网
  • SVGo:Go语言的SVG生成库。官网

Java

自然语言处理

  • CoreNLP:斯坦福大学的CoreNLP提供一系列的自然语言处理工具,输入原始英语文本,可以给出单词的基本形式(下面Stanford开头的几个工具都包含其中)。官网
  • Stanford Parser:一个自然语言解析器。官网
  • Stanford POS Tagger:一个词性分类器。官网
  • Stanford Name Entity Recognizer:Java实现的名称识别器。官网
  • Stanford Word Segmenter:分词器,很多NLP工作中都要用到的标准预处理步骤。官网。
  • Tregex、Tsurgeon与Semgrex:用来在树状数据结构中进行模式匹配,基于树关系以及节点匹配的正则表达式(名字是“tree regular expressions”的缩写)官网
  • Stanford Phrasal:最新的基于统计短语的机器翻译系统,java编写。官网
  • Stanford Tokens Regex:用以定义文本模式的框架。官网
  • Stanford Temporal Tagger:SUTime是一个识别并标准化时间表达式的库。官网
  • Stanford SPIED:在种子集上使用模式,以迭代方式从无标签文本中学习字符实体。官网。
  • Stanford Topic Modeling Toolbox:为社会科学家及其他希望分析数据集的人员提供的主题建模工具。官网
  • Twitter Text Java:Java实现的推特文本处理库。官网
  • MALLET:基于Java的统计自然语言处理、文档分类、聚类、主题建模、信息提取以及其他机器学习文本应用包。官网
  • OpenNLP:处理自然语言文本的机器学习工具包。官网
  • LingPipe:使用计算机语言学处理文本的工具包。官网

通用机器学习

  • MLlib in Apache Spark:Spark中的分布式机器学习程序库。官网
  • Mahout:分布式的机器学习库。官网
  • Stanford Classifier:斯坦福大学的分类器。官网
  • Weka:Weka是数据挖掘方面的机器学习算法集。官网
  • ORYX:提供一个简单的大规模实时机器学习/预测分析基础架构。官网

数据分析/数据可视化

  • Hadoop:大数据分析平台。官网
  • Spark:快速通用的大规模数据处理引擎。官网
  • Impala:为Hadoop实现实时查询。官网

Javascript

自然语言处理

  • Twitter-text-js:JavaScript实现的推特文本处理库。官网
  • NLP.js:javascript及coffeescript编写的NLP工具。官网
  • natural:Node下的通用NLP工具。官网
  • Knwl.js:JS编写的自然语言处理器。官网

数据分析/数据可视化

  • D3.js:官网。
  • High Charts:官网。
  • NVD3.js:官网。
  • dc.js:官网。
  • chartjs:官网。
  • dimple:官网。
  • amCharts:官网。

通用机器学习

  • Convnet.js:训练深度学习模型的JavaScript库。官网
  • Clustering.js:用JavaScript实现的聚类算法,供Node.js及浏览器使用。官网
  • Decision Trees:Node.js实现的决策树,使用ID3算法。官网
  • Node-fann:Node.js下的快速人工神经网络库。官网
  • Kmeans.js:k-means算法的简单Javascript实现,供Node.js及浏览器使用。官网
  • LDA.js:供Node.js用的LDA主题建模工具。官网
  • Learning.js:逻辑回归/c4.5决策树的JavaScript实现。官网
  • Machine Learning:Node.js的机器学习库。官网
  • Node-SVM:Node.js的支持向量机。官网
  • Brain:JavaScript实现的神经网络。官网
  • Bayesian-Bandit:贝叶斯强盗算法的实现,供Node.js及浏览器使用。官网

Julia

通用机器学习

  • PGM:Julia实现的概率图模型框架。官网
  • DA:Julia实现的正则化判别分析包。官网
  • Regression:回归分析算法包(如线性回归和逻辑回归)。官网
  • Local Regression:局部回归,非常平滑!。官网
  • Naive Bayes:朴素贝叶斯的简单Julia实现。官网
  • Mixed Models:(统计)混合效应模型的Julia包。官网
  • Simple MCMC:Julia实现的基本mcmc采样器。官网。
  • Distance:Julia实现的距离评估模块。官网
  • Decision Tree:决策树分类器及回归分析器。官网
  • Neural:Julia实现的神经网络。官网
  • MCMC:Julia下的MCMC工具。官网
  • GLM:Julia写的广义线性模型包。官网
  • Online Learning:官网
  • GLMNet:GMLNet的Julia包装版,适合套索/弹性网模型。官网
  • Clustering:k-means, dp-means等数据聚类的基本函数。官网
  • SVM:Julia下的支持向量机。官网
  • Kernal Density:Julia下的核密度估计器。官网
  • Dimensionality Reduction:降维算法。官网
  • NMF:Julia下的非负矩阵分解包。官网
  • ANN:Julia实现的神经网络。官网

自然语言处理

  • Topic Models:Julia下的主题建模。官网
  • Text Analysis:Julia下的文本分析包。官网

数据分析/数据可视化

  • Graph Layout:纯Julia实现的图布局算法。官网
  • Data Frames Meta:DataFrames的元编程工具。官网
  • Julia Data:处理表格数据的Julia库。官网
  • Data Read:从Stata、SAS、SPSS读取文件。官网
  • Hypothesis Tests:Julia中的假设检验包。官网
  • Gladfly:Julia编写的灵巧的统计绘图系统。官网
  • Stats:Julia编写的统计测试函数包。官网
  • RDataSets:读取R语言中众多可用的数据集的Julia函数包。官网
  • DataFrames:处理表格数据的Julia库。官网
  • Distributions:概率分布及相关函数的Julia包。官网
  • Data Arrays:元素值可以为空的数据结构。官网
  • Time Series:Julia的时间序列数据工具包。官网
  • Sampling:Julia的基本采样算法包。官网

杂项/演示文稿

  • DSP:数字信号处理。官网
  • JuliaCon Presentations:Julia大会上的演示文稿。官网
  • SignalProcessing:Julia的信号处理工具。官网
  • Images:Julia的图片库。官网

Lua

通用机器学习

  • Torch7。
    • cephes:—Cephes数学函数库,包装成Torch可用形式提供并包装了超过180个特殊的数学函数,由Stephen L. Moshier开发,是SciPy的核心,应用于很多场合。官网
    • graph:供Torch使用的图形包。官网
    • randomkit:从Numpy提取的随机数生成包,包装成Torch可用形式。官网
    • signal:Torch-7可用的信号处理工具包,可进行FFT, DCT, Hilbert, cepstrums, stft等变换。官网
    • nn:Torch可用的神经网络包。官网
    • nngraph:为nn库提供图形计算能力。官网
    • nnx:一个不稳定实验性的包,扩展Torch内置的nn库。官网
    • optim:Torch可用的优化算法库,包括 SGD, Adagrad, 共轭梯度算法, LBFGS, RProp等算法。官网
    • unsup:Torch下的非监督学习包提供的模块与nn(LinearPsd、ConvPsd、AutoEncoder、…)及独立算法(k-means、PCA)等兼容。官网
    • manifold:操作流形的包。官网
    • svm:Torch的支持向量机库。官网
    • lbfgs:将liblbfgs包装为FFI接口。官网
    • vowpalwabbit:老版的vowpalwabbit对torch的接口。官网
    • OpenGM:OpenGM是C++编写的图形建模及推断库,该binding可以用Lua以简单的方式描述图形,然后用OpenGM优化。官网。
    • sphagetti:MichaelMathieu为torch7编写的稀疏线性模块。官网
    • LuaSHKit:将局部敏感哈希库SHKit包装成lua可用形式。官网
    • kernel smoothing:KNN、核权平均以及局部线性回归平滑器。官网
    • cutorch:torch的CUDA后端实现。官网
    • cunn:torch的CUDA神经网络实现。官网
    • imgraph:torch的图像/图形库,提供从图像创建图形、分割、建立树、又转化回图像的例程。官网
    • videograph:torch的视频/图形库,提供从视频创建图形、分割、建立树、又转化回视频的例程。官网
    • saliency:积分图像的代码和工具,用来从快速积分直方图中寻找兴趣点。官网
    • stitch:使用hugin拼合图像并将其生成视频序列。官网
    • sfm:运动场景束调整/结构包。官网
    • fex:torch的特征提取包,提供SIFT和dSIFT模块。官网
    • OverFeat:当前最高水准的通用密度特征提取器。官网
  • Numeric Lua:官网。
  • Lunatic Python:官网。
  • SciLua:官网。
  • Lua - Numerical Algorithms:官网。
  • Lunum:官网。

演示及脚本

  • Core torch7 demos repository:核心torch7演示程序库。官网
    • 线性回归、逻辑回归
    • 人脸检测(训练和检测是独立的演示)
    • 基于mst的断词器
    • train-a-digit-classifier
    • train-autoencoder
    • optical flow demo
    • train-on-housenumbers
    • train-on-cifar
    • tracking with deep nets
    • kinect demo
    • 滤波可视化
    • saliency-networks
  • Training a Convnet for the Galaxy-Zoo Kaggle challenge(CUDA demo):官网
  • Music Tagging:torch7下的音乐标签脚本。官网
  • torch-datasets:官网 读取几个流行的数据集的脚本,包括
    • BSR 500
    • CIFAR-10
    • COIL
    • Street View House Numbers
    • MNIST
    • NORB
  • Atari2600:在Arcade Learning Environment模拟器中用静态帧生成数据集的脚本。官网

Matlab

计算机视觉

  • Contourlets:实现轮廓波变换及其使用函数的MATLAB源代码。官网 。
  • Shearlets:剪切波变换的MATLAB源码。官网
  • Curvelets:Curvelet变换的MATLAB源码(Curvelet变换是对小波变换向更高维的推广,用来在不同尺度角度表示图像)。官网
  • Bandlets:Bandlets变换的MATLAB源码。官网

自然语言处理

  • NLP:一个Matlab的NLP库。官网

通用机器学习

  • Training a deep autoencoder or a classifier on MNIST digits:在MNIST字符数据集上训练一个深度的autoencoder或分类器。官网
  • t-Distributed Stochastic Neighbor Embedding:获奖的降维技术,特别适合于高维数据集的可视化。官网
  • Spider:Matlab机器学习的完整面向对象环境。官网
  • LibSVM:支持向量机程序库。官网
  • LibLinear:大型线性分类程序库。官网
  • Machine Learning Module:M. A .Girolami教授的机器学习课程,包括PDF、讲义及代码。官网
  • Caffe:考虑了代码清洁、可读性及速度的深度学习框架。官网
  • Pattern Recognition Toolbox:Matlab中的模式识别工具包、完全面向对象。官网

数据分析/数据可视化

  • matlab_gbl:处理图像的Matlab包。官网
  • gamic:图像算法纯Matlab高效实现,对MatlabBGL的mex函数是个补充。官网

.NET

计算机视觉

  • OpenCVDotNet:包装器,使.NET程序能使用OpenCV代码。官网
  • Emgu CV:跨平台的包装器,能在Windows、Linus、Mac OS X、iOS和Android上编译。官网

自然语言处理

  • Stanford.NLP for .NET:斯坦福大学NLP包在.NET上的完全移植,还可作为NuGet包进行预编译。官网 。

通用机器学习

  • Accord.MachineLearning:随机抽样一致性算法、交叉验证、网格搜索这个包是Accord.NET框架的一部分支持向量机、决策树、朴素贝叶斯模。型、K-means、高斯混合模型和机器学习应用的通用算法。官网:
  • Vulpes:F#语言实现的Deep belief和深度学习包,它在Alea.cuBase下利用CUDA GPU来执行。官网
  • Encog:先进的神经网络和机器学习框架,包括用来创建多种网络的类,也支。持神经网络需要的数据规则化及处理的类它的训练采用多线程弹性传播。它也能使用GPU加快处理时间提供了图形化界面来帮助建模和训练神经网络。官网
  • Neural Network Designer:这是一个数据库管理系统和神经网络设计器设计器用WPF开发,也是一个UI,你可以设计你的神经网络、查询网络、创建并配置聊天机器人,它能问问题,并从你的反馈中学习这些机器人甚至可以从网络搜集信息用来输出,或是用来学习。官网

数据分析/数据可视化

  • numl:numl这个机器学习库,目标就是简化预测和聚类的标准建模技术。官网
  • Math.NET Numerics:Math.NET项目的数值计算基础,着眼提供科学、工程以及日常数值计算的方法和算法支持 Windows、Linux 和 。Mac上的 .Net 4.0、.Net 3.5 和 Mono ,Silverlight 5、WindowsPhone/SL 8、WindowsPhone 8.1 以及装有 PCL Portable Profiles 47 及 344的Windows 8, 装有 Xamarin的Android/iOS。官网
  • Sho:Sho是数据分析和科学计算的交互式环境,可以让你将脚本(IronPython语言)和编译的代码(.NET)无缝连接,以快速灵活的建立原型。官网这个环境包括强大高效的库,如线性代数、数据可视化,可供任何.NET语言使用,还为快速开发提供了功能丰富的交互式shell

Python

计算机视觉

  • SimpleCV:开源计算机视觉框架,可以访问如OpenCV等高性能计算机视觉库使用Python编写,可以在Mac、Windows以及Ubuntu上运行。官网。

自然语言处理

  • NLTK:一个领先的平台,用来编写处理人类语言数据的Python程序。官网
  • Pattern:Python可用的web挖掘模块,包括自然语言处理、机器学习等工具。官网
  • TextBlob:为普通自然语言处理任务提供一致的API,以NLTK和Pattern为基础,并和两者都能很好兼容。官网。
  • jieba:中文断词工具。官网
  • SnowNLP:中文文本处理库。官网
  • loso:另一个中文断词库。官网
  • genius:基于条件随机域的中文断词库。官网
  • nut:自然语言理解工具包。官网

通用机器学习

  • Bayesian Methods for Hackers:Python语言概率规划的电子书。官网
  • MLlib in Apache Spark:Spark下的分布式机器学习库。官网
  • scikit-learn:基于SciPy的机器学习模块。官网
  • graphlab-create:包含多种机器学习模块的库(回归、聚类、推荐系统、图分析等),基于可以磁盘存储的DataFrame。官网
  • BigML:连接外部服务器的库。官网
  • pattern:Python的web挖掘模块。官网
  • NuPIC:Numenta公司的智能计算平台。官网
  • Pylearn2:基于Theano的机器学习库。官网
  • hebel:Python编写的使用GPU加速的深度学习库。官网
  • gensim:主题建模工具。官网
  • PyBrain:另一个机器学习库。官网
  • Crab:可扩展的、快速推荐引擎。官网
  • python-recsys:Python实现的推荐系统。官网
  • thinking bayes:关于贝叶斯分析的书籍。官网
  • Restricted Boltzmann Machines:Python实现的受限波尔兹曼机。官网
  • Bolt:在线学习工具箱。官网
  • CoverTree:cover tree的Python实现,scipy.spatial.kdtree便捷的替代。官网
  • nilearn:Python实现的神经影像学机器学习库。官网
  • Shogun:机器学习工具箱。官网
  • Pyevolve:遗传算法框架。官网
  • Caffe:考虑了代码清洁、可读性及速度的深度学习框架。官网
  • breze:深度及递归神经网络的程序库,基于Theano。官网

数据分析/数据可视化

  • SciPy:基于Python的数学、科学、工程开源软件生态系统。官网
  • NumPy:Python科学计算基础包。官网
  • Numba:Python的低级虚拟机JIT编译器,Cython and NumPy的开发者编写,供科学计算使用。官网
  • NetworkX:为复杂网络使用的高效软件。官网
  • Pandas:这个库提供了高性能、易用的数据结构及数据分析工具。官网
  • Open Mining:Python中的商业智能工具(Pandas web接口)。官网
  • PyMC:MCMC采样工具包。官网
  • zipline:Python的算法交易库。官网
  • PyDy:全名Python Dynamics,协助基于NumPy、SciPy、IPython以及 matplotlib的动态建模工作流。官网
  • SymPy:符号数学Python库。官网
  • statsmodels:Python的统计建模及计量经济学库。官网
  • astropy:Python天文学程序库,社区协作编写。官网
  • matplotlib:Python的2D绘图库。官网
  • bokeh:Python的交互式Web绘图库。官网
  • plotly:Python and matplotlib的协作web绘图库。官网
  • vincent:将Python数据结构转换为Vega可视化语法。官网
  • d3py:Python的绘图库,基于D3.js。官网
  • ggplot:和R语言里的ggplot2提供同样的API。官网
  • Kartograph.py:Python中渲染SVG图的库,效果漂亮。官网
  • pygal:Python下的SVG图表生成器。官网
  • pycascading:官网

杂项脚本/iPython笔记/代码库

  • pattern_classification:官网
  • thinking stats 2:官网
  • hyperopt:官网
  • numpic:官网
  • 2012-paper-diginorm:官网
  • ipython-notebooks:官网
  • decision-weights:官网
  • Sarah Palin LDA:Sarah Palin关于主题建模的电邮。官网
  • Diffusion Segmentation:基于扩散方法的图像分割算法集合。官网
  • Scipy Tutorials:SciPy教程,已过时,请查看scipy-lecture-notes。官网
  • Crab:Python的推荐引擎库。官网
  • BayesPy:Python中的贝叶斯推断工具。官网
  • scikit-learn tutorials:scikit-learn学习笔记系列。官网
  • sentiment-analyzer:推特情绪分析器。官网
  • group-lasso:坐标下降算法实验,应用于(稀疏)群套索模型。官网
  • mne-python-notebooks:使用 mne-python进行EEG/MEG数据处理的IPython笔记。官网
  • pandas cookbook:使用Python pandas库的方法书。官网
  • climin:机器学习的优化程序库,用Python实现了梯度下降、LBFGS、rmsprop、adadelta 等算法。官网

Kaggle竞赛源代码

  • wiki challange:Kaggle上一个维基预测挑战赛 Dell Zhang解法的实现。官网
  • kaggle insults:Kaggle上”从社交媒体评论中检测辱骂“竞赛提交的代码。官网
  • kaggle_acquire-valued-shoppers-challenge:Kaggle预测回头客挑战赛的代码。官网
  • kaggle-cifar:Kaggle上CIFAR-10 竞赛的代码,使用cuda-convnet。官网
  • kaggle-blackbox:Kaggle上blackbox赛代码,关于深度学习。官网
  • kaggle-accelerometer:Kaggle上加速度计数据识别用户竞赛的代码。官网
  • kaggle-advertised-salaries:Kaggle上用广告预测工资竞赛的代码。官网
  • kaggle amazon:Kaggle上给定员工角色预测其访问需求竞赛的代码。官网
  • kaggle-bestbuy_big:Kaggle上根据bestbuy用户查询预测点击商品竞赛的代码(大数据版)。官网
  • kaggle-bestbuy_small:Kaggle上根据bestbuy用户查询预测点击商品竞赛的代码(小数据版)。官网
  • Kaggle Dogs vs. Cats:Kaggle上从图片中识别猫和狗竞赛的代码。官网
  • Kaggle Galaxy Challenge:Kaggle上遥远星系形态分类竞赛的优胜代码。官网
  • Kaggle Gender:Kaggle竞赛,从笔迹区分性别。官网
  • Kaggle Merck:Kaggle上预测药物分子活性竞赛的代码(默克制药赞助)。官网
  • Kaggle Stackoverflow:Kaggle上 预测StackOverflow网站问题是否会被关闭竞赛的代码。官网
  • wine-quality:预测红酒质量。官网

Ruby

自然语言处理

  • Treat:文本检索与注释工具包,Ruby上我见过的最全面的工具包。官网
  • Ruby Linguistics:这个框架可以用任何语言为Ruby对象构建语言学工具包。括一个语言无关的通用前端,一个将语言代码映射到语言名的模块,和一个含有很有英文语言工具的模块。官网
  • Stemmer:使得Ruby可用 libstemmer_c中的接口。官网
  • Ruby Wordnet:WordNet的Ruby接口库。官网
  • Raspel:aspell绑定到Ruby的接口。官网
  • UEA Stemmer:UEALite Stemmer的Ruby移植版,供搜索和检索用的保守的词干分析器。官网
  • Twitter-text-rb:该程序库可以将推特中的用户名、列表和话题标签自动连接并提取出来。官网

通用机器学习

  • Ruby Machine Learning:Ruby实现的一些机器学习算法。官网
  • Machine Learning Ruby:官网
  • jRuby Mahout:精华!在JRuby世界中释放了Apache Mahout的威力。官网
  • CardMagic-Classifier:可用贝叶斯及其他分类法的通用分类器模块。官网
  • Neural Networks and Deep Learning:《神经网络和深度学习》一书的示例代码。官网

数据分析/数据可视化

  • rsruby:Ruby - R bridge。官网
  • data-visualization-ruby:关于数据可视化的Ruby Manor演示的源代码和支持内容。官网
  • ruby-plot:将gnuplot包装为Ruby形式,特别适合将ROC曲线转化为svg文件。官网
  • plot-rb:基于Vega和D3的ruby绘图库。官网
  • scruffy:Ruby下出色的图形工具包。官网
  • SciRuby:官网
  • Glean:数据管理工具。官网
  • Bioruby:官网
  • Arel:官网

Misc 杂项

  • Big Data For Chimps:大数据处理严肃而有趣的指南书。官网

R

通用机器学习

  • Clever Algorithms For Machine Learning:官网。
  • Machine Learning For Hackers:官网。
  • Machine Learning Task View on CRAN:R语言机器学习包列表,按算法类型分组。官网。
  • caret:R语言150个机器学习算法的统一接口。官网
  • SuperLearner:该包集合了多种机器学习算法与subsemble
  • Introduction to Statistical Learning:官网。

数据分析/数据可视化

  • Learning Statistics Using R:官网
  • ggplot2:基于图形语法的数据可视化包。官网

Scala

自然语言处理

  • ScalaNLP:机器学习和数值计算库的套装。官网
  • Breeze:Scala用的数值处理库。官网
  • Chalk:自然语言处理库。官网
  • FACTORIE:可部署的概率建模工具包,用Scala实现的软件库为用户提供简洁的语言来创建关系因素图,评估参数并进行推断。官网。

数据分析/数据可视化

  • MLlib in Apache Spark:Spark下的分布式机器学习库。官网
  • Scalding:CAscading的Scala接口。官网
  • Summing Bird:用Scalding 和 Storm进行Streaming MapReduce。官网
  • Algebird:Scala的抽象代数工具。官网
  • xerial:Scala的数据管理工具。官网
  • simmer:化简你的数据,进行代数聚合的unix过滤器。官网
  • PredictionIO:供软件开发者和数据工程师用的机器学习服务器。官网
  • BIDMat:支持大规模探索性数据分析的CPU和GPU加速矩阵库。官网

通用机器学习

  • Conjecture:Scalding下可扩展的机器学习框架。官网
  • brushfire:scalding下的决策树工具。官网
  • ganitha:基于scalding的机器学习程序库。官网
  • adam:使用Apache Avro, Apache Spark 和 Parquet的基因组处理引擎,有专用的文件格式,Apache 2软件许可。官网
  • bioscala:Scala语言可用的生物信息学程序库。官网
  • BIDMach:机器学习CPU和GPU加速库。官网

阅读全文 »

awesome-lua

发表于 2012-06-21 | 分类于 awesome

Awesome Lua

(https://github.com/sindresorhus/awesome)

A curated list of quality Lua packages and resources.

Inspired by the lists awesome, awesome-awesomeness, and awesome-nodejs.

Packages

  • Awesome Lua
    • Packages
    • Resources
      • Implementations, Interpreters, and Bindings
      • Package Managers
      • Build Tools and Standalone Makers
      • Debugging and Profiling
      • IDEs and Plugins
      • Utility Belts
      • Game Engines
      • Game Development
      • Logging
      • Web/Networking Platforms
      • OpenResty
      • Command-line Utilities
      • Concurrency and Multithreading
      • Templating
      • Documentation
      • Object-oriented Programming
      • File system and OS
      • Time and Date
      • Image Manipulation
      • Digital Signal Processing
      • Hardware and Embedded Systems
      • Math and Scientific Computing
      • Parsing and Serialization
      • Humanize
      • Compression
      • Cryptography
      • Network
      • Data Stores
      • Message Brokers
      • Testing
      • Foreign Function Interfaces
      • Analysis Tools and ASTs
      • Experimental, etc
      • Scriptable by Lua
      • Miscellaneous
    • Resources
      • Community
      • References
      • Glossaries
      • Style Guides
      • Tutorials
      • Articles
      • Talks & Slides
      • Books
      • Other Lists
    • Contribute

Resources

  • Community
  • References
  • Style Guides
  • Tutorials
  • Articles
  • Talks & Slides
  • Books
  • Other Lists

Implementations, Interpreters, and Bindings

  • Lua - Lua’s original ANSI C interpreter.
    • Lua Repo - The official Lua repo, as seen by the Lua team, mirrored to GitHub.
  • LuaJIT - High-performance Just-In-Time compiler for Lua.
  • LLVM-Lua - Compiles Lua to LLVM.
  • lua.vm.js - Lua VM on the web; a direct port of the C interpreter via LLVM, emscripten, and asm.js.
  • Moonshine - A Lua VM implemented in JavaScript. Slower than lua.vm.js, but with better docs, examples, and JS interfacing.
  • Fengari - The Lua VM rewritten in Javascript with seamless JS and DOM interoperability.
  • MoonSharp - A Lua interpreter written entirely in C# for the .NET, Mono and Unity platforms.
  • UniLua - A pure C# implementation of Lua 5.2, focused on compatibility with the Unity game engine.
  • lupa - Python bindings to LuaJIT2.
  • golua - Golang bindings to the Lua C API.
  • GopherLua - Lua 5.1 VM and compiler implemented in Go with Go APIs.
  • LuaBridge - A lightweight library for mapping data, functions, and classes back and forth between C++ and Lua.

Note: From LuaJIT to Lua to lua.vm.js to Moonshine, a basic benchmark sees performance drop by roughly a factor of 6 with each hop.

Package Managers

  • LuaRocks - De-facto tool for installing Lua modules as packages called “rocks”, plus public rock repository and website. Much like npm or pip.

Build Tools and Standalone Makers

  • Lake - A build engine written in Lua, similar to Ruby’s rake.
  • Luabuild - Highly customizable Lua 5.2 build system.
  • luastatic - Simple tool for turning Lua programs into standalone executables.
  • omnia - A batteries-included creator of standalone executables, built on top of luastatic.

Debugging and Profiling

  • ProFi - Simple profiler that works with LuaJIT and produces a report file.
  • luatrace - Toolset for tracing/analyzing/profiling script execution and generating detailed reports.
  • StackTracePlus - Drop-in upgrade to Lua’s stack traces which adds local context and improves readability.
  • MobDebug - Powerful remote debugger with breakpoints and stack inspection. Used by ZeroBraneStudio.
  • lovebird - Browser-based debug console. Originally made for LÖVE, but works in any project with LuaSocket support.

IDEs and Plugins

  • Lua Development Tools - Eclipse plugin which provides code completion, debugging, and more. Built on Metalua.
  • Lua for IDEA - IntelliJ IDEA plugin which, among other things, provides code completion, smart highlighting, and experimental debugging.
  • ZeroBraneStudio - Lightweight, customizable, cross-platform Lua-dedicated IDE with code completion and analysis, written in Lua. Has broad debugging support for numerous Lua engines.
  • BabeLua - Lua editor/debugger extension for VS2012-13 with highlighting, auto-completion, linting, and formatting capabilities.
  • lua-mode - Emacs major mode for editing Lua.
  • vscode-lua - VSCode intellisense and linting.

Utility Belts

  • Lua Fun - High-performance functional programming library designed for LuaJIT.
  • Moses - Functional programming utility belt, inspired by Underscore.js.
  • Penlight - Broad, heavyweight utility library, inspired by Python’s standard libs. Provides the batteries that Lua doesn’t.
  • lua-stdlib - Middle-weight standard library extension; adds some useful data structures, utility functions, and basic functional stuff.
  • Microlight - A little library of useful Lua functions; the ‘extra light’ version of Penlight.
  • compat53 - Compatibility module providing Lua-5.3-style APIs for Lua 5.2 and 5.1.
  • RxLua - Reactive Extensions, Observables, etc.

Game Engines

  • LÖVE 2D - Desktop game development platform. Cross-platform, feature-complete, well-adopted.
  • Corona SDK - Development platform for iOS and Android. Proprietary, but used by numerous top games and apps, totaling over 150 million downloads.
  • MOAI - Open source, cross-platform, mobile game development framework. Minimalist C++ engine powered by Lua scripting.
  • Drystal - Open source, games can run on Linux or on any platform with a recent web browser.
  • Amulet - Open source, audio/visual toolkit suitable for small games and experimentation. It runs on Windows, Mac, Linux, HTML5 and iOS.
  • LÖVR - 3D framework for creating virtual reality experiences, inspired by LÖVE 2D.

Game Development

  • Corona
    • Coronium - Simple cloud platform supporting analytics, data objects, user management, and more.
  • LÖVE
    • awesome-love2d - A list like this one, but focused on game dev and the LÖVE platform.
    • lurker - Shortens the iteration cycle by auto-swapping changed Lua files in a running LÖVE project.
    • HUMP - A set of lightweight helpers for LÖVE; a game-oriented utility belt.
  • MOAI
    • moaifiddle - Edit and share short scripts for the MOAI game engine and run them in the browser using WebGL.
  • Jumper - Fast, lightweight, and easy-to-use pathfinding library for grid-based games.
  • lume - Utility belt library geared toward game development.
  • NoobHub - Network multiplayer for Corona, LÖVE, and more, following a simple pub-sub model.
  • Collision detection
    • bump.lua - Minimal rectangle-based collision detection which handles tunnelling and basic collision resolution.
    • HardonCollider - Detect collisions between arbitrarily positioned and rotated shapes of any type.
  • Tweening
    • flux - A fast, lightweight tweening library for Lua with easing functions and the ability to group tweens together.
    • tween.lua - Small library for tweening, with several easing functions.
  • Examples
    • termtris - A tetris clone, written in literate style with “an emphasis on learn-from-ability”.
    • PacPac - A Pac-man clone, made with LÖVE.
    • Mari0 - Fusion of Mario and Portal, made with LÖVE. See also its wikipedia entry.
    • Journey to the Center of Hawkthorne - 2D platformer based on Community’s Digital Estate Planning episode, made with LÖVE.

Logging

  • lua-log - Asynchronous logging library with pluggable writers for file system, network, ZeroMQ, and more.
  • LuaLogging - Log4j-inspired logging library supporting various appenders.
  • luasyslog - Log to syslog, based on LuaLogging.

Web/Networking Platforms

  • OpenResty - A fast and scalable web application platform created by extending Nginx with Lua. Today’s de-facto Lua web platform, used heavily by Cloudflare, Taobao, Tencent, and others.
  • turbo - Event-driven, non-blocking, LuaJIT-based networking suite and framework, inspired by Tornado.
  • Kepler Project - A collection of web-oriented projects using a common set of standards and components.
  • Pegasus.lua - Pegasus.lua is a http server to work with web applications written in Lua language.

OpenResty

  • awesome-resty - A list like this one, but focused on OpenResty.
  • Core platform
    • ngx_lua - The core piece of OpenResty. Embeds Lua in Nginx and exposes, among other things, the cosocket API for non-blocking sockets (compatible with LuaSocket’s API).
    • OpenResty GitHub Organization - Home of the repositories for ngx_lua, ngx_openresty, and many related modules.
  • Third-party modules
    • lua-resty-http - Lua HTTP client driver, built on the cosocket API.
  • Frameworks & tools
    • Lapis - Full-stack framework for Lua and OpenResty. Like the Django or Rails of Lua. Supports Moonscript.
    • ledge - Lua module providing scriptable, RFC-compliant HTTP cache functionality.
    • Sailor — An MVC web framework compatible with OpenResty, Apache and other webservers.
    • Kong - Microservice & API Management Layer.

Search this page for ‘OpenResty’ to find related packages under other categories (data stores in particular).

Command-line Utilities

  • ansicolors - Simple function for printing to the console in color.
  • cliargs - A simple command-line argument parsing module.
  • lua-term - Terminal operations and manipulations.
  • argparse - A feature-rich command line parser inspired by argparse for Python.

Concurrency and Multithreading

  • Coroutine-based multitasking:
    • Lumen - Simple concurrent task scheduling.
    • ConcurrentLua - Implements an Erlang-style message-passing concurrency model.
    • cqueues - Library for managing sockets, signals, and threads based on an event loop with coroutines.
  • Multithreading:
    • llthreads - A simple wrapper for low-level pthreads & WIN32 threads.
    • llthreads2 - Newer rewrite of llthreads.
    • lanes - Library implementing a message passing model with one OS thread per Lua thread.
    • luaproc - Message-passing model which allows multiple threads per OS thread and easily generalizes across a network. See also the paper where it originated.

For more on the differences (particularly between lanes and luaproc), see this comparison of options; somewhat dated, but covers how each one works and the significant differences.

Templating

  • lustache - Mustache template implementation.
  • etlua - Embedded Lua templates, ERB-style.
  • lua-resty-template - Lua-oriented template engine for OpenResty, somewhat Jinja-like.

Documentation

  • LDoc - Documentation generator which modernizes and extends LuaDoc.
  • Locco - Lua port of Docco, the “quick-and-dirty, hundred-line-long, literate-programming-style documentation generator”.
  • docroc - Parse comments into a Lua table to generate documentation.

Object-oriented Programming

  • 30log - Minimalist OOP library with basic classes, inheritance, and mixins in 30 lines.
  • middleclass - Simple but robust OOP library with inheritance, methods, metamethods, class variables and mixins.

File system and OS

  • LuaFileSystem - Extends and complements Lua’s built-in set of file system functions.
  • luaposix - Bindings for POSIX APIs, including curses.
  • lunix - Bindings to common Unix system APIs, striving for thread-safety.
  • lua-path - File system path manipulation library.

Time and Date

  • LuaDate - Date and time module with parsing, formatting, addition/subtraction, localization, and ISO 8601 support.
  • cron.lua - Time-related functions for Lua, inspired by JavaScript’s setTimeout and setInterval.
  • luatx - Time, date, and timezone library.

Image Manipulation

  • magick - Lua bindings to ImageMagick for LuaJIT using FFI.

Digital Signal Processing

  • LuaFFT - An easy to use Fast Fourier Transformation package in pure Lua.
  • Worp - Sound/music/DSP engine written for LuaJIT.

Hardware and Embedded Systems

  • eLua - Lua, extended with optimizations and specific features for efficient and portable embedded software development.

Math and Scientific Computing

  • SciLua - Numerical/scientific computing framework built on LuaJIT, with an interface to R.
  • Torch7 - Scientific computing framework with wide support for machine learning algorithms, used by Facebook, Google, and more.
  • lhf’s Lua Tools - Assorted libraries and tools, many math- or data-related.

Parsing and Serialization

  • JSON
    • lua-cjson - Blazing fast JSON encoding/decoding implemented in C and exposed to Lua.
    • luajson - JSON encoder/decoder implemented in Lua on top of LPeg.
    • dkjson - JSON encoder/decoder implemented in pure Lua.
    • json.lua - A fast and tiny JSON library in pure Lua.
  • XML
    • LuaExpat - SAX XML parser via binding to the Expat library.
    • SLAXML - Pure Lua SAX-like streaming XML parser.
  • MessagePack
    • lua-MessagePack - Pure Lua implementation of MessagePack.
    • lua-cmsgpack - A MessagePack C implementation with Lua bindings, as used by Redis.=
  • LPeg
    • LPeg - A pattern-matching library for Lua, based on Parsing Expression Grammars.
    • lpeg_patterns - A collection of LPeg patterns.
    • LuLPeg - A pure Lua implementation of LPeg v0.12.
    • LPegLJ - A pure LuaJIT implementation of LPeg v1.0.
    • LPegLabel - An extension of LPeg adding support for labeled failures.
  • lyaml - YAML encoding/decoding via binding to LibYAML.
  • lunamark - Converts Markdown to other textual formats including HTML and LaTeX. Uses LPeg for fast parsing.
  • LXSH - A collection of lexers and syntax highlighters written with LPeg.
  • lua-pb - Protocol Buffers implementation.

Humanize

  • i18n.lua - Internationalization library with locales, formatting, and pluralization.
  • inspect.lua - Human-readable representation of Lua tables.
  • serpent - Serializer and pretty printer.
  • Ser - Dead simple serializer with good performance.
  • say - Simple string key-value store for i18n.

Compression

  • lua-zlib - Simple streaming interface to zlib for gzip/gunzip.
  • lua-zip - Lua binding to libzip. Reads and writes zip files.

Cryptography

  • LuaCrypto - Lua bindings to OpenSSL.
  • lua-lockbox - A collection of cryptographic primitives written in pure Lua.
  • luatweetnacl - Bindings to tweetnacl, modern high-security cryptographic library.
  • luaossl - “Most comprehensive OpenSSL module in the Lua universe” - used by lapis, kong, and lua-http.

Network

  • LuaSocket - Networking extension which provides a socket API for TCP and UDP, and implements HTTP, FTP, and SMTP.
  • lua-websockets - WebSocket client and server modules. Webserver-agnostic, implemented in Lua on top of LuaSocket.
  • lua-cURLv3 - Lua binding to libcurl.
  • lua-http - Asynchronous HTTP and WebSocket library with client and server APIs, TLS, and HTTP/2; based on cqueues.

Data Stores

  • LuaSQL - Simple interface for connecting to ODBC, ADO, Oracle, MySQL, SQLite and PostgreSQL.
  • pgmoon - Lua PostgreSQL driver for OpenResty, LuaSocket, and cqueues.
  • lua-resty-mysql - Lua MySQL driver for OpenResty.
  • lua-resty-cassandra - Lua Cassandra client driver for OpenResty and others.
  • Redis
    • redis-lua - Pure Lua client library for Redis.
    • lua-resty-redis - Lua Redis client driver for OpenResty.
    • lredis - Asynchronous Redis client with pipelining and Pub/Sub support; based on cqueues.

Message Brokers

  • lua-zmq - Lua bindings to ZeroMQ.
  • lzmq - A newer Lua binding to ZeroMQ.
  • lua-resty-kafka - Kafka client driver based on OpenResty cosockets.
  • lua-resty-rabbitmqstomp - RabbitMQ client library based on OpenResty cosockets.

Testing

  • busted - BDD-style unit testing framework with great docs and Moonscript support.
  • telescope - Flexible and highly customizable testing library.
  • luassert - Assertion library extending Lua’s built-in assertions.
  • lust - Minimal test framework.

Foreign Function Interfaces

  • LuaJIT FFI - LuaJIT’s mechanism for calling external C functions and using C data structures from pure Lua code.
  • luaffi - Standalone FFI library, compatible with the LuaJIT FFI interface.

Analysis Tools and ASTs

  • luadec51 - Lua Decompiler for Lua version 5.1.
  • luacov - Simple coverage analyzer, used by busted and telescope for checking test coverage.
    • luacov-coveralls - LuaCov reporter for coveralls.io.
  • luacheck - Simple static analyzer which detects accidental globals and undefined or shadowed locals.
  • Metalua - Pure Lua parser and compiler, used for generating ASTs. A number of other tools make use of the Metalua parser in this way.
  • LuaInspect - Lua’s most powerful code analysis and linting tool, built on Metalua. Used by ZeroBraneStudio, among others.
  • LuaMinify - Minifier which also brings its own static analysis tools, lexer, and parser.
  • Typed Lua - A typed superset of Lua that compiles to plain Lua.
  • lua-parser - A Lua 5.3 parser written using LPegLabel, with improved error messages.

Experimental, etc

  • punchdrunk.js - Moonshine + LÖVE API reimplementation = run LÖVE games in the browser.
  • luvit - Node.js’s underlying architecture (libUV) with Lua on top instead of JavaScript.
  • graphql-lua - Lua implementation of GraphQL.

Scriptable by Lua

  • luakit - Fast, small, webkit based browser framework extensible by Lua.
  • Hammerspoon - A powerful, extensible OS X automation tool. A community-maintained fork of Mjolnir.
  • kpie - A scripting utility to juggle windows.
  • lumail - A console-based mail client, with extensive scripting capabilities.
  • AwesomeWM - A highly configurable and extensible window manager for X, scripted and configured by Lua.
  • Textadept - Extremely lightweight, customizable, cross-platform editor, written (mostly) in (and scripted by) Lua.
  • KoReader - An ebook reader application supports PDF, DJVU, EPUB, FB2 and much more, running on Kindle, Kobo, PocketBook and Android devices.

Miscellaneous

  • MoonScript - Moonscript is a dynamic scripting language that compiles to Lua. It reduces verbosity and provides a rich set of features like comprehensions and classes. Its author calls it ‘CoffeeScript for Lua’.
  • sitegen - A static site generator which uses MoonScript and supports HTML and Markdown, page grouping, and plugins.

Resources

Community

  • lua-l - The official Lua mailing list, and one of the focal points of the Lua community.
  • Lua.Space - The Lua community blog.
  • Lua Users Foundation - An association of individuals with the mission of supporting and promoting Lua and its community and ecosystems.
  • lua-users.org - A site for and by users of Lua, featuring an IRC channel, a web archive of lua-l, and a large wiki.
  • Conferences/Meetups
    • Lua Workshop - Annual 2-day meeting of the Lua community, in rotating locations.
    • Lua Conf - Annual 1-day Lua conference in Brazil.
    • FOSDEM - Annual 2-day gathering of F/OSS developers in Brussels which sometimes has a “Lua devroom”.

References

  • Reference Manual - The official definition of the Lua language.
  • lua-users wiki - A large community-maintained collection of Lua information and resources, supplementing the official website.
  • Lua Unofficial FAQ - Answers all sorts of Lua-related questions, including many of the form ‘How to ___?’.

Glossaries

  • Lua 5.3 Glossary - A glossary of some essential Lua terms.

Style Guides

  • Lua-users style guide - A general, high-level style guide; unopinionated, easily agreed on.
  • Olivine style guide - A more opinionated and specific, and therefore more rigorous, guide.

Tutorials

  • Lua Crash Course - Short crash course readover, or reference for when you forget the basics.
  • Learn Lua in 15 Minutes - A well-commented example file which covers the basics.
  • Learning Lua from JS - An overview of the similarities and differences between Lua and JS; a great start for JavaScript folks looking to pick up Lua.
  • lua-users tutorial - In-depth collection of tutorials aimed at newcomers.
  • Lua Missions - A series of ‘Missions’ to work through which are designed to teach aspects of Lua along the way.
  • Creating an Image Server - Walks through setting up and using OpenResty to build a simple image processing server; a great starting point for playing with OpenResty.

Articles

  • Embedding Lua in C - An introductory walkthrough of embedding Lua in a C program. A bit dated, but still a great walkthrough.
  • Lua: Good, bad, and ugly parts - A thorough summary of the good, different, bad, and ugly aspects of Lua, including many subtle quirks, by the author of ZeroBraneStudio.
  • Lua states, libraries, coroutines and memory - Diagrams and explains some more advanced concepts of the Lua VM, particularly when interfacing with C.

Talks & Slides

  • Roberto’s Talks - History of talks given by Lua’s chief architect, with slides for each.
  • Lua Workshop Talks - High-quality talks are given at each ~annual Lua Workshop, and a history of them is online, slides included.

Books

  • Programming in Lua - The authoritative intro to all aspects of Lua programming, written by Lua’s chief architect. Three editions released; first edition available online.
  • Lua Quick Reference - A quick reference on how to program in and embed Lua 5.1 through 5.3, by the creator of Textadept.
  • Programming Gems - A collection of articles covering existing wisdom and practices on programming well in Lua, in a broad variety of use cases.
  • Lua Programming - A shorter overview of the language, up to date for Lua 5.2, and available online.

Other Lists

  • awesome-resty - A list like this one, but focused on OpenResty.
  • awesome-love2d - A list like this one, but focused on game dev and the LÖVE platform.
  • Where Lua is Used - A comprehensive list of stand-alone programs written in or extensible using Lua.

Contribute

Contributions welcome and wanted! Read the contribution guidelines first.

阅读全文 »

awesome-linux

发表于 2012-06-21 | 分类于 awesome

awesome Linux

We all know that Linux is awesome, but here's a list of especially awesome things related to the Linux ecosystem.

linux graphic


You might also want to check awesome-c, awesome-shell, awesome-sysadmin, and awesome-security.


Table of Content

  • Table of Content
  • Distributions
    • Beginners
      • elementary OS
      • Fedora
      • Linux Mint
      • Ubuntu
    • Intermediate
      • CentOS
      • Debian GNU/Linux
      • Mageia
      • Manjaro
      • openSUSE
    • Advanced
      • Arch Linux
    • Special Purpose
      • CoreOS
      • Kali Linux
      • Puppy Linux
      • Ubuntu Studio
      • Tails
  • Learning Resources
    • Books
      • The Linux Command Line [4.34] [FREE]
      • The Debian Administrator’s Handbook, Debian Wheezy from Discovery to Mastery [4.8] [FREE]
      • Bash Shell Scripting [FREE]
    • Courses
      • Introduction to Linux (LFS101x-1) [Free]
      • Linux Alternatives to Windows Applications [Free]
    • Bash Learning Resources
  • X Desktop Environments
    • GNOME
    • KDE
    • Xfce
    • LXDE
    • Other Desktop Environments
  • X Windows Managers
  • Applications
    • GUI-based Applications
      • GNOME-based
      • Pantheon-based
      • KDE-based
      • Not based on any desktop environment
      • Third-party clients for online services
      • Package management and creation tools
    • Console-based Applications and Tools
  • Useful Websites
    • Compute Freely
    • AlternativeTo
    • Linux Foundation
    • Linux.com
    • Linux.org
    • Kernel.org
    • Opensource.com
    • Linux.die

Distributions

Distributions are organized into three different categories: for beginners, for intermediate users and for advanced users. In those categories, the distributions are organized in the alphabetical order.

Beginners

elementary OS

elementary OS is an Ubuntu-based desktop distribution. Some of its more interesting features include a custom desktop environment called Pantheon and many custom apps including Photos, Music, Videos, Calendar, Terminal, Files, and more. It also comes with some familiar apps like the Epiphany web browser and a fork of Geary mail.

Latest version: elementary OS Loki (0.4.1)

Default Desktop Environment: Pantheon

default look

Fedora

Fedora (formerly Fedora Core) is a Linux distribution developed by the community-supported Fedora Project and owned by Red Hat. Fedora contains software distributed under a free and open-source license and aims to be on the leading edge of such technologies. Fedora has a reputation for focusing on innovation, integrating new technologies early on and working closely with upstream Linux communities. The default desktop in Fedora is the GNOME desktop environment and the default interface is the GNOME Shell. Other desktop environments, including KDE, Xfce, LXDE, MATE and Cinnamon, are available. Fedora Project also distributes custom variations of Fedora called Fedora spins. These are built with specific sets of software packages, offering alternative desktop environments or targeting specific interests such as gaming, security, design, scientific computing and robotics.

Latest version: Fedora Twenty Eight (28)

Default Desktop Environment: GNOME

default look

Linux Mint

Linux Mint is an Ubuntu-based distribution whose goal is to provide a more complete out-of-the-box experience by including browser plugins, support for DVD playback, Java and other components. It also adds a custom desktop and menus, several unique configuration tools, and a web-based package installation interface. Linux Mint is compatible with Ubuntu software repositories.

Latest version: Linux Mint Sylvia (18.3)

Default Desktop Environment: Cinnamon and MATE

default look

Ubuntu

Ubuntu is a complete desktop Linux operating system, freely available with both community and professional support. The Ubuntu community is built on the ideas enshrined in the Ubuntu Manifesto: that software should be available free of charge, that software tools should be usable by people in their local language and despite any disabilities, and that people should have the freedom to customise and alter their software in whatever way they see fit. “Ubuntu” is an ancient African word, meaning “humanity to others”. The Ubuntu distribution brings the spirit of Ubuntu to the software world.

Latest version: Ubuntu 18.04

Default Desktop Environment: GNOME

default look

Intermediate

CentOS

CentOS as a group is a community of open source contributors and users. Typical CentOS users are organisations and individuals that do not need strong commercial support in order to achieve successful operation. CentOS is 100% compatible rebuild of the Red Hat Enterprise Linux, in full compliance with Red Hat’s redistribution requirements. CentOS is for people who need an enterprise class operating system stability without the cost of certification and support.

Latest version: CentOS 7.1611

Default Desktop Environment: GNOME

default look

Debian GNU/Linux

The Debian Project is an association of individuals who have made common cause to create a free operating system. This operating system is called Debian. Debian systems currently use the Linux kernel. Linux is a completely free piece of software started by Linus Torvalds and supported by thousands of programmers worldwide. Of course, the thing that people want is application software: programs to help them get what they want to do done, from editing documents to running a business to playing games to writing more software. Debian comes with over 50,000 packages (precompiled software that is bundled up in a nice format for easy installation on your machine) - all of it free. It’s a bit like a tower. At the base is the kernel. On top of that are all the basic tools. Next is all the software that you run on the computer. At the top of the tower is Debian – carefully organizing and fitting everything so it all works together.

Latest version: Debian Stretch (9.1)

Default Desktop Environment: GNOME

default look

Mageia

Mageia is a fork of Mandriva Linux formed in September 2010 by former employees and contributors to the popular French Linux distribution. Unlike Mandriva, which is a commercial entity, the Mageia project is a community project and a non-profit organisation whose goal is to develop a free Linux-based operating system.

Latest version: Mageia 6

Default Desktop Environment: KDE

default look

Manjaro

Manjaro Linux is a fast, user-friendly, desktop-oriented operating system based on Arch Linux. Key features include intuitive installation process, automatic hardware detection, stable rolling-release model, ability to install multiple kernels, special Bash scripts for managing graphics drivers and extensive desktop configurability. Manjaro Linux offers Xfce as the core desktop options, as well as a minimalist Net edition for more advanced users. Community-supported GNOME 3/Cinnamon and KDE flavours are available. Users also benefit from the supportive and vibrant Manjaro community forum.

Latest version: Not applicable (Rolling Release system)

Default Desktop Environment: XFCE, KDE

default look

openSUSE

The openSUSE project is a community program sponsored by SUSE Linux and other companies. Promoting the use of Linux everywhere, this program provides free, easy access to openSUSE, a complete Linux distribution. The openSUSE project has three main goals: make openSUSE the easiest Linux for anyone to obtain and the most widely used Linux distribution; leverage open source collaboration to make openSUSE the world’s most usable Linux distribution and desktop environment for new and experienced Linux users; dramatically simplify and open the development and packaging processes to make openSUSE the platform of choice for Linux developers and software vendors.

Latest version: openSUSE Leap 42.3 and openSUSE Tumbleweed (Rolling Release system)

Default Desktop Environment: KDE, GNOME, XFCE, LXDE (Choose on installation)

default look

Advanced

Arch Linux

Arch Linux is an independently developed, i686- and x86_64-optimised Linux distribution targeted at competent Linux users. It uses ‘pacman’, its home-grown package manager, to provide updates to the latest software applications with full dependency tracking. Operating on a rolling release system, Arch can be installed from a CD image or via an FTP server. The default install provides a solid base that enables users to create a custom installation. In addition, the Arch Build System (ABS) provides a way to easily build new packages, modify the configuration of stock packages, and share these packages with other users via the Arch Linux user repository.

Latest version: Not applicable (Rolling Release system)

Default Desktop Environment: Not applicable (there’s no default Desktop environment)

Special Purpose

CoreOS

Specialty: Clusters

CoreOS is a Linux-based operating system for servers. Built from the ground up and designed primarily for the modern data centre, CoreOS provides specialist tools for making the system secure, reliable and up-to-date. Some of the more interesting features of the distribution include reliable updates and patches via FastPatch, a dashboard for managing rolling updates via CoreUpdate, a docker for packaging applications, as well as support for bare metal and many cloud providers.

Kali Linux

Specialty: Penetration testing

Kali Linux (formerly known as BackTrack) is a Debian-based distribution with a collection of security and forensics tools. It features timely security updates, support for the ARM architecture, a choice of four popular desktop environments, and seamless upgrades to newer versions.

Puppy Linux

Specialty: Low system requirements

Puppy Linux is yet another Linux distribution. What’s different here is that Puppy is extraordinarily small, yet quite full-featured. Puppy boots into a ramdisk and, unlike live CD distributions that have to keep pulling stuff off the CD, it loads into RAM. This means that all applications start in the blink of an eye and respond to user input instantly. Puppy Linux has the ability to boot off a flash card or any USB memory device, CDROM, Zip disk or LS/120/240 Superdisk, floppy disks, internal hard drive. It can even use a multisession formatted CD-RW/DVD-RW to save everything back to the CD/DVD with no hard drive required at all.

Ubuntu Studio

Specialty: Multimedia creation

Ubuntu Studio is a variant of Ubuntu aimed at the GNU/Linux audio, video and graphic enthusiast as well as professional. The distribution provides a collection of open-source applications available for multimedia creation.

Tails

Specialty: Incognito live system

Tails is a live system that aims to preserve your privacy and anonymity. It helps you to use the Internet anonymously and circumvent censorship almost anywhere you go and on any computer but leaving no trace unless you ask it to explicitly. It is a complete operating system designed to be used from a USB stick or a DVD independently of the computer’s original operating system. It is Free Software and based on Debian GNU/Linux. Tails comes with several built-in applications pre-configured with security in mind: web browser, instant messaging client, email client, office suite, image and sound editor, etc.

Learning Resources

Books

The Linux Command Line [4.34] [FREE]

This is a great introduction to the Linux command line. - @4iar

You’ve experienced the shiny, point-and-click surface of your Linux computer—now dive below and explore its depths with the power of the command line.

The Debian Administrator’s Handbook, Debian Wheezy from Discovery to Mastery [4.8] [FREE]

Good book that teaches you the basics of Debian GNU/Linux administration. - @elninosi

It covers all the topics that a competent Linux administrator should master, from the installation, update of the system, up to the creation of packages and the compilation of the kernel, but also monitoring, backup and migration. Plus advanced topics to secure services, automated installations, or virtualization.

Bash Shell Scripting [FREE]

Currently this book provides an introduction level knowledge of Bash.

Courses

Introduction to Linux (LFS101x-1) [Free]

Organized by the Linux Foundation, it’s a great free course to learn basics about Linux. - @aleksandar-todorovic

Linux Alternatives to Windows Applications [Free]

If you used Windows and decided to switch to Linux, this course should help you to find their alternatives. It’s pretty short and you can finish it in a day. - @aleksandar-todorovic

Bash Learning Resources

  • Beautiful Bash: Let’s make reading and writing bash scripts fun again!
  • Best Practices for Writing Bash Scripts
  • Shell Style Guide
  • Linux Fu: Better Bash Scripting
  • Bash Guide for Beginners
  • Advanced Bash-Scripting Guide

X Desktop Environments

You cannot talk about a unified Linux look because there is no such thing.

relevant XKCD

GNOME

GNOME 3 is an easy and elegant way to use your computer. It is designed to put you in control and bring freedom to everybody. GNOME 3 is developed by the GNOME community, a diverse, international group of contributors that is supported by an independent, non-profit foundation.

screenshot

KDE

The KDE® Community is an international technology team dedicated to creating a free and user-friendly computing experience, offering an advanced graphical desktop, a wide variety of applications for communication, work, education and entertainment and a platform to easily build new applications upon. We have a strong focus on finding innovative solutions to old and new problems, creating a vibrant atmosphere open for experimentation.

screenshot

Xfce

Xfce is a lightweight desktop environment for UNIX-like operating systems. It aims to be fast and low on system resources, while still being visually appealing and user friendly.

screenshot

LXDE

The “Lightweight X11 Desktop Environment” is an extremely fast-performing and energy-saving desktop environment. Maintained by an international community of developers, it comes with a beautiful interface, multi-language support, standard keyboard short cuts and additional features like tabbed file browsing. LXDE uses less CPU and less RAM than other environments. It is especially designed for cloud computers with low hardware specifications, such as netbooks, mobile devices (e.g. MIDs) or older computers. LXDE can be installed on many Linux distributions including Debian, Fedora, OpenSUSE and Ubuntu. It is the standard for Knoppix and lubuntu. LXDE also runs on OpenSolaris and BSD. LXDE provides a fast desktop experience; connecting easily with applications in the cloud. LXDE supports a wealth of programs that can be installed locally with Linux systems. The source code of LXDE is licensed partly under the terms of the GNU General Public License and partly under the LGPL.

screenshot

Other Desktop Environments

  • Cinnamon - Strives to provide a traditional user experience.
  • EDE - Small desktop environment built to be responsive, light in resource usage and to have a familiar look and feel.
  • LXQt - Qt port and the upcoming version of LXDE, the Lightweight Desktop Environment. It is the product of the merge between the LXDE-Qt and the Razor-qt projects: A lightweight, modular, blazing-fast and user-friendly desktop environment.
  • MATE - Provides an intuitive and attractive desktop to Linux users using traditional metaphors. Fork of GNOME 2.
  • Pantheon - Pantheon is the default desktop environment originally created for the elementary OS distribution. The desktop has some similarities with GNOME Shell and macOS.
  • Unity - Soon-to-be-deprecated DE designed by Canonical for Ubuntu. Based on GNOME.

X Windows Managers

  • 9wm - Window manager that attempts to emulate the Plan 9 window manager 8-1/2 as far as possible within the constraints imposed by X.
  • awesome - Highly configurable window manager for X. Fast and extensible.
  • Blackbox - Lightweight window manager for the X window system, without library dependencies. Built using C++.
  • bspwm - Tiling window manager that represents windows as the leaves of a full binary tree.
  • Compiz - OpenGL compositing window manager. It has a plug-in system to be changed at runtime.
  • dwm - Dynamic window manager for X. It manages windows in tiled, monocle and floating layouts. All of the layouts can be applied dynamically, optimising the environment for the application and task performed.
  • Enlightenment - Window manager bundled with a whole suite of libraries to help you create beautiful user interfaces.
  • Fluxbox - Window manager for X, lightweight and easy to handle but full of features to make an easy and fast desktop experience. Built using C++.
  • FVWM - ICCCM-compliant multiple virtual desktop window manager for X. Extremely powerful.
  • i3 - Tiling window manager. BSD-licensed. Primarily targeted at advanced users and developers.
  • IceWM - Window manager with the goal of being fast, simple, and not getting in the user’s way.
  • JWM - Lightweight window manager for X11. Good choice for older and/or less powerful systems, though perfectly capable of running on modern systems. Built using C.
  • Matchbox - Environment for X running on non-desktop embedded platforms such as handhelds, set-top boxes, kiosks and anything else for which screen space, input mechanisms or system resources are limited.
  • Mutter - Window manager for X. Default window manager in GNOME 3.
  • Openbox - Highly configurable window manager with extensive standards support.
  • ratpoison - A simple window manager with no library dependencies, no graphics, and no decorations. Modeled after GNU Screen.
  • Sawfish - Extensible window manager. Its aim is to manage windows in the most flexible and attractive manner possible. Built using Lisp-based scripting language.
  • wmii - Small, scriptable window manager, with a 9P filesystem interface and an acme-like layout.
  • xmonad - Dynamically tiling X11 window manager. Makes work easier by automating aligning and searching for windows. Built using Haskell.

Applications

The list of awesome Linux applications that you should be using.

If you’re looking for some pro-tips for your favorite text editor, you might be interested in awesome-atom, sublime-bookmarks, vim-galore, awesome-emacs, or awesome-vscode.

GUI-based Applications

GNOME-based

  • Builder - IDE for GNOME that is focused on bringing the power of the GNOME platform to more developers.
  • Evince - The most popular document viewer on the GNOME platform.
  • Gedit - Powerful general purpose text editor.
  • Polari - IRC client built to be easy to use.
  • To Do - Minimalistic personal task manager designed to fit right into your GNOME desktop.

For more GNOME-based apps, visit: https://wiki.gnome.org/Apps

Pantheon-based

  • FeedReader - RSS desktop client able to integrate with multiple online services.
  • Go For It! - To-do list with built-in productivity timer.
  • NaSC - Intelligent calculator app.
  • Spice-Up - Desktop presentation app.
  • Vocal - Podcast client for the modern desktop.

For more Pantheon-based apps, visit elementary-apps.

KDE-based

  • Dolphin - File manager for KDE focusing on usability.
  • Krita - Painting program.

For more KDE-based apps, visit: https://www.kde.org/applications/

Not based on any desktop environment

  • Atom - Hackable text editor for the 21st century.
  • ghostwriter - Distraction-free Markdown editor.
  • GParted - The most popular disk partitioning software out there.
  • Kodi - Most popular entertainment center.
  • Zathura - Highly customizable document viewer. It provides a minimalistic and space saving interface as well as an easy usage that mainly focuses on keyboard interaction.

Third-party clients for online services

Q: Why third-party apps? Why not the official clients?

A: Because, in 99% of the cases, official clients are proprietary.

  • Corebird - Twitter client.
  • GNOME Twitch - Twitch player.
  • Caprine - Facebook’s Messenger client with some added privacy features.
  • PB for Desktop - Pushbullet client.
  • ramme - Instagram client.
  • ScudCloud - Slack client with additional features (compared to the original Slack client).
  • Whatever - Evernote client based on the web version.

Package management and creation tools

Distro-oriented:

  • Y PPA Manager (Ubuntu) - Manage PPAs and search for packages.
  • pirut (Fedora) - Provides a set of graphical tools for managing software.
  • Synaptics (Debian and .deb users) - Graphical package management program for apt.
  • YaST (openSUSE) - Main package management tool on openSUSE.
  • YumEx (Fedora) - A GUI for the dnf package manager.
  • Yaourt (Arch) - A wrapper for pacman which adds automated access to the AUR using the same syntax as pacman.
  • Aura (Arch) - Secure, multilingual package manager.

Distro-independent:

  • AppImageKit - Using AppImageKit you can package applications in the AppImage format that runs on common Linux-based operating systems, such as RHEL, CentOS, Ubuntu, Fedora, debian and derivatives; one app = one file.

Console-based Applications and Tools

You might also be interested in checking out awesome-shell, awesome-bash, awesome-zsh-plugins or awesome-fish.

  • cmus - Small, fast and powerful console music player.
  • fuck - Command line tool which corrects your previously mistyped command.
  • git - Distributed version control system designed to handle everything from small to very large projects with speed and efficiency.
  • glances - Cross-platform system monitoring tool.
  • htop - Nice looking, customizable task manager.
  • nano - Simple to use text editor.
  • photorec - Useful tool for restoring deleted files.
  • ranger - Vim-inspired file manager for the console.
  • screenFetch - Fetches system/theme information in terminal.
  • shellcheck - Static analysis tool for shell scripts.
  • speed-test - Test your Internet connection speed and ping using speedtest.net.
  • testdisk - A tool for disk partition recovery.
  • tig - Text-mode interface for git. It functions mainly as a Git repository browser.
  • vim - Advanced text editor that seeks to provide the power of the de-facto Unix editor ‘Vi’, with a more complete feature set.
  • vtop - Easily-extendable activity monitor.
  • wavemon - Monitoring application for wireless network devices.
  • youtube-dl - A tool to download videos from YouTube and other video sites.

Useful Websites

Compute Freely

A friendly place to start for the Free & Open Source Software and Linux curious.

AlternativeTo

Find better alternatives to the software you already use or a replacement for software you cannot or do not want to use.

Linux Foundation

The Linux Foundation is a non-profit consortium dedicated to fostering the growth of Linux. Founded in 2000, The Linux Foundation sponsors the work of Linux creator Linus Torvalds and is supported by leading Linux and open source companies and developers from around the world.

Linux.com

For the community, by the community, Linux.com strives to be the central source for informed, reasonable, and intelligent Linux information, software, documentation and answers across the server, desktop/netbook, mobile, and embedded areas.

Linux.org

Although its design is outdated, Linux.org is (probably) the most popular forum and it’s full of awesome Linux tutorials categorized by their difficulty. - @aleksandar-todorovic

Kernel.org

The Linux Kernel Organization is a California Public Benefit Corporation established in 2002 to distribute the Linux kernel and other Open Source software to the public without charge.

Opensource.com

Opensource.com is an online publication focused on how open source is applied to different areas including business, education, government, health, law and other disciplines of life.

Our goal is to further the open source way by sharing the open source movement. Our community of readers is made up of those who believe that open participation and sharing can tackle the business, social, environmental, and technological challenges facing us today.

Linux.die

Linux.die is a resource with documentation, tutorials, books, etc in Linux.

阅读全文 »

awesome-javascript-cn

发表于 2012-06-21 | 分类于 awesome

JavaScript 资源大全中文版

我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列的资源整理。awesome-javascript 是 sorrycc 发起维护的 JS 资源列表,内容包括:包管理器、加载器、测试框架、运行器、QA、MVC框架和库、模板引擎、数据可视化、时间轴、编辑器等等

Awesome 系列虽然挺全,但基本只对收录的资源做了极为简要的介绍,如果有更详细的中文介绍,对相应开发者的帮助会更大。这也是我们发起这个开源项目的初衷。


我们要做什么?

  • 基于 awesome-javascript 列表,我们将对其中的各个资源项进行编译整理。此外还将从其他来源补充好资源。
  • 整理后的内容,将收录在伯乐在线资源频道。可参考已整理的内容:
    • 《jQWidgets:jQuery HTML5 UI组件框架》
    • 《Bootstrap:Web前端开发框架》
    • 《YUI Compressor:JS/CSS压缩工具》

如何参与本项目?


如何为列表贡献新资源?

欢迎大家为列表贡献高质量的新资源,提交PR时请参照以下要求:

  • 请确保推荐的资源自己使用过
  • 提交PR时请注明推荐理由

资源列表管理收到PR请求后,会定期(每周)在微博转发本周提交的PR列表,并在微博上面听取使用过这些资源的意见。确认通过后,会加入资源大全。

感谢您的贡献!


本项目的参与者

  • 维护者:
  • 贡献者:刘健超、MissNull、一兮、Mr. Somebody、Jason Lee、Tab_Gre、GavinZhang、shadowkimi520、zhoutk、tzstone、Erichain、chen、ElizabethMa、LeuisKen、linacre、王涛、neal1991、luoyjx、appleshowc、TAMMENY、cike8899、cnzin、cike8899、hustcc、冰斌、邢敏、张小然

注:名单不分排名,不定期补充更新


目录

  • JavaScript资源大全中文版
    • 包管理器
    • 加载器
    • 打包工具
    • 测试框架
    • QA 工具
    • MVC 框架和库
    • 基于 Node 的 CMS 框架
    • 模板引擎
    • Flux
    • 数据可视化
      • 时间轴
    • 编辑器
    • 工具
      • 文件
      • 函数式编程
      • 响应式编程
      • 数据结构
      • 日期
      • 字符串
      • 数字
      • 存储
      • 颜色
      • 国际化和本地化
      • 类
      • 控制流
      • 路由
      • 安全性
      • 日志
      • 正则表达式
      • 媒体
      • 语言命令
      • API
      • 视觉检测
      • 浏览器检测
      • 性能分析
    • UI
      • 代码高亮
      • 加载状态
      • 验证
      • 键盘封装器
      • 浏览和引导
      • 通知
      • 幻灯片
      • 滑块控件
      • 表单组件
      • 提示
      • 模态框和弹出框
      • 滚动条
      • 菜单
      • 表格/栅格
      • 框架
    • 移动
      • 手势
      • 触摸
    • 地图
    • 视频/音频
    • 动画
    • 图片处理
    • ES6
    • SDK
    • 大杂烩
  • 精品阅读
  • 资源
    • 社区
    • 有影响力的书
    • 微博、微信公众号
    • 知名网站
    • 博客

包管理器

管理着 JavaScript 库,并提供读取和打包它们的工具。

  • npm:npm 是 JavaScript 的包管理器。官网
  • Bower:一个 web 应用的包管理器。官网
  • component:能构建更好 web 应用的客户端包管理器。官网
  • spm:全新的静态包管理器。官网
  • jam:一个专注于浏览器端和兼容 RequireJS 的包管理器。官网
  • jspm:流畅的浏览器包管理器。官网
  • Ender:没有库文件的程序库。官网
  • volo:以项目模板、添加依赖项与自动化生成的方式创建前端项目。官网 
  • Duo:一个整合 Component、Browserify 和 Go 官网的最佳思想,使开发者能快速方便地组织和编写前端代码的下一代包管理器。

加载器

JavaScript 的模块或加载系统。

  • RequireJS:JavaScript 文件和模块的加载器。官网
  • browserify:在浏览器端以 node.js 的方式 require()。官网
  • SeaJS:用于 Web 的模块加载器。官网
  • HeadJS:HEAD 的唯一脚本。官网
  • curl:小巧、快速且易扩展的模块加载器,它能处理 AMD、CommonJS Modules/1.1、CSS、HTML/text 和历史脚本。官网
  • lazyload:小巧且无依赖的异步 JavaScript 和 CSS 加载器。官网
  • script.js:异步 JavaScript 加载器和依赖管理器。官网
  • systemjs:AMD、CJS(commonJS) 和符合 ES6 规范的模块加载器。官网
  • LodJS:基于 AMD 的模块加载器。官网
  • ESL:浏览器端的模块加载器,支持延迟定义和 AMD。官网
  • modulejs:轻量的 JavaScript 模块系统。官网

打包工具

  • browserify :Browserify 让你能在浏览器端使用 require(‘modules’) ,打包所有依赖。官网
  • webpack:为浏览器打包 CommonJs/AMD 模块。官网
  • gulp:用自动化构建工具增强你的工作流程!官网
  • rollup: JavaScript 模块打包器! 官网 中文

测试框架

框架

  • mocha:适用于 node.js 和浏览器、简易、灵活、有趣的 JavaScript 测试框架。官网
  • jasmine:简单无 DOM 的 JavaScript 测试框架。官网
  • qunit:一个易于使用的 JavaScript 单元测试框架。官网
  • jest:简单的 JavaScript 单元测试框架。官网
  • prova:基于 Tape 和 Browserify 的测试运行器,它适用于 Node & 浏览器。官网
  • DalekJS:自动化且跨浏览器的 JavaScript 功能测试框架。官网

断言

  • chai:适用于 node.js 和浏览器的 BDD / TDD 断言框架,并能搭配其它测试框架使用。官网
  • Sinon.JS:对 JavaScript 进行 spies、stubs 和 mock 测试。官网
  • expect.js:简约的、适用于 Node.js 和浏览器端的 BDD 式断言工具。官网
  • should.js:适用于 Node.js 的 BDD 式断言工具。官网

覆盖率

  • istanbul:另一个 JS 代码覆盖率检测工具。官网
  • blanket:一个简单的代码覆盖率检测库。它的设计理念是易于安装和使用,且可用于浏览器端和 node.js。官网
  • JSCover:JSCover 是一个检测 JavaScript 程序代码覆盖率的工具。官网

运行器

  • phantomjs:脚本化的 Headless WebKit。官网
  • slimerjs:一个内核为 Gecko 的类似 PhantomJS 工具。官网
  • casperjs:基于 PhantomJS 和 Slimer JS 的导航脚本和测试工具。官网 
  • zombie:基于 node.js 、快速、全栈且无图形界面的浏览器的测试工具。官网
  • totoro:一个简单可靠且能跨浏览器运行的测试工具。官网
  • karma:一个优秀的的 JavaScript 测试运行器。官网
  • nightwatch:基于 node.js 和 selenium webdriver 的图形界面自动化测试框架。官网
  • intern:下一代 JavaScript 代码测试栈。官网
  • yolpo:在浏览器逐句执行的 JavaScript 解释器。官网

QA 工具

  • JSHint:JSHint 是一个有助于发现 JavaScript 代码错误和潜在问题的工具。官网
  • jscs:JavaScript 代码风格检测工具。官网
  • jsfmt:格式化、搜索和改写 JavaScript。官网
  • jsinspect:检测复制粘贴和结构类似的代码。官网
  • buddy.js:发现 JavaScript 代码里的 魔术数字。官网
  • ESLint:完全插件化的工具,能在 JavaScript 中识别和记录模式。官网
  • JSLint :高标准、严格和固执的代码质量工具,旨在只保持语言的优良部分。官网

MVC 框架和库

  • angular.js:为网络应用增强 HTML。官网
  • aurelia:一个适用于移动设备、桌面电脑和 web 的客户端 JavaScript 框架。官网
  • backbone:给你的 JS 应用加入带有 Models、Views、Collections 和 Events 的 Backbone。官网
  • batman.js:最适合 Rails 开发者的 JavaScript 框架。官网
  • ember.js:一个旨在创建非凡 web 应用的 JavaScript 框架。官网
  • meteor:一个超简单的、数据库无处不在的、只传输数据的纯 JavaScript web 框架。官网
  • ractive:新一代 DOM 操作。官网
  • vue:一个用于构建可交互界面的、直观快速和可组合的 MVVM 框架。官网 
  • knockout:Knockout 用 JavaScript 让创建响应式的富 UI 更加容易。官网 
  • spine:构建 JavaScript 应用的轻量 MVC 库。官网
  • espresso.js:一个极小的、用于制作用户界面的 JavaScript 库。官网
  • canjs:让 JS 更好、更快、更简单。官网
  • react:用于建构用户界面的库。它是声明式的、高效的和极度灵活的,并使用虚拟 DOM 作为其不同的实现。官网
  • react-native:一个用 React 构建原生应用的框架。官网
  • riot:类 React 库,但很轻量。官网
  • thorax:加强你的 Backbone。官网
  • chaplin:使用 Backbone.js 库的 JavaScript 应用架构。官网
  • marionette:一个 Backbone.js 的复合应用程序库,旨在简化大型 JavaScript 应用结构。官网
  • ripple:一个小巧的、用于构建响应界面的基础框架。官网
  • rivets:轻量却拥有强大的数据绑定和模板解决方案官网
  • derby:让编写实时和协同应用更简单的 MVC 框架,能够在 Node.js 和浏览器同时运行。官网
    • derby-awesome:很棒的 derby 组件集合。官网
  • way.js:简单、轻量、持久化的双向数据绑定。官网
  • mithril.js:Mithril 是一个客户端 MVC 框架(轻量、强大和快速)官网
  • jsblocks:jsblocks 是一个更好的 MV-ish 框架。官网
  • LiquidLava:易懂的、用于构建用户界面的 MVC 框架。官网
  • Electron:用Html、CSS和JavaScript构建跨平台的客户端应用程序。官网、GitHub

基于 Node 的 CMS 框架

  • KeystoneJS:强大的 CMS 和 web 应用框架。官网
  • Reaction Commerce:拥有实时的架构和设计的响应式(reactive) CMS。官网
  • Ghost:简单、强大的发布平台。官网
  • Apostrophe:提供内容编辑和基本服务的 CMS。官网
  • We.js:适用于实时应用、网站或博客的框架。官网
  • Hatch.js:拥有社交特性的 CMS 平台。官网
  • TaracotJS:拥有快速、极简风格特点且基于Node.js 的 CMS。官网
  • Nodizecms:为 CoffeeScript 爱好者准备的 CMS。官网
  • Cody:拥有所见即所得的编辑器的 CMS。官网
  • PencilBlue:CMS 和博客平台。官网

模板引擎

模板引擎允许您执行字符串插值。

  • mustache.js:是 JavaScript 中带有 的最简模板。官网
  • handlebars.js:是 Mustache 模板语言的扩展。官网
  • hogan.js:是 Mustache 模板语言的编译器。官网
  • doT:最快速简洁的 JavaScript 模板引擎,适用于 nodejs 和浏览器。官网
  • dustjs:适用于浏览器和 node.js 的异步模板。官网
  • eco:嵌入式的 CoffeeScript 模板。官网
  • JavaScript-Templates:轻量(小于 1KB)、快速且无依赖的强大 JavaScript 模版引擎。官网
  • t.js:小巧的 JavaScript 模板框架,压缩后约为 400 字节。官网
  • pug:健壮的、优雅且功能丰富的 nodejs 模板引擎。官网
  • EJS:高效的 JavaScript 模板。官网
  • xtemplate:可扩展的模板引擎,适用于 node 和浏览器。官网
  • marko:快速轻量且基于 HTML 的模板引擎,支持异步、流、自定义标签和 CommonJS 模编译后输出。适用于 Node.js 官网和浏览器。

Flux

Flux是Facebook用来构建客户端Web应用的应用架构

  • Reflux是根据React的flux创建的单向数据流类库。官网
  • Redux是可预测javascript应用程序状态的容器。官网
  • Mobx是通过透明的函数响应式编程实现简单,可扩展的状态管理库。官网
  • Dva是基于Redux, Redux-saga 和 react-router@2.x的轻量级的框架。官网

数据可视化

Web 数据可视化工具

  • d3:一个对 HTML 和 SVG 进行可视化的 JavaScript 库。官网
  • metrics-graphics:更简洁和拥有更规范的数据图表布局优化算法的库。官网
  • pykcharts.js:经过精心设计后,去除 d3.js 复杂性的 d3.js 图表库。官网
  • three.js:JavaScript 3D 库。官网
  • Chart.js:简单的、基于 canvas 标签的 HTML5 图表库。官网
  • paper.js:是矢量图形脚本中的瑞士军刀 —— 使用 HTML5 Canvas 将 Scriptographer  移植到 JavaScript 官网和浏览器。
  • fabric.js:JavaScript Canvas 库,SVG 与 Canvas 可以相互解析。官网
  • peity:进度条、线状和饼状图。官网
  • raphael:JavaScript 矢量库。官网
  • echarts:商业产品图表。官网
  • vis:动态的、基于浏览器的可视化库。官网
  • two.js:一个渲染器无关的适用于 web 的二维绘图 api 。官网
  • g.raphael:基于 Raphaël 图表库。官网
  • sigma.js:一个致力于图形绘画的 JavaScript 库。官网
  • arbor:一个使用 web workers 和 jQuery 的图形可视化库。官网
  • cubism:可视化时间序列的 D3 插件。官网
  • dc.js:与 crossfilter 无缝合作的多维图表绘制库,使用 d3.js 渲染。官网
  • vega:一套可视化语法。官网
  • processing.js:Processing.js 基于 Web 标准使数据可视化,而无需任何插件。官网
  • envisionjs:动态的 HTML5 可视化。官网
  • rickshaw:用于构建交互式实时图表的 JavaScript 工具包。官网
  • flot:吸引人的、基于 jQuery 的 JavaScript 图表库。官网
  • morris.js:漂亮的时间序列线框图。官网
  • nvd3:一个为 D3.js 构建可复用图表和图表组件的库。官网
  • svg.js:一个轻量的、用于操作和添加 SVG 动画的库。官网
  • heatmap.js:基于 HTML5 canvas 的热力图 JavaScript 库。官网
  • jquery.sparkline:一个直接在浏览器端生成小型走势图的 jQuery 插件。官网
  • xCharts:一个基于 D3、用于构建自定义图表和图形的库。官网
  • trianglify:基于 d3.js 的低多边形(low poly)风格背景图片生成器。官网
  • d3-cloud:创建词云(word cloud)效果的 JavaScript 库。官网
  • d4:一个基于 D3 、友好、可复用的 DSL 图表库 。官网
  • dimple.js:基于 d3 的简易商业分析图表库。官网
  • chartist-js:简单的响应式图表。官网
  • epoch:一个通用的实时图表库。官网
  • c3:基于 D3 的可复用图表库。官网
  • BabylonJS:一个运用 HTML5 和 WebGL 构建 3D 游戏的框架。官网
  • jquery.raty.js:一个星级评分插件。官网

也有一些很棒的收费库,如 amchart、plotly 和 highchart。

时间轴

  • TimelineJS: 一个用 JavaScript 编写的可叙事时间轴库。官网
  • timesheet.js:用于构建简单的 HTML5 & CSS3 时间表的 JavaScript 库。官网

编辑器

  • ace:Ace(Ajax.org Cloud9 Editor)。官网
  • CodeMirror:浏览器端的代码编辑器。官网
  • esprima:用于综合分析的 ECMAScript 解析器。官网
  • quill:一个带有 API 的跨浏览器富文本编辑器。(官网)
  • medium-editor:Medium.com 所见即所得编辑器的克隆版。官网
  • pen:享受在线编辑(支持 markdown)。官网
  • jquery-notebook:一个易用的、简洁优雅的文本编辑器。灵感来源于 Medium 的魅力。官网
  • bootstrap-wysiwyg:小巧的、兼容 bootstrap 的所见即所得的富文本编辑器。官网
  • ckeditor-releases:适用于每个人的 web 文本编辑器。官网
  • editor:一个 markdown 编辑器,但仍在开发中。官网
  • EpicEditor:一个可嵌入的 JavaScript Markdown 官网的编辑器,拥有全屏编辑、即时预览、自动保存草稿和离线支持等功能。
  • jsoneditor:查看、编辑和格式化 JSON 的 web 工具。官网
  • vim.js: 拥有持久化 ~/.vimrc 的 Vim 编辑器的 JavaScript 移植版本。官网
  • Squire:HTML5 富文本编辑器。官网
  • TinyMCE:JavaScript 富文本编辑器。官网
  • trix:由 Basecamp 制作,适用于每天写作的富文本编辑器。官网

文件

处理文件的库。

  • Papa Parse:一款强大的 CSV 库,支持解析 CSV 文件/字符串,也能导出 CSV。官网
  • jBinary:对用声明式语法描述文件类型和数据结构的二进制文件,进行高级 I/O(加载、解析、操作、序列化、存储)操作。官网

函数式编程

函数式编程库扩展了 JavaScript 的能力。

  • underscore:JavaScript 的实用工具。官网
  • lodash:提供一致性、可定制、高性能和额外功能的实用库。官网
  • Sugar:一个扩展了原生对象功能的 JavaScript 库。官网
  • lazy.js:类似 Underscore,但性能更优越官网
  • ramda:一个针对 JavaScript 程序员的实用函数库。官网
  • mout:模块化的 JavaScript 工具库。官网
  • mesh:流数据同步工具。官网

响应式编程

响应式程序库扩展了 JavaScript 的能力。

  • RxJs:对 JavaScript 进行响应式扩展。官网
  • Bacon:JavaScript 的 FPR(函数式响应式编程)库。官网
  • Kefir:受 Bacon.js 和 RxJS 启发的 FRP 库,专注于高性能和低内存消耗。官网
  • Highland:对 JavaScript 实用工具的重新思考,Highland 能轻易地管理同步和异步信息,而且仅使用标准 JavaScript 和类 Node 流。官网
  • Most.js:高性能 FRP 库。官网

数据结构

数据结构库用于构建一个更复杂的应用。

  • immutable-js:不可变的数据集合,包括 Sequence、Range、Repeat、Map、OrderedMap、Set 和 sparse Vector。官网
  • mori:使用 ClojureScript 持久化数据结构和支持原生 JavaScript API 的库。官网
  • buckets:完整的、经过充分测试和记录数据结构的 JavaScript 库。官网
  • hashmap:简单的 hashmap 实现,支持任何类型的键值。官网

日期

日期库。

  • moment:解析、验证、操作和显示日期。官网
  • moment-timezone:基于 moment.js 的时区库。官网
  • jquery-timeago:一款支持自动更新模糊时间戳的 jQuery 插件(如:”4 分钟之前”)。官网
  • timezone-js:让 JavaScript Date 对象拥有时区功能。使用 Olson zoneinfo 文件记录着时区数据。官网
  • date:拥有人性化的 Date() 方法。官网
  • ms.js:小巧的毫秒转换工具。官网
  • timeago.js:一个非常轻量级(~1.7 Kb)的用于将时间转化成xxx时间前格式,例如:8分钟前。官网

字符串

字符串库。

  • selecting:一个允许你获取用户选定文本的库。官网
  • underscore.string:扩展了 Underscore.js 的字符串操作。官网
  • string.js:额外的 JavaScript 字符串方法。官网
  • he:健壮的 HTML 实体编码/解码器。官网
  • multiline:多行字符串。官网
  • query-string:解析和字符串化 URL 查询字符串。官网
  • URI.js:URL 操作库。官网 
  • jsurl:轻量的 URL 操作库。官网
  • sprintf.js:实现字符串格式化。官网
  • url-pattern:让 url 和其它字符串进行比正则表达式匹配更简单。字符串和数据可相互转化。官网

数字

  • Numeral-js:对数字进行格式化和操作的库。官网
  • odometer:流畅的数字过渡效果。官网
  • accounting.js:对数字、金钱、货币进行格式化的轻量库——完全本地化和无依赖。官网
  • money.js:一个小巧(1kb)的货币转换库,适用于 web 和 nodeJS。官网
  • Fraction.js:一个有理数库。官网
  • Complex.js: 一个复数库。官网
  • Polynomial.js:一个多项式库。官网

存储

  • store.js:为所有浏览器封装了 LocalStorage,而没有使用 cookies 和 flash。隐秘地使用 localStorage、globalStorage 和用户数据。官网
  • localForage:改善后的离线存储。其封装了 IndexedDB、WebSQL 和 localStorage,拥有操作简单和强大的 API。官网
  • jStorage:jStorage 是一个简单的键值对数据库,用于在浏览器端存储数据。官网
  • cross-storage:获得权限后,能跨域名本地存储。官网
  • basket.js:用 localStorage 加载和缓存脚本的资源加载器。官网
  • bag.js:可以缓存脚本和加载资源,与 basket.js 相似,但增加了键值对接口和对 localStorage / websql / 官网undexedDB 的支持。
  • basil.js:智能的 JavaScript 数据持久层库。官网
  • jquery-cookie:轻量简单的、用于读取、编辑和删除 cookie 的 jQuery 插件。官网
  • Cookies:客户端 Cookie 操作库。官网
  • DB.js:基于 Promise 的、封装了 IndexedDB 的库。官网
  • lawnchair.js:简单的客户端 JSON 存储。官网

颜色

  • randomColor:JavaScript 颜色生成器。官网
  • chroma.js:拥有各种各样颜色操作的 JavaScript 库。官网
  • color:JavaScript 颜色转换和操作库。官网
  • colors:更智能的默认 web 颜色。官网
  • PleaseJS:随机创建出赏心悦目的颜色和配色方案。官网
  • TinyColor:快速、轻巧的颜色操作和转换库。官网
  • Vibrant.js:从图像提取主要颜色。官网

国际化和本地化(I18n And L10n)

本地化和国际化 JavaScript 库

  • i18next:JavaScript 最简单的国际化(i18n)方法。官网
  • polyglot:小巧的国际化助手库。官网
  • babelfish:i18n 提供友好易懂的 API ,并且内置多种支持。官网

类

  • ClassManager:世界上最快、最方便的类系统之一。官网
  • klass:用于创建极富表现力的类工具库。官网
  • augment:世界上最小且最快的一流 JavaScript 继承模式。官网

控制流

  • async:适用于 node 和浏览器的异步工具库。官网
  • q:实现异步的 promise JavaScript 库。官网
  • step:让逻辑顺序合理化的异步控制流库。官网
  • contra:利用函数风格实现的异步流控制。官网
  • Bluebird:专注于革新功能和性能的,功能齐全的 promoise 库。官网
  • when:快速可靠的、Promises/A+ 规范的 when() 实现,而且拥有异步其它的优秀特性。官网
  • ObjectEventTarget:提供增加了事件监听的原型(与 DOMElement 的 EventTarget 在浏览器行为一致)。官网

路由

  • director:一个小巧的、与 URL 同构的路由器。官网
  • page.js:受 Express router 启发的小型客户端路由器(约为1200字节)。官网
  • pathjs:简单、轻量的 web 路由器。官网
  • crossroads:JavaScript 路由。官网
  • davis.js:使用 pushState、RESTful 风格和可降级的 JavaScript 路由器。官网
  • angular-ui-router:基于AngularJS的可嵌套路由。官网
  • react-router: Declarative routing for React 官方
  • vue-router: Declarative routing for Vue 官方

安全性

  • DOMPurify:针对 HTML、MathML 和 SVG 的仅支持DOM、快速、高容错的 XSS 过滤器。官网
  • js-xss:通过白名单配置,即可过滤不信任的 HTML(防止 XSS 攻击)。官网

日志

  • log:带有样式的 Console.log。官网
  • Conzole:对 JavaScript 原生 console 对象方法和功能进行封装的 debug 面板,使其显示在页面内。官网
  • console.log-wrapper:将日志清晰地记录到 console,且兼容所有浏览器。官网
  • loglevel:最轻量的 JavaScript 日志记录工具库,向封装后可用的 console.log 方法增加可靠的日志等级。官网
  • minilog:轻量的、用流式 API 显示的、可用于客户端和服务器端的日志记录库。官网

正则表达式

  • RegEx101:在线的 JavaScript 正则表达式测试器和调试器。同时支持 Python、PHP 和 PCRE。官网
  • RegExr:用于创建、测试和学习正则表达式的 HTML/JS  工具。官网
  • RegExpBuilder:使用链式方法创建正则表达式。官网

媒体

  • Ion.Sound:可用于任何网页上简单音频。官网

语音命令

  • annyang:向网站添加语音命令的语音识别库。官网
  • voix.js:向网站、app 或游戏添加语音命令的 JavaScript 库。官网

API

  • bottleneck:强大的频率限制器,使调节流量变得更容易。官网
  • oauth-signature-js:适用于 node 和 浏览器的 OAuth 1.0a 签名生成器。官网
  • amygdala:为 Web 应用提供 RESTful HTTP 客户端解决方案。官网
  • jquery.rest:一个让 RESTful API 更易使用的 jQuery 插件。官网

视觉检测

  • tracking.js:在 web 上实现计算视觉的一种现代方法。官网
  • ocrad.js:通过 Emscripten 用 JavaScript 实现 OCR(光学字符识别)。官网

浏览器检测

  • bowser:一个浏览器检测器。官网

性能分析

  • easy-monitor:一个轻量级实时 Node.js 项目的内核性能分析工具。官网

UI

代码高亮

  • Highlight.js:JavaScript 语法高亮器。官网
  • PrismJS:轻量、健壮和优雅的语法高亮器。官网

加载状态

指示加载状态的库。

  • Mprogress.js:创建谷歌 Material 设计风格的线性进度条。官网
  • NProgress:在 Ajax’y 应用显示细长型进度条官网
  • Spin.js:一个旋转的进度指示器。官网
  • progress.js:为页面任何对象创建和管理进度条。官网
  • progressbar.js:用 SVG path 动画制作的、漂亮和响应式的进度条。官网
  • pace:自动向你的网站添加一个进度条。官网
  • topbar:小巧漂亮的、与网站同宽的进度指示器。官网
  • nanobar:非常轻量的进度条。不依赖 jQuery。官网
  • PageLoadingEffects:使用 SVG 动画展现新内容的现代方式。官网
  • SpinKit:运用 CSS 动画的加载指示器集合。官网
  • Ladda:内置在按钮的加载指示器。官网
  • css-loaders:运用 CSS 动画的旋转加载指示器的集合。官网

除了上述这些库,还有收藏在 Codepen 的,另外还有 Ajaxload,Preloaders 和 CSSLoad 这些生成器。

验证

  • Parsley.js:不用写一行 JavaScript 代码即可在前端验证表单。官网
  • jquery-validation:jQuery 验证插件。官网
  • validator.js:字符串验证和过滤(在使用用户输入之前清理用户输入中的有害或危险字符的操作)。官网
  • validate.js:受 CodeIgniter 启发的轻量表单验证 JavaScript 库。官网
  • validatr:跨浏览器的 HTML5 表单验证库。官网
  • BootstrapValidator:是验证表单域中最好的 jQuery 插件。要与 Bootstrap 3 一起使用。官网
  • is.js:检查类型、正则表达式、是否存在、时间等。官网
  • FieldVal:多用途验证库。同时支持同步和异步验证。官网

键盘封装器

  • mousetrap:处理键盘快捷键的 JavaScript 库。官网
  • keymaster:定义和调度键盘快捷键的小型库。官网
  • Keypress:键入捕捉工具库,任何键都可以成为一个修饰健。官网
  • KeyboardJS:一个用于绑定键盘组合的 JavaScript 库,让你脱离快捷键和快捷键组合冲突的痛苦。官网
  • jquery.hotkeys:jQuery Hotkeys 能让你在代码任何的地方监听键盘事件,并几乎支持所有按键组合。官网
  • jwerty:令人惊叹的键盘事件处理库。官网

浏览和引导

  • intro.js:这是一个介绍新功能的很好方式,能一步步地引导用户浏览你的网站和项目。官网
  • shepherd:通过引导让用户浏览你的应用程序。官网
  • bootstrap-tour:应用 Twitter Bootstrap 弹出框对产品进行快速简单的引导。官网
  • tourist:简单、灵活的应用引导介绍库。官网
  • chardin.js:简单的应用遮罩层介绍。官网
  • pageguide:使用 jQuery 和 CSS3 的 web 页面元素交互引导库。官网
  • hopscotch:让开发者更容易向其页面产品添加引导的框架。官网
  • joyride:基于 jQuery 的功能引导插件。官网
  • focusable:通过向页面其余部分添加遮罩层,使焦点聚集在特定 DOM 元素。官网

通知

  • messenger:为你的应用添加 Growl-style 弹框和信息(Crowl 是 Mac OS X 下的一个通知系统)。官网
  • noty:jQuery 通知插件。官网
  • pnotify:适用于 Bootstrap、jQuery UI 和 Web Notifications Draft 的 JavaScript 通知库。官网
  • toastr:用来显示简单的,会自动到期的信息窗口)简单的弹出框通知(toast notifications官网
  • humane-js:一个简单、时髦的浏览器通知系统。官网
  • smoke.js:与框架无关的、能够自定义样式的 JavaScript 弹框系统。官网

幻灯片

  • Swiper:使用硬件加速过渡的移动设备触控滑块框架。官网
  • slick:你所需要的最后一个轮播插件。官网
  • slidesJs:响应式的 jQuery(1.7.1+)幻灯片插件,具有触摸、 CSS3 过渡等特性。官网
  • FlexSlider:一款令人惊叹的、全响应式的幻灯片 jQuery 插件。官网
  • unslider:最简单的幻灯片 jQuery 插件。官网
  • colorbox:轻量、可自定义的灯箱 jQuery 插件。官网
  • fancyBox:提供了良好优雅的方式,为页面上的图片、html 内容和多媒体添加缩放功能的工具。官网
  • sly:基于项导航的、支持单向滚动的 JavaScript 库。官网
  • vegas:向页面添加漂亮的全屏背景的 jQuery 插件,甚至允许幻灯片。官网
  • Sequence:用于创建响应式的幻灯片、演示、旗帜广告和以步骤为基础的应用的 CSS 动画框架。官网
  • baguetteBox.js:易于使用的、用纯 JavaScript 实现的遮罩层脚本。官网
  • reveal.js:用 HTML 创建漂亮演示控件的框架。官网
  • PhotoSwipe:适用于移动设备和桌面电脑的、模块化和不无依赖框架的 JavaScript 画廊控件。官网
  • jcSlider:用 CSS 动画实现的响应式幻灯片 jQuery 插件。官网
  • basic-jquery-slider:易于使用、指定主题和定制化。官网
  • unslider: 这是最简单的幻灯片 jQuery 插件。官网
  • viewerjs:原生js实现的图片查看器。官网
  • jQuery.adaptive-slider:带有自适应颜色标题和导航的幻灯片 jQuery 插件。官网
  • slidr:可添加一些幻灯片效果。官网
  • Flickity:可触摸的、响应式的和可轻弹的画廊。官网

滑块控件

  • Ion.RangeSlider:强大的、易于自定义的范围滑块选择库,支持很多配置和皮肤。官网
  • jQRangeSlider:支持日期的滑块选择库。官网
  • noUiSlider:轻量无冗余的、高度定制化的滑块选择库。官网
  • rangeslider.js:HTML5  input 区域滑块元素。官网

表单组件

输入

  • typeahead.js:快速的、功能齐全的自动补全库。官网
  • tag-it:处理多标签字段以及标签建议/自动完成的 jQuery UI 插件。官网
  • At.js:向你的应用添加类似 Github 的自动完成提示功能。官网
  • Placeholders.js:JavaScript 补全 HTML5 占位符的属性。官网
  • fancyInput:利用 CSS3 效果让输入更有趣。官网
  • jQuery-Tags-Input:利用这个 jQuery 插件,可奇妙地将一个简单的文本输入转换成一个酷酷的标签列表。官网
  • vanilla-masker:一个纯 JavaScript 实现的输入控制库。官网
  • Ion.CheckRadio:一个为复选框和单选按钮添加样式的 jQuery 库,支持多种皮肤。官网

日历

  • pickadate.js:对移动设备友好的、响应式的和轻量的 jQuery 日期 & 时间输入选择器。官网
  • bootstrap-datepicker:基于 bootstrap 的日历选择器。官网
  • Pikaday:一个崭新的 JavaScript 日期选择器 —— 轻量、无依赖和模块化的 CSS。官网
  • fullcalendar:全尺寸、支持拖放事件的日历(jQuery 插件)。官网
  • rome:可定制的日期(和时间)选择器。无依赖,可选 UI。官网
  • datedropper: datedropper 是一个 jQuery 插件,它提供了快速简易的方式去管理日期输入框。官网
  • flatpickr: flatpickr 是一个轻量、强大、无依赖的日历和时间选择器插件,支持移动端,并支持React、Ember、Angular和Vue。官网

选择

  • selectize.js:Selectize 是文本框和选择框的混合体。它基于jQuery,拥有自动完成和键盘感应下拉列表功能,可用于标签、联系人列表等。官网
  • select2:它基于 jQuery,是选择框(select box)的替代品。支持搜索、远程数据集和无限滚动。官网
  • chosen:可以让冗长不便的选择框更友好的库。官网

文件上传

  • jQuery-File-Upload:File Upload 是一个支持多文件选择、文件拖放、进度条、验证和图片、音频、视频预览的 官网jQuery 插件。
  • dropzone:Dropzone 是一个易于使用且支持多文件拖放的库。其支持图片预览并且拥有很好的进度条效果。官网
  • flow.js:一个通过 HTML5 的 File API ,提供多个同时链接的、稳定的、容错的、可恢复的/可重新开始的文件上传库。官网
  • fine-uploader:一个带有进度条、拖放功能和支持直接上传到 S3 (Amazon Simple Storage Service,亚马逊简易存储服务)的多文件上传插件。官网
  • FileAPI:JavaScript 文件工具集合。支持多文件上传、拖放和文件分块上传。对于图像,支持裁剪、调整大小和根据 EXIF 自动调整方向。官网
  • plupload:处理文件上传的 JavaScript 官网API,其支持多文件选择、文件类型过滤、分块请求、客户端图片缩放和根据不同的运行环境选择 HTML5、Silverlight 和 Flash。

其它

  • form:jQuery 表单插件。官网
  • Garlic.js:自动在本地保存表单文本和选择框的值,直到表单被提交。官网
  • Countable:对某个 HTML 元素包含文本的段落数、单词数和字符数进行统计的 JavaScript 函数。官网
  • card:只需一行代码,让信用卡表单变得更友好。官网
  • stretchy:自适应大小的 form 元素,表单本应该是这样的。官网
  • list.js:向表格、列表等 HTML 元素添加搜索、排序、过滤和自适应功能的库。在已有 HTML 上增加可视化。 官网

提示

  • tipsy:基于 jQuery 的 Fackbook 风格的提示工具(tooltip)。官网
  • opentip:开源且基于 prototype 框架的 JavaScript 工具提示库。官网
  • qTip2:非常强大的工具提示库。官网
  • tooltipster:一个工具提示 jQuery 插件。官网
  • simptip:用 Sass 制作的、简单的工具提示。官网
  • jquery-popup-overlay:是一个响应式的和可访问性强的模态框(modal)和工具提示框 jQuery 插件。官网

模态框和弹出框

  • Magnific-Popup:专注于性能、轻量、响应式的灯箱(lightbox)脚本。官网
  • jquery-popbox:jQuery 提示框插件。官网
  • jquery.avgrund.js:一种新的定于弹出的模态框 jQuery 插件。官网
  • vex:新的、拥有高度可配置和易于改变样式功能的对话框库。官网
  • bootstrap-modal:对 Bootstrap 默认的模态框类进行扩展。其支持响应式、可堆叠和 ajax 等。官网
  • css-modal:纯 CSS 打造的模态框。官网
  • jquery-popup-overlay:是一个响应式的和可访问性强的模态框和工具提示框(tooltips)jQuery 插件。官网
  • layer:国内最多人使用的web弹层组件。官网

滚动

  • scrollMonitor:滚动发生时,可以监听元素的、简单、快速的 API。官网
  • headroom:除非你需要显示页面头部(header),否则将隐藏它,以腾出页面头部空间。官网
  • onepage-scroll:创建一个类似 Apple 的单页面滚动网站(iPhone 5S  网站)。官网
  • iscroll:高性能、轻量、无依赖、兼容多平台的 JavaScript 滚动组件。官网
  • skrollr:独立(不依赖 jQuery) 的视差滚动库,适用于移动设备(Android + iOS)和桌面电脑。官网
  • parallax:面向智能设备的视差引擎。官网
  • stellar.js:让视差滚动变简单。官网
  • plax:基于 jQuery 的视差库。官网
  • jparallax:创建可交互视差效果的 jQuery 插件。官网
  • fullPage:简单和易于使用的、用于创建全屏滚动网站的插件(也被称为单页面网站)。官网
  • ScrollMenu:让老旧无聊的滚动条焕然一新。官网

菜单

  • jQuery-menu-aim:当用户光标放在特定下拉菜单项时触发事件。可制作响应式的、大数据量的下拉菜单,如 Amazon 的。官网
  • jQuery contextMenu:右键菜单(contextMenu) 管理工具。官网
  • Slideout:为移动设备的 web 应用制作出响应式的、可触摸滑出的导航菜单。官网
  • Slide and swipe:一个基于 touchSwipe 库的滑出菜单插件。官网

表格/栅格

  • jTable:基于 CRUD 表创建 AJAX 的 jQuery 插件。官网
  • DataTables:这是一个非常灵活的工具,在渐进增强的基础上,将高级的交互效果加到 HTML 表格。(jQuery 插件)官网 
  • floatThead:(jQuery 插件)锁定表格头部,只允许表格内容滚动。适用于任何表格,而且不需要额外的 html 或 css。官网
  • Masonry:瀑布流式的网格布局库。官网
  • Packery:使用装箱算法(bin-packing)的网格布局库。支持拖拽布局。官网
  • Isotope:可过滤和可排序的网格布局的库,它能实现 Masonry、Packery 等布局。官网

框架

  • Semantic UI:拥有大量主题和元素的 UI 套件。官网

手势

  • hammer.js:拥有多种触摸手势的 JavaScript 库。官网
  • touchemulator:在桌面电脑模仿触摸输入。官网
  • Dragula:超级易于使用的拖拽库。官网

触摸

  • fastclick.js:去除触屏用户300ms点击延误。官网
  • dropload.js:移动端下拉刷新,上拉加载更多。官网
  • touchslide.js:触屏滑动特效。官网

地图

  • Leaflet:对移动设备友好的、可交互的地图 JavaScript 库。官网
  • Cesium:开源的、基于 WebGL 实现的虚拟地球仪和地图引擎。官网
  • gmaps:以最简单的方式使用 Google 地图。官网
  • polymaps:一个免费的、兼容现代 web 浏览器的、用于制作动态可交互的地图 JavaScript 库。官网
  • kartograph.js:开源的 Kartograph SVG 地图渲染器。官网
  • mapbox.js:Mapbox 的 API,Leaflet 的插件。官网
  • jqvmap:矢量地图 jQuery 插件。官网
  • OpenLayers3:高性能的、功能丰富的库,能满足你对地图所有需求。官网

视频/音频

  • prettyembed.js:更完美地嵌入 YouTube —— 拥有很好的选项,如高分辨率的预览图、嵌入选项的高级定制和可选的 官网FitVids 支持。
  • html5media:能在所有主流浏览器播放多媒体标签中定义的多媒体文件。官网
  • Play-em JS:Play’em 是一个 JavaScript 组件,它能管理音乐/视频播放顺序,通过在一个 DIV 元素里嵌入几个播放器(Youtube、Soundcloud 和 Vimeo)来控制一系列歌曲的播放。官网
  • polyplayer:将 YouTube、Soundcloud 和 Vimeo 播放器的 API 统一成一套。官网
  • flowplayer: HTML5 视频播放器 官网、Github
  • mediaelement:让 HTML5、 Flash 播放器和模仿 HTML5 媒介元素 API 的 Silverlight shim,在所有浏览器拥有一致的 UI。官网、Github
  • SoundJS:让音频在 web 上运行更简单的库。它为不同浏览器提供了一致的 API。官网

动画

  • velocity:加速 JavaScript 动画。官网
  • jquery.transit:拥有超级流畅的 CSS3 变换和过渡的 jQuery 插件。官网
  • impess.js:在 HTML 文档里,运用 CSS3 变换和过渡制作类似 Prezi 的展现效果。官网
  • bounce.js:可以立刻创建有趣的 CSS3 动画。官网
  • GreenSock-JS:适用于所有主流浏览器的高性能 HTML5 动画。官网
  • TransitionEnd:TransitionEnd 是一个运用 transitonend 事件的、跨浏览器的库。官网
  • Dynamics.js:用于创建基于物理知识的 CSS 动画库。官网

图片处理

  • lena.js:拥有滤镜和实用功能的图像处理库。官网
  • pica:高质量地调整图片大小(拥有快速的、纯 JS 实现的 Lanczos 滤镜算法)。官网
  • cropper:一个简单的图像裁剪 jQuery 插件。官网
  • AlloyImage:腾讯前端开源的基于HTML5的专业级图像处理开源引擎。官网

ECMAScript 6

  • es6features:ECMAScript 6 特性概述。官网
  • es6-features:ECMAScript 6:  特性概述和比较。官网
  • ECMAScript 6 compatibility table :Compatibility tables 展示了各种平台上所有 ECMAScript 6 特性的支持程度。官网
  • Babel (Formerly 6to5):将 ES6+ 代码转换成纯 ES5。官网
  • Traceur compiler:ES6 特性转 ES5。包括 classes、generators、promises、destructuring 官网patterns、default parameters 等。

软件开发工具包(SDK)

  • javascript-sdk-design:从工作和个人经验中提炼出来的 JavaScript SDK 设计指导。官网

大杂烩

  • echo:利用 data-* 属性延迟加载图片。官网
  • picturefill:响应式图片显示插件,使浏览器支持 srcset、size 属性。官网
  • platform.js:一个平台检测库,几乎适用于所有 JavaScript 平台。官网
  • json3:一个现代 JSON 实现库,几乎兼容所有 JavaScript 平台。官网
  • Logical Or Not:一个关于 JavaScript 特性的游戏。官网
  • BitSet.js:实现位向量的 JavaScript 库。官网
  • Edge.js:运行在一个进程中运行.NET和Node.js代码。官网、GitHub

精品阅读

  • braziljs/js-the-right-way:官网
  • JSbooks:官网
  • Superhero.js:关于创建、测试和维护一个大型 JavaScript 代码库的资源集。官网
  • 《前端开发者都应知道的 jQuery 小技巧》
  • 《常用的 Javascript 设计模式》
  • 《10 个 jQuery 图表插件推荐》
  • 《理解 JavaScript 原型》
  • 《只有20行Javascript代码!手把手教你写一个页面模板引擎》
  • 《编写快速、高效的JavaScript代码》
  • 《45个实用的JavaScript技巧、窍门和最佳实践》
  • 《为现代JavaScript开发做好准备》
  • 《给JavaScript初学者的24条最佳实践》

资源

有影响力的书

具有广泛影响且值得阅读的前端经典书籍。

  • 《Limu:JavaScript 的那些书》
  • 《你不知道的Javascript》:英文版 “You Don’t Know JS”

知名网站

值得关注的前端技术站点。

中文站点

  • 伯乐在线前端频道:伯乐前端分享 Web 前端开发,包括 JavaScript、CSS 和 HTML5 开发技术,前端相关的行业动态。官网

英文站点

待补充

阅读全文 »

awesome-gameserver-cn

发表于 2012-06-21 | 分类于 awesome

游戏服务器资源大全


目录

  • 游戏服务器资源大全
    • 网络
    • 协议
    • 持久化
    • Log
    • 游戏AI
    • 工具库
    • 开源服务器
    • 运维
    • 学习资源
    • 其他

网络

网络相关的库和工具

  • Java
    • Netty - Netty是一个高性能、异步事件驱动的NIO框架,它提供了对TCP、UDP和文件传输的支持
    • Mina - Apache Mina是一个能够帮助用户开发高性能和高伸缩性网络应用程序的框架
  • C++
    • libevent - libevent是一个轻量级的基于事件驱动的高性能的开源网络库,并且支持多个平台
    • libev - 较libevent而言,设计更简练,性能更好,但对Windows支持不够好
    • libuv - libuv 是 Node 的新跨平台抽象层,用于抽象 Windows 的 IOCP 及 Unix 的 libev
  • Python
    • Twisted - Twisted是用Python实现的基于事件驱动的网络引擎框架
    • Gevent - Gevent是一种基于协程的Python网络库,它用到Greenlet提供的,封装了libevent事件循环的高层同步API
  • Erlang
    • ranch - cowboy 项目下的Tcp网络库
  • C#
    • DotNetty - netty 的C#版

协议

协议

  • protobuf - 大家都知道的protobuf
  • FlatBuffers - Google出品,专门为游戏开发或其他性能敏感的应用程序需求而创建
  • Json - 这个算凑数吗?
  • MessagePack - It’s like JSON. but fast and small.

持久化

持久化框架

  • Java
    • MyBatis - 一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架
    • druid - 阿里巴巴出品 数据库连接池
  • C#
    • Dapper - 是一款轻量级ORM框架
  • Erlang
    • mysql-otp - MySQL driver for Erlang/OTP
  • Golang
    • go-sql-driver - MySQL driver for Golang

Log

Log

  • Java
    • Log4j - Apache log4j
  • C#
    • NLog - 支持多平台的C# log库
  • Erlang
    • Lager - A logging framework for Erlang/OTP
  • Golang
    • logrus - Structured, pluggable logging for Go
    • zap - Blazing fast, structured, leveled logging in Go

游戏AI

游戏AI

  • gdx-ai - libgdx下的一个ai系统(非常适合参考学习)
  • recastnavigation - 非常高效的寻路系统,和Unity的寻路算法几乎一样
  • Serpent.AI - 游戏代理框架,适合写外挂
  • behaviac - 腾讯开源的行为树框架

工具库

工具库

  • Java
    • disruptor - 性能高效的线程间通讯库
    • guava - Google出品的Java工具库

开源服务器

各种开源游戏服务器

  • pomelo - 网易出品的Node.js游戏服务器框架
  • skynet - 云风大神出品Lua游戏服务器框架
  • Scut - support C#/Python/Lua 可惜两年没有更新了
  • NoahGameFrame - 一个支持分布式的C++游戏服务器框架
  • TrinityCore - MMO游戏服务器框架,开源的魔兽服务器
  • ryzomcore - 分布式的游戏服务器,ryzom 的官方开源
  • kbengine - 一款开源的MMOG游戏服务端引擎, 仅Python脚本即可简单高效的完成任何游戏逻辑(支持热更新)
  • mqant - mqant是一款基于Golang语言的简洁,高效,高性能的分布式游戏服务器框架
  • MaNGOS - 开源的魔兽服务器
  • xingo - 高性能golang网络库,游戏开发脚手架
  • cuberite - 我的世界 的开源服务器
  • leaf - 用Golang写的gameserver

运维

运维工具

  • LinuxGSM - Linux Game Server Managers
  • fabric - 远程执行命令

学习资源

学习资源

  • Game Programming Patterns 游戏编程模式
  • game-programmer A Study Path for Game Programmer
  • entity-systems 实体系统
  • data-oriented-design 面向数据的设计
  • architect-awesome 后端架构师技术图谱

其他

  • games github上的一个游戏列表
阅读全文 »

awesome-design-cn

发表于 2012-06-21 | 分类于 awesome

awesome-design-cn

设计师资源大全由伯乐在线资源频道综合整理。目前已收录 340+ 设计类资源,包含:ICON图标、Logo设计、PhotoShop插件、交互设计工具、流程图、线框图/原型图、设计博客、设计工具设计教程、设计素材、配色方案、高清图库等等。

目录

ICON图标

  • Fontello:图标字体生成器
  • The Noun Project:免费提供高度可辨识符号图标
  • IconArchive:专业图标搜索引擎
  • iConify:Mac平台的苹果应用图标自动化生成工具
  • Iconbench:在线ICON素材图标制作工具
  • EasyIcon:免费图标搜索和下载平台
  • Icon Deposit:一个奇妙的图标下载站

Logo 设计

  • Logaster:教你在线几分钟内搞定专业的LOGO设计
  • LogoLounge:国际知名的LOGO设计权威网站
  • LogoMoose:一个优秀的logo素材站点
  • LogoPond:LOGO设计作品收藏网
  • BRAND NEW:资源丰富的Logo设计网站
  • LOGOED:一个展示Logo设计的博客
  • LOGOSPIRE:logo设计的交流平台
  • Logo of the Day:汇集世界各地优秀LOGO作品的站点
  • LogoDesignLove:Logo设计技巧分享网
  • Brandseen:匹配流行品牌LOGO颜色的在线游戏

Photoshop插件

  • Retinize:iOS切图神器
  • GuideGuide:一款PS参考线插件
  • Divine Proportions Toolkit:黄金分割工具
  • Kockout:PS抠图神器
  • Coolors:自动生成配色色板的小工具
  • Assistor PS:一个功能强大的PS辅助工具
  • Flexify 2:PS变形滤镜插件
  • DevRocket:一款iOS UI设计效率工具
  • Slicy:Mac下的切图神器
  • Kuler:Adobe的配色工具

交互设计工具

  • VXPLO:专业的HTML5编辑工具
  • Epub360:专业级H5交互设计工具
  • Indigo Studio:UI原型设计和交互设计工具
  • Avocado:无需编码的跟设计原型进行交互
  • Webflow:傻瓜式网页设计制作平台
  • Marvel:更专注交互动作的在线工具
  • Principle:Mac平台交互动效设计神器
  • Quartz Composer:图形化的编程工具
  • Form:交互原型设计工具
  • Pixate:设计师的免费动效神器
  • Framer.js:一个交互原型设计框架
  • Keynote:快速制作高保真交互原型
  • ORIGAMI:交互神器-图像设计动画合成工具
  • InVision:便捷的产品原型生成工具

流程图/脑图

  • ProcessOn:免费的在线作图、实时协作工具
  • DrawAnywhere:在线流程图制作工具
  • Lovely Charts:功能强大的在线图表制作工具
  • Creately:优秀的绘制产品图形的在线工具
  • Cacoo:在线简单易用的网络画图工具
  • LucidChart:在线流程图绘制和协作应用平台
  • Gliffy:在线免费流程图制作工具
  • NovaMind:非常优秀的思维导图软件
  • MindMapper:专业的可视化脑图管理工具
  • FreeMind:免费的思维导图软件
  • XMind:非常实用的商业思维导图软件
  • MindManager:专业思维导图工具
  • 百度脑图:便捷的思维编辑工具

灵感酷站

  • Sketchrepo:免费高品质的Sketch资源
  • Psdrepo:免费高品质的PSD资源
  • 1X:一个优秀的摄影作品网站
  • Magdeleine:免费高清灵感图片网
  • We Heart It:每天发现充满灵感且美丽的图片
  • PinSpire:灵感创意作品收集平台
  • NotCot:一个集视觉效果、美学为一体的网站
  • 9GAG:全球最搞笑的趣图网站
  • BoooooooM:设计简约但内容丰富的博客
  • illusion:展示最惊人的创意图片
  • Baubauhaus:提供设计灵感、插画摄影等艺术作品
  • Niice:设计师必备的灵感搜索引擎
  • DeviantArt:最大的艺术和设计社区
  • 花瓣网:设计师寻找灵感的天堂
  • pixiv:日本同人画、插画作品分享站点
  • Awwwards:最佳网页设计展示平台
  • WallHaven:高清壁纸图片搜索引擎
  • Pinterest:图片分享类的社交网站
  • Abduzeedo:一家集创意灵感和教程的设计博客
  • Yanko Design:最棒的现代工业设计站点
  • SwissMiss:分享创意设计的网站
  • PetaPixel:专业的摄影爱好者点评博客
  • 365PSD:免费psd图片素材下载网站
  • Typophile:字体设计艺术网站
  • Patterntap:适合用户界面设计和图案感兴趣的同学
  • Designshack:设计作品欣赏网站
  • Behance:全球领先的专业创意平台
  • Dribbble:设计师必备网站之一
  • FFFFound:专业的图片收藏网
  • MyModernmet:众多艺术家不可或缺的信息来源
  • Grain Edit:复古和古典风格的设计内容
  • UIparade:灵感UI设计作品分享网站
  • Muuuuu:日本网站画廊,收集最具创意网站
  • iKesai:网页设计作品案例库
  • CSS Winner:网站设计资源站点

线框图/原型图

  • Prott:移动测试原型制作工具
  • Solidify:一款原型制作软件
  • ProcessOn:免费的在线作图、实时协作工具
  • Mockingbird:一个基于 Web 的在线原型设计平台
  • Creately:优秀的绘制产品图形的在线工具
  • Cacoo:在线简单易用的网络画图工具
  • Gliffy:在线免费流程图制作工具
  • Indigo Studio:UI原型设计和交互设计工具
  • 墨刀MockingBot:免费的移动应用原型与线框图工具
  • Marvel:更专注交互动作的在线工具
  • Keynote:快速制作高保真交互原型
  • OmniGraffle:Mac平台下最好的原型设计工具
  • Handmade Sketches:手工草图绘制工具
  • Mockups.me:ui线框图软件
  • Live wire:iPad上的线框图制作工具
  • UXToolbox:Window平台的线框图工具
  • DevRocket:一款iOS UI设计效率工具
  • AppCooker:从图标草图到原型设计的iPad应用
  • Blueprint:你轻而易举地设计原型的iPad应用
  • Mockplus摩客:简洁高效的原型图设计工具
  • Pencil Project:制作图表和GUI原型的工具
  • iPlotz:用来创建可点击、可导航的原型和线框图工具
  • Mokk.me:一个简单快速的原型工具
  • InVision:便捷的产品原型生成工具
  • HotGloo:功能强大的产品原型在线工具
  • iPhone Mockup:非常简单的在线原型工具
  • FlairBuilder:用来创建交互性线框图的快速原型工具
  • Pidoco:一款基于Web的原型设计软件
  • Omnigraffle:用来快速绘制线框图、图表、流程图等
  • WireframeSketcher:灵活的线框图和原型快速创作工具
  • Protoshare:十分便捷的在线原型制作工具
  • MockFlow:制作产品原型的在线工具
  • Balsamiq Mockups:基于Flash的快速制作线框图工具
  • Proto.io:一个专用的手机原型开发平台
  • Axure RP:专业的快速原型设计工具
  • Wireframe.cc:在线线框图绘制工具
  • PowerMockup :把微软的PPT文件直接变成线框图工具
  • UXPin:实体模型和在线可点击原型创作工具
  • Fluid UI:用于移动开发的Web原型设计工具
  • Mockup:在线线框图工具
  • justinmind:产品原型设计工具

设计博客

  • BoooooooM:设计简约但内容丰富的博客
  • LOGOED:一个展示Logo设计的博客
  • Abduzeedo:一家集创意灵感和教程的设计博客
  • SwissMiss:分享创意设计的网站
  • The Industry:学习平面设计的极佳出版物
  • Net Magazine:文章覆盖面广,适合扩宽眼界
  • Web Designer Depot:适合视觉设计人员专注
  • Design Modo:偏于设计前沿和设计趋势的博客
  • Lukew:干货文章分享,资深的用户体验专家
  • UX Magazine:善于用通俗的案例讲解理论知识
  • UXbooth:专注于用户体验设计文章
  • Smashing Magazine:整体质量很高的设计文章
  • The Great Discontent:提供世界顶尖创意者的漫长访谈

设计工具

  • One% CSS Grid:一款基于百分比的CSS响应式框架
  • Simple Grid:轻量级的响应式 CSS 网格系统
  • Iconify:一个作品网站平台
  • iConify:Mac平台的苹果应用图标自动化生成工具
  • Viewport Resizer:一个测试响应式设计的小书签
  • Divshot:在线的可视化网页设计工具
  • Bootply:一款很棒的 Bootstrap UI 编辑工具
  • Jetstrap:Bootstrap框架的可视化制作工具
  • Layoutit:在线搭建Bootstrap响应式布局的工具
  • Bonsai:一套轻量级的JavaScript绘图库
  • Bootsnipp:针对Web设计师和开发者的前端元素库
  • SimplyTestable:一款自动的前端网页测试工具
  • Onlytasks:支持双向同步的Evernote效率工具
  • rwdgrid:基于960grid的响应式网格系统
  • Iconbench:在线ICON素材图标制作工具
  • Photo Raster:在线免费图片编辑美化工具
  • Manymo:在线安卓系统模拟器工具
  • Sellbox:可以通过Dropbox账户售卖你的数字文档
  • RightFont:超好用的字体管理工具
  • Wobzip:提供在线解压缩文件的网站
  • Archive.Today:一个网页快照捕捉工具
  • Minigrid:简约漂亮的网页布局栅格系统
  • Background Burner:简单的在线抠图工具
  • CloudConvert:在线免费的万能文件格式转换器
  • Lovely Charts:功能强大的在线图表制作工具
  • Cacoo:在线简单易用的网络画图工具
  • Incogna:相似图片搜索引擎
  • Picitup:在线相似图片搜索引擎
  • PinCap:图片资源收集管理工具
  • TinEye:以图搜图的反向图片搜索引擎
  • Giphy:专搜GIF动态图的搜索引擎
  • LibreStock:一站搜寻二十个常用的图库网站
  • Assistor PS:一个功能强大的PS辅助工具
  • PaintCode:矢量图设计工具
  • Macaw:富有超前性和前瞻性的Web设计工具
  • Jimdo:在线网页自助建站平台
  • Ceilfire:一个创建HTML5游戏并分享的平台
  • Weebly:快速搭建免费网站、博客和网店
  • Google Web Designer:可视化HTML5网页和广告设计开发工具
  • Wix:基于html5的免费网站生成应用
  • VXPLO:专业的HTML5编辑工具
  • 易企秀:H5页面移动微场景应用制作工具
  • 兔展:微信场景应用的在线制作工具
  • Liveapp:移动场景应用平台
  • MAKA:简单、强大的H5创作工具
  • 初页:微信H5海报创作工具
  • 白板:设计图多人实时讨论工具
  • Ulead Cool 360:一个全景图片生成器
  • Red pen:设计图实时讨论工具
  • Coolsite360:无需编程的响应式网站设计工具
  • Epub360:专业级H5交互设计工具
  • 皮影客:三分钟做部动画片
  • Webflow:傻瓜式网页设计制作平台
  • Quartz Composer:图形化的编程工具
  • After Effects:一款图形视频处理软件
  • Hype 3:帮助不会编程的用户轻松创建 HTML 5
  • Dorado:一款方便灵活的标注工具
  • WhatFontIs:在线图片字体识别工具
  • 在线认字体:看图识字的求字体网
  • MarkMan马克鳗:高效的设计稿标注、测量工具
  • Skala Preview:iOS UI 设计师必备
  • Briefs:专业APP设计工具
  • Placeit:在线预览APP界面设计效果图的模板工具
  • UI Parde:在线UI设计工具
  • CSS Content Filter:易于定制、便于集成的CSS内容过滤工具
  • TinyCon:用于管理Favicon和弹出框
  • Gitup:为Git所准备的图形化客户端
  • Unsplash:用于网页中的图片占位符
  • Now UI Kit:用于网页设计、平板和手机的界面
  • Timber:一款前端框架工具
  • Grid.Guide:计算栅格宽度的工具
  • Apostrophe:一款设计驱动下的内容管理系统
  • Bonsai:一款为自由设计师所准备的工具
  • GridLayout:一款轻量级的栅格系统
  • Rucksack:一款有趣的CSS工具
  • Flarum:一套简约易用的开源论坛系统
  • Lightning Design Systems:专注于构建体验优秀的企业级APP
  • Frontify:维护品牌风格和样式的在线工具
  • TinyPng:在线PNG图片压缩工具
  • Kendo UI : jQuery HTML5 UI组件框架
  • AdobeEdgeWebFonts:Adobe免费Web字体
  • Sizecalc:字体大小计算器
  • Inkpad:iPad 矢量插图应用

设计教程

  • SlideRule:在线免费课程搜索平台
  • Abduzeedo:一家集创意灵感和教程的设计博客
  • HackDesign:黑客设计教学网
  • Lukew:干货文章分享,资深的用户体验专家
  • UX Magazine:善于用通俗的案例讲解理论知识
  • UXbooth:专注于用户体验设计文章
  • Smashing Magazine:整体质量很高的设计文章
  • The Great Discontent:提供世界顶尖创意者的漫长访谈
  • Information Aesthetics:学习信息图设计和布局的网站
  • about tech:数字排版开放课程
  • AIGA:专业的设计理论文章
  • Design Tutsplus:专业设计教程网

设计素材

  • Freepik:免费的素材搜索引擎
  • RBNo2.1:是简化版的非衬线字体
  • Moki:从七种不同的风格演变而来的字体
  • King Wood Volume:带有Tuscan的哥特式风格的字体
  • Window Dressing JNL:线条干净、简洁的字体
  • Zombie Sunrise:一款手绘设计的字体
  • Toolkit:一款免费的怀旧感字体
  • Poly:一款基于几何排列的免费显示字体
  • Eaglefeather:由P22 Type Foundry调整而来的字体
  • Hummingbird:一款既怀旧复古又有科技感的字体
  • Rosarian:一款书法字体
  • Sketchrepo:免费高品质的Sketch资源
  • Psdrepo:免费高品质的PSD资源
  • The Pattern Library:免费纹理素材资源网
  • PicJumbo:在线免费高质量素材网
  • Material UI Colors:为Material Design而生的配色模板
  • Design Kindle:免费网页UI设计素材下载站
  • DeviantArt:最大的艺术和设计社区
  • 花瓣网:设计师寻找灵感的天堂
  • 365PSD:免费psd图片素材下载网站

配色方案

  • Spectrum:色彩搭配、图片取色器工具
  • Coolors:自动生成配色色板的小工具
  • Material Palette:Material Design专用在线配色工具
  • Material UI Colors:为Material Design而生的配色模板
  • Web安全色:WEB设计、开发中常用的安全颜色
  • Color Hunter:一个十分酷炫的配色网站
  • 配色网:国内的非盈利配色素材网站
  • Nippon colors:日本传统用色色谱网站
  • Colorotate:独特创意的设计调色板
  • ColorZilla:火狐浏览器网页取色器插件
  • Contrast-A:非常专业的调色板配置工具
  • Adobe Color CC:Adobe取色器
  • Kuler:Adobe的配色工具
  • Color Palette Generator:图片配色工具
  • Color Scheme Designer:免费网络调色工具
  • Color Hunt:漂亮炫酷的配色方案
  • Brandseen:匹配流行品牌LOGO颜色的在线游戏

高清图库

  • PhotoPin:基于Flickr图片资源搜索引擎
  • SplitShire:免费高清摄影图片下载
  • Free Refe Mobile Photos:主要提供免费的手机图片
  • Photo Raster:在线免费图片编辑美化工具
  • Stock Up:一次查找21个免费可商用图库网站
  • Wallpaperswide:精品壁纸下载站
  • Socwall:高清壁纸下载站
  • flickr:雅虎旗下图片分享网站
  • 500px:一个专业摄影师图片社区
  • 1X:一个优秀的摄影作品网站
  • Jaymantri:免费高清摄影图片网
  • Picography:免费高清摄影图片分享网
  • FoodiesFeed:免费食品图片下载网站
  • Magdeleine:免费高清灵感图片网
  • Raumrot:免费高分辨率无版权图片网
  • FreeImages:免费商业图片素材网
  • LifeOfPix:免费欧美生活图片网
  • Incogna:相似图片搜索引擎
  • Picitup:在线相似图片搜索引擎
  • We Heart It:每天发现充满灵感且美丽的图片
  • illusion:展示最惊人的创意图片
  • VisualizeUs:一个图片收藏网站
  • PinCap:图片资源收集管理工具
  • TinEye:以图搜图的反向图片搜索引擎
  • Giphy:专搜GIF动态图的搜索引擎
  • LibreStock:一站搜寻二十个常用的图库网站
  • IM Free:免费高清图片库
  • The Pattern Library:免费纹理素材资源网
  • PicJumbo:在线免费高质量素材网
  • Design Kindle:免费网页UI设计素材下载站
  • 花瓣网:设计师寻找灵感的天堂
  • WallHaven:高清壁纸图片搜索引擎
  • Snapographic:免费高清照片订阅网
  • Twnsnd:免费复古照片公共档案库
  • GIRLY DROP:高清美女图片素材站
  • Foter:免费图片素材搜索引擎
  • DesignersPics:免费高清图片资源
  • Pexels:免费高品质图片 可商用
  • Gratisography:定期发布高品质的免费照片
  • Function:优秀的图片网站
  • Pixabay:内容丰富的摄影照片网站
  • Death To The Stock Photo:高品质的照片网站
  • DotSpin:漂亮的图片素材网站
  • New Old Stock:一个有趣的复古照片网站
  • Superfamous:免费高质量图片素材
  • Little Visuals:免费高质量图片素材
  • Unsplash: 高品质免费图片素材库
阅读全文 »

awesome-cpp

发表于 2012-06-21 | 分类于 awesome

Awesome C++ Awesome

A curated list of awesome C++ (or C) frameworks, libraries, resources, and shiny things. Inspired by awesome-… stuff.

  • Awesome C++ Awesome
    • Standard Libraries
    • Frameworks
    • Artificial Intelligence
    • Asynchronous Event Loop
    • Audio
    • Biology
    • BitTorrent
    • CLI
    • Compression
    • Concurrency
    • Containers
    • Cryptography
    • Database
    • Debug
    • Game Engine
    • GUI
    • Graphics
    • Image Processing
    • Internationalization
    • Inter-process communication
    • JSON
    • Logging
    • Machine Learning
    • Math
    • Multimedia
    • Networking
    • PDF
    • Physics
    • Regular Expression
    • Robotics
    • Scientific Computing
    • Scripting
    • Serialization
    • Sorting
    • Video
    • Virtual Machines
    • Web Application Framework
    • XML
    • Miscellaneous
  • Software
    • Compiler
    • Online Compiler
    • Debugger
    • Integrated Development Environment
    • Build Systems
    • Static Code Analysis
    • Coding Style Tools
  • Resources
    • API Design
    • Articles
    • Books
    • Coding Style
    • Talks
    • Videos
    • Websites
    • Weblogs
    • Other Awesome Projects
  • Other Awesome Lists
  • Contributing

Standard Libraries

C++ Standard Library - including STL Containers, STL Aglorithm, STL Functional, etc.

  • C++ Standard Library - A collection of classes and functions, which are written in the core language and part of the C++ ISO Standard itself.
  • Standard Template Library - The Standard Template Library (STL).
  • C POSIX library - A specification of a C standard library for POSIX systems.
  • ISO C++ Standards Committee - ISO/IEC JTC1/SC22/WG21 - The C++ Standards Committee. website
  • The GNU C Library - The purpose of this manual is to tell you how to use the facilities of the GNU C Library.

Frameworks

C++ generic frameworks and libraries.

  • abseil-cpp - Abseil C++ Common Libraries. [Apache2]
  • Apache C++ Standard Library - STDCXX, A collection of algorithms, containers, iterators, and other fundamental components. [retired] [Apache2]
  • APR - Apache Portable Runtime. Another library of cross-platform utility functions. [Apache2]
  • ASL - Adobe Source Libraries provides peer-reviewed and portable C++ source libraries. [MIT]
  • Boost :zap: - A large collection of generic C++ libraries. [Boost] website
  • BDE - The BDE Development Environment from Bloomberg Labs. [Apache2]
  • Cinder - A community-developed, free and open source library for professional-quality creative coding. [BSD]
  • Cxxomfort - A small, header-only library that backports to C++03 some of the nifty C++11 goodies. [MIT]
  • Dlib :zap: - A general purpose cross-platform C++ library designed using contract programming and modern C++ techniques. [Boost] website
  • EASTL - Electronic Arts Standard Template Library. [BSD]
  • ffead-cpp - Framework for Enterprise Application Development. [Apache2]
  • Folly - An open-source C++ library developed and used at Facebook. [Apache2]
  • FunctionalPlus - Functional Programming Library for C++. Write concise and readable C++ code. [MIT]
  • GLib - GLib provides the core application building blocks for libraries and applications written in C. [LGPL]
  • JUCE - An all-encompassing C++ class library for developing cross-platform software. [Core-Module: ISC, Rest: GPL2/GPL3/Commercial] website
  • libPhenom - libPhenom is an eventing framework for building high performance and high scalability systems in C. [Apache2]
  • LibSourcey - C++11 evented IO for real-time video streaming and high performance networking applications. [LGPL]
  • LibU - A multiplatform utility library written in C. [BSD]
  • Loki - A C++ library of designs, containing flexible implementations of common design patterns and idioms. [MIT]
  • MiLi - Minimal headers-only C++ Library. [Boost]
  • OpenFrameworks - A cross platform open source toolkit for creative coding in C++. [MIT] website
  • Qt :zap: - A cross-platform application and UI framework. [GPL/LGPL/Commercial]
  • Reason - A cross platform framework designed to bring the ease of use of Java, .Net, or Python to developers who require the performance and strength of C++. [GPL2]
  • ROOT - A set of OO frameworks with all the functionality needed to handle and analyze large amounts of data in a very efficient way. Used at CERN. [LGPL]
  • STLport - An exemplary version of STL. [Free]
  • STXXL - Standard Template Library for Extra Large Data Sets. [Boost]
  • tbox - A glib-like multi-platform c library. [Apache2] website
  • Ultimate++ - A C++ cross-platform rapid application development framework. [BSD]
  • uSTL - The small STL library. [MIT]
  • Windows Template Library - A C++ library for developing Windows applications and UI components. [Public]
  • Yomm2 - Fast, Orthogonal, Open multi-methods. Supersedes Yomm11 [Boost]

Artificial Intelligence

  • ANNetGPGPU - A GPU (CUDA) based Artificial Neural Network library. [LGPL]
  • btsk - Game Behavior Tree Starter Kit. [zlib]
  • Evolving Objects - A template-based, ANSI-C++ evolutionary computation library which helps you to write your own stochastic optimization algorithms insanely fast. [LGPL]
  • frugally-deep - Header-only library for using Keras models in C++. [MIT]
  • Recast/Detour - (3D) Navigation mesh generator and pathfinder, mostly for games. [zlib]
  • TensorFlow - An open source software library for numerical computation using data flow graphs [Apache]
  • CNTK - Microsoft Cognitive Toolkit (CNTK), an open source deep-learning toolkit. [Boost]
  • tiny-dnn - A header only, dependency-free deep learning framework in C++11. [BSD]
  • Veles - Distributed platform for rapid Deep learning application development. [Apache]
  • Kaldi - Toolkit for speech recognition. [Apache]

Asynchronous Event Loop

  • Asio - A cross-platform C++ library for network and low-level I/O programming that provides developers with a consistent asynchronous model using a modern C++ approach. [Boost] website
  • Boost.Asio - A cross-platform C++ library for network and low-level I/O programming. [Boost]
  • C++ Actor Framework - An Open Source Implementation of the Actor Model in C++. [BSD-3-Clause] website
  • libev - A full-featured and high-performance event loop that is loosely modelled after libevent, but without its limitations and bugs. [BSD and GPL]
  • libevent - An event notification library. [BSD]
  • libuv - Cross-platform asychronous I/O. [BSD]
  • uvw - C++ wrapper for libuv. [MIT]

Audio

Audio, Sound, Music, Digitized Voice Libraries

  • FMOD - An easy to use crossplatform audio engine and audio content creation tool for games. [Free for non-commercial/Commercial]
  • KFR - Fast, modern C++ DSP framework, FFT, FIR/IIR filters, Sample Rate Conversion. [GPL/Commercial]
  • Maximilian - C++ Audio and Music DSP Library. [MIT]
  • OpenAL - Open Audio Library - A crossplatform audio API. [BSD/LGPL/Commercial]
  • Opus - A totally open, royalty-free, highly versatile audio codec. [BSD]
  • SELA - SimplE Lossless Audio. [MIT]
  • SoLoud - Easy, portable audio engine for games. [zlib]
  • Speex - A free codec for free speech. Obsoleted by Opus. [BSD]
  • Tonic - Easy and efficient audio synthesis in C++. [Unlicense]
  • Vorbis - Ogg Vorbis is a fully open, non-proprietary, patent-and-royalty-free, general-purpose compressed audio format. [BSD]
  • minimp3 - Public domain, header-only MP3 decoder with clean-room implementation. [CC0]

Biology

Bioinformatics, Genomics, Biotech

  • libsequence - A C++ library for representing and analyzing population genetics data. [GPL]
  • SeqAn - Algorithms and data structures for the analysis of sequences with the focus on biological data. [BSD/3-clause]
  • Vcflib - A C++ library for parsing and manipulating VCF files. [MIT]
  • Wham - Structural variants (SVs) in Genomes by directly applying association tests to BAM files. [MIT]

BitTorrent

  • jech/dht - BitTorrent DHT library in C. [MIT]
  • libtorrent (a.k.a. libtorrent-rasterbar) - An efficient feature complete C++ bittorrent implementation. [BSD]
  • LibTorrent (a.k.a. libtorrent-rakshasa) - BitTorrent library. [GPL]
  • libutp - uTorrent Transport Protocol library. [MIT]

CLI

Console/Terminal User Interface, Command Line Interface

  • Argh! - A minimalist, frustration-free, header-only argument handler. [BSD]
  • Taywee/args - A simple header-only C++ argument parser library. [MIT]
  • Boost.Program_options - A library to obtain program options via conventional methods such as command line and config file. [Boost]
  • CLI11 - Header only single or multi-file C++11 library for simple and advanced CLI parsing. [BSD]
  • jarro2783/cxxopts - Lightweight C++ command line option parser. [MIT]
  • docopt.cpp - A library to generate option parser from docstring. [MIT/Boost]
  • gflags - Commandline flags module for C++. [BSD]
  • Ncurses - A terminal user interfaces. [MIT]
  • PDCurses - Public domain curses library with both source code and pre-compiled library available. [PublicDomain]
  • replxx - A readline and libedit replacement that supports UTF-8, syntax highlighting, hints, works on Unix and Windows. [BSD]
  • TCLAP - A mature, stable and feature-rich library for defining and accessing command line arguments in ANSI C++. [MIT]
  • termbox - A C library for writing text-based user interfaces. [BSD]

Compression

Compression and Archiving Libraries

  • Brotli - Brotli compression format. Developed by Google. [MIT]
  • bzip2 - A freely available, patent free, high-quality data compressor. [BSD]
  • FiniteStateEntropy - New generation entropy codecs : Finite State Entropy and Huff0.
  • PhysicsFS - A library to provide abstract access to various archives. It is intended for use in video games, and the design was somewhat inspired by Quake 3’s file subsystem. [zlib]
  • KArchive - A library for creating, reading, writing and manipulating file archives like zip and tar. It also provides transparent compression and decompression of data, using formats like gzip, via a subclass of QIODevice. [LGPL]
  • LZ4 - Extremely Fast Compression algorithm. [BSD]
  • LZFSE - LZFSE compression library and command line tool. Developed by Apple.
  • LZHAM - Lossless data compression library with a compression ratio similar to LZMA but with much faster decompression. [BSD]
  • LZMA :zap: - The default and general compression method of 7z format. [PublicDomain]
  • LZMAT - An extremely fast real-time lossless data compression library. [GPL]
  • miniz - Single C source file Deflate/Inflate compression library with zlib-compatible API, ZIP archive reading/writing, PNG writing. [Unlicense]
  • Minizip - Zlib with latest bug fixes that supports PKWARE disk spanning, AES encryption, and IO buffering. [zlib]
  • smaz - Small strings compression library. [BSD]
  • Snappy - A fast compressor/decompressor. [BSD]
  • ZLib - A very compact compression library for data streams. [zlib]
  • zlib-ng - zlib for the “next generation” systems. Drop-In replacement with some serious optimizations. [zlib]
  • zstd - Zstandard - Fast real-time compression algorithm. Developed by Facebook. [BSD]
  • ZZIPlib - Provides read access on ZIP-archives. [MPL/LGPL]

Concurrency

Concurrency and Multithreading

  • alpaka - Abstraction library for parallel kernel acceleration. [LGPLv3+]
  • ArrayFire - A general purpose GPU library. [BSD]
  • Boost.Compute - A C++ GPU Computing Library for OpenCL. [Boost]
  • Bolt - A C++ template library optimized for GPUs. [Apache2]
  • ck - Concurrency primitives, safe memory reclamation mechanisms and non-blocking data structures. [BSD]
  • concurrentqueue - A fast multi-producer, multi-consumer lock-free concurrent queue for C++11. [BSD,Boost]
  • Cpp-Taskflow - Fast C++ Parallel Programming with Task Dependencies. [MIT]
  • CUB - CUB provides state-of-the-art, reusable software components for every layer of the CUDA programming mode. [New BSD]
  • cupla - C++ API to run CUDA/C++ on OpenMP, Threads, TBB, … through Alpaka. [LGPLv3+]
  • C++React - A reactive programming library for C++11. [Boost]
  • Intel Parallel STL - Intel® implementation of C++17 STL for C++11 and above. [Apache2]
  • Intel TBB - Intel® Threading Building Blocks. [Apache2]
  • junction - A library of concurrent data structures in C++. [BSD]
  • libcds - A C++ library of Concurrent Data Structures. [BSD]
  • Libclsph - An OpenCL based GPU accelerated SPH fluid simulation library. [MIT]
  • libdill - Introduces structured concurrency in C. [MIT]
  • libmill - Introduces Go-style concurrency in C. [MIT]
  • moderngpu - moderngpu is a productivity library for general-purpose computing on GPUs. It is a header-only C++ library written for CUDA. The unique value of the library is in its accelerated primitives for solving irregularly parallel problems. [FreeBSD & Copyright, Sean Baxter]
  • NCCL - Optimized primitives for collective multi-GPU communication. [BSD]
  • OpenCL - The open standard for parallel programming of heterogeneous systems.
  • OpenMP - The OpenMP API.
  • RaftLib - The RaftLib C++ library, streaming/dataflow concurrency via C++ iostream-like operators [Apache2]
  • readerwriterqueue - A fast single-producer, single-consumer lock-free queue for C++. [BSD]
  • Thrust - A parallel algorithms library which resembles the C++ Standard Template Library (STL). [Apache2]
  • HPX - A general purpose C++ runtime system for parallel and distributed applications of any scale. [Boost]
  • VexCL - A C++ vector expression template library for OpenCL/CUDA. [MIT]

Containers

  • C++ B-tree - A template library that implements ordered in-memory containers based on a B-tree data structure. [Apache2]
  • Colony - An unordered “bag”-type container which outperforms std containers in high-modification scenarios while maintaining permanent pointers to non-erased elements regardless of insertion/erasure. [zLib] website
  • Hashmaps - Implementation of open addressing hash table algorithms in C++. [MIT]
  • Hopscotch map - A fast header-only hash map which uses hopscotch hashing for collisions resolution. [MIT]
  • LSHBOX - A c++ toolbox of locality-sensitive hashing (LSH), provides several popular LSH algorithms, also support Python and MATLAB. [GPL]
  • plf::list - A std::list implementation which removes range splicing in order to enable cache-friendlier structure, yielding significant performance gains. [zLib] website
  • plf::stack - A replacement container for the std::stack container adaptor, with better performance than any std container in a stack context. [zLib] website
  • ring_span lite - A simplified implementation of Arthur O’Dwyer’s ring_span implementation ie. a circular buffer view. [MIT]
  • sparsepp - A fast, memory efficient hash map for C++. [BSD 3-clause]

Cryptography

Cryptography and Encryption Libraries

  • Bcrypt - A cross platform file encryption utility. Encrypted files are portable across all supported operating systems and processors. [BSD]
  • BeeCrypt - A portable and fast cryptography library. [LGPLv2.1+]
  • Botan - A crypto library for C++. [BSD-2]
  • Crypto++ - A free C++ class library of cryptographic schemes. [Boost] website
  • digestpp - C++11 header-only message digest (hash) library. [PublicDomain]
  • GnuPG - A complete and free implementation of the OpenPGP standard. [GPL]
  • GnuTLS - A secure communications library implementing the SSL, TLS and DTLS protocols. [LGPL2.1]
  • Libgcrypt - A general purpose cryptographic library originally based on code from GnuPG. [LGPLv2.1+]
  • libhydrogen - A lightweight, secure, easy-to-use crypto library for constrained environments. [ISC]
  • LibreSSL - A free version of the SSL/TLS protocol forked from OpenSSL in 2014. [?]
  • libsodium - P(ortable ackageable) NaCl-based crypto library, opinionated and easy to use. [ISC]
  • LibTomCrypt - A fairly comprehensive, modular and portable cryptographic toolkit. [WTFPL]
  • mbedTLS - An open source, portable, easy to use, readable and flexible SSL library, previously known as PolarSSL. [Apache2] website
  • Nettle - A low-level cryptographic library. [LGPL]
  • OpenSSL - A robust, commercial-grade, full-featured, and Open Source cryptography library. [Apache] website
  • retter - A collection of hash functions, ciphers, tools, libraries, and materials related to cryptography.
  • s2n - An implementation of the TLS/SSL protocols. [Apache]
  • Tiny AES in C - Small portable AES128/192/256 in C. [PublicDomain]
  • Themis - crypto library for painless data security, providing symmetric and asymmetric encryption, secure sockets with forward secrecy, for mobile and server platforms. [Apache2]

Database

Database Libraries, SQL Servers, ODBC Drivers, and Tools

  • hiberlite - C++ Object-relational mapping for sqlite3. [BSD]
  • Hiredis - A minimalistic C client library for the Redis database. [BSD]
  • LevelDB - A fast key-value storage library written at Google that provides an ordered mapping from string keys to string values. [BSD]
  • LMDB - Very fast embedded key/value store with full ACID semantics. [OpenLDAP]
  • LMDB++ - C++11 wrapper for the LMDB embedded database library. [PublicDomain]
  • MongoDB C Driver - MongoDB client library for C. [Apache2]
  • MongoDB C++ Driver - C++ driver for MongoDB. [Apache2]
  • MongoDB Libbson - A BSON utility library. [Apache2]
  • MySQL++ - A C++ wrapper for MySQL’s C API. [LGPL]
  • redis3m - Wrapper of hiredis with clean C++ interface, supporting sentinel and ready to use patterns. [Apache2]
  • RocksDB - Embedded key-value store for fast storage from facebook. [BSD]
  • SimDB - High performance, shared memory, lock free, cross platform, single file, minimal dependencies, C++11 key-value store [Apache2]
  • SQLite - A completely embedded, full-featured relational database in a few 100k that you can include right into your project. [PublicDomain]
  • SQLiteC++ - SQLiteC++ (SQLiteCpp) is a smart and easy to use C++ SQLite3 wrapper. [MIT]
  • sqlite_modern_cpp - Header only C++14 wrapper around sqlite library. [MIT]
  • sqlite_orm - SQLite ORM light header only library for modern C++. [BSD-3-Clause]
  • TileDB - Fast Dense and Sparse Multidimensional Array DBMS. [MIT] website
  • upscaledb - An embedded “typed” key/value store with a built-in query interface. [GPLv3]

Debug

Debugging Libraries, Memory Leak and Resource Leak Detection, Unit Testing

  • backward-cpp - A beautiful stack trace pretty printer for C++. [MIT]
  • benchmark - Google provided small microbenchmark support library. [Apache2]
  • Boost.Test - Boost Test Library. [Boost]
  • doctest - The lightest feature rich C++ single header testing framework. [MIT]
  • Catch - A modern, C++-native, header-only, framework for unit-tests, TDD and BDD. [Boost]
  • Catch2 - A modern, C++-native, header-only, test framework for unit-tests, TDD and BDD. [BSL-1.0]
  • Celero - C++ Benchmarking Framework. [Apache2]
  • CppUTest - Unit testing and mocking framework for C/C++. [BSD-3-clause]
  • CUTE - C++ Unit Testing Easier. [LGPL3]
  • CMocka - unit testing framework for C with support for mock objects. [Apache2]
  • CppUnit - C++ port of JUnit. [LGPL2]
  • CTest - The CMake test driver program. [BSD]
  • Deleaker - A tool for resource leak detection, including memory, GDI and handle leaks.
  • fff - A micro-framework for creating fake C functions. [MIT]
  • Google Mock - A library for writing and using C++ mock classes. [BSD]
  • Google Test - Google C++ Testing Framework. [BSD]
  • ig-debugheap - Multiplatform debug heap useful for tracking down memory errors. [BSD]
  • libtap - Write tests in C. [GPL2]
  • MemTrack - Tracking memory allocations in C++.
  • microprofile - Profiler with web-view for multiple platforms. [PublicDomain]
  • MinUnit - A minimal unit testing framework for C self-contained in a single header file. [MIT]
  • Mockator - Eclipse CDT plug-in for C++ Seams and Mock Objects.
  • Nanotimer - A simple low-overhead cross-platform timer class for benchmarking. [zLib] website
  • Remotery - Single C File Profiler with Web Viewer. [Apache2]
  • UnitTest++ - A lightweight unit testing framework for C++. [MIT/X Consortium license]
  • utest.h - Single header unit testing framework for C and C++. [Unlicense]
  • VLD - Visual Leak Detector. A free, robust, open-source memory leak detection system for Visual C++. ``` #define VLD_FORCE_ENABLE #include

安装目录 vld.ini 修改 ReportTo = both ```

Game Engine

  • Allegro - A cross-platform library mainly aimed for video games and multimedia programming. [zlib]
  • Banshee 3D - Modern C++14 game engine with Vulkan support, fully featured editor and C# scripting. [LGPL3/Commercial]
  • Cocos2d-x - A multi-platform framework for building 2d games, interactive books, demos and other graphical applications. [MIT]
  • delta3d - A robust simulation platform. [LGPL2]
  • EnTT - Gaming meets modern C++. [MIT]
  • Flounder - A high speed C++17 Vulkan game engine. [MIT]
  • GamePlay - A cross-platform native C++ game framework for creating 2D/3D mobile and desktop games. [Apache2]
  • Godot - A fully featured, open source, MIT licensed, game engine. [MIT]
  • Grit - Community project to build a free game engine for implementing open world 3D games. [MIT]
  • KlayGE - a cross-platform open source game engine with plugin-based architecture. [GPLv2] website
  • Oxygine - A cross-platform 2D C++ game engine. [MIT]
  • Panda3D - A game engine, a framework for 3D rendering and game development for Python and C++ programs. [Modified BSD] website
  • Polycode - A cross-platform framework for creative code in C++ (with Lua bindings). [MIT] website
  • Torque2D - An open-source and cross-platform C++ engine built for 2D game development. [MIT] website
  • Torque3D - An open-source C++ engine built for 3D game development. [MIT] website
  • toy engine - toy is a thin and modular c++ game engine and offers simple expressive c++ idioms to design full featured 2D or 3D games in fast iterations.
  • Urho3D - A free lightweight, cross-platform 2D and 3D game engine implemented in C++. Greatly inspired by OGRE and Horde3D. [MIT]

GUI

Graphic User Interface

  • CEGUI - Flexible, cross-platform GUI library.
  • FLTK - Fast, light, cross-platform C++ GUI toolkit. [GPL2]
  • GacUI - GPU Accelerated C++ User Interface, with WYSIWYG developing tools, XML supports, built-in data binding and MVVM features. [Ms-PL]
  • GTK+ - A multi-platform toolkit for creating graphical user interfaces. [LGPL]
  • gtkmm - The official C++ interface for the popular GUI library GTK+. [LGPL]
  • imgui - Immediate Mode Graphical User Interface with minimal dependencies. [MIT]
  • libRocket - libRocket is a C++ HTML/CSS game interface middleware. [MIT]
  • libui - Simple and portable (but not inflexible) GUI library in C that uses the native GUI technologies of each platform it supports. [MIT]
  • MyGUI - Fast, flexible and simple GUI. [MIT]
  • nana - Nana is a cross-platform library for GUI programming in modern C++ style. [Boost]
  • NanoGui - A minimalistic cross-platform widget library for OpenGL 3.x or higher. [BSD]
  • nuklear - A single-header ANSI C gui library. [PublicDomain]
  • QCustomPlot - Qt plotting widget without further dependencies. [GPLv3]
  • Qwt - Qt Widgets for Technical Applications. [Own based on LGPL]
  • QwtPlot3D - A feature-rich Qt/OpenGL-based C++ programming library, providing essentially a bunch of 3D-widgets. [zlib]
  • Sciter - Sciter is an embeddable HTML/CSS/scripting engine aimed to be used as an UI layer of modern desktop applications. [Free/Commercial]
  • wxWidgets - A C++ library that lets developers create applications for Windows, Mac OS X, Linux and other platforms with a single code base. [Own LGPL]
  • Yue - A library for creating native cross-platform GUI apps. [LGPLv2]

Graphics

  • bgfx - A cross-platform rendering library. [BSD]
  • bs::framework - Modern C++14 library for the development of real-time graphical applications. [MIT]
  • Cairo - A 2D graphics library with support for multiple output devices. [LGPL2 or Mozilla MPL]
  • Diligent Engine - A modern cross-platform low-level 3D graphics library. [Apache2]
  • DirectXTK - A collection of helper classes for writing DirectX 11.x code in C++. [MIT]
  • GLFW - A simple, cross-platform OpenGL wrangling library. [zlib/libpng]
  • herebedragons - A basic 3D scene implemented with various engines, frameworks or APIs. [MIT] website
  • Horde3D - A small 3D rendering and animation engine. [EPL]
  • Ion - A small and efficient set of libraries for building cross-platform client or server applications that use 3D graphics. [Apache2] website
  • Irrlicht - A high performance realtime 3D engine written in C++. [zlib]
  • libigl - Simple C++ geometry processing library. [MPL2]
  • magnum - Lightweight and modular C++11/C++14 graphics middleware for games and data visualization. [MIT] website
  • NanoVG - Antialiased 2D vector drawing library on top of OpenGL for UI and visualizations. [Zlib]
  • Ogre 3D :zap: - A scene-oriented, real-time, flexible 3D rendering engine (as opposed to a game engine) written in C++. [MIT]
  • OpenSceneGraph - An open source high performance 3D graphics toolkit. [OSGPL]
  • OpenSubdiv - Pixar’s library for evaluating and rendering subdivision surfaces on CPU and GPU. [Modified Apache2]
  • OpenVDB - Library and tools for storing, editing, and rendering volumetric datasets. [MPL2]
  • Panda3D - A framework for 3D rendering and game development for Python and C++. [BSD]
  • Partio - Library for wrangling particle data, with support for most common file formats. [Modified BSD]
  • Skia - A complete 2D graphic library for drawing Text, Geometries, and Images. [BSD] webpage
  • urho3d - Cross-platform rendering and game engine. [Many different, mostly MIT]

Image Processing

  • Boost.GIL - Generic Image Library.
  • CImg - A small, open source, C++ toolkit for image processing. [Own LGPL or GPL]
  • CxImage - An image processing and conversion library to load, save, display, transform BMP, JPEG, GIF, PNG, TIFF, MNG, ICO, PCX, TGA, WMF, WBMP, JBG, J2K images. [zlib]
  • FreeImage - An open source library that supports popular graphics image formats and others as needed by today’s multimedia applications. [GPL2 or GPL3]
  • GD - GD Graphics Library, famously used in PHP for image loading/manipulation & thumbnail generation. [custom permissive license, requires mention in user docs] website
  • DCMTK - DICOM Toolkit.
  • GDCM - Grassroots DICOM library.
  • ITK - An open-source, cross-platform system for image analysis. [Apache2 from ITK 4.0]
  • libvips - A fast image processing library with low memory needs. [LGPL] website
  • Magick++ - ImageMagick program interfaces for C++. [Apache2]
  • MagickWnd - ImageMagick program interfaces for C. [Apache2]
  • OpenCV :zap: - Open source computer vision. [BSD]
  • OpenEXR - Cross-platform library for high dynamic range imaging. [Modified BSDF]
  • OpenImageIO - Powerful image and texture wrangling library with support for a wide number of common lossy and RAW formats. [Modified BSD]
  • tesseract-ocr - An OCR engine. [Apache2]
  • TinyEXIF - Tiny ISO-compliant C++ EXIF and XMP parsing library for JPEG. [MIT]
  • Video++ - A C++14 high performance video and image processing library. [MIT]
  • VIGRA - A generic C++ computer vision library for image analysis. [MIT X11]
  • VTK - Open-source, freely available software system for 3D computer graphics, image processing and visualization. [BSD]

Internationalization

  • gettext - GNU `gettext’. [GPL2]
  • IBM ICU - A set of C/C++ and Java libraries providing Unicode and Globalization support. [ICU]
  • libiconv - An encoding conversion library between different character encodings. [GPL]
  • utf8.h - Single header utf8 string functions for C and C++. [Unlicense]

Inter-process communication

  • Apache Thrift - Efficient cross-language IPC/RPC, works between C++, Java, Python, PHP, C#, and many more other languages. Originally developed by Facebook. [Apache2]
  • Cap’n Proto - Fast data interchange format and capability-based RPC system. [MIT]
  • gRPC - A high performance, open source, general-purpose RPC framework. [BSD] website
  • libjson-rpc-cpp - JSON-RPC framework for C++ servers and clients. [MIT]
  • nanomsg - A simple high-performance implementation of several “scalability protocols”. [MIT] website
  • simple-rpc-cpp - A simple RPC wrapper generator to C/C++ functions. [BSD]
  • WAMP - Provides RPC and pub/sub messaging patterns. (various implementations, various languages)
  • xmlrpc-c - A lightweight RPC library based on XML and HTTP. [BSD]
  • ZeroMQ - High-speed, modular asynchronous communication library. [LGPL]

JSON

  • Boost.PropertyTree - A property tree parser/generator that can be used to parse XML/JSON/INI/Info files. [Boost]
  • frozen - JSON parser and generator for C/C++. [GPL & GPL2]
  • Jansson - C library for encoding, decoding and manipulating JSON data. [MIT]
  • jbson - jbson is a library for building & iterating BSON data, and JSON documents in C++14. [Boost]
  • JeayeSON - A very sane (header only) C++ JSON library. [BSD]
  • json :zap: - JSON for Modern C++. [MIT]
  • JSON++ - A JSON parser in C++. [MIT]
  • json.h - A simple one header/one source solution to parsing JSON in C and C++. [Unlicense]
  • json-c - A JSON implementation in C. [MIT]
  • JsonCpp - A C++ library for interacting with JSON. [MIT]
  • json-parser - Very low footprint JSON parser written in portable ANSI C. [BSD]
  • json11 - A tiny JSON library for C++11. [MIT]
  • json-voorhees - JSON library for C++. Support for C++11. No dependencies, fast and dev-friendly. [Apache2]
  • jute - Very simple C++ JSON Parser. [PublicDomain]
  • libjson - A JSON parser and printer library in C. easy to integrate with any model. [LGPL]
  • libjson - Lightweight JSON library. [?]
  • LIBUCL :zap: - Universal configuration library parser [?]
  • PicoJSON - A header-file-only, JSON parser serializer in C++. [BSD]
  • qt-json - A simple class for parsing JSON data into a QVariant hierarchy and vice versa. [GPLv3]
  • QJson - A qt-based library that maps JSON data to QVariant objects. [LGPL2]
  • RapidJSON :zap: - A fast JSON parser/generator for C++ with both SAX/DOM style API. [MIT]
  • ujson - µjson is a a small, C++11, UTF-8, JSON library. [MIT]
  • YAJL - A fast streaming JSON parsing library in C. [ISC]

Logging

  • Blackhole - Attribute-based logging framework, which is designed to be fast, modular and highly customizable. [MIT]
  • Boost.Log - Designed to be very modular and extensible. [Boost]
  • Easylogging++ - Single header only, extremely light-weight high performance logging library for C++11 (or higher) applications. [MIT] website
  • G3log - Asynchronous logger with Dynamic Sinks. [PublicDomain]
  • glog - C++ implementation of the Google logging module.
  • Log4cpp - A library of C++ classes for flexible logging to files, syslog, IDSA and other destinations. [LGPL]
  • log4cplus - A simple to use C++ logging API providing thread-safe, flexible, and arbitrarily granular control over log management and configuration. [BSD & Apache2]
  • loguru - A lightweight C++ logging library. [PublicDomain]
  • plog - Portable and simple C++ logging library. [MPL2]
  • reckless - Low-latency, high-throughput, asynchronous logging library for C++. [MIT]
  • spdlog - Super fast, header only, C++ logging library.
  • templog - A very small and lightweight C++ library which you can use to add logging to your C++ applications. [Boost]

Machine Learning

  • Caffe - A fast framework for neural networks. [BSD]
  • Caffe2 - A lightweight, modular, and scalable deep learning framework. [Apache2] website
  • CCV - C-based/Cached/Core Computer Vision Library, A Modern Computer Vision Library. [BSD]
  • Fido - A highly-modular C++ machine learning library for embedded electronics and robotics. [MIT] website
  • MeTA - A modern C++ data sciences toolkit. [MIT] website
  • Minerva - A fast and flexible system for deep learning. [Apache2]
  • mlpack - A scalable c++ machine learning library. [LGPLv3] website
  • OpenCV :zap: - Open Source Computer Vision Library. [BSD] website
  • Recommender - C library for product recommendations/suggestions using collaborative filtering (CF). [BSD]
  • RNNLIB - RNNLIB is a recurrent neural network library for sequence learning problems. [GPLv3]
  • SHOGUN - The Shogun Machine Learning Toolbox. [GPLv3]
  • sofia-ml - The suite of fast incremental algorithms for machine learning. [Apache2]
  • VLFeat - The VLFeat open source library implements popular computer vision algorithms specialising in image understanding and local featurexs extraction and matching. [BSD-2-Clause] website
  • xgboost - Scalable, Portable and Distributed Gradient Boosting (GBDT, GBRT or GBM) Library, for Python, R, Java, Scala, C++ and more. Runs on single machine, Hadoop, Spark, Flink and DataFlow. [Apache2]

Math

  • Apophenia - A C library for statistical and scientific computing [GPL2]
  • Armadillo - A high quality linear algebra library (matrix maths) for the C++ language, aiming towards a good balance between speed and ease of use. The syntax (API) is deliberately similar to Matlab. [MPL2] website
  • blaze - high-performance C++ math library for dense and sparse arithmetic. [BSD]
  • Boost.Multiprecision - provides higher-range/precision integer, rational and floating-point types in C++, header-only or with GMP/MPFR/LibTomMath backends. [Boost]
  • ceres-solver - C++ library for modeling and solving large complicated nonlinear least squares problems from google. [BSD]
  • CGAL - Collection of efficient and reliable geometric algorithms. [LGPL&GPL] website
  • cml - free C++ math library for games and graphics. [Boost]
  • Eigen - A high-level C++ library of template headers for linear algebra, matrix and vector operations, numerical solvers and related algorithms. [MPL2]
  • ExprTK - The C++ Mathematical Expression Toolkit Library (ExprTk) is a simple to use, easy to integrate and extremely efficient run-time mathematical expression parser and evaluation engine. [MIT]
  • Geometric Tools - C++ library for computing in the fields of mathematics, graphics, image analysis and physics. [Boost] website
  • GLM - Header-only C++ math library that matches and inter-operates with OpenGL’s GLSL math. [MIT]
  • GMTL - Graphics Math Template Library is a collection of tools implementing Graphics primitives in generalized ways. [GPL2]
  • GMP - A C library for arbitrary precision arithmetic, operating on signed integers, rational numbers, and floating-point numbers. [LGPL3 & GPL2]
  • MIRACL - A Multiprecision Integer and Rational Arithmetic Cryptographic Library. [AGPL]
  • muparser - muParser is an extensible high performance math expression parser library written in C++. [MIT]
  • NT2 - A SIMD-optimized numerical template library that provides an interface with MATLAB-like syntax. [Boost]
  • LibTomMath - A free open source portable number theoretic multiple-precision integer library written entirely in C. [PublicDomain & WTFPL] website
  • linmath.h - A lean linear math library, aimed at graphics programming. [WTFPL]
  • OpenBLAS - An optimized BLAS library based on GotoBLAS2 1.13 BSD version. [BSD 3-clause] website
  • QuantLib - A free/open-source library for quantitative finance. [Modified BSD] website
  • StatsLib - A C++ header-only library of statistical distribution functions. [Apache2] website
  • Vc - SIMD Vector Classes for C++. [BSD]
  • Versor - A (fast) Generic C++ library for Geometric Algebras, including Euclidean, Projective, Conformal, Spacetime (etc).
  • Wykobi - A C++ library of efficient, robust and simple to use C++ 2D/3D oriented computational geometry routines. [MIT]

Multimedia

  • GStreamer - A library for constructing graphs of media-handling components. [LGPL]
  • LIVE555 Streaming Media - Multimedia streaming library using open standard protocols (RTP/RTCP, RTSP, SIP). [LGPL]
  • libVLC - libVLC (VLC SDK) media framework. [GPL]
  • MediaInfoLib - Convenient unified display of the most relevant technical and tag data for video and audio files. [BSD]
  • QtAv - A multimedia playback framework based on Qt and FFmpeg to write a player easily. [LGPL] website
  • SDL :zap: - Simple DirectMedia Layer. [zlib]
  • SFML :zap: - Simple and Fast Multimedia Library. [zlib] website

Networking

  • ACE - An OO Network Programming Toolkit in C++. [?MIT?]
  • Boost.Asio :zap: - A cross-platform C++ library for network and low-level I/O programming. [Boost]
  • Breep - Event based, high-level C++14 peer-to-peer library. [EUPL-1.1 (OSI approved)]
  • C++ REST SDK - C++ REST SDK (previously named Casablanca). [Apache2]
  • Restbed - C++11 Asynchronous RESTful framework. [AGPL]
  • cpp-netlib - A collection of open-source libraries for high level network programming. [Boost]
  • cpr - A modern C++ HTTP requests library with a simple but powerful interface. Modeled after the Python Requests module. [MIT] website
  • curlcpp - An object oriented C++ wrapper for CURL(libcurl). [MIT]
  • Dyad.c - Asynchronous networking for C. [MIT]
  • ENet - Reliable UDP networking library. [MIT] website
  • evpp - C++ high performance networking with TCP/UDP/HTTP protocols. [BSD]
  • HTTP Parser :zap: - A http request/response parser for C. [MIT]
  • libcurl - Multiprotocol file transfer library. [MIT/X derivate license]
  • libjingle - Google talk voice and P2P interoperability library. [BSD]
  • libquic - A QUIC protocol library extracted from Chromium’s QUIC Implementation. [BSD]
  • libwebsockets - A lightweight pure C WebSocket implementation that provides both client and server libraries. [LGPL2.1 + static link exception] website
  • Mongoose - Extremely lightweight webserver. [GPL2]
  • Muduo - A C++ non-blocking network library for multi-threaded server in Linux. [BSD]
  • nghttp2 - HTTP/2 C Library. [MIT] website
  • nope.c - A C language-based ultra-light software platform for scalable server-side and networking applications. Think node.js for C programmers. [GPL2]
  • Onion - HTTP server library in C designed to be lightweight and easy to use. [Apache2/GPL2]
  • POCO :zap: - C++ class libraries and frameworks for building network- and internet-based applications that run on desktop, server, mobile and embedded systems. [Boost] website
  • Proxygen - Facebook’s collection of C++ HTTP libraries including an easy to use HTTP server. [BSD]
  • RakNet - A cross platform, open source, C++ networking engine for game programmers. [BSD]
  • Seasocks - Simple, small, C++ embeddable webserver with WebSockets support. [BSD]
  • Silicon - A high performance, middleware oriented C++14 http web framework. [MIT]
  • Tufão - An asynchronous web framework for C++ built on top of Qt. [LGPL2]
  • uWebSockets - µWS is one of the most lightweight, efficient & scalable WebSocket & HTTP server implementations available. [Zlib]
  • wdt - An embeddedable library (and command line tool) aiming to transfer data between 2 systems as fast as possible over multiple TCP paths. [BSD-3-Clause]
  • WebSocket++ - C++/Boost Asio based websocket client/server library. [BSD]

PDF

Libraries for parsing and manipulating PDF documents.

  • libharu - A free, cross platform, open-sourced software library for generating PDF. [zlib]
  • MuPDF - A lightweight PDF, XPS, and E-book viewer. [AGPL/Commercial]
  • Poppler - Open-source multi-backend PDF rendering library based on the xpdf-3.0 code base. [GPLv2/GPLv3]

Physics

Dynamics simulation engines

  • Box2D - A 2D physics engine for games. [BSD-like]
  • Bullet - A 3D physics engine for games. [zlib] website
  • Chipmunk - A fast and lightweight 2D game physics library. [MIT] website
  • LiquidFun - A 2D physics engine for games. [BSD-like]
  • Newton Dynamics - An integrated solution for real time simulation of physics environments. [zlib]
  • ODE - Open Dynamics Engine - An open source, high performance library for simulating rigid body dynamics. [BSD&LGPL]
  • ofxBox2d - openFrameworks wrapper for Box2D. [BSD-like]
  • Simbody - High-performance C++ multibody dynamics/physics library for simulating articulated biomechanical and mechanical systems like vehicles, robots, and the human skeleton. [Apache2]

Regular Expression

  • CppVerbalExpressions - C++ regular expressions made easy. [MIT]
  • PCRE - A regular expression C library inspired by the regular expression capabilities in Perl. [BSD]
  • RE2 - A software library for regular expressions via a finite-state machine using automata theory. [BSD-3-Clause]
  • SLRE - Super Light Regexp engine for C/C++. [GPLv2/Commercial]

Robotics

  • MOOS-IvP - A set of open source C++ modules for providing autonomy on robotic platforms, in particular autonomous marine vehicles.
  • MRPT - Mobile Robot Programming Toolkit. [BSD]
  • PCL - Point Cloud Library is a standalone, large scale, open project for 2D/3D image and point cloud processing [BSD] website
  • Robotics Library (RL) - A self-contained C++ library for robot kinematics, motion planning and control. [BSD]
  • RobWork - A collection of C++ libraries for simulation and control of robot systems. [Apache2]
  • ROS - Robot Operating System provides libraries and tools to help software developers create robot applications. [BSD]

Scientific Computing

  • FFTW - A C library for computing the DFT in one or more dimensions. [GPL]
  • GSL - GNU scientific library. [GPL]
  • TileDB - Fast Dense and Sparse Multidimensional Array DBMS. [MIT] website
  • Trilinos - High performance PDE solvers. [BSD]
  • Torch - A scientific computing framework with wide support for machine learning algorithms that puts GPUs first. [BSD-3-Clause] website

Scripting

  • Boost.Python - A C++ library which enables seamless interoperability between C++ and the Python programming language. [Boost]
  • cppimport - Import C++ files directly from Python! [MIT]
  • CppSharp - Tools and libraries to glue C/C++ APIs to high-level languages. [MIT]
  • ChaiScript - An easy to use embedded scripting language for C++. [BSD] website
  • ctypes.sh - A foreign function interface for bash. [MIT]
  • Cython - Cython is an optimising static compiler for both the Python programming language and the extended Cython programming language (based on Pyrex). It makes writing C extensions for Python as easy as Python itself. [Apache] website
  • djinni - A tool for generating cross-language type declarations and interface bindings. [Apache2]
  • Duktape - An embeddable Javascript engine with compact footprint. [MIT] website
  • JavaCpp - The missing bridge between Java and native C++. [Apache2]
  • libffi - A portable foreign-function interface library. [MIT] website
  • Lua - A minimal and fast scripting engine for configuration files and basic application scripting. [MIT]
  • luacxx - C++11 API for creating Lua bindings. [MIT]
  • nbind - Magical headers that make your C++ library accessible from JavaScript. [MIT]
  • pybind11 - Seamless operability between C++11 and Python. [BSD]
  • SIP - C or C++ Bindings Generator for Python v2 and v3. [GPL]
  • SWIG - A wrapper/interface Generator that let you link your c++ code to Javascript, Perl, PHP, Python, Tcl and Ruby. [GPL/Output not licensed] website
  • V7 - An embedded JavaScript engine. [GPL2]
  • V8 - A fast JavaScript engine by Google that can be embedded into any C++ application. [BSD]
  • ChakraCore -A JavaScript engine by Microsoft that can be embedded into nodejs. [MIT]

Serialization

  • cereal - A C++11 library for serialization. [BSD]
  • cppcodec - Header-only C++11 library to encode/decode base64, base32 and hex with consistent, flexible API. [MIT]
  • FlatBuffers - A Memory efficient serialization library. [Apache2]
  • MessagePack - Efficient binary serialization format “like JSON” for C and C++. [Apache2] website
  • protobuf - Protocol Buffers - Google’s data interchange format. [BSD]
  • protobuf-c - Protocol Buffers implementation in C. [BSD]
  • SimpleBinaryEncoding - encoding and decoding application messages in binary format for low-latency applications. [Apache2]

Sorting

  • Timsort - A templated stable sorting function which outperforms quicksort-based algorithms including std::sort, for reversed or semi-sorted data. [MIT]

Video

  • libvpx - VP8/VP9 Codec SDK. [BSD]
  • FFmpeg - A complete, cross-platform solution to record, convert and stream audio and video. [LGPL2/GPL2]
  • libde265 - Open h.265 video codec implementation. [LGPL] website
  • OpenH264 - Open Source H.264 Codec. [BSD] website
  • Theora - A free and open video compression format. [BSD]
  • Vireo - A lightweight and versatile video processing library by Twitter. [MIT]

Virtual Machines

  • CarpVM - “interesting” VM in C. Let’s see how this goes. [GPLv3]
  • MicroPython - Aims to put an implementation of Python 3.x on a microcontroller. [MIT]
  • TinyVM - A small, fast, lightweight virtual machine written in pure ANSI C. [MIT]

Web Application Framework

  • Civetweb - Provides easy to use, powerful, C/C++ embeddable web server with optional CGI, SSL and Lua support. [MIT]
  • CppCMS - A Free High Performance Web Development Framework (not a CMS). [LGPLv3]
  • Crow - Crow is C++ micro web framework (inspired by Python Flask). [BSD]
  • Cutelyst - A C++ Web Framework built on top of Qt, using the simple approach of Catalyst (Perl) framework. [LGPLv2.1+] website
  • Kore - ultra fast and flexible web server / framework for web applications developed in C. [ISC]
  • libOnion - lightweight library to help you create webservers in C programming language. [LGPLv3]
  • lwan - Experimental, scalable, high performance HTTP server. [GPL2]
  • Pistache - Pistache is a C++ REST framework written in pure C++11 with no external dependency. [Apache2]
  • QDjango - A web framework written in C++ and built on top of the Qt library. Where possible it tries to follow django’s API, hence its name. [LGPL]
  • TreeFrog Framework - High-speed and full-stack web application framework based on C++ and Qt, which supports HTTP and WebSocket protocol (with O/R mapping). [BSD] website
  • Wt - A C++ library for developing web applications. [GPL/Commercial]

XML

XML is crap. Really. There are no excuses. XML is nasty to parse for humans, and it’s a disaster to parse even for computers. There’s just no reason for that horrible crap to exist. - Linus Torvalds

  • Boost.PropertyTree - A property tree parser/generator that can be used to parse XML/JSON/INI/Info files. [Boost]
  • Expat - An XML parser library written in C. [MIT]
  • Libxml2 - The XML C parser and toolkit of Gnome. [MIT]
  • libxml++ - An XML Parser for C++. [LGPL2]
  • PugiXML - A light-weight, simple and fast XML parser for C++ with XPath support. [MIT]
  • RapidXml - An attempt to create the fastest XML parser possible, while retaining useability, portability and reasonable W3C compatibility. [Boost]
  • TinyXML - A simple, small, minimal, C++ XML parser that can be easily integrating into other programs. [zlib]
  • TinyXML2 - A simple, small, efficient, C++ XML parser that can be easily integrating into other programs. [zlib]
  • TinyXML++ - A completely new interface to TinyXML that uses MANY of the C++ strengths. Templates, exceptions, and much better error handling. [MIT]
  • Xerces-C++ - A validating XML parser written in a portable subset of C++. [Apache2]

Miscellaneous

Useful libraries or tools that don’t fit in the categories above or maybe just not categorised yet

  • access_profiler - A tool to count accesses to member variables in c++ programs. [GPL3]
  • American fuzzy lop a.k.a. afl-fuzz - Crazy fuzzing tool that automatically discovers bugs given time and minimal example input. [Apache2]
  • Better Enums - Reflective enums (to string, iteration). Single header. [BSD] website
  • Better String - An alternative to the string library for C which is more functional and does not have buffer overflow overrun problems. Also includes a C++ wrapper. [BSD, GPL2]
  • Boost.Signals - An implementation of a managed signals and slots system. [Boost]
  • {fmt} :zap: - Small, safe and fast formatting library for C++. [Simplified BSD]
  • FastFormat - Fast, Safe C++ Formatting inspired by log4j and Pantheios [Simplified BSD]
  • casacore - A set of c++ core libraries derived from aips++. [LGPL]
  • QtVerbalExpressions - This Qt lib is based off of the C++ VerbalExpressions library. [MIT]
  • c-smart-pointers - Smart pointers for the (GNU) C programming language. [MIT]
  • cxx-prettyprint - A pretty printing library for C++ containers. [Boost]
  • DynaPDF - An easy-to-use PDF generation library. [Commercial]
  • gcc-poison - A simple header file for developers to ban unsafe C/C++ functions from applications.
  • Kangaru - A dependency injection container for C++11 and C++14. [MIT]
  • Klib - Small and lightweight implementations of common algorithms and data structures. [MIT]
  • libsigc++ - A typesafe callback system for standard C++. [LGPL]
  • libcpuid - A small C library for x86 CPU detection and feature extraction. [BSD]
  • libevil - The Evil License Manager. [GPLv3]
  • libnih - A lightweight library of C functions and structures. [GPL2.1]
  • libusb - A universal USB library which allows for portable access to USB devices. [LGPL2]
  • Mach7 - A Pattern-matching library for C++. [BSD]
  • pdqsort - Pattern-defeating quicksort. [zlib]
  • PHP-CPP - A library to build PHP extensions with C++. [Apache2] website
  • Remote Call Framework - Inter-process communication framework for C++. [GPL2/Commercial]
  • Scintilla - A free source code editing component. [MIT]
  • SDS - Simple Dynamic Strings library for C. [BSD]
  • semver.c - A semver parser and render in ANSI C. [MIT]
  • Serial Communication Library - Cross-platform, Serial Port library written in C++. [MIT]
  • sigslot - C++ Signal/Slot Library. [PublicDomain]
  • Stage - Mobile robot simulator. [GPL2]
  • stdman Formatted C++11/14 stdlib man pages (from cppreference). [MIT]
  • stb :zap: - A range of single-file libraries for C/C++. [PublicDomain]
  • StrTk - A C++ library consisting of high performance string processing routines. [MIT]
  • ub-canaries - A collection of C/C++ programs that try to get compilers to exploit undefined behavior.
  • value-category-cheatsheet A PDF cheatsheet for lvalues, rvalues, and the like. [Jank copyleft]
  • VarTypes - A feature-rich, object-oriented framework for managing variables in C++ / Qt4. [LGPL]
  • ZBar - A barcode scanner library, which allows to scan photos/images/video streams for barcodes and return their value. [LGPL2]
  • ZXing - An open-source, multi-format 1D/2D barcode image processing library implemented in Java, with ports to other languages. [Apache]

Software

Software for creating a development environment.

Compiler

List of C or C++ compilers

  • 8cc - A Small C Compiler.
  • c - Compile and execute C “scripts” in one go! [MIT]
  • Clang - A C compiler for LLVM. Supports C++11/14/1z C11. Developed by LLVM Team. [NCSA]
  • GCC - GNU Compiler Collection. Supports C++11/14/1z C11 and OpenMP. [GNU GPL3]
  • PCC - A very old C compiler. Supports C99.
  • Intel C++ Compiler - Developed by Intel.
  • LLVM - Collection of modular and reusable compiler and toolchain technologies.
  • Microsoft Visual C++ - MSVC, developed by Microsoft.
  • Open WatCom - Watcom C, C++, and Fortran cross compilers and tools. [Sybase Open Watcom Public License]
  • Oracle Solaris Studio - C, C++ and Fortran compiler for SPARC and x86. Supports C++11. Available on Linux and Solaris. [OTN Developer License]
  • TCC - Tiny C Compiler. [LGPL]

Online Compiler

List of online C or C++ compilers

  • codepad - An online compiler/interpreter, and a simple collaboration tool.
  • CodeTwist - A simple online compiler/interpreter, where you can paste your C, C++ or Java code and execute it online and see results.
  • coliru - Online compiler/shell with support for various C++ compilers.
  • Compiler Explorer - An interactive compiler with assembly output available.
  • CompileOnline - Compile and Execute C++ online on Linux.
  • Ideone - An online compiler and debugging tool which allows you to compile source code and execute it online in more than 60 programming languages.
  • repl.it - A powerful yet simple tools and platforms for educators, learners, and developers.
  • Rextester - Online compiler which provides several compilers(Clang, GCC, MSVC) and several editors.
  • Rise4Fun - Online Visual C++ compiler.
  • Wandbox - An online Clang/GCC compiler with Boost available.

Debugger

List of C or C++ debuggers

  • Comparison of debuggers - A list of Debuggers from Wikipedia.
  • GDB - GNU Debugger.
  • LLDB - The LLDB Debugger.
  • Metashell - An interactive template metaprogramming shell which includes the MDB metadebugger.
  • Valgrind - A tool for memory debugging, memory leak detection, and profiling.
  • x64dbg - An open-source x64/x32 debugger for windows.

Integrated Development Environment

List of C or C++ nominal IDEs.

  • Anjuta DevStudio - The GNOME IDE. [GPL3]
  • AppCode - an IDE for Objective-C, C, C++, and JavaScript development built on JetBrains’ IntelliJ IDEA platform.
  • Cevelop - Cross-platform C and C++ IDE based on Eclipse CDT with additional plug-ins.
  • CLion - Cross-platform C and C++ IDE from JetBrains.
  • Code::Blocks - A free C, C++ and Fortran IDE.
  • CodeLite - Another cross-plaform, free C and C++ IDE. [GPL2 with an exception for plugins]
  • color_coded - A vim plugin for libclang-based highlighting. [MIT]
  • Dev-C++ - A portable C/C++/C++11 IDE.
  • Eclipse CDT - A fully functional C and C++ IDE based on the Eclipse platform.
  • Geany - Small, fast, cross-platform IDE. [GPL]
  • IBM VisualAge - A family of computer integrated development environments from IBM.
  • Irony-mode - A C/C++ minor mode for Emacs powered by libclang.
  • juCi++ - Cross-platform, lightweight C++ IDE with libclang integration. [MIT]
  • KDevelop - A free, open source IDE.
  • Microsoft Visual Studio - An IDE from Microsoft.
  • NetBeans - An IDE for developing primarily with Java, but also with other languages, in particular PHP, C/C++, and HTML5.
  • Qt Creator :zap: - A cross-platform C++, JavaScript and QML IDE which is part of the SDK for Qt.
  • rtags - A c/c++ client/server indexer with for integration with emacs based on clang.
  • Xcode - Developed by Apple.
  • YouCompleteMe - YouCompleteMe is a fast, as-you-type, fuzzy-search code completion engine for Vim.
  • cquery - A C++ code completion engine for vscode, emacs, vim, etc.

Build Systems

  • Bazel - A multi-language, fast and scalable build system from Google. [Apache]
  • Bear - A tool to generate compilation database for clang tooling. [GPLv3]
  • cget - Cmake package retrieval used to download and install cmake packages. [Boost]
  • clib - Package manager for the C programming language. [MIT]
  • CMake - Cross-platform free and open-source software for managing the build process of software using a compiler-independent method. [BSD]
  • C++ Archive Network - Cross-platform C++ Dependency Manager with a lot of packages available.
  • Conan - C/C++ Package Manager, open sourced. [MIT]
  • CPM - A C++ Package Manager based on CMake and Git.
  • FASTBuild - High performance, open-source build system supporting highly scalable compilation, caching and network distribution.
  • Hunter - CMake driven cross-platform package manager for C++. [BSD-2]
  • MesonBuild - An open source build system meant to be both extremely fast, and, even more importantly, as user friendly as possible.
  • Ninja - A small build system with a focus on speed.
  • Scons - A software construction tool configured with a Python script.
  • Sconsolidator - Scons build system integration for Eclipse CDT.
  • Spack - A flexible package manager that supports multiple versions, configurations, platforms, and compilers. [LGPLv2.1]
  • tundra - High-performance code build system designed to give the best possible incremental build times even for very large software projects.
  • tup - File-based build system that monitors in the background for changed files.
  • Premake - A tool configured with a Lua script to generate project files for Visual Studio, GNU Make, Xcode, Code::Blocks, and more across Windows, Mac OS X, and Linux.
  • Vcpkg - VC++ Packaging Tool for Windows.
  • waf - Python-based framework for configuring, compiling and installing applications. [BSD] website

Static Code Analysis

List of tools for improving quality and reducing defects by code analysis

  • Cppcheck - A tool for static C/C++ code analysis. - source
  • CppDepend - Simplifies managing a complex C/C++ code base by analyzing and visualizing code dependencies, by defining design rules, by doing impact analysis, and comparing different versions of the code.
  • PVS-Studio - A tool for bug detection in the source code of programs, written in C, C++ and C#.
  • cpp-dependencies - Tool to check C++ #include dependencies (dependency graphs created in .dot format). [Apache]
  • include-what-you-use - A tool for use with clang to analyze includes in C and C++ source files. website
  • Infer - A static analyzer for Java, C and Objective-C. [BSD]
  • OCLint - A static source code analysis tool to improve quality and reduce defects for C, C++ and Objective-C. - source
  • Clang Static Analyzer - A source code analysis tool that finds bugs in C, C++, and Objective-C programs.
  • Linticator - Eclipse CDT integration of Pc-/FlexeLint.
  • List of tools for static code analysis - A list of tools for static code analysis from Wikipedia.

Coding Style Tools

  • ClangFormat - A tool to format C/C++/Obj-C code.
  • Clang-Tidy - Clang-based C++ linter tool.
  • Uncrustify - Code beautifier.

Resources

Various resources, such as books, websites, and articles for improving your C++ development skills and knowledge.

API Design

  • Beautiful Native Libraries
  • Designing Qt-Style C++ APIs

Articles

Fantastic C++ related articles.

  • CppCon 2017 Presentation Materials - CppCon 2017 Presentation Materials.
  • CppCon 2016 Presentation Materials - CppCon 2016 Presentation Materials.
  • CppCon 2015 Presentation Materials - CppCon 2015 Presentation Materials.
  • CppCon 2014 Presentation Materials - CppCon 2014 Presentation Materials.
  • C++Now 2017 Presentations - Presentation materials presented at C++Now 2017.
  • C++Now 2016 Presentations - Presentation materials presented at C++Now 2016.
  • C++Now 2015 Presentations - Presentation materials presented at C++Now 2015.
  • C++Now 2014 Presentations - Presentation materials presented at C++Now 2014.
  • C++Now 2013 Presentations - Presentation materials presented at C++Now 2013.
  • C++Now 2012 Presentations - Presentation materials presented at C++Now 2012.

Books

Fantastic C or C++ related books.

  • List of Free C or C++ Books
  • Free C Books - vhf/free-programming-books/C.
  • Free C++ Books - vhf/free-programming-books/C++.
  • cppbestpractices - Collaborative Collection of C++ Best Practices.

Coding Style

  • C++ Core Guidelines - “Official” set of C++ guidelines, reviewed by the author of C++.
  • C++ Dos and Don’ts - The Chromium Projects > For Developers > Coding Style > C++ Dos and Don’ts.
  • google-styleguide - Style guides for Google-originated open-source projects.
  • Google C++ Style Guide
  • GNU Coding Standard
  • Linux kernel coding style
  • LLVM Coding Standards

Talks

  • CppCon Talks :zap: - The C++ conference.
  • Quick game development with C++11/C++14 - CppCon 2014 talk by Vittorio Romeo.
  • Presentation on Hana for C++Now 2015

Videos

Fantastic C or C++ related videos.

  • List of C or C++ YouTube Videos
  • Awesome C Programming Tutorials in Hi Def [HD] - A collection of detailed C Programming Language Tutorials for Beginners and New Programmers.
  • C++ - by VoidRealms.
  • C++ Qt Programming - by VoidRealms.
  • C++ Programming Tutorials Playlist - TheNewBoston Official Buckys C++ Programming Tutorials Playlist.
  • C++ Programming Tutorials from thenewboston - These are all of thenewboston’s C++ programming tutorials.
  • C++ GUI with Qt Playlist - Official Playlist for thenewboston C++ GUI with Qt tutorials.
  • C Programming Tutorials - All of TheNewBoston’s C programming tutorials are right here.
  • Bo Qian’s playlist - Boost Library, C++ Standard Library, Modern C++, Advanced C++, Advanced STL, …

Websites

Useful C or C++ related websites.

  • Standard C++ :zap: - News, Status & Discussion about Standard C++.
  • CppCon - The C++ Conference.
  • C++ reference - C++98, C++03, C++11, C++14 reference.
  • cplusplus.com - The C++ Resources Network.
  • C FAQ - C frequently asked questions.
  • C++ FAQ - C++ frequently asked questions.
  • C++ FQA Lite - C++ frequently questioned answers.
  • Guru of the Week - A regular series of C++ programming problems created and written by Herb Sutter.
  • Meeting C++
  • C++ Quiz - C++ quiz in which you propose to find errors in code fragments of open source projects.
  • Udemy C++ Courses and Tutorials
  • C++ Hints - Every business day hints about most often C++ mistakes and ways to solve them from PVS-Studio Team.
  • C++ tutorial - A user ranked online tutorial bank site displaying multiple courses to learn C++ from.

Weblogs

Useful C or C++ related weblogs.

  • Coding For Speed - Coding For Speed DOT COM, Less Execution Time.
  • Eric Niebler
  • Sticky Bits
  • Paul Fultz II’s Blog
  • ridiculousfish - Will It Optimize?
  • Embedded in Academia

Other Awesome Projects

Collection of useful codes, snippets, …

  • algorithms - Algorithms & Data Structures in C++.
  • c-algorithms - C algorithms library.
  • C++ Awesome Pack - Contains some awesome c++ codes, packed in one.

Other Awesome Lists

Other amazingly awesome lists

  • lists - List of (awesome) lists curated on GitHub.
  • awesome-awesomeness - A curated list of awesome awesomeness.
  • awesome :zap: - A curated list of awesome lists.
  • C++ links - A categorized list of C++ resources.
  • Awesome C++ - getAwesomeness()’s mirror.
  • Awesome C++ - LibHunt’s mirror.
  • Awesome C 1
  • Awesome C 2
  • AwesomePerfCpp - A curated list of awesome C/C++ performance optimization resources.
  • free-programming-books - List of Freely Available Programming Books.
  • Inqlude - The Qt library archive.
  • papers-we-love - Papers from the computer science community to read and discuss.
  • awesome-algorithms - A curated list of awesome places to learn and/or practice algorithms.
  • awesome-talks - A lot of screencasts, recordings of user group gatherings and conference talks.
  • Projects - A list of practical projects that anyone can solve in any programming language.
  • Awesome interview questions - A list of lists of interview questions for the most popular technologies, including C and C++.
  • nothings/single_file_libs :zap: - List of single-file C/C++ libraries.

Contributing

Please see CONTRIBUTING for details.

阅读全文 »

awesome-cmake

发表于 2012-06-21 | 分类于 awesome

Awesome CMake Awesome

A curated list of awesome CMake scripts, modules, examples and others

Your contributions are highly welcome (first see CONTRIBUTING.md).

Contents

  • Awesome CMake Awesome
    • Contents
    • Community
    • Resources
    • Package Management / Build Systems
    • Modules
    • Utility Scripts
    • Toolchains
    • Examples / Templates
    • Other
    • License

Community

  • #cmake on Freenode
  • /r/cmake on Reddit
  • /r/cpp on Reddit
  • Mailing Lists
  • Stack Overflow

Resources

  • Latest Documentation
  • FAQ
  • Wiki
  • Webinars
  • CGold - The Hitchhiker’s Guide to the CMake. [BSD2]
  • Modern CMake - Modern CMake PDF and samples by the creator of cmakepp. [MIT]
  • Article - Easily supporting CMake install and find_package().
  • Article - Easy dependency management for C++ with CMake and Git.
  • Article - Opt-in header-only libraries with CMake.
  • Article - Ultimate Guide to Modern CMake.
  • Article - A list of common CMake antipatterns (from 2013 but still relevant).
  • Article - How to Build a CMake-Based Project.
  • Article - Learn CMake’s Scripting Language in 15 Minutes.
  • Article - The architecture of CMake.
  • Lecture - Effective CMake - by Daniel Pfeifer, C++Now 2017.
  • Article - Building Cross-Platform CUDA Applications with CMake.
  • Tutorial - A step-by-step guide for understanding CMake.
  • Article + Lecture - Embracing Modern CMake - by Stephen Kelly.
  • Lecture - CppCon 2017: Mathieu Ropert “Modern CMake for Modular Design”.
  • Article - Modern C++ CI (although it uses non-modern CMake like include_directories()).
  • Article - It’s Time To Do CMake Right (one of the best articles about CMake).
  • Articles - A series on CMake - by Martin Hořeňovský
    • Basic CMake usage
    • Basic CMake, part 2: libraries
  • Lecture - Introduction to CMake - by Florent Castelli, C++ Sweden 2018.
  • Article - Some nice and accurate CMake tips
  • Article - Modern CMake for Library Developers
  • Article - Effective Modern CMake: a great summary of most good practices - by Manuel Binna

Package Management / Build Systems

  • hunter - Cross-platform package manager for C++ (based on CMake ExternalProject). [BSD2]
  • cget - CMake package retrieval. This can be used to download and install CMake packages. [BOOST]
  • cppan - C++ Archive Network - C++ Package Manager based on CMake, implemented in C++14. [APACHE2]
  • cpm - C++ Package Manager based on CMake and Git. [MIT]
  • conan - Conan C++ Package Manager, implemented in Python and has a CMake integration backend. [MIT]
  • fips - High-level build system/dependency management for distributed, multi-platform C/C++ projects. [MIT]
  • Ninja - Build system that differs from others in two major respects: it is designed to have its input files generated by a higher-level build system (like CMake), and it is designed to run builds as fast as possible. [APACHE2]
  • vcpkg - A tool to acquire and build C++ open source libraries. Uses CMake internally as a build script language. [MIT]

Modules

  • cmake-modules - Ryan Pavlik’s collection of CMake modules. There are a number of find modules, especially for virtual reality and physical simulation, some utility modules, and some patches or workarounds for CMake itself. [BOOST]
  • cmake-modules - This is a collection of additional CMake modules. Most of them are from Ryan Pavlik. [BOOST]
  • CMake - Eyescale’s common CMake modules. [BSD3]
  • sdl2-cmake-scripts - CMake scripts for finding the SDL2, SDL2_image and SDL2_ttf libraries and headers. [BSD2]
  • vfxcmake - CMake Find modules for common vfx software, and general CMake utility code. [LGPL]
  • cmake-modules - CMake modules for some scientific libraries. [BSD2]
  • cgcmake - CMake modules for common applications related to computer graphics. [MIT]
  • FindMathematica - CMake module for Mathematica. [MIT]
  • extra-cmake-modules - KDE’s extra modules and scripts for CMake. [BSD3]
  • FindICU.cmake - CMake module to find International Components for Unicode (ICU) Library. [BSD2]
  • FindTBB - CMake find module for Intel Threading Building Blocks. [MIT]
  • cmake-modules - hanjianwei’s CMake module collection. [MIT]
  • YCM - Extra CMake Modules for Yet Another Robot Platform and friends. [BSD3]

Utility Scripts

These provide a wide range of functionality - from dealing with compiler flags to using tools. Some also contain modules.

  • cotire - Cotire (compile time reducer) is a CMake module that speeds up the build process of CMake based build systems by fully automating techniques as precompiled headers and unity builds for C and C++. [MIT]
  • ucm - For managing compiler/linker flags, collecting sources, precompiled headers, unity builds and others. [MIT]
  • cmakepp - Enhancement Suite for the CMake Build System. [MIT]
  • sugar - CMake tools and examples: collecting source files, warnings suppression, etc. [BSD2]
  • DownloadProject - CMake module for downloading an external project’s source at configure time. [MIT]
  • buildem - Modular CMake-based system that leverages ExternalProject to simplify builds. [LICENSE]
  • coveralls-cmake - Coveralls JSON coverage generator and uploader for CMake. [MIT]
  • compatibility - Improved version of cmake-compile-features. [LICENSE]
  • cmake-modules - LibFindMacros development repository and other cool CMake stuff. [LICENSE]
  • GreatCMakeCookOff - This is a repository of useful and less than useful CMake recipes. [MIT]
  • cppcheck-target-cmake - Per-target CPPCheck for CMake. [MIT]
  • clang-tidy-target-cmake - Add clang-tidy checks to a target using CMake. [MIT]
  • cmake-unit - Unit testing framework for CMake. [MIT]
  • cmake-header-language - CMake macro to determine the language of a header file. [MIT]
  • tooling-cmake-util - Utility and common library for all polysquare CMake tools. [MIT]
  • iwyu-target-cmake - CMake integration for include-what-you-use. [MIT]
  • sanitizers-cmake - CMake module to enable sanitizers for binary targets. [MIT]
  • cmake-precompiled-header - Visual Studio and GCC precompiled header macro. [LICENSE]
  • CMakePCHCompiler - CMake precompiled headers via custom compiler extension - with reuse support! [MIT]
  • CMake-codecov - Enables code coverage and generates coverage reports with CMake targets. [GPL]
  • leatherman - Collection of C++ and CMake utility libraries. [APACHE2]
  • cmake-get - Get dependencies in config or script mode. [NO LICENSE]

Toolchains

  • dockcross - Cross compiling toolchains in Docker images. [MIT]
  • android-cmake - CMake toolchain file and other scripts for the Android NDK. [BSD3]
  • ios-cmake - Toolchain file and examples using CMake for iOS development. [BSD3]
  • qt-android-cmake - For building and deploying Qt based apps on Android without QtCreator. [LICENSE]
  • mingw-w64-cmake - CMake-based MinGW-w64 Cross Toolchain - to build Windows binaries of mpv. [ISC]
  • cmake-avr - CMake toolchain for AVR. [LICENSE]
  • arduino-cmake - This is the CMake project settings for the Arduino platform. [MPL]
  • polly - Collection of CMake toolchain files and scripts for cross-platform build and CI testing. [BSD2]
  • toolchains - For crosscompiling with CMake. They are meant to be mainly used on ArchLinux. [NO LICENSE]
  • cmake - Collection of CMake toolchain files, mostly for static linking. [APACHE2]

Examples / Templates

  • cmake-init - Template for reliable, cross-platform C++ project setup using CMake. [LICENSE]
  • learning-cmake - This is a simple CMake practice project which contains some different scenarios. [GPL2]
  • cmake_test - Small example project using CMake. [NO LICENSE]
  • android-cmake - Examples of using ruslo/hunter package manager for an Android application. [BSD2]
  • hunter-simple - Example of downloading/installing dependencies using ruslo/hunter package manager. [BSD2]
  • weather - Example of using Hunter cross-platform package manager for CMake to build application which use Boost, CppNetlib.URI, GTest, JSON Spirit. Platforms: Windows (Visual Studio), Linux, Mac OS X + iOS. [BSD2]
  • package-example - Config mode of find_package (examples for this Stack Overflow question). [NO LICENSE]
  • CMakeTemplates - Set of initial CMake templates that I use for every game port I work on. [NO LICENSE]
  • minimal_cmake_example - Minimal CMake example, that covers dependencies and packaging. [CC0-1.0]
  • cmake-example - Example project which demonstrates various CMake features. [BSD3]
  • cmake-examples - Useful CMake examples in a tutorial format. [MIT]
  • cmake-templates - Some CMake Templates. Qt, Boost, OpenCV, C++11, etc. [MIT]
  • CppProjectTemplate - Basic, but working, C++ project using CMake, boost and Doxygen. [MIT]
  • mini-cmake-qt - Minimal CMake template for Qt 5 projects. [LICENSE]
  • CMake-VisualStudio-Example - CMake example for Visual Studio developers - blog post. [NO LICENSE]
  • Cpp-Project-Template - C++ bootstrap project template including CMake build system. [MIT]
  • BASIS - CMake BASIS makes it easy to create sharable software and libraries that work together. [BSD2]
  • OpenGL_CMake_Skeleton - A ready to use CMake skeleton using GLFW, Glew and glm. [MIT]
  • coveralls-cmake-example - Example project for coveralls-cmake. [NO LICENSE]
  • cppbase - Template for a simple CMake-based C++ project. [MIT]
  • Arduino-CMake-Template - Starting point for Arduino development using CMake. [NO LICENSE]
  • c-template - Boilerplate to set up a c project, include CuTest, CMake build setup. [MIT]
  • cpp_project_template - Simple template to start quickly a C++ project managed by CMake. [MIT]
  • cpp-boilerplate - Template that aims to be a reference for modern CMake and CI. [MIT]
  • ci_helloworld - A simple example of how to setup a complete CI environment for C and C++. [MIT]
  • how-to-export-cpp-library - An OS-agnostic C++ library template sporting ctest and CI support, written in plain CMake with line-by-line guiding comments. [MIT]
  • ModernCppCI - An example of doing a Modern C++ project with CI (although it uses non-modern CMake like include_directories()). [MIT]
  • modern-cmake-sample - Best practices and proper usage of CMake by using targets. [NO LICENSE]
  • CMakeInstallExample - Installation example for a C++ project (Windows) with Cmake. [NO LICENSE]
  • cpp14-project-template - A C++14 template with CI, tests, code coverage, docs and static analysis integration. [CC0-1.0]
  • cmake_templates - Templates for creating C++ libraries and executables (including conan). [NO LICENSE]
  • cmake_snippets - Short copy-pasteable CMake snippets. [BSD3]
  • cmake-cookbook - A huge CMake cookbook full of recipes. [MIT]

Other

  • autocmake - Using a autocmake.yml file Autocmake composes CMake building blocks into a CMake project and generates CMakeLists.txt as well as a setup script, which serves as a front-end to CMakeLists.txt. [BSD3]
  • UseLATEX - Collection of CMake macros to simplify building LaTeX files. [BSD3]
  • python-cmake-buildsystem - Replacement buildsystem for CPython. [APACHE2]
  • scikit-build - Improved build system generator for CPython C extensions. [MIT]
  • protobuf-cmake - CMake build support for Google Protobufs. [BSD3]
  • node-cmake - CMake-based build system for node.js native modules. [ISC]
  • cmake-font-lock - Advanced syntax coloring support for CMake scripts inside Emacs. [GPL]
  • stm32-cmake - Used to develop applications for the STM32 - ST’s ARM Cortex-M0(3,4,7) MCUs. [MIT]
  • autovala - Program that automatically generates CMake configuration files for your Vala project. [GPL]
  • catkin - CMake-based build system that is used to build all packages in Robot Operating System (ROS). [BSD3]
  • suitesparse-metis-for-windows - CMake scripts for painless usage of SuiteSparse+METIS. [BSD3]
  • cython-cmake-example - Utilities and example for using CMake to build Cython modules. [LICENSE]
  • osg-3rdparty-cmake - CMake scripts for building OpenSceneGraph third party libraries. [MIXED LICENSE]
  • cmake-d - CMake for D2. [MIT]
  • cmakeprojectmanager2 - Enhanced CMake Project Manager plugin for Qt Creator. [NO LICENSE]
  • cmake-lint - Check for coding style issues in CMake files. cmakelint requires Python. [APACHE2]
  • git-cmake-format - Integrate clang-format into your CMake project hosted in a git repository. [LICENSE]
  • configure-cmake - configure-cmake is an autotools-style configure script for CMake-based projects. [CC0-1.0]
  • tbb - Threading Building Blocks with CMake build. [APACHE2]
  • sqlite.cmake.build - CMake script for sqlite amalgamation. [NO LICENSE]
  • cmake-ast - Python module to reduce a CMake file to an AST. [MIT]
  • cmake_format - Source code formatter for CMakeLists.txt files. [GPL]
  • cmake-checks-cache - CMake checks cache helper modules. [MIT]

License

This is released under the Creative Commons Attribution 4.0 International License (CC BY 4.0).

阅读全文 »

awesome-c-cn

发表于 2012-06-21 | 分类于 awesome

C 语言资源大全中文版

我想很多程序员应该记得 GitHub 上有一个 Awesome:XXX 系列的资源整理。awesome-c 是 koz.ross 发起维护的 C 语言资源列表,内容包括了:构建系统、编译器、数据库、加密、初中高的教程/指南、书籍、库等等。

Awesome 系列虽然挺全,但基本只对收录的资源做了极为简要的介绍,如果有更详细的中文介绍,对相应开发者的帮助会更大。这也是我们发起这个开源项目的初衷。


我们要做什么?

  • 基于 awesome-c 列表,我们将对其中的各个资源项进行编译整理。此外还将从其他来源补充好资源。
  • 整理后的内容,将收录在伯乐在线资源频道。可参考已整理的内容:
    • 《libPhenom:Facebook开源的高性能C语言并发编程框架》

如何参与本项目?


如何为列表贡献新资源?

欢迎大家为列表贡献高质量的新资源,提交PR时请参照以下要求:

  • 请确保推荐的资源自己使用过
  • 提交PR时请注明推荐理由

资源列表管理收到PR请求后,会定期(每周)在微博转发本周提交的PR列表,并在微博上面听取使用过这些资源的意见。确认通过后,会加入资源大全。

感谢您的贡献!


本项目的参与者

  • 维护者:
  • 贡献者:Yonah潇、骷髅、贺贺、beyondwu、Huang Lin、Anloper、冰斌

注:名单不分排名,不定期补充更新


目录

  • 构建系统
  • 编译器
  • 加密
  • 数据库
  • 文档生成
  • 编辑器
  • 环境
  • 框架
  • 游戏编程
    • 引擎
    • 资源
  • 通用编程
  • 图形
  • GUI
  • JSON
  • 学习、参考和指南
    • 在线资源
      • 参考
      • 初级
      • 中级
      • 高级
      • 自学资源
    • 实体书
      • 参考
      • 初级
      • 中级
      • 高级
  • 多媒体
  • 网络编程
    • Web 框架
  • 数值计算
  • 并行编程
  • 正则表达式
  • 序列化
  • 源码集锦
  • 标准库
  • 字符串处理
  • 测试工具
  • 文本编辑器扩展
    • Emacs
    • Vim
  • 工具
  • 其他工具
  • XML
  • 其他资源
    • 有影响力的书
    • 知名网站/博客
    • 微信公众号

构建系统

下面是一些 C 项目的自动化构建和测试工具。

  • aimake:一个被设计来避免复杂配置的构建工具。GNU GPL3 或更高版本。官网
  • Autoconf:一个可扩展的 M4 宏指令包,提供命令行脚本来自动配置软件源码包,是 Autotools 的一部分。GNU GPL3 或更高版本。官网
  • Automake:一个自动生成符合 GNU 代码标准的 Makefile.in 文件的工具。需要与 Autoconf 配合使用,它也是 Autotools 的一部分。GNU GPL3 或更高版本。官网
  • Jam:一个构建系统,它被设计的比make更加易用。隐式地理解 C 的构建规则。Jam License。官网
  • Libtool:一个通用库支持脚本,是 Autotools 的一部分。GNU GPL3 或更高版本。官网
  • Meson:一个非常快,用户友好的构建系统,基于 Ninja。Apache2.0。官网

编译器

  • Clang:一个基于 LLVM 的 C 的编译器,支持 C11 标准。NCSA。官网
  • CompCert:一个经过充分验证的 C 编译器。支持几乎所有的 C89 标准。GNU GPL2.1 或更高版本。官网
  • GCC:在它的编译器集合中提供了 C 编译器。支持 C11 和 OpenMP 的标准。GNU GPL3 或更高版本。官网
  • PCC:一个值得尊敬的 C 编译器,支持 C99 标准。Various licenses,完全免费。官网
  • TCC:一个迷你,速度快的 C 编译器,支持 C99(除了复杂的类型)。 LGPL2.1。官网

加密

  • GnuTLS:一个安全通信库,实现了 SSL,TLS 和 DTLS。GNU GPL2.1 或更高版本。官网
  • libgcrypt:一个通用的密码库,支持多种加密方法。 GNU LGPL2.1 (代码),GNU GPL2.1 或更高版本(说明书和工具)。官网
  • OpenSSL:一个 SSL 和 TLS 协议的实现,还包括一个加密库。Dual Licensed under the OpenSSL License and the SSLeay License。官网
  • libsodium:一个现代,易用的加密库。Expat。官网
  • libtomcrypt:一个相当全面,模块化和可移植的工具集。公开领域。官网
  • mbed TLS:一个 C 实现的加密库。Apache2.0。官网

数据库

下面列出了基于 C API 的数据库和数据存储

  • BerkeleyDB:一个高性能的嵌入式键值对数据库。GNU AGPLv3。官网
  • Hiredis:一个极简的 Redis 客户端。3-clause BSD。官网
  • LMDB:一个极快,极简的嵌入式键值对数据存储系统。newOpenLDAP。官网
  • MariaDB:一个强壮,可扩展和可靠的 SQL 服务器,设计来作为 MySQL 的替代品。3-clause BSD。官网
  • mongo-c-driver:一个高性能的 MongoDB 客户端。Apache2.0.官网
  • PostgreSQL:一个强大的对象关系数据库系统。PostgreSQL licence。官网
  • recutils:一个工具和 C 库的集合,用于访问可编辑,纯文本的名为 recfiles 的数据库文件。GNU GPL3 或更高版本。官网
  • Redis:一个先进的键值对存储系统。3-clause BSD。官网
  • sophia:一个现代,可嵌入的键值对数据库。FreeBSD。官网
  • SQLite:一个自包含,无服务器,零配置,支持事务的 SQL 数据库引擎,包括 C 接口。公开领域。官网
  • UnQLite:一个自包含,无服务器,零配置,支持事务的 NoSQL 数据库引擎,包括 C 接口。FreeBSD。官网

文档生成

  • Cxref:生成 C 程序的文档,支持 LaTeX,HTML, RTF 或者 SGML 的格式。GPL2.1官网
  • DocOnce:一种朴素的标签标记语言,可以用来生成多种格式的文档。BSD-3clause.官网
  • Doxygen:一个事实上的标准工具,用于从注释的代码中生成 C 文档。能够生成多种格式的文档。GNU GPL2.1。官网
  • GTK-Doc:一个从注释的代码中生成 C 文档的工具,支持 Autotools GNU GPL2.1(代码), GNU FDL1.1。官网

编辑器

这些是特别精致,IDE 类型的编辑器。如果你想要一个程序员的文本编辑器,看别的地方。此外,不管你选择哪一款编辑器,它都支持 C。

  • Anjuta DevStudio:GNOME IDE。 GNU GPL2.1。官网
  • Code::Blocks:一个可扩展,可配置的 IDE,支持 C。GNU GPL3。官网
  • CodeLite:一个跨平台的 IDE。 GNU GPL2.1。官网
  • Eclipse:一个用 Java 写成的 IDE。 EPL。官网
  • Geany:一个很小很快的 IDE。 GNU GPL2.1及更高版本。官网
  • KDevelop:KDE IDE. GNU GPL2.1。官网

环境

下面列出了被设计来引领 Windows 进入支持 C 的 21 世纪的技术。

  • Cygwin:被设计用于在 Windows 下模拟 POSIX 兼容环境。Various licenses, all free。官网
  • MinGW-w64:一个 Windows 下极简的 C 开发环境,支持 64 位。Various licenses, all free。官网

框架

这一节包括提供数据结构的大型库和你所期待“现代”的标准库。

  • APR:Apache Portable Runtime;另一个跨平台的实用函数库。Apache2.0。官网
  • C Algorithms:一个常用算法和数据结构的集合。官网
  • CPL:The Common Pipeline Library;一系列详尽,高效和强壮的软件工具包。GNU GPL2.1。官网
  • EFL:一个大型实用数据结构和函数的的集合。多种许可证,完全免费。官网
  • GLib:一个便携,高效和强大的实用函数和数据结构库。GNU LGPL2.1。官网
  • GIO:一个现代和易用的 VFS API。[GNU LGPL2.1]。官网
  • GObject:一个 C 的面向对象系统和对象模型。GNU LGPL2.1。官网
  • libnih:一个轻量级的 C 函数和数据结构库。GNU GPL2.1。官网
  • libU:一个提供基本实用函数的迷你库,包括内存分配,字符串处理和日志功能。官网
  • PBL:一个包括实用函数,特色数据结构等的大型库。GNU LGPL2.1及更高版本(库),GNU GPL2.1及更高版本(测试代码)。官网
  • qlibc:一个简单且强大的 C 库,当我们想要小且轻的库时,可作为 Glib 的替代品。qLib license (类似于 FreeBSD)。官网
  • stb:一系列单文件 C 库。公共领域。官网
  • libcstl:标准C语言通用数据结构和常用算法库。官网

游戏编程

引擎

这些作为 C 游戏编程代码的例子。

  • Corange:一个纯 C 的游戏引擎。FreeBSD。官网
  • Darkplaces:一个 Quake2 引擎的修改版本。GNU GPL2.1。官网
  • ioquake3:Quake3 引擎,终于免费啦。GNU GPL2.1。官网
  • Orx:一个便携,轻量级,插件化,数据驱动,面向 2D 的游戏引擎。zlib。官网
  • Quake2:Quake2 引擎。GNU GPL2.1。官网
  • Spearmint:一个为 FPS 游戏设计的引擎。GNU GPL3及更高版本。官网

资源

这些是筛选过的,对游戏编程有用的库。

  • Allegro:一个跨平台,视频游戏开发和多媒体库。zlib。官网
  • Chipmunk2D:一个快且轻量级的 2D 游戏物理库。Expat。官网
  • CSFML:一个用 C 封装的 SFML。zlib。官网
  • FreeGLUT:一个替代性的 OpenGL 实用工具包。允许用 OpenGL 上下文创建和管理窗口。X11。官网
  • GLFW:一个使用 OpenGL 上下文创建窗口的多平台库。zlib。官网
  • libao:一个有多种输出的跨平台音频库。GNU GPL2.1及更高版本。官网
  • RetroArch:libretro 的参考前端。GNU GPL3。官网
  • SDL:一个跨平台库,通过 OpenGL 提供音频,键盘,鼠标,操纵杆和图形硬件的底层访问。zlib。官网
  • SDL2:一个跨平台库,通过 OpenGL 提供音频,键盘,鼠标,操纵杆和图形硬件的底层访问。这是最新版本。zlib。官网

通用编程

  • klib:小且轻量级的常用算法和数据结构实现。Expat。官网

图形

  • Cairo:一个 2D 图像库。GNU LGPL2.1 或者 MPLv1.1。官网
  • Cogl:一个 GPU 图像和实用 API。Expat(依赖使用 3-clause BSD 许可,库使用 LGPLv2.1 许可)。官网
  • Clutter:一个基于 OpenGL 的 UI 库。GNU LGPL2.1。官网
  • heman:一个迷你图像实用工具库,处理高度图,法线图,距离场等。Expat。官网
  • libcaca:一个基于终端接口的 ASCII 渲染器。WTFPLv2。官网
  • libimagequant:小且轻量级的库,用于高质量的从 RGBA 图像到 8 位像素图的转换。FreeBSD。官网
  • libjpeg-turbo:一个更快的读写 JPEG 文件库。Various licences。官网
  • libpng:官方 PNG 参考库。libpng license。官网
  • libxmi:一个光栅化 2D 位图的函数库。GNU GPL3 或更高版本。官网
  • mozjpeg:一个提升 JPEG 图像质量的编码器。3-clause BSD。官网
  • OpenGL:一个高性能图像的工业标准,提供了原生 C语言 绑定。Various licenses。官网
  • Craft:一个利用OpenGL使用C编写的简单MineCraft的克隆。官网、GitHub

GUI

这些具体来说就是控件工具包

  • GTK+:一个跨平台的控件工具包。GNU LGPL2.1。官网
  • IUP:另一个跨平台的控件工具包。Expat。官网
  • Tk:一个基本控件工具包,Tcl/Tk 的一部分。Tcl/Tk License。官网
  • XForms Toolkit:一个为 XWindow 设计的控件工具包。GNU LGPL2.1。官网

JSON

  • Jansson:一个编码,解码和处理 JSON 的 C 库。Expat。官网
  • jsmn:一个极简的 JSON 解析器。Expat。官网
  • json-c:一个处理 JSON 的库。Expat。官网
  • WJElement:高级 JSON 处理库,支持 JSON Schema。任意版本的 LGPL。官网
  • YAJL:一个很快的 JSON 流解析 C 库。ISC。官网

学习、参考和指南

下面列出了学习 C 编程的资源,或者跟 C 编程相关的有用的东西。

在线

参考

  • SEI CERT C 编码标准
  • C FAQ:comp.lang.c 常见问题
  • GNU/Linux 下 C/POSIX 标准库实现的比较
  • C11 标准草案
  • GNU C 参考手册
  • Robert Pike 的 C 笔记

初级

  • 指针教程
  • C 语言指针 5 分钟教程
  • C 语言内存地址基础
  • C 语言函数指针基础
  • C 语言指针和数组基础
  • 构建 C 项目
  • C 编程百科全书
  • “有趣”的 C 介绍
  • 用 GDB 学习 C
  • POSIX 线程编程指南 (有点过时,但大部分还是有效和有用的)
  • GNU C 编程指南 (在线 PDF)
  • C 语言中的模板

中级

  • 8 个你应该知道的 GDB 技巧
  • 10 个 C99 技巧
  • 深入并发:尝试互斥锁和原子操作
  • OpenMP 介绍 (视频)
  • OpenMP 指南 (针对 OpenMP3 标准)
  • memcpy 与 memmove 的比较
  • MPI 指南
  • C 语言中一些未知特性或者技巧
  • 失落的 C 语言结构体封装艺术
  • C 程序员需要了解的内存知识
  • 每个 C 程序员需要知道的未定义行为知识

高级

  • C 中的高级元编程
  • 一个快速教程:如何实现和调试 malloc,free,calloc,和 realloc
  • 位操作技巧
  • 我不懂 C
  • 在 C 语言中实现智能指针
  • C 中的内联函数
  • C 中的自定义控制结构元编程
  • 用 C 的宏解决临时内存问题
  • C 语言中一些不为人知的角落
  • 编写高效的 C 和 C 代码优化

自学教程

  • C 语言认证协会预备课程

实体书

参考资料

  • C: A Reference Manual 5E:C99 完全参考手册
  • C Pocket Reference:C99 简明参考手册
  • The C Programming Language 2E:第一本 C 语言书籍,由 C 的创造者编写。

初级

  • C Primer Plus 6E:一个全面的 C11 编程指南。
  • C Programming: A Modern Approach:一本极好的学习 C 基础的书。
  • Head First C:一本“深入浅出”风格的学习 C 的书籍。

中级

  • 21st Century C:一本非常好的 C 语言书籍,可作为第二选择。
  • Understanding and Using C Pointers:一本深入讨论 C 指针的书。
  • ZeroMQ:一本介绍如何用 C 使用 ZeroMQ 的书。

高级

  • Expert C Programming: Deep C Secrets:一本从有趣,深度和娱乐的视角分析 C 内部结构的书籍。

多媒体

  • FFMPEG:一个完整,跨平台的录音,转换和流化视频以及音频的解决方案。GNU LGPL2.1 或更高版本,部分是 GNU GPL2.1 或更高版本。官网
  • GStreamer:一个声音和可视化媒体的框架。GNU LGPL2.1。官网
  • lodepng:一个简单的 PNG 图像解码器和编码器,不需要其他依赖。3-clause BSD.官网

网络编程

  • asnlc:一个把 ASN.1 规范转换为 C 代码的编译器。FreeBSD。官网
  • czmq:一个 ZeroMQ 的高级绑定。官网
  • GNU adns:一个高级,易用,异步的 DNS 客户端和实用工具。GNU GPL3 及更高版本。官网
  • GNU SASL:一个简单身份认证和安全层和一些常见 SASL 机制的实现。GNU GPL3 及更高版本。官网
  • GnuTLS:一个安全通信库,实现了 SSL,TLS 和 DTLS。GNU LGPL2.1 及更高版本。官网
  • gumbo-parser:一个 C99 标准的 HTML5 解析库。Apache2.0。官网
  • http-parser:一个 HTTP 请求回应解析器。Expat。官网
  • ldns:一个简化 DNS 编程的库。3-clause BSD。官网
  • libcurl:一个客户端的 URL 转换库,支持多种格式。curl license。官网
  • LibEtPan:一个邮件库,支持 IMAP,SMTP,POP 和 NNTP 网络协议。3-clause BSD。官网
  • libev:一个事件驱动库。FreeBSD.官网
  • libevent:一个在网络服务器中事件驱动库的可替代品。3-clause BSD。官网
  • libgss:通用安全服务。GNU GPL3 或更高版本。官网
  • libhttpd:一个给应用或嵌入式设备添加基本 Web 服务器功能的库。GNU GPL2。官网
  • libidn:Stringprep,Punycode 和 IDNA 规范的实现。GNU GPL3 或更高版本。官网
  • libmicrohttpd:一个迷你库,可作为其他应用的一部分,让运行 HTTP 服务器变得简单。GNU LGPL2.1 或更高版本。官网
  • libsoup:一个 GNOME HTTP 客户端/服务器库,使用了 GObject。GNU LGPL2.1。官网
  • lwan:一个实验性,可扩展,高性能的 HTTP 服务器。 GNU GPL2.1。官网
  • mongoose:基于 C 的嵌入式 Web 服务器。GNU GPL2.1。官网
  • nanomsg:一个基于 C 的 ZeroMQ 实现。Expat。官网
  • onion:易于使用的 HTTP 服务器库。Apache2.0。官网
  • OpenSSL:一个 SSL 和 TLS 协议的实现,还包括一个加密库。Dual Licensed under the OpenSSL License and the SSLeay License。官网
  • oSip:一个基于 C 的 SIO 实现,没有额外的依赖。GNU LGPLv2.1 或更高版本。官网
  • s2n:一个 C99 标准的 TLS/SSL 协议的实现,简单,快并且以安全优先。Apache2.0。官网
  • socket99:BSD 套接字 API 的 C99 封装。ISC。官网
  • Tox:一个通信平台,被设计为 Skype 杀手。GNU GPL3。官网
  • twitc:一个与 Twitter OAuth API 交互的迷你 C 库。Expat。官网

Web框架

  • balde:一个基于 GLib 的 C 微框架。 GNU LGPLv2.1。官网

数值计算

  • apophenia:一个用于统计和科学计算的库。GNU GPL2.1。官网
  • ATLAS:自动调谐线性代数软件。 3-clause BSD。官网
  • BLAS:Basic Linear Algebra Subprograms;提供向量和矩阵操作的一系列操作。BLAS license。官网
  • Cuba:一个计算多维的数值积分的库。 GNU LGPLv3。官网
  • FFTW:The Fastest Fourier Transform in the West;一个高度优化的快速傅立叶变换例程。GNU GPL2.1 或更高版本。官网
  • FLINT:Fast Library for Number Theory;一个支持算数,多项式,幂级数和矩阵等。GNU GPL2.1 或更高版本。官网
  • GLPK:GNU Linear Programming Kit;一个求解大规模线性规划,混合整数规划和其他相关问题。GNU GPL3 或更高版本。官网
  • GMP:GNU Multple Precision Arithmetic Library;一个支持任意精度计算的库。双重许可 GNU GPL2.1 和 GNU LGPLv3。官网
  • GNU MPC:一个支持复杂数字计算的库。GNU LGPL3 或更高版本。官网
  • GNU MPFR:一个支持任意精度的浮点数计算库。GNU LGPL3 或更高版本(大多数最近版本),GNU LGPL2.1 或更高版本(2.4.x 之前)。官网
  • GNU MPRIA:一个支持多精度合理区间运算的可扩展数学库。GNU GPL3 或更高版本。官网
  • GSL:The GNU Scientific Library;一个精确的数值计算库。GNU GPL3。官网
  • KISS FFT:一个非常快的傅里叶变换库。3-clause BSD。官网
  • LAPACKE:一个 LAPACK 的 C 接口。3-clause BSD。官网
  • PARI/GP:一个数论的计算机代数系统,包括 C 编译器。GNU GPL2.1 或更高版本。官网
  • PETSc:一系列数据结构和例程,用于计算由偏微分方程建模的应用程序的可扩展并行解。FreeBSD。官网
  • SLEPc:一个在并行计算机中的解决大型,稀疏特征值问题的软件库。LGPL3官网
  • Yeppp!:非常快,SIMD 优化的数学库。 3-clause BSD。官网

并行编程

  • cchan:一个线程间通信通道构建的小型库。公共领域。官网
  • ck:并发原语,安全内存回收机制和非阻塞数据结构。FreeBSD。官网
  • mill:用 C 写成的 Go 风格并发。X11官网
  • MPICH:MPI 的另一种实现。MPICH licence。官网
  • OpenMP:一组 C 编译指令,使其易于并行化代码。标准(许可不适用)。官网
  • OpenMPI:一个消息传输接口实现。3-clause BSD。官网
  • PETSc:一系列数据结构和例程,用于计算由偏微分方程建模的应用程序的可扩展并行解。FreeBSD。官网
  • pth:一个非抢占式优先级调度多线程执行的可扩展实现。GNU GPL3 或者更高版本。官网
  • pthreads:POSIX 线程库。标准(没有适用的许可)。官网
  • SLEPc:一个在并行计算机中的解决大型,稀疏特征值问题的软件库。GNU LGPL3。官网
  • TinyCThread:一个可扩展,小型的 C11 标准线程 API 实现。zlib。官网

正则表达式

有些人遇到问题时就会想:“啊,我知道了,我可以使用正则表达式”。于是现在他们有了两个问题。- Jamie Zawinski。

  • PCRE:与 Perl 5 正则表达式完全相同的实现。3-clause BSD。官网
  • SLRE:Super Light Regular Expression library;一个 Perl 正则表达式语法子集的迷你实现。GNU GPL2.1。官网
  • TRE:一个与 POSIX 一致,充满特色的正则表达式库。FreeBSD。官网
  • PS:关于正则表达式,deerchao 有篇文章不错 《正则表达式 30 分钟入门教程》

序列化

  • c-capnproto:一个 Cap’n Proto 序列化协议的实现。 Expat。官网
  • cmp:一个 MessagePack 序列化协议的实现。 Expat。官网
  • libavro:一个 Avro 数据序列化系统的 C 实现。Apache2.0。官网
  • mpack:另一个 MessagePack 序列化协议的实现。Expat。官网
  • protobuf-c:一个 Google Protocol Buffer 的 C 实现。FreeBSD。官网
  • xdr:External Data Representation;数据序列化标准。标准(没有可用许可)。官网

源码集锦

下面包含了一些小型源码集合。如果你想要大型且成熟的,看《框架》那一节。

  • CCAN:模仿 Perl 的 CPAN,这是一个大的实用 C 代码集合。完整的列表在 这里。多种许可(所有都是免费软件)。官网
  • clib:一个 C 软件包管理器,配备了一堆自己的库。 Expat。官网
  • gnulib:通用 GNU 代码的集合。多种许可证,全部免费。官网
  • libdjb:做各种事情的库的集合。(显然)公共领域。官网

标准库

下面包括了标准 C 库。

  • Bionic:谷歌为 Android 开发的 C 标准库。3-clause BSD。官网
  • dietlibc:标准 C 库,可能是最小的二进制文件。GNU GPL2.1。官网
  • glibc:GNU C 库。一个 C 标准库的实现。 GNU LGPL2.1。官网
  • musl:标准 C 库,兼容 POSIX 2008 和 C11,为静态链接设计。Expat。官网

字符串处理

  • bstrlib:更好的字符串处理库。双重许可,3-clause BSD 或 GNU GPL2.1。官网
  • ICU:International Components for Unicode;提供 Unicode 支持的库。 ICU license。官网
  • libunistring:处理 Unicode 字符串的 C 库。GNU LGPL3。官网
  • libgiconv:文本转换库。GNU LGPL2.1(库),GNU GPL3(编码转换程序)。官网
  • SDS:Simple Dynamic Strings;一个用简单方式处理 C 字符串的库,而且兼容标准 C 字符串函数。可通过 clib 使用。FreeBSD。官网
  • shoco:一个小型文本压缩器。Expat。官网
  • smaz:一个高效的字符串压缩库。3-clause BSD.官网

测试工具

  • CHEAT:一个非常简单的单元测试框架。FreeBSD。官网
  • Check:一个 C 的单元测试框架。GNU LGPL2.1。官网
  • CMock:一个 C 的 mock/stub 生成器。官网
  • cmocka:一个支持 mock 对象的单元测试框架。Apache2.0。官网
  • Criterion:一个 KISS 风格,非侵入式的 C 测试框架。Expat官网
  • CUnit:另一个 C 的单元测试框架。GNU LGPL2.0。官网
  • minunit:极小的 C 单元测试框架。Expat。官网
  • Unity:一个简单的 C 单元测试框架。 Expat。官网

文本编辑器扩展

在几乎任何像样的文本编辑器支持 C 之际,有一些扩展,让编辑器更加令人愉快。下面是根据编辑器分目录的。

Emacs

  • CEDET:Collection of Emacs Development Environment Tools;给 Emacs 提供一种类似 IDE 的特点,是内建的。GNU GPL3 或更高版本。官网
  • Flycheck:现代语法检查。对于 C,它可以使用 GCC 或者 Clang 作为后端。GNU GPL3 或更高版本。官网
  • Yasnippet:一个模板系统,支持 C 的通用代码片段。GNU GPL3 或更高版本。官网

Vim

  • Syntastic:语法检查和语言分析。Do What The Fuck You Want To license。官网
  • YouCompleteMe:一个 Vim 的代码补全引擎。GNU GPL3。官网

工具

下面是实用的程序列表,包括了帮助你编写和调试 C 代码的库或者编译器,不包括编辑器。

  • adlint:一个静态分析器。支持完全的 C89 标准和部分 C99 标准。GNU GPL3 或更高版本。官网
  • Artistic Style:一个支持 C 的小而快的自动化代码格式化工具。GNU LGPL3。官网
  • address-sanitizer:一个很快的内存错误探测器。Apache2.0。官网
  • biicode:一个现代的 C 依赖管理器。Expat。官网
  • c:在命令行中编译和执行 C 脚本,也支持 shebang。 Expat。官网
  • c99sh:用 hash-bang 运行 C 文件。FreeBSD。官网
  • CBMC:C Bounded Model Checker;一个检查数组边界,指针安全和用户自定义断言的工具。Original BSD。官网
  • cdecl:一个在线服务,能够把 C 的声明翻译成英文,反向也可以。公共领域。官网
  • cinclude2dot:在 C 项目中使用 Graphviz 的图像包含依赖。任官网 GNU GPL 版本(根据文件中的要求)官网
  • Complexity:一个测量 C 代码复杂性的工具。GNU GPL3 或更高版本。官网
  • DDD:各种命令行调试器的图形前端。GNU GPL3 或更高版本。官网
  • fab:让每次构建都最优的构建系统。GNU GPL3。官网
  • GDB:The GNU Project debugger;一个 C 调试器。GNU GPL3 或更高版本。官网
  • Glade:一个让 TK+ GUIs 开发更快的 RAD 工具。GNU GPL2.1。官网
  • GMSL:GNU Make Standard Library;一个 GNU Make 额外功能的集合。3-clause BSD。官网
  • GNU Global:一个 C 的源码标签工具。GNU GPL3。官网 Global
  • gprof:一个性能分析工具。GNU binutils 的一部分。GNU GPL3 或更高版本。官网
  • Highlight:把源码转化为高亮的格式化文本。GNU GPL3。官网
  • include-what-you-use:帮助程序员发现不必要的包含和提供解决他们的建议。基于 LLVM/Clang(只能与它一起工作)。NCSA。官网
  • indent:自动格式化 C 代码,让它更容易阅读。也能把一种风格的代码转化为另一种。GNU GPL3 或更高版本。官网
  • Make:一个控制程序的可执行和其他非代码文件的生成的工具。GNU GPL3 或更高版本(链接到 GNU 的实现)。官网
  • qo:无需分开的配置文件的构建系统。Expat。官网
  • rr:记录非确定执行来允许可确定调试的调试器。FreeBSD。官网
  • tup:一个很快,基于文件,跨平台的构建系统。GNU GPL2.1。官网
  • unifdef:移除 #ifdef 和 #if 指令包含的文本,不会改变文件的其他部分。3-clause BSD 和 FreeBSD。官网
  • Valgrind:各种动态分析工具,包括一个内存泄漏检测工具。GNU GPL2.1。官网

其他工具

下面是包罗万象的目录,主要是那些不适合放在其他目录的东西。

  • ApeTagLibs:APEv2 标签的 C 库。Expat。官网
  • bfd:处理二进制对象文件的库。GNU binutils 的一部分。GNU GPL3 或更高版本。官网
  • ccv:基于C语言、带缓存机制的现代计算机视觉核心库。 3-clause BSD。官网
  • cf4ocl:The C Framework for OpenCL;一个跨平台面向对象框架,用于开发和用基准问题测试 OpenCL 项目。GNU LGPL3(库), GNU GPL3(其他代码)。官网
  • CommonMark:CommonMark 规范的 C 实现。Variety of licenses, all free。官网
  • CException:异常的 C 实现。Expat。官网
  • docopt.c:命令行选项解析器的 C 实现。Expat。官网
  • dyncall:另一个外部函数接口库。Expat。官网
  • FANN:Fast Artifical Neural Network library;一个神经网络的实现。GNU GPL2.1。官网
  • Firm:一个 C 库,提供了基于图像中间表示,优化和适合编译器的汇编代码生成。配备了 C 的前端例子,使用相同的许可。GNU LGPLv2.1。官网
  • gjrand:随机数字生成的例程库。GNU GPL2.1 或者 GNU GPLv3(用户的选择)。官网
  • GNU FreeIPMI:一个带内和带外的 IPMI 实现。GNU GPL3。官网 FreeIPMI
  • GNU gperf:一个完美的哈希函数生成器,提供一系列的字符串。输出 C 代码。GNU GPL3 或更高版本。官网
  • GNU Libffcall:一个构建外部函数接口库的集合。GNU GPL3 或更高版本。官网
  • gperftools:一系列测量和提高性能的实用工具集合。3-clause BSD。官网
  • hammer:二进制格式的解析器组合。GPL2.1.官网
  • Hans Boehm GC:C 的垃圾收集器?如果我用了不要介意。多种许可证,完全免费。官网
  • huffandpuff:一个极小的哈夫曼编码器和解码器。公共领域。官网
  • iniparser:一个 .ini 文件的解析器。Expat。官网
  • jemalloc:一个 malloc 实现,着重于段错误的避免和可扩展并发支持。FreeBSD。官网
  • jwHash:一个很快的哈希表实现。Apache2.0。官网
  • kdtree:KD-trees 的简单库。3-clause BSD。官网
  • Kitsune:高效,通用的框架,用于软件的动态升级。 GNU LGPL3 或更高版本。官网
  • libavl:一个包括各种自平衡二叉树的库。GNU GPL3 或更高版本。官网
  • libbson:BSON 实用库。Apache2.0。官网
  • libCello:引入高级语言给 C 的库。官网
  • libcox:一个运行跨平台系统调用和跨系统标准工具的库。FreeBSD。官网
  • libffi:轻量级的外部函数接口库。Expat。官网
  • libgit2:Git 的纯 C 实现。GNU GPL2 only, with a linking exception。官网
  • libimobiledevice:一个跨平台协议库,用于与 iThings 通信。GNU LGPLv2.1 或更高版本(库),GNU GPL2.1 或更高版本(工具)。官网
  • libmpv:音乐播放库。编译的时候加入 ./waf configure --disable-cplayer --enable-libmpv-shared 来避免生成音乐播放器。GNU GPL2.1 或更高版本。官网
  • libnfc:一个平台独立的 NFC 库。GNU LGPL3。官网
  • libPhenom:事件框架,用于构建高扩展和高性能系统。Apache2.0。官网、GitHub
  • libsoundio:跨平台,实时音频输入输出的库,有很多种后端。Expat。官网
  • libucl:通用配置库解析器。FreeBSD。官网
  • libudp:一个统一设计模式的 C 实现。GNU GPL3 或更高版本。官网
  • libuv:跨平台异步 I/O。Expat。官网
  • libYAML:一个 YAML 1.1 解析器和发射器。 Expat。官网
  • lzo:一个很快的数据压缩库。GNU GPL2.1。官网
  • mpc:解析器组合库。FreeBSD。官网
  • ncurses:彩色的终端 UI 库。GNU GPL3 或更高版本。官网
  • nope.c:一个基于 C 语言,超级轻量级的软件平台,用于可扩展服务端和网络应用的开发(想想 C 程序员的 nodejs)。官网
  • pbc:一个协议缓冲库。Expat。官网
  • rabbitmq-c:RabbitMQ 的客户端库。Expat。官网
  • Ragel:为编译C的状态机的DSL。GNU GPL2.1。官网
  • uthash:哈希表实现,允许已经存在的数据结构很容易地存在哈希表里面。1-clause BSD。官网
  • Viola:libCello 的简化版本。Expat。官网
  • zlib:一个相当漂亮却精致不张扬的压缩库。3-clause BSD。官网
  • Sundown:一个用C编写的符合标准的、快速的、安全的源码解析器。官网

XML

“XML 是垃圾。真的,没有任何借口。XML 对人类不友好的,甚至对于电脑来说也是一场灾难。根官网 -Linus Torvalds

  • Expat:面向流的 XML 解析器。Expat。官网
  • libxml2:一个符合标准,轻量级的 XML 解析器。Expat。官网
  • mini-xml:小型 XML 读写库。没有 C 标准库的依赖。GNU LGPL2.1 with static linking exception。官网

其他资源

有影响力的书

具有广泛影响且值得阅读的 C 语言经典书籍。

  • 待补充

知名网站/博客

值得关注的 C 语言技术站点和博客。

中文

  • 待补充

英文

阅读全文 »

awesome-selfhosted-cn

发表于 2012-06-21 | 分类于 awesome

awesome-selfhosted-cn

Awesome

介绍

Awesome-Selfhosted 是由 Edward D 发起和维护资源列表,收集了许多可以在本地搭建的网络服务和 Web 应用列表。

Awesome-Selfhosted-cn 则是依据 Awesome-Selfhosted 翻译而来。也欢迎你帮助推荐和提供建议!

Selfhosting is the process of locally hosting and managing applications instead of renting from SaaS providers.

This is a list of Free Software network services and web applications which can be hosted locally. Non-Free software is listed on the Non-Free page.

See Contributing.

=================

  • 分析
  • 自动化
  • 博客平台
  • 书签 & 链接共享
  • 日历和地址薄
  • 通讯系统
    • 定制
    • Email
      • 完整方案
      • 邮件传输代理
      • 邮件发送代理
      • 邮件列表和时讯
      • Webmail 客户端
    • IRC
    • SIP
    • IPBX
    • 社交网络与论坛
    • XMPP
      • XMPP 服务器
      • XMPP Web 客户端
  • 内容管理系统 (CMS)
    • 电子商务
  • DNS
  • 文档归档
  • 企业资源规划 ERP
  • 联合身份/认证
  • Feed 阅读器
  • 文件共享和同步
    • 分布式文件系统
    • 文件传输/同步
    • 点对点文件共享
    • 单击/拖放上传
    • 基于 Web 的文件管理
  • 游戏
  • 网关
  • Groupware 群件
  • 学习和课程
  • 地图 & GPS
  • 媒体流
    • 语音流
    • 视频流
  • 杂项/其它
  • 资金、预算和管理
  • 监测
  • 笔记 & 编辑器
  • 办公套件
  • 密码管理
  • Pastebins
  • 个人仪表盘
  • 图片和视频库
  • 投票与事件
  • 代理
  • 稍后阅读列表
  • 搜索引擎
  • 软件开发
    • 项目管理
    • Bug 跟踪
    • IDE/工具
    • 持续集成
    • 文档生成器
  • 静态网站生成器
  • 任务管理/To-do 列表
  • Ticketing
  • 短 URL
  • VPN
  • Web 服务器
  • Wikis
  • 自托管解决方案
  • 许可列表
  • 外链
  • 贡献
  • 许可

分析

Web Analytics

  • AWStats - Generates web, streaming, ftp or mail server statistics graphically. (Source Code) GPLv3 Perl
  • Countly - Real time mobile & web analytics, crash reporting and push notifications platform. (Source Code) AGPLv3 Javascript
  • Druid - A distributed, column-oriented, real-time analytics data store. (Source Code) Apache Java
  • GoAccess - Real-time web log analyzer and interactive viewer that runs in a terminal. (Source Code) GPLv2 C
  • Open Web Analytics - Google Analytics and Piwik alternative. (Source Code) GPLv2 PHP
  • Piwik - Leading open-source analytics platform that gives you more than just powerful analytics. (Source Code) GPLv3 PHP
  • Serposcope - Serposcope is a free and open-source rank tracker to monitor websites ranking in Google and improve your SEO performances. (Source Code) MIT Java
  • Snowplow - Have every single event, from your websites, mobile apps, desktop applications and server-side systems, stored in your own data warehouse and available to action in real-time. (Source Code) Apache Scala
  • ThinkUp - Insights into your social networking activity on Twitter, Facebook, Instagram, and beyond. (Source Code) GPLv3 PHP

Business Intelligence

  • Metabase - Simple Dashboarding and GUI Query tool, Nightly Emails and Slack Integration w/ PostgreSQL, MySQL, Redshift and other DBs. (Source Code) AGPLv3 Clojure
  • Redash - connect to over 18 types of databases (SQL and “NoSQL”), query your data, visualize it and create dashboards. Everything has a URL that can be shared. Slack and HipChat integration. (Demo, Source Code) BSD Python

自动化

  • Alltube - A web interface for youtube-dl, a program to download videos and audio from more than 100 websites. (Demo, Source Code) GPL PHP
  • AmIUnique - Learn how identifiable you are on the Internet (browser fingerprinting tool). (Source code MIT Java
  • bip.io - Web Automation For People And Robots - Drag, Drop, and Connect The Services You Love. (Source Code) GPLv3 Nodejs
  • CouchPotato - CouchPotato is an automatic Video Library Manager for Movies. Automatic torrent/nzb searching, downloading, and processing at the qualities you want. (Source Code) GPLv3 Python
  • Headphones - An automated music downloader for NZB and Torrent, written in Python. It supports SABnzbd, NZBget, Transmission, µTorrent, Deluge and Blackhole. GPLv3 Python
  • Healthchecks - Django app which listens for pings and sends alerts when pings are late. (Source Code) BSD Python
  • Huginn - Allows you to build agents that monitor and act on your behalf - MIT Ruby
  • Http2pic - Website screenshots/renderer. It uses the wkhtmltox to render websites with various options. (Source Code) Apache 2.0 PHP/Javascript
  • Node RED - A browser-based flow editor that helps you wiring hardware devices, APIs and online services to create IoT solutions. (Source Code) Apache Nodejs
  • openHAB - Vendor and technology agnostic open source software for home automation. (Source Code) EPLv1 Java
  • RSS-Bridge - rss-bridge is a PHP project capable of generating ATOM feeds for websites which don’t have one. Public domain PHP
  • SickRage - SickRage is an automatic Video Library Manager for TV Shows. Automatic torrent/nzb searching, downloading, and processing at the qualities you want. (Source Code) GPLv3 Python
  • Sonarr - An automatic TV Shows downloader and manager for Usenet and BitTorrent. It can grab, sort and rename new episodes and automatically upgrade the quality of files already downloaded when a better quality format becomes available. (Source Code) GPLv3 C#
  • TriggerHappy - An opensource clone of IFTTT, a bridge between your internet services. (Source Code) BSD Python
  • WTFDYUM a.k.a Why The Fuck Did You Unfollow Me - Find out who stops following you on Twitter. (Demo, Source Code) Apache Java
  • Zenbot 3 - Zenbot is a lightweight, extendable, artificially intelligent trading bot for Bitcoin, Ether, Litecoin, and more. (Demo, Source Code) MIT Node.js

博客平台

See also Static Site Generators, Content Management Systems and WeblogMatrix

  • Anchor CMS - Anchor is a free, lightweight, faster-than-a-bullet, simple blogging system, made for art–directed posts. (Source Code) GPLv3 PHP
  • Antville - Antville is a free, open source project aimed at the development of a high performance, feature rich weblog hosting software. (Source Code) Apache Javascript
  • Blogotext - A free blog-engine written in PHP and using SQLite. This offers you both an unmatched simplicity during installation and great performances. (Source Code) MIT PHP
  • Chyrp - An extra-awesome, extra-lightweight blog engine. MIT PHP
  • Dotclear - Take control over your blog! (Source Code) GPLv2 PHP
  • Ghost - Just a blogging platform. (Source Code) MIT Nodejs
  • htmly - Databaseless Blogging Platform (Flat-File Blog). (Demo, Source Code) GPLv2 PHP
  • Known - A single website for all your content. (Source Code) Apache PHP
  • Noddity - It’s a blog, it’s a wiki, it’s a fast CMS! (Source Code) WTFPL Nodejs
  • PluXml - XML-based blog/CMS platform. (Source Code) GPL PHP
  • Postleaf - An open source blogging platform with inline editing, handlebar templates, and a beautiful user interface. (Source Code) GPLv3 PHP
  • Wagtail - A Django content management system focused on flexibility and user experience. (Source Code) BSD Python
  • WordPress - Create a beautiful website or blog. (Source Code) GPLv2 PHP

书签 & 链接共享

  • Bookie - Python based delicious.com replacement. AGPLv3 Python
  • Firefox Auth Server - This project implements the core server-side API for Firefox Accounts. (Source Code) MPLv2 Nodejs
  • Firefox Content Server - Static server that hosts Firefox Account sign up, sign in, email verification, etc. flows. (Source Code) MPLv2 Java
  • Firefox Sync Server - Sync Firefox bookmarks, passwords, history, tabs, preferences. (Source Code) MPLv2 Python
  • Lobsters - Run your own link aggregation site. (Source Code) BSD Ruby
  • No Fuss Bookmarks - Very simple software and service to store bookmarks especially designed for hackers (that don’t need fancy interfaces, but nice API). (Source Code) GPLv3 Python
  • Pinry - The tiling image board system for people who want to save, tag, and share images, videos, and webpages. (Source Code) BSD Python
  • saveto.co - An open source, home for the best links on the web. (Source Code) MIT Nodejs
  • Shaarli - Personal, minimalist, super-fast, no-database bookmarking and link sharing plaform. (Demo) Zlib PHP
  • unmark - An open source to do app for links. (Source Code) MIT PHP

日历和地址薄

Some Groupware solutions also feature calendar/address book editing and synchronization.

  • AgenDAV - Multilanguage CalDAV web client with a rich AJAX interface and shared calendars support. (Source Code) GPLv3 PHP
  • Baïkal - Lightweight CalDAV+CardDAV server. (Source Code) GPLv3 PHP
  • CalendarServer - A standards-compliant server implementing the CalDAV and CardDAV protocols. Apache Python
  • calypso - A python-based CalDAV/CardDAV server. (Source Code) GPLv3 Python
  • DAViCal - A server for calendar sharing (CalDAV). (Source Code) MIT PHP
  • ownCloud calendar - The ownCloud Calendar app enables you to create and edit events, synchronize to other calendars you might use, and create new, personalized calendars. (Source Code) AGPLv3 PHP
  • Radicale - A Simple Calendar and Contact Server. (Source Code) GPLv3 Python
  • sabre/dav - A open source CardDAV, CalDAV and WebDAV server. (Source Code) MIT PHP
  • InfCloud - An open source CalDAV/CardDAV web client implementation. (Demo, Source Code) AGPLv3 Javascript

通讯系统

定制

  • Actor - Actor is a fast, open source messaging platform with rich mobile and web clients. (Demo, Source Code) AGPLv3 Scala
  • Cherry - A tiny webchat server. GPLv2 Go
  • Freenet - Anonymously share files, browse and publish “freesites” (web sites accessible only through Freenet) and chat on forums. (Source Code) GPLv2 Java
  • Friends - P2P chat powered by the web. (Source Code) MIT Nodejs
  • GNUNet - Free software framework for decentralized, peer-to-peer networking. (Source Code) GPLv3 C
  • Jitsi Meet - Jitsi Meet is an OpenSource (MIT) WebRTC Javascript application that uses Jitsi Videobridge to provide high quality, scalable video conferences. (Source Code) MIT Javascript
  • Jitsi Video Bridge - WebRTC compatible Selective Forwarding Unit (SFU) that allows for multiuser video communication. (Source Code) Apache Java
  • Kandan - Kandan is an Open Source Alternative to HipChat. (Source Code) AGPLv3 Ruby
  • Lets-Chat - A self hosted chat suite written in Node. (Source Code) MIT Nodejs
  • Live Helper Chat - Live Support chat for your website. (Source Code) Apache PHP
  • Mattermost - Open-source, on-prem Slack-alternative. It can be integrated with Gitlab. (Source Code) AGPLv3/Apache Go
  • Mibew - Mibew Messenger is an open-source live support application written in PHP and MySQL. It enables one-on-one chat assistance in real-time directly from your website. (Demo, Source Code) Apache PHP
  • Mumble - Low-latency, high quality voice/text chat software. (Source Code) BSD C++
    • Mumblecop - Stream audio from youtube and soundcloud, simulate dice rolls, or write your own commands with a simple plugin format. MIT Ruby
  • Node-Chat - A not-so-basic open-source chat with admin features. MIT Nodejs
  • RetroShare - Secured and decentralized communication system. Offers decentralized chat, forums, messaging, file transfer. (Source Code) GPLv2 С++
  • Rocket.Chat – Teamchat solution similar to Gitter.im or Slack. (Source Code) MIT Nodejs
  • Synapse - A server for Matrix, an open standard for decentralized persistent communication. (Source Code) Apache Python
    • Matrix Console Web - A web client meant to be a showcase of Matrix capabilities, and reference implementation of the Matrix standard. (Source Code) Apache Javascript
    • Vector - A glossy Matrix web client with an emphasis on performance and usability. (Source Code) Apache Javascript
  • Syndie - Syndie is a libre system for operating distributed forums. CC0 Java
  • TextBelt ⚠ - An outgoing SMS API that uses carrier-specific gateways to deliver your text messages for free, and without ads. MIT Javascript
  • Tox - A distributed, secure messenger with audio and video chat capabilities. (Source Code) GPLv3 C
  • Tuber - Peer-to-peer video chat that works. (Source Code) MIT Javascript
  • Zulip - Zulip is a powerful, open source group chat application. (Source Code) Apache/Other Python

Email

完整方案

simple deployment of a mail server, e.g. for inexperienced or impatient admins.

  • Citadel - Feature packed, easy, versatile, and powerful mail server, thanks to exclusive “rooms” based architecture. (Source Code) GPLv3 C
  • iRedMail - Full-featured mail server solution based on Postfix and Dovecot. (Source Code) GPLv3 Shell
  • Mailcow - Mail server suite based on Dovecot, Postfix and other open source software, that provides a modern Web UI for administration. (Source Code) GPLv2 PHP
  • Mail-in-a-Box - Turns any Ubuntu server into a fully functional mail server with one command. (Source Code) CC0 Shell
  • Modoboa - Modoboa is a mail hosting and management platform including a modern and simplified Web User Interface. (Source Code) MIT Python

邮件传输代理

MTAs / SMTP servers

  • Courier MTA - Fast, scalable, enterprise mail/groupware server providing ESMTP, IMAP, POP3, webmail, mailing list, basic web-based calendaring and scheduling services. (Source Code) GPLv3 C
  • Exim - Message transfer agent (MTA) developed at the University of Cambridge. (Source Code) GPLv3 C
  • Haraka - A high-performance, pluginable SMTP server written in Javascript. (Source Code) MIT Javascript
  • MailCatcher - Ruby gem that deploys a simply SMTP MTA gateway that accepts all mail and displays in web interface. Useful for debugging or development. (Source Code) MIT Ruby
  • Maildrop - Disposable email SMTP server, also useful for development. MIT Scala
  • MailHog - Small Golang executable which runs an SMTP MTA gateway that accepts all mail and displays in web interface. Useful for debugging or development. MIT Go
  • OpenSMTPD - Secure SMTP server implementation from the OpenBSD project. (Source Code) ISC C
  • Postfix - Fast, easy to administer, and secure Sendmail replacement. IPL C
  • Qmail - Secure Sendmail replacement. (Source Code) CC0 C
  • Sendmail - Message transfer agent (MTA). SENDMAIL C
  • Slimta - Mail Transfer Library built on Python. (Source Code) MIT Python

邮件发送代理

MDAs - IMAP/POP3 software

  • Cyrus IMAP/POP3 - Intended to be run on sealed servers, where normal users are not permitted to log in. (Source Code) BSD C
  • Dovecot - IMAP and POP3 server written primarily with security in mind. (Source Code) MIT/LGPLv2 C
  • Piler - feature rich open source email archiving solution. (Source Code) GPLv3 C

邮件列表和时讯

Mailing lists servers and mass mailing software - one message to many recipients.

  • Dada Mail - A web-based list management system that can be used for announcement lists and/or discussion lists. (Source Code) GPLv2 Perl
  • Mailman - The Gnu mailing list server. GPL Python
  • Mailtrain - self hosted newsletter application built on Node.js (v5+) and MySQL (v5.5+ or MariaDB). (Source Code) GPLv3 Nodejs
  • Mautic - Mautic is marketing automation software (email, social & more). (Source Code) GPLv3 PHP
  • phpList - Newsletter and email marketing with advanced management of subscribers, bounces, and plugins. (Source Code) AGPLv3 PHP
  • Sympa - A mailing list manager. GPLv2 Perl

Webmail 客户端

  • Cypht - A feed reader for your email accounts. (Source Code) GPLv2 PHP
  • Mailpile - Webmail client with search, filtering, encryption features and more. (Source Code) AGPLv3 Python
  • RainLoop - Simple, modern & fast webmail with IMAP/SMTP Support and multi accounting. (Demo, Source Code). AGPLv3 PHP
  • Roundcube - Browser-based IMAP client with an application-like user interface. (Screenshots) (Source Code) GPLv3 PHP
  • SquirrelMail - Another browser-based IMAP client. (Source Code) GPLv2 PHP
  • WebMail Lite - Web-based IMAP Mail client. (Source Code) GPLv3 PHP

IRC

IRC communication software

  • Convos - Always online web IRC client. (Demo, Source Code) ARTv2 Perl
  • IRCAnywhere - Open-source self-hosted alternative to IRCCloud. (Source Code) GPLv2 Nodejs
  • Quassel IRC - distributed IRC client, meaning that one (or multiple) client(s) can attach to and detach from a central core. (Source Code) GPLv2 C++
  • Robust IRC - RobustIRC is IRC without netsplits. Distributed IRC server, based on RobustSession protocol. (Source Code) BSD Go
  • The Lounge - The self-hosted web IRC client. (Demo, Source Code) MIT Nodejs
  • Weechat - A fast, light and extensible chat client. GPLv3 C
  • ZNC - An advanced IRC bouncer. (Source Code) Apache C++

SIP

SIP telephony software

  • Asterisk - An easy to use but advanced IP PBX system, VoIP gateway and conference server. GPLv2 C
  • FreeSWITCH - Scalable open source cross-platform telephony platform. (Source Code) MPLv2 C
  • Kamailio - Modular SIP server (registrar/proxy/router/etc) (Source Code) GPLv2 C
  • Ostel - Secure SIP telephony setup with ZRTP encryption. GPLv3 Ruby

IPBX

IPBX telephony software

  • Elastix - Unified communications server software based on Asterisk. (Source Code) GPLv2 PHP
  • Freepbx - Web-based open source GUI that controls and manages Asterisk. (Source Code) GPLv2 PHP
  • XiVO - Unified communications server software based on Asterisk. (Source Code) GPLv3 Python

社交网络与论坛

  • Abilian SBE - Open Source Collaboration and Social Networking framework & platform. LGPLv2 Python
  • Anahita - Open Source Social Networking Framework & Platform. (Source Code) GPLv3 PHP
  • Bootcamp - An enterprise social network. (Source Code) MIT Python
  • Buddycloud - Tools, libraries, services and a community to build user-to-user, group and social messaging into your app. Saves time. Scales up. Supports you. (Source Code) Apache Java
  • BuddyPress - A powerful plugin that takes your WordPress.org powered site beyond the blog with social-network features like user profiles, activity streams, user groups, and more. (Source Code) GPLv2 PHP
  • diaspora* - Distributed social networking server. (Demo, Source Code) AGPLv3 Ruby
  • Discourse - Advanced forum / community solution based on Ruby and JS. (Source Code) GPLv2 Ruby
  • Elgg - A powerful open source social networking engine. (Source Code) GPLv2 PHP
  • Flarum - Delightfully simple forums. Flarum is the next-generation forum software that makes online discussion fun again. (Source Code) MIT PHP
  • flaskbb - FlaskBB is forum software written in Python using the microframework Flask. You can easily create new topics, posts and send other users private messages. It also includes basic administration and moderation tools. (Source Code) BSD Python
  • FluxBB - Fast, light, user-friendly forum software for your website. (Source Code) GPLv2 PHP
  • Friendica - Social Communication Server. (Source Code) AGPLv3 PHP
  • GNU social - Social communication software for both public and private communications. (Source Code) AGPLv3 PHP
  • Hubzilla - Independent general-purpose websites that not only connect with their associated members and viewers, but also connect together. MIT PHP
  • HumHub - A flexible kit for private social networks. (Source Code) AGPLv3 PHP
  • Isso - A lightweight commenting server written in Python and Javascript. It aims to be a drop-in replacement for Disqus. (Source Code) MIT Python
  • Jappix - Jappix is an open social platform, that let’s you easily get or keep in touch with everyone. (Source Code) AGPLv3 PHP
  • Loomio - Loomio is a collaborative decision-making tool that makes it easy for anyone to participate in decisions which affect them. (Source Code) AGPLv3 Ruby
  • Movim - A brand new social network, full of awesome features in a modern and smart interface. (Source Code) AGPLv3 PHP
  • MyBB - Free, extensible forum software package. (Source Code) LGPLv3 PHP
  • Newebe - A Distributed Social Network. (Source Code) AGPLv3 Python
  • NodeBB - Node.js based forum software built for the modern web. (Source Code) GPLv3 Nodejs
  • OSSN - Open Source Social Network (OSSN) is a social networking software written in PHP. It allows you to make a social networking website and helps your members build social relationships, with people who share similar professional or personal interests. (Source Code) GPLv2 PHP
  • Oxwall Oxwall is used for a wide range of projects starting from family sites and custom social networks to collaboration tools and enterprise community solutions. (Source Code CPALv1 PHP
  • phpBB - Flat-forum bulletin board software solution that can be used to stay in touch with a group of people or can power your entire website. (Source Code) GPLv2 PHP
  • PPnet Create and host your own social network. MIT Javascript
  • Pump.io - Stream server that does most of what people really want from a social network. (Source Code) Apache Nodejs
  • Reddit - Social networking and news website where registered community members can submit content. (Demo, Source Code) CPALv1 Python
  • RedMatrix - Complete decentralised publishing, sharing, and communications system. MIT PHP
  • twister - Fully decentralized P2P microblogging platform leveraging the free software implementations of Bitcoin and BitTorrent protocols. (Source Code) BSD/MIT C++
  • Vanilla Forums - Simple and flexible forum software. (Source Code) GPLv2 PHP

XMPP

Extensible Messaging and Presence Protocol software

XMPP 服务器

  • ejabberd - XMPP instant messaging server. (Source Code) GPL Erlang
  • Kontalk – Kontalk is an Open Source Messenger, similar to WhatsApp (app for android only currently), including end-to-end encryption, server is based on Tigase XMPP Server. (Source Code) GPLv3 Java
  • Metronome IM - Fork of Prosody IM. (Source Code) MIT Lua
  • MongooseIM - Fork of ejabberd. (Source Code) MIT Erlang
  • Openfire - Real time collaboration (RTC) server. (Source Code) Apache Java
  • Prosody IM - Feature-rich and easy to configure XMPP server. (Source Code) MIT Lua
  • Tigase - XMPP server implementation in Java. GPLv3 Java

XMPP Web 客户端

  • Candy - Multi user XMPP client written in Javascript. (Source Code) MIT Javascript
  • Converse.js - A free and open-source XMPP chat client in your browser. (Source Code) MPLv2 Javascript
  • Kaiwa - Web based chat client in the style of common paid alternatives. (Source Code) MIT NodeJS
  • Salut à Toi - Multipurpose, multi frontend, libre and decentralised communication tool. (Source Code) AGPLv3 Python
    • Libervia - Web frontend from Salut à Toi. (Source Code) AGPLv3 Python

内容管理系统 (CMS)

CMS are a practical way to setup a website with many features. CMS often come with third party plugins, themes and functionality that is easy to add and customize to your needs. See also Blogging Platforms and Static Site Generators

  • 99ko CMS - 99ko allows you to create a website in minutes without knowledge of Web development. It does not use a database server but relies on simple text files (JSON format) to store your data. (Source Code)
  • Apostrophe 2 - A node.js CMS with a focus on extensible in-context editing tools. (Demo, Source Code) MIT NodeJS
  • Baun - A modern, lightweight, extensible CMS for PHP. (Source Code) MIT PHP
  • BigTree CMS - Straightforward, well documented, and capable written with PHP and MySQL. (Source Code) LGPLv2 PHP
  • CMS Made Simple - Open source content management system, faster and easier management of website contents, scalable for small businesses to large corporations. (Source Code) GPL PHP
  • Concrete 5 CMS - An open source content management system. (Source Code) MIT PHP
  • CouchCMS - Simple Open-Source CMS for designers. (Source Code) CPALv1 PHP
  • Directus - Directus is a powerful and intuitive headless CMS for managing SQL databases with custom architectures. Built around a robust and extensible API, this decoupled content management framework is perfect for websites, apps, or multi-client projects. (Source Code) GPL PHP
  • Drupal - Advanced open source content management platform. (Source Code) GPL PHP
  • eLabFTW - An online lab notebook for research labs. Store experiments, use a database to find reagents or protocols, use trusted timestamping to legally timestamp an experiment, export as pdf or zip archive, share with collaborators…. (Source Code, Demo) AGPLv3 PHP
  • GetSimple CMS - The Simplest Content Management System. Ever. GPLv3
  • ImpressPages CMS - Easy code meets easy admin. (Demo, Source Code) GPLv3/MIT PHP
  • Joomla! - Advanced Content Management System (CMS). (Source Code) GPL PHP
  • KeystoneJS - Node.js CMS & Web Application Platform. (Demo, Source Code) MIT NodeJS
  • MODX - MODX is an advanced content management and publishing platform. The current version is called ‘Revolution’. (Source Code) GPLv2 PHP
  • Neos - Neos or TYPO3 Neos (for version 1) is a modern, open source CMS based on the Flow framework. (Source Code) GPLv3 PHP
  • october - Free, open-source, self-hosted CMS platform based on the Laravel PHP Framework. (Source Code) MIT PHP
  • Omeka - Create complex narratives and share rich collections, adhering to Dublin Core standards with Omeka on your server, designed for scholars, museums, libraries, archives, and enthusiasts. (Demo, Source Code) GPLv3 PHP
  • Pagekit - A new modern CMS to create and share. (Source Code) MIT PHP
  • Pico - A stupidly simple, blazing fast, flat file CMS. (Source Code) MIT PHP
  • Pimcore - Multi-Channel Experience and Engagement Management Platform. (Source Code) BSD PHP
  • Plone - Powerful open-source CMS system. (Source Code) Zope Python
  • Publify - A simple but full featured web publishing software. (Demo, Source Code) MIT Ruby
  • Redaxscript - Ultra lightweight CMS for MySQL, SQLite and PostgreSQL. (Demo, Source Code) GPLv3 PHP
  • Roadiz - Modern CMS based on a node system which can handle many types of services. (Source Code) MIT PHP
  • SilverStripe - Easy to use CMS with powerful MVC framework underlying. (Demo, Source Code) BSD PHP
  • Sphido - A fast, lightweight, flat file CMS for PHP. (Source Code) MIT PHP
  • SPIP - Publication system for the Internet aimed at collaborative work, multilingual environments, and simplicity of use for web authors. (Source Code) GPLv2 PHP
  • Subrion - Subrion is a free open source content management system that allows you to build websites for any purpose. Yes, from blog to corporate mega portal. (Demo, Source Code) GPLv3 PHP
  • Textpattern - A flexible, elegant and easy-to-use CMS. (Demo, Source Code) GPLv2 PHP
  • TYPO3 - A powerful and advanced CMS with a large community. (Source Code) GPLv2 PHP
  • Umbraco - The friendly CMS. Free and open source with an amazing community. (Source code) MIT .NET
  • WordPress - The worlds most-used blogging and CMS engine. (Source code mirror) GPLv2 PHP

Recipe management

  • OpenEats - A recipe management site that allows users to create, store, share and rate recipes, create grocery lists, and more. (Source Code) BSD Python/Django

电子商务

  • Attendize - Ticket selling and event management platform. (Demo, Source Code) AAL PHP
  • CoreShop - CoreShop is a e-commerce plugin for Pimcore. (Source Code) GPLv3 PHP
  • Magento - Leading provider of open omnichannel innovation. (Demo, Source Code) OSLv3 PHP
  • Microweber - Drag and Drop CMS and online shop. (Demo, Source Code) Apache PHP
  • OpenCart - Free open source shopping cart solution. (Source Code) GPLv3 PHP
  • Open Classifieds - Free open-source, self-hosted CMS for classifieds sites. (Source Code) GPL PHP
  • Open eShop - Sell your digital goods with licenses and provide support. (Source Code) GPL PHP
  • OXID eShop - OXID eShop is a flexible open source e-commerce software with a wide range of functionalities. (Demo, Source Code) GPLv3 PHP
  • PrestaShop - PrestaShop offers a free, open-source and fully scalable e-commerce solution. (Demo, Source Code) OSLv3 PHP
  • Shoop - Django powered fully customizable open source e-commerce framework for small and large sites. (B2C demo, B2B demo, Source Code) AGPLv3 Python
  • Sylius - Symfony2 powered open source full-stack platform for eCommerce. (Demo, Source Code) MIT PHP
  • Thelia - Thelia is an open source and flexible e-commerce solution. (Demo, Source Code) LGPL PHP
  • WooCommerce - WordPress based e-commerce solution. (Source Code) GPL PHP

DNS

See https://github.com/n1trux/awesome-sysadmin#dns

文档归档

  • CUPS - The Common Unix Print System uses Internet Printing Protocol (IPP) to support printing to local and network printers. (Source Code) GPLv2 C
  • Paperless - Scan, index, and archive all of your paper documents. GPLv3 Python
  • SANE Network Scanning - allow remote clients to access image acquisition devices (scanners) available on the local host. (Source Code) GPLv2 C

企业资源规划 ERP

  • ERPNext - Free open source ERP system. (Demo, Source Code) GPLv3 Python
  • Odoo - Free open source ERP system. (Demo, Source Code) LGPLv3 Python
  • Tryton - Free open source business solution. (Demo, Source Code) GPLv3 Python/Javascript

联合身份/认证

  • FreeRADIUS - High performance and highly configurable multi-protocol policy/authentication server, supporting RADIUS, DHCPv4 and VMPS. (Source Code) GPLv2 C
  • daloRADIUS - Open-source web management platform for FreeRADIUS-based deployments. (Source Code) GPLv2
  • FreeIPA - an integrated Identity and Authentication solution for Linux/UNIX networked environments. A FreeIPA server provides centralized authentication, authorization and account information by storing data about user, groups, hosts. Multiple C
  • IndieAuth - Sign in with your domain name (using the rel-me-auth protocol). Apache Ruby
  • Libravatar - Libravatar is a service which delivers your avatar (profile picture) to other websites. (Demo, Source Code) AGPLv3 Python
  • OpenCA OCSPD - An OCSP Responder.
  • OpenID/OpenID Connect - A Simple Identity layer on top of OAuth 2.0.
  • OSIAM - Open Source Identity and Access Management implementing OAuth 2.0 and SCIMv2. (Source Code) MIT Java

Feed 阅读器

  • CommaFeed - Google Reader inspired self-hosted RSS reader. (Source Code) Java
  • Creaky Coot - Minimalist and responsive RSS reader and links saver PHP
  • Feedbin - A simple, fast and nice looking RSS reader. (Source Code) Ruby
  • FeedHQ - FeedHQ is a web-based feed reader. (Source Code) Python
  • FreshRSS - A self-hostable RSS feed aggregator. (Demo, Source Code, Mobile app) AGPLv3 PHP
  • JARR - JARR (Just Another RSS Reader) is a web-based news aggregator and reader. (Demo, Source Code) AGPLv3 Python
  • Kriss Feed - A simple and smart (or stupid) feed reader. (Demo, Source Code) PHP
  • Leed - Leed (for Light Feed) is a Free and minimalist RSS aggregator. (Source Code) PHP
  • Leselys - Your very elegant RSS reader Python
  • Lite-Reader - Read your feeds on your own machine with a simple and lite application. (Source Code) PHP
  • Moonmoon - simple feed agregator (planet like): it only aggregates feeds and spits them out in one single page. (Source Code) BSD PHP
  • Miniflux - Miniflux is a minimalist and open source news reader. (Source Code) PHP
  • NewsBlur - NewsBlur is a personal news reader that brings people together to talk about the world. A new sound of an old instrument Python
  • Nunux Reader - A simple, fast and reactive RSS reader. (Source Code) GPLv3 Nodejs
  • Reader-Self Self-hosted rss reader (php / mysql or sqlite) - Google Reader alternative. (Source Code) PHP
  • Readr - A clean & simple, self-hosted RSS reader PHP
  • RSS2EMail - Fetches RSS/Atom-feeds and pushes new Content to any email-reciever, supports OPML GPL Python
  • RSSminer -An online rss reader written in clojure & Javascript & java. (Source Code) Clojure
  • RSS Monster - RSS Monster is an easy to use web-based RSS aggregator and reader compatible with the Fever API, created as an alternative for Google Reader. MIT PHP
  • Screaming Liquid Tiger - Simple script to automatically generate valid RSS and Atom feeds from a list of media files in the same folder. MIT PHP
  • Selfoss - The new multipurpose rss reader, live stream, mashup, aggregation web application. (Source Code) AGPLv3 PHP
  • Stringer - A work-in-progress self-hosted, anti-social RSS reader. MIT Ruby
  • Tiny Tiny RSS - Open source web-based news feed (RSS/Atom) reader and aggregator. (Public instance) GPLv3 PHP
    • gritttt-rss - More features for Tiny Tiny RSS. (Source Code) BSD Python
    • ttrss-mobile - A mobile webapp for Tiny Tiny RSS. AGPLv3 Nodejs
    • ttrss-reader - Light and responsive client for TTRSS. GPLv2 Javascript

文件共享和同步

Some Groupware solutions also feature file sharing and synchronization.

分布式文件系统

  • Camlistore - Camlistore is a set of open source formats, protocols, and software for modeling, storing, searching, sharing and synchronizing data in the post-PC era. Data may be files or objects, tweets or 5TB videos, and you can access it via a phone, browser or FUSE filesystem. (Source Code) Apache Go
  • GlusterFS - GlusterFS is a scalable network filesystem. Using common off-the-shelf hardware, you can create large, distributed storage solutions for media streaming, data analysis, and other data- and bandwidth-intensive tasks. (Source Code) LGPLv3/GPLv2 C
  • Go IPFS - Implementation of IPFS, a global, versioned, peer-to-peer filesystem that seeks to connect all computing devices with the same system of files. It combines good ideas from Git, BitTorrent, Kademlia, SFS, and the Web. It is like a single bittorrent swarm, exchanging git objects.
  • Ori Filesystem - A Secure Distributed File System built for offline operation. (Source Code) MIT C++
  • Swift - A highly available, distributed, eventually consistent object/blob store.
  • Tahoe-LAFS - Tahoe-LAFS is a Free and Open decentralized cloud storage system. It distributes your data across multiple servers. Even if some of the servers fail or are taken over by an attacker, the entire file store continues to function correctly, preserving your privacy and security.

文件传输/同步

  • Git Annex - File synchronization between computers, servers, external drives
  • Kinto - Kinto is a minimalist JSON storage service with synchronisation and sharing abilities. (Source Code) Apache 2.0 Python
  • Nextcloud - Access & share your files, calendars, contacts, mail & more from any device, on your terms. (Source Code) MIT PHP
  • OpenSSH/SFTP - Secure File Transfer Program. (Source Code) BSD C
  • Samba - Samba is the standard Windows interoperability suite of programs for Linux and Unix. It provides secure, stable and fast file and print services for all clients using the SMB/CIFS protocol. (Source Code) GPLv3 C
  • Seafile - File hosting and sharing solution primary for teams and organizations. (Demo) GPLv2
  • SparkleShare - Self hosted, instant, secure file sync
  • Syncany - Secure file sync software for arbitrary storage backends - An open-source cloud storage and filesharing application. Securely synchronize your files to any kind of storage! GPLv3 Java
  • Syncthing - Syncthing is an open source peer-to-peer file synchronisation tool. (Source Code) MPLv2 Go
  • Z-Push - An implementation of Microsoft’s ActiveSync protocol
  • ownCloud - All-in-one solution for saving, synchronizing, viewing, editing and sharing files, calendars, address books and more - AGPLv3 PHP
  • Pydio - Turn any web server into a powerful file management system and an alternative to mainstream cloud storage providers.
  • Unison - Unison is a file-synchronization tool for OSX, Unix, and Windows. GPLv3 OCaml

点对点文件共享

  • FilePizza - Peer-to-peer file transfers in your browser. (Source Code) BSD Nodejs
  • FileTea - Anonymous, volatile file sharing: does not store any file on server. Bridges a download to the recipient’s browser with an upload from the source’s browser. (Source Code AGPLv3 C
  • instant.io - Streaming file transfer over WebTorrent. (Demo) MIT Nodejs
  • Opentracker - Open and free bittorrent tracker. It aims for minimal resource usage and is intended to run at your wlan router. (Source Code Public domain C
  • ShareFest - Web based p2p file sharing built on WebRTC Data Channels API. (Demo) Apache 2.0 Nodejs

单击/拖放上传

  • BoZoN - Minimalist Drag & drop file sharing app. AGPLv3 PHP
  • Coquelicot - Coquelicot is a “one-click” file sharing web application with a focus on protecting users’ privacy. - AGPLv3
  • Dropcenter - Upload files by simple drag-n-drop.
  • droppy - droppy is a self-hosted cloud server with an interface similar to desktop file managers and has capabilites to edit files on-the-fly as well as view and playback media directly in the browser. (Demo) BSD Nodejs
  • img.bi - img.bi is a secure image hosting. Images are encrypted using AES-256 with random key in browser before upload. GPLv3 Nodejs
  • ipfs.pics - ipfs.pics is a o distributed image hosting website. (Source Code) AGPLv3 PHP
  • Jirafeau - Jirafeau is a web site permitting to upload a file in a simple way and give an unique link to it. (Demo)
  • Jyraphe - Jyraphe is a web application of file repository, easy to install and easy to use.
  • linx - File sharing application and pastebin with API, auto-expiry, deletion keys, and web seed support. (Demo) GPLv3 Go
  • lufi - Let’s Upload that FIle, client-side encrypted. (Demo, Source Code) AGPLv3 Perl
  • lutim - Let’s Upload That Image !
  • Mediacrush - A website you can upload images, audio, and video to, and receive a link to share it with your friends. (Source Code)
  • Minio - Store photos, videos, VMs, containers, log files, or any blob of data as objects. (Source Code) Apache Go
  • Nimbus - A drag-and-drop shortlink file sharer for OS X - MIT Python
  • OnionShare - Securely and anonymously share a file of any size.
  • PictShare - PictShare is a multi lingual, open source image hosting service with a simple resizing and upload API. (Demo, Source Code) Apache PHP/Javascript
  • Pomf - Simple file uploading and sharing, source for the now shut down site Pomf.se. MIT PHP/Nodejs
  • ProjectSend - Upload files and assign them to specific clients you create. Give access to those files to your clients. (Source Code) GPLv2 PHP
  • transfer.sh - Easy file sharing from the command line. (Demo, Source Code) MIT Go
  • Uguu - Stores files and deletes after X amount of time. (Source Code) MIT PHP
  • Up1 - A Client-side Encrypted Image Host. (Demo) MIT Nodejs
  • uPste - A private file hosting application with an emphasis on serving technology communities. (Source Code) AGPLv3 PHP
  • YouTransfer - YouTransfer is a simple but elegant self-hosted file transfer & sharing solution. (Demo, Source Code) Apache Nodejs

基于 Web 的文件管理

  • Apaxy - Theme built to enhance the experience of browsing web directories, using the mod_autoindex Apache module and some CSS to override the default style of a directory listing. (Source Code Public domain CSS
  • DirectoryLister - A simple PHP based directory lister that lists a directory and all it’s sub-directories and allows you to navigate there within. (Source code) MIT PHP
  • Encode Explorer - Encode Explorer is a single page file browser, it is simple and functional. (Demo, Source Code) MIT PHP
  • eXtplorer - A PHP and Javascript based File Manager
  • explorer - Highly-configurable directory listing made with nodejs. (Source Code)MIT Nodejs
  • goBrowser Simple http file browser. (Source Code) GPLv3 Go
  • h5ai - Modern file indexer for HTTP web servers with focus on your files. Directories are displayed in a appealing way and browsing them is enhanced by different views, a breadcrumb and a tree overview. (Demo, Source Code) MIT PHP/Javascript
  • Monsta FTP - Open source PHP/Ajax cloudware that puts FTP file management right in your browser, anywhere, any time. (Demo, Source Code) GPLv3 PHP
  • ResourceSpace - ResourceSpace open source digital asset management software is the simple, fast, & free way to organise your digital assets. (Demo, Source Code) BSD/Other PHP
  • Sprut.io - 2 panel file manager with drag and drop features, code editor, text search, hotkeys. (Demo, Source Code) GPLv3 Python

游戏

  • 0hh1 - A lovely little logic game by Q42. (Demo) MIT HTML5
  • A Dark Room - A minimalist text adventure game for your browser. (Demo) MPLv2 HTML5
  • Agar.IO Clone - Agar.io clone written with Socket.IO and HTML5 canvas. MIT Nodejs
  • Clumsy Bird - A MelonJS port of the famous Flappy Bird Game. (Demo) MIT Nodejs
  • Cubiks-2048 - Clone of 2048 game in 3D. (Demo) CCBYNCv4 HTML5
  • Hextris - Fast paced HTML5 puzzle game inspired by Tetris. (Demo) GPLv3 HTML5
  • Posio - A geography multiplayer game. (Demo) MIT Python
  • TournamentMango - TournamentMango is an open source tournament bracket and user management system. You can build an archive of players and keep track of all their scores over time as well as their regular characters, games, and aliases. (Source Code) MIT Javascript

网关

  • GateOne - Gate One is an HTML5 web-based terminal emulator and SSH client. - AGPLv3
  • Guacamole - Guacamole is a clientless remote desktop gateway. It supports standard protocols like VNC and RDP. (Source Code) MIT Java/C

Groupware 群件

  • Citadel - Groupware including email, calendar/scheduling, address books, forums, mailing lists, IM, wiki and blog engines, RSS aggregation and more. (Source Code) GPLv3 C
  • Cozy Cloud - A personal cloud where you can read your emails or manage and sync your contact, files or calendars, with an app store full of community contributions. (Source Code) GPLv3 Nodejs
  • egroupware - Software suite including calendars, address books, notepad, project management tools, client relationship management tools (CRM), knowledge management tools, a wiki and a CMS. (Source Code) GPLv2 PHP
  • Horde - The Horde Project is about creating high quality Open Source applications and libraries, based on PHP and the Horde Framework. (Demo, Source Code) GPLv2
  • Kolab - Kolab community is a unified communication and collaboration system. (Source Code) Multiple C++/Python/PHP
  • Kopano - Groupware suite including e-mail, calendars, tasks, todos and notes. Featuring a modern WebApp, DeskApp and mobile access over Z-Push/ActiveSync. (Demo, Source Code) AGPLv3 C/Python/PHP
  • Mayan EDMS - Free Open Source Electronic Document Management System. An electronic vault for your documents with preview generation, OCR, and automatic categorization among other features. (Demo, Source Code) Apache Python/Django
  • Openmeetings. (Source Code) - Openmeetings provides video conferencing, instant messaging, white board, collaborative document editing and other groupware tools using API functions of the Red5 Streaming Server for Remoting and Streaming. Apache 2.0 Java
  • Sogo - SOGo offers multiple ways to access the calendaring and messaging data. CalDAV, CardDAV, GroupDAV, as well as ActiveSync, including native Outlook compatibility and web interface. (Demo, Source Code) GPLv1/LGPLv2 Objective-C
  • Tine 2.0 - Contacts, Calendar, Tasks, WebDAV, ActiveSync, VOIP, Mail-Client, CRM, Sales, Projects, Timetracker. (Demo, Source Code) AGPLv3/Other PHP
  • Zimbra Collaboration - Email, calendar, collaboration server with web interface and lots of integrations. (Source Code) GPLv2/CPALv1 Java

学习和课程

  • Chamilo LMS - Chamilo LMS allows you to create a virtual campus for the provision of online or semi-online training. (Source Code) GPLv3 PHP
  • edX - The Open edX platform is open-source code that powers edX.org. (Source Code) AGPLv3 Python
  • lxHive - Open Source ExperienceAPI compliant Learning Record Store (LRS) - previously code-named TinCanAPI. Source Code GPLv3 PHP
  • Mahara - Open Source fully featured web application to build students electronic portfolio. Source Code GPLv3 PHP
  • Moodle - Moodle is a learning and courses platform with one of the largest open source communities worldwide. (Demo, Source Code) GPL PHP
  • RELATE - RELATE is a web-based courseware package, includes features such as: flexible rules, statistics, multi-course support, class calender. (Source Code) MIT Python
  • Sakai - The Sakai project provides a flexible and feature-rich environment for teaching, learning, research and other collaboration. (Demo, Source Code) ECLv2 Java
  • SchoolTool - SchoolTool is free administrative software for schools. It includes demographics, gradebook, attendance, calendaring, reporting and more for primary and secondary schools. (Source Code) GPLv2 Python

地图 & GPS

  • Graphhopper - Fast routing library and server using OpenStreetMap. (Source Code)
  • MapBBCodeShare - Tool for sharing custom OSM maps. Support for annotated markers, polygons, lines, multi-format import/export, multiple layers, shortlinks… (Demo) WTFPL/Other PHP/Javascript
  • OpenGTS - Entry-level fleet tracking system. Supports variety of tracking devices and protocols. Comes with rich web-interface and reporting features. (Demo, Source Code) Apache Java
  • Openstreetmap - OpenStreetMap is a map of the world, created by people like you and free to use under an open license. (Source Code)
  • Traccar - Java application to track GPS positions. Supports loads of tracking devices and protocols, has an Android and iOS App. Has a web interface to view your trips. (Demo, Source Code) Apache
  • uMap - Create maps with OpenStreetMap layers in a minute and embed them in your site. (Source Code) WTFPL Python/Django

媒体流

See also https://en.wikipedia.org/wiki/List_of_streaming_media_systems, https://en.wikipedia.org/wiki/Comparison_of_streaming_media_systems

语音流

  • Airtime - Simple, open source platform that lets you broadcast streaming radio on the web. Source Code AGPLv3 PHP
  • Ampache - A web based audio/video streaming application. (Demo, Source Code) AGPLv3 PHP
  • CherryMusic - Minimalistic Web-Mediaplayer. (Source Code) GPLv3 Python
  • cloudtunes - Web-based music player for the cloud. MIT Python/Javascript
  • GNU FM - Running music community websites, alternative to last.fm. (Source Code) AGPLv3 PHP
  • Groove Basin - A music player server with a web-based user interface inspired by Amarok 1.4 (Source Code) MIT Nodejs
  • Icecast 2 - streaming audio/video server which can be used to create an Internet radio station or a privately running jukebox and many things in between. (Source Code) GPLv2 C
  • koel - A personal music streaming server that works. (Source Code) MIT PHP
  • Libresonic - Open-source web-based media streamer and jukebox. A fork of Subsonic’s last open-source release, before it switched licenses. GPLv3 Java
  • Mopidy - Extensible music server. Offers a superset of the mpd API, as well as integration with 3rd party services like Spotify, SoundCloud etc. (Source Code) Apache Python
  • Moped - Responisve HTML5 + Javascript client for the Mopidy music server MIT Javascript
  • Mopidy MusicBox - Web Client for Mopidy Music Server Apache Javascript
  • Mopidy-Party - Mopidy web extension designed for party! Let your guests manage the sound.) Apache Python/Javascript
  • mpd - Daemon to remotely play music, stream music, handle and organize playlists. Many clients available. GPLv2 C++
  • ympd - Standalone MPD Web GUI written in C, utilizing Websockets and Bootstrap/JS (Source Code) GPLv2 C
  • Sonerezh - A self-hosted, web-based application for stream your music, everywhere. (Demo, Documentation, Source Code) GPLv3 PHP

视频流

  • CyTube - CyTube is a web application providing media synchronization, chat, and more for an arbitrary number of channels. (Demo) MIT Nodejs
  • Emby - A home media server built using other popular open source technologies. - GPLv2
  • Flumotion - A streaming media server with intuitive graphical administration tools. (Source Code) LGPLv2 Python
  • HTPC Manager - A fully responsive interface to manage all your favorite media on your HTPC. - MIT
  • Icecast 2 - streaming audio/video server which can be used to create an Internet radio station or a privately running jukebox and many things in between. (Source Code) GPLv2 C
  • ReadyMedia - A simple media server software, with the aim of being fully compliant with DLNA/UPnP-AV clients. GPLv2 C
  • Restreamer - Restreamer allows you to do h.264 real-time video streaming on your website without a streaming provider. (Source Code) Apache Nodejs
  • Rygel - Rygel is a home media solution (UPnP AV MediaServer) that allows you to easily share audio, video and pictures to other devices. Additionally, media player software may use Rygel to become a MediaRenderer that may be controlled remotely by a UPnP or DLNA Controller. GPLv3 C
  • Streama - Self-hosted Netflix alternative. - MIT Java
  • Zoneminder - Closed-circuit television (CCTV) software application which supports IP, USB and Analog cameras. GPLv2 PHP

杂项/其它

  • EasyBook Project - Book publishing as easy as it should be. (Source Code) MIT PHP
  • GeneWeb - GeneWeb is an open source genealogy software written in OCaml. It comes with a Web interface and can be used off-line or as a Web service. (Demo, Source Code) GPLv2 OCAML
  • King Phisher - King Phisher is a tool for testing and promoting user awareness by simulating real world phishing attacks. BSD Python
  • Mindmaps - An open source, offline capable, mind mapping application. (Demo) AGPLv3 HTML5
  • Para - Para is a flexible and modular backend framework/server for object persistence, API development and authentication. (Source Code) Apache Java
  • Skygear - A complete backend server for web, mobile and iOT applcations. (Demo, Source Code) Apache Go
  • webtrees - webtrees is the web’s leading on-line collaborative genealogy application. (Demo, Source Code) GPLv3 PHP

资金、预算和管理

  • Benedetto - Bennedetto is a simple, turn-based budget management app. GPLv3 Python
  • Economizzer - Economizzer is a simple and open source personal finance manager system, available in English, Brazilian, Portuguese and Russian. (Source Code) MIT PHP
  • ExMoney - A [work-in-progress] self-hosted personal finance app. ISC Elixir
  • Firefly III - Firefly III is a financial manager. It helps you keeping track of your money and make budget forecasts. It supports credit cards, shared household accounts and savings accounts. Very modern, it’s powered by Laravel and requires PHP7. MIT PHP
  • Galette - Galette is a membership management web application towards non profit organizations. (Source Code) GPLv3 PHP
  • GLPI - GLPI is an IT assests/resources/inventory manager. (Source Code) GPLv2 PHP
  • GRR - Assets management and booking for small/medium companies. (demo, administrateur/azerty) GPLv2 PHP
  • Hospital Run - Hospital Run is offline enabled hospital management software. (Source Code, Demo) GPLv3 Nodejs/Ember
  • Inventaire - Collaborative resources mapper project, while yet only focused on exploring books mapping with wikidata and ISBNs. (Source Code) AGPLv3 Nodejs
  • Invoice Ninja - A powerful tool to invoice clients online. (Demo, Source Code) AAL PHP
  • InvoicePlane - Manage quotes, invoices, payments and customers for your small business. (Demo, Source Code) MIT
  • IHateMoney - Manage your shared expenses, easily. (Source Code) BSD Python
  • Tryton - Core base of a complete business solution (ERP). (Demo admin/admin, Source Code) GPLv3 Python
  • Koha - Fully featured, scalable library management system (integrated library system - ILS). (Source Code) GPLv3 Perl
  • PartKeepr - PartKeepr is an electronic part inventory management software. It helps you to keep track of your available parts and assist you with re-ordering parts. (Demo, Source Code) GPLv3 PHP
  • StockazNG - Asset Management System. MIT Python

监测

See https://github.com/n1trux/awesome-sysadmin#monitoring and https://github.com/n1trux/awesome-sysadmin#metric–metric-collection

笔记 & 编辑器

  • dillinger - The last Markdown editor, ever. (Source Code) MIT Nodejs
  • Jotter - Jotter is a lightweight, no database, powerful web notebook that lets you create and manage notes online safely, quickly & easily. (Demo) LGPLv3 PHP
  • Laverna - Laverna is a Javascript note taking application with Markdown editor and encryption support. Consider it like open source alternative to Evernote. (Demo, Source Code) MPLv2 Nodejs
  • Leanote - Leanote, Not Just A Notepad! Open source cloud notepad. (Demo, Source Code) GPLv2 Go
  • Markdown Edit - Online markdown editor/viewer. (Source code) MIT HTML5
  • minimalist-web-notepad - A minimalist http://notepad.cc clone. Apache PHP
  • notes - Simple script for personal notes with a single page with a WYSIWYG Editor. GPLv3 PHP
  • OpenNote - OpenNote was built to be an open web-based alternative to Microsoft OneNote (T) and EverNote. (Demo) MIT HTML5
  • Paperwork - OpenSource note-taking & archiving alternative to Evernote, Microsoft OneNote & Google Keep. (Source Code) MIT PHP
  • ShareLaTex - A web-based collaborative LaTeX editor. (Source Code) AGPLv3 Ruby
  • Turtl - A totally private personal database and note taking app. (Source Code) GPLv3 CommonLisp

办公套件

  • EtherCalc - Web spreadsheet. (Source code CPALv1/Other Nodejs
  • Etherpad - Etherpad is a highly customizable Open Source online editor providing collaborative editing in really real-time. - Apache
  • Infinoted - A server for Gobby, a multi-platform collaborative text editor. (Source Code) MIT C++
  • ONLYOFFICE - An office suite that enables you to manage documents, projects, team and customer relations in one place. (Source Code) AGPLv3 Nodejs
  • PHPOffice - PHPOffice contains libraries which permits to write and read files from most office suites. LGPLv3 PHP
  • WebODF - Tools and libraries to view and edit Open Document Format (ODF) files. (Source Code) AGPLv3 Javascript
  • ownCloud documents - Collaborative editing and sharing of rich-text documents. (Source Code) AGPLv3 PHP

密码管理

  • keeweb - This webapp is a browser and desktop password manager compatible with KeePass databases. (Source Code) MIT Javascript
  • PHP Password Manager - A web based, encrypting password manager, based on the Yii framework. (Source Code) BSD PHP
  • RatticDB - Password Management for Humans. (Source Code, Demo)
  • sysPass - Multiuser password management system. (Source Code, Demo) GPLv3 PHP
  • Teampass - Password manager dedicated for managing passwords in a collaborative way on any server Apache, MySQL and PHP. (Source Code) GPLv3 PHP

Pastebins

  • 0bin - Client side encrypted pastebin. WTFPL Python
  • cryptonote - A simple open source web application that lets users encrypt and share messages that can only be read once. (Source Code) BSD Ruby
  • gist - GIST is an open-source application to share code. GPLv3 PHP
  • hastebin - Open source pastebin written in node.js. (Demo, Source Code) MIT Nodejs
  • localpaste - Simple python based pastebin you can run locally, with curl for input. Supports RAW text by default and binary data such as images (no extensions on returned url). GPLv2 Python
  • NoteHub - Free and Hassle-free Pastebin for Markdown Pages. Simple, clean, password provided, generated-short link. (Demo, Source Code) MIT Nodejs
  • Pastebin - Modern self-hosted pastebin service with a restful API. (Demo, Source Code) MIT Go
  • Pastedown - Self-hosted pastebin server. It is meant to handle Markdown well, but it also works with code snippets (and does syntax highlighting). (Source Code) MIT Go
  • pb - Lightweight pastebin (and url shortener) built using flask. (Demo) GPLv3 Python/Flask
  • pbnh - Pastebin inspired from project pb and hastebin, with an API and a SQL-based backend. MIT Python/Flask
  • Phaste - A Phalcon-based, MySQL pastebin application with privacy-respecting Piwik integration and syntax highlighting. (Source Code) AGPLv3 PHP
  • snipt - Long-term memory for coders. Share and store code snippets (Source Code) BSD Python
  • Sticky Notes - A powerful open-source pastebin application for effortless code sharing. (Source Code) PHP
  • Stikked - An advanced and beautiful pastebin. GPLv3 PHP
  • tastebin - Updated version of hastebin plus additional features. Apache Nodejs
  • ZeroBin - ZeroBin is a minimalist, opensource online pastebin/discussion board where the server has zero knowledge of hosted data. (Demo, Source Code) Zlib PHP

个人仪表盘

  • Dashing - Sinatra based, open sourced dashboard builder from Shopify. (Demo, Source Code) MIT Ruby
  • Dj Diabetes - My Glucose Manager - follow your daily health BSD Python
  • Freeboard - An open source real-time dashboard builder for IOT and other web mashups. (Source Code) MIT Nodejs
  • Grafana - An open source dashboard for data visualization. (Source Code) Apache Go
  • Habitica - A habit tracker app which treats your goals like a Role Playing Game. Previously called HabitRPG. (Source Code) GPLv3/Other Nodejs
  • Phant - Phant is a modular data logging tool for collecting data from the Internet of Things. (Demo, Source Code) GPLv3 Nodejs
  • Reportr - Your life’s personal dashboard. (Source Code)
  • Thingspeak - An open source “Internet of Things” application and API to store and retrieve data from things using HTTP. (Demo, Source Code) GPL Ruby
  • Tipboard - In-house, tasty, local dashboarding system. (Source Code) Apache Python
  • wger - A web-based personal workout, fitness and weight logger/tracker. It can also be used as a simple gym management utility and offers a full REST API as well. (Demo) AGPLv3 Python

照片和视频库

  • Chevereto 2.X - Open source one-click image hosting script. (Source Code) MIT PHP
  • CumulusClips - Your own video sharing website with CumulusClips video sharing script. You can build a YouTube clone where users can upload, rate, comment on videos, and much more. (Demo) GPLv2 PHP
  • Koken - Content management and web site publishing for photographers. PHP
  • Lychee - An open source grid and album based photo-management-system. (Source Code) MIT PHP
  • MediaDrop - A video, audio and podcast publication platform. (Source Code) GPLv3 Python
  • Mediagoblin - A Free software media publishing platform that anyone can run. You can think of it as a decentralized alternative to Flickr, YouTube, SoundCloud, etc. AGPLv3 Python
  • MinigalNano - MinigalNano is a very simple image gallery. It adheres to the KISS principle and is very easy to install. MinigalNano does not have a web admin interface: You just upload your images in the photo folder on your server (using FTP, SFTP) (Demo) CC BY-SA 3.0 PHP
  • phog - Static photo gallery generator with S3 uploader. Python
  • Photofloat - A Web 2.0 Photo Gallery Done Right via Static JSON & Dynamic Javascript. (Demo) GPLv2 Javascript
  • PhotoLight - The easiest photo gallery there is. GPLv3 PHP
  • Photoshow - Responsive Web Gallery. (Source Code) Javascript GPLv3
  • Piwigo - Photo gallery software for the web, built by an active community of users and developers. - GPLv2 PHP
  • Plumi - Create your own sophisticated video-sharing site. (Source Code) GPLv2 Python
  • Pygmyfoto - A crude solution for publishing a photo roll on the web. PHP
  • Shot.io - Mobile optimised photo publishing platform (self-hosted Flickr alternative) (Source Code) GPLv3 PHP
  • sigal - Yet another simple static gallery generator. MIT Python
  • UberGallery - UberGallery is an easy to use, simple to manage, web photo gallery. UberGallery does not require a database and supports JPEG, GIF and PNG file types. Simply upload your images and UberGallery will automatically generate thumbnails and output HTML. (Source Code) MIT PHP
  • Videobin - A simple video upload and sharing service with transcoding. (Demo, Source Code) GPLv3 Python
  • Zenphoto - Open-source gallery and CMS project. (Source Code) GPLv2 PHP

投票与事件

  • dudle - An online scheduling application. (Demo) AGPLv3 Ruby
  • Framadate - An online service for planning an appointment or make a decision quickly and easily: Make a poll, Define dates or subjects to choose, Send the poll link to your friends or colleagues, Discuss and make a decision. (Demo, Source Code) CeCILL-B PHP
  • Kyélà - Participation polls for group events. (Demo, Source Code)
  • LimeSurvey - Feature-rich Open Source web based polling software. Supports extensive survey logic. (Demo)
  • MaterialPoll - An opensource strawpoll.me clone for creating random polls. (Demo, Source Code)
  • Nuages - Collaborative meeting poll system, similar to doodle or rdvz. (Source Code) GPLv3 Python/Django
  • TellForm - A beautiful online form and survey creator. (Demo, Source Code) MIT Nodejs

代理

  • microproxy - lightweight non-caching HTTP/HTTPS proxy server. (Source Code) MIT Go
  • miniProxy - Simple web proxy written in PHP that can allow you to bypass Internet content filters, or to browse the internet anonymously. Only one php file. (Source Code) GPLv3 PHP
  • Oranjeproxy - Anonymizing web proxy. (Source Code) GPLv2 PHP
  • Pound - Light-weight reverse proxy and load balancer for HTTP/HTTPS. (Source Code) GPLv2 C
  • Privoxy - A non-caching web proxy with advanced filtering capabilities for enhancing privacy, modifying web page data and HTTP headers, controlling access, and removing ads and other obnoxious Internet junk. GPLv2 C
  • scotty - Scotty is a free opensource proxy software for bypassing filter and censorship systems. (Source Code) GPLv3 Java
  • Squid - Caching proxy for the Web supporting HTTP, HTTPS, FTP, and more. It reduces bandwidth and improves response times by caching and reusing frequently-requested web pages. (Source Code) GPLv2 C
  • Swiperproxy - A lightning-fast, open source web proxy that is easy for you to run and customize. (Demo, Source Code) MIT
  • Tinyproxy - Light-weight HTTP/HTTPS proxy daemon. (Source Code) GPLv2 C
  • Traefik - Træfɪk is a modern HTTP reverse proxy and load balancer made to deploy microservices with ease. It supports several backends (Docker, Swarm, Mesos/Marathon, …) to manage its configuration automatically and dynamically. (Source Code) MIT Go

稍后阅读列表

  • Nunux Keeper - Your personal content curation service. (Source Code) GPLv3 Nodejs
  • Readityourself - Read the web without ads, comments, or tweets. (Demo) MIT PHP
  • Wallabag - Wallabag, formerly Poche, is a web application allowing you to save articles to read them later with improved readability. (Demo, Public instance, Source Code MIT PHP

搜索引擎

  • Gigablast - open source search engine. (Demo, Source Code) Apache C++
  • Searx - A privacy-respecting, hackable metasearch engine. (Demo, Public instances)
  • Seeks - A websearch proxy and collaborative distributed tool for websearch. AGPLv3 C++
  • Yacy - Peer based, decentralized search engine server. GPL2 Java

软件开发

项目管理

See also Ticketing, Task management/To-do lists*

  • Apache Bloodhound - Manage software products, Keep track of features, tasks and bugs. Apache Python
  • CaseBox - Manage all your organisation’s information in one system.
  • Fossil - Distributed version control system featuring wiki and bug tracker - BSD C
  • gitbucket - The easily installable GitHub clone powered by Scala (Source Code)
  • GitLab - Self Hosted Git Management Application - GitLab is open source software to collaborate on code. Manage git repositories with fine grained access controls that keep your code secure. Perform code reviews and enhance collaboration with merge requests. Each project can also have an issue tracker and a wiki. (Public instance)
  • Gitlist - A web-based git repository browser - GitList allows you to browse repositories using your favorite browser, viewing files under different revisions, commit history and diffs. (Source Code)
  • Gitprep - Portable Github clone. (Source Code, Demo)
  • Gogs - A painless self-hosted Git Service written in Go. (Demo)
  • Kallithea - Source code management system that supports two leading version control systems, Mercurial and Git, with a web interface. (Source Code) GPLv3 Python
  • Klaus - A simple, easy-to-set-up Git web viewer that Just Works. (Demo) ISC Python
  • Lavagna - Lavagna is an open-source issue/project management tool designed for small teams. Lightweight, pure Java, easy to install, easy to use. (Source Code) GPLv3 Java
  • OpenProject - Project collaboration.
  • Phabricator - Collection of web applications that help build better software. (Demo, Source Code) Apache PHP
  • Redmine - Redmine is a flexible project management web application. GPLv2 Ruby
  • Taiga - Agile Project Management Tool based on the Kanban and Scrum methods. (Source Code)
  • The Bug Genie - Written in PHP.
  • Trac - Written in python.
  • Phproject - A high performance full-featured project management system. (Demo, Source Code) GPLv3

Bug 跟踪

See Ticketing

IDE/工具

  • Codiad - A web-based IDE framework with a small footprint and minimal requirements. (Source Code)
  • Eclipse Che - Open source workspace server and cloud IDE. (Source Code) EPLv1 Docker/Java
  • ICEcoder - ICEcoder is a web IDE / browser based code editor, which allows you to develop websites directly within the web browser. (Demo, Source Code) MIT PHP
  • JS Bin - Open source collaborative web development debugging tool. (Source Code) MIT Nodejs
  • Koding - The simplest way to manage your entire Dev Infrastructure. (Source Code) Apache Nodejs
  • Microglark - A hacky minimalistic remote pair programming editor. (Demo, Source Code) AGPLv3 Javascript
  • Regexr - RegExr is a HTML/JS based tool for creating, testing, and learning about Regular Expressions. (Source Code) MIT Nodejs
  • RStudio Server - Web browser based IDE for R. (Source Code) AGPLv3 Java/C++
  • Wide - A Web-based IDE for Teams using Go programming language/Golang. (Demo) Apache Go

持续集成

  • Concourse - Concourse is a CI tool that treats pipelines as first class objects and containerizes every step along the way. (Demo, Source Code) Apache Go
  • drone - Drone is a Continuous Delivery platform built on Docker, written in Go. (Source Code) Apache Go
  • Factor.io - It’s like IFTTT (if-this-then-that) for Dev and DevOps. (Source Code) MIT Ruby
  • Jenkins - Continuous Integration Server. (Source Code) MIT Java
  • PHPCI - Free and open source continuous integration specifically designed for PHP. (Source Code) BSD PHP
  • Strider - Open Source Continuous Deployment / Continuous Integration platform. (Source Code) BSD Node.js

文档生成器

See also Static site generators

  • Docstore - A basic site for hosting static documents - docstore is a simple way to serve Markdown files without any server-side processing, and without requiring you (as the author) to recompile every time you change an article. It consists of a very simple JS script that makes an ajax request to your server, runs a Markdown processor on what it finds, and then displays the results. Clone the repository and add articles in the text/ directory to get started. (Source Code)
  • Flatdoc - A small Javascript file that fetches Markdown files and renders them as full pages. MIT Javascript
  • markdown-tree - Serve a hierarchy / tree directory of markdown files. Use intended for small sites built in markdown
  • Read the Docs - Host documentation, making it fully searchable and easy to find; import your docs using any major version control system, including Mercurial, Git, Subversion, and Bazaar. (Demo, Source Code) MIT Python

静态网站生成器

See https://staticsitegenerators.net and https://www.staticgen.com

任务管理/To-do 列表

See also Project Management and Ticketing.

  • bulldog - HTML5 task manager, built on todo.txt. MIT HTML5
  • Crepido - Create (kanban) boards to track users and projects from flat markdown files. MIT Javascript/Others
  • Kanboard - A simple and open source visual task board. MIT
  • myTinyTodo - Simple way to manage your todo list in AJAX style. Uses PHP, jQuery, SQLite/MySQL. GTD compliant. GPLv2
  • omgnata - Mobile friendly zero-feature TODO list web app. Unix philosophy. (Demo) GPLv3 ClojureScript
  • Restyaboard - Open source Trello-like kanban board. (Demo, Source Code) OSLv3 PHP
  • TaskBoard - A Kanban-inspired app for keeping track of things that need to get done. (Source Code) MIT
  • Taskfreak - A simple but efficient web based task manager written in PHP. (Demo)
  • Tasks - Kanban based to-do list manager written in Go. MIT Go
  • tasks.php - A simple task/todo list manager. MIT
  • Taskwarrior - Taskwarrior is Free and Open Source Software that manages your TODO list from your command line. It is flexible, fast, efficient, and unobtrusive. It does its job then gets out of your way. (Source Code) MIT C++
  • Tinyissue - Simple Issue Tracking for Teams. MIT PHP
  • Tracks - A web-based application to help you implement David Allen’s Getting Things Done™ methodology. (Source Code) GPLv2 Ruby
  • Wekan - An open-source Trello-like kanban. (Demo, Source Code) MIT Javascript/Meteor

Ticketing

See also Task management/To-do lists and Project Management

  • Bugzilla - General-purpose bugtracker and testing tool originally developed and used by the Mozilla project. MPLv2 Perl
  • Bumpy Booby - A simple, responsive and highly customizable PHP bug tracking system. (Source Code) MIT PHP
  • Cerb - Group-based e-mail management project.
  • Deskulu - Opensource helpdesk and ticketing system based on Drupal 7. (Demo) GPLv2 PHP
  • DiamanteDesk - DiamanteDesk is FREE Open Source easy-to-use help-desk solution. (Demo, Source Code) OSLv3 PHP
  • Flyspray - Uncomplicated, web-based bug tracking system. (Source Code) GPLv2
  • Gaskit - A git-backed issue tracker. It uses a branch in your local git database to store the tickets. GPL
  • HuBoard ⚠ – Instant project management for your GitHub issues (Connects directly GitHub API) MIT Ruby
  • MantisBT - Self hosted bug tracker, fits best for software development. (Demo), (Source Code) GPLv2
  • osTicket - Simple support ticket system.
  • OTRS - Trouble ticket system for assigning tickets to incoming queries and tracking further communications.
  • Request Tracker - Ticket-tracking system written in Perl.
  • TheBugGenie - Ticket system with extensive user rights system.

短 URL

  • Lstu - Let’s SHorten That Url - Lightweight URL shortener
  • Nimbus - A URL shortener and file sharer with a drag-and-drop OS X menu bar client and web interface - MIT Python
  • Polr - A modern, minimalist, modular, and lightweight URL shortener. (Source Code)
  • YOURLS - YOURLS is a set of PHP scripts that will allow you to run Your Own URL Shortener. Features include password protection, URL customization, bookmarklets, statistics, API, plugins, jsonp. (Source Code, Documentation) MIT

VPN

See https://github.com/n1trux/awesome-sysadmin#vpn

Web 服务器

See https://github.com/n1trux/awesome-sysadmin#web

Wikis

See also Documentation Generators, Wikimatrix, Wiki Engines on WikiIndex, List of wiki software on wikipedia, Comparison of wiki software on wikipedia.

  • Blazekiss - BlazeKiss is a KISS-based wiki (Keep It Simple, Stupid) - simplicity and functionality comes before all. (Source Code)GPLv3 PHP
  • BookStack - BookStack is a simple, self-hosted, easy-to-use platform for organizing and storing information. It allows for documentation to be stored in a book like fashion. (Demo, Source Code) MIT PHP
  • commonplace - A server for your markdown files. Give it a directory, and Commonplace gives you a url, pretty pages, and quick editing. Ruby
  • Dokuwiki - An easy to use, lightweight, standards-compliant wiki engine with a simple syntax allowing reading the data outside the wiki. All data is stored in plain files, therefore no database is required. GPL PHP
  • Gitit - A wiki program that stores pages and uploaded files in a git repository, which can then be modified using the VCS command line tools or the wiki’s web interface. (Demo) GPLv2 Haskell
  • Gollum - A simple, Git-powered wiki with a sweet API and local frontend. MIT Ruby
  • Gruik - An open-source markdown note-taking web app. (Source Code) GPLv3 PHP
  • jingo - A git based wiki engine written for node.js, with a decent design, a search capability and a good typography. (Demo, Source Code) MIT NodeJS
  • Mediawiki - MediaWiki is a free and open-source wiki software package written in PHP. It serves as the platform for Wikipedia and the other Wikimedia projects, used by hundreds of millions of people each month. (Source Code) GPLv2 PHP
  • MoinMoin - An advanced, easy to use and extensible WikiEngine with a large community of users. ([Source code] (http://hg.moinmo.in/moin)) GPLv2 Python
  • Olelo - Olelo is a wiki that stores pages in a Git repository, supports many markup styles and has an extensible, hackable architecture. (Demo) MIT Ruby
  • Pepperminty Wiki - A complete markdown-powered wiki contained in a single PHP file. (Demo) MPLv2 PHP
  • PmWiki - Wiki-based system for collaborative creation and maintenance of websites. GPLv3 PHP
  • Raneto - Raneto is an open source Knowledgebase platform that uses static Markdown files to power your Knowledgebase - MIT NodeJS
  • Realms - A git-backed wiki inspired by Gollum. (Source Code) GPLv2 Python
  • Redaxscript - Ultra lightweight website engine. (Source Code)GPLv3 PHP
  • TiddlyWiki - A reusable non-linear personal web notebook. (Source Code) BSD Javascript/Nodejs
  • Tiki - Wiki CMS Groupware with the most built-in features. (Demo, Source Code) LGPLv2 PHP
  • Wikifeat - Wikifeat is an open source collaboration platform built around the ever-popular Wiki concept. (Source Code) BSD GO
  • WiKiss - A Wiki, simple to use and install. (Source Code) GPLv2 PHP
  • Wikitten - Wikitten is a small, fast, PHP wiki, and the perfect place to store your notes, code snippets, ideas, and so on. (Source Code) MIT PHP

自托管解决方案

  • arkOS - Install arkOS to a dedicated device and host your own websites, email, files and more. (Source Code [1]) MIT/GPL Nodejs/Other
  • Cloudron - Effortlessly self-host web apps on your server. (Source Code) AGPLv3 Nodejs/Docker
  • DPlatform - Deploy self-hosted apps easily: simple, bloat-free, independent installation. (Source code) MIT Shell
  • FreedomBone - Home server configuration based on Debian. GPLv3 Shell
  • FreedomBox - A community project to develop, design and promote personal servers running free software for private, personal, communications. GPLv3 Python/Other
  • Piratebox - A DIY anonymous offline file-sharing and communications system built with free software and inexpensive off-the-shelf hardware. (Source Code). GPLv3 Python/Other
  • Puffin - Lightweight webapp catalog based on containers, with user interface à la mobile app store. (Demo, Source Code) AGPLv3 Python/Docker
  • Sandstorm - Personal server for running self-hosted apps easily and securely. (Demo, Source Code) Apache C++/Other
  • sovereign - A set of Ansible playbooks to build and maintain your own private cloud: email, calendar, contacts, file sync, IRC bouncer, VPN, and more. GPLv3 YAML/Other
  • UBOS - Linux distro that runs on indie boxes (personal servers and IoT devices). Single-command installation and management of apps - Jenkins, Mediawiki, Owncloud, WordPress, etc., - and other features.GPLv3 Perl/Other
  • WikiSuite - The most comprehensive and integrated Free / Libre / Open Source software suite ever developed. (Source Code) Multiple ClearOS
  • yunohost - A server operating system aiming to make self-hosting accessible to everyone. (Source Code) AGPLv3 Python/Other

许可列表

  • ` ⚠ ` - Depends on a third party network service
  • AAL - Attribution Assurance License
  • AGPLv3 - GNU Affero General Public License 3.0
  • Apache - Apache, Version 2.0
  • ARTv2 - Artistic License Version 2.0
  • BSD - FreeBSD License
  • CCBYNCSAv3 - Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported
  • CCBYNCv4 - Creative Commons Attribution-NonCommercial 4.0 International
  • CC0 - Public Domain
  • CeCILL-B - CEA CNRS INRIA Logiciel Libre
  • CPALv1 - Common Public Attribution License Version 1.0
  • ECLv2 - Educational Community License, Version 2.0
  • EPLv1 - Eclipse Public License, Version 1.0
  • GPL - GNU General Public License
  • GPLv2 - GNU General Public License 2.0
  • GPLv3 - GNU General Public License 3.0
  • IPL - IBM Public License
  • ISC - Internet Software Consortium License
  • LGPLv2 - Lesser General Public License 2.1
  • LGPLv3 - Lesser General Public License 3.0
  • MIT - MIT License
  • MPLv2 - Mozilla Public License
  • OSLv3 - Open Software License 3.0
  • SENDMAIL - Sendmail License
  • Zlib - Zlib/libpng License
  • Zope - Zope Public License 2.0

外链

  • Awesome Selfhosted Chat - A rocket.chat instance setup for the awesome selfhosted community.
  • Awesome Big Data - A curated list of awesome big data frameworks, resources and other awesomeness.
  • Awesome Sysadmin - A curated list of amazingly awesome open source sysadmin resources.
  • PRISM Break, privacytools.io, Alternative Internet - Lists of software aimed at privacy and decentralization (in some form).
  • Dynamic Domain Name services: Afraid.org, Pagekite
  • Communities/forums: /r/selfhosted, Auto-Hébergement (FR)

贡献

Contributing guidelines can be found here.

作者

The list of authors can be found here.

许可

This list is under the Creative Commons Attribution-ShareAlike 3.0 Unported License.

阅读全文 »

awesome-go-cn

发表于 2012-06-21 | 分类于 awesome

awesome-go-cn

内容包括:Web框架、模板引擎、表单、身份认证、数据库、ORM框架、图片处理、文本处理、自然语言处理、机器学习、日志、代码分析、教程和(电子)书等。

敬请期待

Awesome Go

这是一个精心策划的、包含大量优秀 Go 语言框架、库、软件的列表。本项目是受awesome-python启发。

参与

烦请诸位参与前看一眼参与指南 。感谢各位贡献者,你们是最棒的! contributors

如果你发现某个项目已经不维护了,或者它并不好,请发起一个 pull request 来帮助我们改善此列表。感谢。

目录

  • awesome-go-cn - 敬请期待
  • Awesome Go - 参与 - 如果你发现某个项目已经不维护了,或者它并不好,请发起一个 pull request 来帮助我们改善此列表。感谢。 - 目录
    • 音频和音乐
    • 认证和授权
    • 命令行
      • 标准命令行交互
      • 高级控制台界面
    • 配置
    • 持续集成
    • CSS 预处理器
    • 数据结构
    • 数据库
    • 数据库驱动
    • 日期和时间
    • 分布式系统
    • 电子邮件
    • 嵌入式脚本语言
    • 文件
    • 财经
    • 表单
    • 游戏开发
    • 代码生成与泛型
    • Go 编译器
    • 协程
    • GUI
    • 硬件
    • 图像
    • 物联网
    • 日志
    • 机器学习
    • 消息
    • 杂项
    • 自然语言处理
    • 网络
    • OpenGL
    • ORM
    • 包管理
    • 查询语言
    • 资源嵌入
    • 科学及数据分析
    • 安全
    • 序列化
    • 服务器程序
    • 模板引擎
    • 测试
    • 文本处理
    • 第三方 APIs
    • 实用工具
    • 验证
    • 版本控制
    • 视频
    • Web 框架
    • Windows
    • XML
      • 中间件
        • 中间件
        • 用于创建 HTTP 中间件的库
      • 路由
  • 工具
    • 代码分析
    • 编辑器插件
    • Go 语言工具
    • 软件包
      • DevOps 工具
      • 其他软件
  • 资源
    • 基准测试
    • 会议
    • E-Books
    • Twitter
    • 网站
      • 教程

音频和音乐

用于操作音频的库

  • flac - 原生 Go FLAC 解码器
  • flac - 原生 Go FLAC 解码器
  • gaad - 原生 Go AAC 比特流解析器
  • Go-sox - libsox 的 Go 语言接口
  • Go_mediainfo - libmediainfo 的 Go 语言接口
  • Gosamplerate - libsamplerate 的 Go 语言接口
  • id3v2 - 快速且稳定的 ID3 解析及写入库
  • mix - 基于序列的 Go 语言混音器,可用于音乐 app。
  • mp3 - 原生 Go MP3 解码器
  • music-theory - Go 语言编写的音乐理论模型
  • PortAudio - 音频 I/O 库的 Go 语言接口
  • portmidi - PortMidi 的 Go 语言接口
  • taglib - taglib 的 Go 语言接口
  • vorbis - “原生” Go Vorbis 解码器 (使用 CGo, 但是没有其他依赖).
  • waveform - 一个可以通过音频流生成波形图像的包

认证和授权

用来生成认证授权模板的库

  • authboss - 用于 web 开发的组件化认证授权系统。它尝试尽可能的移除模板代码以及硬编码,这使你每次新建 web 项目的时候,可以做到即插即用、配置并开始开发你的 web 英语,而不必每次都重新创建一个认证授权系统。
  • casbin - 一个支持接入控制模型(例如:ACL,RBAC,ABAC)的授权库
  • Go-AWS-Auth - AWS 请求签名库
  • Go-jose - Fairly complete implementation of the JOSE working group’s JSON Web Token, JSON Web 签名以及JSON Web 加密 specs.
  • Go-oauth2-server - 使用 Go 语言编写的独立、符合标准的 OAuth2 服务器
  • Go.auth - 为 Go 语言 web 应用提供的授权 API.
  • Gologin - 可以串连使用OAuth1 和 OAuth2 认证服务
  • Gorbac - 一个用 Go 语言实现的轻量级RBAC
  • Goth - 提供了一种简洁的、惯用的方式来使用OAuth 和 OAuth2.
  • httpauth - HTTP 认证中间件
  • jwt - 简单易用的一个JSON Web Tokens (JWT)的实现
  • jwt-auth - JWT 为 Go 语言 HTTP 服务器编写的 jwt 中间件,有多种配置选项
  • jwt-Go - Go 语言实现的JSON Web Tokens (JWT).
  • loginsrv - JWT 登录微服务,可以继承OAuth2 (Github), htpasswd, osiam等后端。
  • oauth2 - Goauth2的继承者。 通用 OAuth 2.0 库,集成了对JWT, Google APIs, Compute Engine 和 App Engine的支持.
  • osin - Go 语言 OAuth2 服务器库
  • permissions2 - 用于追踪用户,登录状态和许可的库。使用安全 cookies 和 bcrypt.
  • session - Go 语言会话管理(支持 Google App Engine - GAE)
  • sessions - 为 Go 语言 HTTP 服务器开发的非常简单的、高性能的、高可定制的会话服务
  • traefik - 反向代理和负载均衡库,支持多种后端
  • yubiGo - Yubikey 客户端,提供了用于在 Go 语言应用中集成Yubico Yubikey 的 API

命令行

标准命令行交互

用于构建标准或基础命令行应用的库

  • argv - 用于分隔命令行字符串并将其作为参数的 Go 语言库,使用 bash 的语法
  • cli - 功能强大,使用简单的命令行软件包,基于Golang tag
  • cli-init - 提供一种简单、易上手的方式 来使用 Go 语言编写命令行程序
  • climax - 一个更为人性化的命令行工具,继承了 Go command 的精神
  • cobra - 用于现代 Go 语言命令行交互的工具
  • complete - 使用 Go 语言编写的 bash 命令补全工具以及 Go 命令补全工具
  • docopt.Go - 能令你会心一笑的命令行参数解析器
  • drive - 命令行的 Google Drive 客户端
  • flag - 简单、强大的命令行选项解析库,支持 Go 语言子命令
  • Go-arg - 使用 Go 语言编写的基于结构的命令行参数解析库
  • Go-flags - Go 语言命令行选项解析器
  • kingpin - 命令行及标记解析器,支持子命令
  • liner - 命令行文本编辑器
  • mitchellh/cli - 用于实现命令行交互的 Go 语言库
  • mow.cli - 用于构建命令行程序的库,支持更加精准的标记及选项解析和验证
  • pflag - Go flag 软件包的替代品, 实现了POSIX/GNU-风格的 –flags.
  • readline - 纯 Go 语言实现的 GNU-Readline 支持其大部分功能,基于MIT 协议发布。
  • sflags - 基于结构的 flag 生成器,支持flag, urfave/cli, pflag, cobra, kingpin等其他库
  • ukautz/clif - 一个小型命令行程序开发框架
  • urfave/cli - 简单、快速、有趣的、用于构建 Go 语言命令行程序的软件包(formerly codegangsta/cli).
  • wlog - 简单的登录接口,支持跨平台颜色和并发
  • wmenu - 为命令行程序提供简单的菜单结构选项,供用户进行选择

高级控制台界面

用于构建命令行程序以及控制台界面的库

  • aurora - ANSI 终端颜色,支持 fmt.Printf/Sprintf
  • chalk - 符合直觉的用于美化命令行输出的库
  • color - 多功能的用于彩色化命令行输出的库
  • colourize - 用于实现 ANSI 彩色文本的 Go 语言库
  • Go-ataman - 用于渲染 ANSI 彩色文本模板的库
  • Go-colorable - Windows 上使用的可以输出彩色文本的库
  • Go-colortext - 用于在终端进行多彩文字输出的库
  • Go-isatty - Go 语言使用的 isatty
  • Gocui - 一个用于构建控制台界面的极简的 Go 语言库
  • Gommon/color - 多样的命令行文本
  • mpb - 为命令行提供多个进度条的工具
  • termbox-Go - Termbox 是一个用于构建跨平台的、与文本的交互界面的库
  • termtables - Ruby 库的 Go 语言接口
  • terminal-tables 用于生成简单的 ASCII 表格,同时支持 markdown 和 HTML 输出
  • termui - Go 终端控制面板,基于 termbox-Go 并受到了blessed-contrib的启发
  • uilive - 用于实时更新终端输出的库
  • uiprogress - 一个很灵活的用于渲染进度条的库
  • uitable - 一个用于改善命令行中表格数据可读性的库

配置

用于进行配置解析的库

  • config - JSON 或 YAML 配置的封装,支持环境变量和标记解析
  • configure - 可以通过多种途径进行配置,包括 JSON, 标记位以及环境变量
  • env - 解析环境变量为 Go 语言结构体
  • envcfg - 解析环境变量为 Go 语言结构体
  • envconf - 通过环境变量来配置
  • envconfig - 通过环境变量读取配置
  • gcfg - 读取类 INI 类型的配置文件为 Go 语言结构体,支持自定义变量和节
  • GoConfig - 通过命令行的输入、环境变量、配置文件来初始化一个结构体兵将一个结构体解析为输入
  • Godotenv - Ruby 库 dotenv 的 Go 语言接口 (通过 .env 来获取环境变量)
  • Gofigure - 让 Go 语言应用程序配置变得简单
  • Gone/jconf - 模块化 JSON 配置工具。允许你将配置参数结构体和使用它的代码放在一起,而不需要让主配置文件了解所有子模块的细节来进行序列化
  • hjson - 人性化的 JSON,一个便于程序员使用和阅读的配置文件格式。更加轻松的语法,更少的错误和更多的注释
  • inGo - 将配置标记持久化到一个类似 ini 的文件中
  • ini - 用于读写INI 文件的库
  • joshbetz/config - 消息配置库,可以解析环境变量、JSON 文件并根据SIGHUP自动重新载入
  • mini -用于解析类 ini 文件的库
  • store - 轻量级配置管理
  • viper - 长牙的(这个库名叫毒蛇)Go 语言配置工具
  • xdg -遵守 XDG 标准 的配置工具

持续集成

帮助你进行持续集成的库

  • drone - Drone 是一个基于 Docker的持续集成平台,使用 Go 语言编写
  • Goveralls - Coveralls.io 是一个持续代码覆盖率检测系统,这个库提供了 Go 语言的支持
  • overalls - 针对多package 的 Go 语言项目,为 Goveralls 这样的工具生成覆盖率报告
  • roveralls - 回归覆盖测试工具

CSS 预处理器

用于对 CSS 文件预处理的工具

  • c6 - 高性能、兼容 SAAS 的编译器
  • gcss - 纯 Go 语言编写的 CSS 预处理器
  • Go-libsass - 100%兼容 Sass 的库 libsass 的 Go 语言封装

数据结构

通用数据结构及算法

  • binpacker - 二进制数据封包拆包工具,帮你构建自定义的二进制数据流
  • bit - Go 语言集合数据结构。提供了额外的位操作功能
  • bitset - 实现了 bitset 的 Go 语言包.
  • bloom - Go 语言实现的布隆过滤器(bloom filter)
  • bloom - Go 语言实现的布隆过滤器
  • boomfilters - 概率统计数据结构,用于处理大量连续的数据。
  • count-min-log - Go 语言实现的 Count-Min-Log sketch 算法(类似 Count-Min sketch 算法,但是使用的内存更少).
  • cuckoofilter - Cuckoo 过滤器:一个用go语言实现的计数布隆过滤器的替代品
  • encoding - 整型压缩库
  • Go-adaptive-radix-tree - Go 语言实现的自适应基数树
  • Go-datastructures - 一组有用的、高性能的、线程安全的数据结构
  • Go-geoindex - 基于内存存储的地理索引
  • Go-rquad - 区域四叉树,支持有效点位置和领域发现
  • Gods - Go 语言数据结构、容器、集合、列表、栈、键值对、 BidiMaps、树、HashSet 等
  • Golang-set - 线程安全和非线程安全的高性能集合
  • Goskiplist - Go 语言实现的跳跃表
  • Gota - 为go语言实现了数据帧,序列以及数据噪音的方法
  • hilbert - 用于映射空间填充曲线(例如希尔伯特曲线和皮亚诺曲线)和数值的库。
  • hyperloglog - HyperLogLog implementation with Sparse, LogLog-Beta bias correction and TailCut space reduction.
  • levenshtein - 编辑距离(levenshtein distance)和相似性度量, 可以自定义编辑代价和and Winkler-like bonus for common prefix.
  • levenshtein - Go 语言实现计算编辑距离
  • mafsa - Go 语言实现的 MA-FSA ,包含最小完美哈希
  • merkletree - 实现了梅克尔树,提供了一种高效、安全的数据结构内容验证方法
  • roaring - 实现了压缩 bitsets 的Go语言库
  • skiplist - Go语言实现的跳跃表
  • trie - Go语言实现的Trie树
  • ttlcache - In-memory LRU string-interface{} map with expiration for Golang
  • willf/bloom - 实现了布隆过滤器的库

数据库

  • Go 语言实现的数据库*
  • BigCache - 为 gigabytes 量级数据设计的高效键/值缓存
  • bolt - 底层键值数据库
  • buntdb - 快速,可嵌入的,内存键值数据库,可定义索引及 spatial
  • cache2Go - 基于内存存储的键值缓存,支持自动基于超时的自动失效
  • cockroach - 可扩展的、一致的事务型数据库
  • couchcache - RESTful 缓存微服务,基于Couchbase
  • dgraph - 可扩展的、分布式的、低延时、高吞吐的图数据库
  • diskv - 具有 disk-backed 功能的持久化键值存储
  • eliasdb - 无依赖、事物型图数据库,支持 REST API、短语搜索以及类 SQL 的查询语言
  • forestdb - ForestDB 的 Go 语言借口
  • GCache - 支持缓存过期、 LFU、 LRU 和 ARC 的缓存库
  • geocache - 基于内存存储的缓存,适用于分布式部署的应用
  • Go-cache - 内存键值存储/缓存库,适用于单机程序
  • Goleveldb - 使用 Go 语言实现的 LevelDB
  • groupcache - Groupcache 是一个缓存及缓存填充库,在很多情况下用于替代 memcached.
  • influxdb - 用于计量、事件及实时分析的、可扩展的数据库
  • ledisdb - Ledisdb 是一个高性能 NoSQL 数据库,类似 Redi
  • leviGo - LeviGo 是 LevelDB的 Go 语言封装
  • moss - Moss 是一个简单的 LSM 键值存储引擎,100% Go 语言实现
  • piladb - 轻量级 RESTful 数据库引擎,基于堆栈结构
  • prometheus - 监控系统及时间序列数据库
  • rqlite - 基于 SQLite 的轻量级的、分布式的关系型数据库
  • Scribble - 小巧的 JSON 文件存储
  • tempdb - 临时数据的键值对存储
  • tidb - TiDB 是一个分布式的 SQL 数据库。受到了 Google F1的启发
  • tiedot - 基于 Go 语言的 NoSQL 数据库
  • Tile38 - 地理位置数据库及实时地理围栏

数据库迁移

  • darwin - 数据库模式进化库
  • Go-fixtures - 类似 DjanGo fixtures,用于 Golang 的內建数据库/sql 库
  • Goose - 数据库迁移工具。你可以通过编写增量 SQL 或 Go 语言脚本来管理你的数据库
  • Gormigrate - 数据库模式迁移帮助工具,用于 Gorm ORM.
  • migrate - 数据库迁移。命令行及 Go 语言库
  • pravasan - 简单的迁移,目前支持 MySQL 但是近期打算支持 Postgres, SQLite, MonGoDB 等等
  • soda - 数据库迁移、创建、 ORM等等,用于 MySQL, PostgreSQL, 以及 SQLite.
  • sql-migrate - 数据库迁移工具,允许利用 Go-bindata 将数据库迁移嵌入应用程序

数据库工具

  • Go-mysql - 用于处理 MySQL 协议及复制的 Go 语言工具集.
  • Go-mysql-elasticsearch - 将你的 MySQL 数据自动同步到 Elasticsearch
  • kingshard - kingshard 是一个Go语言编写的高性能 MySQL 数据库代理
  • myreplication - MySql 二进制 log 复制监听器,支持基于语句和基于行的复制
  • orchestrator - MySQL复制拓扑管理器及可视化工具
  • pgweb - 基于 Web 的 PostgreSQL 数据库浏览工具
  • pREST - 通过任何 PostgreSQL 数据库提供 RESTful API
  • vitess - vitess 提供了能够使大型 web 服务 MySQL 数据库的扩展变得更加容易的服务器及工具

用于创建和使用SQL的库

  • dat - Go 语言 Postgres 数据库工具集
  • Dotsql - 一个Go语言库,帮助你将 sql 文件保存在一个地方并且方便的取用
  • Goqu - 地道的 SQL 语句创建器和查询库
  • iGor - PostgreSQL 的抽象层,支持高级功能以及类 Gorm 的语法
  • ozzo-dbx - 提供强大的数据恢复功能以及构建不区分数据库类型的查询的能力
  • scaneo - 生成用于将数据库行转换为任意结构体的 Go 代码
  • sqrl - SQL 查询创建器,是 Squirrel 的一个分叉版本,进行了性能方面的优化
  • Squirrel - 一个帮助你构建 SQL 查询的库
  • xo - 基于已知的数据库表或自定义查询生成地道的 Go 语言代码,支持 PostgreSQL, MySQL, SQLite, Oracle, 以及 Microsoft SQL Server.

数据库驱动

用于连接和操作数据库的库

  • 关系型数据库
    • avatica - Apache Phoenix/Avatica SQL 驱动
    • bgc - 数据库连接工具包,用于通过 Go 语言访问 BigQuery
    • firebirdsql - Firebird RDBMS SQL 驱动
    • Go-adodb - Microsoft ActiveX 对象数据库驱动
    • Go-bqstreamer - BigQuery fast and concurrent stream insert.
    • Go-mssqldb - Go 语言Microsoft MSSQL 驱动
    • Go-oci8 - Oracle 驱动
    • Go-sql-driver/mysql - Go 语言 MySQ L驱动
    • Go-sqlite3 - Go 语言的 SQLite3 驱动
    • Gofreetds Microsoft MSSQL 驱动。 FreeTDS的go语言封装
    • pgx - PostgreSQL 驱动,支持比 database/sql 更多的特性
    • pq - 纯 Go 语言编写的 Postgres 驱动
  • NoSQL 数据库
    • aerospike-client-Go - Aerospike 客户端
    • aranGolite - AranGoDB 的轻量级 Go 语言驱动
    • asc - 用于go语言连接 Aerospike
    • cayley - 支持多种后端的图数据库
    • dsc - 数据库连接工具包,支持 SQL, NoSQL 及结构化文件    * dynaGo - DynaGo 是一个符合最小惊奇原则(principle of least surprise)的 DynamoDB 客户端
    • Go-couchbase - Go 语言 Couchbase 客户的
    • Go-couchdb - 另一个 CouchDB HTTP API 的 Go 语言封装
    • Gocb - 官方 Couchbase 的 Go 语言 SDK
    • Gocql - Apache Cassandra 的 Go 语言驱动
    • Gomemcache - memcache 客户端库
    • Gorethink - RethinkDB 的 Go 语言驱动
    • Goriak - Riak KV 的 Go 语言驱动
    • mGo - MonGoDB 驱动,通过简单的 API 实现了丰富的、经过测试的特性,这些 API 遵循 Go 语言的习惯
    • neo4j - Neo4j Rest API 的 Go 语言接口
    • Neo4j-Go - Go 语言实现的 Neo4j REST 客户端
    • neoism - Go 语言 Neo4j 客户端
    • rediGo - RediGo 是 Redis 数据库的 Go 语言客户端.
    • redis - Redis 的 Go 语言客户端
    • redis - 简单、强大的 Redis 客户端
    • redis - 兼容Redis协议的 TCP 服务器/服务.
    • xredis - 类型安全的、可定制的、简洁易用的 Redis 客户端
  • 搜索及分析数据库
    • bleve - 现代文本索引库
    • elastic - Go 语言的 Elasticsearch 客户端
    • elasticsql - 将 sql 转换为 elasticsearch dsl
    • elastiGo - Elasticsearch 客户端库
    • Goes - 用于和 Elasticsearch 交互的库
    • skizze - 概率相关数据结构服务和存储

日期和时间

处理日期和时间的库

  • carbon - 简单的时间扩展程序,有很多有用的方法,是 PHP Carbon 库的接口
  • durafmt - 持续时间格式化
  • feiertage - 一组计算德国公共假期的函数,比如复活节、感恩节等
  • Go-persian-calendar - 太阳历
  • Goweek - 处理星期的库
  • now - Now 是一个 Go 语言的时间工具集
  • NullTime -时间可以是 NULL 的库
  • timeutil - 为 Go 语言时间包扩展了有用的功能,例如时间间隔和格式化

分布式系统

用于构建分布式系统的库

  • celeriac - 利用 Go 语言对Celery 的 worker,任务,事件进行交互和监控的库
  • drmaa -集群调度工具的任务提交库,基于标准 DRMAA
  • flowgraph - MPI 风格的读取,发送协同层
  • gleam - 快速、可扩展的分布式 map/reduce 系统,使用纯 Go 语言和 Luajit 编写,融合了 Go 语言的高并发能力和 Luajit 的高性能,可以独立或分布式部署运行。
  • glow - 简单易用、可扩展的大数据处理能力,Map-Reduce 以及执行 DAG(Database Availability Group),所有功能均由Go语言编写.
  • Go-jump - Google “Jump” 一致性哈希函数的借口
  • Go-kit - 为服务工具吧,支持服务发现、负载均衡 、可插拔传输以及请求追踪等
  • Gorpc - 简单、快速、可扩展的 RPC 库,针对高负载场景
  • grpc-Go - Go 语言实现的 gRPC. HTTP/2 基于 RPC.
  • hprose - 非常牛逼的 RPC 库,当前支持 25+ 语言。
  • jsonrpc - jsonrpc 包实现了 JSON-RPC 2.0.
  • jsonrpc - JSON-RPC 2.0 HTTP 客户端实现
  • KrakenD - 带有中间件的,高性能 API 网关框架
  • micro - 微服务工具套件和分布式系统平台
  • NATS - 轻量级、高性能微服务系统,用于微服务、物联网以及云
  • raft - Raft 一致性协议的 Go 语言实现, 作者是 HashiCorp.
  • raft - Raft 一致性协议的 Go 语言实现, 作者是 CoreOS.
  • ringpop-Go - 可扩展、容错的应用层分片库
  • rpcx - rpcx是一个类似阿里巴巴 Dubbo 和微博 Motan 的分布式的 RPC 服务框架
  • sleuth - 在 HTTP 服务之间进行无主 p2p 自动发现和 RPC通信(使用 ZeroMQ).
  • tendermint - 一个高性能的中间件,用于将任何语言编写的状态机转换为一个拜占庭容错状态机,使用Tendermint 一致性及区块链协议
  • torrent - BitTorrent 客户端
  • dht - BitTorrent Kademlia DHT 的实现.
  • Go-peerflix - 视频流 torrent 客户端

电子邮件

用于创建和发送电子邮件的库

  • douceur - HTML 邮件中的内联 CSS
  • email - 一个健壮的、灵活的 email 库
  • Go-dkim - DKIM 库,用于对 email 进行签名和验证
  • Go-imap - IMAP 库,用于客户端和服务器
  • Go-message - 用于触雷互联网消息格式和邮件的库
  • Gomail - Gomail 是一个非常简单且强大的库,用于发送电子邮件
  • Hectane - 轻量级 SMTP 客户端,提供 HTTP API
  • hermes - 一个用于生成干净、响应式 HTML e-mail 的包
  • MailHog - Email 及 SMTP 测试工具,具有 web 及 API 接口
  • SendGrid - SendGrid 的 Go 语言库,用于发送电子邮件
  • smtp - SMTP 服务器协议状态机

嵌入式脚本语言

在你的 Go 代码中嵌入其他语言.

  • aGora - 一种动态类型的可以嵌入 Go 中的编程语言
  • anko - Go 语言编写的解释器
  • binder - Lua 接口, 基于 Gopher-lua
  • gisp - Simple LISP
  • Go-duktape - Duktape JavaScript 引擎的 Go 语言接口
  • Go-lua - Lua 5.2 虚拟机的纯 Go 语言接口
  • Go-php - PHP 的 Go 语言接口
  • Go-python - CPython C-API 的 Go 语言接口
  • Golua - Lua C API。的 Go 语言接口
  • Gopher-lua - Go 语言编写的 Lua 5.1 虚拟机和编译器
  • ngaro - 可嵌入的 Ngaro 虚拟机实现,支持在 Retro 中使用脚步
  • otto - Go 编写的 Javascrip 解释器
  • purl - 嵌入 Go 语言的 Perl 5.18.2

文件

用于处理文件和文件系统的库

  • afero - 一个文件系统的抽象系统
  • Go-csv-tag - 使用 tag 导入 csv
  • Go-gtfs - 加载 gtfs 文件
  • notify - 文件系统提示库,具有简单的 API ,类似 os/signal.
  • skywalker - 允许你简单方便的并发浏览文件系统
  • tarfs - 为 tar 文件实现的 FileSystem 接口

财经

会计及财务库

  • accounting - 金钱及货币格式
  • decimal - 任意精度、固定点十进制数
  • Go-finance - 使用 Go 语言来理解财务市场数据
  • Go-money - Fowler 金钱模型的实现
  • ofxGo - 查询 OFX 服务器并解析其响应 (有一个示例的命令行客户端)
  • vat - VAT 验证及欧洲增值税率工具

表单

操作表单的库

  • bind - 将表单数据绑定到任意的 Go 变量上
  • binding - 将来自 net/HTTP 请求的表单、JSON 数据绑定到结构体
  • conform - 检查用户输入并基于结构标签来清理数据
  • form - 解码 url 中的数据到 Go 语言变量中以及将 Go 语言变量编码进 url 支持Dual Array 及 Full map
  • formam - 将表单数据解码到结构体
  • forms - 框架无关的表单/JSON数据解析验证库,支持多部分表单及文件
  • Gorilla/csrf - 为 Go 语言 web 应用提供 CSRF 防御
  • nosurf - CSRF 防御中间件

游戏开发

超赞的游戏开发库

  • Azul3D - Go 语言编写的 3D 游戏引擎
  • Ebiten - Go 语言编写的简单的 2D 游戏库
  • enGo - EnGo 是一个开源的 2D 游戏引擎,遵循实体-组件-系统范式
  • GarageEngine - 2d 游戏引擎,利用 OpenGL 工作
  • glop - Glop (Game Library Of Power) 是一个很简单的跨平台游戏库
  • Go-astar - Go 语言实现的 A* 寻路算法
  • Go-collada - 操作 Collada 文件格式的 Go 语言库
  • Go-sdl2 - Simple DirectMedia Layer的 Go 语言接口
  • Go3d - 专注性能的 2D/3D 数学库
  • Gonet - Go 语言实现的游戏服务器框架
  • Leaf - 轻量级游戏服务器框架
  • Pixel - 手工 2D 游戏引擎库
  • raylib-Go - raylib的 Go 语言接口,简单、易用的用于学习游戏编程的库
  • termloop - 终端游戏引擎,基于 Termbox

代码生成与泛型

一些增强语言的功能的工具例如通过代码生成支持泛型

  • efaceconv - 代码生成工具,用于高效的将 interface{} 转换为不可变类型,不需要进行任何内存分配
  • gen - 代码生成工具,用于提供类似泛型的功能
  • Go-linq - 类似 .NET LINQ 的查询方法
  • interfaces - 命令行工具,用于生成接口定义
  • jennifer - 不适用模板生成任意 Go 语言代码
  • pkgreflect - 用于包作用域反射的 Go 语言预处理器

Go 编译器

用于把 Go 语言编译为其他语言的工具

  • Gopherjs - 把 Go 编译为 JavaScript.
  • llGo - 基于 LLVM 的 Go 语言编译器
  • tardisGo - Golang 转换为 Haxe 进而转换为 CPP/CSharp/Java/JavaScript 的编译器.

协程

用于管理和处理Go 语言协程的工具

  • Go-floc - 轻松编排 Go 语言协程
  • Go-flow - 控制 Go 语言协程的执行顺序
  • Goworker - Goworker 是一个基于 Go 语言的后台worker
  • grpool - 轻量级 Go 语言协程池
  • pool - 有限消费者协程或无限协程池,用于简单的处理协程和取消协程
  • semaphore - 实现了信号量模式,提供了超时锁定、解锁操作,基于通道和上下文。
  • tunny - Go 语言协程池

GUI

用于构建 GUI 程序的库

工具包

  • app - 使用Go, HTML 和 CSS 进行应用程序开发的库 支持 MacOS, Windows in progress.
  • Go-astilectron - 使用 Go 以及 HTML/JS/CSS 构建应用程序. (基于Electron)
  • Go-gtk - GTK 的 Go 语言接口
  • Go-qml - QML 对 Go 语言的支持
  • Go-sciter - Sciter 的 Go 语言接口 : 支持现代 GUI 程序开发的、嵌入式 HTML/CSS/脚本 引擎。跨平台。
  • Goqt - Qt的 Go 语言接口
  • Gotk3 - GTK3 的 Go 语言接口
  • Gowd - 使用 Go, HTML, CSS 和 NW.js 语言进行快速、简单的桌面 UI 开发。跨平台
  • qt - Qt 的 Go 语言接口 (支持 Windows / macOS / Linux / Android / iOS / Sailfish OS / Raspberry Pi)
  • ui - 平台原生 GUI 库。跨平台
  • walk - windows 应用程序开发工具包

交互

  • Gosx-notifier - OSX 桌面提醒库
  • robotGo - 跨平台 GUI 自动化;控制鼠标、键盘及其他设备
  • systray - 一个跨平台的 Go 语言库,用于在桌面提醒区域放置按钮及菜单
  • trayhost - 一个跨平台的 Go 语言库,用于在主机系统任务条区域放置按钮及菜单

硬件

库、工具以及教程,讲解如何操控硬件

参见 Go-hardware 获取更加全面的信息

图像

用于操作图像的库

  • bild - 汇集了使用 Go 语言编写的图像处理算法
  • bimg - 利用 libvips 进行快速高效的图像处理
  • geopattern - 从字符串创建优美的图样
  • gg - 使用 Go 编写的 2D 渲染程序
  • gift - 一组图像处理滤波器
  • Go-cairo - cairo 图形库的 Go 语言接口
  • Go-gd - GD 库的 Go 语言接口
  • Go-nude - 使用 Go 语言进行裸替检测
  • Go-opencv - OpenCV 的 Go 语言接口
  • Go-webcolors - webcolors 库的 Go 语言接口
  • imagick - ImageMagick 的 MagickWand C 语言 API 的 Go 语言接口
  • imaginary - 快速且简单的 HTTP 微服务,用于图像缩放
  • imaging - 简单的 Go 语言图像处理包
  • img - 图像操作工具精选集
  • ln - 3D 图线艺术渲染
  • mpo - MPO 3D 照片解码与转换工具.
  • picfit - 一个使用 Go 语言编写的图片缩放服务器
  • pt - 光线追踪引擎
  • resize - 使用 Go 语言编写的具有常见差值功能的图片缩放工具
  • rez - 纯 Go 及 SIMD 实现的图像缩放库
  • smartcrop - 为任意图片进行剪裁的工具
  • svGo - 用于生成 SVG 的 Go 语言库
  • tga - tga 是一个 TARGA 图像格式解码/编码器

物联网

用于为物联网设备编程的库.

  • connectordb - 开源个人数据及物联网平台
  • devices - 物联网设备套件库
  • eywa - Eywa 是一个持续追踪所有连接设备的连接管理器
  • floGo - FloGo 是一个用于物联网 Edge App 及集成的开源框架
  • gatt - Gatt 是一个用于创建低功耗蓝牙外设的库
  • Gobot - Gobot 是一个用于机器人,物理计算以及物联网的库
  • mainflux - 工业网物联网消息及设备管理服务器
  • sensorbee - 轻量级物联网流处理引擎

日志

用于生成和操作日志文件的库.

  • glg - glg 是一个简单、快速、分级的日志库
  • glog - 分级记录日志的库
  • Go-cronowriter 对日志文件进行自动循环写入的库基于当前日期和时间,类似 cronolog.
  • Go-log - 支持多处理器及日志分级的库
  • Go-log - Go 语言实现的 Log4j
  • Go-logger - 支持日志分级的简单的日志工具
  • Gologger - 简单易用的日志库,可以在彩色控制台、简易控制的、文件或 Elasticsearch 中记录
  • Gomol - 支持多种输出,结构化的日志模块,可以扩展它的输出
  • Gone/log - 快速、可扩展、全功能、兼容标准库的日志库
  • log - 结构化日志库
  • log - 简单、可配置、可扩展的结构化日志库
  • log-voyage - 全功能日志saas 使用 Go 语言编写
  • log15 - 简单强大的日志库
  • logdump - 支持分级的日志库
  • logex - Go 语言日志库,支持追踪和分级,基于标准库进行了封装
  • logger - 一个极简的日志库
  • logrus - 支持结构化的日志工具.
  • logrusly - logrus 的插件,用于将错误发送到 Loggly.
  • logutils - 对 Go 语言标准日志工具进行了扩展,使其更好用
  • logxi - 十二要素 app 日志工具,非常快速,令你开心
  • lumberjack - 简单的循环日志工具,实现了 io.WriteCloser.
  • mlog - 一个简单的日志模块,可以分5级并有一个可选的循环日志文件记录功能,支持 stdout/stderr 输出.
  • ozzo-log - 高性能日志库,支持日志严重级别、分类及过滤。可以将过滤后的信息发送到不同的目的地(例如: 控制台、网络、邮箱).
  • seelog - 一个灵活的、解耦的、格式化的日志库
  • slf - 简单日志门面(The Structured Logging Facade (SLF) ) (类似 SLF4J,但是它是结构化的,并且专为 Go 语言设计)
  • slog - 为 Go 语言实现的结构化日志门面(Structured Logging Facade (SLF) )
  • spew - 为 Go 语言的数据结构实现了一个整洁的打印功能,有助于调试
  • stdlog - Stdlog 是一个面向对象的库,提供了分级日志功能,对于定时任务很有用.
  • tail - 这个 Go 语言软件包力争模拟 BSD tail 的功能
  • xlog - 插件架构以及灵活的日志系统,具有日志等级控制,多日志目标以及自定义日志格式功能
  • xlog - 结构化日志 for net/context aware HTTP handlers ,可以灵活的分发
  • zap - 快速的、结构化的、分级的日志库
  • zerolog - 零分配 JSON 日志.

机器学习

机器学习库

  • bayesian - 贝叶斯分类器
  • CloudForest - 纯 Go 语言编写的快速、灵活、多线程决策树
  • gaGo - 多种群,灵活的,并行的遗传算法
  • Go-fann - 快速人工神经网络库(FANN)的 Go 语言借口.
  • Go-galib - Go 语言编写的遗传算法库
  • Go-pr - Go 语言模式识别库
  • Gobrain - Go 语言编写的神经网络
  • Godist - 多种概率分布及相关方法
  • Goga - Go 语言遗传算法库
  • GoLearn - Go 语言通用机器学习库
  • Golinear - liblinear 库的 Go 语言接口
  • Goml - 即时go语言机器学习库
  • GoRecommend - Go 语言推荐算法库
  • GorGonia - 基于图的计算库,类似于 Theano。提供了一些原型用于构建各种个样的机器学习和神经网络算法
  • libsvm - libsvm 的 Go 语言版本,基于 LIBSVM 3.14.
  • mlGo - 这个项目点目标是在 Go 语言中提供极简的机器学习算法
  • neat - 即插即用的并行 Go 语言框架,用于增强拓扑神经网络 (NEAT).
  • neural-Go - Go 语言实现的多层感知神经网络,通过反向传播算法进行训练.
  • probab -概率分布函数、贝叶斯推理。使用纯 Go 语言编写
  • reGommend - 推荐系统及协同过滤引擎
  • shield - 贝叶斯文吧分类器,包含灵活的分词器和存储后端

消息

实现了消息系统的库

  • CentrifuGo - 实时消息服务器
  • dbus - D-Bus的 Go 语言接口
  • drone-line - 通过软件包,docker 或是 Drone CI来发送 Line 通知
  • emitter - 通过Go语言的方式发送事件消息,可以使用通配符,断言,取消发送等优秀特性
  • EventBus - 轻量级事件库,支持异步
  • gaurun-client - Go 语言编写的 Gaurun 客户端
  • Glue - 健壮的 Go 和 Javascript Socket 库 (可以用来替代 Socket.io).
  • Go-longpoll - 支持长轮询的发布与订阅
  • Go-notify - 原生实现的桌面通知规范
  • Go-nsq - NSQ 官方 Go 语言库
  • Go-socket.io - Go 语言的 socket.io库 ,一个实时应用框架.
  • Go-vitotrol - Viessmann Vitotrol 服务的 Go 语言客户端
  • Gollum - 一个 n:m 的多路复用器,从不同的源汇聚消息并向目标进行广播
  • Golongpoll - HTTP 长轮询服务器库,让 web 发布与订阅变的更简单.
  • Goose - Go 语言实现的服务器端事件发送
  • Gopush-cluster - Gopush-cluster 是一个 Go 语言实现的支持集群的comet服务(支持 websocket,和tcp协议)
  • Gorush - 通知推送服务器,使用 APNs2 和 Google GCM.
  • guble - 一个使用通知推送(Google Firebase Cloud Messaging, Apple Push Notification services, SMS)、websockets 、REST API 的消息服务器。提供了分布式操作和消息持久化特性
  • machinery - 异步任务队列,基于分布式消息处理
  • manGos - 纯 Go 语言实现的 Nanomsg (“Scalable Protocols”)
  • melody - 用于处理 websocket 会话的一个极简框架,包括广播和自动 ping/pong 处理
  • NATS Go Client - 轻量级高性能发布订阅(publish-subscribe) 以及分布式消息队列系统,这个一个Go语言库.
  • nsq-event-bus - 针对 NSQ 的主题和频道进行了简单的封装
  • oplog - 原生的 oplog/replication 系统,用于 REST APIs
  • pubsub - 一个简单的 pubsub 软件包
  • RapidMQ - RapidMQ 是一个轻量级,可靠的本地消息队列管理库
  • sarama - 用于 Apache Kafka 的库
  • Uniqush-Push - 基于 Redis 的统一推服务,用于服务器端向移动客户端推送消息
  • zmq4 - ZeroMQ version 4的 GO 语言接口。也有适用于version 3 及 version 2的

杂项

一些暂时无法归类的库

  • alice - GO 语言依赖注入容器
  • archiver - 用于制作和解压 .zip 和 .tar.gz 文件的库和命令
  • autoflags - 通过结构体自动定义命令行标记的go语言软件包
  • avgRating - 利用 Wilson Score 方程计算平均分及评级
  • banner - 在你的go语言应用中添加炫酷的横幅
  • battery - 跨平台电源信息库
  • bitio - 高度优化的比特级读写
  • browscap_Go - Browser Capabilities Project的 GO 语言库
  • conv - conv 提供了一种快速且符合直觉的 GO 语言类型转换
  • datacounter - Greaders/writer/HTTP.ResponseWriter 计数器
  • errors - 提供简单的错误处理
  • Go-chat-bot - IRC、Slack、Telegram 聊天机器人
  • Go-commons-pool - 通用对象池
  • Go-multierror - 这个 Go 语言库用于将一系列的错误作为一个整体来显示
  • Go-openapi - 一些用于处理和利用 open-api 的库集合
  • Go-resiliency - GO 语言弹性模式
  • Go-sarah - 用于构建聊天机器人的框架,支持 LINE, Slack, Gitter等等
  • Go-shortid - 超短的、唯一的、非序列的、对 url 友好的 id
  • Go-unarr - 解压缩库,可用于 RAR, TAR, ZIP 以及 7z 归档文件.
  • Go.uuid - 全球唯一标示符的实现(UUID),同时支持生成和解析
  • Gofakeit - Go 语言编写的随机数据生成器
  • Goid - 生成和解析符合 RFC4122 规定的 V4 UUIDs.
  • Gopsutil - 用于获取进程和系统资源利用率(cpu,内存,磁盘)的库,跨平台
  • Gosms - 你本地的SMS 网关,可以用来发送 SMS
  • Gountries - 一个用来展示国家及其行政区划数据的库
  • hanu - 用于编写 Slack 聊天机器人的库
  • health - 简单易用、可扩展的健康检查库
  • indiGo - 唯一id生成器,使用 Sonyflake 并通过Base58进行编码
  • jobs - 持久化且灵活的后台任务库
  • margelet - 用于创建 Telegram 聊天机器人的库
  • secdl - Lighttpd ModSecDownload alGorithm ported to Go to secure download urls.
  • slacker - 用于编写 Slack 聊天机器人的库,非常易用
  • stats - 监控 Go 内存状态及系统状态,通过UDP将数据发送到任何地方
  • uuid - 生成,编解码 UUIDs v1 ,具有快速的或或密钥级随机节点标识
  • VarHandler - Generate boilerplate HTTP input and ouput handling.
  • werr - Error Wrapper creates an wrapper for the error type in Go which captures the File, Line and Stack of where it was called.
  • xkg - X Keyboard Grabber
  • xstrings - 一些有用的字符串函数的集合

自然语言处理

用于处理人类语言的库

  • dpar - 基于变换的统计依赖关系解析器
  • Go-eco - 相似性,相异性及距离度量;差异性,均匀度和不均匀度测量;物种多样性估计;群落线模型
  • Go-i18n - 软件包及相关工具,用于处理本地化文本
  • Go-mystem - Yandex.Mystem 的 CGo 接口, Yandex.Mystem 是一个俄语词汇形态学分析器
  • Go-nlp - 在进行自然语言工作时用于处理离散概率分布一些工具,以及其他的一些有用的工具
  • Go-stem - 波特词干算法的一个实现
  • Go-unidecode - Unicode 文本音译为 ASCII 文本
  • Go2vec - 利用 Go 语言读取和处理 word2vec
  • Gojieba - 结巴分词的 Go 语言实现的 jieba ,结巴分词是一个用于中文的分词算法
  • Golibstemmer - snowball libstemmer 库的 Go 语言接口,包括了对 porter 2 的支持
  • Gounidecode - Go 语言的 Unicode 直译器 (通常称之为 unidecode)
  • icu - icu4c C 库的 CGo 接口,包括了检测和转换函数。保证了 version 50.1 版本的兼容性
  • libtextcat - libtextcat C 库的 CGo 接口。保证了version 2.2 版本的兼容性
  • MMSEGo - Go 语言实现的 MMSEG (一个中文分词算法)
  • nlp - 从字符串中提取特定的值并填充结构体
  • paicehusk - Go 语言实现的 Paice/Husk 词干算法
  • porter - Martin Porter 实现的 C 语言版本的 Porter 词干算法的 Go 语言接口,非常直观
  • porter2 - 非常快速的 Porter 2 stemmer.
  • prose - 文本处理库,支持词语切分、词性标记、命名实体提取等功能
  • RAKE.Go - 快速自动关键字提取算法(Rapid Automatic Keyword Extraction:RAKE)的 Go 语言接口
  • segment - 一个用于进行 Unicode 文本分割的库,实现了 Unicode Standard Annex #29中描述的功能
  • sentences - 语句标记器:将文字段落转换为语句列表
  • shamoji - shamoji 是一个Go语言编写的词过滤软件包
  • snowball - Snowball 分词器的Go语言接口,提供了分词提取的功能 Snowball native.
  • stemmer - Go 语言分词器软件包,包括了英语和德语分词器
  • textcat - 基于 n-gram 的 Go 语言文本分类软件包,支持utf-8 和 raw 文本
  • whatlangGo - Go 语言的自然语言检测包。支持84种语言和24种书写 (如拉丁,西里尔等书写系统)。
  • when - 英语、俄语的自然语言日期、时间表达解析器,可以插入规则

网络

用于在不同网络层工作的库

  • arp - 实现了 ARP 协议,遵循 RFC 826.
  • buffstreams - 简单易用的 protocolbuffer 数据流,基于 TCP
  • canopus - CoAP 客户端/服务器实现 (RFC 7252)
  • dhcp6 - dhcp6 实现了一个DHCPv6 服务器,遵循RFC 3315.
  • dns - 用于处理 DNS 的 Go 语言库
  • ether - 跨平台 Go 语言库,用于发送和接收以太帧
  • ethernet - ethernet 实现了IEEE 802.3 Ethernet II 帧以及IEEE 802.1Q VLAN 标签的组装和剥离.
  • fasthttp - fasthttp 是一个快速的 HTTP 实现,是 net/http的10倍性能
  • ftp - ftp 实现了一个 FTP 客户端,遵循 RFC 959.
  • Go-getter - 一个用于通过 URL 从多种源下载文件或目录的 Go 语言库
  • Go-stun - Go 语言实现的 STUN 客户端 (RFC 3489 及 RFC 5389).
  • Gobgp - Go 语言实现的BGP
  • Golibwireshark - Golibwireshark 使用 libwireshark 库来解析 pcap 文件并且分析数据
  • Gopacket - 用于报文处理的库
  • Gopcap - libpcap的 Go 语言封装
  • Goshark - Goshark 使用 tshark 来对 IP 报文进行解码并创建数据结构用于分析报文
  • Gosnmp -用于执行 SNMP 操作的库
  • Gotcp - 用于快速编写 tcp 应用的库
  • grab - 管理文件下载的 Go 语言库
  • graval - 试验性的 FTP 服务器框架
  • jaziGo - JaziGo 是一个 Go 语言编写的工具,用于获取多种网络设备的配置.
  • kcp-Go - KCP - 快速可靠的 ARQ 协议.
  • kcptun - 超级简单、快速的 udp 通道,基于KCP 协议
  • lhttp - 强大的 websocket 框架,可以更简单的构建你自己的 IM 服务器*
  • linkio - 接口读写速度模拟器
  • llb - 一个非常简单但快速的后端代理服务器。对于快速重定向到预定义域名很有用,无内存分配,响应速度快
  • mdns - 简单的 mDNS (组播 DNS) 客户端/服务器库
  • mqttPaho - Paho 客户端提供了一个 MQTT 客户端库,用于通过TCP, TLS 或 WebSockets 和 MQTT broker 建立连接
  • portproxy - 简单的 TCP 代理,加入了对CORS 的支持
  • publicip - publicip 库会返回你的公网 ip 地址 (互联网出口).
  • raw - raw 允许你在设备驱动层读写网络接口的数据
  • sftp - sftp 实现了https://filezilla-project.org/specs/draft-ietf-secsh-filexfer-02.txt.中描述的 SSH 文件传输协议
  • ssh - 用于创建 SSH 服务器的高级 API (封装crypto/ssh).
  • sslb - 一个超简单的负载均衡库,仅仅是一个为了获取一些性能目标的小项目
  • tcp_server - 一个用于快速创建 tcp 服务器的库
  • utp - Go uTP 微传输协议的实现
  • water - 简单的 TUN/TAP 库
  • winrm - Go WinRM 客户端,用于在 Windows 设备上远程执行命令
  • xtcp - TCP 服务器框架,支持同时全双工通信。可以优雅的关闭,自定义协议

OpenGL

用于操作OpenGL的库.

  • gl - OpenGL的 Go 语言接口
  • glfw - GLFW 3 的 Go 语言接口
  • Goxjs/gl - Go 语言跨平台 OpenGL 接口(OS X, Linux, Windows, browsers, iOS, Android).
  • Goxjs/glfw - Go 语言跨平台 glfw 库,用于创建 OpenGL 上下文并接收事件
  • mathgl - Go 语言 3D 数学库,专注于3D,受到 GLM 启发

ORM

实现对象关系映射或数据映射技术的库

  • beeGo orm - 一个强大的 Go 语言 orm 框架,支持 pq/mysql/sqlite3.
  • Go-pg - PostgreSQL ORM ,专注PostgreSQL 特定功能及性能
  • Go-store - 简单快速的基于Redis 的键值对存储库
  • Gomodel - 轻量级、快速的、类 orm 库,帮助你和数据库进行交互
  • GoRM - 超棒的 Go 语言 ORM 库,对开发者非常友好
  • Gorp - 关系持久的、类 orm 的 Go 语言库
  • pop/soda - 数据库迁移、创建、ORM 等等,支持 MySQL, PostgreSQL, 以及 SQLite.
  • QBS - 利用结构体进行标准查询,是一个 Go 语言 ORM
  • reform - 一个更优秀的 ORM,基于非空接口和代码生成
  • SQLBoiler - ORM 生成器。为你的数据库表单生成一个功能全面、快速的 ORM
  • upper.io/db - 通过使用封装了成熟的数据库驱动的适配器,来使用单一接口与不同的数据源进行交互
  • Xorm - 简单、强大的 Go 语言 orm
  • Zoom - 超快的数据存储于查询引擎,基于 Redis 构建

包管理

用于进行包和依赖管理的库

  • dep - Go 语言依赖工具.
  • giGo - 类似 PIP 的依赖管理工具。支持私有仓库和哈希
  • glide - 轻松管理你的 GO 语言包发布者以及发布包。 受到类似 Maven, Bundler, 和 Pip 这些工具的的启发
  • Godep - Go 语言依赖工具,Godep 可以帮助开发者修复库的依赖关系
  • Gom - Go Manager
  • Goop - 简单的依赖管理工具,手到 Bundler 的启发
  • Gopm - Go 包管理器
  • Govendor - Go 包管理器。 Go 语言 vendor 工具,兼容标准 vendor 文件
  • gpm - Go 语言包管理工具
  • gvt - gvt 是一个简单的发布管理工具(aka Go15VENDOREXPERIMENT), 基于 gb-vendor.
  • johnny-deps - 极简的依赖版本管理工具,使用 git
  • nut - Go 语言依赖管理
  • VenGo - 创建并管理可以导出的,隔离的 Go 语言虚拟环境

查询语言

  • graphql - graphql 解析器 + 实用工具
  • graphql - Go 语言实现的 GraphQL
  • graphql - 专注于易用性的 GraphQL 服务器
  • graphql-Go - 为 Go 语言实现的 GraphQL
  • jsonql - JSON 查询表达式库

资源嵌入

  • esc - 在 Go 语言程序中嵌入文件并为其提供 HTTP.FileSystem 接口
  • fileb0x - 一个用于在 Go 语言程序中嵌入文件的工具,专注于可定制化和易用性
  • Go-bindata - 一个用于将文件转换为可管理的 Go 语言代码的工具
  • Go-embed - 生成用于嵌入资源文件到库或可执行文件的 Go 语言代码
  • Go-resources - 一个简洁的 Go 语言资源嵌入工具
  • Go.rice - Go.rice 是一个让你轻松使用 html,js,css,图片以及模板这类资源的库
  • statics - 将静态资源嵌入到 Go 文件中,用于单独二进制编译+使用http.FileSystem + symlinks.
  • statik - 将静态文件嵌入到 Go 语言可执行文件中
  • templify - 将外部目标文件嵌入到 Go 代码中来创建单独的二进制文件
  • vfsgen - 生成一个 vfsdata.Go 文件,静态实现了一个虚拟文件系统

科学及数据分析

用于科学计算和数据分析的库

  • blas - BLAS (基础线性代数子程序 Linear Algebra Subprograms)的 Go 语言实现
  • chart - 简单的图表绘图库。支持多种图表类型
  • evaler - 简单浮点算数表达式求值器
  • ewma - 指数移动加权平均值
  • geom - 2D 几何
  • Go-dsp - 数字信号处理
  • Go-fn - 一些没有包含在 math pkg 中的数学函数
  • Go-gt - 图论算法
  • Go.matrix - 线性代数
  • Gocomplex - 复数库
  • Gofrac - Go 语言分数库,支持基本算术
  • Gohistogram - 数据流的近似直方图
  • Gonum/mat64 - 矩阵计算通用包。 mat64 提供了用于进行64位浮点基础线性代数操作的功能
  • Gonum/plot - Gonum/plot 提供了用于创建和绘制图表的 API
  • Goraph - 纯 Go 语言编写的图论库(数据结构,算法可视化)
  • Gostat - 统计库
  • graph - 包含基础图算法的库
  • ode - 普通微分方程 (ODE) 求解器。支持扩展状态及基于通道的迭代算法终止条件
  • pagerank - Go 语言实现的加权网页排名( PageRank)算法
  • PiHex - 贝利-波尔温-普劳夫公式(”Bailey-Borwein-Plouffe”)算法的实现,用于计算十六进制π
  • stats - 统计库,包含一些 Go 语言标准库中漏掉的常用函数
  • streamtools - 通用图形化工具,用于处理流数据
  • vectormath - 给 Go 语言用的 Vectormath , 是对索尼的矢量数学库中 C 语言函数的改写,可以在 Bullet-2.79 源码中找到 (当前不活跃)

安全

可以帮助你增强应用程序安全性的库

  • acmetool — ACME (Let’s Encrypt) 客户端工具,有自动延长功能.
  • BadActor - 一个驻留在内存中的,应用驱动的监控程序,受 fail2ban 的启发
  • Go-yara - YARA的 Go 语言接口,号称是 “对于恶意软件研究者(以及其他人)来说是模式匹配的瑞士军刀
  • leGo - 纯 Go ACME 客户端库及命令行工具
  • memguard - 一个用于处理内存中敏感数据的 Go 语言库
  • passlib - 不过时的密码哈希库
  • secure - Go 语言 HTTP 中间件,为 Go 提供了一些安全功能
  • simple-scrypt - Scrypt 库,具有简单、易懂的 API,同时具有内置的自动校准功能
  • ssh-vault - 利用 ssh 秘钥加解密

序列化

用于进行二进制序列化的库和工具

  • asn1 - Asn.1 BER 及 DER 编码库
  • colfer - 用于生成 Colfer 二进制格式代码
  • Go-capnproto - Go 语言用的 Cap’n Proto 库及解析器
  • bambam - 用于 Go 语言生成 Cap’n Proto schemas 的生成器
  • Go-codec - 高性能、多功能、规范化编码解码以及 rpc 库, 用于 msgpack, cbor 和 json,支持基于运行时的 OR 码生成
  • GoGoprotobuf - Go 语言的 Protocol Buffer 库
  • Goprotobuf - 通过库和协议编译器插件使 Go 语言支持 Google的 protocol buffers.
  • jsoniter -高性能,100% 兼容的”encoding/json” 替代品
  • mapstructure - 用于对原生键值对进行解码生成 Go 语言结构体
  • php_session_decoder - 用于协同 PHP session 格式数据和 PHP 序列化/反序列化函数工作的go语言库
  • structomap - 用于从静态结构体简单、动态的生成键值对的库

服务器程序

  • algernon - HTTP/2 web 服务器,支持 Lua、Markdown、GCSS 和 Amber.
  • Caddy - Caddy 是一个备选的 HTTP/2 web 服务器,配置简单,使用方便。
  • consul - Consul 是一个用于服务发现、监控和配置的工具
  • devd - 开发者使用的本地 web 服务器
  • etcd - 高可用性的键值存储,用于分享配置和服务发现
  • minio - Minio 是一个分布式对象存储服务器
  • nsq - 一个实时的分布式消息平台
  • yakvs - 小型化、网络化、基于内存的键值存储

模板引擎

模板库及工具

  • ace - Ace 是一个 Go 语言的 HTML 模板引擎,受到了 Slim 和 Jade 的启发。 Ace 是对Gold的一种改进。
  • amber - Amber 是一个优雅的模板引擎,受到 HAML 和 Jade的启发
  • damsel - 标记语言,通过css选择器实现了 html 框架 ,并可以通过 pkg html/template 等进行扩展
  • eGo - 轻量级模板语言,让你可以使用 Go 语言来创建模板。模板会被转化为 Go 语言并编译
  • fasttemplate - 简单快速的模板引擎。进行模板元素替换时,速度是text/template的十倍
  • Gofpdf - PDF 文档生成器,支持文本,绘图和图片
  • grender - 对 html/template 进行了简单的封装,支持基于文件的模板可以利用其他模板文件进行扩展
  • hero Hero 是一个趁手的、快速的、强大的 Go 语言模板引擎
  • jet - Jet 模板引擎
  • kasia.Go - 一个用于HTML 和其他文本文件的模板系统,使用go语言实现
  • liquid - Go 语言实现的 Shopify Liquid 模板.
  • mustache - Go 语言实现的 Mustache 模板语言
  • ponGo2 - 类似 DjanGo 的模板引擎
  • quicktemplate - 快速、强大且易用的模板引擎。将模板转化为 Go 语言并进行编译
  • raymond - 使用 Go 语言实现的完整的 handlebars
  • GoRazor - Go 语言的 Razor 视图引擎
  • Soy - Go 语言实现的谷歌闭包模板(也就是 Soy templates) , 参见official spec
  • velvet - 使用 Go 语言实现的完整的 handlebars

测试

测试及用于生成测试数据的库.

  • 测试框架
    • assert - 基础断言库,用于对 Go 语言程序进行测试,提供了一些用于自定义断言的代码块
    • badio - Go 语言 testing/iotest 包的扩展
    • baloo - 表达性强、多功能的、端到端的HTTP API 测试工具
    • bro - 监控目录中的文件并对其进行测试
    • dbcleaner - 清空数据库用于测试,受到database_cleaner 的启发
    • dsunit - 数据库测试,针对 SQL、 NoSQL、 结构化文件.
    • frisby - REST API 测试框架
    • ginkGo - BDD 测试框架
    • Go-carpet - 用于在终端中查看测试覆盖率的工具
    • Go-mutesting - Go 语言源代码突变测试(Mutation testing )
    • Go-vcr - 记录并重放 HTTP 交互,用于快速的、确定性的、准确的测试
    • Goblin - 类似 Mocha 的测试框架
    • Gocheck - 更加高级的测试框架,用于替换 Gotest.
    • GoConvey - BDD 风格的测试框架,具有 web 界面和计时刷新功能
    • Godog - 类似 Cucumber 或 Behat 的 BDD 框架
    • Gofight - 对 Go 语言的路由框架进行 API 测试
    • Gomega - 类似 Rspec 的 matcher/assertion 库
    • GoSpec - BDD 风格的测试框架
    • Gospecify - 支持 BDD 语法 。对于任何使用过 rspec 等库的人来说应该非常熟悉
    • Gosuite - 轻量级测试套,为 Go1.7’s Subtests 带来了setup/teardown 功能
    • Hamcrest - fluent framework for declarative Matcher objects that, when applied to input values, produce self-describing results.
    • httpexpect - 简洁的、声明式的、易用的端到端HTTP 及 REST API 测试
    • restit - 帮助编写 RESTful API 集成测试的 Go 语言微型框架.
    • testfixtures - 类似 Rails 的测试工具,用于测试数据库应用
    • Testify - 对标准测试包的扩展
    • wstest - Websocket 客户端,用于对于 websocket HTTP.Handler 进行单元测试
  • Mock
    • counterfeiter - 用于生成自包含 mock 对象的工具
    • Go-sqlmock - Mock SQL ,用于测试数据库交互
    • Go-txdb - 基于单事物的数据库驱动,主要用于测试目的
    • Gock - 多功能、易用 HTTP mock
    • Gomock - 给 Go 语言用的 Mock框架
    • Govcr - HTTP mock : 离线测试时记录和重放浏览器的动作
    • minimock - Mock 生成器
    • mockhttp - Go HTTP.ResponseWriter 使用的 Mock 对象
  • Fuzzing and delta-debugging/reducing/shrinking
    • Go-fuzz - 随机化测试系统
    • Gofuzz - 用于生成随机值来初始化 Go 语言对象的库
    • Tavor - 通用模糊测试框架
  • Selenium 及浏览器控制工具
    • cdp - 类型安全的 Chrome debug协议的 Go 语言接口,可以用于浏览器或任何实现了该协议的其他待调试对象
    • chromedp - 用于驱动和测试 Chrome, Safari, Edge, Android Webviews, 以及其他支持 Chrome 调试协议的产品
    • ggr - 一个轻量级服务器,可以将 Selenium Wedriver 的请求路由或代理到多个 Selenium hubs.
    • selenoid - Selenium hub 服务器的替代品,在容器中启动浏览器

文本处理

解析和操作文本的库

  • 特殊格式

    • allot - 占位符及通配符文本解析
    • bbConvert - 将 bbCode 转换为 HTML
    • blackfriday - Markdown 解析器
    • bluemonday - HTML 清理工具
    • editorconfig-core-Go - Go 语言用的Editorconfig 文件解析和操作库
    • enca - libenca的极简的 cGo 接口
    • genex - 计算并展开正则表达式为所有匹配的字符串
    • github_flavored_markdown - GitHub 风格的 Markdown 渲染器 (使用 blackfriday) ,支持代码块高亮以及可点击的锚点
    • Go-humanize - 时间、数字及内存大小格式化工具
    • Go-nmea - NMEA 解析库
    • Go-pkg-rss - 这个库可以读取 RSS 以及 Atom feeds,并且提供了一种缓存机制,遵守 feed 标准。
    • Go-runewidth - 用于获取字符或字符串固定宽度的函数
    • Go-slugify - 生成漂亮的固定链接地址(slug),支持多种语言
    • Go-vcard - 解析并且格式化vCard
    • Gofeed - 使用 Go 语言解析RSS 和 Atom
    • Gographviz - 用以解析 Graphviz DOT 语言
    • Gommon/bytes - 格式化二进制为字符串
    • Gonameparts - 将人名解析为几个独立的部分
    • Goq - 声明式 HTML 编组,使用结构标签和 jQuery 语法 (使用 GoQuery).
    • GoQuery - GoQuery 为 Go 语言带来了一组类似 jQuery 的语法和功能
    • Goregen - 根据正则表达式生成随机字符串
    • Gotext - GNU gettext 工具
    • guesslanguage - 通过一个 unicode 文本来猜测该文本使用的语言
    • inject - inject 提供来一个基于反射对注入器
    • mxj - 将 XML 编解码为 JSON 或 map[string]interface{}; 通过点分路径和通配符来提取值。用于替代Replaces x2j 和 j2x 包.
    • sh - Shell 解析器及格式化工具
    • slug - URL 友好的 slug 化工具,支持多种语言
    • Slugify - Go 语言静态地址生成器,可以处理字符串
    • toml - TOML 配置格式 format (encoder/decoder with reflection).
  • 工具

    • Gotabulate - 使用 Go 语言简单、美观的打印表格数据
    • kace - 通用大小写转换工具
    • parseargs-Go - 字符串参数解析器,能够理解引用及反斜杠
    • parth - URL 路径分割解析
    • radix - 快速的字符串排序算法
    • xurls - 从文本中提取 URL

第三方 APIs

用于访问第三方 APIs 的库

  • amazon-product-advertising-api - Amazon Product Advertising API 的 go 语言客户端
  • anaconda - Twitter 1.1 API 的 go 语言客户端
  • aws-sdk-Go - AWS 提供的官方go语言 SDK
  • brewerydb - 用于访问 BreweryDB API的 Go 语言库
  • cachet - Cachet (open source status page system)的 Go 语言客户端
  • circleci - 用于和 with CircleCI’s API 进行交互的 Go 语言客户端
  • clarifai - 用语和 Clarifai API 交互的 Go 语言库
  • discordGo - Discord Chat API 的 Go 语言接口
  • facebook - 支持 Facebook Graph API 的库
  • fcm - Firebase Cloud Messaging 的 Go 语言库
  • gads - Google Adwords 非官方 API
  • gami - Asterisk Manager Interface 的 Go 语言库
  • gcm - Google Cloud Messaging 库
  • geo-Golang - 用于与 Google Maps, MapQuest, Nominatim, OpenCage, HERE, Bing, Mapbox, 及 OpenStreetMap 地理编码 / 反编码 APIs 交互的库
  • ghost - 用于和 Snapchat API 交互的库
  • github - 用于和 GitHub REST API v3 交互的库
  • githubql - 用于和GitHub GraphQL API v4 交互的库
  • Go-imgur - imgur 的 Go 语言客户端
  • Go-jira - Atlassian JIRA 的 Go 语言客户端
  • Go-marathon - 用于和 Mesosphere’s Marathon PAAS 交互的 Go 语言库
  • Go-myanimelist - 用于和 MyAnimeList API交互的库
  • Go-telegraph - Telegraph 发布平台 API 客户端
  • Go-tgbot - 纯 Go 语言的Telegram 机器人 API 封装,通过 swagger 文件,基会话的路由和中间件
  • Go-trending - 用于获取 Github 上面 当前流行的代码库 及 开发者
  • Go-twitch - 用于和推特v3 API 进行交互的 Go 语言客户端
  • Go-twitter - 用于和推特v1.1 API 进行交互的 Go 语言客户端
  • Go-unsplash - Unsplash.com API 的 Go 语言客户端
  • Go-xkcd - xkcd API 的 Go 语言客户端
  • Goamz - Goamz 的一个fork分支,添加了一些缺失的 API,用于调用特定的软件包。
  • Golyrics - Golyrics 是一个 Go 语言库,用于从 Wikia 上获取歌词
  • GoMusicBrainz - Go MusicBrainz WS2 客户端
  • Google - 为go语言自动生成 Google api
  • Google-analytics - Google 分析报告的一个简单的封装
  • Google-cloud - Google Cloud APIs Go 语言客户端库
  • Google-email-audit-api - Google G Suite Email Audit API的 Go 语言客户端库
  • Gostorm - GoStorm 是一个 Go 语言库,实现了在 Go 语言里面编写 Spout 和 Bolt 的协议,用于和 Storm shells 进行通信
  • Govkbot - 简单的 Go VK 机器人库
  • hipchat - 这个项目实行了Hipchat API 的 Go 语言客户端
  • hipchat (xmpp) - 通过使用 XMPP 与 HipChat 进行通信的库
  • Medium - Medium OAuth2 API 的 sdk
  • meGos - 用于访问 Apache Mesos 集群的客户端
  • micha - 用于Telegram bot api的go语言库
  • minio-Go - go 语言 Minio 客户端,用于 Amazon S3 兼容的云存储
  • mixpanel - Mixpanel 是一个用于追踪事件并发送 Mixpanel profile 的更新到 Mixpanel 的库
  • patreon-Go - Patreon API.
  • paypal - PayPal 支付 API
  • playlyfe - Playlyfe Rest API 的 Go 语言 SDK
  • pushover - Pushover API 的 Go 语言封装
  • rrdaclient - 用于接入 statdns.com API 的库——RRDA API。通过HTTP协议进行 DNS查询
  • shopify - 一个用于通过 Shopify API 进行增删改查的 Go 语言库
  • slack - Slack API
  • smite - 对 Smite game API 的封装
  • spotify - 用于接入 Spotify WEB API 的 Go 语言库
  • steam - 用于与Steam服务器进行交互的库
  • stripe - Stripe API 的 Go 语言客户端
  • tbot - Telegram bot 服务器,有类似 net/http 的 api
  • telebot - go语言编写的 Telegram bot 框架
  • telegram-bot-api - 简洁的 Telegram bot 客户端.
  • textbelt - textbelt.com txt messaging API 的go语言客户端
  • TheMovieDb - 用于和 themoviedb.org 通信的一个简单的 Go 语言软件包
  • translate - Go 在线翻译包
  • Trello - Trello API的 Go 语言封装
  • tumblr - Tumblr v2 API 的 Go 语言封装
  • webhooks - GitHub 和 Bitbucket 的Webhook接收器
  • zooz - Zooz API 的 Go 语言客户端

实用工具

可以让你的生活变得更简单的实用工具.

  • abutil - 常用 Go 语言工具的集合
  • apm - Go 语言进程管理工具具有HTTP API.
  • boilr - 一个超快的命令行工具,用于从模板文件生成项目
  • circuitbreaker - Go 语言断路器模式
  • clockwerk - 使用简单、流畅的语法来调度周期性任务
  • command - 命令模式,支持线程安全的串行、并行调度
  • coop - Go 语言中常见的并发流程速查表
  • copy-pasta - 通用多工作站剪切板,使用类似 S3 的后端作为存储
  • ctop - 类似Top的接口 (例如 htop) ,用于容器数据收集
  • Death - 利用信号管理应用程序的关闭
  • Deepcopier - 结构体拷贝
  • delve - Go 语言调试器
  • dlog - 编译时控制的日志,让你的 release 包变得更小而不需移除 debug 调用
  • excelize - 用于读写 Microsoft Excel (XLSX) 文件的库
  • fastlz - FastLz (免费,开源,可移植实时压缩库) 的一个封装
  • filetype - 通过数字签名来推测文件类型
  • filler - 使用 “fill” 标记来填充结构体的小工具
  • fzf - 命令行模糊查找工具
  • generate - 针对一个路径或环境变量,递归的执行 Go generate,可以通过正则表达式来进行过滤
  • gentleman - 全功能、插件驱动的 HTTP 客户端库
  • git-time-metric - 简单、无缝、轻量级的 Git 时间追踪工具
  • GJSON - 一行代码获取 JSON
  • Go-astitodo - 解析你 Go 语言代码中的 TODOs(待办事项)
  • Go-bind-plugin - Go:generate 工具,用于构建 Go 语言插件(1.8 only),并对导出的符号进行包装
  • Go-cron - 简单的 Go 语言 Cron 库,可以以不同的时间间隔来执行闭包或函数,从一秒到某年某月某日都可以。主要针对的是 Web 应用或者长期运行的守护进程
  • Go-debug - 条件调试日志,用于 Go 语言库和应用程序
  • Go-dry - DRY (don’t repeat yourself)
  • Go-funk - 现代 Go 语言工具库,提供了很多有用的工具 (map, find, contains, filter, chunk, reverse, …)
  • Go-httpheader - 用于将结构体编码进 http 头的 Go 语言库
  • Go-rate - Go 语言版本的限速器
  • Go-respond - 用于处理常见 HTTP JSON 响应的库.
  • Go-sitemap-generator - XML 网站地图生成器
  • Go-torch - 为 Go 语言程序生成火焰图
  • Go-trigger - Go 语言全局事件触发器,通过 id 和触发器,在程序的任何地方注册事件
  • Go-underscore - 一些有用的 Go 语言工具的集合
  • Goback - 一个 Go 语言的简单的指数补偿包
  • Godaemon - 用于编写守护进程的工具
  • Godropbox - 用于编写 Go 语言服务/应用的库,来自 Dropbox.
  • Gohper - 多种能够帮助你进行软件开发的工具和模块
  • Gojq - 通过 Go 语言进行 JSON 查询
  • Gojson - 通过 JSON 自动生成 Go 语言结构体
  • Golarm - 告警(支持系统事件)
  • Golog - 简单、轻量级的命令后工具,用于对你的计划任务进行跟踪
  • Gopencils - 简单小巧的 Go 语言库,能够很容易的使用各种 REST APIs.
  • Goplaceholder - 一个小巧的 Go 语言库用于生成占位图片
  • Goreleaser - 尽可能快速的发布 Go 语言二进制文件
  • Goreporter - 进行代码静态分析,单元测试,代码检视并生成代码质量报告的工具
  • Goreq - 简洁的 Go 语言 http 请求库
  • Goreq - 更加简化的 http客户端,基于 Gorequest.
  • Gorequest - 简化的 http 客户端,具有丰富的特性
  • Goseaweedfs - conseilSeaweedFS 客户端,几乎具有全部的特性
  • Gotenv - 从 .env 或者任何 io.Reader中加载环境变量
  • Goxlsxwriter - 用于操作 XLSX (Microsoft Excel) 文件的 libxlsxwriter 库的 Go 语言接口
  • gpath - 用于简化结构体域访问的库
  • grequests - 简单优雅的 net/HTTP 封装,紧随 Python 的 requests 的步伐
  • gron - 使用简单的 Go 语言 API 和 Gron 调度器创建定时任务
  • htcat - 并行及流水线的 HTTP GET 工具
  • httpcontrol - httpcontrol 包,运行进行 HTTP 传输层超时和重传控制
  • hub - 封装了 git 命令,提供了额外的功能用于在终端中和 Github 进行交互
  • hystrix-Go - 实现 Hystrix 风格的、程序员预定义的 fallback 机制(熔断)
  • immortal - *nix 跨平台 (与操作系统无关的)监控程序
  • intrinsic - 不需要编写任何汇编代码就能使用 x86 SIMD
  • JobRunner - 智能的、多功能的定时任务调度器,具有任务队列和实时监控功能
  • jsonapi-errors - JSON API errors 的 Go 语言接口.
  • jsonf - 控制台工具,用于高亮及 JSON 查询功能
  • jsonGo - 用于更加方便的构建 JSON 对象的 API
  • jsonhal - 一个简单的 Go 语言软件包,用于将自定义结构体转换为 HAL 兼容的 JSON 响应
  • kazaam - 用于传输任意 JSON 文件的 API
  • lrserver - LiveReload 服务器
  • mc - Minio Client 提供了一组工具,用于操作 Amazon S3 兼容云存储和文件系统
  • merGo - 用于将结构体和map合并进 Go 语言的工具。对于配置默认值,避免杂乱的if语句很有帮助
  • minify - 快速压缩 HTML, CSS, JS, XML, JSON 以及 SVG 文件格式
  • mmake - 现代 Make 工具
  • moldova - 基于输入目标生成随机数据的工具
  • mp - 简单的命令行邮件解析器,当前支持标准输入并输出JSON.
  • mssqlx - HA 客户端,用于主-从 (或主-主) 数据库,集成了简单的、轻量级的轮询调度负载均衡。基于 sqlx.
  • multitick - 用于 aligned tickers 的多路复用
  • netbug - 远程对你的服务进行性能分析
  • ngrok - 创建到 localhost 的隧道
  • okrun - 当 Go 文件运行报错时尝试修复并运行
  • onecache - 支持多种后端存储的缓存库(Redis, Memcached, 文件系统等)
  • panicparse - 将类似的协程分组并对调用栈进行着色
  • peco - 简单的交互式过滤工具
  • pester - Go HTTP 客户端,具有重传,补偿和并发功能
  • pm - 基于 HTTP API 的进程管理 (i.e. Goroutine)
  • profile - 一个简单的性能分析软件包
  • rclient - 可读性良好、灵活、易用的 REST APIs 客户端
  • realize - Go 语言构建系统,可以监控文件变化并重新加载。运行,构建,监控文件并支持自定义路径
  • request - Go 语言版的 HTTP Requests for Humans™.
  • rerate - 基于 Redis 的速率计数器和限速器
  • rerun - 当源码变化时,重新编译并重新运行 Go 语言编写的 app
  • resty - 简单的 HTTP 和 REST 客户端,受到 Ruby rest-client 的启发
  • retry - 基于上下文的功能机制,反复执行命令直到成功
  • robustly - 有弹性的执行函数,遇到错误时捕获并重新运行
  • scheduler - 从容的进行 Cronjobs 任务调度
  • sling - Go HTTP 请求构造器,用于 API 客户端
  • spinner - 一个 Go 语言软件包,提供多种选项,方便在终端中创建加载动画
  • sqlx - 为内建的数据库/sql 软件包提供一组扩展
  • Storm - 一个用于 BoltDB 的简单又强大的工具
  • Task - 简单来讲就是 “Make” 的替代品
  • toolbox - 切片, map, multimap, 结构体, 函数,数据转换工具。服务路由,宏求值和标记器
  • uGo - uGo 是一个切片工具箱,有着和 Go 语言一致的语法
  • UNIS - Go 语言字符串处理函数的通用架构
  • usql - usql 是一个通用的命令行接口,用于操作 sql 数据库
  • util - 收集了很多有用的函数
  • wuzz - 交互式命令行程序,用于进行 HTTP 检查
  • xferspdy - Xferspdy 提供了二进制对比功能以及 Go 语言补丁库
  • xlsx - 简化了在 Go 语言程序中读取 xml 格式文件的操作

验证

用于验证的库

  • Govalidator - 数据验证及清晰工具,用于字符串,数字, 数组切片及结构体
  • ozzo-validation - 支持多种数据类型的验证 (结构体,字符串,键值对,数组切片等等),具有可配置、可扩展的验证规则——使用常用代码结构定义,而非结构体标签
  • validate - 提供了一个用于为 Go 语言英语程序编写验证工具的框架
  • validator - Go 结构体及域验证,包括:跨域、跨结构体, Map, 切片和数组

版本控制

用于版本控制的库

  • gh - 用于 GitHub Webhooks 的可编程服务器以及 net/HTTP 中间件
  • git2Go - libgit2 的 Go 语言接口
  • Go-vcs - 通过 Go 语言来操作和检视 VCS 代码仓库
  • hGo - HGo 是一个 Go 语言软件包集合,提供了对本地 Mercurial 仓库的读取能力.

视频

用于操作视频的库

  • gmf - FFmpeg av* 库的 Go 语言接口.
  • Go-astisub - 使用 Go 语言操作字幕(.srt, .stl, .ttml, .webvtt, .ssa/.ass, teletext, .smi, etc.).
  • Goav - 易用的 FFmpeg Go 语言接口
  • gst - GStreamer 的 Go 语言接口
  • v4l - Linux 下使用的视频截图库,Go 语言编写

Web 框架

全栈 web 框架

  • aah - 可扩展、高性能、快速发布的 Go 语言 web 框架
  • Air - 理想的 RESTful web 框架
  • BeeGo - beeGo 是一个开源的、高性能的 Go 语言 web 框架
  • Buffalo - 为 Go 语言带来堪比 Rails 的高生产效率
  • Echo - 高性能、极简的 Go 语言 web 框架
  • Fireball - 感觉更加自然的 web 框架
  • Florest - 高性能的、基于工作流的 REST API 框架
  • Gem - 简单快速的 web 框架,对 REST API 很友好
  • Gin - Gin 是一个 Go 语言编写的 web 框架!提供了一组类似 martini 的 API ,具有更好的性能(40倍)。如果你需要高性能和高生产率,这个框架很适合你
  • Gizmo - 纽约时报正在使用对微服务工具集
  • Go-json-rest - 快速、简单的创建 RESTful JSON API.
  • Go-relax - 具有可插拔组建的框架,用于构建 RESTful API’s.
  • Go-rest - Go 语言 REST 框架中的小恶魔
  • Goa - 用于开发微服务的框架,基于 Ruby 的 Praxis 的设计
  • Goat - 极简的 REST API 服务器
  • Golf - Golf 是一个快速、简单、轻量级的 Go 语言微型 web 框架。具有强大的功能且没有标准库以外的依赖
  • Gondola - 用于快速编写高性能网站的框架
  • Gongular - 快速 Go web 框架,支持输入映射/验证以及依赖注入
  • Macaron - Macaron 是一个高效的模块化设计的web框架
  • manGo - ManGo 是一个模块化 web 应用框架,受到 Rack 和 PEP333 的启发
  • Microservice - 用于创建微服务的框架,使用 Go 语言编写
  • neo - 是一个极小且快速的 Go 语言 web 框架,具有及其简单的 API
  • Resoursea - 用于快速编写基于资源对服务的 REST 框架
  • REST Layer - 用于构建在数据库之上构建 REST/GraphQL API 且大多数配置都可以通过代码完成
  • Revel - go语言高生产率框架
  • rex - Rex 是一个用于进行模块化开发的库,基于Gorilla/mux 完全兼容大多数的 net/HTTP.
  • sawsij - 轻量级、开源的 web 框架,用于构建高性能、数据驱动的web应用
  • tanGo - 微型的、支持插件的 web 框架
  • tigertonic - 用于构建 JSON web 服务的 Go 语言框架,受到 Dropwizard 的启发
  • traffic - 受到 Sinatra 启发的 Go 语言 web 框架
  • utron - 轻量级的go语言 MVC 框架
  • violetear - Go HTTP 路由库
  • YARF - 快速的微型框架,用于快速、简单地构建 REST APIs 以及 web 服务
  • Zerver - Zerver 是一个富有表达力的、模块化的、全功能的 RESTful 框架.

Windows

  • d3d9 - Direct3D9 的 Go 语言接口
  • Go-ole - 为 Go 语言实现的 Win32 OLE

XML

Libraries and tools for manipulating XML.

  • Go-pkg-xmlx - 对 Go 语言 XML 标准库的扩展。维护来一个节点树,允许前进和后退浏览以及一些简单的单/多节点搜索函数
  • XML-Comp - 简单的命令行 XML 比较工具,可以生成关于目录、文件和标签对差异信息
  • xmlwriter - Procedural XML 生成 API 基于 libxml2 的 xmlwriter 模块.
  • xpath - XPath 库
  • xquery - XQuery 使你可以从 HTML/XML文档中抽取数据和求值,使用 XPath 表达式

中间件

中间件

  • CORS - 非常方便地向你的 api 中添加 CORS 功能
  • formjson - 将 JSON 输入看作说一个标准的表单 POST 来处理
  • Limiter - 超级简单的限速中间件
  • Tollbooth - HTTP 请求限速中间件
  • XFF - 处理 X-Forwarded-For 头的中间件

用于创建 HTTP 中间件的库

  • alice - 用于连接中间件的库,简单无痛苦
  • catena - HTTP.Handler wrapper catenation (和chain具有相同的 API ).
  • chain - Handler wrapper chaining with scoped data (net/context-based “middleware”).
  • Go-wrap - 小型中间件库,用于net/HTTP.
  • Gores - 用于处理 HTML, JSON, XML 等。对于 RESTful APIs 很有用。
  • interpose - 极简的 net/HTTP 中间件
  • muxchain - 用于net/HTTP的轻量级中间件
  • negroni - 符合语言习惯的 HTTP 中间件库
  • render - 用于轻松渲染 JSON, XML, 及 HTML 模板响应的库
  • rye - 小型 Go 语言中间件库 ,支持 JWT, CORS, Statsd, 及 Go 1.7 context
  • stats - Go 语言中间件,用于存储web应用的多种信息
  • Volatile - 极简的go语言中间件技术栈,强调灵活性、优秀实践及简洁代码

路由

  • alien - 轻量级、超快速的 HTTP 路由,来自外星科技
  • Bone - 轻量级快速 Fast HTTP Multiplexer.
  • Bxog - 为go语言编写的简单快速点 HTTP 路由。能够配合多种不同复杂度、长度和嵌套的路由工作。同时它能够根据接收到的参数创建 URL
  • chi - 小巧、快速、具有丰富表达力的 HTTP 路由,基于net/context.
  • fasthttprouter - 从httprouter fork出来的高性能路由,是第一个适配 fasthttp的路由
  • Gocraft/web - Mux 及中间件包
  • Goji - Goji 是一个极简的、灵活的HTTP 请求数据分选器,支持 net/context.
  • GoRouter - GoRouter 是一个服务器/API 微型框架、HTTP 请求路由 router, 数据分选器,提供了支持net/context的中间件
  • Gowww/router - 超快的HTTP 路由,完全兼容 net/HTTP.Handler 接口.
  • httprouter - 高性能路由。使用这个库和标准http处理工具可以构建一个非常高性能大web框架
  • httptreemux - 高速,灵活,基于树的 HTTP 路由。受到了 httprouter 的启发
  • lars - 树一个轻量级、快速、可扩展、零分配的HTTP路由,用于创建定制化的框架
  • medeina - Medeina是一个HTTP路由树,基于 HttpRouter 。基于 Roda 和 Cuba.
  • mux - 强大的 URL 路由和分发库
  • ozzo-routing - 一个极快的go语言http路由,支持正则路由匹配。完全支持创建 RESTful APIs.
  • pat - Sinatra 风格的模式 muxer ,用于go语言 net/http库,由 Sinatra的作者编写。
  • pure - 是一个轻量级http路由,严格符合标准”net/HTTP”实现
  • Siesta - 具有可组合性的框架,用于编写中间件和 handlers
  • vestiGo - 高性能、独立的、符合 HTTP 标准的 URL 路由,用于构建go语言web应用
  • xmux - 高性能 muxer,基于 httprouter ,支持 net/context
  • zeus - 非常简单快速的http路由

工具

Go语言软件及插件

代码分析

  • apicompat - 检测一个go语言项目最近的变化,用于监测不能向后兼容的改动
  • dupl - 用于检测重复代码的工具
  • errcheck - Errcheck 是一个用于检测go语言程序中未处理错误的程序
  • gcvis - 实时地将 Go 语言垃圾回收进行可视化
  • Go Metalinter - Metalinter 会自动应用全部的静态分析工具,并生成形式一致的分析报告
  • Go-checkstyle checkstyle是一个代码风格检查工具,类似 java checkstyle 。这个工具就是受到 java checkstyle 和 Golint 的启发
  • Go-cleanarch - Go-cleanarch 用于检查代码是否符合简洁架构的相关法则,比如依赖法则以及你的Go语言项目中各个库的交互情况
  • Go-outdated - 这是一个命令行程序,用于显示过时的库
  • Goast-viewer - 基于 Web 的 Golang AST 可视化工具.
  • GoCover.io - GoCover.io 可以查看任何go语言软件包的代码覆盖率
  • Goimports - 用于自动修复,添加,删除你的 Go 语言项目的 import
  • GoLint - Golint 是一个针对 Go 语言源码的 lint 工具
  • Golint online - 使用golint对GitHub, Bitbucket 以及 Google Project Hosting上面的 Go 语言源文件进行静态分析
  • Goreturns - 添加零值 return 语句以符合函数返回值类型
  • Gosimple - Gosimple 是一个针对 Go 语言的lint工具,专注于简化代码
  • Gostatus - 命令行工具,查看当前 Go 语言软件包仓库的状态
  • interfacer - 可以提供接口类型建议的 Lint 工具
  • lint - 将lint作为go语言测试的一部分来执行
  • staticcheck - staticcheck is Go vet on steroids, applying a ton of static analysis checks you might be used to from tools like ReSharper for C#.
  • unconvert - 从go语言代码中移除不必要的类型转换
  • unused - unused 会检查 Go 语言代码中没有用到的常量,变量,函数和类型
  • validate - 自动验证结构体类型

编辑器插件

  • Go plugin for JetBrains IDEs - JetBrains IDEs 使用的 Go 语言插件
  • Go-lang-idea-plugin (废弃) - IntelliJ (JetBrains) IDEA 之前使用的插件,现在已经被上面的官方插件所取代
  • Go-mode - GNU/Emacs的 Go 语言模式
  • Go-plus - 供Atom 使用的自动补全、格式化、语法检查、lint 及 Vetting 的软件包
  • Goclipse - Eclipse 的 Go 语言插件
  • Gocode - go语言自动补全
  • GoSublime - SublimeText 2 使用的 Go 语言插件,支持代码补全以及一些类似 IDE 的特性
  • velour - acme 编辑器使用的 IRC 客户端
  • vim-compiler-Go - Vim插件,在保存时高亮语法错误
  • vim-Go - Vim 使用的 Go 语言开发插件
  • vscode-Go - Visual Studio Code (VS Code) 使用的一个扩展,为 Go 语言提供了支持
  • Watch - 当文件变动时,在 acme 窗口中执行命令

Go 语言工具

  • colorGo - 对 Go 命令进行了封装,用于为Go build的输出结果添加颜色
  • depth - 通过分析导入的库,将某个包的依赖关系用树状结构进行显示
  • gb - 一个简单易用的基于项目的构建工具,用于 Go 语言
  • Go-callvis - 使用 dot 语言将你的 Go 语言程序函数调用关系可视化
  • Go-pkg-complete - Bash 代码补全,用于Go 和 wGo.
  • Go-swagger - 为 Go 语言实现的Swagger 2.0, Swagger 是一个简单但强大的工具,用于展示你的 RESTful API.
  • OctoLinker - 使用 github 的浏览器插件 OctoLinker 高效浏览 Go 语言文件
  • rts - RTS(是response to struct的缩写)用于根据服务器的响应生成 Go 语言结构体

软件包

使用 Go 语言编写的软件

DevOps 工具

  • aptly - aptly 是一个 Debian 库管理工具
  • aurora - 跨平台、基于web的 Beanstalkd 队列服务器控制台
  • awsenv - 加载 Amazon (AWS) 环境变量作为 profile 文件
  • Banshee - 异常检测系统,用于周期性数据测量
  • bombardier - 快速的、跨平台的HTTP 基准工具.
  • bosun - 时间序列告警框架
  • doGo - 监控源文件中的变化并自动编译和执行
  • drone-jenkins - 触发下游 Jenkins 任务, 可以通过二进制文件、 docker 或者 Drone CI来使用
  • drone-scp - 通过 SSH 拷贝文件及可执行程序,可以通过二进制文件、 docker 或者 Drone CI来使用
  • Dropship - 通过 cdn 部署代码的工具
  • easyssh-proxy - 一个用于通过 ssh 远程执行命令以及通过ProxyCommand 来进行 SCP 下载
  • Gitea - Gogs的fork,完全社区驱动
  • Go Metrics - Coda Hale 的 Metrics library的 Go 语言接口: https://github.com/codahale/metrics.
  • Go-selfupdate - 让你的 Go 语言程序可以自我更新
  • Gobrew - Gobrew 让你可以在不同版本的 Go 语言之间轻松切换
  • Godbg - 基于 Web 的前端 gdb 应用程序
  • Gogs - 自我托管的Git服务
  • Gonative - 为 Go 语言创建可以在多平台进行交叉编译的工具,使用 CGo-enabled 标准库
  • Govvv - 对“Go build”进行了封装,用于轻松的向 Go 语言二进制文件中添加版本信息
  • Gox - 非常简单的 Go 语言交叉编译工具
  • Goxc - Go 语言构建工具,专注于交叉编译和打包
  • grapes - 一款轻量级工具,用于通过 ssh 发送命令
  • GVM - GVM 提供了用于管理 Go 语言版本的接口
  • Hey - Hey 是一个微型程序,用于向 web 应用发送一些載荷
  • kala - 极简、现代的、高效的任务调度
  • kubernetes - 来自 Google 的容器集群管理器
  • Moby - 为容器生态系统创建的一个合作项目,用于构建基于容器的系统
  • Mora - REST 服务器,用于获取 MonGoDB 文件和元数据
  • ostent - 收集并显示系统数据,可以作 Graphite 和/或 InfluxDB 的中继
  • Packer - Packer 通过单一的配置文件,为不同的平台创建独立机器镜像
  • Pewpew - 灵活的 HTTP 命令行压力测试 工具
  • Rodent - Rodent 帮助你管理 Go 语言版本,项目病追踪依赖
  • s3Gof3r - 为了从 Amazon S3中高速存取大型对象而特别优化的库
  • Scaleway-cli - 通过命令行来管理 BareMetal 服务器 (和使用 Docker 一样容易).
  • sg - 对一组 HTTP 端点 (比如 ab)进行了基准测试, with possibility to use the reponse code and data between each call for specific server stress based on its previous response.
  • StatusOK - 监控你的网站和 REST APIs。如果你的服务器挂了或是响应时间超过预期,则会通过 Slack, E-mail 来通知你
  • Vegeta - HTTP 加载测试工具和库
  • webhook - 允许用户创建 HTTP 端点,在服务器上执行命令
  • Wide - 基于 Web 的 IDE,为使用 Go 语言的团队设计
  • winrm-cli - 命令行工具,可以远程在 windows 机器上执行命令

其他软件

  • borg - 基于终端的搜索引擎,用于搜索 bash 代码 片段
  • boxed - 基于Dropbox 的博客引擎
  • Cherry - Go 语言实现的一个微型网络聊天服务器
  • Circuit - Circuit 是一个可编程的 PaaS 以及 IaaS,用于管理、发现以及编排各种云端应用的服务及主机
  • Comcast - 模拟不佳的网络连接
  • confd - 使用 etcd 或 consul 的模板及数据管理本地应用的配置文件
  • DDNS - 个人 DDNS 客户端,使用 Digital Ocean DNS 作为后端
  • Docker - 一个为开发者和系统管理员提供的分布式应用开放平台
  • Documize - 现代维基百科软件,可以继承 SaaS 工具提供的数据
  • fleet - 分布式初始化系统
  • Go Package Store - 一个可以显示你的 GoPATH 路径下 Go 软件包的更新的应用
  • Gocc - Gocc 是一个用 Go 语言编写的 Go 语言编辑器工具集
  • GoDocTooltip - 一个Chrome 浏览器扩展,可以在浏览 Go 语言文档时以工具提示的方式显示函数的描述信息
  • Gogland - 跨平台、全功能 Go 语言集成开发环境
  • Gor - Http 流量复制工具,用于将生产环境的流量在开发环境实施重现
  • hsync - 文件系统同步工具
  • huGo - 快速、现代的静态 web 引擎
  • ipe - 开源 Pusher 服务器,Go 语言编写,兼容 Pusher 客户端,由 Go 语言编写
  • JayDiff - Go 语言编写的JSON对比工具
  • Juju - 服务部署及编排工具,,支持 EC2, Azure, Openstack, MAAS 等等
  • Leaps - 结对编程服务,使用操作变换来避免冲突。
  • limetext Lime Text 是一个强大又优雅的编辑器,主要使用 Go 语言开发,意在成为 Sublime Text的继承者。
  • LiteIDE - LiteIDE 是一个简单、开源、跨平台的 Go 语言 IDE
  • mockingjay - 伪 HTTP 服务器,通过单一配置文件创建消费驱动。同时你还可以让服务器搞点事情,以进行更加符合现实情况的性能测试
  • myLG - Go 语言编写的命令行网络诊断工具
  • naclpipe - 简单的基于NaCL EC25519 的加密管道工具
  • nes - Go 语言编写的任天堂娱乐系统(NES)模拟器
  • orange-cat - Go 语言编写的 Markdown 预览工具
  • peg - Peg(Parsing Expression Grammar)是一个 Packrat parser generator 的实现
  • Postman - 一个批量发送邮件的命令行工具
  • restic - 解耦备份程序
  • rkt - App 容器运行时,集成了初始化系统,和其他容器兼容,比如 Docker,并且支持其他执行引擎,例如 KVM
  • Seaweed File System - 快速、简单、可扩展的分布式文件系统,具有O(1)的磁盘查找效率
  • shell2http - 通过 HTTP 服务器执行 shell 命令行(用于原型验证或远程控制).
  • snap - 强大的遥测框架
  • Stack Up - Stack Up 是一个超级简单的开发工具,就好比是服务器网络的 ‘make’ 工具
  • syncthing - 开源、去中心化的文件同步工具和协议
  • Tenyks - 面向服务的 IRC 机器人,使用 Redis 和 JSON 来发送消息
  • toto - Go 语言编写的简单代理服务器,可以和浏览器一起使用
  • toxiproxy - 模拟网络和系统状态的代理,用于自动化测试
  • tsuru - 可扩展的、开源的 SAAS 软件
  • vFlow - 高性能、可扩展、可靠的 IPFIX, sFlow 和 Netflow 集合.
  • websysd - 基于 web 的进程管理工具(类似 Marathon 或 Upstart).
  • wellington - Sass 项目管理工具, 通过支持一些功能(例如Compass)扩展了这门语言

资源

可以找到新的 Go 语言库和软件的地方

基准测试

  • autobench - 用于比较各个不同版本 Go 语言之间的性能的框架
  • Go-benchmark-app - 强大的 HTTP 基准测试工具,集成来 Аb, Wrk, Siege 工具。收集来统计数据以及多种参数用于基准测试和结果比较
  • Go-benchmarks - 一些基准程序的大杂烩。用于比较一些语言特性以及它们的替代方法.
  • Go-HTTP-routing-benchmark - Go HTTP 请求路由基准和比较
  • Go-type-assertion-benchmark - 对在 Go 语言中使用断言的两种方法进行了性能测试
  • Go-web-framework-benchmark - Go web 框架基准
  • Go_serialization_benchmarks - Go 语言序列化方法基准测试
  • Gocostmodel - Go 语言基础操作基准测试
  • Golang-micro-benchmarks - 一些go语言微基准测试的集合,目的是比较各种语言特性。
  • Golang-sql-benchmark - 对一些流行的 Go database/SQL 工具进行基准测试
  • Gospeed - Go 语言微型基准测试工具,用于测试语言结构的速度
  • kvbench - 键值数据库基准测试
  • skynet - Skynet 1M 线程微基准
  • speedtest-resize - 比较了 Go 语言的多种图片缩放算法

会议

  • Capital Go - 美国华盛顿
  • dotGo - 法国巴黎
  • GoCon - 日本东京
  • GolangUK - 英国伦敦
  • GopherChina - 中国上海
  • GopherCon - 美国丹佛
  • GopherCon Brazil - 巴西弗洛里亚诺波利斯
  • GopherCon Dubai - 迪拜
  • GopherCon India - 印度普纳
  • GopherCon Singapore - 新加坡丰树商业城
  • GothamGo - 美国纽约

E-Books

  • A Go Developer’s Notebook
  • An Introduction to Programming in Go
  • Build Web Application with Golang
  • Building Web Apps With Go
  • Go Bootcamp
  • GoBooks - Go 语言书籍列表
  • Learning Go
  • Network Programming With Go
  • The Go Programming Language
  • Web Application with Go the Anti-Textbook

Twitter

  • @Golang
  • @Golang_news
  • @Golangflow
  • @Golangweekly

网站

  • Awesome Go @LibHunt - Your Go-to Go Toolbox.
  • Awesome Remote Job - 一个发布远程工作的列表。上面有很多人都在寻找 Go 语言程序员
  • awesome-awesomeness - 汇集了其他 Awesome 系列列表的聚合列表
  • Flipboard - Go Magazine - 汇集了 Go 语言的教程和文章
  • Go Blog - Go 语言官方博客
  • Go Challenge - 通过解题来学习 Go 语言,同时获得专家们的反馈
  • Go Forum - 讨论 Go 的论坛.
  • Go In 5 Minutes - 5 分钟分享如何做好一件事
  • Go Projects - Go 语言社区 wiki 列表中的项目
  • Gocryforhelp - 汇集了一些需要帮助的 Go 语言项目。一个开始你的开源之路的好地方
  • Godoc.org - 开源 Go 语言软件包的文档库.
  • Golang Flow - 不断更新的博客、新闻、软件等等
  • Golang News - 关于 Go 语言编程的一些链接.
  • Golang-graphics - 关于 Go 语言的图片及艺术作品
  • Golang-nuts - Go 邮件列表
  • Google Plus Community - Go 语言爱好者的 Google+ 社区
  • Gowalker.org - Go 语言项目 API 文档
  • r/Golang - Go 语言新闻
  • Trending Go repositories on GitHub today - 一个寻找 Go 语言新库和软件的好地方

教程

  • A Tour of Go - 一个交互式的 Go 语言教程
  • Build web application with Golang - Go 语言电子书,讲解如何编写一个 web 应用
  • Building Go Web Applications and Microservices Using Gin - 学习 Gin 以及了解如何使用 Gin 帮你减少模板代码并建立一个请求处理流水线
  • Go By Example - 通过带注解的例程帮助你动手实践学习 Go 语言
  • Go Cheat Sheet - Go 参考手册
  • Go database/sql tutorial - 介绍数据库及 sql
  • Golangbot - Go 语言初学者教程
  • How to Use Godog for Behavior-driven Development in Go - 学习使用 Godog — 一个行为驱动型开发框架,用于构建和测试 Go 语言应用
  • Working with Go - 为有经验的程序员提供的 Go 语言教程
阅读全文 »

awesome-crawler-cn

发表于 2012-06-21 | 分类于 awesome

Awesome-crawler-cn

互联网爬虫,蜘蛛,数据采集器,网页解析器的汇总,因新技术不断发展,新框架层出不穷,此文会不断更新…

交流讨论

  1. 欢迎推荐你知道的开源网络爬虫,网页抽取框架.
  2. 开源网络爬虫QQ交流群:322937592
  3. email address: liinux at qq.com

Python

  • Scrapy - 一种高效的屏幕,网页数据采集框架。
    • django-dynamic-scraper - 基于Scrapy内核由django Web框架开发的爬虫。
    • Scrapy-Redis - 基于Scrapy内核采用Redis组件的爬虫。
    • scrapy-cluster - 基于Scrapy内核采用Redis 和 Kafka 开发的分布式爬虫框架。
    • distribute_crawler - 基于Scrapy内核采用redis, mongodb开发的分布式爬虫框架。
  • pyspider - 一个强大纯python的数据采集系统.
  • cola - 一个分布式的爬虫框架.
  • Demiurge - 基于PyQuery的微型爬虫框架.
  • Scrapely - 一个纯python的HTML页面捕捉库.
  • feedparser - 一个通用的feed解析器.
  • you-get - 静默网站爬去下载器.
  • Grab - 网站采集框架.
  • MechanicalSoup - 一个自动化的互动网站Python库.
  • portia - 基于Scrapy的可视化数据采集框架.
  • crawley - 基于非阻塞通信(NIO)的python爬虫框架.
  • RoboBrowser - 一个简单的,不基于Web浏览器的基于Python的Web 浏览器.
  • MSpider - 一个基于gevent(协程网络库)的python爬虫.
  • brownant - 一个轻量级的网络数据抽取框架.

Java

  • Apache Nutch - 用于生产环境的高度可扩展的高度可扩展的网络爬虫.
    • anthelion - 一个基于Apache Nutch抓取语义注释在HTML页面插件.
  • Crawler4j - 简单和轻量级的网络爬虫.
  • JSoup - 采集,分析,处理和清洗HTML页面.
  • websphinx - HTML网站特定的处理、信息提取.
  • Open Search Server - 全套搜索功能,建立你自己的索引策略。分析、提取全文数据,这个框架可以索引的一切.
  • Gecco - 一个易于使用的轻量级网络爬虫.
  • WebCollector -简单的抓取网页的界面,可以在不到5分钟内部署一个多线程的网络爬虫.
  • Webmagic -一个可扩展的爬虫框架.
  • Spiderman -一个可扩展的,多线程的网络爬虫.
    • Spiderman2 - 分布式网络爬虫框架,支持javascript渲染.
  • Heritrix3 - 可扩展,大规模的网络爬虫项目.
  • SeimiCrawler - 一个敏捷的分布式爬虫框架.
  • StormCrawler - 基于开放源代码、构建低延迟的网络资源采集框架,基于Apache Storm.
  • Spark-Crawler - 基于Apache Nutch 的网络爬虫,可以运行于Spark.

C#

  • ccrawler - 一个简单的Web内容分类方案,它可以根据其内容分开网页,基于C#3.5.
  • SimpleCrawler - 简单的多线程网络爬虫,基于REG表达式.
  • DotnetSpider - 基于C#开发的一个轻量级,交叉平台的网络爬虫.
  • Abot - 具有很好效率和可扩展性的C#网络爬虫.
  • Hawk -  用 C#/WPF开发的网络爬虫,具有简单的ETL功能.
  • SkyScraper - 一个支持异步网络和有很好扩展性的网络爬虫.

JavaScript

  • scraperjs - 基于JS的一个功能齐全的网络爬虫.
  • scrape-it - 基于Node.js的网络爬虫.
  • simplecrawler - 基于事件驱动开发的网络爬虫.
  • node-crawler - 提供简单API,适于二次开发的网络爬虫.
  • js-crawler - 基于Node.JS,支持HTTP(S)的网络爬虫.
  • x-ray - 支持分页的网络爬虫.
  • node-osmosis - 基于Node.js适于解析HTML结构的网络爬虫.

PHP

  • Goutte - 基于PHP的网页截屏和爬取程序.
    • laravel-goutte - 基于Laravel 5 的网络爬虫.
  • dom-crawler - 易于抽取DOM文件的网络爬虫.
  • pspider - 基于PHP的并发网络爬虫.
  • php-spider - 一个基于PHP的高可扩展的网络爬虫.

C++

  • open-source-search-engine - 基于C/C++开发的网络爬虫和搜索引擎.

C

  • httrack - 全部网站整体复制工具。

    Ruby

  • upton - 一个易于上手的爬虫框架集合,支持CSS选择器.
  • wombat - 基于Ruby天然的支持DSL的网络爬虫,易于提取网页正文数据.
  • RubyRetriever - 基于Ruby的网站数据采集和全网数据收割机.
  • Spidr - 全站数据采集,支持无限的网站链接地址采集.
  • Cobweb - 非常灵活,易于扩展的网络爬虫,可以单点部署使用.
  • mechanize - 自动采集网站数据的框架.

R

  • rvest - 基于R开发的简单网络爬虫.

Erlang

  • ebot - 一个分布式,高可扩展的网络爬虫.

Perl

  • web-scraper - 方便使用HTML、CSS、XPath选择器的网络爬虫。

Go

  • pholcus - 一个分布式,支持高并发的网络爬虫.
  • gocrawl - 一个高并发的,轻量级,遵守道德的网络爬虫.
  • fetchbot -一个遵守robots.txt规则和延迟规则的轻量级网络爬虫.
  • go_spider - 一个非常好的高并发网络爬虫.
  • dht -支持DHT协议的网络爬虫.
  • ants-go - 基于Golang的高并行网络爬虫.
  • scrape - 一个简单的提供很好开发接口的网络爬虫.

Scala

  • crawler - 基于Scala DSL的网络爬虫.
  • scrala - 由Scala开发基于scrapy内核的网络爬虫.
  • ferrit - 基于Scala开发使用了Akka, Spray,Cassandra的网络爬虫.
阅读全文 »

awesome-android-cn

发表于 2012-06-21 | 分类于 awesome

Android 资源大全中文版

我想很多程序员应该记得 GitHub 上有一个 Awesome – XXX 系列的资源整理。awesome-android 是JStumpp 发起维护的 Android 资源列表,内容包括:图表工具、游戏开发、GUI、崩溃检测、调试工具、通知、图片加载、依赖注入等等。

普通的 Java 资源,请查看 https://github.com/jobbole/awesome-java-cn 。

Awesome 系列虽然挺全,但基本只对收录的资源做了极为简要的介绍,如果有更详细的中文介绍,对相应开发者的帮助会更大。这也是我们发起这个开源项目的初衷。


我们要做什么?

  • 基于 awesome-android 列表,我们将对其中的各个资源项进行编译整理。此外还将从其他来源补充好资源。
  • 整理后的内容,将收录在伯乐在线资源频道。可参考已整理的内容:
    • 《jQWidgets:jQuery HTML5 UI组件框架》
    • 《Bootstrap:Web前端开发框架》
    • 《YUI Compressor:JS/CSS压缩工具》

如何参与本项目?


如何为列表贡献新资源?

欢迎大家为列表贡献高质量的新资源,提交PR时请参照以下要求:

  • 请确保推荐的资源自己使用过
  • 提交PR时请注明推荐理由

资源列表管理收到PR请求后,会定期(每周)在微博转发本周提交的PR列表,并在微博上面听取使用过这些资源的意见。确认通过后,会加入资源大全。

感谢您的贡献!


本项目的参与者

  • 维护者:tangyouhua
  • 贡献者:zhengjunchenzjc、沉默水狮、Lian Dongyang、晓峰残月、sunbiaobiao、邢敏、伯小乐、黄小非

注:名单不分排名,不定期补充更新


目录

  • 库
    • 图表
    • 依赖注入
    • 游戏开发
    • 图形界面
      • ActionBar
      • 导航栏
      • 动画
      • 图片
      • 输入
      • 图片加载
    • JSON
    • 崩溃检测
    • 网络请求
    • 通知
    • 数据库
      • ORM
    • REST
    • 测试
    • 行为监测
    • 集合框架
    • 调试工具
    • 无线
    • 其它
  • 资源
    • 更多库的列表
  • 非 Java 开发安卓应用的替代选择
    • C#
    • HTML, CSS 和 Javascript
    • Lua
    • Scala
    • Groovy
    • Kotlin
  • 性能

库

图表

  • AChartEngine:图表引擎。官网
  • EazeGraph:图表绘画库。官网
  • WilliamChart:优秀的运动能力效果的图表库。官网
  • HelloCharts:支持缩放、滚动和其它动画的图表库。官网
  • MPAndroidChart:支持缩放和拖拽手势的Android图表库。官网

依赖注入

  • RoboGuice:Android依赖注入框架。官网
  • Dagger:Java和Android的依赖注入框架。官网
  • Butter Knife:Android视图注入框架。官网
  • AndroidAnnotations:编译时使用Java注解的依赖注入库。官网

游戏开发

  • AndEngine:免费、有趣、快速的Android 2D OpenGL引擎。官网
  • Libgdx:开源和跨平台的游戏引擎和SDK。官网
  • Vuforia:增强现实(AR)的库。官网
  • Unity:跨平台的游戏制作系统。官网
  • Rajawali:Android OpenGL ES 2.0/3.0 引擎。官网

GUI

  • Pull to refresh:support v4中提供的下拉刷新控件。官网
  • Cardslib:创建卡式控件的Android库。官网
  • AndroidStaggeredGrid:支持创建行列数不同的Android窗格视图控件。官网
  • AQuery:AndroidQuery (AQuery) 是一个轻量级的库,用于在Android中执行异步操作视图元素。官网
  • Flow:Flow – 是一个将app分成一系列独立的 Screen 组合的库官网
  • Crouton:一个对上下文非常敏感的 android 通知库。官网 
  • DragSortListView:Android的ListView的扩展,允许拖拽和重新排序(不再更新维护)。官网
  • MaterialProgressBar:和Material design效果外观一致的进度条。官网
  • AndroidFillableLoaders:使用SVG路径实现的填充效果的进度条。对于创建有趣的应用logo也是一个很棒的有趣的选择。官网
  • NexusDialog:在Android中用少量代码简单快速地创建表格。官网
  • Snap RecyclerView Utils:无需创建Adapter生成一个或多个RecyclerView的布局。官网
  • SwipeableCard:像 StreetView 一样的实现滑动卡片的库。官网
  • Android Button Maker:在线生成按钮代码的工具。官网

ActionBar

  • ActionBarSherlock:支持Android旧版本的ActionBar。官网
  • FadingActionBar:渐变效果的ActionBar,你可以在新版PlayMusic应用中看到这个效果。官网

导航

  • SlidingMenu:为应用创建滑动菜单的库。官网
  • SlidingTutorial:简单的库和教程,帮助创建炫酷的滑动效果Android应用。官网
  • PagerSlidingTabStrip:一个在 ViewPager 的不同页面之间导航时有交互指示效果的库。官网
  • Page View indicator:水平滑动的ViewPager的支持库。官网
  • MaterialDrawer:轻松实现MaterialDesign效果的抽屉导航。官网

动画

  • NineOldAndroids:可以将HoneyComb(3.0 API 11)版本的动画效果兼容至1.0起所有版本的库。官网
  • Rebound:Rebound是一个弹簧动态模型的Java库。官网
  • Android View Animations:有趣的View动画合集。官网
  • Android-Transition:轻松创建用户输入反馈的视图转变效果。官网
  • Android-View-Actions:轻松写出复杂的view动画效果。官网

图片

  • android-crop:图片剪裁的库。官网
  • CircularImageView:自定义View,高性能地绘制圆形图片。官网
  • Android-Image-Filter:轻松实现图像滤镜的库。官网

输入

  • FloatingLabel:FloatingLabel 允许你创建一堆EditText。 无需使用Gradle或者MAVEN构建。官网
  • MaterialEditText:支持使用自定义颜色的浮动标签(Floating Labels)、单行超出文本省略(Single Line Ellipsis)、最大最小字数(Max/Min Characters)、帮助文本(Helper Text)和错误提示(Error Text)。官网
  • Emojicon:给你的应用添加表情符号。官网
  • GridPasswrodView:仿支付宝,微信支付密码输入框。官网

图片加载

  • Picasso:Android中强大的图片下载和缓存的库。官网
  • Universal Image Loader:非常好的异步、图片下载和缓存的库。官网
  • Glide:谷歌提供的滑动流畅的安卓图片加载和缓存库。官网
  • Fresco:管理图片及其内存使用的库。官网

JSON

  • Gson:GSON是一个用于序列化和反序列化JSON的Java库。官网
  • Jackson JSON Processor:高性能地JSON处理工具。官网

崩溃检测

  • Fabric Crashlytics:简单的崩溃上报解决方案。官网
  • HockeyApp:分发、崩溃上报、反馈和分析。官网
  • Splunk MINT:监测、崩溃上报、实时数据和统计。官网
  • Bugsnag:跨平台的错误监测。官网

网络

  • Ion:Android的一个不错的网络库。官网
  • OkHttp:Android和Java使用的Http + SPDY协议的网络库。官网
  • Asynchronous Http Client:异步的Http库。官网
  • RoboSpice:轻松编写异步网络请求的库。官网
  • IceNet:Android简单、快速的网络库。官网
  • Android Volley:官方提供的让网络请求更快、更简单的Http库。官网 
  • IceSoap:为Android设计的简单、异步,基于注解的SOAP协议的库。官网
  • node-android:在Android上运行Node.js。官网

通知

  • android-remote-notifications:从远程JSON文件拉取通知显示在你的应用中。官网

数据库

  • Cupboard:直接使用数据库或者ContentProvider轻松访问SQLite的框架。官网
  • DbInspector:调试时在手机上轻松查看应用数据库。官网
  • Realm:SQLite和ORM类框架的替代选择。简单、快速和现代化。使用面向对象的API并提供多平台支持。官网
  • RestorableSQLiteDatabase:通过复制 SQLite 数据库对其进行封装,并提供了恢复功能。官网

ORM

  • GreeDAO:小巧快速的ORM解决方案。官网
  • ORMLite:为JDBC和Android提供的轻量级的对象关系映射的包。官网
  • ActiveAndroid:活动记录(Active record)风格的ORM框架。官网
  • Sugar ORM:超简单地使用Android数据库。官网
  • DBFlow:快速强大的ORM框架,编译时处理注解。官网
  • NexusData:Android上的对象图(Object graph)和持久化框架。官网

REST

  • Retrofit:Restrofit将REST的API转换成Java接口。官网

测试

  • Robotium:黑盒的UI自动化测试框架。官网
  • Roboletric:单元测试框架,在你的工作机器上的Java虚拟机中运行测试,而不是在模拟器中。官网
  • AssertJ Android:适用于Android的AssertJ。官网

跟踪

  • MobileAppTracking:通过多种广告网络追踪你的市场广告情况。官网
  • Mixpanel:根据平台分析用户。官网
  • Countly:开源的手机和Web分析工具,推送消息、崩溃上报,基于Node.js、MongoDB和Linux实现。官网

框架

  • EventBus:EventBus是一个简化的应用间通信的库。官网
  • Otto:Android的一种EventBus的实现。官网
  • Weak handler:内存使用更加安全的Handler实现。官网
  • Byte Buddy:运行时生成代码的库,支持Android。官网
  • Secure Preference Manager:Android的Secure Preference Manager用不同的加密方式保护应用SharedPreference的安全。官网
  • LeakCanary:捕获内存泄漏的工具。官网
  • Drekkar:用于 WebView 和 嵌入式 JS 之间通信的的 EventBus 框架。官网
  • Androl4b:基于 ubuntu-Mate 的安卓安全虚拟机。官网
  • DroidMVP:一个小型安卓库,用于合并 MVP 、Passive View 和 Presentation Model。官网
  • Gota:简化安卓权限。官网

调试工具

  • Linx:应用的调制版本中可以在手机上显示logcat信息。官网
  • Scalpel:在手机上查看3D效果的视图层次。官网
  • Stetho:使用Chrome调试视图层次和网络。官网
  • Emmagee:网易开源的一款 Android 性能测试工具,可以测试 CPU,内存占用率,流量,启动时间,电量等。官网

无线

  • SmartGattLib:简化与蓝牙智能设备相关的工作(也就是我们所熟知的蓝牙4.0低功耗)。官网

其他

  • Android Support library:Android支持库(Android Support Library)的包是一些库的集合,为Android提供向下的兼容的API。官网
  • Google Play Services:这个库可以让你使用谷歌的各种服务,诸如账户同步、Google+(分享和单用户登录)、谷歌地图、位置信息的API、Play游戏、谷歌云消息、Android设备管理器等等。官网
  • Tape:一个轻量级的、快速的、事务性的,基于文件的先入先出的Android和Java框架。官网
  • Guava Google Core Libraries for Java:集合(collections)、缓存、原语支持(primitives support)、并发库、通用注解、字符串处理、输入输出等等。官网
  • Android Scripting:让Android能够运行脚本语言。官网
  • Android Priority Job Queue:Job Queue的一种实现方式,轻松计划后台运行的任务,提高用户体验(UX)和稳定性。官网
  • RateMeMaybe:询问用户是否愿意在PlayStore中为您的应用打分。官网
  • Easy Rating Dialog:这个库为评分应用提供了一个简单的方式来展示提示框。官网
  • ZXing Android-Integration:整合通过网络使用条形扫描器(BarCode Scanner)。官网
  • Gradle Retrolambda Plugin:在Android中使用Java 8的Lambdas表达式。官网
  • Caffeine:通用框架类的合集,让Android开发更快捷。官网
  • RoboBinding:一个实现了数据绑定 Presentation Model(MVVM) 模式的Android开源框架。官网、GitHub
  • xUtils:丰富实用的Android工具库。官网
  • Open Science Map:开源Android地图项目。官网

非Java开发安卓应用

我个人的推荐是(现在)使用Android的API开发原生的应用。Scala可以让你用更清晰的代码开发原生应用。但是也有几种替代方案,在诸如跨平台开发时非常有用。

C#

  • Xamarin:使用C#开发原生的IOS、Android、Mac和Windows应用的框架。官网

HTML、CSS与Javascript

  • PhoneGap:Adobe提供的开源框架,用于使用HTML、CSS和JavaScript开发跨平台的手机应用。官网
  • Titanium:使用JavaScript开发跨平台的本地应用的开源框架。官网
  • NativeScript:一个书体部分JavaScript开发本地(native)IOS和Android应用的开源框架。官网
  • React Native:Facebook提供的使用React开发本地应用的框架。官网
  • Ionic Framework:使用针对移动设备优化的HTML、CSS和JS的AngularJS框架来开发混合模式移动应用(hybird app)。官网
  • Apache Cordova:基于Cordova的应用,核心是使用HTML、CSS和JavaScript这些Web技术开发应用。官网
  • Reapp.io:基于Cordova,使用针对移动设备优化HTML、CSS、JSS的ReactJS开发混合模式应用(hybrid app)的框架。官网

Lua

  • Corona SDK:开发原生IOS和Android应用的框架(尤其是游戏)。官网

Scala

  • Scala on Android:Scala on Android 的官网介绍。官网
  • Scaloid:为Android开发者减轻使用Scala开发负担的库。官网
  • Macroid:一个Android平台功能模块化UI开发的库。官网

Groovy

  • Groovy on Android:Groovy on Android 的官网介绍。官网
  • Groovy Language Support for Android:在Android上编译Groovy的Gradle插件。官网
  • SwissKnife:一个多功能的Groovy库,包括使用注解实现Android的视图注入和线程。官网

Kotlin

  • Anko:JetBrains提供的,使用Kotlin编写的Android平台的DSL工具。官网
  • Kotterknife:在ButterKnife基础上,使用Kotlin写成的Android视图注入工具。官网
  • Android Kotlin Samples:用Kotlin写成的简单Android代码Sample。官网
  • KAndroid:轻量级的库,提供有用的扩展功能来删除Android SDK的样板代码(boilerplate code)。官网

Python

  • python-for-android:把你的Python 应用变为Android 应用。官网、GitHub

性能

  • awesome-android-performance:一个性能优化相关的Android教程、视频和工具列表。官网

资源

资源

  • Vogella Tutorials:非常好的教程,由Lars Vogel编写。官网
  • Android Design in Action Video series官网 这个系列教程由Google Android Desgin团队提供。
  • Android Design in Action slides官网- 这个应用通过一系列视频让你实现幻灯片中所述的效果。
  • Android DevBytes Video Series:Android Design实战系列对应的技术部分。官网
  • Developing for Android:这个系列的文章是Chet Hasae 和其他一些在谷歌工作的员工合写的,主要回答一些最常见的问题,诸如“在开发Android应用中有哪些需要牢记在心的准则。”官网
  • Android Hive Tutorials:适用于初学者的非常好的教程。官网
  • Android Weekly:Android开发周报。官网
  • Android Asset Studio:图表和其它资源生成器。官网
  • Android Action Bar Style Generator官网.
  • Device Art Generator:生成应用在真机截图的原图。官网
  • Android UI design resources:给你提供丰富的设计资源,由谷歌UI和UX领域的专家提供。官网
  • Pencil Project:一款开源的原型设计软件。官网
  • Google Wear App:开源的Google穿戴应用,使用语音识别进行费用计算。官网
  • How to Make Android Apps:Derek Banas提供的视频教程。官网
  • android-blogs:Android博客列表。官网

有影响力的书

具有广泛影响且值得阅读的安卓经典书籍。

待补充

知名网站

值得关注的前端技术站点。

中文站点

  • 伯乐在线安卓频道:伯乐安卓分享Android开发文章,精选工具和安卓相关的行业动态。官网

英文站点

待补充

阅读全文 »

net

发表于 2011-10-25 | 分类于 net

1. 简介

Boost.Asio和Libuv都是非常优秀的网络通讯框架。本文使用两种技术,在CentOS上各自实现一套服务程序,实现从命名管道读取数据作为输入,然后将所有数据通过Socket/TCP转发到Socket客户端的功能。 异步数据处理就是指,任务触发后不需要等待它们完成。 相反,LibUV/Boost.Asio 会在任务完成时触发一个应用。 网络程序设计中有两种主流的设计模式:Reactor和Proactor。两者的区别,用知乎上的一个神回答解释:

如何深刻理解reactor和proactor? reactor:能收了你跟俺说一声。 proactor: 你给我收十个字节,收好了跟俺说一声。

LibUV是Node.js底层所采用的异步通讯框架,所有的通讯机制可以在同一个线程中异步完成。Nodejs的背后是V8和libuv和IOCP(windows),libuv接受V8解析后的请求事件,用event loop来注册事件,并提交用户代码来进行实际操作,libuv是属于所谓的reactor pattern的,即用户可以注册一个”读回调“来处理发生在字节流上的读操作。 Linux下高性能的网络库中大多使用的Reactor 模式去实现,Boost Asio在Linux下用epoll和select去模拟proactor模式,影响了它的效率和实现复杂度。为什么Boost.Asio使用Proactor模式呢?借用知乎上陈聪的回答来解释吧:

Windows 下很难实现高效可伸缩的 Reactor。首先,Win32 API 里 WaitForMultipleObjects 只能同时等待 64 个 handle (MAXIMUM_WAIT_OBJECTS);其次 WinSock 的 select() 实现又很 buggy,特别是在错误处理方面有很多奇葩行为(具体见各种跨平台网络库代码中对此的注释);最后,Windows Vista 新增的 WSAPoll() 函数与 POSIX 的 poll() 又不尽兼容( daniel.haxx.se/blog/201 )。

Windows 有自己的一套高效异步IO模型(几乎等同于Proactor),同时支持文件IO和网络IO;但 Linux 只有高效的网络同步IO(epoll 之类的 io multiplexing 是同步的Reactor,且不支持磁盘文件),二者的高效IO编程模型从根本上不兼容(Windows 可以把网络事件发到 GUI 线程的事件队列中,有点类似 Reactor,但是似乎一个进程只能有一个 GUI 线程,因此在多核系统上其伸缩性受限)。

因此,ASIO 要想高效且跨平台,只能用 Proactor 模型了。不可避免地会在 Linux 上损失一点儿效率。

换句话说,proactor需要利用操作系统的底层异步API,由内核线程并行进行实际的I/O读写操作,可以实现灵活的异步回调,并且在回调之前数据已经准备好并放在用户缓存中了。

在2017年,Boost.Asio可能会进入C++标准。为什么 Proactor 是最佳模型?

跨平台 许多操作系统都有异步API,即便是没有异步API的Linux, 通过 epoll 也能模拟 Proactor 模式。 支持回调函数组合 将一系列异步操作进行组合,封装成对外的一个异步调用。这个只有Proactor能做到,Reactor 做不到。意味着如果asio使用Reactor模式,就对不起他“库” 之名。 相比 Reactor 可以实现 Zero-copy 和线程解耦。 长时间执行的过程总是由操作系统异步完成,应用程序无需为此开启线程。 Proactor 也并非全无缺点,缺点就是内存占用比 Reactor 大。Proactor 需要先分配内存而后处理IO, 而 Reactor 是先等待 IO 而后分配内存。相对的Proactor却获得了Zero-copy好处。因为内存已经分配好了,因此操作系统可以将接受到的网络数据直接从网络接口拷贝到应用程序内存,而无需经过内核中转。

2. 使用Libuv

2.1. 简介

LibUV是Node.js底层所采用的异步通讯框架,所有的通讯机制可以在同一个线程中异步完成。不过libuv不仅仅支持异步io操作,而且还具有一个强劲的线程池,用于支持多线程并行的cpu密集型操作(参考[3])。 本文描述的Libuv服务程序就仅使用了一个线程(即主线程)。这样的好处是无需做资源同步控制,代码简洁。 LibUV使用异步事件驱动编程。程序的运行主体是一个事件分发循环(event-loop)。在事件驱动编程中,程序会关注每一个事件,并且对每一个事件的发生做出反应。libuv会负责将来自操作系统的事件收集起来,或者监视其他来源的事件。这样,用户就可以注册回调函数,回调函数会在事件发生的时候被调用。event-loop会一直保持运行状态。用伪代码描述如下: while there are still events to process: e = get the next event if there is a callback associated with e: call the callback

2.2. 初始化Libuv

创建一个uv_loop_t*类型的全局变量。

uv_loop_t* loop;

在main()函数中进行初始化:

int main(int argc,char **argv) {
    …
    loop = uv_default_loop();
    uv_pipe_t pipe;
    uv_fs_t file_req;
    int fd=uv_fs_open(loop,&file_req,argv[2],O_CREAT|O_RDWR,0644,NULL);
    uv_pipe_init(loop, &pipe, 0);
    uv_pipe_open(&pipe,fd);
    uv_read_start((uv_stream_t*)&pipe,alloc_buffer,read_pipe);

    return uv_run(loop, UV_RUN_DEFAULT);
}

2.3. 建立Socket服务器

在main()函数中构建Socket/TCP服务器:

int DEFAULT_PORT=0;
int main(int argc,char **argv) {
    …
    uv_tcp_t server;
    uv_tcp_init(loop, &server);
    uv_ip4_addr("0.0.0.0", DEFAULT_PORT, &addr);
    uv_tcp_bind(&server, (const struct sockaddr*)&addr, 0);
    int r = uv_listen((uv_stream_t*)&server, DEFAULT_BACKLOG, on_new_connection);
    if (r) {
        fprintf(stderr, "Listen error %s\n", uv_strerror(r));
        return 1;
    }

    return uv_run(loop, UV_RUN_DEFAULT);
}

其中on_new_connection()函数用于接收客户端连接。

vector<uv_stream_t*>client_pool;
void on_new_connection(uv_stream_t *server, int status) {
    if (status < 0) {
        fprintf(stderr, "New connection error %s\n", uv_strerror(status));
        // error!
        return;
    }

    uv_tcp_t *client = (uv_tcp_t*)malloc(sizeof(uv_tcp_t));
    uv_tcp_init(loop, client);
    if (uv_accept(server, (uv_stream_t*)client) == 0) {
        client_pool.push_back((uv_stream_t*)client);
        uv_read_start((uv_stream_t*)client, alloc_buffer, recv_cb);
    }
    else {
        uv_close((uv_handle_t*)client, NULL);
    }
}

在收到客户端连接时,将新建立的客户端连接对象放入client_pool数组中,作为当前客户端连接队列。 当客户端退出或异常关闭时,从该队列中删除,在recv_cb()函数中判断客户端关闭状态。recv_cb()函数在接收到客户端发送的数据时被调用,当返回的nread<0时,表明连接状态发生异常变化。

2.4. 实时监听管道

在main()函数中构建管道监听服务:

int main(int argc,char **argv) {
    …
    uv_pipe_t pipe;
    uv_fs_t file_req;
    int fd=uv_fs_open(loop,&file_req,argv[2],O_CREAT|O_RDWR,0644,NULL);
    uv_pipe_init(loop, &pipe, 0);
    uv_pipe_open(&pipe,fd);
    uv_read_start((uv_stream_t*)&pipe,alloc_buffer,read_pipe);

    return uv_run(loop, UV_RUN_DEFAULT);
}

当管道中出现新数据时,libuv会异步调用read_pipe()函数。

void read_pipe(uv_stream_t *stream, ssize_t nread, const uv_buf_t *buf) {
    if (nread <0) {
        if (nread != UV_EOF)
            LOGE("Read pipe error "<<uv_err_name(nread)<<"\r\n");
        uv_close((uv_handle_t*)stream, NULL);   
        if (buf->base)
            free(buf->base);
        //free(buf);
    }
    else {
        if (nread > 0) {
            // 此处进行Socket转发
        }
        else{
            /* Everything OK, but nothing read. */
            if(buf->base)
                free(buf->base);
        }
    }
}

注意,当管道读取正常但无数据时,需要使用free(buf->base)清空缓存,因为在libuv的文档中有这么一句: Note nread might be 0, which does not indicate anerror or EOF. This is equivalent to EAGAIN or EWOULDBLOCK under read(2).

2.5. Socket数据转发

在管道监听回调函数read_pipe()中,向所有连接的Socket客户端转发管道中的数据。

int curmcount=0;
for(int i=0;i<client_pool.size();i++)
{               
    write_req_t *req=(write_req_t*)malloc(sizeof(write_req_t));
    req->buf=uv_buf_init(buf->base,nread);
    curmcount++;
    uv_write((uv_write_t *)req, client_pool[i], &req->buf, 1, echo_write);
}   
if(curmcount>0){
    M[buf->base] = curmcount;
}
else
{
    /* Everything OK, no client. */
    if(buf->base)
        free(buf->base);
}

每次从管道获得数据时,当客户端数量大于0时,遍历客户端列表,依次调用uv_write()进行数据发送。因为libuv是异步工作机制,我们必须确保写数据缓存一直有效,直到写操作成功返回。所以我们应该在写操作的回调函数echo_write()中删除当前写数据缓存,而不是在调用uv_write()之后立即删除,这就需要我们进行缓存管理。 我们使用一个std::map M来存储每一个写数据缓存及其使用计数的映射,通过echo_write()中计算调用次数来判断是否完成了所有客户端的异步发送工作。在echo_write()每次调用时,所对应的写数据缓存使用计数减一,当使用计数降为0时,删除缓存数据。

map<char*,int> M;
void echo_write(uv_write_t *req, int status) {
    if (status) {
        fprintf(stderr, "Write error %s\n", uv_strerror(status));
    }
    M[((write_req_t *)req)->buf.base]--;
    write_req_t *wr=(write_req_t *)req;
    if(M[((write_req_t *)req)->buf.base]==0)
       {
        auto pos=M.find(((write_req_t *)req)->buf.base);
        if(pos!=M.end())
            M.erase(pos);
        free(wr->buf.base); 
    }
    free(wr);
}

当没有客户端连接时,同样需要直接使用free(buf->base)清空缓存。 由于std::map会不断的扩大自身容器空间(非容器所存储的元素数量),通过erase()可以缩减容器空间,也可以通过swap()来一次性释放:

if (M.size() == 0){
    map<char*, int> temp;
    M.swap(temp);
}

2.6. 已知问题

当某些Socket客户端接收数据非常缓慢时,会导致M队列持续增长,出现内存持续增长问题。本文中不提供该问题的解决方式。

3. 使用Boost.Asio

3.1. 简介

名字本身就说明了一切:Asio意即异步输入/输出。该库可以让C++异步地处理数据,且平台独立。 使用Boost.Asio进行异步数据处理的应用程序基于两个概念:I/O服务和I/O对象。I/O服务抽象了操作系统的接口,允许第一时间进行异步数据处理,而I/O对象则用于初始化特定的操作。 鉴于Boost.Asio只提供了一个名为boost::asio::io_service的类作为I/O服务,Boost.Asio使用io_service同操作系统的输入/输出服务进行交互,它针对所支持的每一个操作系统都分别实现了优化的类,另外库中还包含了针对不同I/O对象的几个类。 其中,类boost::asio::ip::tcp::socket用于通过网络发送和接收数据,而类boost::asio::deadline_timer则提供了一个计时器,用于测量某个固定时间点到来或是一段指定的时长过去了。 不同于LibUV服务仅有一个线程的结构。在本程序中,使用两个线程,分别进行管道读取和Socket服务,后者为主线程,Asio的I/O服务运行在其中。

3.2. 初始化Asio

首先,程序至少需要一个io_service实例。通常一个io_service的实例就足够了。在本程序中,使用一个全局的I/O服务对象:io_service:

boost::asio::io_service  io_service;
// ...
//其他代码
// ...
int main(int argc,char** argv)
{
    // ...
    return0;
}

3.3. I/O服务池vs I/O线程池

有时候为了处理某些长时间任务,需要使用多个I/O线程。 有两种I/O服务与I/O线程的对应关系: ·第一种,仅使用一个I/O服务,同时使用多个I/O线程,即多个线程同时调用io_service::run()函数:

vector<boost::shared_ptr<boost::thread> > threads;
void Start()
{
    for (int i = 0; i != nThreads; ++i)
    {
        boost::shared_ptr pTh(new boost::thread(
            boost::bind(&boost::asio::io_service::run, &io_service)));
        threads.push_back(pTh);
    }
}

此时,io_service.post()异步运行的方法可能会在线程池中的任意一个线程中被调用。如果其中涉及到资源同步问题,要么进行同步访问控制,要么使用strand[1],确保异步调用的方法被顺序执行。或者,为了避免这种问题,可以采用第二种方式。 ·第二种,使用与线程同样数量的I/O服务对象,

vector<boost::shared_ptr<boost::thread> > threads;
vector<boost::shared_ptr<io_service> >io_services;
void Start()
{
    for (int i = 0; i != nThreads; ++i)
    {
        boost::shared_ptr pTh(new boost::thread(
            boost::bind(&boost::asio::io_service::run, &io_services[i])));
        threads.push_back(pTh);
    }
}

此时,每一个io_service的run()函数仅被一个线程调用。

3.4. 建立Socket服务器

然后你指定你想要监听的端口,再创建一个接收器——一个用来接收客户端连接的对象(boost::ip::tcp::acceptor),我们将io_service的对象引用以及接收器封装在类server中,通过start_accept()函数启动监听,并调用io_service_.run()启动Asio的I/O服务事件循环(类似于LibUV的event-loop)。 同样,为了维护客户端连接状态,使用了一个数组来保存客户端列表:

vector<boost::shared_ptr<session> >client_pool;

然后,定义一个类server来封装服务器的处理逻辑:

class server
{
public:
    server(boost::asio::io_service &io_service, string IP, short port) :io_service_(io_service), acceptor_(io_service,tcp::endpoint(address::from_string(IP), port))
    {
    }
    void run()
    {
        start_accept();
        io_service_.run();
    }
    void start_accept()
    {   
        boost::shared_ptr<session> new_session(new session(io_service_));
        acceptor_.async_accept(new_session->socket(), boost::bind(&server::handle_accept, this, new_session, boost::asio::placeholders::error));
    }
    void handle_accept(boost::shared_ptr<session> new_session, const boost::system::error_code &error)
    {
        start_accept();
        if (!error)
        {
            client_pool.push_back(new_session);
            return;
        }
    }

    // start_send() ...

private:
    boost::asio::io_service &io_service_;
    tcp::acceptor acceptor_;
};
    
server* g_s;

类server的start_accept()函数中,首先创建一个虚拟的Socket对象,通过aysnc_accept()函数来等待客户端的连接。然后当一个连接建立时,会异步调用handle_accept()函数。此时,一个简单的程序可能会建立一个线程,在线程中执行一些简单的指令,例如: // sock为刚刚从接收器中得到的新的客户端连接对象

boost::thread(boost::bind(client_session, sock));
// ...
void client_session(socket_ptr sock) {
    while (true) {
        char data[512];
        size_t len = sock->read_some(buffer(data));
        if (len > 0)
            write(*sock, buffer("ok", 2));
    }
}

而在我们的程序中,我们仅仅是将客户端连接封装为一个类session对象,放入客户端队列中,当从管道接收到数据时,才会真正触发与客户端通信的指令。 然后,在main()函数中初始化服务器:

int main(int argc, char **argv)
{   
    sscanf(argv[1],"%d",&DEFAULT_PORT);
    g_s=new server(io_service, "0.0.0.0", DEFAULT_PORT);
    g_s->run();
    return 0;
}

我们在main()函数主线程中调用Server::run()函数,后者调用了io_service.run(),也就是说,本程序的I/O服务运行在主线程中。

3.5. 维护Socket连接(class session)

使用类session来封装一个远程客户端连接,包含一个socket对象和一个发送缓冲区,以及各个异步回调函数的定义。

class session :public boost::enable_shared_from_this<session>
{
public:
    session(boost::asio::io_service &io_service) :socket_(io_service)
    {
    }
    tcp::socket &socket()
    {
        return socket_;
    }
    void start_write()
    {
        //...
    }
private:
    void handle_read(const boost::system::error_code &error, size_t bytes_transferred)
    {
        if (error) return;      
    }
    void handle_write(const boost::system::error_code &error)
    {       
        //...
    }
    tcp::socket socket_;
    boost::asio::streambuf send_buffer;
};

由于仅使用了一个I/O服务和一个(默认的)I/O服务线程,客户端列表在该线程中维护,无需线程间同步访问控制。

3.6. 实时监听管道

利用额外的线程,通过Linux自身的文件接口访问管道,并同步监听。从管道中读取新数据后,通过I/O服务的post()函数,将接收到的数据从管道线程发送到I/O服务线程。

char *pipe_name;
void read_pipe()
{   
    int fd=open(pipe_name,O_RDONLY);
    if(fd<0)
    {
        printf("Fail to open mybuf: %s .\n",strerror(errno));
        return;
    }
    int nbytes=0;
    char *buf=(char *)malloc(suggested_size);
    while(true)
    {
        nbytes=read(fd,buf,suggested_size);
        if(nbytes<=0)
        {
            continue;
        }
        boost::shared_ptr<string> msg(new string(buf,nbytes));
    
        io_service.post(boost::bind(&server::start_send, g_s, msg));
    }
    free(buf);
}
int main(int argc, char **argv)
{   
    //...
    sscanf(argv[1],"%d",&DEFAULT_PORT);
    pipe_name=argv[2];
    boost::thread(&read_pipe);
    g_s=new server(io_service, "0.0.0.0", DEFAULT_PORT);
    g_s->run();
    return 0;
}

Boost.Asio可以让我们异步地运行任何方法。仅仅需要使用post():

void my_func() {
    ...
}
io_service.post(my_func);

这样就可以保证my_func在调用了io_service.run()方法的某一个线程中被调用(参见“I/O服务池vs I/O线程池”说明)。在我们的程序中,server::start_send()函数将会在主线程中执行(因为run()在主线程被调用)。

3.7. Socket数据转发

3.7.1. async_write与async_write_some

异步TCP通讯使用async_write与async_write_some进行数据发送。async_write_some发送一段数据,但是可能最终仅发送出一部分数据,async_write内部(可能多次)调用async_write_some来确保所有数据发送成功。 不同操作系统环境下async_write_some的执行过程可能不一样。在Windows下,async_write_some会将数据发送请求交给Windows操作系统内核IOCP服务,内核执行成功之后执行回调。如过先后多次执行async_write而不是等待回调之后依次再执行,可能会导致最终发送数据的前后顺序出现错误。

3.7.2. 程序中代码实现

为了确保数据发送顺序的正确性,我们必须在每一次async_write执行之后,在其回调函数中继续下一次async_write操作。所以我们建立了一个全局消息队列,针对每个客户端连接各自维护一个消息队列。

map<session*, queue<boost::shared_ptr<string> > >msgQueues;
class server
{
    // ...
    void start_send(boost::shared_ptr<string> &msg)
    {       
        int csize=client_pool.size();
        for(int i=0;i<csize;i++)
        {
            msgQueues[client_pool[i].get()].push(msg);  
            if(msgQueues[client_pool[i].get()].size()==1)
            {
                client_pool[i]->start_write();
            }
        }
    }
    // ...
}

管道中收到的消息通过server::start_send()加入到各个客户端的消息队列中,当且仅当消息队列长度为1(即原队列为空),再去触发消息队列的发送,确保后续各个客户端的每一条消息都是在回调流程中顺序发送的。 发往客户端的数据处理:

class session
{
    // ...
    void start_write(){
        if(msgQueues[this].size()>0)
        {
            std::ostream stream(&send_buffer);
            string msg(*msgQueues[this].front());
            stream<<msg;
            boost::asio::async_write(socket_,send_buffer,boost::bind(&session::handle_write,shared_from_this(),boost::asio::placeholders::error));
        }           
    }
    // ...
    void handle_write(const boost::system::error_code &error)
    {       
        //队列头发送完成后删除
        msgQueues[this].pop();  
        if(error)
        {   
            //清空消息队列        
            auto cur=msgQueues.find(this);
            if(cur!=msgQueues.end())
            {
                while(!msgQueues[this].empty())
                {
                    msgQueues[this].pop();
                }
                msgQueues.erase(cur);
            }
            //客户端写错误 删除客户端
            for(auto p=client_pool.begin();p!=client_pool.end();p++)
            {
                if(p->get()==this)
                {
                    client_pool.erase(p);
                    break;
                }                  
            }
        }
        // 继续处理下一条消息
        start_write();
    }
    // ...
}

4. 性能比较

依据参考资料[2]的测试分析,如果要进行性能测试,应该选择合适的评比基准。 对于LibUV和Boost.Asio,两者在Windows下都是使用IOCP完成的,所以其实最终的性能确实应该是相当的,或许最重要的还是先知道两者实现上的异同吧。 参考资料 [1]参考http://www.crazygaze.com/blog/2016/03/17/how-strands-work-and-why-you-should-use-them/,以及Remotery(https://github.com/Celtoys/Remotery),查看多线程竞争资源的运行状态。 [2] Practical difference between epoll and Windows IO Completion Ports (IOCP) [3] 征服优雅、高效的Libuv库之初识篇

阅读全文 »

kami

发表于 2011-10-25 | 分类于 kami

尼采警世箴言:

  1. 一个人知道自己为什么而活,就可以忍受任何一种生活。

  2. 每一个不曾起舞的日子,都是对生命的辜负。

  3. 谁终将声震人间,必长久深自缄默;谁终将点燃闪电,必长久如云漂泊。

  4. 与怪物战斗的人,应当小心自己不要成为怪物。当你远远凝视深渊时,深渊也在凝视你。

  5. 所谓高贵的灵魂,即对自己怀有敬畏之心。

  6. 你有你的路。我有我的路。至于适当的路,正确的路和唯一的路,这样的路并不存在。

  7. 一切美好的事物都是曲折地接近自己的目标,一切笔直都是骗人的,所有真理都是弯曲的,时间本身就是一个圆圈。

  8. 你今天是一个孤独的怪人,你离群索居,总有一天你会成为一个民族!

  9. 成熟不过是个性被磨去了棱角,变得世故而圆滑了。

  10. 假使有神,我怎能忍受我不是那神,所以没有神!

阅读全文 »

go

发表于 2011-09-05 | 分类于 go
 /******************************************************************************
  * Go 编译器命令
  *****************************************************************************/
go command [arguments]                              // go 命令 [参数]
go build                                            // 编译包和依赖包
go clean                                            // 移除对象和缓存文件
go doc                                              // 显示包的文档
go env                                              // 打印go的环境变量信息
go bug                                              // 报告bug
go fix                                              // 更新包使用新的api
go fmt                                              // 格式规范化代码
go generate                                         // 通过处理资源生成go文件
go get                                              // 下载并安装包及其依赖
go install                                          // 编译和安装包及其依赖
go list                                             // 列出所有包
go run                                              // 编译和运行go程序
go test                                             // 测试
go tool                                             // 运行给定的go工具
go version                                          // 显示go当前版本
go vet                                              // 发现代码中可能的错误



/*******************************************************************************
 * Hello World
 ******************************************************************************/
// main.go
package main                                        // 包名

import "fmt"                                        // 导入fmt包

func main() {                                       // 主函数
    fmt.Println("Hello World")                      // 打印输出
}
// go run main.go                                   // 直接运行
// go build && ./main                               // 先编译成二进制文件再运行



/*******************************************************************************
 * 操作符
 ******************************************************************************/
// 算数操作符
+ - * / %                                           // 加 减 乘 除 取余
& | ^ &^                                            // 位与 位或 位异或 位与非
<< >>                                               // 左移 右移
// 比较操作
== !=                                               // 等于 不等于
< <=                                                // 小于 小于等于
> >=                                                // 大于 大于等于
// 逻辑操作
&& || !                                             // 逻辑与 逻辑或 逻辑非
// 其他
& * <-                                              // 地址 指针引用 通道操作



/*******************************************************************************
 * 声明
 ******************************************************************************/
a := 1                                              // 直接给一个未声明的变量赋值
var b int                                           // var 变量名 数据类型 来声明
var c float64
// 注意:使用var声明过的变量不可再使用 := 赋值
a = 2
const d = 1                                         // 常量




/*******************************************************************************
 * 数据类型
 ******************************************************************************/
s := "hello"                                       // 字符
a := 1                                             // int
b := 1.2                                           // float64
c := 1 + 5i                                        // complex128
// 数组
arr1 := [3]int{4, 5, 6}                           // 手动指定长度
arr2 := [...]int{1, 2, 3}                         // 由golang自动计算长度
// 切片
sliceInt := []int{1, 2}                           // 不指定长度
sliceByte := []byte("hello")
// 指针
a := 1
point := &a                                      // 将a的地址赋给point


/*******************************************************************************
 * 流程控制
 ******************************************************************************/
// for
i := 10
for i > 0 {
    println(i--)
}
// if else
if i == 10 {
    println("i == 10")
} else {
    println("i != 10")
}
// switch
switch i {
case 10:
    println("i == 10")
default:
    println("i != 10")
}


/*******************************************************************************
 * 函数
 ******************************************************************************/
// 以func关键字声明
func test() {}

f := func() {println("Lambdas function")}     // 匿名函数
f()

func get() (a,b string) {                    // 函数多返回值
    return "a", "b"
}
a, b := get()




/*******************************************************************************
 * 结构体
 ******************************************************************************/
// golang中没有class只有struct
type People struct {
  Age int                                  // 大写开头的变量在包外可以访问
  name string                              // 小写开头的变量仅可在本包内访问
}
p1 := People{25, "Kaven"}                 // 必须按照结构体内部定义的顺序
p2 := People{name: "Kaven", age: 25}      // 若不按顺序则需要指定字段

// 也可以先不赋值
p3 := new(People)
p3.Age = 25
p3.name = "Kaven"


/*******************************************************************************
 * 方法
 ******************************************************************************/
// 方法通常是针对一个结构体来说的
type Foo struct {
  a int
}
                                        // 值接收者
func (f Foo) test() {
  f.a = 1                              // 不会改变原来的值
}
                                      // 指针接收者
func (f *Foo) test() {
  f.a = 1                            // 会改变原值
}



/*******************************************************************************
 * go 协程
 ******************************************************************************/
go func() {
    time.Sleep(10 * time.Second)
    println("hello")
}()                                // 不会阻塞代码的运行 代码会直接向下运行
// channel 通道
c := make(chan int)
// 两个协程间可以通过chan通信
go func() {c <- 1}()              // 此时c会被阻塞 直到值被取走前都不可在塞入新值
go func() {println(<-c)}()
// 带缓存的channel
bc := make(chan int, 2)
go func() {c <- 1; c <-2}()      // c中可以存储声明时所定义的缓存大小的数据,这里是2个
go func() {println(<-c)}()



/*******************************************************************************
 * 接口
 ******************************************************************************/
// go的接口为鸭子类型,即只要你实现了接口中的方法就实现了该接口
type Reader interface {
    Reading()                  // 仅需实现Reading方法就实现了该接口
}

type As struct {}
func (a As) Reading() {}      // 实现了Reader接口

type Bs struct {}
func (b Bs) Reading() {}      // 也实现了Reader接口
func (b Bs) Closing() {}

阅读全文 »

screen

发表于 2010-11-21 | 分类于 screen

语法

  • screen [-AmRvx -ls -wipe][-d <作业名称>][-h <行数>][-r <作业名称>][-s ][-S <作业名称>] 选项 -A  将所有的视窗都调整为目前终端机的大小。 -d <作业名称>  将指定的screen作业离线。 -h <行数>  指定视窗的缓冲区行数。 -m  即使目前已在作业中的screen作业,仍强制建立新的screen作业。 -r <作业名称>  恢复离线的screen作业。 -R  先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业。 -s  指定建立新视窗时,所要执行的shell。 -S <作业名称>  指定screen作业的名称。 -v  显示版本信息。 -x  恢复之前离线的screen作业。 -ls或--list  显示目前所有的screen作业。 -wipe  检查目前所有的screen作业,并删除已经无法使用的screen作业。作业名称>作业名称>行数>作业名称>作业名称>作业名称>行数>作业名称>

  • 常用screen参数 screen -S yourname -> 新建一个叫yourname的session screen -ls -> 列出当前所有的session screen -r yourname -> 回到yourname这个session screen -d yourname -> 远程detach某个session screen -d -r yourname -> 结束当前session并回到yourname这个session 在每个screen session 下,所有命令都以 ctrl+a(C-a) 开始。

C-a ? -> 显示所有键绑定信息 C-a c -> 创建一个新的运行shell的窗口并切换到该窗口 C-a n -> Next,切换到下一个 window C-a p -> Previous,切换到前一个 window C-a 0..9 -> 切换到第 0..9 个 window Ctrl+a [Space] -> 由视窗0循序切换到视窗9 C-a C-a -> 在两个最近使用的 window 间切换 C-a x -> 锁住当前的 window,需用用户密码解锁 C-a d -> detach,暂时离开当前session,将目前的 screen session (可能含有多个 windows) 丢到后台执行,并会回到还没进 screen 时的状态,此时在 screen session 里,每个 window 内运行的 process (无论是前台/后台)都在继续执行,即使 logout 也不影响。 C-a z -> 把当前session放到后台执行,用 shell 的 fg 命令则可回去。 C-a w -> 显示所有窗口列表 C-a t -> time,显示当前时间,和系统的 load C-a k -> kill window,强行关闭当前的 window C-a [ -> 进入 copy mode,在 copy mode 下可以回滚、搜索、复制就像用使用 vi 一样 C-b Backward,PageUp C-f Forward,PageDown H(大写) High,将光标移至左上角 L Low,将光标移至左下角 0 移到行首 $ 行末 w forward one word,以字为单位往前移 b backward one word,以字为单位往后移 Space 第一次按为标记区起点,第二次按为终点 Esc 结束 copy mode C-a ] -> paste,把刚刚在 copy mode 选定的内容贴上

  • 使用 screen 安装screen

流行的Linux发行版(例如Red Hat Enterprise Linux)通常会自带screen实用程序,如果没有的话,可以从GNU screen的官方网站下载。

[root@TS-DEV ~]# yum install screen [root@TS-DEV ~]# rpm -qa|grep screen screen-4.0.3-4.el5 [root@TS-DEV ~]#

  • 创建一个新的窗口

安装完成后,直接敲命令screen就可以启动它。但是这样启动的screen会话没有名字,实践上推荐为每个screen会话取一个名字,方便分辨:

[root@TS-DEV ~]# screen -S david screen启动后,会创建第一个窗口,也就是窗口No. 0,并在其中打开一个系统默认的shell,一般都会是bash。所以你敲入命令screen之后,会立刻又返回到命令提示符,仿佛什么也没有发生似的,其实你已经进入Screen的世界了。当然,也可以在screen命令之后加入你喜欢的参数,使之直接打开你指定的程序,例如:

[root@TS-DEV ~]# screen vi david.txt screen创建一个执行vi david.txt的单窗口会话,退出vi 将退出该窗口/会话。

阅读全文 »

game

发表于 2010-11-14 | 分类于 game

1. 腾讯

编者按 工作中积累的经验,如果不整理成体系,形成方法论,就很容易遇到“瓶颈”。本文作者是否,将和大家聊聊游戏设计的方法论,希望可以为突破职业和能力瓶颈探索一条切实可行的路。

本文内容由公众号“我的游戏设计理论”提供,转载请征得同意。

工作多年,不少人都会遇到一个很现实的问题:职业发展进入瓶颈,能力增长几乎停滞,逐渐变成了一个经验丰富的“熟练工”。最近很火的“35岁困境”也说明了这个尴尬问题的存在。

我也曾经被这个问题困扰了很久,后来终于明白瓶颈是什么:工作中积累了丰富的经验,可是这些经验杂乱无章,头疼医头脚疼医脚。没能把经验整理成知识体系,形成方法论,完成从“熟练工”到“专家”的蜕变。希望本文可以通过讨论这个问题,为突破职业和能力瓶颈探索一条切实可行的路。

方法论似乎是一个通用的公式,掌握了它就可以创造出任何东西。也就是我们常说的“大道至简”。

可是真的有什么大道至简的方法吗?有什么至简的大道可以造出飞机?有什么至简的大道可以造出原子弹?如果没有,那凭什么就有简单的道理可以设计好游戏呢?

既然造飞机和原子弹需要的知识体系非常复杂,作为同样高复杂度的产品,设计游戏同样需要复杂的知识体系,所以方法论必然是一个复杂的工具,不存在一个公式解决所有问题。现实中有价值的东西往往都很复杂,它不应该被过度简单化。

有不少人知道方法论的定义,可是有多少人能说出自己的方法论呢?我们真的知道什么是方法论吗?

有很多文章讲的是如何解决具体问题,例如“《XXXX》打造高留存的秘诀”、“《XXX》流水过亿的付费设计”,它们都属于“案例教学”。很多人认为这些是干货,是可以拿来就用的方法。

Naval Ravikant[1]在文章《How to Get Rich (without getting lucky)》中有一段文字:

A lot of what goes on in business schools, and there is some very intelligent stuff taught in business schools – I don’t mean to detract from them completely – some of the things taught in business school are just anecdotes. They call them “case studies.”

But they’re just anecdotes, and they’re trying to help you pattern match by throwing lots of data points at you, but the reality is, you will never understand them fully until you’re actually in that position yourself.

Even then you will find that basic concepts from game theory, psychology, ethics, mathematics, computers, and logic will serve you much, much better.

大意是:商学院传授的部分知识实际上是“传闻逸事”,他们称之为“案例教学”。除非你遇到一模一样的环境,否则无法理解使用它们。真正有价值的知识是博弈论、心理学、道德、数学、计算机科学和逻辑学中的基本概念。

很多类似文章看了跟没看一样,不是你没看懂,而是因为环境不同导致的信息偏差不能消除。只有极少数正好需要这些案例的人看了才觉得非常棒,然而换个环境再次复用效果可能就不如以前了。

案例为什么有吸引力呢?因为它会给你一个美丽的预期:只要按他说的做,我也能达到一样的成就。他们正是利用了大脑懒惰的特性,让你以为有捷径可走。

本文不会有“案例教学”,而是旨在探讨设计这些方法的方法,即探讨设计方法的原理。

方法论是指人们认识世界、改造世界的一般方法,是人们用什么样的方式、方法来观察事物和处理问题[2]。

我认为方法论的本质是提高确定性,寻找实现目标的确定性最高的方法。现实生活充满了不确定性,但是不确定性中包含明显的规律。人类的行为就是遵循验证过的规律去做成功率最高的尝试,以获得最大的期望收益,并不断探索规律提高成功率。

所以我的方法论就是不断寻找确定性更强的方法的方法。

不是也有很多成功的游戏是游戏界的新人设计的吗?也有不少游戏通过复制前作的经验继续成功,方法论真的有必要吗?

要回答这些问题,只需要确定没有经验的成功和复制经验的成功能否保持稳定的成功率,因为无法保证成功率的方法不是规律,也就无法复制,对于个人或企业漫长的生涯而言帮助不大。

首先没有经验的成功肯定是偶然,否则它就会有自己的方法论,也就不会有以上疑问。连续的偶然是小概率事件,用高昂的研发成本尝试小概率事件,不是理智的行为。

其次复制成功经验的成功是否可持续。“小马过河”的童话大家小时候都看过,所以应该可以理解经验不能简单的复制,想要简单的复制有严格的限制——产品自身和外部环境都与要复制的经验相同,这是现实中不可能实现的。

那些期望通过复制成功经验继续成功的产品的失败原因在设计层面可能有两个原因:

  1. 犯了有相关性但无因果关系的谬误,仅仅通过别人“数据验证过的成功设计”就判断这样设计有效,而不了解这个设计是不是数据好的核心因素,是否可以复制到自己的产品。

  2. 市场竞争环境是动态变化的,玩家也会随时间、社会文化不断变化。

我们经常说某个游戏或某个设计是数据验证过的,又有多少产品复制了这些设计而失败呢?数据验证过的设计不一定永远正确,数据只能证明结果,无法改进方法。数据也不能预测未来(能预测未来的是数据背后的逻辑)。

假如不能简单复制,需要改进才能成功,那么成功的关键就不是经验而是“改进”(创新这个词太大了,下文都会使用改进)。方法论的作用之一就是创造“改进”方法。

我不否定数据的作用,毕竟需要用数据来验证设计或理论是否正确。而是指数据不能指导如何改进,只能指导哪里需要改进。

本文原标题是《我的游戏设计方法论》,为什么叫这个名字?因为这个方法论可能只适用于我和游戏设计这两者的交集。

达尔文的《物种起源》说明了一个理论:自然会选择最优化的,而不是最大化的。延伸到游戏设计中就是最完美的不一定能生存,适应性强的才容易生存。

像自然竞争一样,游戏不是做好就可以,得比别人好才行。所以每个设计者都需要创造适合自己的方法论,设计出生存概率更高的游戏。

这篇文章的目的是希望达到两个目标:

1.全面的指导设计,不再迷茫。

2.使用方法论提高生存率,可以实现连续成功。

建立自己的方法论跟用经验和感觉做游戏相比,大路朝天风景独好人还少,缺点就是这条路没头。

我的方法论的基础逻辑是先确定大方向,逐步缩小选择范围,最终选出成功率最高的路径,并且方法论有自己的进化方式。

本文以演绎逻辑的形式进行论证,总共四个步骤,每一个步骤都需要上一步骤支撑。下面详细介绍具体的步骤。

3.1 知道什么是对的——游戏感

讲游戏感之前需要先讲清楚一个定义:游戏的本质是什么。我认为游戏的本质就是设计者有意识营造的比现实更容易获得期望体验的模拟环境。

什么是游戏感?

游戏感是玩游戏时对自己情绪变化的感知能力[3]。

游戏能否让玩家获得期望的体验,是衡量游戏好不好玩的标准,而获得体验的表现就是情绪的变化。所以游戏感也是个人判断游戏好坏的工具之一。

做游戏设计需要冷静的激情,才能做到回顾游戏设计是如何营造体验、刺激情绪,进而导致行为变化的。极度沉迷或情绪波动大的人是无法冷静思考的,也就很难成为好设计者。

游戏感的内核是什么?

玩游戏的时候是不是很舍不得花自己辛辛苦苦攒下来的游戏币,即使只价值几块钱?是不是会因为获得一件好装备而欣喜若狂?是什么让你变得如此“不理智”?

游戏感的内核就是代入感,是其他艺术无法提供的体验,其他艺术形式最多可以产生“沉浸感”,却无法使人代入其中。

这是因为游戏独有的特征——环境,游戏可以创造一个人机、人人互动的模拟环境,游戏的结果是由互动行为产生的。而情绪的产生必须要行为去触发,连续的情绪是产生代入感(或者说心流)的必要条件。

如何判断游戏感好坏?

标准很简单:在你喜欢的游戏类型中,你觉得好玩的游戏,大多数人也觉得好。

游戏是做给大众的,不是做给自己的,所以衡量一个游戏的好坏需要大众评价,策划的评价假如与大众不一致,说明已经与市场脱节,需要做出调整。你可以说大众评价不够专业,但是没有意义,你做的游戏就是给不专业的人玩的。

设计者必须在自己喜欢的领域中做判断,否则无法确定是因为“不喜欢”而觉得不好还是真的不好。就像我不喜欢体育类游戏,我对这个游戏类型的体验就是“无趣、枯燥、乏味、毫无想象力”,但实际上篮球足球类游戏都有深受玩家喜爱的系列作品。

受教育、经历、环境等因素影响,每个人对环境的认知都有差别,丰富自己的心理体验以找出细微的差异是让自己拥有更敏锐感知能力的方法。

“游戏感好”是个开放的概念,我这里给出的边界仍然不够清晰,需要不断探索创建清晰的框架,给自己一个定义游戏好坏的标准。标准越精确,就越清楚什么是对的。

可以先设置一个笼统的数值标准,我目前为免费游戏设置的标准:上线半年内iOS或Google畅销排行在150以上,下滑不超过30名。类似Steam平台的买断制游戏就非常简单了:特别好评数的排行。

这些指标主要衡量长期留存和付费,玩家用钱投票比用键盘投票真实得多。

游戏感的作用

游戏感的作用就是:找到游戏的核心体验。一个游戏的核心体验只有一个,其他设计都是为了增强核心体验。找到核心之后就可以分析设计者是如何围绕核心进行设计。这里的核心不一定是游戏的“核心玩法”,很多游戏的主要玩法就是通过一个又一个关卡,但它们的核心体验可能是卡牌收集。

举个例子:《梦幻西游》的核心是建立了简化版的社会。设计者为了强化这一体验,做了很多社交玩法,帮派、师徒、结拜、结婚等功能,同时通过玩法设计形成对各个生活职业的需求,形成了足够大的“交易市场”,不同玩家可以找到自己的定位,社会系统就运转起来了。同时也衍生出设计者预料不到的“职业”,比如职业商人、庄家。

想要研究透一个游戏需要长期深入,像普通玩家一样认真玩,可能还要花上不少的钱。再通过游戏感来分析游戏的核心。

游戏感好还有个好处就是能做到见真识假,核心体验好不好很容易就能感知到。在下一个步骤中就可以使用这种能力去验证自己的目标是否正确。

3.2 确定自己想要的——目标

智者说话,是因为他们有话要说;愚者说话,则是因为他们想说。——柏拉图

为自己的目标而设计,而不是为了设计而设计。

什么是游戏设计的目标?

游戏设计的目标就是:创造产生体验的环境,有意识引导玩家的情绪。

游戏通过玩法设计、剧情包装、美术模型、数值节奏等方式为玩家创造产生代入感的虚拟环境:让玩家扮演舰长,探索未来太空世界;扮演异族,探索虚构的异世界;扮演炮台指挥官,动动手指摆放炮台击退敌人。

虚拟环境是为了营造体验所需的环境。它的意义就在于可以产生丰富的情绪体验,这些都是设计者有意引导的结果。

设计者要设计玩家体验的环境,通过环境产生情绪,情绪对玩家的“价值”就是游戏能够提供的产品价值。这个价值是否足够有吸引力,是玩家留下来或付费的根本原因。

玩家可以通过游戏获得什么体验?

1.感官:视觉、听觉、触觉(操作)。

2.情感:喜怒哀乐、恩怨情仇、惊恶欲。

3.思考:冷静的思考、复杂的知识。

4.行动:与游戏机制互动、与玩家互动

5.联想:与接触过的书、电影、音乐、人或经历进行联结。

不同游戏本质上就是这些体验以不同形式、程度的结合。

游戏类型限制

游戏类型的区别,就是因为可以产生不同类型和程度的代入感。代入感有强弱之别,有的游戏因为足够具体,可以产生非常真实的代入感。有的游戏因为不够具体,只能体会到淡淡的情绪变化。代入感的强弱是影响玩家留存和付费的关键因素,这也是为什么RPG游戏一般比休闲游戏寿命长。

从反面推导,游戏设计的原则之一就是不能让玩家“出戏”。

受限于设计者的喜好和擅长类型,可能无法在某些类型的游戏中找到自己的目标。比如我可能没办法在体育、解谜类型中找到自己想要的目标。

更广泛的研究多种类型的游戏是非常有必要的,即使以设计某个类型为目标,分析其他类型的游戏仍然有助于拓展思路。而且长期制作同类型的游戏,思维会形成一定的定式,可能会限制设计思路。

目标感

有目标不代表有目标感,什么是目标感:把建立目标变成本能,思考时永远想着目标,小目标为大目标服务,沿着路径不断向目标前进。

实际工作中,越来越觉得老生常谈的“格局”就是一个人的目标感,它时刻体现在人的言行举止上。

目标感强的人思路更清晰,以结果为导向,不过会因为过分纠结过程导致目标偏离,始终奔着大目标前进,而目标感不强的人说话做事经常“跑题”。

找到正确目标的人解决问题的思路也会更丰富,他们不仅着眼于已知的方法可不可行,而是认为合理的能达到目的的方法都可以参考或尝试。

目标感强又能找到正确目标是一件极难极难的事,需要花大量时间思考,而且只能靠自己,因为这是你自己的目标。

我们设计的虚拟环境与自身的经历和对环境的理解息息相关。而且设计的过程又会遇到一大堆问题,那么如何建立对环境的正确认知和解决问题呢?接下来我们来了解达成目标的工具。

3.3 达成目标的工具——知识体系 传说《教父》中有一句名言(实际并没有):花半秒钟就看透事物本质的人,和花一辈子都看不清事物本质的人,注定是截然不同的命运。

“本质”在这里的含义就是事物的运行规律,是由什么方法造成的表象,这些方法又是基于什么原理。

想要看穿本质,就必须建立知识体系,才能从表象推导出方法和背后的原理。当你拥有看清本质的能力时,就可以轻松找到达到目标的最优路径。

如果说方法论的前两个步骤是前进的方向,知识体系则是一条明确的道路。

什么是知识[4]?

一条陈述能称得上是知识必须满足三个条件,它一定是被验证过的,正确的,而且是被人们相信的,这也是科学与非科学的区分标准。

知识也是人类在实践中认识客观世界(包括人类自身)的成果,它包括事实、信息的描述或在教育和实践中获得的技能。知识是人类从各个途径中获得的经过提升总结与凝练的系统的认识。它可以是关于理论的,也可以是关于实践的。

知识可以分为三个层次[5],并举例如下:

1.理论:定理、公理、基本概念。

2.方法:知道达到目标的步骤和每一步该用哪些工具。

3.经验:“根据我的经验,这道题选C”。 理论讲的是本质、原理,也就是知道为什么(Know Why);方法讲的是因果关系,知道由什么因推导出什么果,即知道怎么做(Know How);经验讲的是表象,即知道是什么(Know What)。

这里并不是想贬低经验的价值,实际上我认为知识体系的构成大部分都依靠经验。只是仅靠经验并不能解决问题,我们懒惰的大脑又常常夸大经验的作用,所以需要时刻警惕犯“经验主义”错误。

我们常问经验可不可以复制,知道什么是知识后,答案就有了:除非环境完全相同,否则经验不能复制,能复制的是理论。因为知识有自己的局限性:指导性越强的知识,通用性就越差;通用性强的知识,指导性就越差,而“经验”就属于通用性差的知识。

什么是知识体系?

知识是为了解决问题存在的,孤立的知识是不能解决问题的。

人类解决问题的方式是先将问题在自己已知的经验中找参照,如果有就使用此经验对应的方法,如果没有就尝试最相似经验对应的方法。

如果一个经验完全独立存在,没有类似的经验,背后也没有方法,与这个经验相关的问题就没法解决。而独立存在的方法和理论,就像屠龙之技,只是无用武之地的空想。所以知识必须连接起来,成体系存在。

有不少人都认为理论太空泛,没有意义,方法才最有价值。在遇到问题的时候如果有人指导解决方法,你一试发现真的可行,立刻觉得方法真好用,能立刻帮我解决问题。

有方法就能解决问题,获得方法可以是别人教的,甚至可以是运气。那理论还有什么价值呢?

理论的价值就在于创造新方法,达到“举一反三”的效果。方法是由步骤和工具组成的,知道原理才可以更改步骤和工具,从而设计新的方法。

举几个例子:我们都知道火能加热食物,假如我们不知道食物变熟的原理,只知道“火——加热食物”的因果关系,那我们可能就见不到便捷的自热食物了。假如我们只知道竞技场排行榜,不知道博弈论中的一美元竞拍陷阱,可能一辈子都在设计竞技场排行榜。

现代科学发展到现在,理论的价值是非常巨大的,仅靠经验、方法可能无法达到目前的科技水平。

作为设计者,解决问题不是终点,找到更好的方法才是,否则人类就不会拥有现在的文明。理论的价值是无限的。

知识体系的作用

还是前面《梦幻西游》的例子,知道它的核心体验是简化版的社会(这里我没有用“社交”,因为它没有把经济活动和社会组织的概念很好的表达出来),但是社会的本质是什么呢?如果不知道的话是不是没办法把握设计的方向,只能依靠经验和感觉?

知识体系越全面、深入(俗话说就是越接近本质),越容易做出正确的决策。

决策时的纠结和错误主要体现在两方面:

1.不知道如何通过正确的思考找到真正的问题。

2.不知道该用哪种方案解决问题达到大目标上的最优。

做决策的准确率不够高,或者决策前很纠结,不是因为知道得太多,而是因为知道得太少。掌握的知识越齐全,问题就越容易被定位并解决。知识体系就是可以解决这两个问题的工具。

举个亲身经历的例子,多年前家里老人心脏病又犯了,我找了一个二甲医院的主任医师给他发了医院的检查报告,他说没大事,回去注意休息按时吃药就行。我不放心,又找了安贞医院的副主任医师发了同样的报告,她跟我说病情非常严重,需要做搭桥手术。虽然我看不懂检查报告,但我知道她肯定是对的。因为已经做过两次心脏手术,硝酸甘油是衣兜里必带的,不可能没大事。

我本人也曾经因为比较严重的气管炎被“确诊”为哮喘,这些事让我深刻认识到一个现实问题:人与人之间的差距真是太大了。

以前对这些事情的理解非常简单,仅仅归结于个人能力不行。现在终于明白,能力只是一个空泛的概念,其本质是知识体系。人与人的差距本质上就是知识体系的差距,不同人对同样事物的理解相差甚远,应用到实际操作上的结果就是差之毫厘,谬以千里。

知识体系的建立就是了解事物本质的过程,越深入的了解其本质,就越容易找到从根本上解决问题的方法。

游戏设计是一个跨多学科领域的职业,即这些学科领域的知识交集,但是又不需要这些领域的全部知识,只需要寻找对游戏设计有价值的知识建立体系。

既然游戏是一个独立的领域,必然拥有属于自身的知识,这些知识与其他领域的知识互相结合形成了游戏设计的知识体系。

其作用就像医生看到病人可以判断治疗方案,游戏设计者制定目标后可以通过自身的知识体系给出能达到目标的设计方案。

如何建立知识体系——认知工具

什么是认知:人们获得知识或应用知识的过程,或信息加工的过程。用心理学术语来说,就是建立心理表征的过程,心理表征就是事物在人心中的结构,或抽象或具体[6]。例如外观、理解、印象、观点。

什么是认知工具:你要去某地学知识,过去的这个过程叫认知,乘坐的交通工具即是认知工具。越接近本质的知识越远,有更好的交通工具就能快速达到目的地。

每个学科领域都有其知识体系,医学、法学、物理学,经济学等等。这些领域的知识体系是如何建立的呢?都是通过以下认知工具:

1.逻辑学:现代科学发展的基础,也是联合国公布的基础学科之一。

2.科学实验:实践是检验真理的唯一标准。

3.观测和统计:部分自然科学和社会科学暂时无法找到原因,但是统计上可以看到明显的表征,同样具有重要的参考意义。

4.思维方式[7]:元认知、系统思维、批判性思维等。

理论上,掌握了认知工具可以获得几乎所有的知识,所以优先学习“学习的技巧”非常重要。

人类犯错的一个主要原因就是 “认知偏差”。有些人没有使用认知工具建立知识体系,导致知识体系缺损甚至是错的,分不清“实然”和“应然”、“现实”和“观点”。

使用错误的依据做判断,怎么能不做错呢?邓宁-克鲁格效应就是很好的例子。

再举个例子:有篇文章说中国还有10亿人没坐过飞机,占总人口的71.4%,以此证明中国还有巨大的消费潜力。但是作者没有说的是:有60%的美国人从未踏上过飞机[8]。航空业远没有美国发达的中国,“巨大消费潜力”这个结论并不能由该数据推导出。这就是使用的数据可能对,但结果不一定对。这个例子充分说明了了解“现实”和使用认知工具的必要性。

知识体系的局限性

有些问题就是无法解决,或者是目前无法解决,要找到这些边界,寻求突破或停止无效开发。

就像理智的科学家不会去研究永动机,但理智的科学家会研究如何提高能源转换效率。

游戏设计也有无法突破的局限。环境设计得再像社会,终究不是社会;再像战争,终究不是战争,这就是前面提到的“体验的边界”:无限接近而无法触及。当然做不到有做不到的好处,就是可以削弱真实的负体验加强虚拟的正体验,这也是游戏吸引人的特点之一。

局限性的另一个含义是:所有原理都有适用边界,在边界以内是永远正确的,边界之外则不一定。在使用原理的时候必须清楚原理的定义,分清适用范围,避免使用不当造成的错误。

知识体系是相对稳定的,假如所有人的知识体系都一样完整了,岂不是所以游戏都一样(这就是为什么相似的游戏大堆,大家的知识体系接近又都不够完整)?这时候就需要“改进”来创造更好的设计。

3.4 设计者的核心价值——改进

写到这里逐渐产生一个想法,可能并不存在绝对的“新”。世界上并没有什么东西是真正新的,都是一步步演化过来的,如果你觉得有,只是因为你进入了一个新的领域,才觉得什么都是新鲜的。

什么是创新

创新者将资源以不同的方式进行组合,创造出新的价值[9]。——约瑟夫•A•熊彼得

这句话点出了创新的两个核心:资源和新的价值。

第一个核心“资源”。在游戏设计中创新的资源指的就是“知识体系”,虽然前面说知识体系的作用是用来解决问题,但也是创新必须的元素,因为创新本质上就是将现有元素“排列组合”,这也是为什么说并不存在绝对的“新”,有些知识对不知道的人来说是新鲜的,对知道的人来说只是常识。

创新火花一般是什么时候出现的?是不是看到某个领域的知识点,与自己的知识体系碰撞结合产生的?

举个前面提到的例子:关于博弈论的著名实验——“一美元拍卖陷阱”。拍卖人拿出一张1美元钞票,请大家给这张钞票开价,每次叫价的增幅以5美分为单位,出价最高者得到这张1美元,但出价最高和次高者都要向拍卖人支付出价数目的费用。在哈佛、耶鲁大学等高校做过多次实验,最终拍卖的价格在20到66美元之间。

在游戏设计中经常可以看到这个例子的应用:带独特奖励的各种排行榜。那么:为什么竞争激烈的永远是头部几名玩家?能不能让服务器尾部的玩家也参与竞争?奖励是不是越好竞争的人越多?

这些问题都能根据博弈论的原理找到答案。头部玩家投入的资源足够多,不愿意接受失败的沉没成本。尾部玩家成本小,并且知道获奖无望,所以不能依靠排行榜这一功能刺激尾部玩家加入竞争。奖励越好竞争的人会不会越多不一定,但投入的成本会越多。

通过对原理的理解,是不是可以做出更好的设计?最近已经有利用这个原理改进得还不错的游戏出现了。

第二个核心“新的价值”。这里新的价值指出了一个关键:创新不是指创造新的形式,而是创造新的价值。创新是为了更好的解决问题。

新的价值有两层意思,一个是新类型的价值,一个是当前类型的更高值。

  1. 新品种的创新价值:随着人类社会的发展,会产生无数新的需求。解决这些需求就是创造新的价值。闻臭师、鉴黄师、电子竞技等职业就是顺应新需求诞生的。
  2. 当前类型的更高价值:最好的解决问题的方法就是从本质上解决问题,这也是为什么需要建立正确的知识体系,因为正确的知识体系能帮你确认问题的本质,所以创造更高的价值就是以更符合事物本质的方式设计。有一个著名的例子:汽车发明之前人们只想要一匹更快的马。人们其实只是想更快,快才是人们想要的真正本质。

3.5 小结 方法论的四个步骤都说完了,但方法论本身还没有完结,方法论是活的,需要进化的,不能变的方法论只能是方法。

世界是非线性的,充满了不确定,同一个原因不一定导致同样的结果,固定不变的方法论无法适应所有的变化,优秀的方法论应该随环境进化,保证自己的存活率。接下来的内容对方法论更加重要。

我的方法论的基础逻辑是通过四个步骤,逐步缩小范围选中目标,那么目标正确的概率就等于四个步骤的积。所以进化的本质就是不断提高每个步骤的成功率,尤其是提高短板,因为短板对整体成功率的限制最大。

4.1 步骤一的进化——更精准的游戏感 我将游戏感列为第一个步骤,是因为我发现我的游戏感还不错,很多游戏上线未火的时候我就开始玩,我觉得好的游戏会玩半年到两年不等,并花点钱支持友商,我真的能从这些游戏中找到乐趣。这些游戏会随着时间慢慢火起来,证明了我的游戏感跟玩家群体非常接近。

工作中我发现并不是所有设计者都能做到这点,难道这就是这行的“天赋”所在?这个问题我并不清楚,所以前文才说我的方法论可能只适合我和游戏设计,或者说适合游戏感跟目标玩家接近程度高的设计者。

我对培养游戏感有以下几点总结,同时也是理解现实环境的必经过程。不过不确定能否通用,因为这些只是我个人的经验总结。

1.玩经典游戏,观察自己的情绪是如何受设计影响的。

2.多玩游戏,对比同类游戏之间的体验差距,以及差距是如何产生的。

3.多看经典文学和电影,丰富自己对多种“情绪”的认知和体验。

4.学习社会科学,认识人和组织和行为间的运行规律。

5.细致入微的观察生活,很多游戏的好设计都是源自生活。

前面说到游戏感的作用是找到游戏的核心体验,所以可以换个思路找核心体验:多了解真正的现实。曾经看过一段话说的非常有道理,大意是看一个人是否聪明,可以看他对现实的认知是否足够准确。

对现实的认知越精准,也就越容易找到某个结构或系统的本质,对分析游戏设计,感知游戏体验就更有帮助,毕竟游戏的设计是源于现实。

举个例子:几年前我跟某人聊起了北京的房价真是贵啊,而且还在涨,他跟我说要是四环里的人少一半房价肯定降,因为他认为高房价房租会逼走很多人,到时候他就能买得起了。他沉浸在这个逻辑里无法自拔。

看起来好像有些道理,为什么还是觉得很蠢呢?这就是对现实没有准确的认知做出的错误判断。高房租房价是经济发展人口聚集的结果而不是原因,如果北京一直保持相对高的发展速度,房价和房租是不会降的。

对现实认知是指建立对社会运作规律的知识体系,这一点将在第三个步骤的进化中介绍。

4.2 步骤二的进化——更正确的目标 设计者的目标与潜在的玩家目标重合率,这个重合率就是这一步骤的成功率。这个比率类似市场中的市场渗透率,指某个品类的可能拥有的份额。

游戏肯定是越多人玩越能说明做得好,所以提高渗透率肯定是正确的。这里需要注意的是分母不是全体玩家甚至全人类,而是该游戏类型的潜在玩家数,像我这样不玩运动游戏的人,FIFA设计者肯定不会费事搭理我。

不同类型游戏玩家总量不同,这里不是让大家都去做市场潜量大的游戏类型,而是指只要能让足够多的潜在目标玩家喜欢,就可以是一件非常成功的事,无论收入还是口碑上。

这个步骤的进化方式主要有两种,一种是你知道你的目标是对的,像乔帮主一样把自己的目标实现即可,顺其自然的激活了大量潜在用户。这点太难了,在没有大技术变革的情况下,通过做出超前的设计,大幅度改善体验,从而改变人类惯常的行为模式,我目前水平没办法做到这点,所以没办法讨论。

另一种是发现玩家的需求。贴近目标群体是每个设计者必须做的事,事实上不管是不是做游戏,这点都是必须做到的。了解玩家才能发现玩家的本质需求。

人类有些情绪需求是永远不会变的,像自我满足、完美主义、整理强迫症等。

大部分游戏都是从永恒不变的体验上入手,所以如何做的更好就成了设计者的核心价值。

发现需求后就要思考如何能将玩家想要的虚拟环境设计出来,这个环境的运行规律,背后的逻辑是否完全清楚,这需要将自身经历和知识体系结合起来思考,找到更优解。

总结一下就是想玩家之所想、急玩家之所急、解玩家之所需,再将结论放在时间轴上观察,这个需求的时效是否足够长。

此外前文提到的目标感,也是必须要锻炼的思维,无论对工作还是生活都有很大帮助。

4.3 步骤三的进化——更完整的知识体系 知识体系的完整率决定了解决问题的成功率,即这一步骤的成功率。所有职业的知识体系都是为了解决具体的问题,前文也举例说明了能力的本质就是知识体系的完整程度。

同样的基础信息,知识体系完整的人可以做出正确的判断,找到更合适的方法解决问题。完整的知识体系,遇到未曾经历过的问题有助于找到可行性最高的解决方式。

知识是为了解决问题存在的,这一步骤的进化方式就是建立能解决更多问题的知识体系。

遇到问题无法解决,不用怀疑,肯定是某些知识没有掌握导致的,可能是已知的也可能是未知的。首先把人类已知的可能属于这个职业的知识掌握,建成已知的知识体系。再通过拓展知识体系的边界,把未知的知识变成已知。

这就是先把“不知道自己不知道”变成“知道自己不知道”,再变成“知道自己知道”的过程。

认知工具一定要掌握好,第一个原因是认知工具是建立知识体系的必要条件,掌握得越完整、熟练,建立知识体系的效率越高。第二个原因是知识也会不断更新,有些知识会变得无用甚至错误,这时就需要工具清理旧知识,学习新知识。

其中逻辑学是认知工具的重点,它不仅可以避免一些工作中常犯的错误,还可以验证知识的有效性。

我比较在意做事的逻辑,偶尔不小心的错误反而不太在意。因为逻辑正确的方法即使做错了也能找到错处并改正,如果逻辑错了都不知道错在哪。如果逻辑错误结果正确更完蛋,当你听到“以前不是这样的啊!”、“以前效果挺好啊,怎么现在不管用了?”类似的对话大概就属于这种情况。

社会上的职业所需的知识大多是多个科学领域的交叉结合,游戏设计也不例外。游戏设计的知识体系需要很多自然、社会科学领域的公理、定理、定律、理论、基础概念和方法,复杂的游戏需要复杂的知识体系。

由于游戏是为了满足人类体验而创造的模拟环境,所以社会科学对游戏设计的帮助最大,知识体系的主体将以社会科学为基础核心展开。

多数职业都有数个细分领域,比如同是内科医生,会细分呼吸内科,消化内科,心血管内科等多个科属,不同科属所需的知识体系也就不尽相同。同样不同类型的游戏需要的知识体系也有所区别,每个设计者需要建立自己领域的知识体系。

事实上学校有课程的职业,同样也需要自己建立知识体系,毕竟需要靠人去解决问题,而不是书。他们的优势在于这个职业发展了很多年,课本上的基础知识已经被充分验证,学好基础知识是为了更好的建立知识体系。

游戏设计并没有充分验证的系统的基础知识,所以目前仍然需要依靠个人。

知识体系是我的短板,我会根据目标建立自己的完整知识体系,这个过程会通过文章的形式表达出来,同时希望过程中能够找到一些在游戏设计中“必然正确”的理论,这也是公众号“TheBigGameTheory”的由来。

4.4 步骤四的进化——更好的改进 “改进”这一步没有具体的标准,因为总是会有“更好的”出现。所以我给“改进成功率”定义了一个动态且主观的标准:稳定期最长的同类型游戏,其运营时间为分母,你的产品稳定期时长为分子,得出稳定时间比,再乘以两者ROI的比。

举个例子:你的游戏稳定期3年,游戏A的稳定期长达5年;你的游戏ROI是150%,游戏A的ROI是200%。则改进成功率为3/5*150%/200%=45%。成绩还不错。

再举个例子:你的游戏稳定期1年,游戏A的稳定期2年;你的游戏ROI是300%,游戏A的ROI是100%。则改进成功率为1/2*300%/100%=150%。

恭喜你!你成为了新的标杆,比较目标不再是那个游戏A,而是你自己!这就是为什么说这个标准是动态的。

稳定期的含义。对我来说是指收入,如果不是商业游戏可以参照其他排行,例如下载数,DAU等。稳定期的没有具体的标准,所以这是一个主观的定义,月流水变化不超过-5%我认为就是稳定的,如果持续上涨那就更了不起了。

用ROI做另一个标准有两个原因,一是为了排除收入低得非常稳定的游戏,二是避免赔本赚吆喝的游戏。

注意这个结果在计算方法论的成功率时不能大于1,最多等于1。否则这里会出现矛盾:如果可以大于1,那么方法论就是无效的,因为理论上改进的价值可以无限大。如果改进的价值可以稳定的做到非常大,那么能够稳定改进成功率的方法就是方法论。

给出这样定义有两个目的,一个是评价改进的持续时间,一个是评价改进的效率,两者相乘即改进的价值。

两者兼得才能称得上是成功的改进,否则“一波流”的IP换皮游戏岂不是也能称得上成功的改进了?

事实上目前评价一个游戏成功与否的标准目前来说就是运营时间和收入,我只是用它的变式来衡量改进而已。

改进的衡量标准有了,如何进化呢?先思考两个问题。 1.什么样的体验能“撬动”人类懒惰的情绪并愿意继续尝试?

2.什么样的设计能给玩家持续的相同体验?

第一个问题的核心是如何激起玩家的渴望并满足它。 第二个问题的核心是持续激起玩家新的渴望并满足它。之所以说“相同体验”,是指让玩家留下来的体验肯定是玩家渴望的,如果后续提供的体验变了,很容易导致出戏,无法维持精心营造的代入感。

在《上瘾》一书中,作者为解决这两个问题提供了思路: 1.触发:促使你做出某种举动的诱因,例如看到美景图片想去旅游,或者渴了想喝饮料。

2.行动:在期待酬赏时的直接反应。例如直接定去旅游的机票,或者立刻去超市买冰可乐。

3.多变的酬赏:固定的酬赏会慢慢丧失吸引力,同一个段子看第二遍就不想笑了。所以需要让酬赏“多变”起来。可能有人会问,既然多变了怎么保证“相同体验”呢?这就像听笑话,一个段子听第二遍就不好笑了,讲笑话的人就得编新的,这都是为了让用户“笑”。

4.投入:通过让用户投入改变态度。这里应用了心理学的知识,人会通过改变态度来避免认知失调,而态度改变是培养习惯的必要条件,习惯则是上瘾的表现之一。

这本书为“改进”提供了思路,并介绍了一些原理和例子。但是根据前文对知识体系的分类,并没有通用的“方法”。这是因为改进是针对每个产品自身特性做出的调整,能通用的几乎只有原理,根据正确的原理设计“方法”才能做出“成功的经验”。这也是为什么我认为游戏设计领域,简单复制经验或方法都是不可行的。

第四步骤是建立在第三步骤之上的,没有足够的知识体系,“改进”只能盲人摸象,不得要领。

第四步骤的进化方法总结下来就是:知道原理,利用原理创造针对自己游戏的方法。

在写方法论的时候,明显可以感觉到,虽然四个步骤在做设计指导时是独立的,但在进化时又是互相影响的。

比如在了解什么是对的时候,会对自己目标的形成有影响;在建立目标的时候,自然而然就会想这个目标需要什么条件才能达到;在建立知识体系的时候又会改变自己对“对”和“目标”的认知;在研究改进的时候为了寻找方法,又需要复杂的知识体系。

这四个步骤互相独立又互相影响,一个步骤进化了通常意味着其他三个步骤也进化了。也许说明了一个道理:就像时势造英雄还是英雄造时势很难分清因果一样,目标和知识其实是互相影响的,达到目标需要更庞杂的知识体系和改进,拥有更庞杂的知识体系就可以建立更远大的目标。

也许有人觉得建立知识体系或者改进是最难的,实际上这四个步骤难度是逐渐降低的,觉得改进很难是因为不了解事物的本质,没找到真正的目标,所以怎么做都感觉不太对。

就像前文中所述,方法论本质上就是提高确定性的工具,一切提高确定性的工具都可以称为方法论。大方法论嵌套小方法论,大知识体系嵌套小知识体系,方法论又嵌套知识体系。

这四个步骤还有很多主观的推断,且定义仍然不够清晰,希望在建立知识体系的过程中可以对四个步骤进一步优化。

然后对方法论的进化方式做更深入的探索,找到更优的进化标准和方法。

完成本文后发现通过调整定义范围,也许可以通用在人生规划上:

希望各位读者可以找到自己人生的方法论,人的一生如果不能按自己的想法生活真是太累了,找到方法论就是可以按自己想法生活的关键。

下一篇文章预计会写游戏设计中数值和系统的本质。不了解事物本质的话,会发现无从下手,做出的设计也不好衡量。通过分析数值和系统的本质,来推导数值和系统应该达到什么样的效果,以及具体的达到目标的方法。

同时数值和系统也是游戏设计知识体系的基石,知识体系将由此展开。

如果论证过程有不够充分的地方,欢迎留言讨论。如果您觉得本文有点用,或对下一篇文章有点小期待,可以点个“在看”。就像我规划目标经常会设计具体的数值作为参考,“在看阅读比”将是一个很重要的数据,它可以证明真的有人愿意了解游戏设计原理。

谢谢观赏。

索引: [1]Naval Ravikant,硅谷著名天使投资人,曾投资过Twitter、Uber、Yammer、Stack、Overflow、Wanelo等多家公司。股权众筹平台AngelList创始人。

[2]百度百科。

[3]有的书中将游戏感定义为游戏给人的感觉,而我定义为人玩游戏的感觉,两者之间有所区别,前者的隐含的意思是游戏给所有人的感觉都是相同的,而我的定义是不同的人玩同样的游戏感觉是不同的。 [4]百度百科。 [5] 由于学界对于知识层次的定义并不明确,本文也并不旨在讨论知识的定义,且我目前对知识的定义已经足够满足在游戏设计中的应用,本文就暂且以这个定义为准吧。 [6] 《刻意练习》,[美] 安德斯·艾利克森(AndersEricsson)罗伯特·普尔(Robert Pool)。 [7]研究思维的学科领域非常多:认知逻辑学、认知心理学、管理学、组织学、行为经济学等,他们对思维的研究产生了很多有价值的结论,本文不一一介绍,可以自行查找资料。 [8]《门到门时代:正在重构人类生活的物流革命》,爱德华·休姆斯。 [9]《经济发展理论》,约瑟夫•A•熊彼得。虽然说这句话的是经济学家,但是他对“创新”的定义依然可以延伸到设计领域。

阅读全文 »

game

发表于 2010-11-14 | 分类于 game

1. 巨人

一次出差,和前巨人公司的某策划同一屋,他应届生入职就是史玉柱亲自带的,和他谈论了一整夜的史玉柱关于玩家心态的把握,大有裨益。

其中,对于玩家需求把握的精髓,史玉柱的总结是八个字:荣耀、目标、互动、惊喜。网上可以搜到很多史玉柱解释这8个字的心得,结合我听到的,看到的各种版本,下面的版本的解释我觉得是最全面精髓的。这是某次史玉柱在公司内部培训的演讲实录,摘取了和题目相关的八字需求部分。

关于玩家的需求 史玉柱

对这一点,我总结了一个八字方针:荣耀、目标、互动、惊喜。

如果列玩家的需求,可以列十几、二十条甚至更多,但经过筛选和我的体会、及我与小刀、学锋等人的探讨,我们最终留下了这四条,如果能把这四条做到,从我们目前的水平而言,我们觉得就已经够了。但这四条我们能做到的可能性也不大,尽管只有四条。因此我们要聚焦,将所有的精力都放在这四条上面。能把这四条做好,我们在中国网游业也就能出类拔萃了。

1.1. 荣耀 - 人性的部分

根据马斯洛理论,人有五大追求,从重要程度上来排,第一个追求是生理追求即吃饱饭,第二个是安全,第三个是社交,如亲情,友情、爱情等,第四条是尊重,最后一条是自我价值的追求。从这个角度来看,来玩游戏的人首先不是为生理需求,也不是为安全需求,社交需求也有,但由于网游的特征,本应该将它列为第一需求,但我没有,我列的是荣耀,这是为什么呢?这就是网游的特征。一个人从网上找的爱情和现实中找的爱情是有差距的,现实中你会看到喜欢的异性会发光,游戏里你会嘛?不会。亲情更加谈不上,友情是有的。这和我列的互动是有关系的。但第一还是荣耀,也就是第四个追求,这也是玩家来游戏里的第一需要。玩家来游戏内心深处第一的需要其实是想获得其他人的尊重,要获得荣耀。

荣耀到底有多重要,我打个比方,做房产的人经常说的一句话,投资房地产,最重要的第一是地段,第二是地段,第三还是地段。做网游也是这样,满足玩家需求,第一是荣耀,第二是荣耀,第三还是荣耀。我们应该把荣耀作为玩家的首要需要来满足。我们在游戏里经常能看到,一个装备很好的玩家被人称呼为偶像的时候,心里其实是非常高兴的。一个平时没什么价值的仙小号把一个大号救活,大号感谢他的时候,这个小号能高兴十分钟,会觉得自己很重要。还有打群架的时候,只要国王在,都不打其他人了,专打国王,因为打好国王可以上电视。还有一种情况就是和盟国的国王在一起的时候,小号经常说,国王,让我杀一次吧,因为我想上电视。这就反映出他内心对荣耀的需求。

在《征途》里,一旦有本国的镖车被劫,那些大号会奋不顾身的去保护那些小号,去救镖。为什么会去救镖?大号需要自己花钱买竹蜻蜓,救好之后在利益上对自己也没有任何好处。你分析他的心理,其实他就是为了满足他的荣耀,被救的人的一声谢谢就让他很高兴,如果遇到一个识相的小号再刷一下屏,说,谢谢XX救了我的镖,他又会开心十分钟。所以仔细到游戏里,不管大号小号,玩家内心最渴望得到的就是荣耀。但我们的策划却缺少这个思想。如果意识到这一点,我们的策划在做功能的时候,首先想到的就应该是,我目前做的这个功能是否能最大程度的满足玩家对荣耀的需求。如果有了这根弦,我们绝大多数,三分之二的功能都能够不同程度的满足玩家对荣耀的需求。这个是只要你重视了就完全能够做到的。

之所以,我们目前90%的功能没有给玩家带来荣耀的满足,并不是因为做不出来,而是因为我们没有这根弦。过去我们包括我自己在想到荣耀的时候,总是会首先想到大号,装备好的玩家,国王、当官的这些玩家的荣耀,我们忽视了小号这些玩家的需求。这些小号和大号一样,来游戏的目的都是为了荣耀。在过去的很长时间,我、包括我们的核心团队都没有注重这一点。如果一旦小号荣耀得到满足会比大号更加兴奋。我们中国大多数游戏都不重视小号的荣耀,如果我们做到了,那我们的非人民币玩家,我们的在线人数就会得到大量的增加。因此,在此特意要提出,除了大号,我们今后要对小号的荣耀要给予特别的重视。只要重视了,荣耀问题是能够得到解决的。我们一定要统一思想,把荣耀作为玩家的第一需求。

在这里,我要说个事就是我们的上电视,从它推出到现在,效果一直都非常的不错。当我们的电视单为荣耀服务的时候,我们电视的作用还是很大的。上电视是很简单的事情,只是在屏幕的地方说一句话,但玩家还是很在乎。这是我们的一个小小的发明,但它在满足玩家需求的方面远远超过其他很多功能。由此说明荣耀对玩家来说是非常重要的。

我们要把玩家对荣耀的需求作为玩家的首要追求来看,同时要把荣耀作为策划工作的一个重要环节。任何功能都要过一个荣耀关。尤其是小号的荣耀的满足。

1.2. 目标 - 人生之路

单机游戏和网游一样,都有对目标的要求。单机游戏中,目标是最为主线的,如果目标都没有的话,那这个单机游戏则是彻底失败的。相对而言,做过单机游戏的人对目标的体会会更加深刻。

在我们的策划队伍中,做过单机游戏的人几乎没有,因此我们相对来说,对目标的管理不是很重视。没有目标管理系统就没有单机游戏,而网络游戏是从单机游戏发展来的,所以单机游戏的基础是必须要保留的。我们现在正是缺少并需要补上这一课的。 目标又分为短、中、长期目标。短期目标是持续时间很短的,如玩家接到一个任务打20个怪,那么打完这20怪,得到奖励,这个短期的目标就实现了。中期的目标又是哪些呢?如我的包裹不够,我要增加就要努力,可能需要努力几个小时,甚至一天,我就可以把我的这个需求满足,这就是我的一个中级目标。而长期目标则可能是升级、装备等等。

对玩家来说,在任何一个时间节点上,都应该有目标,在任何一个时间节点上,都应该短中长期目标三者同时存在。玩家一旦失去目标,那就是非常危险的。如果玩家上线感觉没事可做,其实就是玩家没有目标了。也许策划会说,我已经给他设定很多目标了。这些目标都是从你策划角度出发的,可能因为策划水平的问题、数值不合理的问题、细节没有优化好的问题、难度太高等问题,从玩家的角度而言就不是他的目标。因此策划是不能代替玩家的。只有策划做好了,玩家接受了,那玩家才会将你做设定的那些作为自己的目标。一旦出现玩家上线感觉没事可做,那离这个玩家走就不远了。因此目标管理也是关系到游戏成败的一个关键。

我讲一个《巨人》去年九月份的一个版本在目标管理方面的失败的案例。新手的目标还可以,一个小时之后升到民兵,玩家可以直接到NPC那边领取游泳、跳舞、开锁等技能,这些东西原本可以在前一个星期作为玩家的中期追求来满足,可是却在一瞬间全给了,而在接下来的一个星期没东西可以给他了。这就是典型的目标管理混乱案例。

正确的应该是怎么样?作为一个目标是有流程的,第一是应该制造压力,如就包裹而言,就应该让对应级别的爆率上升,让他好东西都放不下,这个时候告诉他,你要去接一个大任务,这个大任务包括十个小任务,把这十个小任务都做完之后,你的包裹就能够增加,压力制造了,让他感觉到压力的价值,然后给他一个中期目标,告诉他你只要再努力几个小时,这个努力的价值就能够得到。在努力的这几个小时内,玩家就不会离开,因为他的目标很明确,因为有一个很有价值的东西在等着他,即使夜深也不睡觉。在这个阶段中,我们就可以根据价值的大小设置努力的时间,有强烈目标的时候,玩家打怪不会有怨言。一旦目标达成,玩家就有一个压力的释放,就会很开心。最好这个喜悦得到后,不要马上停手,而是让他回味一下,如包裹,他就可以马上把很多不想丢的装备都放进去了。

再比如游泳,如果一上来就告诉他你可以游泳,他不会觉得有什么。如果一开始有一个任务总是需要到河对岸去做,总是需要跑大半个城去到河上的某座桥过去,十次八次之后,你告诉他,你可以学游泳,直接游过去,这个时候游泳技能就会变得对他非常的有价值。这个时候,你告诉他你要学会游泳,必须去完成一个有十个小任务的大任务,共需要两个小时,玩家也会很开心的去做了。

游泳学会了之后,你在安排下个任务的时候,就要让他继续体验,要他继续要到河对岸去做任务,把压力释放,体验到游泳这个技能的价值。因为,一年之后,玩家可能对游泳这个技能就会变得不在乎了。因此,刚学完之后,要让玩家集中享受一下游泳这个技能的价值。

这两个案例是想说一下目标设计的过程和目标的重要性。

关于目标,还有三点需要给大家提示一下:

第一. 也是我们策划经常发生的。策划觉得每个时间节点都给玩家设定了目标,但玩家调查却发现,玩家将这些目标都当成了累赘。不夸张的说,我们九成以上的功能都是这样的现象。就是说我们喜欢用自己的思维去判断玩家的思维。这就要求我们的策划要站在玩家的角度去做事,为对方设定目标的时候,要通过各种方式来了解玩家的需求。这个要引起我们策划的普遍重视。

第二.一旦一个目标达成之后,玩家会有一段时间的失落感。因此,在上一个目标达成之前,新的目标一定要确立出来。玩家不能在任何一个时间出现目标缺失和断档。有一个玩家叫中原暴徒,花了500万做了几套15星装备,花了一个月以上的时间,做装备的时候天天上线,很努力。做完这些装备后,不上线了,不玩了。做这些装备之前,他有很强烈的目标就是做装备。而目标达成后,他失落了,一个月没上线。虽然这个例子不具备普遍性,但这个道理是具有普遍性的。就是因为他目标达成之后,新的目标没有帮他树立起来。这个失落阶段非常的危险。

第三.一定要通过压力制造出目标的价值。同时,什么时候设目标,什么时候给他价值,需要多久的时间,这都需要一个合理的管理。我们目前使用的黑点图就是很好的办法。

1.3. 互动 - 社会性

单机和网游最大的区别就在于互动。

网游游戏就是拥有游戏元素的社区,从它的定义上来说,完全可以看出网游互动的重要,如果没有互动,那就是一个单机游戏而非网络游戏。网游中的玩家和单机游戏中的玩家的追求也是不一样的。

友情的需求在网游中的需求是存在的,仅次于对荣耀的追求。对我们研发人员而言,能做的有两个方面:第一是玩家交互的方式的尽量满足。如果去通过语言,文字,现在发展到语音系统。除此之外,我们还应该尽量提供其他的多种交互系统,表情、肢体等。我们的程序和美术应该在这方面多琢磨琢磨,把玩家的交互系统进行丰富。第二个就是引导。通过利益引导让玩家之间的关系更好。有难同当,打BOSS就是要几个人来打,BOSS我觉得就是要强,朋友在打的过程中,关系才会越来越好。我们要有意的去设计几个好朋友去有难同当,有利同享。

另外,仇恨也是一种互动,我们要制造玩家之间的仇恨。但国家内部的仇恨要尽量少制造,因为处于劣势的一方很容易被强势的一方打跑掉,打的不玩了。因此仇恨尽量多的要使用在群体之间,国与国,帮派与帮派之间。群体之间的仇恨越多越好,这就看你自己的能力了。群体间的仇恨不同于个体间的仇恨,优势方会有很强的荣誉感,劣势方的个体也不会因为群体的弱而出现大面积的离开。因此我们要引导玩家之间的爱和恨,恨才会给玩家带来激情。如果没有爱,则玩家不会有归属感。

我们的策划应该有这样一个流程,在设计任务的时候,要考虑到玩家之间的互动,让玩家会爱到什么程度,会恨到什么程度。《征途》在国与国之间的恨处理的不错,但在爱的方面处理的很差,这样就以至于我们在外面的名声不是很好,说杀戮太重,因此如果爱设计的很好的话,不仅是玩家的归属感还有很好的声誉。

像之前的《传奇》打怪是唯一的升级途径,打怪说白了就是耗玩家的时间,是人机互动。随着网游的发展,应该更加重视互动。花一定的时间,人人互动肯定要比花一定的时间,人机互动更好。在过去,人人互动做的不多,《征途》已经上升了很大一块,把人机互动比重已经下降很多。我认为,人人互动将会成为以后网游发展的方向,玩家也会更加喜欢。升级方式的改变我们要予以关注,我们要跟上潮流。

互动方面,我们《征途》和《巨人》都有一点没有做好的地方,那就是强者与弱者之间的互动。我们的互动往往局限在高手与高手、弱者与弱者之间。其实玩家不仅需要横向,也需要纵向的互动,这方面我们曾努力过,但几次都失败了。我们曾在两个方面努力过,但都失败了。第一个就是师徒系统,这就是想解决强者与弱者之间的互动,因为弱者更需要保护,强者需要弱者来给他利益。但我们设计过几个方案都失败了,可也有游戏做的不错,因此并不是师徒系统他设计不出来,而是因为做这个项目的人水平不够或者说不够努力。

第二个就是带新人没做好。带新人是非常重要的,一个带新人系统如果做好可以超过1个亿的广告费。他的基本原理是好的,是必须的。玩家觉得好玩就要去拉他现实中、网络上的朋友来玩,这个基本原理是对的。这个远远比我们的广告要好很多。因为玩家最相信的是他的朋友而不是厂家广告。如果这个系统做好,意义是非常重大的。而过去为什么我们没做好呢?是因为我们没有把工作做细,被玩家耍。因为他带的新人并不是新人而是他自己的小号。如果一个大号带4个小号这无可厚非,可我们的设计却是一台机器可以出现上百上千个小号,以至于打钱公司用它来打钱,我们的漏洞实在太大。玩家已经把自己变成打钱公司了。这其实完全是可以解决的,但我们太懒了。以前带新人是通过打怪,是可以用外怪的,一个人可以带几十个小号。如果我们让他去做刺探,小号就不能做了,如果让他去运镖,路上有截镖的风险,他就没办法用小号了,打钱公司就打不了了。我们将功能做一个筛选,有的是可以用机器来完成的,那就不能作为判定他们带与被带的关系的标准。有的是不能用机器来完成的,玩家都会去做的,这些随便选几条出来就可以让带新人这个系统大热。《梦幻西游》从公测的五万到现在的上百万在线,最重要的就是它的带新人系统。而《征途的》带新人系统,我们不能因为有了一些问题就将这个系统放弃。

1.4. 惊喜 - 耐玩性

惊喜其实就是随机性。它的地位也是非常高的。我有这样一个结论:没有随机性,网游就没有耐玩性,没有随机性,就没有游戏。分析一下,人类所从事的所有活动,都有随机。只要是游戏,比如打麻将。据说成都人打麻将人的劲头,全国人都钦佩的,而麻将这个游戏的最大特点就是随机。俄罗斯方块也是这样,因为你始终不知道下一个出来的会是什么形状,这也是随机。赌场也是,如果没有随机,就不会有人那么热衷了。因此只要是游戏,就有随机性。但我们几个项目的策划们对随机性却不够重视。

如果我们的随机性做的好,就像打麻将一样,即使不赌钱,即使任务的回报很小,但只要过程好玩,玩家还是很乐意去玩的,享受的是这个过程。如果我们的游戏可以做到没有经验,没有金钱,大家都很喜欢去玩,你再给上经验、金钱和各种好处,那这个游戏不就是一个好游戏了吗?

为什么打麻将好玩呢?因为它除了随机还有努力。随机和努力碰撞在一起时很微秒会起化学反应,会给玩家强烈的吸引力。纯随机也不行,就如打牌,大家都发完牌后,大家都亮牌,谁点高谁赢钱,虽然随机但不好玩,因为它不需要努力。麻将除了随机还需要努力,现实中的游戏是7分随机3分努力,玩家完的比较疯的。网络游戏我觉得4分努力,6分随机是一个比较合适的比例。如果实在做不到,哪怕五五开。但我们的游戏功能,一半随机是0,努力100%,一半随机是1分努力,随机99%。以前我们的策划没有注意到随机的重要性,尤其没有注意到随机和努力叠加在一起才是游戏的最大魅力。

我举一个去年九月份《巨人》里一个失败的例子,就是拉车。有玩家提意见说为什么我总是拉白车,别人都紫车。我们的策划就听取了玩家的意见,就消灭了随机性。本来玩家之前还有企盼,取消了车之间的差距后,再一看,没人来拉车了。后来又改了回来,改回来后,拉车的人气又起来了。这个例子说明,随机性是非常重要的。 大家可以想想我说的这两句话:人类所有的游戏都是需要随机的,没有随机,一些游戏都将不复存在。随机和努力如果比重能够处理好,将会使游戏的游戏性大幅度上升。

阅读全文 »

jenkins

发表于 2008-11-15 | 分类于 jenkins

1. 下载依赖

sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo

2. 导入秘钥

rpm –import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

3. 安装

yum install maven yum install git yum install java yum install jenkins

4. 查找jenkins安装路径

rpm -ql jenkins

5. 配置jenkins

vim /etc/sysconfig/jenkins

6. 启动jenkins

java -jar /usr/lib/jenkins/jenkins.war –httpPort=8080

阅读全文 »

windows

发表于 2008-11-05 | 分类于 windows
  1. 1. control userpasswords2
  2. 2. cmd proxy
  3. 3. packet manage
  4. 4. vmwware
    1. 4.1. 设置桥接
    2. 4.2. 获取虚拟机mac地址
    3. 4.3. 在路由器设置mac地支分配IP
    4. 4.4. 在路由器设置端口映射
  5. 5. Visual Studio Professional 2015简体中文版(专业版)
  6. 6. Visual Studio Enterprise 2015简体中文版(企业版)
  7. 7. Visual Studio 2017(VS2017) 企业版 Enterprise
  8. 8. Visual Studio 2019(VS2019) 企业版 Enterprise
  9. 9. Visual Studio 2019(VS2019) 专业版 Professional
  10. 10. win10共享设置
  11. 10.1. 启动guest账号
  12. 10.2. 打开本地安全策略 本地策略->用户权限分配->拒绝从网络访问这台计算机
  13. 10.3. 设置共享
  14. 11. win10访问smb
  15. 11.1. 运行
  16. 11.2. 设置
  17. 11.3. 更新
  18. 12. win10安装WSL2
  19. 13. 注册表
  20. 14. TortoiseSVN & TortoiseGIT设置比较工具Beyond Compare 4
  21. 14.1. Diff Viewer设置
  22. 14.2. Merge tools设置

1. control userpasswords2

2. cmd proxy

set HTTP_proxy=http://127.0.0.1:1080/ set HTTPS_proxy=https://127.0.0.1:1080/

3. packet manage

powershell Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString(‘https://chocolatey.org/install.ps1’))

choco config set proxy http://127.0.0.1:1080/pac?auth=qc9rpOSZatS1RUD9NOkY&t=201812281705315739

choco install virtualbox choco install docker choco install docker-machine

4. vmwware

4.1. 设置桥接

4.2. 获取虚拟机mac地址

4.3. 在路由器设置mac地支分配IP

4.4. 在路由器设置端口映射

5. Visual Studio Professional 2015简体中文版(专业版)

HMGNV-WCYXV-X7G9W-YCX63-B98R2

6. Visual Studio Enterprise 2015简体中文版(企业版)

HM6NR-QXX7C-DFW2Y-8B82K-WTYJV

7. Visual Studio 2017(VS2017) 企业版 Enterprise

NJVYC-BMHX2-G77MM-4XJMR-6Q8QF

8. Visual Studio 2019(VS2019) 企业版 Enterprise

BF8Y8-GN2QH-T84XB-QVY3B-RC4DF

9. Visual Studio 2019(VS2019) 专业版 Professional

NYWVH-HT4XC-R2WYW-9Y3CM-X4V3Y

10. win10共享设置

10.1. 启动guest账号

10.2. 打开本地安全策略 本地策略->用户权限分配->拒绝从网络访问这台计算机

10.3. 设置共享

11. win10访问smb

11.1. 运行

gpedit.msc

11.2. 设置

计算机配置->管理模板->网络->Lanman 工作站->启用不安全的来宾登录

11.3. 更新

gpupdate /force

12. win10安装WSL2

若要更新到 WSL 2,必须满足以下条件:

运行 Windows 10(已更新到版本 2004 的内部版本 19041 或更高版本)。
通过按 Windows 徽标键 + R,检查你的 Windows 版本,然后键入 winver,选择“确定”。 (或者在 Windows 命令提示符下输入 ver 命令)。 如果内部版本低于 19041,请更新到最新的 Windows 版本。 获取 Windows 更新助手。
启用“虚拟机平台”可选组件
安装 WSL 2 之前,必须启用“虚拟机平台”可选功能。
以管理员身份打开 PowerShell 并运行:
PowerShell

复制
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
重新启动计算机,以完成 WSL 安装并更新到 WSL 2。
下载 Linux 内核更新包
下载更新包:

适用于 x64 计算机的 WSL2 Linux 内核更新包
https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi

如果使用的是 ARM64 计算机,请下载 ARM64 包
https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_arm64.msi
将 WSL 2 设置为默认版本
安装新的 Linux 分发版时,请在 Powershell 中运行以下命令,以将 WSL 2 设置为默认版本:
PowerShell

wsl --list --verbose
适用于 Linux 的 Windows 子系统分发版:
Ubuntu (默认)
Ubuntu-20.04

复制

wsl --set-default-version Ubuntu 2
正在进行转换,这可能需要几分钟时间...
有关与 WSL 2 的主要区别的信息,请访问 https://aka.ms/wsl2

wsl --set-default-version Ubuntu-20.04 2

13. 注册表

Rem 关闭屏幕保护
reg add "HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\Control Panel\Desktop" /v ScreenSaveActive /t REG_SZ /d "0" /f
Rem 唤醒时关闭密码保护
reg add "HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\Control Panel\Desktop" /v ScreenSaverIsSecure /t REG_SZ /d "0" /f

14. TortoiseSVN & TortoiseGIT设置比较工具Beyond Compare 4

14.1. Diff Viewer设置

"C:\Program Files\Beyond Compare 4\BCompare.exe" %base %mine /title1=%bname /title2=%yname /leftreadonly

"C:\Program Files\Beyond Compare 4\BCompare.exe"

Mobile Preview

14.2. Merge tools设置

"C:\Program Files\Beyond Compare 4\BCompare.exe" %mine %theirs %base %merged /title1=%yname /title2=%tname /title3=%bname /title4=%mname

Mobile Preview

w4G-in5u3SH75RoB3VZIX8htiZgw4ELilwvPcHAIQWfwfXv5n0IHDp5hv 1BM3+H1XygMtiE0-JBgacjE9tz33sIh542EmsGs1yg638UxVfmWqNLqu- Zw91XxNEiZF7DC7-iV1XbSfsgxI8Tvqr-ZMTxlGCJU+2YLveAc-YXs8ci RTtssts7leEbJ979H5v+G0sw-FwP9bjvE4GCJ8oj+jtlp7wFmpVdzovEh v5Vg3dMqhqTiQHKfmHjYbb0o5OUxq0jOWxg5NKim9dhCVF+avO6mDeRNc OYpl7BatIcd6tsiwdhHKRnyGshyVEjSgRCRY11IgyvdRPnbW8UOVULuTE
阅读全文 »

linux-core

发表于 2008-11-05 | 分类于 linux

程序异常退出时,内核会生成一个core文件(是内存映像以及调试信息)。可以通过使用gdb来查看core文件,指示出导致程序出错的代码所在的文件和行数。

1、查看系统中core文件生成的开关是否打开

1)使用ulimit -c命令可查看core文件的生成开关,若结果为0,则便是关闭了此功能,不会生成core文件。

2、设置core文件生成

1)使用命令ulimit -c filesize命令 若ulimit -c unlimited 则标识此core文件的大小不受限制 若指定filesize,如果生成的信息超过此大小,将会被裁剪,最终生成一个不完整的core文件,在调 试此core文件时,gdb会提示错误。 2)但是若想整个系统中生效则在shell里面设置是不行的,方法如下: (1)编辑/root/.bash_profile文件,在其中加入ulitmit -S -c unlimited (2)source /root/.bash_profile

阅读全文 »

中国公民科学素质基准

发表于 2008-11-05 | 分类于 中国公民科学素质基准

《中国公民科学素质基准》题库(500题)

阅读全文 »

router设置

发表于 2008-09-05 | 分类于 router

1. 安装Entware-ng软件中心

wget -O - http://pkg.entware.net/binaries/armv7/installer/entware_install.sh | sh

阅读全文 »

申子辰三合研究

发表于 2008-02-25 | 分类于 {"title"=>"申子辰三合研究"} , {"title"=>"申子辰三合研究"}
  1. 子水(lua引擎) 申金(驱动反馈系统) 辰土(环境调度系统)
  2. 制定开发标准环境: centos 7.5 gcc8.3 protobuf3.5
  3. 子水(执行) 申金(驱动) 辰土(策划)
  4. 子水(gate_server) 申金(world_server) 辰土(db_server)
阅读全文 »

task

发表于 2008-02-25 | 分类于 task
  • task系统分类
    • 主线任务
    • 支线任务
    • 剧情任务(环境任务)
    • 环任务(组任务)
    • 活动任务(动态任务)
  • task数据分类
    • 当前任务列表
    • 任务完成进度状态, 任务时效
    • 当前任务附加信息(例如关联NPC,怪物等)
    • 已完成任务列表
    • 交互信息
  • task系统流程
    • task存取数据
    • task接取枚举前置条件, 脚本前置条件
    • task接取与NPC信息绑定
    • task统计系统信息打桩
    • task完成条件判断 脚本事件处理
    • task完成, 失败, 超时等 脚本事件处理

1. task系统分类

1.1. 主线任务

1.2. 支线任务

1.3. 剧情任务(环境任务)

1.4. 环任务(组任务)

1.5. 活动任务(动态任务)

2. task数据分类

2.1. 当前任务列表

2.2. 任务完成进度状态, 任务时效

2.3. 当前任务附加信息(例如关联NPC,怪物等)

2.4. 已完成任务列表

2.5. 交互信息

3. task系统流程

3.1. task存取数据

3.2. task接取枚举前置条件, 脚本前置条件

3.3. task接取与NPC信息绑定

3.4. task统计系统信息打桩

3.5. task完成条件判断 脚本事件处理

3.6. task完成, 失败, 超时等 脚本事件处理

阅读全文 »

skill

发表于 2008-02-25 | 分类于 skill
  • 1. skill系统
    • 1.1. 指向性skill
    • 1.2. 范围性skill
    • 1.3. 无锁定skill
  • 2. skill_effect
  • 3. buff系统
    • 3.1. buff由一个或者多个buff_effect实现
    • 3.2. buff由枚举及参数 调用其他模块提供功能 例如 物品, 召唤系统
    • 3.3. buff参数构成
  • 4. buff_effect
  • 5. Operation
  • 6. Buff
  • 7. BuffEffect buff效果表,描述怎样调用operation 效果的生效对象,触发条件,是否生效判定(当释放者身上有某类buff或者拥有者身上有某类buff,生效概率等等),传给operation的参数
  • 8. 案例

1. skill系统

1.1. 指向性skill

1.2. 范围性skill

1.3. 无锁定skill

skill系统由多个skill_effect 配合条件与节奏控制实现

2. skill_effect

职责

3. buff系统

3.1. buff由一个或者多个buff_effect实现

3.2. buff由枚举及参数 调用其他模块提供功能 例如 物品, 召唤系统

3.3. buff参数构成

4. buff_effect

buff_effect分为三类 控制类, 增益类, 减益类, 其他

5. Operation

原子操作,技能,buff都可以调用,每个操作传入参数的意义不同 操作方式:增加,减少,直接修改,按百分比,按数值

添加buff,参数是buff模板id,buff持续时间,层数 增减hp,mp等等 添加某个状态,在buff消失时要移除该状态 临时增加或者减少某个属性 根据属性枚举,可以修改任何属性 驱散buff 驱散方式传入参数 按大类,按小类,按id等 召唤陷阱,怪物等等 使技能进入cd 取消技能cd 打断技能释放 等等

状态 存储时按位: 束缚 沉默 昏迷 昏睡 位移过程中

必然闪避 必然暴击 必然命中 等等

免疫 免疫控制 在添加控制类buff时判定 免疫debuff 添加debuff时判定 免疫减速 免疫物理攻击 免疫魔法攻击 等等

6. Buff

BuffTemplate表 buff基础信息,大类,小类,最大层数,持续时间,触发次数,跳场景是否保留,下线是否保留,死亡是否保留,是否可以被手动移除等等

分类: 增益类 减益类 控制类 每个大类再分小类

7. BuffEffect buff效果表,描述怎样调用operation 效果的生效对象,触发条件,是否生效判定(当释放者身上有某类buff或者拥有者身上有某类buff,生效概率等等),传给operation的参数

效果调用时机: 开始生效 周期性生效
结束时生效 时间耗尽 死亡 被驱散 触发次数消耗尽 手动取消 无条件(只要结束就生效) 根据结束方式判断是否生效 触发生效 有条件触发(当血量低于多少百分比时触发等),无条件触发(被控制时触发等) 层数叠满时生效

效果生效对象: Buff拥有者,buff释放者,效果触发者或者aoe方法pick到的对象

Buff可以直接调用伤害公式进行伤害,跟技能一样,在buff产生时会初始化buff释放者的伤害计算相关数据

Buff添加 判断免疫 判断层数 Buff替换规则,高等级替换低等级,多buff共存等等 调用开始时生效的效果 添加buff触发生效条件,在程序各处添加触发接口,使用技能时触发,被控制时触发,收到伤害时触发,使用某个技能时触发(带参数 技能id)等等

Buff update 调用buff周期生效效果

buff被触发 调用触发effect,根据配置决定对buff释放者,buff拥有者或者buff触发者使用效果

Buff 结束 调用结束生效效果,根据buff结束方式调用对应的生效效果,结束方式有:时间耗尽结束,触发次数被耗尽,被驱散,玩家主动点击取消 等

Skill Skillconfig表通用信息 主动技能,被动技能(由buff实现) 触发类技能,在自身或者选中对象在某种状态下时可以释放的主动技能

吟唱 void OnSkillIntonate(const CS_SKILL_INTONATE_REQ* pData);

技能吟唱使用的动作,吟唱时间,显示的文字,都可以配置,配置在Intonate表中

状态判断,技能在某些状态下才可以释放或者在某些状态下不能释放 释放者,目标都需要判断 释放消耗判断 释放距离 释放对象判断 敌军,友军等 释放位置合法性等

开始吟唱时需要判断此时是否有其他效果需要调用 比如给自己加个buff

特殊处理 瞬发技能不需要吟唱直接释放 在吟唱完成准备释放时,大部分条件都需要再判断一次 比如技能,状态限制,敌对关系等可能发生变化的条件 地图传送技能,直接打断当前技能,然后执行传送技能 使用物品的技能,某些物品直接出效果,避免战斗过程中无法使用物品,物品走自己的cd,不走技能cd,某些带使用动作的物品,物品自己决定使用哪个Intonateid的效果

释放技能 扣除消耗 开始施法时判断是否有效果调用,跟开始吟唱时一样 通知客户端开始释放技能 如果该技能有主动位移,在开始释放包内带上计算好的终点给到客户端,并启动定时器,强制设定客户端位置。每个hit点都可能会有位移,如果开始位置一致,后面客户端和服务端计算得到的位置肯定一致,所以客户端可以先行计算,但是最终位置服务端将会判断

开始计算hit点 一个技能可能存在多个hit点 在每个hit点都可以计算伤害和效果 void OnSkillHit(const CS_SKILL_HIT_REQ* pData);

hit点时间到时,客户端拾取目标发送到服务端,并且先表现受击动画和受击特效,服务端进行伤害计算,效果计算,如果该技能需要服务端拾取,则服务端会自己拾取攻击目标并进行伤害计算和效果计算

每个hit点的伤害计算方式由damage表决定,效果则由skilleffect表决定,每个hit点可以不一样

拾取目标的方式由pick表决定

延迟伤害,先下发,客户端攻击到后通知服务端扣血,服务端也会设一个最大延迟时间

位移技能 1 无吟唱直接位移,客户端先行,计算出终点位置,服务端检验,不通过直接强拉 2 吟唱后位移,等服务端下发终点位置

对于有吟唱的技能,服务器可以完全控制技能的节奏 对于没有吟唱的技能,因为是客户端先行,服务器无法控制节奏,因为会出现网络波动 释放技能的消息和hit点消息可能同时到来。也可以改成服务端计算hit直接下发的方式

增加正在释放技能状态 此状态下,无法移动,无法释放其他技能

结束技能 可以提前结束 void CBattleSkill::OnSkillStop(const CS_SKILL_STOP_REQ* pData) 或者服务端的总时间到了,也会自动结束

8. 案例

以技能北斗七星阵为例

北斗是由天枢、天璇、天玑、天权、玉衡、开阳、瑶光七星组成

范围型技能

创建北斗七星对象及一个阵法对象

瑶光, 开阳, 对范围内敌人 造成三次 40%法术伤害 命中对象 降低50点怒气 基础伤害功能+基础debuff功能 玉衡, 天权, 对范围内敌人 造成三次 40%物理伤害 恢复所造成伤害300% 基础伤害功能+脚本追加功能 天玑, 天璇, 天枢 对范围内敌人 造成一次 120%法术伤害 基础伤害功能 并为范围内己方添加 时光回溯 状态 持续3秒. 该状态记录当前生命值及怒气值 基础buff功能+脚本追加功能 如果当前不处于禁疗状态, 若己方血量低于记录值的60% 则恢复至60%, 高于则不变化 基础buff功能+脚本条件判断功能+脚本追加功能 如果当前不处于禁怒状态, 那么己方怒气低于记录值的40% 则恢复至40%, 高于则不变化 基础buff功能+脚本条件判断功能+脚本追加功能

北斗七星阵法对象 对范围内敌人 造成3次 50%法术伤害 并额外造成当前生命20%的伤害. 最大值为法攻(200%). 基础伤害功能+脚本追加功能 免疫中断 基础buff功能

阅读全文 »

item

发表于 2008-02-25 | 分类于 item
  • 1. 装备模块系统分类
    • 1.1. 普通装备系统
    • 1.2. 装备升级/洗练系统
    • 1.3. 套装系统
    • 1.4. 宝石系统
    • 1.5. 符文系统
    • 1.6. 时装系统
    • 1.7. 耐久/绑定系统
    • 1.8. 传承系统
  • 2. 装备系统相关系统
    • 2.1. 背包/仓库系统
    • 2.2. 属性系统
    • 2.3. buf系统
    • 2.4. 邮件系统
    • 2.5. 交易/拍卖系统
    • 2.6. GM系统

1. 装备模块系统分类

1.1. 普通装备系统

1.2. 装备升级/洗练系统

1.3. 套装系统

1.4. 宝石系统

1.5. 符文系统

1.6. 时装系统

1.7. 耐久/绑定系统

1.8. 传承系统

2. 装备系统相关系统

2.1. 背包/仓库系统

增加消耗叠加 统一接口 实现方式mmo/手游

2.2. 属性系统

分3种 
独立成长属性 例如: level, exp, vip_level 
特殊处理属性 例如: 当前HP, MP
基础属性 例如: 力量 敏捷 闪避

2.3. buf系统

能提供一个通过bufid提供属性或者特效加成的接口, 需要注意叠加上限问题.

2.4. 邮件系统

需要序列化/反序列化物品接口, 唯一ID问题. 异步问题

2.5. 交易/拍卖系统

需要序列化/反序列化物品接口, 唯一ID问题. 异步问题

2.6. GM系统

在线离线发放物品
阅读全文 »

vim

发表于 2007-09-05 | 分类于 vim

1. vim

1.1. https://www.vim.org

1.2. https://neovim.io

1.3. https://spacevim.org

Mobile Preview

Mobile Preview

Mobile Preview

2. build

  • 安装依赖
    yum -y install python-devel
    yum -y install ncurses-devel
    
  • 拉取代码 编译 安装
    git clone https://github.com/vim/vim
    pushd vim
    git submodule update --init --recursive
    make distclean
    sh configure --help
    sh configure --enable-pythoninterp=yes --enable-cscope  --enable-multibyte --enable-fontset
    make
    sudo make install
    popd
    
  • 卸载
    sudo make uninstall
    

3. SpaceVim

  • 安装
    curl -sLf https://spacevim.org/install.sh | bash
    
  • 卸载
    curl -sLf https://spacevim.org/install.sh | bash -s -- --uninstall
    

4. 安装插件

  • 基础依赖
    yum -y automake gcc gcc-c++ kernel-devel cmake
    yum -y install python-dev python3-dev boost clang-devel
    
  • 安装bundle ``` pushd ~/ mkdir .vim mkdir .vim/bundle

git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim cd ~/.vim/bundle


- 安装YouCompleteMe

git clone https://github.com/brinkqiang/YouCompleteMe cd YouCompleteMe git submodule update –init –recursive sh install.sh –help sh install.sh –all popd

cp ~/.vim/bundle/YouCompleteMe/.ycm_extra_conf.py ~/ cp ~/.vim/bundle/YouCompleteMe/.vimrc ~/

# 5. vim设置
vim ~/.vimrc

set nocompatible “ be iMproved, required filetype off “ required

” set the runtime path to include Vundle and initialize set rtp+=~/.vim/bundle/Vundle.vim

call vundle#begin()

Plugin ‘VundleVim/Vundle.vim’ Plugin ‘Valloric/YouCompleteMe’ Plugin ‘jnurmine/Zenburn’ Plugin ‘octol/vim-cpp-enhanced-highlight’

Plugin ‘vim-scripts/gdbmgr’ Plugin ‘honza/vim-snippets’ Plugin ‘scrooloose/nerdtree’

call vundle#end() “ required

” “ Brief help “ :PluginList - lists configured plugins “ :PluginInstall - installs plugins; append ! to update or just :PluginUpdate “ :PluginSearch foo - searches for foo; append ! to refresh local cache “ :PluginClean - confirms removal of unused plugins; append ! to auto-approve removal “ “ see :h vundle for more details or wiki for FAQ “ Put your non-Plugin stuff after this line

” set nocompatible

set backspace=indent,eol,start set nobackup set history=1500 set ruler set showcmd

set t_Co=256

set showmatch set hlsearch set incsearch set ignorecase

syntax on filetype plugin indent on autocmd FileType text setlocal

set autoindent set cindent set number set expandtab set tabstop=2 set shiftwidth=2

set encoding=utf-8 set fileencoding=utf-8 set fileencodings=utf-8,gb2312

au BufReadPost * if line(“’"”) > 0 if line(“’"”) <= line(“$”) exe(“norm ‘"”) else exe “norm $” endif endif

set completeopt=longest,menu autocmd InsertLeave * if pumvisible() == 0|pclose|endif inoremap pumvisible() ? "\" : "\"

inoremap pumvisible() ? "\" : "\" inoremap pumvisible() ? "\" : "\" inoremap pumvisible() ? "\\\" : "\" inoremap pumvisible() ? "\\\" : "\"

“let g:ycm_key_list_select_completion=[‘'] let g:ycm_key_list_select_completion = [''] "let g:ycm_key_list_previous_completion=[''] let g:ycm_key_list_previous_completion = [''] let g:ycm_confirm_extra_conf=0

let g:ycm_collect_identifiers_from_tags_files=1 let g:ycm_min_num_of_chars_for_completion=2 let g:ycm_cache_omnifunc=0 let g:ycm_seed_identifiers_with_syntax=1 nnoremap :YcmForceCompileAndDiagnostics "force recomile with syntastic "nnoremap lo :lopen "open locationlist "nnoremap lc :lclose "close locationlist inoremap

let g:ycm_complete_in_comments = 1

let g:ycm_complete_in_strings = 1

let g:ycm_collect_identifiers_from_comments_and_strings = 0

let g:ycm_echo_current_diagnostic = 1

let g:ycm_auto_trigger = 1

nnoremap jd :YcmCompleter GoToDefinitionElseDeclaration

nmap <C-]> :YcmCompleter GoToDefinitionElseDeclaration imap <C-]> :YcmCompleter GoToDefinitionElseDeclaration

autocmd QuickFixCmdPost [^l]* nested cwindow autocmd QuickFixCmdPost l* nested lwindow

let g:clang_format_fallback_style=’~/.clang-format’ let g:ycm_server_python_interpreter=’/usr/bin/python’ let g:ycm_global_ycm_extra_conf=’~/.ycm_extra_conf.py’

map :call CompileRunGcc() map :NERDTree map :PluginInstall

if has(‘gui_running’) set background=dark colorscheme solarized else colorscheme zenburn endif

func! CompileRunGcc() exec “w” if &filetype == ‘c’ exec ‘!g++ % -o %<’ exec ‘!./%<’ elseif &filetype == ‘cc’ exec ‘!g++ % -o %<’ exec ‘!./%<’ elseif &filetype == ‘cpp’ exec ‘!g++ % -o %<’ exec ‘!./%<’ elseif &filetype == ‘python’ exec ‘!python %<’ elseif &filetype == ‘sh’ :!bash % endif endfunc ```

阅读全文 »

magic

发表于 2007-09-05 | 分类于 magic

一、地支所属之象

子水:子水属阳,子水具有阴阳两重性,它属于外阳内阴之象,表象是阳,实显阴性。子是十二支的首位,属溪涧汪洋之水。在节令上为农历十一月。子为墨池,方位属正北,五行属水,颜色象墨,所以有墨池的意象。凡是子年生人时柱喜见癸亥,叫做“水归大海”,又叫“双鱼游墨”,主文章、文采出众。

丑土:丑土节令是十二月隆冬,含水气,所以为湿土,五行属阴,丑为金库。五行颜色;黑黄。丑为柳岸,丑中有水有土有金,岸是土堆成,可以阻止水流所以丑有柳岸之名。丑年生人时柱碰见己未,叫做“月照柳梢”,这是一种极为上格的命。

寅木:寅为孟春。节令是农历正月。五行属阳。五行颜色:绿色。寅为广谷,在方位上属于东北的艮,艮在八卦上为山,原是戊土生长的地方,这样就有广谷的意义了。寅年属虎,虎年生人时柱碰上戊辰,那就叫“广谷虎啸”,威镇万里。

卯木:卯为仲春,节令为农历二月。这时万物生长,树木碧青如琅,所以卯为琼林,卯的位置在正东方,五行属木。卯年生人,时柱碰上巳、未的,叫“兔入月宫”,一定大贵。

辰土:辰为季春,节令为农历三月。辰土是水泥湿土,万物之根靠它培养生长辰为草泽。大泽是水聚的地方,而辰位置在东方稍偏一点的地方,正好是水库所以在草泽之名。八字中如果辰逢壬戌、癸亥,就贵为“龙归大海”格了。

巳火:巳为孟夏,节令为农历四月,这时巳火更旺,巳为大驿,所谓的大驿,就是人烟密集,道路通达的地方。因为巳里面藏有丙火、戊土,加之巳下面的一个地支又是午马,所以用大驿作巳的象征。火凡巳年生人,逢上辰时为吉利巳属蛇,辰为龙、蛇化为青龙,在格局里为“千里龙驹”。

午火:午为仲夏,节令是农历五月,这时的火势太旺。午为烽堠。午的位置在正南方,五行属火、土,颜色赤黄,所以有烽堠之称。同时午生肖为马,而烽堠正是兵火所处的地方。大凡午年生人,时柱最好能见辰,辰是真龙,真龙出现则马隐,这叫“马代龙驹”。

未土:未为季夏,节令为农历六月,这时阴气加深,火势渐弱。未为花园。花园为什么要属未而不属卯呢?因为卯木旺盛,自成茂林;未是木的墓库,好比墙亘里的花木,并且从杂而生,所以未叫做“花园”。未年生的人,碰上戊戌时,两干不杂,有“双飞格”之称,这是最好不过的。

申金:申为孟秋,节令是农历七月,是壬水,戊土长生之地,申是顽钝耐磨之金,为阳金。申为名都。在八卦中,方位属坤地,即西南方。其地的休势广大无疆,不用“名都”作比喻,不足以说明它广大。申宫生出壬水,又和艮山相对,是水绕山环的地方。申年出生的人逢上亥时,这就是“天地泰斗”的吉象

酉金:酉为仲秋八月,辛金色如白水清明。酉为阴金。酉为寺钟,因酉为金,位置在戌亥,戌亥为天门,钟为金属,寺钟敲响,声音响彻天门。酉的位置在正西方,寺又是西方佛界的代表,酉碰上寅吉利,叫作:“钟鸣谷应”。

戌土:戌为季秋,节令是农历九月。戌为火库,所有的钝铁顽金都要靠它锻炼成器。戊为烧原。戌的月份是深秋九月,那时草木枯萎,农家烧草而耕,加之戌属土,所以有烧原之名,正因为此,辰、戌地都是贵人不到的地方。戌年生人逢上卯支,那就叫“春入烧痕”。

亥水:亥为坤卦,六阴、这时一片白雪,土到此不暖,金到此会生寒气。亥属水,象五湖归聚的地方。亥为悬河。大河之水,奔流不回,所以称悬河。亥为天门,亥又属水,悬河之象非常明显。所以亥年出生的人,如果日柱、时柱有寅、辰二字,就称得上是“水拱雷门”了。

二、地支之象

子水:子癸一家但有区别,子水属于流动的水,运动的水,引申为江湖走江湖的。子水也代表玄学,技能,聪明,淫邪。于人体为肾,膀胱,泌尿,到年上主这人到处跑。

丑土:寒土,泥巴,湿土,沼泽,堤坝,阴中之阴不见阳光,是地下室,下水道,黑社会。为抽象,为军营,厂矿,煤矿。怎么用?看它干什么。根据天干之象配合使用。看十神透干为啥或带了什么象,比如丑土为财库,就可能为银行,是羊刃库就是军营了。丑土还主牢狱,黑社会,干的勾当为弄财。辛酉日主见丑为黑社会,但辛丑日柱则不是,因为辛丑辛为清丑为浊,辛金为丑土中出来的,为浊中出清,有高贵之象。

寅木:为树木,木林,死木为家具,活木为家具。引申为会所,楼宇,组织,因六壬中寅为功曹,故寅也引申为政府机关,文化场所,但是必须是以寅木为印才是政府机关的,如果寅木为财就是木材了。于人体为头,为手,为肢体,肝胆,毛发,经脉通于毛发,故也主神经。

卯木:花木类,弯曲的,绳索木工,兵器(带羊刃时),植物,木材建材,车船街道(因为卯木为太冲),到门户上又是印星则为车。为门窗,床,篱笆,机构,网络,肝胆,四肢,手指,腰,毛发。

辰土:湿土,泥巴,水土,水库,堤岸,池塘,水中田园,土产,牢狱(因辰为天罗地网),建筑,车辆机器,大机构,旧屋,辰为食神为中药,思想,网络,膀胱,肌肤,肩,胸。丙辰日主,本来为食神又是辰土,为思想。

巳火:阴火,温暖,文化,文章,务虚。与丙火不一样,巳火是阴阳的聚合物既阴又阳,变化莫测,如果柱中有巳火,这个人的性格可能有变色龙的倾向。还为色彩影像,网络,道路,闹市。于人体为眼目,三焦,咽,面,神经,心脏,小肠。

午火:直来直去,特热,大火,阳光,火光,广告,文字,语言,机动,打杀剧场。午火为热闹的地方,体现视觉冲击力的火。于人体为小肠,眼睛,舌,神经,血液,精力。

未土:为温土,田园,公园,庭院,林场。为休闲,陶冶,酒店,饰物。未也为房地产,酒店(木土之象为地产,建筑物)营造,化工,为食神时主医药。于人体为脾胃,脘腹,口腔,肌肤。

申金:与庚相似,刀,剑,戈,兵,司法,军队,公检法。矿物,车辆,金融数学等。配十神含义。于人体为肺,大肠,脊,牙齿,气管。申金与火相配主武职。带上羊刃七杀羊刃伤官,也主武职。带伤官为检察院、纪委,带羊刃为公安、军队。

酉金:金石,加工好的,器皿,道路,酒店。传媒,信息,技术,玄学,技巧阴中之阴。于人体为肺,肋,小肠,牙齿。

戌土:燥土,窑冶,炉,枪,火药,牢狱,刑罚,甘霖,古墓,庙宇,市场,色情场所,化工。属于火库,枪弹库,还有戊土之象。如为伤官库、官库易为庙宇,为食神库为学校,也有编辑部的象,因为戌是火库,文明之象。影院,市场,互联网,热闹的地方。戌主数学,戌亥为干宫,主数学。

亥水:科技,运算,网络。亥水容易当会计,总和数字打交道。小孩考试考得好不好,要从命理上先分学科。戌亥为数学,丙丁火为语文,丙丁火到时上年上为外语,火为朱雀为说话文章之意,戌未为化学,酉金为物理申金有时也是木火属文,金水属理,月令年为历史,代表祖国祖先,月令有用,喜欢传统文化。月令弄到时上者,能够古为今用也。

三、地支的象意

子水:五行属阳水,位居北方。主池塘、沟河,与水有关场所;在人主妇女、盗贼;动植物主燕子、蝙蝠、蜗牛、地瓜、水萝卜、浮萍;在事上遇吉神为聪明吉祥,遇凶神主淫佚。

丑土:五行属阴土,位居东北方。场所主桑园、桥梁、宫殿、礼堂、坟墓。在人主贵人、尊长、神佛;动物为牛、驴、骡子;静物主锁匙、首饰、珍宝、斛斗、鞋类。在事上遇吉神吉格主喜庆、迁官晋职;遇凶神凶格,主刑狱、词讼口舌是非、离乡背井或疾病。

寅木:五行属阳木,位居东北方。场所主山林、桥梁;在人主丈夫、女婿、贵人、清官、公门人;在物主文书、单据、发票、香炉、织机、财物、棺材;动物主老虎、豹子、猫。在事上遇吉神主文书、财帛、信息,遇凶神为失财、疾病、官非。

卯木:五行属阴木,位居东方。场所主大街、道路;人上主兄弟、姑娘、妇女盗贼、手工业者;物品主船只、车辆、门窗;动物主兔子、蛐蛐。在事上见吉神主车辆船只平安无事,遇凶神则官司口舌,或车船遇险。

辰土:五行属阳土,位居东南方。场所主土堰、坟墓、麦地、寺观;在人主僧人道人、妇女;物品主瓷器、缸瓮、灰盆、香纸、皮毛;在事上见吉神主医生药物,见凶神主屠夫、争讼。

巳火:五行属阴火,位居东南方。在人为妇人、少妇、少女、乞丐;动物为长虫、蚯蚓、蝉、萤火虫;物品主书画、文字、花果、砖瓦、瓷器;在事上见吉神主文书、票证,见凶神主疫病、梦魇。

午火:五行属阳火,位居南方。场所主大厅、会议室、电影院、娱乐场所;在人为僧人、骑马人、女秘书、宫女、使者;物品主电视机、音响、电器、书画衣服、旌旗;在事上见吉神为信息、文章,见凶神为惊疑、口舌是非。

未土:五行属阴土,位居西南。场所主大院、墙堰、坟墓、田野;在人为老妇人、老男人、放羊人、寡妇、巫师;在动物为羊、鹰、白头翁;在物为衣服、药品、食物、酒器;在事上见吉神为酒食、宴会、喜美之事,见凶神凶格为疾病,孝服、官灾。

申金:五行属阳金,位居西南方。场所主神堂、佛堂,麦地;在人为行人、军徒、凶恶之人;物品为自行车三轮车、摩托车、火车、汽车、刀剑、金银、铁器类;在动物为猿猴、狮子;在事上遇吉神主有佳音、喜美之事,遇凶神主道路损失、疾病、破财。

酉金:五行属阴金,位居西方。在人为妇女、少女、阴贵人、卖酒人;物品主金银、首饰、珍宝、刀剑、皮毛、爪骨、瓜果、口罩、石柱;动物为鸡、鸽,在事上见吉神主清谈和会,见凶神主疾患、离别。

戌土:五行属阳土,位居西北方。场所为山岭、冈坡、寺观、坟墓、厕所、牢狱;在人为长者、善人、僧道之人;动物为狗、驴;植物为大豆、高梁、荞菜物品为砖瓦、瓷器、药物、尸骨、锁匙、鞋履;在事上见吉神主办事顺利,见凶神为虚诈不实及争斗走失、牢狱之灾。

亥水:五行属阴水,位居西北方。场所主江河、湖海、仓库、寺院、楼台、厕所;在人主小儿,乞丐、掌鞋人、赶猪人、醉酒人、罪人、盗贼;动物为鱼、虾、蟹类;物品为毛发、麻布、绸绢、笔墨;在事态上见吉神主婚姻、求索,见凶神主争斗、难产。

地支分阴阳,木火为阳,寅卯辰巳午未为阳,辰为阳中阴。金水为阴,申酉戌亥子丑为阴,戌为阴中阳。丑酉为阴中之阴,太多数丑酉与犯罪、黑社会有关主牢狱、黑社会、坟墓、玄学、邪。亥子不是阴中阴,亥是阴之位,但中含阳子为阴,但位在阳。辛酉日主见丑时为黑社会,因阴见了阴又入墓。辛丑日主不是黑社会,因为浊中见清,人性是好的。戌为阳乱,如歌厅,丑为阴乱。

看学习的文理,哪门考的好坏都可以看。戌亥为计算、运算的意思,表数学,入干门。丑主玄学。木火主文,金水主理。辰见了子为化学。申酉为法律,申还代表金融,酉不代表金融。辰有运动的意思,表机器、车辆。

四、地支类象

子象:水、冰、河流、泉水、井、流动、流转、车船、贸易、江湖、文墨、玄学、圆润、聪明、技能、邪;于人体为肾、耳、膀胱、泌尿、血液、精、腰、喉咙、耳朵;动物为:蝠、鼠、燕。

丑象:寒土、湿土、泥、沼泽、堤坝、地下室、下水道、厕所、黑暗、隐蔽、矿井、煤炭、坟墓、牢狱、黑社会、私情、乱、玄学、抽象、银行、军营、厂矿、田园;于人体为腹、脾胃、肾、子宫、肌肉、肿块;动物为:蟹、牛、龟

寅象:树木、花木、木材、家俱、神龛、堂庙、会所、楼宇、组织、政府机关文化场所、高雅、寺庙、山林;于人体为头、手、肢体、肝胆、毛发、指甲、掌、经络、脉、筋、神经;动物为:虎、豹、猫。

卯象:树木、草木、花木、灌木、绳索、木棒、兵器、织物、木材、建材、建筑、车船、街道、门窗、床、篱笆、网络、机构;于人体为肝胆、四肢、手臂手指、腰、筋、毛发;动物为:貉、兔、狐。

辰象:湿土、泥、水库、池塘、堤岸、水井、田园、土产、牢狱、建筑、车辆机器、大机构、旧物、中药、思想、网络;于人体为膀胱、内分泌、肌肤、肩胸、腹、胃、肋;动物为:蛟、鱼、龙。

巳象:阴火、温暖、文化、文章、思想、幻想、务虚、变化、色彩、影像、道路、寺观、楼台、闹市、网络;于人体为心脏、三焦、咽喉、面、齿、眼目、神经、小肠、肛门;动物为:蛇、蚓、蟑。

午象:阳火、大热、火器、血光、光彩、电子、信息、广告、文学、语言、文章、热情、激动、冶炼、战场、厅堂、大厦、剧场、体育场;于人体为心、小肠、眼、舌、血液、神经、精力;动物为:獐、马、鹿。

未象:温土、田园、公园、庭院、墙堰、林场、休闲、陶冶、情趣、饰物、酒店、酒食、土产、建筑物、营造、医药、化工、热毒;于人体为脾胃、腕、腹口腔、肌肤、脊梁;动物为犴、羊、鹰。

申象:铁器、硬物、刀、铲、车、兵戈、军队、司法、矿物、矿厂、机器、车辆、医院、西医、道路、城池、名都、祠堂、金融、数位;于人体为肺、大肠骨、脊椎、气管、食道、牙齿、骨钙、经络;动物为:猴、猿、猱。

酉象:金石、剑戟、铲锄、器皿、街道、碑碣、寺院、酒店、银行、钟表、信息、传媒、法律、技术、隐学、玄学、机巧、邪、妓;于人体为肺、肋、小肠耳朵、牙齿、骨骼、臂膀、精血;动物为:雉、鸡、鸟。

戌象:燥土、窑冶、炉、枪弹、军火、牢狱、刑法、坟墓、岗岭、古物、庙宇加油站、电站、学校、编辑部、影院、闹市、市场、歌舞、色情、互联网、建筑、高楼、建材、化工、数学;于人体为心、心包、命门、背、胃、鼻、肌肉腿、踝足;动物为:狼、狗、豺。

亥象:池塘、灌溉、沟道、笔墨、酒、水产、毒药、沈溺、心志、科技、运算数字、思想、网络;于人体为头、肾、膀胱、尿道、血脉、经血;动物为:猪、熊。

阅读全文 »

imaging

发表于 2007-09-05 | 分类于 imaging

1. 盲派论十天干

盲派的断法:放弃用神,只要认清每个字的状态,也就是他在现实生活中所对应的人、事、物。

1、甲:树木。对季节敏感,但重要的是看有根还是无根。甲木有根就不能破坏,如被酉金合坏、冲克等,坏了有问题。如果无根就无事,岁运反而怕见根。甲子称无根,无根之木。春木生发之时,怕金喜火;夏木有根喜水,无根无所谓;秋木有根不好,无根吉;冬木要有根,须要调候,冬木无根凶。 2、乙:草、苗。春夏都喜水。春:同甲木有相似之处,但春乙木也喜水,水见不喜火;夏:有根要见水,没有根宜去水;秋:金旺,乙木如庄稼收割后要晒太阳,因此秋天乙木见火为贵,秋木有根如乙亥,那只能用水,无根见火贵,有根为一般命,如乙亥日;冬:要调候,一般要有根。 3、丙:太阳之光。代表文采、光亮、媒体、阳光、大的。希望照亮别人,很霸道,既然我存在就要发亮、发光,急噪想说服别人。丙火怕过旺而自焚,也怕过弱而难以体现自我,有根但弱最麻烦。丙火有用的人,气势磅礴,一心想干大事业。 4、丁:柔软的火。星星、灯光.具有神秘的含义,用言行让你慢慢感觉到他的深远思想,以此来感化你。丁火不怕旺,也不怕弱,喜旺。丁火有用的人,感化人的意思 5、戊:大地、旷野。 同丙火有相似之处,怕旺,旺了没什么贵气。戊土在春、秋比较好,春薄土生机勃勃,喜丙丁火;夏天太旺了,但有所去的忌神就好,如水为忌神去忌神。
6、己:田园之土。不怕旺,喜旺。
7、庚:粗糙,顽金。不怕弱,再弱也不能从,怕太旺、太重、太浊(土多生金),浊金没有一点贵气。
8、辛:细腻,不怕弱,怕多,喜欢癸水、子水。夏喜水,冬喜火。
9、壬:旺水,大河之水,喜寅木,不喜卯木。因为寅中有财,不管旺衰都喜见寅木,卯木是破子的,因此不喜。
10、癸:小水,雨露。弱反而好,本身弱的,庚申金扶不起他,还是不扶好。

2. 干支类象

一、十干类象
甲象:雷、大树、首领、树林、木头、栋梁、电杆、高楼、神位、公门;于人体为头、头面、头发、眉、臂、肢体、肝胆、经脉、神经;于人性为宽仁、磊落、卓立、高贵;其形为“直”。
乙象:风、禾苗、乔木、花木、软木条、藤条、蔬菜、庄稼、绿地、花园、公园、山林、栏杆、毛笔、织物、丝线、手作;于人体为颈、脊柱、手腕、脚腕、胆、头发、经脉;于人性为朴实、善良、柔情、儒雅、仁慈;其形为“曲”。
丙象:太阳、光芒、帝王、权力、温暖、色彩、变幻、影视、传媒、信息、名气、花朵、靓丽、装饰、城门、宫室、剧场、文章、书画、表面、表演、演说、电、电器;于人体为眼睛、神经、大脑、血压、小肠、肩;于人性为体恤、正面、多言、**、心思;其形为“大”。
丁象:星星、星光、灵光、灯火、文明、文化、文字、思想、医道、玄学、神学、香火、小花、内心、电、电子、网络、文章、书籍、报刊、荣誉、名望;于人体为眼睛、心脏、血管、神经;于人性为文雅、多思、神秘、智慧;其形为“小”。
戊象:霞、大地、山丘、高坡、护岸、城池、政府、建筑、房地产、仓库、停车场、寺院、古董、旧物、涂料、砖瓦、收藏品、完成品、凸起物;于人体为鼻、胃、皮肤、肌肉;于人性为忠厚、慢性子、老成、生硬;其形为“方”。
己象:云、田园、庭院、房屋、墓地、平原、土产、农业、牧业、水泥、建材、果实、财帛、粉尘、脏、斑点、自我;于人体为脾、腹、皮肤、胰腺;于人性为含蓄、谨慎、多疑;其形为“平”。
庚象:霜、顽铁、铁器、利器、五金、钢材、矿物、矿山、机器、制造业、金融、军队、警察、车、大路、手术、医院;其人体为大肠、大骨骼、骨钙、肺、牙齿、嗓音、脐;于人性刚强、威武、暴躁、固执;其形为“棱角”。
辛象:月、金子、珠宝、玉器、钻石、金饰品、晶体、乐器、针、剪刀、笔、钱币、金融、医药、精加工、法律;于人体为肺、呼吸道、喉咙、鼻腔、耳朵、筋骨、小骨骼;于人性为通达、柔润、灵动、好面子;其形为“致密”。
壬象:云海、大海、水泽、江河、湖泊、航运、运输、贸易、水产、浴业、石油、水彩;于人体为口、膀胱、血液、循环系统;于人性为智谋、好动、任性;其形为“无规则”。
癸象:雨露、泉水、霜雪、池塘、结晶、眼泪、墨、水产、浴业、后面、玄学、智业、谋略;于人体为肾脏、眼睛、骨髓、脑、、、、经血、津液;于人性为智谋、聪明、机敏、温柔;其形为“圆润”。

二、十二支类象
十二支类象与十干类象一样,是看一个人职业或从事行业的重要依据,也是盲师派命理超越其它命理的核心内容,可以为我们断明事情的细节及事物发展的详细脉络提供依据。
地支分阴阳,木火为阳,寅卯辰巳午未为阳,辰为阳中阴。金水为阴,申酉戌亥子丑为阴,戌为阴中阳。丑酉为阴中之阴,太多数丑酉与犯罪、黑社会有关,主牢狱、黑社会、坟墓、玄学、淫邪。亥子不是阴中阴,亥是阴之位,但中含阳,子为阴,但位在阳。辛酉日主见丑时为黑社会,因阴见了阴又入墓。辛丑日主不是黑社会,因为浊中见清,人性是好的。戌为阳乱,如歌厅,丑为阴乱。
看学习的文理,哪门考的好坏都可以看。戌亥为计算、运算的意思,表数学,入乾门。丑主玄学。木火主文,金水主理。辰见了子为化学。申酉为法律,申还代表金融,酉不代表金融。辰有运动的意思,表机器、车辆。

子象:水、冰、河流、泉水、井、流动、流转、车船、贸易、江湖、文墨、玄学、圆润、聪明、技能、淫邪;于人体为肾、耳、膀胱、泌尿、血液、精、腰、喉咙、耳朵;动物为:蝠、鼠、燕。  
丑象:寒土、湿土、泥、沼泽、堤坝、地下室、下水道、厕所、黑暗、隐蔽、矿井、煤炭、坟墓、牢狱、黑社会、私情、淫乱、玄学、抽象、银行、军营、厂矿、田园;于人体为腹、脾胃、肾、子宫、肌肉、肿块;动物为:蟹、牛、龟。  
寅象:树木、花木、木材、家俱、神龛、堂庙、会所、楼宇、组织、政府机关、文化场所、高雅、寺庙、山林;于人体为头、手、肢体、肝胆、毛发、指甲、掌、经络、脉、筋、神经;动物为:虎、豹、猫。  
卯象:树木、草木、花木、灌木、绳索、木棒、兵器、织物、木材、建材、建筑、车船、街道、门窗、床、篱笆、网络、机构;于人体为肝胆、四肢、手臂、手指、腰、筋、毛发;动物为:貉、兔、狐。  
辰象:湿土、泥、水库、池塘、堤岸、水井、田园、土产、牢狱、建筑、车辆、机器、大机构、旧物、中药、思想、网络;于人体为膀胱、内分泌、肌肤、肩、胸、腹、胃、肋;动物为:蛟、鱼、龙。  
巳象:阴火、温暖、文化、文章、思想、幻想、务虚、变化、色彩、影像、道路、寺观、楼台、闹市、网络;于人体为心脏、三焦、咽喉、面、齿、眼目、神经、小肠、肛门;动物为:蛇、蚓、蟑。  
午象:阳火、大热、火器、血光、光彩、电子、信息、广告、文学、语言、文章、热情、激动、冶炼、战场、厅堂、大厦、剧场、体育场;于人体为心、小肠、眼、舌、血液、神经、精力;动物为:獐、马、鹿。  
未象:温土、田园、公园、庭院、墙堰、林场、休闲、陶冶、情趣、饰物、酒店、酒食、土产、建筑物、营造、医药、化工、热毒;于人体为脾胃、腕、腹、口腔、肌肤、脊梁;动物为犴、羊、鹰。  
申象:铁器、硬物、刀、铲、车、兵戈、军队、司法、矿物、矿厂、机器、车辆、医院、西医、道路、城池、名都、祠堂、金融、数位;于人体为肺、大肠、骨、脊椎、气管、食道、牙齿、骨钙、经络;动物为:猴、猿、猱。  
酉象:金石、剑戟、铲锄、器皿、街道、碑碣、寺院、酒店、银行、钟表、信息、传媒、法律、技术、隐学、玄学、机巧、奸邪、妓;于人体为肺、肋、小肠、耳朵、牙齿、骨骼、臂膀、精血;动物为:雉、鸡、鸟。  
戌象:燥土、窑冶、炉、枪弹、军火、牢狱、刑法、坟墓、岗岭、古物、庙宇、加油站、电站、学校、编辑部、影院、闹市、市场、歌舞、色情、互联网、建筑、高楼、建材、化工、数学;于人体为心、心包、命门、背、胃、鼻、肌肉、腿、踝足;动物为:狼、狗、豺。  
亥象:池塘、灌溉、沟道、笔墨、酒、水产、毒药、沈溺、心志、科技、运算、数字、思想、网络;于人体为头、肾、膀胱、尿道、血脉、经血;动物为:猪、熊。  

闲注:十天干是五行分阴阳而产生的,而十二地支是太阳和地球的关系造成的.   干支的象来源于阴阳,干支象是最基本的象,八卦象是抽象的象.类象就是把符号体系与实物对照!   冬至是一阳敦生到夏至主阳,夏至到冬至主阴.定义阴阳有三:   1)木火为阳,金水为阴   2)本身位子定阴阳子寅辰午申戍为阳,丑卯巳未酉亥为阴   3)以地支遁藏定阴阳丑酉为纯阴之物,丑为黑社会,牢狱,黑暗,玄学;辰土有牢狱之象,为伤食时有中药之象,也有车辆机器之象.  

坤:己戊甲癸 坤:己戊甲癸
  卯辰辰酉 酉辰辰酉 应为69年的,39年多大了,还能当导游啊?
此人为导游,辰为走动、车的意思,辰酉合表到处走动,故为导游。(酉在门户,远方,和了车)
乾:癸丙甲戊
卯辰辰辰 此人为汽车公司老总,辰为汽车。
月令上为国家,表示国语好,门户上为外语好(以后在学历部分要讲到)。
闲注:癸卯带象,卯辰穿,辰为印库,另卯也带了癸印之象,癸也是辰中之物,制印得权,所以是个官.辰也为车.

3. 六十干支类象

六十干支组合自身有象,通过关联,即生、克、穿、墓、合等,又会有新的象出现。
自身象:
丁丑:盲派。
乙未:木土组合,表建筑物。
甲申:脊椎、颈椎。
辛未:大蒜、辣椒等。
己卯:幼苗、豆芽、种子等。
戊戌:水泥墩子,表建筑物。
口诀:甲遇丁火头发稀。(寅木遇午火头发稀吗?)
坤:癸癸甲丁
丑亥寅卯 癸冲丁毁容了。甲遇丁为灭。闲注:甲为头,丁为脸,93年正月十六日晚被毁容,丁丑年整容,屁股上的肉贴在脸上.原局寅亥合灭了寅中丙火,只有一点丁透时,主面,两癸冲克,谓干头反复,主凶.为何没死?乃因甲寅之体未受伤!行丑运,癸到,另寅丑暗合,伤了丁火.酉为官杀为贼,拱丑.
甲木分死活,为死木时,可断高楼.甲也为经脉.
乾:甲庚辛甲
午午亥午 制不好,发财了。做家具(死木)。老婆开纺织厂,等于无所事事。
阳木遇火为家具,阴木遇火为纺织。闲注:自己有时倒倒仿古家俱,老婆开的纺织厂.亥被午坏了,自己没有别的事可做.
坤:癸丁癸癸
卯巳丑亥
卖衣服的。闲注:乙木为纺织线,卯木为阴木遇火为纺织品,此造做服装生意的.
乾造:戊甲甲丙
申子寅寅 丙火,**,性情中人,豪放。为演说。
女命眼睛大(女主漂亮),男命眼睛不大(男才华)。闲注:贵在以印子水化申杀,为官.长的丑,小眼睛,但很有才华!豪爽,口才好!
郝金阳先生:庚癸己丙
午未卯寅 癸加丙,等于瞳孔。郝金阳先生,癸水耗干了。
闲注:丙配癸才算是眼睛.丙为眼框,癸为黑,为眼珠,癸水烤干了,眼盲.
另:戊为建筑,己为身体(女性则曲线弯,性感;表现力强,舞蹈演员,模特);庚金系弱不喜旺;辛金为阴金,细小金属,辛金配癸水组合:金水伤官漂亮!辛金取财为五金行业,火克金为冶炼行业!

4. 十二地支象意

子:子为墨池。凡命逢子年生者,时喜见癸亥,谓之水归大海,又谓之双鱼游墨池,必为文章士也。

丑:丑为柳岸。丑人时见己未,乃月照柳梢,极为上格。

寅:寅为广谷。寅生人而时戊辰者,谓之虎啸而谷风生,威震万里。

卯:卯为琼林。卯年遇己未时者,是为兔入月宫之象,主大贵。

辰:辰为草泽。辰逢壬戌、癸亥,即龙归大海格。

巳:巳为大驿。巳生喜得辰时,蛇化青龙,于格为千里龙驹。

午:午为烽堠。午生人,时利见辰,真龙出则凡马空矣,谓之马化龙驹。

未:未为花园。未年入双飞格最妙。如辛未见戊戌,两干不杂也。

申:申为名都。申宫壬水生,又与艮山对,是水绕山环也。凡命爱申年亥时,乃地天交泰。

酉:酉为寺钟。酉见寅吉,谓之钟鸣谷应。

戌:戌为燎原。戌生逢卯,号曰:春入烧痕。

亥:亥为悬河。亥年建,生日时见寅辰二字,是水拱雷门。

5. 地支地理类象

子:湖海池塘  丑:园圃田坟  寅:山林桥梁   卯:林木舟车

辰:莹墓山岭  巳:炉冶窑灶  午:市道旌旗   未:村寨井泉

申:驿铺石经  酉:岗城街巷  戌:田垄营丘   亥:江河港涧

6. 地支人物类象:

子:丫鬟、妇女丑:牧筑耕夫  寅:隐樵书史  卯:船户车夫

辰:鱼翁,禁子巳:炉灶窑工午:马夫蚕妇申:铺兵驿站

酉:卑妾、娼妓戌:军丁、奴仆亥:道士、医伶 

7. 地支脏腑类象

子:膀胱    寅:胆    卯:肝         巳:三焦、小肠

午:心     酉:肺    亥:阴、肾  辰戌:脾    丑未:胃

8. 地支器物类象

子:胭脂、簪环。丑:帽子、腰带。寅:桌子椅子。

卯:家具、木器  辰:量器、米尺、筛网。巳:炉、扇、弓弩。

午:书画、旌旗。未:餐具、布匹。申:碾磨。

酉:金银珠宝。  戌:盔甲、印章。亥:图画、雨具

9. 地支屋宇类象

子:后宫、后殿、内房、内室。丑:圣殿、神祠、官署、宦地

寅:客馆、山房、草房、茅舍。卯:行室、雷庙、船行、木厂

辰:龙庙、星宫、天牢、帅府。巳:方店、炉店、炕房、厨房

午:大堂、马厩、命馆、书斋。未:酒店、茶房、典当、仓库

申:碾坊、磨房、递铺、旅店。酉:金银珠宝、铜锡铁铺

戌:佛堂、禅房、营房、牢房。亥:道观、仙宫、戏院、楼阁 

10. 地支室内类象

寅为箱柜卯为床,辰为盆瓮衣包箱。

巳为炉灶并火炉,午为衣架笼皮相。

未为中堂外为院,申为神祠供佛堂。

酉为凳子或刀剑,虚瓮仍兼吃物粮。

亥为登台并帐布,盏瓶笼匣为子箱。

丑柜斛斗在其下,家中器物尽其祥。

11. 地支占坟外景类象

寅为花树卯桥船,巳坟高冈辰暗泉。

午岭横山未堤岸,申河石道有麻山。

戌骨臭穗破窑灶,亥地南还有水穿。

子坟地头如仰瓦,丑为平地坤下轩。

此是孙膑地行法,取法临用着意观。

12. 地支占坟内景类象

寅卯根绕似龙须,申酉铁器走耕梨。

巳午热气熏蒸苦,亥子蛇鼠孔迁居。

辰戌丑未土塞墓,此是孙膑妙法遗。

13. 十二地支场所类象

子:江,河,溪,池塘,水沟,水井,水坑,低洼潮湿之地,污秽之地,泥泞之地,阴湿之地,厕所,洗澡间,洗手间,洗碗池,水池,水缸,下水道,排污水之处.
丑:阴湿之地,向暗之所,泥地,坟墓,桑园,桥梁,宫殿,礼堂,土包,平坡.
寅:山水,桥梁,花木丛生之所,花园,公园,草坪.
卯:桥梁,小船,道路,大街,花草茂盛之地.
辰:山包,高冈,土岭,土堰,坟地,麦地,寺观.
巳:热闹向阳之地,转弯之地,有涧泉之地,公共娱乐场所,砖厂,炼煤之所,冶炼厂,化工厂,烧烤店,电器行.
午:岭,山,大厅,会议室,电影院,娱乐场,游戏厅,地下赌场,的士高,舞场.
未:院,墙堰,田地,砖厂,化工厂,油库,厨房.
申:河之源头,水之发源,石道,麦地,铁架,钢厂,车厂,神堂,佛堂.
酉:麻山,停车场,机场,平坦之地,跑道,光滑之地.
戌:岭,坡,破窑,厨灶,尸骨恶臭之地,坟荧,夺观,变压器,变电所,油库,,军队弹药库.
亥:江河,湖海,楼台,寺庙,厕所,下水道,水沟,水坑.

14. 十二地支器物类象

子:吃物,水罗卜,白薯,浮萍,笼子,瓶子,匣.
丑:柜子,斛斗,钢铁器物,粟米,锁,钥匙,首饰,珠宝,鞋子.
寅:衣物,药材,布帛,花木,文书,单据,发票,织机,财物,棺材,火炉,香炉.
卯:床,门窗,船,车辆,梳子,吃物.
辰:小房,盆,坛子,缸,硬物,瓷器,药物,香纸,皮毛.
巳:钱财,炉子,砖瓦,瓷器,文字,书,画,票证,文件,花果.
午:吃物,信息,电话,传呼,电子邮件,文章,电视机,音响,电器,衣服,书画,旌旗.
未:甘味食物,院,庭,筐,酒器,宴会,药品,衣服,孝服.
申:刀,剑,手术刀,金,银,铁器,汽车,飞机,自行车,神像,佛堂,钞票.
酉:镜子,玻璃,剑,珍宝,首饰,石柱,骨头,口罩,洗衣机,油桶,煤气瓶,阀门,瓜果,皮毛.
戌:坛子,瓮,坚硬之物,干燥之物,变压器,微波炉,烘干机,烤箱,药箱,药物,砖瓦,瓷器,锁,钥匙,尸骨,鞋
亥:帐子,布匹,麻布,绸绢,笔墨,灯台,毛发.

15. 十二地支人物类象

子:少男,公门人,公务员,军警,盗贼,穿紫,黑衣之人.
丑:老妇,丑妇,骑驴骡之人,贵人,尊长,神佛,死尸.
寅:老男,在政府部门工作的人,穿紫,黑衣之人,丈夫,女婿,贵人,廉洁的领导.
卯:手工业者,兄弟,妇女,姑娘,盗贼.
辰:男人,医生,药品经营者,僧人,道士,尼姑,骑驴人,貌丑之妇人,腰脚痛之人.
巳:少女,少妇,乞丐.
午:少女,少妇,女秘书,骑马人,路上遇血光之人,僧人.
未:老妇,吃酒食之人,放羊人,巫师,寡妇,尼姑.
申:男人,军人,公安,带枪的人,行人,恶人.
酉:女人,少女,女贵人,卖酒人,方面之人.
戌:男人,农民,清洁工,年长人,好人,信佛道之人.
亥:少女,小孩,赶猪人,乞丐,穿鞋人,喝醉的人,犯人,盗贼.

16. 十二地支人体类象

子:膀胱,尿道,生殖器,阴部,精液,月经,耳朵,血液,汗液.
丑:脾脏,肚腹,子宫,阴茎,精囊,嘴唇,左脚,皮肤,腰,足胫.
寅:胆,毛发,手掌,爪甲,髭须,臂,左腿.
卯:肝,神经,体毛,十指,左肋腋,筋,目,大肠,肘.
辰:腹,腰,胃,肠,大肠,小肠,直肠,肛门,皮肤,左胸,左肩,项,背,膝,命门,声壁,眉.
巳:心,面部,口腔,咽喉,齿,唇,手,左肩,生殖器,肛门,三焦,小肠,脾.
午:额头,眼睛,舌,肚,脐,小肠,神气,肘.
未:脊椎,右肩,胃脘,腹腔,小肠,头,手,口舌,肘.
申:大肠,右胸,右臂,骨,肺,头,膀胱
酉:辅颊,觀,缺唇,肺,右肋,手臂,背,骨,精血.
戌:命门,右腿,膝,腕,头,面,心,腹腔.
亥:肾,膀胱,阴囊,阴道,分泌物,涌泉穴,肛门,头,颈,右脚.
阅读全文 »

VisualAssist设置

发表于 2007-05-25 | 分类于 VisualAssist

1. 设置VisualAssist颜色Teal, Gray, C000C0, C00000

2. 修改VisualAssist宏 #ifdef guard in a header的快捷键为#head

内容如下:

#ifndef __$FILE_BASE_UPPER$_H_INCLUDE__
#define __$FILE_BASE_UPPER$_H_INCLUDE__

$selected$

#endif // __$FILE_BASE_UPPER$_H_INCLUDE__

3. Highlight references Blue 400000

阅读全文 »

server-model

发表于 2006-10-25 | 分类于 server-model

1. 高性能服务器的几种模型概念

1.1. Actor模型

实体之通过消息通讯,各自处理自己的数据,能够实现这并行
说白了,有点像rpc
skynet, Erlang 是Actor模型

1.2. Reactor模型(反应器模式-同步I/O-IO操作之前-IO查询-状态-读写数据)

1. 向事件分发器注册事件回调
2. 事件发生
3. 事件分发器调用之前注册的函数
4. 在回调函数中读取数据,对数据进行后续处理

libevent,Redis、ACE是Reactor模型
Reactor将handle放到select(),等待可写就绪,然后调用write()写入数据,写完处理后续逻辑
Reactor实现了一个被动的事件分离和分发模型,服务等待请求事件的到来,再通过不受间断的同步处理事件,从而做出反应
Reactor实现相对简单,对于耗时短的处理场景处理高效
操作系统可以在多个事件源上等待,并且避免了多线程编程相关的性能开销和编程复杂性
事件的串行化-对应用是透明的,可以顺序的同步执行而不需要加锁
事务分离-将与应用无关的多路分解和分配机制和与应用相关的回调函数分离开来

Reactor处理耗时长的操作会造成事件分发的阻塞,影响到后续事件的处理
Reactor同时接收多个服务请求,并且依次同步的处理它们的事件驱动程序

1.3. Proactor模型(异步I/O-IO操作之后-IO回调-完成事件-缓冲区读写)

1. 向事件分发器注册事件回调
2. 事件发生
3. 操作系统读取数据,并放入应用缓冲区,然后通知事件分发器
4. 事件分发器调用之前注册的函数
5. 在回调函数中对数据进行后续处理

ASIO, IOCP是Proactor模型.

Proactor调用aoi_write后立刻返回,由内核负责写操作,写完后调用相应的回调函数处理后续逻辑
Proactor实现了一个主动的事件分离和分发模型,这种设计允许多个任务并发的执行,从而提高吞吐量,并可执行耗时长的任务(各个任务间互不影响)
Proactor性能更高,能够处理耗时长的并发场景
Proactor实现逻辑复杂,依赖操作系统对异步的支持,目前实现了纯异步操作的操作系统少,实现优秀的如windows IOCP,但由于其windows系统用于服务器的局限性,目前应用范围较小,而Unix/Linux系统对纯异步的支持有限,应用事件驱动的主流还是通过select/epoll来实现
Proactor异步接收和同时处理多个服务请求的事件驱动程序

1.4. 总结

Reactor和Proactor的主要区别是,前者应用在回调函数中读取数据,然后进行后续的数据处理,而后者数据读取有操作系统完成,回调函数制作数据处理.

阅读全文 »

文明6

发表于 2006-09-06 | 分类于 文明6
  • 弥涅耳瓦夜莺 首次向尚未有本方使者的城邦派遣使者时,玩家可获得发现这个结社的机会。
阅读全文 »

ziwei

发表于 2006-09-05 | 分类于 ziwei

1. 紫微斗数

Mobile Preview

1.1. 紫微斗数十二宫主事

  命 宫:生命,本质,性情,人品,才能,发展,人生定位,人生层次。
  兄弟宫:财库,成就,费用支出,情感,兄弟情义的事情。
  夫妻宫:异性缘,游玩,娱乐,恋爱,婚姻,感情,夫妻、婚后生活事情。
  子女宫:玩乐,游戏,合伙,子女,学生,晚辈,生育,色情,桃花。
  财帛宫:财运,生意,投资,赚钱,现金,花钱,损财,破财,资金周转,债务。
  疾厄宫:身体,疾病,伤残,死亡,工作地点,工作单位,倒店事。
  迁移宫:活动,出行,外出,外务,出国,向外发展,升职,转业。
  奴仆宫:交友,人际关系,外交,受骗,恋爱对象,小人损害。
  官禄宫:工作事业,就业,择业,调动,事业发展与层次,下岗,退休。
  田宅宫:住房,买卖房子,租房,搬迁,建房,拆房,装修,家具,存钱,财产。
  福德宫:享受,享乐,饮食,娱乐,思想行为,品德,思维活动,财源。
  父母宫:遗传,命源,相貌,头脑,意识思维,文化程度,文学修养,才智,名声,前途,靠山,文书,法律,法规,官司。

十二宫分属阴阳
六阳宫:命、夫、财、迁、官、福。
六阴宫:兄、子、疾、奴、田、父。
亦有将阳干落宫称为阳宫,阴干落宫称为阴宫者。凡生年干化三吉入阳宫主贵,入阴宫主富。

十二宫分属内外
六内宫:命、财、疾、官、田、福。内宫属自己本身的内部事情、造化及努力的结果。
六外宫:兄、夫、子、迁、友、父。外宫是自己与六亲和外部作用的关系好坏。

1.2. 歌谣

贪狼星 - 春风吻上我的脸 做你自己
梅开二度自苦寒 问花顺便问前途
返身重新摘一朵 欲与前枝香不同

天机星 - 行走人间江湖畔
春尽行人未到家 春风应怪在天涯
夜来过岭忽闻雨 今日满溪俱是花

天同星 - 缘遇是人生有伴
半亩方塘一鉴开 天光云影共徘徊
问渠那得清如许 为有源头活水来

太阴星 - 天心月在杯中圆
春江潮水连海平 海上明月共潮生 
滟滟随波千万里 何处春江无月明

廉贞星 - 情牵历史的指纹
凤凰台上凤凰游 凤去台空江自流
吴宫花草埋幽径 晋代衣冠成古丘

外乞食以养色身 內乞法以资慧命

太阳星 - 守着阳光守着你 找到自己
力拔山兮气盖世 时不利兮骓不逝。
骓不逝兮可奈何 虞兮虞兮奈若何

武曲星 - 曾是惊鸿照影来
桃之夭夭 灼灼其华
之子与归 宜其室家

紫微星 - 撼动心灵的图腾
仰观而见星辰之拱卫 必有至尊者统其权(紫微)
俯察而见日月之盈虚 必有优秀者统其脉(七杀)

天府星 - 生命容颜的城府
把酒祝东风 且共从容 垂杨紫陌洛城东 总是当时携手处 游遍芳丛
聚散苦匆匆 此恨无穷 今年花胜去年红 可惜明年花更好 知与谁同

七杀星 - 龙盘虎踞何处是
世事翻腾似转轮 眼前凶吉未为真
请看久久分明应 天道何曾负善人

巨门星 - 仙风道骨本天医
龙因点眼离沧海 虎为医牙到杏林
但愿世人无苦痛 不拘架上有尘埃

天相星 - 繁华落尽见真淳
不求名利不求荣 只去随缘度今生
一个幻躯能几日 为人闲事长无明

天梁星 - 天增岁月人增寿
求福求永久福 增寿增无量寿
求福求智慧福 增寿增慈悲寿

破军星 - 春风不改海浪波
长恨此身非我有 何时忘却营营
夜阑风静縠纹平 小舟从此逝
江海寄余生

左右昌曲
未曾起步先睁眼 起步莫说人心险

无怨与自己的心灵 - 右弼(灵魂)文昌 完美你的人生 ( 精神面)
无悔于社会的无情 - 左辅文曲 帮助你成长 (物质面)

左辅 - 意识 - 现实世界 - 价值 无明 骨子里不服输 行为 形而下者为之器
素位而行 不要去在乎他人的闲语流言 做自己 不要去迎合他人 那并不是你本色
青山只会明古今 绿水何曾洗是非
长将有日思无日 莫待无时思有时
承受一切 才能真正放下
人生若没有一丝一毫的是与非 不可思议
即有一分无明未破 是名[不如实知]
一切言语终归虚妄 一切有物终归虚无

右弼 - 灵 - 精神世界 感恩  潜意识 形而上者谓之道
不知生 焉知死
方生方死 方死方生
命者 令也 从口从令

文昌 - 魂 - 思维世界 重名 求知欲 逆向思考
我思故我在
仁者乐山 智者乐水
塞翁失马

文曲 - 利益 - 物质世界 悟性 生命的哲学 财以养命 知道自己想要什么

有缘无缘天注定 缘 - 依命存在
有情无情总是命 命 - 依缘生灭

未生之前谁是我 已生之后我是谁

1.3. 一句话

庙旺一句话:
紫微:化杀为权,唯我独尊
天机:运筹帷幄,智计如妖
太阳:堂堂皇皇,普照四方
武曲:至刚至毅,执掌金山
天同:坐食天禄,有福可享
廉贞:腰缠玉带,衫披桃花
天府:附凤攀龙,金冠霞佩
太阴:月朗天门,蟾宫折桂
贪狼:桃花滚浪,天下才气十斗吾占其八
巨门:事权事贵,舌灿莲花
天相:腰悬金印,执权掌财
天梁:逢凶化吉,麻姑献寿
七杀:无坚不摧,将在外君命有所不受
破军:攻无不克,剑在手雄关无有不从

煞陷一句话:
紫微:寡助且为虚名累,坐隐山寺诵佛辉
天机:谋求思虑不安宁,夜卧枕榻闻风惊
太阳:有名无实最身累,作事沈吟多进退
武曲:刚克易折无情在,任是财多毕竟空
天同:万事临门差一脚,欲摘蟠桃少座梯
廉贞:三观不正行邪道,奸淫妒恶无妄来
天府:忍气吞声腹中泪,委曲求全难太平
太阴:杂学巧技难清高,寡恩薄义胆气夭
贪狼:奇淫巧计多心思,桃花泛水红杏枝
巨门:六亲不睦忧相随,口不择言惹是非
天相:身如浮萍无所依,是非难分恨难离
天梁:孤刑带疾少六亲,为人做嫁空劳心
七杀:凶祸犹如抱虎眠,少年恶死到黄泉
破军:破祖离宗出远乡,纵撞南墙也寻常

1.4. 六部与速度

A 4倍 禄
B 3倍 权
C 2倍 科
D +-4倍 忌

火铃 速度快 突发变故
擎羊 陀螺 机会点

左辅 右弼 象征人生的方向感 向左向右

吏部:又称天官,掌管全国文职官吏的任免、考课、升降、调动、封勋等事务;天府
户部:又称地官,掌管全国土地、户籍、赋税、货币、官员俸禄、财政收支等事务;天相
礼部:又称春官,掌管国家的典章制度、祭礼、学校、科举和外事活动等;文昌
兵部:又称夏官,掌管全国武官选用和兵籍、军械、军令、驿站等事务;天机
刑部:又称秋官,掌管国家的法律、刑狱等事务;天梁
工部:又称冬官,掌管各项工程、工匠、屯田、水利、交通等政令。天同

1.5. 紫微斗数 忌 与 化解

文昌化忌 明智 武曲化忌 胸怀 贪狼化忌 专注 太阳化忌 包容 太阴化忌 风度 廉贞化忌 谦虚 巨门化忌 慎言 天机化忌 行动 文曲化忌 诚信 天同化忌 欣赏

1.6. 紫微斗数 与 六亲

紫微命盘中宫位分为两大类别,一为六亲宫,一为人事宫。六亲宫依逆时钟顺序分别为:福德宫、父母宫、命宫、兄弟宫、夫妻宫、以及子女宫,这六个宫位也称为人伦宫。特别注意的是,每个人的六亲宫可能落在不同的地支宫位,但顺序是不变的。还有半个六亲—-交友宫(奴仆宫)。 十二宫的排序是如何得到的,为何命宫的前面两位,分别是:父母,福德,后面三位,一定是:兄弟、夫妻、子女。这里面充满着中国传统的哲学基础,没有父母,何来自己?没有祖先(福德)何来父母?和自己最亲,不是先有血缘关系的兄弟,而再是夫妻,没有夫妻,又何来子女呢?

紫微斗数论命的时候先看本宫,次看对宫,再研究三方四正的关系,这些初通紫微的人都非常容易明白。其实学习紫微斗数是一个系统的工程,必需全盘来看,如果仅仅是论星曜落在何个宫位来论述,虽然会有时断得淮,却容易迷失全局。父母宫其实是非常重要的一个宫位。是看父母在先天上和命主的关系,父母宫不佳,自然是少助力;更劣者,与父母缘分浅薄,自小生离死别,这必然会对命主的性格和求学时候经济上的支持有着至关重要的影响,倘如父母宫不淮论断已失根基。紫微盘排出,在论命的时候先看父母宫如何,如果父母已有一定经济事业基础,则命主只需维持或略有长进则可,倘若父母宫不佳则人生要靠自己双手打拼,如果是杀破狼和紫微为命宫主星自然容易接受,反之,机月同梁和太阳为命宫主星往往会开创力不够,这样父母宫在大运时候的重要性就能显现出来了,后天行运阳男阴女第二个宫位是父母宫,大约在十几至二十几岁的开始阶段,因为父母缺乏助力,自然学业如何已经大致奠定将来人生是高或是低了。在这情况下,问问命主的学历状况,再看看接下来的后运如何,其实整个命局已经八九不离十了。

兄弟宫,在紫微斗数原意是用来看兄弟姐妹的数量和之间的助力。因为避孕术的发明,以及计划生育,数量的推断方面自然是难于有淮绳,但在分析助力方面还是有相当的帮助。而且兄弟宫可分析自己结交的知己或事业中的拍档,所以在分析是否适宜和别人合伙作生意,是否会被拍档欺诈等等还是很有帮助。另外兄弟宫是阴男阳女大运的第二宫,也是相当重要。

兄弟宫和父母宫必定夹命宫,此是常识,父母和兄弟必然对命主产生绝对的影响,至于是何种影响,很多时候是需要进一步用到六合的关系来分析。

【六亲宫基本特点】

福德宫:为祖父宫,为兴趣、嗜好性向宫;主人生观,为祖先福报、庇荫的宫位。

父母宫:为与父母的缘分深浅;父母双方的缘分多寡;父母的寿元吉凶;为父亲的个性、运势的宫位。

命 宫:为命盘之第一宫;为先天运势、命运的主轴个性;命格高低的命盘关键;主内在个性的本质运势。

兄弟宫:为与兄弟姊妹的缘分,以及兄弟姊妹的状况,主论第一个兄弟的运势,如无兄弟则主第一个姊妹的运势;另主母亲的个性运势。

夫妻宫:为与情人或配偶的缘分;为你喜爱的类型,以及配偶的个性运势。

子女宫:为与子女的缘分;子女的个性、资质……等,主长子或长女的个性运势。

【转宫六亲】

命宫: 1 、祖母; 2 、配偶的福德; 3 、子女的田宅; 4 、交友的疾厄; 5 、事业的资金; 6 、田宅的走廊。
7 、大伯父。 8 、外公。 9 、二女儿。

兄弟: 1 、母亲; 2 、岳父母; 3 、夫妻房; 4 、放现金的地方; 5 、公司的内部组织。
6 、 大哥弟。 7 、大女儿。

夫妻: 1 、在外事业的好坏; 2 、家中的厕所。
3 、 第一个配偶。 4 、大舅。 5 、二哥弟。

子女: 1 、第二个太太; 2 、兄弟的配偶; 3 、朋友的事业; 4 、合伙人、同事; 5 、大门; 6 、父亲的钱财; 7 、桃花。
8 、大儿子。 9 、大舅子。 10、二舅。

财帛: 1 、兄弟的子女; 2 、婚后的我; 3 、朋友的宅; 4 、营业状况; 5 、客房; 6 、父亲的疾厄; 7 、侄子。
8 、第三个配偶。 9 、二儿子。 10、二舅子。

疾厄: 1 、兄弟的财帛; 2 、子女的配偶(媳妇); 3 、朋友的福德; 4 、上班的地方; 5 、客厅。
6 、三儿子。

迁移: 1 、兄弟的疾厄; 2 、夫妻得钱财; 3 、大儿子的大儿子; 4 、我的老运; 5 、朋友的父母; 6 、房间; 7 、偏财。
8 、二儿子的媳妇。 9 、四儿子。

交友: 1 、配偶的身材; 2 、子女的钱财; 3 、上司(直属); 4 、兄弟的迁移; 5 、神位。
6 、三儿子的媳妇。 7 、大儿子的二儿子。 8 、五儿子。 9 、二儿子的大儿子。

官禄: 1 、兄弟的交友; 2 、配偶的外缘; 3 、子女的疾厄; 4 、钱的消耗; 5 、书房。
6 、六儿子。 7 、三姑妈。 8 、大儿子的三儿子。 9 、二儿子的二儿子。 10, 三儿子的大儿子。

田宅: 1 、兄弟的事业; 2 、配偶的交友; 3 、子女的迁移; 4 、异性朋友; 5 、同行。
6 、爷爷的爸爸。 7 、二姑妈。 8 、三姐,妹。 9 、七儿子。

福德: 1 、兄弟的田宅; 2 、配偶的事业; 3 、女命婚姻的好坏; 4 、子女的交友; 5 、关系企业; 6 、 祖父。
7 、大姑妈。 8 、 二姐,妹。

父母: 1 、兄弟的福德; 2 、配偶的娘家; 3 、子女的事业; 4 、朋友的钱财; 5 、厨房。 6 、父亲。 7 、大姐,妹。 8 、三女儿。

【借盘看六亲知识点】 六亲太极点 静盘四化:两组生年四化与自化 动盘飞化:用动则归体

【六亲太极点】

每个命盘十二宫,都有如下几个六亲关系

  1. 父亲:父母宫
  2. 兄弟系列:兄弟宫为兄弟系列之首。兄弟宫为第一个兄弟,夫妻宫第二个兄弟,子女宫第三个兄弟,兄弟顺数,以此类推。如果命主排行为大哥,兄弟宫则为大弟弟。以此类推。
  3. 姐妹系列:父母宫为姐妹系列之首。父母宫为第一个姐妹,福德宫第二个姐妹,姐妹逆数,以此类推。如果命主为父母的第一个女儿,父母宫则代表第二个姐妹。
  4. 夫妻系列:夫妻宫为配偶系列之首。夫妻宫为第一个配偶,子女宫为第二个配偶,财帛宫为第三个配偶,以此类推。
  5. 儿子系列:子女宫为儿子系列之首。子女宫为大儿子,财帛宫为二儿子,疾厄宫为三儿子,儿子顺数,以此类推。
  6. 女儿系列: 兄弟宫为女儿系列之首。兄弟宫为大女儿,命宫为二女儿,父母宫为三女儿,女儿逆数,以此类推。

根据父亲借盘延伸出母亲太极点:

  1. 母亲:以父亲命宫立太极,夫妻宫为兄弟宫。父亲的夫妻代表母亲。则以兄弟宫立太极看母亲。亲生母亲永远在兄弟宫

根据以上7点,可以推出更多六亲太极点,

  1. 父亲系列:父亲系列从母亲太极点推出。假如父亲为母亲第一任丈夫,则第二任丈夫在母亲的夫妻宫(即命主的子女宫),第三任在母亲的子女宫(命主的财帛宫),以此类推。假如父亲是母亲的第二任,则母亲的夫妻宫为第一任,母亲的子女宫为第三任,亲生父亲永远在命主的父母宫。

  2. 母亲系列:母亲系列从父亲太极点推出。假如母亲为父亲的第一任,则父亲的第二任在父亲的子女宫,第三任在父亲的财帛宫,以此类推。如果母亲为第二任,则母亲永远在兄弟宫,即父亲的夫妻宫。夫妻宫系列第一个宫格被占了,从下一个宫格数起,第一任是父亲的子女宫,即命主的夫妻宫,第三任是命主的子女宫。。。

  3. 祖父:父亲的父母宫,即命主的福德宫。

  4. 祖母:祖父的夫妻宫,即命主的命宫

  5. 舅子系列:从母亲太极点出发,看母亲的兄弟系列

  6. 姨妈系列:从母亲的太极点出发,看母亲的姐妹系列

  7. 叔伯系列:从父亲太极点出发,看父亲的兄弟系列

  8. 姑妈系列:从父亲太极点出发,看父亲的姐妹系列

规律:

  1. 第一性宫位: 我:命宫 父亲:父母宫 母亲:兄弟宫

  2. 系列宫位找太极点: 系列六亲:兄弟系列,姐妹系列,儿子系列,女儿系列,配偶系列。 兄弟系列,兄弟宫为首,逆行 姐妹系列,父母宫为首,顺行 儿子系列,子女宫为首,逆行 女儿系列:兄弟宫为首,顺行 配偶系列:夫妻宫为首,逆行

  3. 计算系列六亲各宫位的步骤:

第一步:找到该系列宫位以何为首, 第二步:将已经确定在第一性宫位(我,父,母)和确定了在太极点宫位的六亲从系列内剔除。我是第一性宫位,已经确定在命宫,将我从兄弟系列内剔除 第三步:重新排列顺序。如我是二哥,我已经被剔除了,此时排在第二位的则是三弟。 第四步:确定方向–顺行或逆行 第五步:从系列宫位的首格开始,按重新定义的顺序,按已经确定的方向,排列系列内各六亲。

注意:为什么要剔除?–任何六亲只能占一个宫位。在排顺序之前,先确认是否有六亲在第一性宫位,或者在太极点,将其从该系列中剔除,其他人依次排顺序。

例: 如父亲为母亲的第二任,欲找母亲的第一任和第三任,以母亲立太极(兄弟宫,母亲永远以兄弟宫立太极),

第一步,找到系列之首:母亲的配偶系列从母亲的夫妻宫(命主的子女宫)开始排列。 第二步,父亲永远在命主的父母宫,不能再占母亲配偶系列的宫位,将父亲从该系列排位内除去。 第三步:重新排序:母亲的第一任还是排系列内第一,第三任排在了系列内第二。。。 第四步:确定方向-配偶系列,顺行 第五部:排列:母亲的第一任在母亲的夫妻宫(命主的子女宫),第三任在母亲的子女宫(命主的财帛宫)

孙子系列是按儿子太极点推算。媳妇系列按儿子太极点推算。爷爷系列的按福德的太极点推算。奶奶系列的按照命宫太极点推算。外公系列的按照命宫的太极点推算。外婆系列的按照夫妻宫的太极点推算【母亲宫位的延伸】其他的人事都可以按照这种方法去延伸。

【静盘四化】 将命主的命宫四化和生年四化都写成借盘的六亲的生年四化。

【动盘飞化】 用动则归体

体:命主之盘。体为我,为自身。 用:十二宫以借盘之六亲为太极点重新排列的盘。用为变,为外物。

用动则归体: 借盘观六亲,飞化的禄,出发宫位为用,终点宫位为体。禄气动了,从用盘出发,归于体盘。

【注,有的六亲是占同一个宫位,比如母亲和兄弟同宫,父亲和大姐同宫。外公和奶奶,命主同宫,具体的区分可以带入某六亲的属相,也就是太岁入卦的方式。【请参考太岁入卦篇】假如太岁入卦的方式也解决不了,再用本派【东派】的紫占技法细致占事区分。

1.7. 紫微斗数 与 健康

紫微斗数星曜代表身体器官与疾病的关系

紫微星:脾臟、胰臟【阴土】、大脑中枢【紫微星為眾星之枢纽、人命之主宰】【糖尿病、败血病、食慾不振、免疫力欠佳】。

天机星:肝臟、胆囊、神经系统【阴木】【肝胆病、神经衰弱、抽筋、后脑痛、神经性疼痛、记忆力减退、肝胆系统之免疫力】。

太阳星:心臟、眼睛、心血管系统、视觉系统【阳火】【為日之精、有了太阳万物才有了生命与动力】【心臟病、血压、中风、心率不整、前额痛、偏头痛、心血管系统之免疫力】。

武曲星:肺臟、呼吸系统、气管、鼻子【阴金】【过敏体质~过敏性鼻炎等、呼吸系统之毛病】。

天同星:膀胱、输尿管【阳水】【泌尿系统、耳朵、听力、逢昌曲易有甲状腺、淋巴腺之毛病】。

廉贞星:乳房、子宫、卵巢、睪丸、输卵管、输精管、子宫颈、摄护腺【阴火】【為丹元之星,丹元意指传宗接代的基因】【生殖系统之毛病、妇女病】。

天府星:胃臟、小肠、十二指肠【阳土】【消化系统之毛病】。

太阴星:肾臟、脚、眼睛、视力【阴水】【眼病、泌尿系统、水肿、脚气病、肾上腺】。

贪狼星:性器官【阳木】【主福祸、化气桃花,因而桃花病非贪狼莫管】【性器官之毛病,如子宫颈、乳房、阴茎、会阴、鼠蹊、痔疮、直肠、性病。】

巨门星:口、舌、喉咙、食道、唇、齿【阴水】【饮食系统之毛病】。

天相星:相貌、脸【阳水】【脸部為主之病变】。

天梁星:肌肉、肋骨、肩胛骨【阳土】【筋肋、横向骨、肌肉之病变】。

七杀星:脊椎骨、骨头、大肠、直肠;【阳金】【骨刺、椎间盘突、大肠、直肠等毛病】。

破军星:皮肤【阴水】【身体虚弱、气血失调、头晕目眩、妇女病】。

天魁星:器官品质较佳、较少生病、生病时易得贵人相救、外表看起来有病也像没病。

天鉞星:请参考天魁星。

左辅星:左辅星有好帮好、坏帮坏的特性,依同宫或叁方主星所主器官為病源,有一病再病的导向,以身体左半边之毛病為主。

右弼星:请参考左辅星;右弼之病痛以身体右半边之毛病為主。

文昌星:文昌依主星所主器宫之输送道為发病所在,其通道较文曲大,如血管、气管、食道、输尿管等、肾上腺、前列腺。

文曲星:文曲亦依主星所主器官之输送道為发病所在,其通道较细微,如微血管、甲状腺、淋巴腺、胸腺、末梢神经等。

禄存星:体质不良,易有难缠之毛病,依同宫主星所主而有不同之毛病。

擎羊星:易因同宫或叁方主星之病痛而危及性命;而今则代表易因同宫或叁方主星之病痛而开刀;易因利器所伤或肢体伤残。

陀罗星:久病不癒、慢性病,依同宫或叁方主星而有隐疾或难缠之病痛。

火星:急症;依同宫或叁方主星之引动而致病,亦因高烧而產生后遗症。

铃星:亦属急症;依主星而有不同症状,虚火或高烧而產生后遗症。亦属急症;依主星而有不同症状,虚火或高烧而產生后遗症。

天空星:气血不顺,有晕眩、冬天手脚冰冷之现象。

地劫星:气血衰败,有晕眩、手脚无力之现象。

十二地支准确代表身体器官 子:膀胱 尿道 生殖器 阴部 精液 月经 耳朵 血液 汗液 丑:脾脏 肚腹 子宫 阴茎 精囊 嘴唇 皮肤
寅:胆 毛发 手掌 指甲 胡须 臂 左腿
卯:神经 体毛 十指 筋
辰:胃 大肠 小肠 直肠 皮肤 左胸 左肩 项 背膝
巳:心肌 面部 口腔 咽喉 齿 肛门 三焦 午:额头 眼睛 舌 肚 脐 小肠 神经
未:脊柱 右肩 胃脘 腹腔 小肠 头 手 口 肘 申:大肠 骨 肺 头 酉:觀 肺 背骨 精血 戌:命门 腰腿 膝 头 面 心 腹腔
亥:肾 膀胱 阴囊 阴道 分泌物 涌泉穴 头

1.8. 紫微斗数 看 地理

紫微星要看出居住地具体环境 <>如天机为靠近路边;天梁为山坡地,靠近医院或专家门诊;破军为陈旧的房子,周围较杂乱。又如子女宫中见阴煞,表示会撞见’鬼’,女’鬼’缠身。再如天姚为厕所,原盘或大限盘的兄弟宫会天姚,表示其卧室内有卫生间,廉贞为仪器,变压器、发射塔、菜市场。等等。 <>星曜意象具体如下: <>天象 <>紫微:高气压、晴天、北极星。 <>天机:风云莫测温和的阵雨。 <>太阳:晴天、阳光、太空、幅射线。 <>武曲:秋天,冷风,霜雪。 <>天同:晴天,夏天的及时雨,人马星弟四星。 <>廉贞:睛雨不定,西北雨,春天,。 <>天府:晴天,不寒不暖之天,静夜,雨过天晴。 <>太阴:阴暗,月亮,夜,秋多,冰雪,彩虹,星光,薄雾。露水,春雨绵绵。 <>贪狼:台风,雷雨,水灾,旱灾,入夜后黎明前。 <>巨门:阴天,日蚀,黑夜,黑洞,乌云。 <>天相:晴天无云,星夜皎洁,银河。 <>天梁:秋冬, 光风霁月,晴天。 <>七杀:霜雪,凉风,冷风,秋天,七柄。 <>破军:肃杀的天气,变化莫测的天气,霰、雹。 <>文昌:清爽的气候,早晨,晨曦,朝日,晴天。 <>文曲:春雨,春风,小雨,微风。 <>左辅:上弦月。 <>右弼:月夜,下弦月。 <>天魁:晴天,温和的天气,阳光普照,日出后日落前,冬至后夏至前。 <>天钺:晴夜,星月光辉,彩虹,日落后日出前夏至后冬至前。 <>禄存:温和的天气,春天的和风,秋天。 <>擎羊:狂风,暴雨,霜雪,龙卷风,暴雷,酷暑,烈日当空。 <>陀罗:阴天,冬天酷寒,冰天雪地,月蚀,残月,黑夜,密雾不雨,低气压。 <>火星:晴天,炎热的天气,夏天,中午,旱季。 <>铃星:阴天,山雨欲耒,浓雾,暗夜。 <>地劫:黑夜,暴风雨,打雷。 <>天空:晴空无云,浓雾,白云,山风,太空,宇宙,闪电,太阳,冰雹。 <>化禄:满月,春天,人造雨,和风,常温,适当的湿度,晴天。 <>化权:上弦月,下弦月,夏天,打雷,闪电,乍寒,乍热。 <>化科:新月,秋天,早晨,黄昏,彩虹,晚霞。 <>化忌:阴霉,日蚀,月蚀,冬天,浓雾,深夜,冰雹,乌云,低气压,湿气,流星。

<>地理 <>紫微:高地,黄红色或黄紫色土壤,富贵豪门之家,名人坟墓,山坡丘陵,砖窑,楼上,街门,中心地带。主慈宜静,以吉论。加煞为冲,半吉。 <>天机:树木,花卉,电杆,木桥,木牌、木棚,破屋,露骨,棚架,草堆,柴堆,后窗,多变的地形,机械,农具,编织器具,交通要道,或谨慎辛勤之家。有荣枯之别,吉凶之分。 <>太阳:高岗,园形墩阜,丘陵、坟墓,郊野,空地,广场,采光充足的房子,主有刚强争竞之人,或富足隆盛之家。有冲为破半吉。落陷失辉,见煞主孤苦。阳光太过亦不吉。入酉戌亥子丑各宫,以院屋墙壁物品均属黑暗或潮湿断。 <>武曲:庙宇,寺塔,坟墓,孤坟,高屋,山石,山墙,土山,烟囱,突然而立之物,商业区,军营,寡妇的家,二手屋,主有性刚心直之人,或商业富足武职孤寡之家。以吉论。 <>天同:水道,沟渠,井泉,洼地,山涧,湖滩,港口,江海大小之河,外交部,公寓,贸易公司主有文武流合之人或积蓄小康之家。以半吉论。 <>廉贞:树木,篱笆,瓦砾,荆棘,院落房舍,垃圾场,破烂谷物,财神庙,小庙,贫民区,简朴的房子,主有善言舌辩谄佞妒妇之人,时常口角之家。有吉凶之分。 <>天府:高峰,山头,土岗,土堆,牌坊,行政机关,巨宅邸院,主有争权夺利之人,来财甚旺之家,有不持久之憾。以吉论,加煞为冲。半吉。 <>太阴:参差疏落的房舍,洼地,水池,水道,低平空地,湖海,江河、井泉,山涧,河洲苇塘,树木,妓院,理容院,女人的家,阴暗地带,主有奔波远行之人,忽起忽落之家。有吉凶之分。失辉孤苦半吉。暗则不吉。孤独多病。 <>贪狼:娱乐场所,餐厅,旅馆,大树,森林警察局,电柱,立木,平原,沙漠,海洋,船只,几案,公共场所,房檐、椽木、堆积柴草,破烂物品,院屋不净,或有青白色苍茫远地一片,新生地,运动场,主有性鄙贪取之人,辛勤劳动之家。有荣枯之分,吉凶之别。 <>巨门:河口,车站,火车经过之铁桥,烟筒,机场,港口,井,长巷,深渊,空地,山洞,阴沟,更衣室,古迹,破墙,豁口,道口,小道,小门,夹道,土山,土岗,主有搬弄是非之人,口角争斗之家。以凶论。 <>天相:水道,合水处,电影院,服饰店,百货公司,箱匣木器之类,合租的房产,与水道、水坑、河水、涧水、流来之水,与他水会合、交流主有调停多管经商流合之人。以半吉论。 <>天梁:土坡,山岗,沙丘,孤坟,微高的地块,独院建筑,养老院,木屋,公园,别墅,农村,巨树旁,主有文武耐劳之人,耿直孤独口舌相争克妻之家。有旺弱之分。 <>七杀:山石,山顶,庙宇,高楼,楼窗,寺塔,坟墓,墙角,花瓦,兽头屋脊,公共场所,缺破缺陷的地物,屠宰场,主有刑伤刚强之人,孤独商贾武职之家。有吉凶之分。 <>破军:河海江湖,水池,坑陷,古屋院落,市集,菜市场,杂乱的地方,铸造厂,烟火店,石屋,砖石,顺水流行,残破,草席,猪羊屠宰各生意,主有劳碌不宁破面孤独商贾文武游移飘泊之人。 <>文昌:书店,文具行,土岗,文笔山,笔架山,孔庙,文祠,学校,整齐划一的地形,重划区。 <>文曲:学校,公家机关,水池,水道,迥廊,小坡,图书馆,艺品店,戏院,补习班,书点。 <>左辅:龙砂,左厢房,高坡,土山,在外侧的住宅,靠大厦旁之高楼,商业机构。 <>右弼:虎砂,右厢房,亲戚的家,深巷内的住宅,倚楼的小屋,别墅,弯曲的河道。 <>天魁:牌楼,树林,亭台,高级场所,考场,高楼大厦,神明厅,巨宅。 <>天钺:微高的山坡,土岗,地块,公园,墓园,考场,高级场所,宿舍。 <>禄存:土岗,土坡,高阜,微高的地块,银行,药局,市场,田园。 <>擎羊:隔墙,大小道路,叉路,边缘地带,分水岭,断桥,坎坷崎岖的地形。 <>陀罗:隔墙,死巷,磨坊,残垣,乱石,场屋,禁区,荒凉的地方,车行。 <>火星:庙宇,火炉,尖山,恶石,破面巉岩之山石,寺塔,尖形地基,水形尖斜,闹区。 <>铃星:砖瓦屋,寺塔,庙脊,尖锐地形。崩裂巉岩之山石,凹缺处,漏洞,窗户,闹区。 <>地劫星:短墙,分垄阡陌,坎坷不平的地面,养猪场,地下室,角落,危险地带。 <>天空:空地,平原,地窖,养猪场,空屋,顶楼,独立住宅。 <>化禄:土坡,岗岭,微高的地块,住宅兼营生的房子。 <>化权:森林,屋舍,运动场,竞技场,法庭,高楼大厦。 <>化科:水坑,泉水,水源地,高级休闲场所,教育场所,文化区,有阶级的地方,寺庙,教堂。 <>化忌:排水沟,地下排水系统,水池,禁区,风化区,贫民区,流动摊贩区,地下道。

1.9. 紫微斗数 送 礼物

◎紫微星

基本上她们在花钱方面是蛮大方的,也比较讲究派头,送礼的时候很重视礼物的整体价值。不过,你得先想一想自己在情人节时送了她什么礼物?如果你送她的礼物不够看的话,别说什么名贵好礼,她可能根本不会回礼给你。

◎天府星

这可是一个很有金钱概念的女性啊!懂得计画,不会乱花钱;然而一旦被爱情冲昏了头,她也就顾不得那许多了,完全凭感觉行事。要从她送你的礼物来推敲她对你的心意得先看你们的关系状态;如果你们才认识不久,会送礼就表示她对你的感觉很不错,如果是贵重的礼物更代表你正强烈的吸引着她;如果两个人的关系已经很稳定了,甚至说是一家人了,她选礼物可就务实多了,很可能会选一份两人共用的礼物喔!

◎武曲星

她是一个很有计划、很有原则的女孩,从她所送的礼物你可以看出她现在的经济状况,她不会浪漫的连自己的荷包还剩多少都不知道,选礼物一定会量力而为,而且着重实用性。看看她送你的东西是否正是你所需要的,就知道她对你是否真的很用心了!

◎天相星

她是个颇爱面子的人喔!平日生活或许蛮节俭的,但是对心爱的人却是很大方。如果她平日对你的脾气不是很好,那其实是因为把你当自己人,只要你略加暗示,到了情人节的时候一定会收到让你满意的好礼。反之,如果她对你的态度还是非常温柔可人,那也就表示她对你还在观察,要想在节日收到她的礼物,机会不大啊!

◎七杀星

她们是独立性非常强的女性,交男朋友自然也很有个人看法,不愿意接受家人的安排。然而处事稳健有理性的七杀星一旦进入恋爱状况,就完全忘了我是谁,感性而热烈的为对方付出,就算她的表情一样是有点冷冷的,但是心中的那把爱之火,仍在她的行为举止中表现出逼人的热度。她会送你什么?只要她爱你,给你的绝对是最好的;即使经济能力未必佳,她也会想尽办法,别忘了,她可是冲劲十足的女孩啊!

◎破军星

她的感性及任性相信让你跟她相处过程是多采多姿的,送什么礼物好像就不是那么重要了嘛!她们的表现其实会有阶段性,在刚开始交往时,你送她礼物,她就会回礼,但这只是基于礼貌;当两人进入热恋阶段,或是说她对你真的动情时,她会很细腻的去观察你的需要;不过在两人的情感渐趋稳定时,她所表现的就是较务实的一面,这可不是说她小气喔,就算是针对你送她的礼物,她也希望你不要浪费,心意到就好了!

◎廉贞星

这种女孩对人比较没有安全感,自然也不是那么容易投入感情;然而一旦投入之后,就非常的死心眼,就算有许多其他机会,也不容易变心。她平日生活尚称节俭,不会随便乱花钱,但是对自己的亲密爱人却是非常大方。如果你收到了廉贞情人所送的大礼,那也就表示你已经攫获她的心了,好好珍惜这位痴情女子吧!

◎贪狼星

你的爱人是贪狼坐命的吗?你一定常常听到她说些令你心花怒放的话吧!也一定很陶醉在她撒娇发嗲的表现之下,她会让你觉得作个男人真好!她可是非常重视妳在各种节日中的表现喔!至于她会送什么呢?以她的性格来说应该不只一样,而每一样礼物背后还都有着不同的深情理由,不只礼物本身,在拆礼物的过程中就已经够甜蜜有趣啦!

◎ 太阳星

有太阳星坐命的女孩带了一些男孩子的阳刚气质,因此也容易让人误解她不需要太多的浪漫对待。潜藏在她们内心的是一个不安定的灵魂,不似表面上的稳定;嘴上说不在意的事心里面早已翻覆了各种不同的想法。要为心爱的人挑礼物,当然也是费尽心思。她不会选重复的礼物,喜欢比较现代的、时髦的、科技的东西;她也非常大方,你可以准备着happy了!别忘了,收到礼物时,一定要显出非常兴奋的样子,就算是夸张的表现也无所谓,即使她嘴里不说,心里面可乐着呢!

◎ 巨门星

有巨门星坐命的女孩常经常会腻着男朋友,跟他说自己的见解、想法、感受及生活中的点点滴滴。别以为她只顾着跟你说,其实她有非常细腻的观察力,会时时注意到你在想什么?你需要的是什么?送礼时自然也不例外。由于她是个较务实的人,所以呢,礼物的实用价值也会比较高,再加上她是个颇有理想的人,你可以从她送的礼物上去发现她对你的期望喔!

◎天机星

有个天机坐命的女朋友,生活一定是精彩而多变吧!而她也一定会让你感受到晴时多云偶阵雨的即时情绪起伏!这样的女孩脑子太活了,要想跟上她的转变可累人了,不如抱着欣赏的角度,犹如看万花筒一般,时时有新意。她喜欢新颖的事物,也要拿你做实验品,她不只会送礼物,还会安排活动,建议你用几分童稚的纯真来期待这一天,她会让你觉得很有趣、很开心、也很窝心!

◎ 太阴星

有太阴星坐命的女孩是非常细腻而敏感的,她追求的是优雅而精致的生活;温和的态度下隐隐藏着一些不安。而你,是否在情人节的时候送了令她满意的好礼呢?她可是会由此来评断你对她的肯定程度喔!她对于日常生活可算节约,但是对自己在意的人可就大方了,犹如她平日的习惯,东西不一定要买的多,但要买就要买最好的。这么说你就明白了吧!只要她在意你,你肯定会收到贵重好礼。如果你原来的表现不理想,一定要找机会弥补一下,否则可是会在她心里面留下淡淡的哀怨啊!

◎ 天同星

有天同星坐命的女孩常常是迷迷糊糊的,如果她忘了这一天,一点也不奇怪!如果你不想错过,就多提醒她几次。其实她是个颇随性的人,对于一些特别的日子,想到的是大家可以开心的去玩一玩,而不太会去在意其中的特殊涵意。所以你最好先有心理准备,没送礼物也是很正常的。坦白说,依她随性的态度来说,要想知道她对你的心意到底如何,可不是件容易的事啊!

◎天梁星

有个天梁坐命的女朋友,就像多了个小妈妈一样,她总是嘘寒问暖、事事叮咛,表现出一种成熟的态度。她的日常生活态度颇为严谨,不会乱花钱,但是亲人对她来说,有无法抗拒的吸引力,吸引着她的钱包,要什么、给什么,在所不惜。那……你算她的什么人呢?你也不妨测试一下,暗示她你的渴望,看看会不会有如愿的结果。如果没有,那你还得加把劲儿,不过急不得,她可有耐力去考验人呢!

1.10. 紫微斗数 女星手册

天相星女——独揽财政大权

对于紫微命宫中有天相星的女人来说,通过常会在结婚后就独揽家中的财政大权,不给老公留下太多的零花钱。一方面她深知在外风流是需要本钱的,老公的荷包不鼓了,怎还有力气去外遇?另一方面她也为自己留好了后路,假如有一天婚姻被瓦解了,至少钱能保证自己和孩子衣食无忧。

太阳星女——借助公婆之力

太阳星入命宫的女人能言善道,心思细密,能和老公家的长辈相处融洽。在老公外遇这个问题上,她会请求公公婆婆的帮助,借助他们之力来约束老公。由于她明白,老公可以不疼自己,但不会去违逆父母,而且“外遇”的事情闹大,长辈们也会失掉颜面,所以她公公婆婆便其击退第三者的王牌。

巨门星女——充分运用法律武器

紫微命宫中有巨门星驻守的女人,做事有一套自己的规矩,认为法律是保护自己的最有力武器。所以假如发现老公有外遇的迹象,她就会多方面去收集老公出轨的证据,让所有的亲人都站在自己这边,让法律还自己公道。在她看来,假如赢不回老公,能赢回女人的尊严和有生活的保障,也是对老公外遇的有利反击。

天机星女——巧妙运用离间计

紫微命宫中有天机星的女人思虑周详,聪明有智慧,对待第三者的插足,早有应对的计谋。她会先装成陌生人认识第三者,然后与对方结成闺中密友,慢慢地给对方洗脑,再经常给对方介绍男朋友,让对方接触其他的优秀男性,慢慢转移感情。而对待老公,她会比以往更加主动地示爱,更懂得制造浪漫情调,待老公与第三者感情转淡后,她才向老公摊牌,要求老公与第三者划清界限。

太阴星女——提升自身魅力

太阴星坐命宫的女人温柔善良,善解人意,当她晓得老公有外遇后,会想尽一切办法吸引老公,对老公嘘寒问暖,多和老公进行心灵上的沟通,增进夫妻之间的感情。此外,她还会更加注重自己的穿着打扮,让自己浑身上下都散发出优雅、知性、性感的魅力。当夫妻间的感情重新亲密起来时,第三者也就不攻自退了。

天梁星女——将外遇萌芽扼杀在摇篮中

天梁星坐命宫的女人最注重家庭和谐,很要面子,其最无法容忍的事就是老公感情出轨。所以她会提前做好各种防范措施,不放过一点蛛丝马迹,一旦发现老公被某个女人勾引,相互间有了一丝暧昧的“火苗”,她就会立即采取灭火行动,将外遇的感情萌芽扼杀在摇篮中。天梁女人的这种未雨绸缪,能帮老公抵抗不少的烂桃花!

天同星女——以退为进

在对待老公外遇这个问题上,天同星坐命宫的女人也是自有妙招。她会尽可能地表现自己大度、温柔、感性的一面,不会强势对待,而是在老公眼前哭得梨花带雨,将自己委屈、脆弱、不舍的感情全部表达出来,这样就能激起老公保护弱小的玉望,也能让老公对家庭更加放心不下。天同女人这招“以退为进”,定能将第三者踢出局。

七杀星女——正面应对

敢爱敢恨、个性冲动的七杀星女若是得知老公有了外遇,通常是很难平静下来仔细考虑对策的。她会直接跑到第三者的住所,以最犀利的言语质问对方,先在气势和情理上占据上风,然后再步步紧逼,要求对方主动离开自己的老公。对于七杀女人而言,只有“先下手为强”,才能把握好事态,击退第三者。

破军星女——声东击西

紫微命宫中有破军星坐守的女人个性强势、倔强,绝对无法容忍老公有外遇。当然为了保护苦心经营的家庭,她不会贸然采取行动,而是暂时忍下怒气,一方面对老公表示和解,说明自己不会离婚,愿意为爱而原谅老公,给老公一次反省、改正的机会;另一方面会请私人侦探调查第三者,找到对方的“软肋”,预备好对付第三者的攻心战术,以赢回老公的心。

廉珍星女——欲擒故纵

廉珍星坐命宫的女人聪明有计谋,在得知老公有外遇时,即使心中的怒火已不可遏制,却丝毫不会表露出来。她会假意向老公提出离婚,答应玉成老公和第三者,表现出自己大度、豁达的一面,让老公心怀愧疚、第三者自得忘形。然后在双方协商的时期,继续扮演好妻子、好母亲的角色,以此将老公重新“钓”回家。

贪狼星女——釜底抽薪

命宫中有贪狼星坐守的女人也是足智多谋的,明白之所以有第三者的出现,是由于夫妻间的感情出现了问题。她首先会认真的剖析自己,然后主动和老公沟通,共同找到解决症结的方法。她还会用尽心思来取悦老公,让老公感受到家中的温暖,等到老公对第三者的激晴消退时,她就胜券在握了。

紫微星女——借刀杀人

紫微星坐命宫的女人有着王者的风范,假如得知老公在感情上出轨,背叛了自己,恨不得将老公“杀掉”。不过,她也会运用计谋来继续维持自己婚姻,而她的计谋就是借助外力来对付第三者。她会向第三者的家人、朋友、同事哭诉,让他们同情自己,谴责对方。正所谓“人言可畏”,无理的第三者也会害怕众叛亲离,最后不得不退出战争。

天府星女——静观其变

大而化之的天府星女,当遭遇老公出轨时,不会采用哭闹的办法,更不会寻死觅活。她只会过好自己的生活,继续营造一种温馨的家庭氛围。由于她相信,一时贪玩的老公,终有一天会回巢的,自己正宫娘娘的地位,就是保卫婚姻的最好武器。而第三者得不到法律的保护,终究只会是好景不常。

武曲星女——收买人心

武曲星坐命宫的女人刚毅果断,当发现老公感情出轨时,会冷静面对,而不是自乱阵脚。她认为对付第三者,以攻心为上!她会找到第三者,对其晓之以理动之以情,客观地分析事实,劝说对方放弃,并给对方保留面子,必要时还会用钱来收买对方的心。对待自己老公,则采取睁一只眼闭一只眼的策略,表现出温柔、识大体、通情达理的一面,让老公自己觉得愧疚,渐渐离开第三者。

1.11. 紫微斗数 与 面试

◎ 七杀星

不拘小节乃面试大忌   七杀星总是一马当先,连面试都是抢得头筹。9:00面试准时开始,可毕竟是首轮出场,七杀星带着几分紧张踉踉跄跄地跟着考官进入面试厅,面试官正襟危坐,等待即将到来的唇枪舌战。七杀星反应灵敏,聪明地翘起了二郎腿,紧张情绪亦就此随风而去。考官们面面相觑,皱皱了眉,忽然叫到”下一位”。怎么还没提问就结束了?难道考官是看面相的?走出大门的七杀星还没明白,不拘小节乃是面试时的大忌。

◎ 破军星

坦白直率、为人欠缺弹性   前车之鉴令破军星大有感悟–面试也得悠着点才安全。考官开始发问,对我公司有过了解吗?请大概谈一下自己的看法。破军星坦白直率,回答毫不含糊,面向考官侃侃而谈,滔滔不绝。考官连咳几声,只怪破军星为人欠缺弹性,不懂这咳嗽声的真正含义,等到破军星自认为给出完美的答案,主考官微笑着说,谢谢你的回答,请等候通知。此结束乎正是彼结束乎也。

◎ 贪狼星

过于看重功名利禄   贪狼星对胜利有一种近乎狂热的执着,对他而言,面试成功就是此行的最终目的。考官提问,请问你是怎样看待工作中的机遇?机遇对贪狼星来说就是获取升迁及高薪职位的直接途径,但并不能获得考官的认同,机遇不仅能使人获得一定的名利,它还应该是获得宝贵经验的基石,如果过于看重功名利禄的结果,而不注重自我提升的过程,成功就只能是一个梦想!

◎ 廉贞星

不懂谦虚   见识不凡的廉贞星带着满满的自信踏进面试厅,礼貌地向考官们致意,待对方示意方才坐下。对于这种实力强劲的应试者,考官当然格外留意,只需考核他们的处事品行及工作态度即可。一轮提问下来,廉贞星仿佛有了十拿九稳的把握,不经意间流露出自视清高、恃才傲物的神情。考官眼中那抹不易察觉的遗憾眼神告诉我们,不懂谦虚也是被人排斥的工作态度之一!

◎ 紫微星

自命不凡、眼高手低   人群中的紫微星显得格外惹眼,大有君临天下之势,不过这种优越感却并不能给他们带来多少好运。面对考官”是否愿意从普通职员做起”的提问,自命不凡而显得有些眼高手低的紫微星选择用一长串繁琐而冗长的解释作为前缀,而最终结果便是–不愿意。一个不想当将军的士兵不是一个好士兵,而没有士兵经验的将军也带不出优秀的团队,其实一个简单的”YES”就是最好的答案!

◎ 天府星

大而化之、耐性不足   待到前面数名应试者全部完成面试,考官传叫下一位,喊破喉咙也不见回应,原来天府星就在前一分钟踏出了这家公司的大门,过惯了无拘无束的生活,对他们而言这样的等待莫过于谋财害命,就这样天府星连考官的庐山真面目都未见着就已离开了这个”是非之地”。其实,成与败,往往只在一线之间,多等一分钟,或许一生因此改变!

◎ 武曲星

凡事都要亲力亲为才能放心   武曲星有个非常特别的习惯–凡事都要亲力亲为才能放心,当然面试这等关乎前途的大事亲自挂帅也是无可厚非。当考官问到如果工作中遇到棘手的状况会做何处理时,回答”依靠自己”确实会让考官觉得你是个敢于迎难而上的勇士,聪明的考官将问题延伸,如果这种状况较难改变呢?武曲星的回答也必定是依靠自己寻求突破,只是此时的执着却让考官看到了一个不懂团队协作的孤胆英雄。

◎ 天相星

多说多做才是真本事   堪称交际高手的天相星以其风趣的谈吐、八面玲珑的应事风格赢得考官的一致青睐,大有直接通关之势。理智的考官经过多番了解,对天相星提出了一个最为实质性的问题,请问能举出一到两个事例说明以前所取得的成绩吗?此题一出顿时令他有点舌头打结,亦才恍然大悟,原来口才再好也敌不过那句”事实胜于雄辩”的真理,多说多做才是真本事。

◎ 太阳星

热心过度   热情积极的太阳星在应试者中完全是一个闲不住的人,看看坐在自己身旁的同僚,侧身问一句”你好”或是直接拉着别人聊天都是常有的事情。而考官对这样热情的人则总是忧喜参半,”如果你是部门负责人,你是怎样看待下属的失职”,一个回答便让太阳星热心过度、独揽责任的风格暴露无遗,但是考官们却认为一个敢于承担责任的人却不见得善于承担责任,长一智还需吃一堑,下属同样需要为自己的失职负责!

◎ 巨门星

据理力争、与考官理论   考官提出的问题必定都有一定的层次,而当他们问到这样一个问题”当漏税可使公司挽回一笔相当不菲的财产,如果总经理给出你逃税的指示,你将如何做”。耿直明快的巨门星遇到不平之事据理力争,对于这样一个既触犯法律又违背原则的任务,他绝对不会坐视不理,直接与考官理论起这样做的种种不对,原本得到的品德分又因太过冲动而给人留下欠缺圆融的印象!

◎ 天机星

套近乎、拍马屁   天机星对缓和紧张情绪很有一套,进入面试厅,经考官示意坐下,微笑着向大家介绍自己。其实此时的他还仍有些心神不宁,在轻松气氛较难打开的情况下,机灵的天机总会想出”妙招”来驱散自己的紧张,”我三姑妈的五姨父就在贵公司工作,是她介绍我过来的”。他想,也许套套近乎会让气氛好一点,如此一厢情愿的想法就这样成为扼杀天机星高超实力的凶手!

◎ 天同星

欲速则不达   职场如战场,面试就如同一场对决,谁笑到最后才是笑得最好。天同星有不错的贵人运,多得助力。可是耐心略显不足,面试还未结束,考官正在交头接耳地商量,此时的天同星却早有些心猿意马,思索着如何询问薪金。”请问贵公司的薪金是多少”,显然欲速则不达,此话一出后事如何便可想而知!

◎ 天梁星

“掩饰”也意味着有失坦诚   左等右盼终于轮到天梁星上场,此时的考官也略显疲态,提问的方式显然更直截了当,”请问您是什么原因在两年的时间换了四次工作”,好面子是天梁星的最大特点,要承认自己失职被炒鱿鱼绝对是天方夜谭,所以为顾全面子而与考官打太极就成为天梁星的权宜之计,而考官的眼睛是雪亮的,”掩饰”同时也意味着有失坦诚!

◎ 太阴星

缺少自信、优柔寡断   不好与人争胜的太阴星总以谦逊待人,面对考官的提问时不自觉流露出些许怯场的神情。参加面试本身就是一场注定要与人决出胜负的竞争,只是太阴星这样缺乏自信的表现多少让考官有些无奈,如果给你一个团队,请问你将如何训练和带领他们做出成绩?回答得缺少自信、优柔寡断便成为了太阴星葬送机会的罪魁祸首!

1.12. 紫微斗数 器官 与 疾病

紫微星: 脾脏、胰脏、大脑中枢。【糖尿病、败血病、食欲不振、免疫力欠佳】。

天机星: 肝脏、胆囊、神经系统、四肢躯干。【肝胆病、神经衰弱、抽筋、后脑痛、神经性疼痛、记忆力减退、肝胆系统之免疫力】。

太阳星: 心脏、眼睛、心血管系统、视觉系统。【心脏病、血压、中风、心率不整、前额痛、偏头痛、心血管系统之免疫力】。

武曲星: 肺脏、呼吸系统、气管、鼻子。【过敏体质:过敏性鼻炎等、呼吸系统之毛病】。

天同星: 膀胱、输尿管。【泌尿系统、耳朵、听力、逢昌曲易有甲状腺、淋巴腺之毛病】。

廉贞星: 乳房、子宫、卵巢、睪丸、输卵管、输精管、子宫颈、摄护腺。【生殖系统之毛病、妇女病】。

天府星: 胃脏、小肠、十二指肠。【消化系统之毛病】。

太阴星: 肾脏、脚、眼睛、视力。【眼病、泌尿系统、水肿、脚气病、肾上腺】。

贪狼星: 性器官。【性器官毛病:子宫颈、乳房、阴茎、会阴、痔疮、直肠

巨门星: 口、舌、喉咙、食道、唇、齿。【饮食系统毛病】。

天相星: 相貌、脸。【脸部为主病变】。

天梁星: 肌肉、肋骨、肩胛骨。【筋肋、横向骨、肌肉病变】。

七杀星: 脊椎骨、骨头、大肠、直肠。【骨刺、椎间盘突、大肠、直肠等毛病】。

破军星: 皮肤。【身体虚弱、气血失调、头晕目眩、妇女病】。

天魁星: 器官品质较佳、较少生病、生病时易得贵人相救、外表看起来有病也像没病。

天钺星: 请参考天魁星。

左辅星: 左辅星有好帮好、坏帮坏的特性,依同宫或三方主星所主器官为病源,有一病再病的导向,以身体左半边之毛病為主。

右弼星: 请参考左辅星;右弼之病痛以身体右半边之毛病为主。

文昌星: 文昌依主星所主器宫之输送道为发病所在,其通道较文曲大,如血管、气管、食道、输尿管等、肾上腺、前列腺。

文曲星: 文曲依主星所主器官之输送道为发病所在,其通道较细微,如微血管、甲状腺、淋巴腺、胸腺、末梢神经等。

禄存星: 体质不良,易有难缠之毛病,依同宫主星所主而有不同毛病。

擎羊星: 易因同宫或三方主星之病痛而危及性命;而今代表易因同宫或三方主星之病痛而开刀;易因利器所伤或肢体伤残。

陀罗星: 久病不愈、慢性病,依同宫或三方主星而有隐疾或难缠病痛。

火星: 急症;依同宫或三方主星之引动而致病,亦因高烧而產生后遗症。

铃星: 急症;依主星而有不同症状,虚火或高烧而產生后遗症。

天空星: 气血不顺,有晕眩、冬天手脚冰冷之现象。

地劫星: 气血衰败,有晕眩、手脚无力之现象。

1.13. 紫微斗数 生死 与 寿夭

1、大限化忌冲本田(即冲大疾),大限化忌冲流田,即流年田宅宫走到本田宫,该年有去世的可能。(流年化忌入该宫时身体即开始不好)。 2、大疾化忌冲大命,大田化忌冲大田,命疾田皆破,此限亡;当大限宫成为流年财帛宫的三方时易死亡。 3、福德宫化忌入父母冲疾,命宫化忌入配偶冲官禄,流年入官禄宫会死人。 4、大疾化忌冲本命,或大田化忌冲本命,流年入本命宫时会死亡。 5、兄弟化忌入田宅宫冲子女宫,会死人(子女身体不好)。 6、疾厄宫化忌冲命,疾厄化忌冲疾厄,疾厄化忌冲夫妻,均易有凶险死亡。 7、田宅宫看死亡,流年化禄入流田,而流田自化忌,死亡。 8、大迁化禄入A宫,A宫转化忌冲流兄,兄弟或自己身体不好。 9、流兄化忌冲本疾,死亡。 10、文曲的官禄宫(为流年的六亲宫时)宫干丁使巨门化忌冲天同,死人(六亲身体不好)。 11、疾厄化忌入大限,身体不好,大限自化忌出更凶,逢大限化禄、忌入大田,或大田化禄、忌入大限,此限死亡。 12、疾厄化忌入官禄,而福德宫化忌入官禄,易逢凶险死亡之事;疾厄化忌冲官禄, 而福德宫化忌冲官禄,虽有大灾却不会夭亡。 13、生年化禄或化科入大限父疾线,可解死亡之劫。 14、死亡的地方:兄弟化忌入A宫,A宫转化忌入B宫,B宫即为死亡的地方,其中:命 迁线为意外死亡,兄友线为死于兄弟朋友处或照顾下,夫官线为死于工作场所,子田线为死于家中,财福线为死于床上,父疾线为经医院回家而亡。

1.14. 紫微斗数 修心

命宫——妄我,现世是来世之幻影:小宇宙,末那识妄我,通过意识执着为我。此命愚者自认注定狂者自认能改。 兄弟宫——道友宫、同门宫:主出家前的俗家兄弟、出家后的师兄弟,以及和信徒、道友的缘分、同门相处情形。 夫妻宫——道情宫、情欲宫:主出家前的妻子、爱情,以及自身的七情六欲变化,以及自身教育方法严厉的程度。 子女宫——传承宫、徒弟宫:主自己出家前的子女、羁绊,和出家后主弟子、晚年成就、状态,以及自己的传承。 财帛宫——衣钵宫、化缘宫:养命之缘,出家前为自身财帛、布施状况,出家后为化缘情况,以及自己的衣钵体。 疾厄宫——疾厄宫、身外身:主内心以及身体疾厄,生老病死四大苦谛无人能免,却不知身外有身乃我本来面目。 迁徙宫——游行宫、尘缘宫:主行踪、弘法、尘缘、游山玩水之访道、和信徒的交往,也包括别人对自己的看法。 仆役宫——信徒宫、人力宫:交往能力以及服侍自己的人、信徒、弟子、晚辈、交往的道友和一定的影响能力等。 事业宫——开创宫、师号宫:主名誉、地位、成就、影响力,克服困难的情形,也包括自己修行路上走来的状况。 田宅宫——本师宫、本院宫:主寺庙环境、家宅、居住点、师门大小影响等状况,也主对本教信仰的大小和缘分。 福德宫——心性宫、福元宫:外露七情六欲,内藏末那、阿赖耶,三世轮回和福厄报之本,学习悟道修养等能力。 父母宫——师长宫、品相宫:主自己的师父、长辈、指点或压制自己的人,出家前的父母,也主自己的品德相貌。 身宫——报身,今生是过去之所报:今日的身体、正报、依报、报应、福报皆是忆往昔所成,及自身的修行方向。

1.15. 紫微斗数 思维模型

紫微:全局思考,全局掌控,帝星本色。

天机:条件思考法,如果进展到A,怎样做,如果进展到B怎样做,乙木虽柔,顺势而为。

太阳:行动力法则:天道酬勤,果断秒杀超越一切小目标。行动即收获。

武曲:杠杆思考,在关键处使力,达到事半功倍的效果,是我生财之道。

天同:因果思考法:善有善报,恶有恶报,世间虽险恶,不失纯真本质。福星大福报。

廉贞:换位思考:了然于心,皆因站在别人的角度。虽是囚星,亦无时空之限。

天府:准备法则:逢山开路,遇水搭桥,皆因准备充足加管理有方。

太阴:吸引力法则:壮大自己的力量,吸引目标,直到目标成为自己力量的一部分。

贪狼:欲望法则:立足于目标,向欲望靠近,目的即欲望,欲望即目的。

巨门:概率思考法:哪个方向有大概率,就向哪里投入。暗星凭大概率取胜。

天相:流程思考法:渠成引水到,或水到渠成。天相阳水,浑然天成。

天梁:优势思考法:保持自己量重要的优势,永立于不败之地。不失优势,方为中流砥柱。

七杀:水平思考法:依托条件,出奇制胜,只为瞬间达到目标,无奇思如何能七杀?

破军:结果导向法:先定目标,倒推出次目标,倒推出如何做。后浪推前浪,一浪高一浪。

1.16. 紫微斗数 基本特质

紫微斗数星耀特质

主 星 性格特质

1.16.1. 紫 微

紫微族具有凡事需要被尊重,但却不愿亲力亲为的本性,与他人的互动往往会想要透过第三者来居中处理,往好处想,是能授权给他人行事,具有宽大包容的人格特质;可是,从另一个角度看,却有不敢或不愿直接面对事情、无法立即解决问题的特质,有推诿卸责,不愿承担责任的个性。此外,紫微族有「以我为尊」的心态,认为别人对我的服务与奉献都是理所当然的,经常有「人人为我」的想法。

1.16.2. 天 机

天机族具有一颗不安定的心,这里逛逛那里看看,是这个族群特有的现象,而天机族的不安定,最主要是他们的好奇心使然,凡是新鲜的事务都会引起天机族的好奇,不过,要是不能进一步挑起他们的兴趣,天机们很快就会将好奇心转移到下一个新鲜事上。此外,反应机灵也是天机的另一个特质,所以天机族向来有智多星之称,只是,天机的智是要运用得当,才是大智慧的显现;反之,就只是耍弄小聪明罢了,有时候天机族会因为自以为头好壮壮,以致在有意无意之下目中无人,会树立敌人而自不知。

1.16.3. 太 阳

太阳族具有崇高的理想,可以为了那天边的彩霞,而舍弃脚下的玫瑰,拥有大开大阖的特质。此外,「专注」是这个族群的天性,所以当他们投入于有兴趣的事务时,就很难再分心于「他们所认定的其他杂务」,如果要太阳族一心二用,那是很容易两头皆落空的。太阳族的行事作风比较直接了当,也不太会掩饰内心的想法,属于言行一致的人;因此,太阳族行为上所做的,就是他们内心里所想的,他们还有一颗服务的心,是「我为人人」的族群。

1.16.4. 武 曲

武曲族粗中带细且条理分明的头脑,让他们有极佳的反应,以及优于他人的先见之明,是有自信的族类,他们也是具有行动力的一群,即知即行,行事敏捷,所以在工作上是个强人(好强之人),不太能接受他人的意见,特别是会看不惯与自己行事风格不同的主管,所以常不得主管缘。武曲族有条理分明的头脑,再加上具有积极的行动力,所以也是个注重实力的人,他们不太对人奉承,而是以实力证明自己。

1.16.5. 天 同

天同族拥有比其他族群所更大的「勇」气,所以常「敢」于行事,但未必具有三思而「行」的特质,因此成败常决定于行事之前是否「谋定」,如果不能慎谋,天同族极易成为有勇无谋之人。天同族先做再说的特性,再加上不太动脑的习惯,常让自己陷于风险中而自不知,运气好时,可以一帆风顺,运气背的话,就会惹来一身波折,是个容易受命运牵着走的族群;不过,也由于天同族那不太用脑的特质,让他们即使身处困境,也不会觉得太难过,他们会认为忍一忍就过了,反正当下次机会来的时候,再搏它一搏就是了。

1.16.6. 廉 贞

廉贞族心思细密警觉性超强,善于观察外界的人事物,然后不动声色地藏于内心,所以其他家族大多搞不清楚廉贞族的内心到底在想什么,是属于内敛型的族群,待人柔和,但外柔内刚,有鸭子滑水般的行事风格,经常在不动声色的情况下,完成了令其他族类出乎意料之外的事情。廉贞族很坚持自己的信念行事,但过度的内刚,则常造成与人格格不入的现象,在人际关系上,容易亲近但不易深入。廉贞也是爱面一族,常以保护自己为行事准则,也因此而具有较大的怀疑心,与异性交往时则易吃醋。

1.16.7. 天 府

天府族是个很好的「中间人」,他们很习惯于居中帮人协调事情,因为天府族比其它族类更具有能屈能伸的特质,所以在行事风格上也具有较大的弹性,是个「做人」比「做事」强的族类。天府族还是「老二主义」的最佳代言人,他们可以一面奉承上意,另一面对其他人发号施令,善尽领袖人副手的角色,当「老大」不在时,他们会很快地站上发言台的位置,趁机掌握形势。

1.16.8. 太 阴

太阴族温和,亲切柔顺,但内心却是坚持己见,甚至有挑剔的个性,决断力不足,是属于保守型的族群,也因为保守,所以太阴族的行事风格讲求的是「渐变」,总是先求稳,再求快。此外,太阴族的承受力与耐性也是一流的,虽不致事事逆来顺受,但很少在第一时间就与人针锋相对,而是耐着性子温和地向人解释,尽量处处与人为善,因此大多能化干戈于无形;「务实」则是太阴族的另一个特征,他们在动手做之前,通常会仔细衡量目标的可行性,胜算高时才会执行。

1.16.9. 贪 狼

贪狼族的原创力并不强,但吸收力强反应快,所以凡事一旦让他们进入状况之后,他们具有举一反三的快速应变能力,速度之快常让其他族群的人措手不及,是属于学习型的族群,所以贪狼族有时令人看起来不太机灵,也有点粗线条,其实,他们的心思极为细腻,思考速度比超级电脑的运算速度还要快。贪狼族还可以将大事、小事、重要的事、无关紧要的事分得很清楚,所以一旦他们规划要做的事,会有条不紊地逐一完成。

1.16.10. 巨 门

巨门族具有极鲜明的「爱」「恨」个性,而且他们对一个人的爱或恨,会很直接了当地透过言语表达出来,对所喜爱的人,会巧言令色,对所厌恨的人,则会将其批评得体无完肤,是个行事作风颇受争议的族群。巨门族具有正义感,总认为世间事要有个公平与正义,而「好斗」也是巨门族的人格特质之一,他们会为了追求自己的理想,而不断地去挑「斗」他们所认定的敌人,直到有一方倒下或逃跑了,才善罢干休。

1.16.11. 天 相

天相族拥有一颗暖暖的心,济弱扶倾是他们终其一生的职志,必要的时候,他们能燃烧自己,照亮别人,所以天相一族具有宽大的胸怀,他们宁愿将荣耀献给他们认为值得奉献的人,也很少站上第一线接受赞美与掌声,这就是天相。天相族也是「追星一族」,一旦有他们喜爱的偶像出现,他们极易出现不理性的崇拜,对演艺人员如此,对宗教大师也是如此。

1.16.12. 天 梁

天梁族顺应环境的能力相当好,当他们得势之时,喜欢逆势操作,总能创新话题,引发新风潮;失势的时候,他们见风转舵的功力也是一流的,能够放下身段,在夹缝中求生存。「毅力坚强」是天梁族的特质,当他们设定了某个目标之后,会持续不断地去执行,一波接一波的绵密手段,总令人看得目不暇给,而且只要一逮到机会,见缝插针的功力更是上乘。天梁族是个务实的族群,会将成果看得比过程要来得重要,为达目的,手段方面会有些不近人情,行事急如风,容易给人强悍的观感。

1.16.13. 七 杀

七杀族是个以冷静见长的族群,即使他们的内心已经紧张得很,或是热血沸腾得不得了,外表上看看起来总是酷酷的模样,其他族群容易以为七杀族爱要酷,其实这是他们的性格使然,而这种性格也让他们活得有些孤独,所以七杀族经常是独来独往的。除了冷静,七杀族独力行事的能力也非常强,他们会尽可能克服内心的恐惧,勇敢地独力向环境挑战,是个有勇有谋的族类。而他们那爱面子,以及不擅表达情感的特质,则常让他们在感情方面生活得很辛苦,也因为他们的爱恨不形于色,所以七杀族若要报复某个人,那可真是十年也不嫌晚。

1.16.14. 破 军

破军族是个反应敏捷,行动力超强的族群,他们总是充满自信,经常凭着一时的冲动而行事,具有敢冲敢撞的行事风格,成败常在一瞬间。在火烈的个性中,破军族其实对人很关心,也愿意付出心力来照顾他人,但他们老是不够体贴,经常在自以为是的态度之下与人互动;因此,所付出的善意也时常无法获得同等的回馈,甚至引发争执或争吵。「不怕挫折」是破军族的另一特质,他们很少向环境低头,如果不幸失败了,他们常能在极短的时间内打起精神重新来过。

1.16.15. 副 星

「左辅、右弼、文曲、文昌」四颗副星的来源是紫微斗数创作原理中因主星数量不敷使用而再另创的星,所以视之为副星,其能量强度在十四颗主星之下,因此论四副星时需以其同宫之主星马首是瞻,具有强化主星能量之功,但无扭转吉凶之力。

例如主副星同宫时,主星自化吉象,副星就加强其吉的力道;反之,当主星自化凶象时,副星就加强其凶的力道。

1.17. 紫微斗数 与 十二长生

长生:其包含有出生、生长、来源、起点、帮助、依、山、哺育、源泉、根子、原始、苏醒、获救、救助、产生、寻找、得到、发生、吃饭等意思。

沐浴:含有洗澡、入水、裸体、淫乱、淫亵、脱衣、恩泽、好处、有利、暴露、光秃秃、光溜、光滑、享受、坦诚、大小便、睡觉、破败、难看、无耻、滋润、照顾等意思。

冠带:含有穿衣、整装、和衣、打扮、包装、装饰、衣服、升级、荣誉、戴帽、入伍、遮盖、外表、高贵等意思。

临冠:含有公家的、官府、有病、灾祸、有男人在身边、离死不远、巴结当官的、阿谀奉迎、出仕、当官、拍马屁、有官运、有地位、公务员、自力更生、自我努力、成长、快要成功、国营、危险等意思。

帝旺:含有荣发、发达、得意、精神、兴奋、神气、有力、雄壮、高大、擅长、强大、辉煌、欣欣向荣、腾达、有权、极限、高潮、顶点等意思。

衰:含有无力、软弱、衰弱、弱小、不景气、弱智、败落、力小、倒霉、退缩、没*山、弱点、胆小、虚弱、矮小、无能、没本事、不学无术、高不成低不就、不敢反抗等意思。

病:含有疾病、病灶、瘟神、讨厌、憎恨、仇人、仇视、不足之处、缺点、欠缺、毛病、弱点、漏洞、把柄、要害、心病、腐败、问题等意思。

死:含有死亡、钻牛角尖、不灵活、不能变通、滞留、、终结、完蛋、认死理、一条道走道黑、没有余地、不景气、无生气、无活力、呆板、笨拙、想不开、心胸狭窄、无退路、寂静、安静、可怕等意思。

墓:含有包容、收藏、埋藏、关闭、收拾、存放、管理、管制、属于、控制、操纵、指挥、包含、囊括、陷阱、不自由、入迷、受管束、隐藏、保护、护卫、围拦、仓库、权限、昏沉、糊涂、黑暗、不流畅、不畅通、结束、阻力、堵塞等意思。

绝:含有无退路、危险、绝地、绝境、悬崖、分手、断绝、背水一战、失望、心灰意冷、死心、无可救药、无能为力、无情、冷酷、不通融、停止、消失、无影无踪等意思。

胎:含有怀胎、酝酿、初步打算、计划、形成、先天的、与生俱来的、天生的、本性难移、初级、勾连、牵挂、操心、想法、幼稚、弱小、年龄小、起步等。

养:含有出生、生长、寄托、收养、休养、疗养、休息、依*、营养、滋养、扶助、怀疑、不放心、不踏实、心虚、操心、不安、过继、培养、养育、弱小、扶持等意思。

1.18. 紫微斗数七星定点

七星定点,以命宫为基点,逆数生月,顺数生日,再逆属生时,此即为命盘中的终极七星点。 (纳气点)

月定点(天):人生大纲。

日定点(地):人生趋势。

时定点(人):人生细则。

阅读全文 »

zhanxing

发表于 2006-09-05 | 分类于 zhanxing

1. 占星12宫

阅读全文 »

yinyang

发表于 2006-09-05 | 分类于 yinyang

1. 论五行生成

天高寥廓,六气迴旋以成四时;地厚幽深,五行化生以成万物。可谓无穷而莫测者也。圣人立法以推步者,盖不能逃其数。观其立数之因,亦皆出乎自然。故载于经典,同而不异,推以 达其机,穷以通其变,皆不离于数内。一曰水,二曰火,三曰木,四曰金,五曰土者,咸有所自也。水,北方子之位也,子者,阳之初一,阳数也,故水曰一;火,南方午之位也,午者,阴之初二,阴数也,故火曰二;木居东方,东,阳也,三者,奇之数,亦阳也,故木曰三;金居西方,西,阴也,四者,偶之数,亦阴也,故金曰四;土应西南长夏,五者,奇之数,亦阳也,故土曰五。由是论之,则数以阴阳而配者也。若考其深义,则水生于一。天地未分,万物未成之初,莫不先见于水,故《灵枢经》曰:“太一者,水之尊号。先天地之母,后万物之源。”以今验之,草木子实未就,人虫、胎卵、胎胚皆水也,岂不以为一?及其水之聚而形质化,莫不备阴阳 之气在中而后成。故物之小而味苦者,火之兆也;物熟则甘,土之味也。甘极而后淡,淡,本也。然人禀父母阴阳生成之化,故先生二肾,左肾属水,右肾属火。火曰命门,则火之因水而后见。故火曰次二。盖草木子实,大小虽异,其中皆有两以相合者,与人肾同,亦阴阳之兆。是以万物非阴阳合体则不能化生也。既阴阳合体,然后而春生而秋成,故次三曰木,次四曰金。盖水有所属,火有所藏,木有所发,金有所别,莫不皆因土而后成也。故金木水火皆待土而后成。兼其土数,五以成之,则水六,火七,木八,金九;土常以五之生数不可至十者,土不待十以成,是生成之数皆五以合之。明大衍之数,由是以立,则万物岂能逃其数哉?

2. 论五行生克

五行相生相克,其理昭然。十干十二支、五运六气、岁月日时皆自此立,更相为用,在天则为气:寒、暑、燥、湿、风;在地则成形:金、木、水、火、土。形气相感而化生万物,此造化生成之大纪也。原其妙用,可谓无穷矣。

木主于东;应春。木之为言触也,阳气触动,冒地而生也。水流趋东以生木也;木上发而覆下,乃自然之质也。

火主于南,应夏。火之为言化也,毁也,阳在上,阴在下;毁然盛而变化万物也。鑽木取火,木所生也。然火无正体,体本木焉。出以应物,尽而複入,乃自然之气也。

金主于西,应秋。金之为言禁也,阴气始禁止万物而收敛,披沙拣金,土所生也。生于土而别于土,乃自然之形也。

水主于北,应冬。水之为言润也。阴气濡润,任养万物也。水西而东,金所生也。水流曲折,顺下而达,乃自然之性也。

土主于中央,兼位西南,应于长夏。土之为言吐也,含吐万物,将生者出,将死者归,为万物家。故长于夏末,火所生也。土或胜水,水乃反土,自然之义也。

五行相克,子皆能为母,复仇也。木克土,土之子金反克木;金克木,木之子火反克金;火克金,金之子水反克火;水克火,火之子土反克水;土克水,水之子木反克土。互能相生,乃其始也;互能相克,乃其终也。皆出乎天之性也。《素问》所谓水生木,木複生火,是木受窃气,故水怒而克火。即子逢窃气,母乃力争,与母被鬼伤,子来力救,其义一也。强可攻弱,土得木而达;实可胜虚,水得土而绝;阴可消阳,火得水而灭;烈可敌刚,金得火而缺;坚可制柔,木得金而伐。故五者流行而更转,顺则相生,逆则相克,如是则各各为用,以成其道而已。

偏向于火的人爱争理 偏向于金的人容易伤人 偏向于水的淹人 偏向于土的欺人 偏向木的不服气别人

3. 六十甲子性质吉凶

甲子金,为宝物,喜金木旺地。进神喜,福星,平头,悬针,破字。 乙丑金,为顽矿,喜火及南方日时。福星,华盖,正印。 丙寅火,为炉炭,喜冬及木。福星,禄刑,平头,聋哑。 丁卯火,为炉烟,喜巽地及秋冬。平头,截路,悬针。 戊辰木,山林山野处不材之木,喜水。禄库,华盖,水马库,棒杖,伏神,平头。 己巳木,山头花草,喜春及秋。禄库,八吉,阙字,曲脚。 庚午土,路旁干土,喜水及春。福星,官贵,截路,棒杖,悬针。 辛未土,含万宝,待秋成,喜秋及火。华盖,悬针,破字。 壬申金,戈戟,大喜子午卯酉。平头,大败,妨害,聋哑,破字,悬针。 癸酉金,金之椎凿,喜木及寅卯。伏神,破字,聋哑。 甲戌火,火所宿处,喜春及夏。正印,华盖,平头,悬针,破字,棒杖。 乙亥火,火之热气,喜土及夏。天德,曲脚。 丙子水,江湖,喜木及土。福星,官贵,平头,聋哑,交神,飞刃。 丁丑水,水之不流清澈处,喜金及夏。华盖,进神,平头,飞刃,阙字。 戊寅土,堤阜城郭,喜木及火。伏神,俸杖。聋哑。 己卯土,破堤败城,喜申酉及火。进神,短夭,九丑,阙字,曲脚,悬针。 庚辰金,锡蜡,喜秋及微木。华盖,大败,棒杖,平头。 辛巳金,金之幽者,杂沙石,喜火及秋。天德,福星,官贵,截路,大败,悬针,曲脚。 壬午木,杨柳干节,喜春夏。官贵,九丑,飞刃、平头、聋哑,悬针。 癸未木,杨柳根,喜冬及水,亦宜春。正印,华盖,短夭,伏神,飞刃,破字。 甲申水,甘井,喜春及夏。破禄马,截路,平头,破字,悬针。 乙酉水,阴壑水,喜东方及南。破禄,短夭,九丑,曲脚,破字,聋哑。 丙戌土,堆阜,喜春夏及水。天德,华盖,平头,聋哑。 丁亥土,平原,喜火及木。天乙,福星,官贵,德合,平头。 戊子火,雷也。喜水及春夏,得土而神天。伏神,短夭,九丑,杖刑,飞刃。 己丑火,电也,喜水及春夏,得地而晦。华盖,大败,飞刃,曲脚,阙字。 庚寅木,松柏干节,喜秋冬。破禄马,相刑,杖刑,聋哑。 辛卯未,松柏之根,喜水土及宜春。破禄,交神,九丑,悬针。 壬辰水,龙水,喜雷电及春夏。正印,天德,水禄马库,退神,平头,聋哑。 癸巳水,水之不息,流入海,喜亥子,乃变化。天乙,官贵,德合,伏马,破字,曲脚。 甲午金,百炼精金,喜水木土。进神,德合,平头,破字,悬针。 乙未金,炉炭余金,喜大火及土。华盖,截路,曲脚,破字。 丙申火,白茅野烧,喜秋冬及木。平头,聋哑,大败,破字,悬针。 丁西火,鬼神之灵响,火无形者,喜辰戌丑未。天乙,喜神,平头,破字,聋哑,大败。 戊戌木,蒿艾之枯者,喜火及春夏。华盖,大败,八专,杖刑,截路。 己亥木,蒿艾之茅,喜水及春夏。阙字,曲脚。 庚子土,土中空者,屋宇也,喜木及金。木德合,杖刑。 辛丑土,坟墓,喜木及火与春。华盖,悬针,阙字。 壬寅金,金之华饰者,喜木及微火。截路,平头,聋哑。 癸卯金,环钮钤铎,喜盛火及秋。贵人,破字,悬针。 甲辰火,灯也,喜夜及水,恶昼。华盖,大败,平头,破字,悬针。 乙巳火,灯光也,同上,尤喜申酉及秋。正禄马,大败,曲脚,阙字。 丙午火,月轮,喜夜及秋,水旺也。喜神,羊刃,交神,平头,聋哑,悬针。 丁未水,火光也,同上。华盖,羊刃,退神,八专,平头,破字。 戊申土,秋间田地,喜申酉及火。福星,伏马,杖刑,破字,悬针。 己酉土,秋间禾稼,喜申酉及冬。退神,截路,九丑,阙字,曲脚,破字,聋哑。 庚戌金,刃剑之馀,喜微火及木。华盖,杖刑。 辛亥金,锺鼎实物,喜木火及土。正禄马,悬针。 壬子木,伤水多之木,喜火土及夏。羊刃,九丑,平头,聋哑。癸丑木,伤水少之木,喜金水及秋。华盖,福星,八专,破字,阙字,羊刃。 甲寅水,雨也,喜夏及火。正禄马,福神,八专,平头,破字,悬针,聋哑。 乙卯水,露也,喜水及火。建禄,喜神,八专,九刃,曲脚,悬针。 丙辰土,堤岸,喜金及木。禄库,正印,华盖,截路,平头,聋哑。 丁巳土,土之沮,喜火及西北。禄库,平头,阙字,曲脚。 戊午火,日轮,夏则人畏,冬则人爱,忌戊子、己丑、甲寅、乙卯。伏神,羊刃,九丑,棒杖,悬针。 已未火,日光,忌夜,亦畏四者。福星,华盖,羊刃,阙字,曲脚,破字。 庚申木,榴花,喜夏,不宜秋冬。建禄马,八专,杖刑,破字,悬针。 辛酉木,榴子,喜秋及夏。建禄,交神,九丑,八专,悬针,聋哑。 壬戌水,海也,喜春夏及木。华盖,退神,平头,聋哑,杖刑。 癸亥水,百川,喜金土火。伏马,大败,破字。截路。 以上六十甲子,盛大者忌变为小弱,小弱者欲变盛大也耶。

4. 六十干支无极易象取象歌诀

甲子 水上漂木 老鼠上树

乙丑 草原牧牛 庖丁解牛

丙寅 篝火熊熊 虎啸山林

丁卯 花木芬芳 信女烧香

戊辰 水库鱼池 金龙摆尾

己巳 金蛇出洞 合作共赢

庚午 白马王子 火箭升天

辛未 金羊贺岁 财源滚滚

壬申 猴子称王 翻江倒海

癸酉 雨落楼台 纸醉金迷

甲戌 恶犬把门 狼狈为奸

乙亥 野猪上山 龙归大海

丙子 舞燕翩翩 雨露均沾

丁丑 妖魔鬼怪 灯红酒绿

戊寅 猛虎出山 快马加鞭

己卯 狡兔三窟 城门失火

庚辰 神龙降雨 百川归海

辛巳 白蛇献瑞 釜底抽薪

壬午 喜降甘霖 鸳鸯戏水

癸未 风轻云淡 袅袅炊烟

甲申 白猴献寿 出神入化

乙酉 大鹏展翅 小鸡啄米

丙戌 忠犬护主 出门见喜

丁亥 鱼戏莲台 金童玉女

戊子 粮谷满仓 游子归乡

己丑 黄牛耕地 乡村土房

庚寅 二虎相争 必有一伤

辛卯 草里藏珠 鸡犬不宁

壬辰 洪水猛兽 蛟龙出海

癸巳 挥毫泼墨 火锅唱歌

甲午 甲马休征 解甲归田

乙未 洋洋得意 马失前蹄

丙申 金猴出世 大闹天宫

丁酉 凤凰涅槃 金榜题名

戊戌 兄弟一心 狐朋狗友

己亥 家有一猪 稀里糊涂

庚子 太白金星 才子佳人

辛丑 牛气冲天 金玉满床

壬寅 天王人王 老子为王

癸卯 有位伊人 在水一方

甲辰 亢龙有悔 贵人临门

乙巳 观音送子 锦上添花

丙午 万马奔腾 指日高升

丁未 辛勤劳动 养家糊口

戊申 马上封侯 吃饱喝足

己酉 金鸡下蛋 土里埋金

庚戌 张牙舞爪 勾心斗角

辛亥 六牙白象 妻离子散

壬子 落魄游子 孤魂野鬼

癸丑 牛头马面 恶鬼相见

甲寅 万丈高楼 钟鼓齐鸣

乙卯 窈窕淑女 君子好逑

丙辰 鱼跃龙门 万古流芳

丁巳 官司口舌 放生朱雀

戊午 马上成功 戒赌戒嫖

己未 卷起铺盖 扫地出门

庚申 白喉伤风 车祸死人

辛酉 贪财坏印 鸡飞蛋打

壬戌 妻妾成群 福祸相邻

癸亥 知足常乐 失物水火

5. 六十甲子自然环境取象

甲子:天水一色,林木倒影,碧波荡漾。 乙丑:丘土柔草,苔痕阶绿,青山绿田。 丙寅:重山叠障,烈日炎炎,日照山林。 丁卯:雷雨暗火,花红柳绿,鬓隐粉雪。 戊辰:风生水起,沙漠绿洲,杂木丛林。 己巳:风火炊烟,花草芳圃,篱笆蔷薇。 庚午:雷鸣电闪,夕阳余辉,雪山彩虹。 辛未:驿路清风,西方圣殿,琉璃屋脊。 壬申:天地河海,曲径通幽,田园月色。 癸酉:地泽溪谷,初月朦胧,秋雨霜露。 甲戌:高山耸天,山岗森林,峰峦叠翠。 乙亥:青青草原,山涧水雾,河畔草木。 丙子:山涧流水,水光潋滟,日出海面。 丁丑:山上红花,阴晴不定,莲出淤泥。 戊寅:风吹沙尘,黄崖松林,山寨城墙。 己卯:青青田圃,破败堤岸,雷鸣柔草。 庚辰:雷鸣殿宇,风吹丽水,岔路拐口。 辛巳:枫丹白露,池水夕映,杂沙堆石。 壬午:杨柳柔枝,水中莲花,日照梅花。 癸未:水润树根,中药汤济,雾气氤氲。 甲申:林荫道路,日照行人,绿林蔓绕。 乙酉:井喷草木,幽谷芝兰,阴木沟壑。 丙戌:日耀山阜,葵花向阳,烈日焦土。 丁亥:紫薇星斗,平原肥土,紫晶荔枝。 戊子:黄河水流,霹雳惊雷,波涛惊岸。 己丑:电闪陵圆,泥塘池沼,荒野丘陵。 庚寅:松柏干节,大路转弯,猕猴桃林。 辛卯:松柏须根,风吹杨柳,月宫玉兔。 壬辰:沼泽之水,大浪淘沙,水流入库。 癸巳:蜻蜓点水,长流入海,风吹水凅。

甲午;郊野篝火,春深夏长,钢明精气。 乙未:蔓草遍野,炭末似金,荒野沙灰。 丙申:平地高坡,马路灯火,彩霞照路。 丁酉:星光沼泽,烛光夜宴,葡萄美酒。 戊戌:黄土高坡,篙艾禾秆,密云不雨。 己亥:田埂湿土,枝繁叶茂,沟岸茅草。 庚子:雷雨倾盆,屋宇厚土,冰川雪莲。 辛丑:塞外牛羊,天山风渐,坟墓清寒。 壬寅:河流澜亭,栋梁金箔,水果挂枝。 癸卯:水岸垂柳,晓风残月,地奋雷震。

甲寅:天山风雨,松花闹春,虎啸山林 乙卯:地露之水,绿柳芳草,日出扶桑 丙辰:旭日东升,日散阴霾,挥汗锄禾 丁巳:日落星现,深红浅紫,霓裳羽衣 戊午:大漠孤烟,旷野生辉,沙场烽火 己未:田园泥浆,黄泥屋脊,花园流云 庚申:金光大道,火车轨道,城宇祠堂 辛酉:上弦弯月,金鸡独立,细雨黄昏 壬戌:碧海连天,矿泉之水,烧原秋露 癸亥:晶莹露珠,海纳百川,波涛汹涌

先贫贱而后富贵则荣华,先富贵而后贫贱则卑辱;不可以其先贫贱而不论其富贵,亦不可以其先富贵而不论其贫贱也。且生年属木,假令是庚寅、辛卯,则木之盛大可知;若月日时胎不见他木,则以松柏论,万一上见杨柳木或柘榴木,则舍 大就小,不以松柏论也。假令是壬午癸未生人,则木之小弱可知,若月日时胎不见他木,则以杨柳论,万一见松柏木或大林木,则弃小论大,不可以杨柳论也。以至天上火、剑锋金、大海水、大驿土生人,月日时胎别见他位,纳音同而小弱者,又如覆灯火,金泊金、井泉水、沙中土生人,月日时胎别见他位,纳音同而盛大者,或引凡而入圣,或先重而后轻,皆当从其变者而论之,不可拘于一端。

甲子,从革之金。其气散,得戊申土、癸巳水相之则吉。戊申乃金临官之地,土者更旺于子,必能生成;癸巳系金生于巳,水旺于子,纳音各有所归。又为朝元禄,忌丁卯、丁酉、戊午之火。

乙丑,自库之金。火不能克。盖已藏之金自无克害衝破,未有不显荣者,独忌己丑、己未之火。阎东叟云:“乙丑为正印,具大福德,秋冬富贵寿考,春夏吉中有凶;入格则建功享福,带煞类为凶会。”《玉霄宝鉴》云:“甲子乙丑未成器,金见火则成,多见则吉。”

丙寅,赫曦之火。无水制之则有燔灼炎热之患,水不可过,独爱甲寅之水,就位济之。又名朝元禄。《五行要论》云:“丙寅火含灵明冲粹之气,四时生生之德,入贵格则文采发应,主魁甲之贵。”

丁卯,伏明之火。气弱,宜木生之,遇水则凶,乙卯、乙酉水最毒。

戊辰,两土下木。衆金不能克,盖土生金,有子母之道。得水生之为佳。《五行要论》云:“戊辰、庚寅、癸丑三辰,挺 刚德清健之数,生于春夏,能特立独奋,随变成功;更逢旺气,则有凌霄耸壑之志。惟忌秋生,虽怀志节,屈而不伸。”

己巳,为近火之木。金自此生,于我无伤;忌见生旺之金。阎东叟云:“己巳在巽,为风动之木,根危易拔,和之以金、 土,运规东南,方成材用,虽外阳内阴,别无辅助,则其气虚散,更为金鬼所克,乃不材之木也。

庚午辛未,始生之土。木不能克,惟忌水多,反伤其气。木多却有归,盖木归未也。阎东叟云:“庚午、辛未、戊申、己 酉皆厚德之土,含容镇静,和气融洽,福禄优裕,入格则多曆方岳之任,有普惠博爱之功。”

壬申,临官之金,利见水土,若丙申、丙寅、戊午之火则为灾害。《玉霄宝鉴》云:“壬申、癸酉,金旺之位,不可複旺,旺则伤物;不可见火,见火则自伤。”

甲戌,自库之火。不嫌衆水,只忌壬戌。所谓墓中受克,其患难逃。《五行要论》云:“甲戌火为印为库,含至阳藏伏之 气,贵格逢之,富贵光大。惟忌複生,防吉中有凶。”

乙亥,伏明之火。其气湮鬱而不发,借己亥、辛卯、己巳、壬午发,未木生之则精神旺相,癸亥、丙午水有之则不吉。

丙子,流衍之水。不忌衆土,惟嫌庚子,乃旺中逢鬼,不祥莫大焉。《五行要论》云:“丙子自旺之水,阳上阴下,精神 俱全,禀之者天资旷达,识量渊深;春夏为济物之气,多建利泽之功。”

丁丑,福聚之水。最爱金生,忌辛未、丙辰、丙戌,相刑破也。《五行要论》云:“丁丑、乙酉,在数为涣弱之水,阴盛 阳弱,禀之者器识清明,多慧少福,橐以水木旺气,则阴阳均协,为贵达崇显之气。”

戊寅,受伤之土。最为无力,要生旺火,以资其气。忌己亥、庚寅、辛卯诸色木克,主短折之凶。《五行要论》云:“戊寅、丙戌此二位乘土德厚气,一含生火,一含宿火,是谓阳灵袭中,福庆之辰;贵格得之,道德盖世,贵极人臣,惟亲王、贵公子多于此日生;常格得之,亦主福寿遐远,始终安逸。”

己卯,自死之土。抑又甚焉。贵得丁卯、甲戌、乙亥、己未之火,由合而来,以致其福。《五行要论》云:己卯,自死土,建于震位,风行雷动,散为和气,德自冲虚。禀之者类有道行,随变而适,有养生自在之福寿,惟不利死绝,则为久假不归之徒。”

庚辰,气聚之金。不用火制,其器自成,火盛反丧其器,病绝火无害。若甲辰、乙巳火,恶不可言;亦不能克衆木,盖我 气亦聚耳。阎东叟云:“庚辰之金具刚健沉厚之德,禀聪明疏通之性。春夏福祸倚伏,秋冬秀颖充实;入格则兼资文武,带煞则好弄兵权。”

辛巳,自生之金。精神具足,体气完备,炎烈炽化而不亡。忌丙辰、乙巳、戊午之火。盖金生于巳,而不能生败于午,绝 于寅而气散,複见生旺之火,乌可当之?《五行要论》云:“辛巳金为自生学堂,具英明瑰奇之德,秋冬得力十全,春夏七凶之吉;入贵格则主学行英伟,致身清贵,常怀济物之心。”

壬午,柔和之木。枝干微弱,木能生火,却忌见火多,多则烬矣。虽生旺之金,亦不能伤。盖金就我败,得金反贵。水土 盛者亦贵。惟忌甲午金伤之。《五行要论》云:“壬午,自死之木。木死绝则魂游而神气灵秀,禀之者挺静明之德,抱仁者之勇,建立功行,可谓静而有勇,延年益寿。”

癸未,自库之木。生旺则佳,虽乙丑金不能衝破,各归其根而不相犯。忌庚戌、乙未金。《玉宵宝鉴》云:“壬午、癸 未谓之杨柳木者,盖木至午而死,至未而墓,故盛夏叶稠,得其时则富寿,非其时则贫夭。”

甲申,自生之水。其气流衍,宜有所规。亦借金生,不忌衆土,特嫌戊申,庚子之土。《五行要论》云:“甲申水自生, 含天真学堂,得之入局主智识聪慧,妙用无穷。”

乙酉,自败之水。假衆金以相之,盖我气既弱,借母以育。忌己酉、己卯、戊申、庚子、辛丑之土,则夭折穷贱。

丙戌,福壮禄厚之土。木不能克。忌见生旺之金。若遇火盛则贵不可言。

丁亥,临官之土。木不能克。嫌金多,须得火生救之,乃吉。忌己亥、辛卯之木。《五行要论》云:“丁亥、庚子二土中含金数,内刚外和。禀之者得有定力,土下济之以水火旺气,能建功立事,敢为威果之行。”

戊子、己丑,水中之火,又曰神龙之火。遇水方贵,为六气之君火也。《五行要论》云:“戊子含精神辉光全实之气,作 四时保生之福,入贵格则为大人君子,器宇含弘,富贵终吉。”

己丑,为天将之火,又为天乙本家。含威福光厚之气,发越峻猛,贵局乘之,为将德,为魁名而建功。《烛神经》云:“丑,胎养之火,其气渐隆。若遇丙寅、戊午之火助之,可成济物之功。”

庚寅、辛卯,岁寒之木。雪霜无以改其操,况金能克之乎?上有庚辛,不假制治,自然成材。阎东叟云:“辛卯木自旺, 春夏则气节挺拔,建功立事;生于秋则狂狷折挫,劲气不伸。”

壬辰,自库之水。若池沼水积之地,忌金来决破。若再见壬辰,是谓自刑,别辰无咎;遇多水、土皆喜。惟畏壬戌、癸亥、丙子之水,生旺太过,汗漫无归。《五行要论》云:“壬辰水为正印,含清明润沃之德。禀之者含容弘大,心识如镜。春夏得之,作大福慧;秋冬得之,类奸诈无德。”

癸巳,为自绝之水,名曰涸流。若丙戌、丁亥、庚子壮厚之土,其涸可待;若得三合生旺之金生之,则源泉混混,盈科而 进也。《五行要论》云:“癸巳、乙卯,自绝自死之水,乃至阴退,藏真精啬,养凝成贵气。贵局乘之,类是妙道,君之夙体常德,有功及物。”

甲午,自败之金,亦曰强悍之金。遇火生旺,其器乃成。忌丁卯、丁酉、戊子之火凶。《五行要论》云:“甲午金为进神 魁气,具刚明之德。秋冬则吉,春夏或凶;入贵格主科场建统衆之功,非时带煞,则暴戾克忍,寡恩少义。”

乙未,偏库之金。亦火制,而土生之则福壮气聚。忌己未、丙申、丁酉之火。《五行要论》云:“乙未金在数为木库,又 为天将。具纯仁厚义之德,无往不吉。贵格得之,是不世之英杰,魁镇士伦;常格得之,带煞冲犯,亦作小人中之君子,眉寿人也。”

丙申,自病之火,丁酉,自死之火。其气极微,假木相助,其气方生。忌甲申、乙酉、甲寅、乙卯之水。阎东叟云:“丙 申,病火。以木为文明之德,以水为旷达之性,以土为福慧之基;惟金为暴疟,纵有吉辰,革为不和之气。”

戊戌,土中之木。忌重见土,若纳音土多,一生屯蹇。金不能克,盖金气至戌而散,遇金乃能致福;利见水多木盛而为贵 格。阎东叟云:“戊戌之木,孤根独立,和之以水火旺气则有英明秀实之德,入格则文章进达,福禄始终,然乘天将之气,主备曆艰险,节操不移,方见晚福。”

己亥,自生之木。根本繁盛,不忌衆金,惟嫌辛亥、辛巳、癸酉之金;若见乙卯、丁未水、癸未木,未有不大贵。阎东叟 云:“己亥之木,得时则清贵,非时则辛苦。”

庚子,厚德之士。能克衆水,不忌他木,盖木至子无气;若遇壬申之金,谓之明位禄,其贵必矣。

辛丑,福聚之土。衆木不能克,盖丑为金库,丑中有金,见木何伤?《玉宵宝鉴》云:“庚子、辛丑土爱木而恶水,见木 为官,见水不相宜。”

壬寅,自绝之金,癸卯,气散之金。若见衆火则丧气,惟水、土朝之则吉。《五行要论》云:“壬寅、癸卯为虚薄之金, 具仁柔义刚之德。科冬刚健无凶,凶为吉兆;春夏则内凶外吉,吉乃先凶。入贵格则志节英明,带煞则凶暴不能终也。” 甲辰,偏库之火。多火助之,吉,所谓同气之求,以资其不足。若见戊辰、戊戌木生之,为贵格;忌壬辰、壬戌、丙午、丁未水最毒。《五行要论》云:“甲辰为天将之火,含敏速峻烈之气,入贵格则为特达,为文魁,利秋冬,不利于夏。”

乙巳,临官之火。水不能克,盖水绝于巳;得水济之,则为纯粹。若得二三火助之,亦佳。《五行要论》云:“乙巳火含纯阳巽发之气,光辉充实,春冬向吉,夏秋向凶。”

丙午、丁未,银汉之水。土不能克,天上之水,地金不能生也。生旺太过,反伤于万物;死绝太多,又不能生万物。《五 行要论》云:“丙午,至崇之水,体南方温厚之气。禀之者类有道气虚变,颖异有为,魁衆出伦;丁未具足三才金数,得冲正之气。禀之者主精神气全,性根高妙,尽变之道。”

戊申,重阜之土。木绝于申,不能克。若见金水多助,则富贵尊荣之格也。

己酉,自败之土。其气不足,借火以相助之。见丁卯、丁酉火则吉,切忌死绝。畏辛卯、辛酉木,灾蹇夭折。

庚戌、辛亥,渐成之金。不可见火,恐有所伤。若得水、土相之为贵。阎东叟云:“庚戌,火墓之金,有刚烈自恃之暴。秋冬庶几沉厚,春夏动生悔吝;君子执兵刑之权,小人恣犷悍之性。辛亥金禀乾健、纯明、中正之气,春、秋、冬三时吉,夏七吉三凶。贵格乘之,体仁守义;若带刑杀,肆暴贪功。”

壬子,专位之木,癸丑,偏库之木。遇死绝则富贵、生旺则贫贱;水多则夭折;金多土盛为佳。《五行要论》云:“壬子,幽阴之木,阳弱阴盛,柔而无立,类仁水德。用事惟对以丙午水,则为水、木冲粹之德,类入神仙异士标格,非常流也。”

甲寅,自病之水,乙卯,自死之水。虽然死病,土不能克,盖支干二木可以制土。若见壬寅、癸卯之金,则为优裕。《五行要论》云:“甲寅、壬戌二水为伏逆,阴胜于阳,主奸邪害物,惟济之以火土损益,方成大器。”

丙辰,自库之土。厚且壮,喜甲辰火,恶戊辰木。此土凡木不能伤,盖丙,火也,辰为火偏库,土已成器。惟嫌戊戌、己亥、辛卯、戊辰之木。《五行要论》云:“丙辰土为正印,建五福吉会之德。禀之者类皆亨大有为,不富即贵,惟犯冲 者多为僧道。”

丁巳,自绝之土。又不为绝,盖一土居二火之下,在父母之乡,乘天属之恩,故不为绝。木不能克,火多益佳。《玉宵宝 鉴》云:“丁巳含东南火德旺,数得之者,含容福寿。”

戊午,自旺之火,己未,偏库之火。居离明之方,旺相之地,其气极盛,他水无伤。忌丙午、丁未天上之水。《五行要论》云:“己未,衰火,含余藏宝之气,春夏之月,运入沉潜之乡,则明达峻敏,福庆深远,夏得之,非和气也,秋得之,则先吉后凶。”

庚申、辛酉二木,金居木上,因金以成器,忌再见金,致毁其器。若见甲申、乙酉水则入格。《玉宵宝鉴》云:“庚申, 自绝木,为魂游神变,遇此日生者,类非凡器,常格主赋性颖异,家族不羁,入贵格则是英杰之才,立不世之功;辛酉,失位之木,木困金乡,乘之者涉世多艰,惟对癸卯金则刚柔相济,挺拔出群,决取巍科。”

壬戌,偏库之水,癸亥,临官之水,名曰大海水。盖支干、纳音皆水,忌见群水,虽壬辰水库亦不能当。不忌他土,死绝 则吉,生旺则泛滥无所归也。《玉宵宝鉴》云:“亥子,水之正位,壬戌气伏而不顺,唯此水、土损益之,乃成大器。癸亥具纯阳之数,内体至仁,禀之者天资夷旷,志气浩然,发为功案,利泽日时,带煞则凶狡之流。”又曰:丙戌之土为福隆厚,火锺于此故也。己未、庚辰、戊辰、丁丑与此同义。己未,火也,未中有墓木;庚辰,金也,辰中有墓土;戊辰,木也,辰中有墓水;丁丑,水也,丑中有墓金,皆父母之气,各有所养。此五者福壮厚以上,有鬼所伤,不为害,气成故也。

乙巳、戊午,乃盛炎之火。秋冬作德吉,春夏作刑凶。若仲夏暴炎一发,旋即归燥竟焚,和而为咎。乙巳,临官之火,上 有一木生之,其气盛矣;戊午,自旺之火,若生秋冬,为温燠之气,为济物之德。若生春夏,旺火複得阳位则作凶,生仲夏,为暴戾、刻忍、凶夭之流也。

乙卯、癸巳、丁酉、乙亥,水火虽死绝,却清明而妙佳。火死绝而内明外晦,返照回光,水死绝而湛然清澈,可烛鬚眉, 故却清明而妙佳。

壬寅之金,事君不逆,庚申之木,为臣不强。五行属五音,宫土者,君也,商金者,臣也,角木者,民也。商太过则臣强,角太过则君弱。故五音之中,常用四清以杀商角。庚申者,角木自绝也,壬寅者,商金自绝也,性情得忠顺之道,故事君不逆,为臣不强。所以自紫微、鸾台、凤阁以上官,切忌金木生旺之命,如是必不为之,为之亦不能久,独台谏则可。若金木生旺而克破则不然。

庚申木、乙巳火,土金生而还不生;丙午水、癸卯金,木水死而还不死。土生申而不生于庚申,水生申而不生于戊申,火 生寅而不生于甲寅,金生巳而不生于乙巳,木生亥而不生辛亥,盖生处而反受制也,得之者夭寿;木死卯而不死于癸卯,土死卯而不死于丁卯,木死午而不死于丙午,金死子而不于庚子,火死酉而不死于辛酉,盖死处得生也,若得之者长寿。 戊子,支干旺于北方,乃水之位,纳音属火,乃水中之火,非神龙不能有之;丙午,支干旺于南方,乃火之位,纳音属水,乃火中之水,非天河不能有之。戊子人得丙午,或丙午人得戊子,无不贵。盖火中生水,水中藏火,水火既济,精神运动,必灵异于人矣。

辛丑之土不嫌于木,戊戌之木不怕于金。何以辩之?丑中金库,木不为鬼;戌中有火,金反受其殃。若戊戌之木,二土在 上,一木在下,埋在二土之内,尚未萌芽,不见其形,是土盛木弱。馀皆仿此。

庚寅木、丁巳土不嫌金木之鬼。金至寅宫,虽为鬼而金绝在寅,故不为鬼;木至巳宫,而巳有生金克木,故不为鬼。若庚 寅木逢壬申金,相冲受克。馀皆仿此。

庚午之土,乘南方旺火以养其形,戊申之土自生,庚子之土自盈,不忌木鬼。盖木至午死,申绝子败,又自强之土何伤? 馀皆仿此。

壬申,癸酉、庚戌、辛亥四金气壮,不嫌于鬼。戊子之火不畏其鬼,水中霹雳之火,神龙有之,盖有水则雷方鸣,若逢丙 午、于未天上水、则有所忌;有相战之功。大凡本命支干受伤,则主六根不足,有始无终,如丁巳见癸亥、壬子见戊午。 馀皆仿此。

戊午、庚申,彼我得之,超异。庚申,石榴木,夏旺,故喜戊午。盖火官旺,而石榴木性得时,戊午乃旺极之火,喜于申,见天马相资也。其神头禄者,即十干专位禄,乃阴阳专位,天地神会也。列八卦之真源,演五行之成败,刚柔相推,有无合化。故壬子之水应北方之坎,丙午之火实南宫之离,所以丙午得壬子不为破,丁巳得癸亥不为冲,是水火相济之源,有夫妇配合之理,坎离为男女精神之用也;壬子得丙午,癸亥得丁巳,则先后火水,有未济之象,不如丁巳见壬子,丙午得癸亥也。

庚申、辛酉之金应西方之兑,甲寅、乙卯之木象东方之震,所以甲寅得庚申不为刑,乙卯得辛酉不为鬼,是木女金夫之正 体,明左右之神化也。木主魂,金主魄,二者左右,相间不合,若能金合,则神之化生以无间也。若庚申得乙卯、辛酉得甲寅不为元辰,变通之用也。

戊辰、戊戌之土为魁罡相会,乾坤厚得,覆载含生,不得以为反吟。戊辰、戊戌不为冲,土得正位,干守元会也。

己丑、己未是贵神守忠贞,此四真土有万物始终之道,非大人君子,熟能备此德?况神头禄各有神主之,左右运动于六合之中,盈缩于吉凶之变也。

己丑土为天乙贵人,己未土为太常福神,解百煞之凶,若得之,当用为横财之喜。

戊辰为勾陈,戊戌为天空,土之神多迁改,居帅外藩,出镇边防,有不常矣;丁巳为蛇之神,凶以凶用,吉以吉承,多荧惑之忧,有滑稽之性;丙午为朱雀之神,应阳明之体,文词藻丽;甲寅为青龙之神,博施济衆,得四方之利;乙卯为六合之神,主发生荣华,和弱顺党;壬子为天后之神,主阴骘天德,容美多权;癸亥为玄武之神,乃阴阳终极,有潜伏之气,从下如流,虽有大智,非轩昂超远之士,顺则安平,逆则奸宄;庚申为白虎之神,利于武而不利于文,有抱道孤骞之性,善中严外,色厉内荏,有仁义,好幽僻;辛酉为太阴之神,怀肃杀之气,有清白之风,为文章利口,不世之才,然更各以亲疏休旺定遇者之情性祸福。

[甲子乙丑海中金]

海中金者,宝藏龙宫,珠孕蛟宝,出现虽假于空冲,成器无借乎火力,故东方朔以蛤蚌名之,良有理也。妙选有珠藏渊海 格,以甲子见癸亥,是不用火;逢空有蚌珠照月格,以甲子见己未,是欲合化互贵。盖以海金无形,非空冲则不能出现,而乙丑金库,非旺火则不能陶铸故也。如甲子见戊寅、庚午,是土生金,乙丑见丙寅、丁卯,是火制金。又天干逢三奇,此等格局,无有不贵。

[壬寅癸卯金泊金]

金泊金者,润色杯盘,增光宫室,打薄须借乎别金,描彩必假乎水力。此金甚微,非木则无所依。以平地为上,有此不宜 见火,有火主夭。遇太阳为日间之显,二火相反,不宜同见。山下、山头,有清水助之,亦吉。惟忌炉火,就位相克。此金体薄,不能反源定夭,限运同论。井泉、涧下、天河水清,日时喜见,须月令有木,方吉;溪流、大海水浊,见溪流主漂荡,见大海无木为基,主凶残。金遇剑锋、钗钏,可以装饰,有辅成造化之理,故喜见;砂海、白蜡无益,有火济之,亦吉,无则终凶。城头、壁上二土有靠安身,城头多主寄人,壁上加木则贵,再遇灯火辉光照耀,主权贵。丙戊土中藏火,干支却不宜太炎,亦为贵格,考妙选。金命而遇戊寅,昆山片玉格也;癸卯而遇己卯,玉兔东升格也,与前海金同。

[庚辰辛巳白蜡金]

白蜡金者,昆山片玉,洛浦遗金,交栖日月之光,凝聚阴阳之气,形明体洁,乃金之正色也。此金惟喜火炼,须炉中炎火。然庚辰见之,若无水济,主贫夭,辛巳却以贵论,缘巳是金生之地,见丙寅化水逢贵故也;山下火生早,主荣贵,亦须水助方得。井泉、大溪俱为贵格。庚官在丁,辛官在丙,故庚见丁丑,官贵俱全;辛见丙子,不如癸巳更清,不贵即富。论中见木,逢多无益,以此金不能相克。若柱遇无气之火,却要木生,有禄马贵人方吉。见土只宜磨砌,方成器物,则吉,别土无用。金忌海砂,为汨没,日时逢火则荣。若见清金,加水相助,火亦不爱,只怕冲刑。妙选有哨风猛虎格,以此金日时遇辛巳或乙巳是也。

[甲午乙未砂中金]

砂中金者,刚形布地,宝质藏砂,直教陶洗为珍,必须因人始贵。此金非炉火则不能制,但甲午见丙寅,寅中火生,寅午 合局,柱无长生之土则燥,更值木助。主疾夭;丙午纳音虽水,而支干纯火,加逢尤凶。山头、山下、覆灯三火既有木生,克制此金,又须清水济之,决主少年荣贵。戊子、己丑龙火相逢,子午有交媾之妙,甲己有合化之理,主贵,杂以凡火则不为奇。水惟宜井泉、涧下、天河,清静则吉;长流、大海,动而不静,并见则金泛不安;海水尤忌,见木有何关係?火衰却喜生扶,更有禄马贵人互换朝拱为上,如柱无火,逢一二木则危。若甲午见己巳,是谓采精金于黄碛,乃贵格也;金生于砂,得造化则吉,若更逢砂土,反有埋没之忧;路旁、大驿亦有所忌,有火庶几;城头戊寅,乙未喜见,谓之采精金于青沙,乃贵格也。唯丙戌之土中藏火库,乃喜见之金,为同类最喜,清气为上。海中,白蜡有火制亦得。

[壬申癸酉剑锋金]

剑锋金者,白帝司权,刚由百炼,红光射于斗牛,白刃凝于霜雪。此金造化,非水不能生,大溪、海水,日时相逢为上格;井泉、涧下,有霹雳助或得乙卯之雷方好,若无雷雳,亦金白水清格也。秋生更吉,日时遇长流在壬辰,为宝剑化为青龙,癸巳亦得。此剑不能通变。然癸丑为剑气冲头,最吉。松柏、杨柳亦吉,但多聚散;大林、平地嫌有土制,主劳苦。火见神龙,阴阳交遇,如壬申逢己丑、癸酉逢戊子,方为上格。遇天上、炉中二火,无水救则夭。诸土见皆不吉,以其埋没,只壁上、城头有磨锋淬砺之用,此二土则可。金喜同类,如壬申见壬申,癸酉见癸酉,有木制之,是谓盘根错节,所以别利器也。无木主带疾。大抵剑锋乃金之最利者,只宜水,不宜火刑,如见寅己三刑,全者大凶。

[庚戌辛亥钗钏金]

钗钏金者,美容首饰,增光腻肌,偎红倚翠之珍,枕玉眠香之宝,此金藏之闺阁,唯宜静水,井涧、溪流,见之皆吉,多 见则泛,海水贫夭;天河辛亥见之无妨,丙午真火,庚戌所忌,以午戌凑成火局,有伤此金故也。太阳火日生显耀,覆灯火夜间显耀,故皆宜见,但甲辰乙巳与庚戌辛亥相冲,阴阳交见为妙,戊子己丑与丙午丁未相持,二火忌叠,见之非贫即夭。炉中火庚戌最忌,辛亥见之,丙辛化水,稍吉。山下、山头俱不宜见。若有水济,亦可。柱中有水,此金入于匣中,有福贵方吉。土见砂中,相生相养,更有涧下水助,荣华富贵。

[戊子己丑霹雳火]

霹雳火者,一缕毫光,九天号令,电掣金蛇之势,云驱铁马之奔。此火须资风水雷方为变化,若五行得值一件,皆主亨通。如日时见大海,癸亥为引凡入圣,己丑为上,戊子次之;见大溪,乙卯为雷火变化,己丑为吉,戊子忌之;辰巳为风运 中,遇之尤佳;天上水名为既济,主吉,遇之者禀性含灵,聪明特异,长流无用,涧下虽就位相克,此神火也,不忌,有风亦显。五行见木,辛卯有雷,大林有风,平地有天门,与此火相资,馀木无用。土见路旁,加巽则吉,砂中,丁巳有风,己卯有雷,得泉助之,亦主贵显。剑金加水,海金遇风,蜡金逢涧,皆吉,余金无用。见炉中丁卯为吉,戊子逢丙寅,太燥性凶,主夭。己丑见丙申却得,戊子忌之;灯火,东南巽地,有风最宜;戊午己未天上火,日时遇之,防刑克。再考妙选,有烈风雷雨格,即霹雳见天河是也,有天地中分格,即戊子见戊午是也,有雷霆得门格,即戊子己丑日时遇卯是也。

[丙寅丁卯炉中火]

炉中火者,天地为炉,阴阳为炭,腾光辉于宇宙,成陶冶于乾坤。此火炎上,喜得木生,惟平地之木为上,以丙寅见已亥,谓之天乙贵,见戊戌,谓之归库,故吉,丁卯次之。然丙寅火自生,无木庶几,丁卯火自败,若无木则凶,且此火以金为用,更得金来,方应化机,但丁卯无木而更遇金,主劳苦之命。夫寅见木多火,炎而无水制,主夭,卯见三、四木不妨,如庚寅辛卯就位相生,壬午癸未化为真火,寅见之多主凶暴或疾夭。若天地原有水制,亦主中寿,丁卯无妨。此火虽喜得金为财,内剑金寅见之稍可,丁卯火既自败,又到申酉而死绝,如何能克!非贫即夭。海中、砂蜡诸金,须资木生,方喜见之,钗泊无用。见土须先有金与木,却喜土以宿之,不至太燥。如城头、屋壁皆成器之土,方好见水,命中先爱木,不然火多喜逢之。天上清水,寅命遇之为吉,卯中无木则嫌;大海,丙寅见壬戌为福库,见癸亥为官星,带合半凶半吉;井涧、溪流皆凶,有木不在此论。火见同类,若日月上衰败则吉;霹雳火本自无益,若得木生,更日时有海水则宜,无木遇水,凶;天上火须有屋土遮之,灯火巽风,又为鼓舞,亡神须兼造化,断如丙寅、丁酉、已酉、丙寅火为无气,不失大贵,如丙寅、甲午、己已、丙寅则漂泛不安。

[甲辰乙已覆灯火]

覆灯火者,金盏光,玉台吐豔,照日月不照之处,明天地未明之时。此火乃人间夜明之火,以木为心,以水为油,遇阴则 吉,遇阳则不利。凡日时最忌再见辰已,地支有冲,恐风吹灯灭,主夭。或以戌亥,子丑为阴,或以自未至亥为阴。五行见木为根本,凡木皆好,更得官星、禄贵相扶,干头化水,尤吉;限运遇相助,主大贵。水以井泉、涧下为真油,长流假油,妙选有暗灯添油格,即此理也;大海、河水则不可以为油,遇者主寻常。大凡此火,见水须资木,不喜长生旺气,水太泛,反凶。命值泊金照耀,最为清贵,亦须水木相资,方能显达;砂中、钗钏二金皆吉;剑锋一金,谓之灯花拂剑,尤吉;蜡金不宜。五行见土,须防克破。若壁土可以安身,屋土可以覆庇,日时并见,主福贵,砂土有木,亦主衣食,馀土无用。火爱同类,却怕风吹。霹雳为龙神变化之火,必带风来,此火难存;天上、炉中二火相见,最凶。再考妙选,有魁星格、指南格,以甲辰生人,日时遇午未为是;有火土入堂格,以此火怕风,日时遇丙戌丁亥屋上土,则灯在屋中,更得添油,尤贵。

[戊午己未天上火]

天上火者,温暖山海,辉光宇宙,阳德丽天之照,阴精离海之明,戊午为太阳则刚,己未为太阴则柔,或以为夏日则刚, 冬日则温,诬也。俱要戌亥为天门,卯酉为出入之门,东南为行陆之地则吉。此火见木谓之震折,要日时有风与水方得。大林木有辰已,松柏、石榴有卯酉,故惟此三木主贵。午见木多犹可,未三、四木,劳苦之命也。见金且能照耀,不能克济。钗金有戌亥,泊金有寅卯,主吉;剑金为耀日月之光,必主少年登第;余金则殃。水宜涧下,须戊午见丁丑,已未见丙子,阴阳交互,方为福贵,柱中更有木滋生,富贵双金;大溪有乙卯,井泉有已酉,出入得门,皆吉;天河雨露相济,不以就位克论,戌午见丁未,亦吉,丙午则不明。火爱灯头,再有别火则燥;霹雳带云雨则日月无光,故主昏蒙;炉中午忌丙寅,以午为刚火,才见丙寅,便为火生之地,若无清水解救,主犯刑凶死,丁卯稍可;土见砂中,有巽风相假;路旁、城屋皆吉,柱中更有金木相助,尤吉。考妙选,戊午遇卯,已未遇酉,为日月分秀格,而卯以乙卯、辛卯为正,已卯、丁卯次之,酉以乙酉、癸酉为正,已酉、丁酉次之;有日出扶桑格,即日分秀,再见已午日时;有日轮当表格,以戊午生于午,日逢已午日,又以戊午见戊子为坎离正位;有月生沧海格,即月分秀,而酉得乙癸是也;有月照寒潭格,是取壬癸亥子,纳音属水为潭,然必秋生为贵;有月桂芬芳格,是已未生人,柱有三、四木拱集,与桂林一枝,同桂林以少为贵,芬芳以多为贵,义各有所取也。再考凶格中,太阳损明,戊午不禁于水溢,是嫌水盛;太阴薄食,已未岂堪于土多?是嫌土重也。须如是并参,方尽其理。

[丙申丁酉山下火]

山下火者,草间熠耀,花理荧煌,寒林缀叶之光,隔幔点衣之彩,方朔以荧火名之,故妙选有荧火照水格,遇秋生则贵, 为卿监,是以此火喜水,地支逢亥子,或纳音水更逢申酉月是也。或以山下之火最喜木与山,更得风来增辉为贵,又不以荧火论矣。大林木有辰已为风,桑柘木有癸丑为山,松柏平地最吉,更得风助,主贵,若风多吹散,主夭。水爱井泉、涧下,有木相资,主爵位崇显,大海水不宜,然有山亦应贵格。寅卯为东方木旺火生之地,只甲寅水吉,乙卯为震,有风,见之不佳。若无火无山,更加霹火,主夭。天上水为骤雨,此火不宜相见,若先得山水滋助,亦无大害。命里有金,以清秀为吉,无木多逢,以窃气论之。乙丑为山,主贵;余金若无克破,遇贵人禄马,只以财论。土见砂中,辰已有风,若有木有山加助,主大贵,无则虚名。火忌太阳,霹雳、灯头,是巽主光显大都。五行有火,须资木则吉,限数喜忌,俱依此断。

[甲戌乙亥山头火]

山头火者,野焚燎原,延烧极目,依稀天际斜晖,仿佛山头落日,此乃九月烧荒,衰草尽烬之火也。大概宜山木与风木, 喜大林、松柏,以辰已有风,寅卯归禄,更得癸丑为山上木,主贵。无山则木无所依,火无所见,纵有风亦不光显,馀木无用,只以禄马看。水宜涧下,多为交泰,主吉,井泉清水,有木助之,亦吉;大溪,甲戌见甲寅,乙亥见乙卯,却真禄俱吉;天上须有雨露,而火到午未得地,再得清水济之,不至于燥,主福,不然则夭;大海就位相克,最凶,有山逢之,稍得。日时见金为财,须有山木助之则吉,无则凶。见土惟砂中有巽,能扬此火,别土无益。大凡此火无木见害,多是下贱之命。见火炉中太炎,霹火凶害,太阳昏蒙,山下战刑,皆所不宜,命带二、三火,如限数逢木,主祸生不测,或夭,大都此火大怕刑冲。

[壬子癸丑桑柘木]

桑柘木者,缯彩基,绮罗根本,士民飘飘之袂,圣贤楚楚之衣,此木供蚕为弧,其用甚大。最爱砂土,以为根基,又以 辰已为蚕食之地,不宜刑冲互破,路旁、大驿二土次吉,馀土无益。水喜天河,为雨露之滋,长流、溪涧、井泉诸水皆可相依,亦须先得土为基,更加禄贵为妙,沧海水漂泛无定,无土主夭。见火灯头最吉,亦以辰已之中为蚕位故也;炉中位居寅卯,木之旺地;天上、霹雳二火与此木干支有合化之情,有坎离交媾之妙,俱吉,但诸火不宜叠见。以金言之,砂中第一,剑锋能修整此木,为次,钗泊二金须得土为基,如逢衝破,又凶。木喜庚寅辛卯,为以弱就强,以小变大,作贵格论,纵无砂土,亦吉;平地、石榴,无土则凶;大林乃东南蚕食之位,有土资生,主大贵;遇杨柳为桑柳成林,亦是贵格,须生春夏方吉。

[庚寅辛卯松柏木]

松柏木者,泼雪凑霜,参天覆地,风撼笙篁之奏,雨馀旌旆之张。此木藏居金下,位列正东,乃为极旺,最喜山为根基, 水为滋润。天河雨露之水可以滋润,涧下丁丑属山,可为根基,丙子不如大溪有乙卯为雷,可以发荣,却嫌风霹,有损折之凶;大海水有山则吉,癸亥清静无山,亦吉。若柱有平地,得屋土,则为已成栋梁,无用山水。无此二件,乃山间之茂木也,须要山水。命中有火,最忌炉中,就位相生,再加风木,灰飞烟灭,五行无水,主夭折;山头、山下、太阳、覆灯皆不可犯;寅人尤忌戊午、丙寅,以木不南奔,寅午三合火局故也,辛卯无害;霹火虽可滋生,运加凡火,主凶。土见路旁,似无足贵,若无死木,其福还真;驿土无山贫夭,更加海水,尤凶。金逢乙丑,为印为山;泊金就位自旺,主吉;剑锋能削能斫,更得壁土相成,松柏相资,主贵。大林有风,杨柳会火,二木最忌;桑柘癸丑为山,可以相助;石榴是辛酉金反化死木,有造化,却吉。妙选有苍松冬秀格,是以此木生人月日时属三冬为贵;有日合辛卯、日值庚寅二格,虽取戊午已未,生居夏秋,然专论此木为贵。

[戊辰己巳大林木]

大林木者,枝干撼风,柯条撑月,耸壑昂霄之德,凌云蔽日之功。此木生居东南,春夏之交,长养成林,金假艮土为源, 癸丑为山,三命无破陷,最为福厚权贵,戊辰为上,己巳次之。土遇路旁,为负载,戊辰见辛未为贵,己巳见庚午为禄,主富;壁、屋二土,再得剑金,则大林之木取为栋梁,成格最吉,无此乃山间茂林之木也。此木无论死活,皆欲见土,如己人见甲,虽云化土,然不如辰戌丑未,土局纯金为妙。若此木已死在山之下;见甲戌乙亥烧之,主凶夭;灯火就位相生,乙巳不如甲辰更吉;霹雳、太阳二火皆能长育运中,遇之亦吉,然二火嫌并见,持胜须有土为根基方可。水见天河,戊辰见丁未带贵,虽无土与山,亦主有衣食,即灵槎入天河格也,生秋冬死绝方是;溪、海二水重见,主贫夭,有山稍得。妙选有苍龙驾海格,是戊辰见癸亥为贵,涧下丁丑最吉,丙子不如。诸金俱不宜见,海中有乙丑为山,剑锋得屋壁为本,余金无用,逢之主夭贱。木喜桑柘,唯癸丑最妙;平地还须得路旁土,谓之平林在野;松柏,东方生旺之地,柱有癸丑而得松柏为密荫,最佳。

[壬午癸未杨柳木]

杨柳木者,隋堤嫋娜,汉苑轻盈,万缕不蚕之丝,千条不针之带,午未木之死墓,壬癸木之滋润。此木根基唯喜砂土,见 艮山则依倚摇金,遇寅卯东方得地;辛丑有山,庚子不如;戊寅虽吉,已卯尤胜;丙辰丁已却嫌戌亥对冲;若见大驿,有 丑为山边之驿,稍可,无丑独见此土,主夭贱;路旁就位,複值死墓,日时遇之,主人卑弱;屋土壬午见丁亥,丁壬合化则吉,丙戌不如。水见井泉、长流、大溪、涧下皆吉,中间又分合化之位,尤吉。丙午丁未,丙丁真火,午未亦火,此木至午未死墓,壬午见之,大凶,癸庶几有别,水济之无害;此木午未已自有火,更见别火,恐引起伤寿,灯头乙已有风木折,主夭;炉中寅卯本位,木旺反吉;霹火如壬午见己丑,癸未见戊子,阴阳交遇,更有砂土为基,主贵,若子午丑未对冲则不为吉。金见木无造化,钗钏、金泊却喜成功,海、蜡、剑、砂虽忌见之,其间轻重当以禄贵德煞,参祥见松柏木,为脱体化神之格也,主贵。桑柘癸丑为山,作倚傍成林,主吉;庚申辛酉木既死绝,又逢金克,以弱遇小,其人必贱。妙选有花红柳禄格,是以此木遇石榴,生于春夏,不以贱论;有杨柳拖金格,是以此木生于三春而时得一金,辛亥、甲子、癸卯、辛已最妙,乃壬癸禄贵之地故也。

[庚申辛酉石榴木]

石榴木者,性辛如薑,花红似火,数颗枝头,累累多子,房内莹莹,干支纯金而纳音属木,乃木之变者也。可以移盆内而 妆做山,故喜成器之土,以为根基,城头为上,屋上次之,然必阴阳交见,则丙辛丁庚互官,戊辛已寅互印,主吉;路、壁、驿、砂四土有山助之,亦吉,若无何用?见金砂中最吉,泊金干支水木而纳音金,榴木干支金而纳音木,皆脱去本性而互换归旺,以木旺寅卯,金旺申酉,各得其位,谓之功侔造化格,主大贵;海中乙丑为山,更逢水助则吉,或壁上,城头,亦得剑锋,就位相克,最凶,若先有砂金,能制其毒,亦不为害。水见天河,雨露相滋,井泉、溪涧,清水浇灌,大海太泛滥,非贫则夭,有艮土稍得。太阳、霹雳二火虽喜,不宜并见;炉中寅卯旺位,本吉,再加别火则凶。若此木生于五月,日时止带一火,谓之石榴喷火,主贵。桑柘、大林、杨柳三木皆喜见之,见大林戊辰脱体,见杨柳花红柳绿,皆主功名;见桑柘癸丑为山,见松柏则强,见平地则大,若无别物夹杂,则禄绕红围,亦主富贵,如得城土为基,水运为助,享福优游,最为长久。

[戊戌己亥平地木]

平地木者,初生萌蘖,始发枝条,唯资雨露之功,不喜雪霜之积,此乃地上之茂材,人间之屋木。戊戌为栋,已亥为梁, 最宜互换见之,须以土为基,土爱路旁,为正格,更逢子午,尤贵,以子午为天地正柱故也;屋、壁、城头三土以此木相资,中间有升化,尤吉;砂、驿无用,日时见之,主灾;太阳、霹雳,最为显耀,炉中遇水则福,灯头无风则固,余火无水则凶;此已成之木,不宜剑金,有木相资则可;泊金增饰光辉,又天干合,地支旺,更有旁土为基,主大贵。余金无用。水见天河,为润泽,主吉;溪、海无山俱凶;井泉、涧下虽吉,内甲申合丁丑为山,遇之尤吉。木见大林,有风摇动,主寿促;桑柘癸丑最吉,壬子己亥人见之为贵,戊戌人不堪;松柏木倚辅平地为栋梁,更有土助,主贵。大抵此木恶金而喜水、土,若生三冬时,得寅卯为寒谷回春,亦贵论也。

[庚子辛丑壁上土]

壁上土者,恃栋依梁,兴门立户,却暑御寒之德,遮霜护雪之功。此乃人间壁土,非平地何以为靠?子午,天地正柱,逢 之尤为吉庆。凡见木皆可为主。庚寅辛卯亦是栋梁,只申酉衝破,子卯相刑;大林有风,若无承载之土,加凡火,主作事难成,贫贱而夭。土爱路旁,谓之负载,屋上、城头可以护身,皆吉。见火全无造化,太阳、霹雳虽云照耀,到底蹇危,若命先已见木,遇火助,鬼焚克运,再逢之,主祸患夭折,柱有水救济,稍得。水见甲申为最吉,乙酉次之;天上雨露,亦吉;大海漂泛,此土何安?纵有根基,亦凶。金唯爱泊金,命里先有木神则贵,以其成宫室而金碧辉煌,非朝廷不敢用也;剑金伤害,余金无用。

[戊寅已卯城头土]

城头土者,天京玉垒,帝里金城,龙盘千里之形,虎踞四维之势。此土有成有未成,作两般论。凡遇见路旁,为已成之土,不必用火,若无路旁,为未成之土,必须用火;大都城土皆须资木,杨柳癸未最佳,壬午则忌;桑拓癸丑为上,壬子次之;庚寅辛卯就位相克则城崩不甯,何以安人也耶?如见木无夹辅,只以贵人禄马论之。见水有山为显贵,甲申、丁丑俱吉,天河滋助,亦吉,唯忌霹雳、大海,壬戌不忌,合化俱以吉。推土爱路旁,防见诸火,大驿逢山,须作贵观,若独见无根本,贫夭孤寒。五行见金,只有白蜡,怕巽,二者相妨,余金无用,亦须以贵人禄马看之。

[丙辰丁巳砂中土]

砂中土者,浪回所积,波渚而成,龙蛇盘隐之宫,陵穀变迁之地。此土清秀,唯喜清金养之,更得犯淨之土,主早贵; 钗、砂、剑、泊此四金清秀相助,如丙人见辛亥为丙丁入于乾户,号曰驾海长虹,又有星拱北之论,皆贵格也,更得水相涵,尤为上吉,若无水而时日得天上火照,亦可,如丙辰乙未癸酉戊午,此命有二金资养,却全无水,得太阳火照,故贵;如丁巳癸卯己未壬申,此命二金资养,得天上火照,亦贵。然戊午太燥,己未稍缓,寿夭不同。水以井涧清洁为吉,若有金以养之,贵;如此土已得金养而日时有海水便坏造化,癸亥轻清,丙人见之限运,逢亦主显荣,余水无用。火喜太阳,在格号为朱雀腾空,主贵;山头、山下、炉中,覆灯诸火若无水济,主寿夭。木爰桑拓、杨柳,以此土能载二木故也,馀木却以禄马贵人参之,如日中刑破冲克之木,虽见之有何造化?不如无为吉。五行最忌土相刑,路旁安身,有金木资生,亦主福庆;大驿往来,最不宜见,纵有金水亦凶,余土尤不为吉。

[庚午辛未路旁土]

路旁土者,大地连途,平田万顷,禾稼赖以资生,草木由之畅茂。此乃火暖土温,长养万物之土也,故须假水为先,乃灌 溉滋润之论,次第尤宜水化为妙,更得金来相助,则禾稼成实。如庚午见甲申,辛未见乙酉为禄,若无衝破,主早贵;天上水雨露相滋,庚午喜见丁未,辛未喜见丙午,为官贵禄合之妙;涧下庚午见丁丑,贵禄交驰,辛未见丙子,化水逢生;大溪乙卯为雷,能发生,此土又乙庚合化,故皆主吉;长流、大海二水以其不能浇灌,此土故最忌之,主凶夭。火逢霹雳,庚午见己丑,贵禄交穿,辛未见戊子,印贵朝阳,皆吉,天上火就位相生,太燥则土反不能生物,有水润之始得,若独见,主夭;炉中火亦燥,亦主妨寿;灯头有屋土,方应造化,名超凡入圣,不然亦凶。见木可以发生,然有贵人禄马则吉,刑煞冲破则凶。只有庚寅木,此土逢之大好,大林不能胜载,如土位见丙辰、丙戊、辛丑、辛未,皆吉;若庚午见辛未,辛未见庚午,为二仪贵偶,无有不贵。钗钏、砂中二金可以滋助,清水金水并见,大吉,若命已见水,无金运,遇此金亦福;乙丑海金可为山论,若得天河清水助之,庚人大好。妙选有金马嘶风格,以庚午、甲午生人得辛巳时;有马化龙驹格,又以午生人见辰时;有哨风猛虎格,以庚辛生人得辛巳、乙巳。俱以贵论,而水、火、土、金似不相拘。

[戊申己酉大驿土]

大驿土者,堂堂大道,坦坦平途,九州无所不通,万国无所不至,此乃位属坤方,德乃厚载,轮天转日,负海乘山之土也。发生万物,以木为基。戊申,长生之土,德厚无疆,见三、四木皆能滋生,己酉,自败之土,木多则窃气;大林合中逢冲,主夭,别木则吉,更以禄贵参之。井泉、涧下二水清贵不燥,如戊申见丁丑或乙酉,己酉见丙子或甲申,谓之官贵,主吉;天河丙午而己酉得之,丁未而戊申得之,亦为贵禄,主福;长流戊申见癸巳,己酉见壬辰,亦吉,多逢则不宁静;大溪乙卯为东震发生之义,单见亦吉;海水对穿,土不能胜,日时遇主夭,得山稍轻,内戊申见癸亥,戊癸合申亥,为地天交泰,反吉。火见太阳、霹雳,谓之圣火,最能发生,此土如逢水助,主显达,其于凡火,再逢木生之,更燥,主凶夭。五行见土,唯路旁最宜,屋上、壁上、砂中纵先得木,亦为泯绝,城头有水,稍吉。命若有金,清秀,吉;钗钏得辛亥,金泊得壬寅,戊申遇之,柱中更加水助,乃地天交泰,水绕山环大格,主贵,己酉见庚戌、癸卯稍次;砂金造化亦同,剑金须候木得用,不然无益。

[丙戌丁亥屋上土]

屋上土者,埏埴为林,水火既济,盖蔽雪霜之积,震凌风雨之功,此土瓦也。非木无以架之,故以木为根基,平地为上, 大林次之,馀取天干化木,亦吉,只怕衝破。此巳城之土,不宜见火,炉中丙寅最凶,丁卯稍可;太阳、霹雳可取相资;山下、山头,有木生之则祸;灯头丙戌见乙巳为上,丁亥见甲辰次之,谓之火土入堂格,若柱中木多,亦不为吉。水宜天河、井泉、涧下,皆吉,如先得平地木成格,大贵;溪流无木多夭,若丙戌而得癸巳,丁亥而得甲寅,则又别论,再看日时所成造化何如;大海无山则不宜见土。土见路旁,如丙戌得辛未,丁亥得庚午,阴阳互见,更假木为基,主贵;壁土亦宜;馀则汨没。若缺木而三刑聚,纵是二土亦凶,砂土独丁已不妨。金唯剑锋、钗钏最吉,丁见壬申,天干化木,地支乾坤清夷,丙见辛亥,天干化水,地支丙入乾户,皆大贵格,若丁亥见庚戌,丙戌见癸酉,则不为吉;泊金有粉饰之用,亦吉;余金无用,当以贵禄参详。

[丙子丁丑涧下水]

涧下水者,山环细浪,雪涌飞端,相连南北之流,对峙坎离之脉。此水清澄,喜见金养,砂中、剑锋二金最宜。钗钏庚戌 丁丑不宜,以丑戌相刑,辛亥见丙子则丙辛化水,尤贵;馀金以禄贵参之,取其资生,恶其衝破。见木一位不妨,二三则主劳苦,亦以贵人禄马参之。命中见土,主人多浊天元,若木或化水,则主清吉;砂中、屋上二土,其气稍清,路旁、大驿则浊甚矣,主财散祸生,如辰、戌、丑、未土局,其凶尤甚,以水浊土浑故也。火见太阳,虽炎,中间有既济未济之论;霹雳就位相争,最所不宜。若二火拼论,无金资助,主荒淫,有金别论;山下、山头亦吉,若并临,时日则嫌。命中遇水,反成漂荡,见天河为引凡入圣,见大海为福贵朝宗,皆吉,独丁丑见壬戌,则丑戌相刑,丁壬淫合,主风声不雅;大溪性急,长流不静,皆不为吉,大抵此水须以多为主,而无火土夹杂,再得甲寅乙卯之水,则源远流清,真君子人也。

[甲寅乙卯大溪水]

大溪水者,惊涛薄岸,骇浪浮天,光涵万里之宽,碧倒千山之影,最喜有归有养,遇坎则为有归,得金则为有养,所嫌者,日月时中,有申酉衝动,或辰已风吹,主飘流;井泉水淨而止,涧下有丑为艮,天河沾润,大海朝宗,此四水皆吉;长流有风,独不宜见。此水以清金为助养,唯钗、砂最宜,蜡金亦清,若有钗金对冲则不宜;海中虽无造化,甲子属坎,乙丑为艮,乃归源之地,亦吉;泊金最微,不能相生,岂有超显之理?剑金虽化于大溪,却忌卯雷巽风,主性不定。五行有土,皆为无益,屋上、城头壅阻此水,路旁稍可,亦不为奇;壁上独辛丑为山,大驿唯己酉有合,戊申则冲,庚子则刑,皆不为吉。火见太阳,虽假照耀,霹雳尤忌相逢,若二火互见,主贫,单见别论。木见此水,徒被漂荡,唯桑拓木壬子有坎,癸丑为山,为水绕山环之贵,内甲寅人见壬子吉,乙卯人见癸丑吉;馀木以禄贵参之,尤忌衝破。

[壬辰癸巳长流水]

长流水者,混混无穷,滔滔不竭,就下必纳于东南,顺流自归于辰巳。此水喜金生养,金要白蜡、钗钏,以天干有庚辛真 金,地支辰巳就位相生,戌亥为归源之地;剑锋纯是金水,泊金水木居东,皆以吉论;海中,砂中无取。嫌土蹇涸,而土有堤防之用,六土之中,取庚辛丙丁为吉,戊己无用。遇火则相刑,而有既济之妙,内壬辰喜见丁卯、丁酉,癸巳喜见戊子、戊午,以天干合化故也;灯头癸巳尤喜见甲辰,山头壬辰尤喜遇乙亥,化龙归禄,取义更佳。逢木虽漂泛,而桑拓癸丑为山,杨柳癸未为园,年时得此水围之,为水绕花堤,大贵格也;松柏、石榴,天干有金相生;大林、平地,虽嫌有土,而癸巳见戊辰,壬辰见己亥,俱吉。水为同类,涧下则丁壬合化,天上则雨露相资;井泉、大溪无益;海乃衆流所归,而壬辰之龙得癸亥则龙跃天门,春夏秋生为吉,或龙潜大海,则冬生乃宜,柱中须先得金为妙。又壬辰为自印之水,再见壬辰则刑,刑则自害,见戊戌则冲,冲则泛滥,主凶;癸巳,自绝之水,名为涸流,若遇丙戌、丁亥、庚子、辛丑之土,其涸可待,柱中如得三合生旺之金生之则吉。

[丙午丁未天河水]

天河水者,乱洒六野,密沛千郊,淋淋泻下银河,细细飞来碧落,此乃天上雨露,发生万物,无不赖之。银河之水,土不 能克,故见土不忌,而且有滋润之益;天上之水,地金难生,故见金难益,而亦有涵秀之情;生旺太过则为淫潦,反伤于物,死绝太多则为旱干,又不能生物,要生三秋得时为贵也。水喜长流、大海,内丙午宜癸巳、癸亥,丁未宜壬辰、壬戌,阴阳互见,尤吉;大溪乙卯为雷,井泉己酉为贵,俱以吉论。火喜霹雳,为神龙之火,与此水相济。而倏忽变化,云行雨施,岂有不贵?炉中火旺,大海水旺,如柱中得二火二水,上下上相济,谓之精神俱足,大贵格也;灯头有风,山头有贵,皆以吉论,又须以别水济之方吉;天上就位相克,则忌见之。木石榴、杨柳俱吉,大林有巽,平地有亥,亦吉;松柏、石榴遇丙辛合化,亦以吉论。妙选有灵槎入天河格,是取死绝无根之木,柱无土培则漂流天河是也。土虽不能克,而柱逢庚午辛未,就位相克,土壅水滞,或水又冬生,则水结池塘,必主浊滥;馀土如砂中、屋上皆吉,城头,大驿无用,壁上对冲,亦坏造化。水、金虽不能生,独辛亥钗金却属乾天,水在天上,只此最吉;余金亦取天干有庚辛、壬癸者为用,甲乙无益,再以禄马贵人参之始得。妙选又以水生人得庚子、壬子为云腾雨施,生春则旱,夏则潦,冬则寒,独三秋最吉;遇甲辰乙巳、庚辰辛巳,柱中有壬为云,有辰为龙,为风雨作霖;若生冬月,是为霜凝薄露,日时喜遇寅卯温和之气,可解斯冻,俱贵格也。

[甲申乙酉井泉水]

井泉水者,寒泉清冽,取养不穷,八家凿之以同饮,万民资之以生活。此水生于金而出于木,故喜见金为福,砂中有土, 性与之最宜,钗钏清秀次之,蜡金与钗金相冲,故不宜再见;剑锋申酉太旺,恐有泛滥之灾;海金无取,乙丑为艮,山下出泉,亦吉。此非木不能出,譬之桶论,故见木皆吉,如见平地、大林,须假剑金削之,方可取用;桑拓、杨柳无用;松柏则互换归禄,此其最吉。诸火阴阳互见则吉,霹雳名为入圣,太阳号为显照,二火相见最吉,但不宜并有则凶。诸土路旁、砂中最吉,屋上有天门生水之源,亦吉;城头,壁上与此水则无干涉;大驿就位相克,水为土掩则井不食,须有木去之方可。水喜大海,为引凡入圣;天上、涧下、长流亦不为在灾;大溪甲寅乙卯为吉,如甲申见乙酉,乙酉见甲申,官星互换,最吉;如二水在年时,二木在月日,谓之水绕花堤,乃贵格也。

[壬戌癸亥大海水]

大海水者,总纳百川,汪洋无际,包括乾坤之大,升沉日月之光。此水原有清浊,以两般分论:壬戌有土气为浊,癸亥干 支纯水而纳音又水,故清。壬戌人嫌山,以土气太盛,有金清之方吉,癸亥最喜见山,然后海水之性始安;涧下丁丑为山,天河与海上下相通,柱中有木为槎则乘槎入于天河,极为上格;长流、大溪等水毕竟皆归于海,以海水不择细流,故能成其大也;壬辰为龙归大海,尤吉,中间又分阴阳互见,干支合化方可;井泉则有所制,与海不通,故不喜见之。诸金独海中第一,以壬戌癸亥喜见甲子乙丑;砂中亦得,余金又当以贵人禄马参之。火喜天上,与海水相为照耀,最吉;霹雳己丑为山,戊癸合化,柱得木火旺地,亦吉;山下、山头、覆灯诸火不宜见。木唯壬子癸丑、壬午癸未俱吉;大林有风衝动,水性不安;平地厚载,则就位相得;松柏、石榴若无土制则漂泊无定。土爱路旁、大驿,唯此二土足以振之不泄,况癸亥见戊申为天关地轴大格,日时遇此厚土,纵有风雷,亦不为害;城头己卯须资艮则吉,如逢霹雳,则雷火变化,海水汹涌,亦主贫寒。六十甲子纳金取象,其十干有可以为金,有不可以为金者,虽因所值之数不同而五行类化类从之妙,其理亦不可不知。如甲乙、庚辛、壬癸,此三行者可以为金,而丙丁、戊己不与焉;庚辛原金,固为本家之物,壬癸非金也,又胡为金?此金水相生之理,而水亦可以为金,故世有水碧金明之物;甲乙之木,其质坚强,世有木化为石者,可以例见,故此二者可以取象为金,与本家之物同也。丙丁属火,燥刚不同,戊己属土,柔刚不同,与金相反,自不可以金论。戊己庚辛壬癸此六干者可以为木,而甲乙丙丁不预焉。以丙丁原火,所以焚木,自不可取;甲乙原木,胡不取之?殊不知五行中金还金,水还水,火还火,土还土,独木则变,以木资火、水、土之性,假合而生,脉绝而枯藁则还水也,灼之为火则还火也,腐之为土则还土也。故不用木,所以脱体而化神也。六甲轮环,所值之数,五行错综,所得之理,自可以默识矣。凡木皆水所生,其津液即水也,故壬癸可以为木,庚辛之质,其坚与甲乙同,故甲乙可以为金,而庚辛可以为木,互换交通,其理亦无二也。丙丁、甲乙、壬癸取象为水,以壬癸原水也,丙丁其化也,甲乙之津液即为水也;戊己之土所以克水,庚辛之金所以燥水,气有异也,自不可以水论。甲乙、丙丁、戊己取象为火,以丙丁原火也,戊己其化也,甲乙之生燃即火也,壬癸之水所以克火,庚辛之金所以燥火,类不同也,自不可以火论。丙丁、戊己、庚辛纳音属土,戊己原土也,丙丁之火化而为灰,灰即土也,庚辛之金混于土中,乃土之精气所结,故皆可以为土。若壬癸之水润下不凝,甲乙之木散上不止,自不可以土论。究其取象,有轻重,有大小,有刚柔,有气味,有体质,有功用,各各不同,此又兼地支方隅之位,旺相休囚不同,而干天之所值或从本象,或从化象,或从别象,天人交尽,其理生克,互成其义,此金所以有海中、砂中、金泊、白蜡、剑锋、钗钏之别,而金之象无余蕴矣,馀木、火、水、土可以例见。此纳音取象所以为造化之妙也与!

6. 论天干阴阳生死

或问:十干有阴阳、刚柔、生死之分,其说然否?答曰:十干五阳五阴,阳者为刚,阴者为柔,其生死之分如母生子,子成而母老死,理之自然。赋曰:阳生阴死,阳死阴生,迴圈逆顺,变化见矣。

甲木乃十干之首,主宰四时,生育万物;在天为雷为龙,在地为梁为栋,谓之阳木。其禄到寅。寅为离上之木,其根已断,其枝已绝,谓之死木。死木者,刚木也,须仗斧斤斫削方成其器。长生于亥,亥为河潭池沼之水,名曰死水,故死木放 死水中,虽浸年久,不能朽坏,譬如杪椿之木,在于水中则能坚固。若离水至岸而遇癸水,癸水者,活水也,为天地间雨露,日晒雨淋,干湿不调,遂成枯朽,则能生火,火旺而木必焚矣,故有灰飞烟灭之患耳。且午属离火,火赖木生,木为火母,火为木子,子旺母衰,焉有不终之理?故甲木死于午。经云:木不南奔。正谓此也。

乙木继甲之后,发育万物,生生不已;在天为风,在地为树,谓之阴木。其禄到卯,卯为树木,根深叶茂,谓之活木。活木者,柔木也,惧阳金斫伐为患,畏秋至木落凋零,欲润土而培其根,利活水而滋其枝叶。活水者,癸水也,即天之雨露,地之泉源;润土者,己土也,如耕耨之土,成稼穑之功。己禄在午,午乃六阳消尽,一阴複生,故稻花开于午时,乙木生于午地。十月建亥,亥乃纯阴司令,壬禄到亥当权,死水泛滥,土薄根虚,有失培养。故乙木死于亥。经云:水泛木浮。正此谓也。

丙火丽乎中天,普照六合;在天为日为电,在地为炉为冶,谓之阳火。其禄在巳,巳为炉冶之火,谓之死火。死火者,刚火也,喜死木发生其焰,恶金、土掩其光。死木者,甲木也,甲禄在寅,寅乃阳木之垣,木盛火生,隐于木石之间,非人用之,不能生髮,故五阳皆出乎自然而为先天,五阴皆系乎人事而为后天,丙火生于寅,其理甚明。如太阳之火自东而升,至西而没,且酉属兑,兑为泽;己土生金,金气盛,掩息丙火之光,不能显辉,岂无晦乎?故丙火生于寅而死于酉。经云:火无西向。正此谓也。

丁火继丙之后,为万物之精,文明之象;在天为列星,在地为灯火,谓之阴火。其禄到午,乃六阴之首,内有乙木,能生 丁火。乙为活木,丁为活火。活火者,柔火也,丁喜乙木而生,乃阴生阴也,如世人用菜油麻油为灯烛之义,夫油乃乙木之膏也。至于酉时,四阴司权,灯火则能辉煌,列星则能灿烂,故丁生于酉;至于寅地,三阳当合,阳火而生,阴火而退,如日东升,列星隐耀,灯虽有焰,不显其光。故丁生于酉而死于寅也。经云:火明则灭。正谓此也。

戊土洪蒙未判,抱一守中,天地既分,厚载万物,聚于中央,散于四维。在天为雾,在地为山,谓之阳土。其禄在巳,巳为炉冶之火,锻炼成器,叩之有声,其性刚猛,难以触犯。喜阳火相生,畏阴金盗气。阳火者,丙火也,丙生于寅,寅属 艮,艮为山,山为刚土,即戊土也,赖丙火而生焉。至于酉地,酉属兑,金耗盗戊土之气,乃金盛土虚,母衰子旺,又金击石碎,岂能延寿?故戊土生于寅而死于酉。经云:土虚则崩。正此谓也。

己土继戊之后,乃天之元气,地之真土。清气上升,冲和天地,浊气下降,聚生万物,谓之阴土。天地人三才皆不可缺此土,如乾坤中一媒妁,阴阳失此,岂能配偶?故于四行无不在,于四时则寄旺焉,乃真土也。喜丁火而生,畏阳火而燥。 其禄到午,午中丁火能生巳土,被乙木盗其栽培之气。至于酉地,丁火而生,丁火既生,己土亦能生也;至寅用事,木火司权,锻炼己土,遂成磁石,反失中和之气,岂有不损之理?故己土生于酉而死于寅。经云:火燥土裂。正此谓也。

庚金掌天地肃杀之权,主人间兵革之变。在天为风霜,在地为金铁,谓之阳金。其禄到申,申乃刚金,喜戊土而生,畏癸水而溺;长生于巳,巳中戊土能生庚金,乃阳生阳也;巳为炉冶之火,锻炼庚金,遂成锺鼎之器,叩之有声,若遇水土沉 埋则无声也,所谓金实无声。至于子地,水旺之乡,金寒水冷,子旺母衰,亦遭沉溺之患,岂能複生?故庚金生于巳而死于子。经云:金沉水底。正此谓也。

辛金继庚之后,为五金之首,八石之元。在天为日月,乃太阴之精,在地为金,金乃山石之矿,谓之阴金。其禄到酉,酉中己土能生辛金,乃阴生阴也,谓之柔金,为太阴之精。长生于子,子乃坎水之垣,坎中一阳属金,另有二阴属土,土能 生金,子隐母胎,未显其体,得子水荡漾,淘去浮砂,方能出色,此乃水济金辉,色光明莹。至于巳地,巳为炉冶之火,将辛金炼成死器,亦被巳中戊土埋没,其形不能变化,岂能複生?故辛金生于子而死于巳也。经云;土重金埋。正谓此也。

壬水喜阳土而为堤岸之助,畏阴木而为盗气之忧。在天为云,在地为泽,谓之阳水。其禄在亥,亥为池沼存留之水,谓之死水。死水者,刚水也,赖庚金而生,庚禄到申,能生壬水,乃五行转养之气。至于卯地,卯乃花叶树木,木旺于卯则能克土,土虚则崩,故堤岸崩颓,而壬水走泄,散漫四野,流而不返,又被阴木盗气,岂得存活?故壬水生于申而死于卯也。经云:死水横流。正谓此也。

癸水继壬之后,乃天干一周阴阳之气,成于终而反于始之渐,故其为水清浊以分,散诸四方,有润下助土之功,滋生万 物之德。在天为雨露,在地为泉脉,谓之阴水。其禄在子,子乃阴极阳生之地,辛生庚死之垣;癸为活水,活水者,柔水也,喜阴金而生,畏阳金而滞,欲阴木行其根则能疏通阴土,阴土既通于地脉则能流畅。二月建卯,为花果树木,木旺土屋,癸水方得通达。至于申地,三阴用事,否卦司权,天地不交,万物不通,申中坤土、庚金遂成围堰,使癸水不能流畅,困于池沼,无所施设,岂再生物?故癸水生于卯而死于申。经云:水不西流。正谓此也。

论曰:五行长生之理与万物亦同。且如日之初出时,光明可观,至午离宫,光明愈甚,月之初出,巧若蛾眉,至望光明圆洁;若人之生,自少至壮,自老至死,常理也。人之初生也,婴孩啼笑而已,至壮贤愚方辨,万物皆一同。

甲木生亥,亥令属水,甲木居焉;木旺于春,至寅临官归禄,甲木得垣,至午则死;丙火生寅,寅令属木,丙火居焉,火旺于夏,至已临官归禄,丙火得垣,至酉则死;庚金生巳,巳申戊土,庚金居焉,金旺于秋,至申临官归禄,庚金得垣, 至子则死;壬水生申,申令属金,壬水居焉,水旺于冬,至亥临官归禄,壬水得垣,至卯则死;戊土生于寅,寅中有火,戊土生焉,三阳之时,土膏以动,万物发生,是戊生于寅也。土旺于四季,火土有如母子相生,所以戊随丙临官归禄巳。

7. 论地支

地支之用,不比天干,动静不同,圆方迥异。然五行所属则一,而所处之地不一。且如在年则有在年之论,在月则有在月之论,在日时则有日时之论,其阴阳、轻重、刚柔岂混于一体?今当以月提为主,所藏所用,要见何神,所耗所嫌,要系 何物。凡四柱之神,较量深浅而用。

子十二支之魁,溪涧江洋之水,乃戊土旺地,然必过大雪之期,一阳来複之后,方能成旺。辛金所生,亦必于阳回水暖而后能生也。与午相冲,与卯相刑,与申辰三合。若申、子、辰全,会起水局,即成江海,发波涛之声也。

丑虽隆冬,有冰霜之可怯,但天时已转二阳,是以丑中己土之暖能生万物,辛金养地,岂只深藏?见戌则刑,见未则冲, 库地最宜,刑冲不为无用。见巳、酉三合,会起金局。若人命生于丑月,而日时多见水木,必侧行巽离之地,而土方不衰耳。

寅建于春,气聚之阳,有丙火生焉。寅刑巳,巳合申并旺而为贵客;旺于卯,库于未,同类则为一家。至午则火光辉,而有超凡入圣之美。见申则寅受冲,而有破禄伤提之忧。若四柱火多,则又不可入南方火地。经云:木不南奔。卯木仲春,气禀繁华,唱用金水,不可太过。若干头庚辛叠见,地支不可见申酉,恐有破伐之害;地支亥子重逢,干头不可见癸壬,主有漂流之伤。见酉则冲,木必落叶,见亥未则合,木必成林。若时日归于金重,大运更向西行,患不禁也。

辰建季春,为水泥之湿,而万物之根皆赖此培养。甲至此虽衰,而有乙之馀气;壬至此虽墓,而有癸之还魂;见戌为钥, 能开库中之物,若三戍重衝破门,非吉。日时多见水木,其运更向西北,则辰土不能存矣。

巳当初夏,其火增光,是六阳之极也。庚金寄生,困顿戊母。戊土归禄,乃随火娘。见申则刑,刑中有合,翻为无害;见亥则冲,冲而必破便为有伤。若运再行东南生髮之地,便成烧天烈焰之势矣。

午月炎火正,升入中气则一阴生也。庚至此为无用,己至此为归垣;见申子则必战克,见寅戌则越光明。运行东南,正是身强之地,若入西北,则休囚丧形矣。

未当季夏,则阴深而火渐衰。未中有乙木,有丁火,是藏官,藏印,不藏财也。无亥卯以会之,则形难变,只作火土论; 无丑戌以刑冲之,则库不开,难得金印。力柱中无火,怕行金水之运,日时多寒,偏爱丙丁之乡。盖用神之喜忌最当分晓,不可毫髮误也。

申宫水土长生之地,入巳、午则逢火炼,遂成剑戟,见子、辰则逢水淬,益得光锋;使木多无火,金终能胜,若土重堆埋,金却有凶。盖申乃顽钝之金,与温柔珠玉不同故也。

酉建八月金色,白水流清。若遇日时火多,运更愁东去;若遇日时水旺,运亦怕南行。柱见水泥,应为有用,运行西北, 岂是无情?然逢己丑三合,亦能坚锐,岂可以阴金为温柔珠玉而泥论哉?

戌乃洪炉之库,钝铁顽金,赖以炼成。见辰龙则冲出壬水,而雨露生焉;见寅虎则会起丙火,而文章出焉。然火命逢之则 为入墓,甯能免于不伤哉?

亥地六阴,雨雪载途,土至此而不暖,金至此而生寒。其象若五湖之归聚,其用在三合之有心。是故欲识乾坤和暖之处,即从艮、震、巽、离之地而寻之也。

大抵五行用法,总无真实,生死衰旺,亦假名耳。直向源头,明其出处,如五阳为刚,五阴为柔。若失令身衰,不遇资扶而频泄气,则刚者失其为刚;若得令身强,用事有助,则柔者不失之柔。中间又分木火为阳,金水为阴,皆喜生扶资助, 要以中和为贵。

8. 十干分配天文

甲木为雷。雷者,阳气之嘘也,甲木属阳,故取象于雷焉。稽诸月令,仲春之月,雷乃发声,甲木旺,即其验也,况雷奋 于地,木生于地,其理又无不同者。甲木至申而遂绝,以雷声至申而渐收也。凡命属甲日,主喜值春天,或类象,或趋乾,或遥巳,或拱贵,俱大吉;运不喜西方。经云:木在春生,处世安然,必寿。

乙木为风。乙木长生在午,败在巳。在午而生者,盖乙为山林活木,至夏来而畅茂,诗所谓千章夏木青是也;其败巳云何?巳乃巽地,巽为风,木盛风生也,风生于木而反摧木,犹之火生于木而反焚木,其取败也固宜,所谓乙木为风者,木其 所自生云尔。如人乙日建生者,在秋令大吉,秋令金旺,乙木能化能从而盘根错节,非利器无所裁成;逢亥必死,其落叶归根之时耶?

丙为日。《说卦传》日:离为火为日,日与火皆文明之象,是以丙火为日之名不易焉。太阳朝出而夕入,阳火寅生而酉死,而又何异乎?凡六丙生冬夏,不如春秋,春日有暄万物之功,秋阳有燥万物之用,冬则阴晦,夏则炎蒸,宜细堆之。

丁火为星。丙火死而丁火遂从生焉,在天之日薄而星回也。类如此星象唯入夜故灿烂,阴火唯近晦故辉煌,丁不谓之星而何?凡丁日生人喜遇夜,喜遇秋,如星光之得时也;又喜行身 弱地,如石里所藏属丁火,石虽在水,即时取击,亦自有火;其丁巳一日,多克父兄妻子,盖财忌比劫,兄屈弟下,巳中有戊土,伤官也。

戊土为霞。土无专气,依火而生,霞无定体,借日以现,知丙火之为日,则知戊土之为霞矣。是霞者,日之馀也,日尽而霞将灭没,火熄则土无生意,故谓之霞也。如戊土日主爱四柱带水则为上格,霞水相辉而成文彩也;更喜年月干见癸,癸 则为雨,雨后霞现而睹文明也。

己土为云。己土生居酉,酉,兑方也,其象为泽。先正曰:“天降时雨,山川出云。”然则云者,山泽之气也,己虽属土,以此论之,则其谓之云也亦宜。故甲己合而化土,其气上升而云施;云雷交而作雨,其泽下究而土润。此造化之至妙者与!凡身主属己土,贵坐酉,贵春生,贵见印,坐亥者不可见乙木,云升天,遇风则狼籍而不禁也。

庚金为月。庚乃酉方阳金,何以知其配月乎?曰:五行之有庚,犹四时之有月也;庚不待秋而长生,然必秋而始盛;月不待秋而后月,然必秋而益明。以色言,月固白也,其色同矣;以气言,金生水也,潮应月也,其气同矣。经云:金沉在子。见其与月沉波也,三日月见庚方见,月初生与庚为位也,故曰庚金为月。如人庚日生者,四柱有乙巳字出,谓之月白风清,秋为上,冬次之,春夏无取。

辛金为霜。八月,辛金建禄之地,是月也天气肃杀,白露为霜,草木黄落而衰,故五行阴木绝在此地,若木经斧斤之斩伐,未有所生焉者也。斧斤以时入山林,严霜以时杀草木,揆之天道,参之人事,信乎辛金之为霜矣。如辛人坐卯,未透乙,大富,坐亥透丙则贵。爱冬生。

壬水为秋露。春亦有露,何独拟之以秋?盖春露、雨露既濡之露,秋露、霜露既降之露也,露一也,春主生,秋主杀,功用不同有如此,然吾以壬为秋露也,盖露属水,而壬水生于申,水本能生木者,水既然在此而生,木何由于此而绝?故知 壬之为露,秋露也。如壬日生秋,见丁火最显,丁为星河,壬为秋露,一洗炎蒸,象纬昭然矣。

癸水为春霖。癸水生卯月,号曰春霖。盖阴木得雨而发生也,然至申则死,七、八月多乾旱也。且卯前一位是辰,辰,龙宫也,卯近龙宫而水生,龙一奋遂化为雨焉;卯为雷门,雷一震而龙必兴焉,观此则癸水其春霖矣。如癸卯日透出己字者,有云行雨施之象,其人必有经济才也。春夏吉,秋冬不吉。

9. 十二支分配地理

十二支分配地理

子为墨池。子在正北方,属水,色象墨,故有墨池之象。凡命逢子年生者,时喜见癸亥,谓之水归大海,又谓之双鱼游墨,必为文章士矣。

午为烽堠。午正位于南,属火、土,其色赤黄,名其曰烽堠者,此也;又午为马,烽堠乃戎马兵火之处所也。午生人时利见辰,真龙出则凡马空矣,谓之马化龙驹。

卯为琼林。卯系乙木,居位正东,于时为仲春,万物生焉,色若琅之青,故曰琼林。卯年遇巳未时者,是为兔入月宫之象,主大贵。

酉为寺锺。酉属金,位近戍亥,戍亥者,天门也,锺,金属也,寺锺敲则响彻天门;又酉居正西,寺则西方佛界也。酉见寅吉,谓之锺鸣谷应。

寅为广穀。寅乃艮方,艮为山,戊土长生于是而广穀之义著矣。然寅宫有虎,寅生人而时戊辰者,谓之虎啸而穀风生,威震万里。

申为名都。坤为地,其体无疆,非名都不足以喻之。申,坤也,都者;帝王所居;申宫壬水生,又与艮山对,是水绕山环也。凡命爱申年亥时,乃地天交泰。

巳为大驿。大驿者,人烟凑集,道路通达之地。巳中有丙火戊土,是其象也,又巳前有午马,故曰大驿。巳生喜得辰时, 蛇化轻龙,于格为千里龙驹。

亥为悬河。天河之水,奔流不回,故曰悬河,亥即天门,又属水,非悬河之象乎?亥年建生,日时见寅、辰二字,是乃水拱雷门。

辰为草泽。夫泽,水所锺也,辰在东方之次,为水库,故为草为泽;辰逢壬戍、癸亥即龙归大海格。

戌为烧原。戌月在九秋,草木尽萎,田家焚烧而耕,又戌属土,是以称名烧原,故戌与辰地皆贵人所不临也。戌生逢卯, 号曰春入烧痕。

丑为柳岸。丑中有水有金,岸者,土也,所以止水也,故谓柳岸。丑人时见己未,乃月照柳梢,极为上格。

未为花园。花园属之未,不属之卯,何也?卯乃木旺,自成林麓;未乃木库,如人筑牆垣以护百花也,以百花言未中有杂气耳;未年人双飞格,最妙,如辛未见戊戍,两干不杂是也。

10. 论地支属相

或问:地支有属相,而天干则无者,何也?答曰:天干动而无相,地支静而有相。盖轻清者天也,重浊者地也,重浊之中,乃有物焉。故子属鼠,丑属牛,寅属虎,卯属兔,辰属龙,巳属蛇,午属马,未属羊,申属猴,酉属鸡,戍属犬,亥属猪。此十二属相亦有奇偶之分,盛衰之用。奇者鼠、虎、龙、马、猴、犬,一则属阳,六兽之足皆单;偶者牛、兔、蛇、羊、鸡、猪,二则属阴,六兽之足皆双。唯蛇无足又何取义?盖巳在月二乃纯阳之月,在时乃春阳之时,数则偶而时则阳,故用蛇以象之,蛇乃阴物,不用其足而象巳著疑,亦讳言乎阴之意尔,况亦有双头者。可验十二相即三十六禽中取其首者拟之,自有阴阳之别,单双之分,此造化之所以为妙也。

寅,木也,其禽虎,戌,土也,其禽犬,丑、未亦土也,丑禽牛,未禽羊,木胜土,故犬与牛羊为虎所服;亥,水也,其禽豕,巳,火也,其禽蛇,子亦水也,其禽鼠,午亦火也,其禽马,水胜火,故豕食蛇,火为水所害,故马食鼠屎而腹胀。然亦有不相胜者。午,马也,子,鼠也,酉,鸡也,卯,兔也,水胜火,鼠何不逐马?金胜木,鸡何不啄兔?亥,豕也,未,羊也,丑,牛也,土胜水,牛羊何不杀豕?巳,蛇也,申,猴也,火胜金,蛇何不食猕猴?猕猴,畏鼠者也,齧猕猴者,犬也。鼠,水,猕猴,金也,水不胜金,猕猴何故畏鼠?戌,土也,申,猴也,土不胜金,猴何故畏犬?十二辰之禽以气性相克则尤不相应。大凡含血之虫相服,至于相啖食者,以齿牙钝利、筋力优劣自相胜服也。

11. 论人元司事

夫一气浑沦,形质未离,熟为阴阳?太始既肇,裂一为三,倏息乃分,天得之而轻清为阳,地得之而重浊为阴,人位乎天 地之中,禀阳阴冲和之气。故此轻清者为十干,主禄,谓之天元,重浊者为十二支,主身,谓之地元,天地多正其位,成才于两间者,乃所谓人也。故支吕所藏者主命,谓之人元,名为司事之神,以命术言之为月令。如正月建寅,寅中有艮土用事五日,丙火长生五日,甲木二十日;二月建卯,卯中有甲木用事七日,乙木二十三日;三月建辰,辰中有乙木用事七日,壬水墓库五日,戊土一十八日;四月建已,已中有戊土七日,庚金长生五日,丙火一十八日;五月建午,午中丙火用事七日,丁火二十三日;六月建未,未中有丁火用事七日,甲木墓库五日,已土一十八日;七月建申,申中有坤土用事五日,壬水长生五日,庚金二十日;八月建酉,酉中有庚金用事七日,辛金二十三日;九月建戌,戌中有辛金用事七日,丙火墓库五日,戊土一十八日;十月建亥,亥中有戊土五日,甲木长生五日,壬水用事二十日;十一月建子,子中有壬水用事七日,癸水二十三日;十二月建丑,丑中有癸水用事七日,庚金墓库五日,已土一十八日。此十二支按十二月各藏五行为人元,以配四时则春暖秋凉冬寒夏热,如环无端,终而複始,岁功毕而成一年。

12. 论四时节气

卦气正月为泰,天气下降,当为雨水;二月大壮,雷在天上,当为惊蛰,先雨水而后惊蛰,亦宜也,惊蛰者,万物出乎震,震为雷也;清明者,万物齐乎巽,巽为风也,巽洁齐而曰清明,清明乃洁齐之义;穀雨三月中,自雨水后土膏脉动,至此又雨,则土脉生物,所以滋五穀之种也;小满四月中,先儒云:小雪后阳一日生一分,积三十日,生三十分而成一昼,为冬至,小满后阴生亦然。至若三月中穀雨,五月中芒种,此二气独指谷麦言,谷必原其生之始,谷种于春,得木之气,残于秋,金克木也;麦必要其成之终,麦种于秋,得金之气,成于夏,火克金也;六月节小暑,六月中大暑,六月中暑之极,故谓大,然未至于大则犹为小也;七月中处暑,七月暑之终,寒之始,大火西流,暑气于是乎处矣,处者,隐也,藏伏之义也;白露八月节,寒露九月节,秋木属金,金色白,金气寒白者,露色,寒者,露之气,先白而气始寒,固有渐也,九月中霜降露寒,始结为霜也;立冬后曰小雪、大雪,寒气始于露,中于霜,终于雪,霜之前为露,霜由白而始寒,霜之后为雪,雪由小而至大,皆有渐也;至小寒大寒,《幽风》云:“一之日徉发,二之日栗烈”,徉发风寒,故十一月之馀为小寒,栗烈气寒,故十二月之终为大寒也。

大抵合而言之,上半年主长生,曰雨曰雷曰风,皆生之气,下半年主生成,曰露曰霜曰雪,皆成之气。下半年言天时,不言农时,农时莫急于春夏也。

13. 论五行旺相休囚死并寄生十二宫

盛德乘时曰旺。如春木旺,旺则生火,火乃木之子,子乘父业,故火相;木用水生,生我者父母,今子嗣得时,登高明显赫之地,而生我者当知退矣,故水休。休者,美之无极,休然无事之义。火能克金,金乃木之鬼,被火克制,不能施设, 故金囚;火能生土,土为木之财,财为隐藏之物,草木发生,土散气尘,所以春木克土则死。夏火旺火,生土则土相,木生火则木休,水克火则水囚,火克金则金死。六月土旺,土生金则金相,火生土则火休,木克土则木囚,土克水则水死。秋金旺,金生水则水相,土生金则土休,火克金则火囚,金克木则木死。冬水旺,水生木则木相,金生水则金休,土克水则土囚,水克火则火死。

观夏月大旱,金石流,水土焦。六月暑气增,寒气灭;秋月金胜,草木黄落;冬月大寒太冷,水结冰,火气顿减,其旺其死,概可见矣。盖四时之序,节满即谢,五行之性,功成必複,故阳极而降,阴极而升,日中则昃,月盈则亏。此天之常 道也。人生天地,势积必损,财聚必散,年少反衰,乐极反悲。此人之常情也。故一盛一衰,或得或失,荣枯进退,难逃此理,经云:人虽灵于万物,命莫逃乎五行。斯言尽矣。

五行寄生十二宫:长生、沐浴、冠带、临官、帝旺、衰、病、死、墓、绝、胎、养,迴圈无端,周而复始,造物大体与人相似,迴圈十二宫亦若人世轮回也。《三命提要》云:“五行寄生十二宫,一曰受气,又曰绝,曰脆,以万物在地中未有 其象,如母腹空,未有物也;二曰受胎,天地气交,氤氲造物,其物在地中萌芽,始有其气,如人受父母之气也;三曰成形,万物在地中成形,如人在母腹成形也;四曰长生,万物发生向荣,如人始生而向长也;五曰沐浴,又曰败,以万物始生,形体柔脆,易为所损,如人生后三日以沐浴之,几至困绝也;六曰冠带,万物渐荣秀,如人具衣冠也;七曰临官,万物既秀实,如人之临官也;八曰帝旺,万物成熟,如人之兴旺也;九曰衰,万物形衰,如人之气衰也;十曰病,万物病,如人之病也;十一曰死,万物死,如人之死也;十二曰墓,又曰库,以万物成功而藏之库,如人之终而归墓也。归墓则又受气,胞胎而生。”

凡推造化,见生旺者未必便作吉论,见休囚死绝未必便作凶言。如生旺太过,宜乎制伏,死绝不及,宜乎生扶,妙在识其通变。古以胎生旺库为四贵,死绝病败为四忌,余为四平,亦大概言之。

14. 论遁月日时

夫命以年为本为父,月为兄弟僚友,日为主为妻为己身,时为子孙为帝産为平生荣辱之首。又曰年为根,月为苗,日为花,时为实,故苗无根不生,实无花不结。所以遁月从年,遁时从日。遁月即甲己之年,正月起丙寅,二月丁卯,顺行十二月。

古歌曰:甲已之年丙作首,乙庚之岁戊为头,丙辛之岁寻庚上,丁壬壬位顺行流,更有戊癸何处起?甲寅之上好追求。

遁时如甲子日子时生人即甲己,还加甲,便知子时乃甲子,丑时乃乙丑,顺行十二时。

古歌曰:甲己还加甲,乙庚丙作初,丙辛从戊起,丁壬庚子居,戊癸何方发?壬子是直途。

月时之法,取天干合数,阴阳之配也。既取合数,自生化数,月则取生,时则取克。假如甲己化土,火生土故,月起丙寅;水克土故,时起甲子。月遁起寅,人生于寅之义,东作方兴之时也;时遁起子,天开于子之义,一阳方生之候也。究而言之,则皆相生而转,迴圈无端焉。盖上古曆元年甲子,月甲子,日甲子,时甲子,甲己起,甲子祖于此也。有甲子则乙丑、丙寅顺布十二宫,阳生阳,阴生阴,相间一位,同类为夫妇。是起月之法,不外起时之中矣。

15. 论年月日时

凡论人命,年月日时排成四柱,遁月从年,则以年为本,遁时从日,则以日为主。古法以年看,子平以日看,本此。如人本木而得卯月以乘之,主金而得酉时以乘子,谓之本,主乘旺气;如本水而得甲申、丙子、壬戌、癸亥月;主火而得丙寅、戊午、甲辰、乙已时;本木而得己亥、辛卯、甲寅、庚寅月,主金而得辛已、癸酉、庚申、壬申时,谓之本,主还家; 本木而得癸未月,主金而得乙丑时;木水而得壬辰月,主火而得甲戌时,谓之本,主持印。四位如此,更吉神往来,凶煞回避,谓之本主得位,本胜于主者多得祖荫,主胜于本者当自卓立,本主两强,富贵双全。四柱中更抑扬归中,无太过不及,方作好命,有一位不及,必主蹇滞,然诸家命术皆云好年不如好月,好月不如好日,好日不如好时,大率以年则统乎一岁,月则该乎三十,而时日为得之。独不知得日时之吉而月不应,反为无用,况用神多取诸月,是月又可轻乎?唐李虚中独以日干为主,却以年月时合看生克制化,旺相休囚,取立格局。此发前贤所未发,故今术家宗之。

又曰年为太岁,主人一生祸福,如当生太岁,是金是木,要日月相生相应,造化和顺,则根基牢固,一生卓立成就。衆支干五行不顺反克,衝破为伤,本主无寿,被形带煞。及生,月日时者主损木气,破伤祖业,六亲冷淡蹇滞之命也。月为运 元,行运从月逮起,若日时是本生年之福,宜归运元生旺处以扶助之,故官印贵人,禄马财星宜在运元生旺处为佳;若日时是本生年之祸,宜归运元剥克处以潜济之。故土多窒塞,宜归运元疏通处;水多泛滥,宜归运元归宿处;火多暴露,宜归运元晦息处;金木太强,宜归运元沉潜处。或运元集生时之福,或运元发福于生时,日者三阳之会,帝皇之象,时者近侍之臣,以亲帝座,而时日有君臣庆会,天地德合。或年月日时四位纳音生旺之气,或四位禄与福贵气聚于时上,谓之四位集福于帝座;或时倒揭,旺气秀气散在诸位,而诸位乘吉会之气者,谓之帝座发福于四位。夫集福于帝座则以纯厚忠信为心,发福于四位则以聪明端直自进。若近侍之臣切忌土火金气太旺,不能久住,水木清奇多是翰林。年月发福处,不要生时破坏,败坏处仍要生时解释。

由是论之,年月日时均重,而时为尤重。人命贵贱、寿夭、穷通、得丧只在生时之辨。时有八刻,有初正末气不同,须细 察之。

《定真论》曰:伤年不利父,伤月不利兄弟,亦主初年艰辛,伤日不利己身,名折腰煞,伤时不利子孙,亦无结果。若年生日月时三位谓之上生下,主损本气,兼破祖业;时上生日月年谓之下生上,主增福德。若上生下得丑行相逢,乘生福气,亦作好命看,若相乘生祸,则不佳。四柱纯粹,无刑衝破害,空亡死绝,更有福神互为之助方为吉命,反此则凶。

阅读全文 »

xingsu

发表于 2006-09-05 | 分类于 xingsu

1. 六十甲子 与 星宿 对应关系

阅读全文 »

wuxing

发表于 2006-09-05 | 分类于 wuxing

1. 论五行生成

天高寥廓,六气迴旋以成四时;地厚幽深,五行化生以成万物。可谓无穷而莫测者也。圣人立法以推步者,盖不能逃其数。观其立数之因,亦皆出乎自然。故载于经典,同而不异,推以 达其机,穷以通其变,皆不离于数内。一曰水,二曰火,三曰木,四曰金,五曰土者,咸有所自也。水,北方子之位也,子者,阳之初一,阳数也,故水曰一;火,南方午之位也,午者,阴之初二,阴数也,故火曰二;木居东方,东,阳也,三者,奇之数,亦阳也,故木曰三;金居西方,西,阴也,四者,偶之数,亦阴也,故金曰四;土应西南长夏,五者,奇之数,亦阳也,故土曰五。由是论之,则数以阴阳而配者也。若考其深义,则水生于一。天地未分,万物未成之初,莫不先见于水,故《灵枢经》曰:“太一者,水之尊号。先天地之母,后万物之源。”以今验之,草木子实未就,人虫、胎卵、胎胚皆水也,岂不以为一?及其水之聚而形质化,莫不备阴阳 之气在中而后成。故物之小而味苦者,火之兆也;物熟则甘,土之味也。甘极而后淡,淡,本也。然人禀父母阴阳生成之化,故先生二肾,左肾属水,右肾属火。火曰命门,则火之因水而后见。故火曰次二。盖草木子实,大小虽异,其中皆有两以相合者,与人肾同,亦阴阳之兆。是以万物非阴阳合体则不能化生也。既阴阳合体,然后而春生而秋成,故次三曰木,次四曰金。盖水有所属,火有所藏,木有所发,金有所别,莫不皆因土而后成也。故金木水火皆待土而后成。兼其土数,五以成之,则水六,火七,木八,金九;土常以五之生数不可至十者,土不待十以成,是生成之数皆五以合之。明大衍之数,由是以立,则万物岂能逃其数哉?

2. 论五行生克

五行相生相克,其理昭然。十干十二支、五运六气、岁月日时皆自此立,更相为用,在天则为气:寒、暑、燥、湿、风;在地则成形:金、木、水、火、土。形气相感而化生万物,此造化生成之大纪也。原其妙用,可谓无穷矣。

木主于东;应春。木之为言触也,阳气触动,冒地而生也。水流趋东以生木也;木上发而覆下,乃自然之质也。

火主于南,应夏。火之为言化也,毁也,阳在上,阴在下;毁然盛而变化万物也。鑽木取火,木所生也。然火无正体,体本木焉。出以应物,尽而複入,乃自然之气也。

金主于西,应秋。金之为言禁也,阴气始禁止万物而收敛,披沙拣金,土所生也。生于土而别于土,乃自然之形也。

水主于北,应冬。水之为言润也。阴气濡润,任养万物也。水西而东,金所生也。水流曲折,顺下而达,乃自然之性也。

土主于中央,兼位西南,应于长夏。土之为言吐也,含吐万物,将生者出,将死者归,为万物家。故长于夏末,火所生也。土或胜水,水乃反土,自然之义也。

五行相克,子皆能为母,复仇也。木克土,土之子金反克木;金克木,木之子火反克金;火克金,金之子水反克火;水克火,火之子土反克水;土克水,水之子木反克土。互能相生,乃其始也;互能相克,乃其终也。皆出乎天之性也。《素问》所谓水生木,木複生火,是木受窃气,故水怒而克火。即子逢窃气,母乃力争,与母被鬼伤,子来力救,其义一也。强可攻弱,土得木而达;实可胜虚,水得土而绝;阴可消阳,火得水而灭;烈可敌刚,金得火而缺;坚可制柔,木得金而伐。故五者流行而更转,顺则相生,逆则相克,如是则各各为用,以成其道而已。

偏向于火的人爱争理 偏向于金的人容易伤人 偏向于水的淹人 偏向于土的欺人 偏向木的不服气别人

3. 五行与面相

【体相和五行】细瘦者属木;尖露者属火;浊厚者属土;方正者属金;圆肥者属水。人相之五形分类,以正格局与中和格局者为佳,兼偏相生格局者为次,杂而相克格局者为下乘。

【木型人】面:眉发疏秀、头隆额耸、眼分黑白、鼻长露节、面色苍青、喉结外见。身:清秀瘦挺、下身摇摆、重心仍稳。手:指长而瘦、掌纹多杂。 耳:瘦坚见廓、天 ( 轮 ) 大地 ( 轮 ) 小、子午不直、孔大无毫。声:音脆而实、嘹扬高畅。

【火型人】面:眉发白黄、颧尖骨露、上尖下阔、面色红活、青露神强、唇口掀露。 身:筋骨俱露。 手:指尖节露。 耳:耳孔翻张、轮飞廓反、耳高于眉、尖长且硬。 声:焦烈急躁、如炎烈烈。

【水型人】脸形圆碌碌、肤色白净。水型人虽然有时很霸道,但由于应变能力很强,加上思考灵活,所以人缘很好,适应环境的能力非常强【面相属土】拥有方形而带厚重感觉的脸形,肉地颇厚,面色略带黄。这类人成熟稳重,喜欢传统的东西,性格有点顽固,但比较深思熟虑,十分适合从商或从事实业工作。

【金型人】金型人给人的感觉是宽额、聪慧,有大将风度。长着一个大大的方脸,脸色很白,骨架大,显得很魁梧,个子中等,身体壮而不肥。例如三国演义当中的曹操,一代枭雄,美国总统小布什,英国前首相撒切尔夫人,凡事唯我独尊、非我莫属,上进心强,做事不达目标誓不罢休,有非常威严的气质,但是虚荣心和自尊心过强,长着一副宽额头,白面,方脸,骨大,体魁。

【土型人】土型的人,身材偏丰满。而且大多从孩提时代开始,就圆滚滚;骨架也偏大。很容易胖,全身都胖。要减肥困难重重,因为不只是要忌口,更要维持经常运动的习惯。土型人多面黄头大,唇厚鼻大。倘若肥甘厚腻的食物吃得过多,面色就比较油腻,显得脸总也洗不干净。甚至造成面部囊肿型痤疮,破坏皮肤的结构,产生坑坑坑洼洼的斑痕,严重的会破相。土型人做事比较稳重,讲求原则性和组织性,具有控局能力,十分敦实、诚信。

【臀部】金型人的臀部以方正厚实为要,其型像美国苹果;水型人的臀以圆大为正、型如雪梨最好;土型人臀势宜厚而坠、形像啤梨为上;木型人不忌小臀、但不能太削。火型人胯骨偏大、下端不忌尖小,型如像草莓也相宜。大臀蜂腰之人多奸邪也淫欲。腰直臀小之人名大财虚。腰阔臀肥之人多福高寿。

【发】木形长脸不怕发粗卷发、取其就水养木、木火相生;水形圆脸男不怕短发与平头、女性长发波型也不差、水型长短两相宜、生木蓄水。土型国字脸不忌发拳、发赤、因火土顺生;火型人不怕粽黄!顺火就势越黄越旺;金型方脸发不能太红、淡黄浅粽、温火暖金、人有激情,也能成就;顺逆不能太过,过则反常。

4. 五行与味觉

中医认为,咸、甜、酸、苦、辣分别与人体的五脏相对应,各有其作用。五味适量,对五脏有补益作用;倘若 过量 ,则会打乱人体平衡,损伤脏器,招致疾病。《彭祖摄生养性论》中说:’五味不得偏耽,酸多伤脾,甘多伤肾,苦多伤肺,辛多伤肝,咸多伤心。’反过来,也就是说,脾胃不好的人,最好少吃点酸;肾虚的人不能多吃甜 食物 ;肝血不旺的人,少吃点辣;心有问题的,咸味食物一定要控制住。

  • 酸多伤脾。酸能补肝,但过多的酸味 食物 会引起肝气偏胜,克脾胃,导致脾胃功能失调。脾主肌肉,其华在唇,因而酸味的东西吃得 过量 ,嘴唇也会失去光泽,并往外翻。建议饭后容易消化不良,而且伴有大便稀、说话声音低微等脾虚症状的人,少吃酸食。

  • 甘多伤肾。甜味可以补脾, 过量 却会引起脾气偏胜,克伐肾脏。因为肾主骨藏精,其华在发,所以甜味的东西吃多了就会使头发失去光泽、掉发。常会腰膝酸软、耳鸣耳聋的人,多有肾精虚的症状,建议不要多吃甜的 食物 。

  • 苦多伤肺。苦味能补心,过多的苦食则会克伐肺脏。所以当我们吃入的苦味东西 过量 时,就会损伤肺的功能。肺主皮毛,苦东西吃多了,皮肤会枯槁,毛发会脱落。易咳嗽、咳痰的人,多为肺气虚的表现,要尽量控制苦味 食物 的摄入。

  • 辛多伤肝。过食的辣的东西会引起肺气偏胜,克伐肝脏。因为肝藏血,主筋,辣的东西 过量 了,会导致筋的弹性降低,血到不了指甲,就会易脆、易裂。所以,常出现面色无华、头晕目眩、视物模糊等肝血虚症状者,应少吃点辣。

  • 咸多伤心。咸味可以补肾,但这种 食物 吃多则会克伐心脏,损伤心的功能。心主血,咸味的东西吃多了,就会抑制血的生发,使血脉凝聚,脸色变黑。所以,常会出现气短、心悸、胸痛等心气虚症状的人,咸的 食物 要少吃。

5. 阴阳五行与开发语言[原创]

东方木 php ruby 南方火 java python 西方金 C/C++ 北方水 javascript/lua 中央土 go/sql

语言 描述
C 指针越界如走钢丝,段错误可能会迟到但从不缺席——malloc完不free的狠人,valgrind都救不了你的内存修罗场。
C++ 从三法则到二十法则,从SFINAE到concept地狱——每个模板展开都是编译器对你发动的符号战争,”typename”说累了直接摆烂auto。
JS callback hell只是序章,npm黑洞才是终章——左手指月Promise,右手async/await,转头被webpack配置教做人。
LUA 游戏引擎里的寄生语言,redis里的隐藏BOSS——当你在魔兽插件里写完OO系统,发现这货居然能调C!
PHP 宇宙第一语言的自我修养:用双刀流<?php和<?=杀出重围,在Composer时代继续守护PEAR的荣耀。
RUBY 程序员の俳句语言:3.times { puts “Rails is magic!” }——直到看到ActiveRecord回调炼狱里的猴子补丁大军。
Java Spring的千层套路:用300个XML文件召唤神龙,结果被@Autowired的依赖注入漩涡吞噬,最后在JVM调优玄学中顿悟禅机。
Python 用缩进统治世界,用pip征服宇宙——GIL锁住的不是线程,是程序员对并发的最后一丝幻想,3.12还在给type hint打补丁。
Go 大道至简的暴力美学:goroutine火山喷发,channel隧道连环撞,defer如俄罗斯套娃,最后被vendor目录教做人。
CMake 写CMakeLists.txt的仪式感:先祭拜FindPackage咒语,再画符add_subdirectory结界,最后在ninja的忍者烟雾中迷失自我。

6. 阴阳五行与基础学科

数学 金 语文 木 化学 火 物理 土 英语 水

阅读全文 »

wuxing-person

发表于 2006-09-05 | 分类于 wuxing-person
  • 阴阳五行

甲 马斯克, 黄光裕 乙 俞敏洪 丙 刘强东 丁 马云 戊 罗永浩 己 雷军 庚 董明珠 辛 李彦宏 壬 任正非, 比尔盖茨 癸 张朝阳, 王健林

阅读全文 »

wenchang

发表于 2006-09-05 | 分类于 wenchang

1. 文昌为文书、契约、合同、学业、声名之星,主各个方

  • 面有”名”有关的事,简单而言,人活着需要点做人的”名节”,读书学习需要”科名”,结婚恋爱需要”名分”,置办产业需要”合法”,就连生病住院也需要”单据”等等,所以文昌一星,其实随时都有在发生,关系很大,而当文昌星化了,那破坏力,可不是一般的,威力甚大,让人呈堂节目,不论在任何宫位,都会发生会重大的事。

1.1. 入疾厄宫,代表健康跟你撕票,意味着大病和手术的到来

1.2. 入财帛宫,代表交易被撕票,意味着合约信义失效失误

1.3. 入官禄宫,代表尊贵被撕票,意味着被人驱使调遣而工作变动

1.4. 入父母宫,代表证书文聘撕票,意味着考试读书失利

1.5. 入交友宫,代表朋友信义撕票,意味着遭受损友欺骗连累

1.6. 入夫妻宫,代表跟婚姻名分撕票,意味着分手或主离婚等

1.7. 入田宅宫,代表产权被撕票,意味着产业被剥夺财富减值

1.8. 入迁移宫,代表名声被撕票,意味着恶名加身灾难不远

  • 无论入二宫的那一宫,都表示该宫人事于命造”撕票”,如果文昌星旺而会吉则危害小,如果文昌平陷则危害大,若在逢原盘之刑煞则为大灾难,生死姓命尤关。文昌星为金星,金星化忌,如武曲忌,都会有筋骨身体方面的损伤,固文昌化忌会有血光灾难
阅读全文 »

tiangan

发表于 2006-09-05 | 分类于 tiangan

1. 十干断易篇

甲木生人最聪明,深谋远虑是英雄,五湖四海交朋友,仗义疏财有声名, 为友能舍黄膘马,两胁插刀不嫌疼,别人若有为难事,舍已为人也现成。 乙木生人最耿直,心实见景有心机,今日吃他一杯酒,不到明天就还席, 为人办事多公道,从来不会占便宜,通情达理多尊让,能忍能让心最慈。 丙火生人心最刚,心中有话不隐藏,有一句来说一句,心实不怕把人伤, 秉公办事多公道,通情达理好商量,别人有点为难事,千方百计把忙帮。 丁火生人心性急,心中有话当面提,脾气来了赛猛虎。性情发了了不的, 心直口快无好处,怕虑灾星在后期,为人在先多快乐,暴打不平属第一。 戊土生人无转回,一条路上跑到黑,有人不投你的意,话不投机皱双眉, 有人若随你心意,吃亏让人百事宜,千日交来万日好,一日无情如扫灰。 已土生人多主才,放出账去要不来,在家发下天大恨,见面生情抹不开, 说上几句顺情话,心慈面软你回来,任何自己过不去,好心慈善闷在怀。 庚金生人性情绵,一生不好讨人嫌,见了人家有灾难,人家落泪你心酸, 你待人家一盆火,人家待你冬月寒,时常你就上了当,人家做事你花钱。 辛金生人好为人,交的朋友成了群,君子小人常在内,长长不离你家门, 交下君子厚又厚,交来交去报你恩,交下小人无情义,日后骗你要小心。 壬水生人心最实,为人不好占便宜,吃了他人一杯酒,不到明天就还席, 你待人家千般好,人家待你总是虚,今后有事酌量办,深谋远虑总为宜。 癸水生人心最公,别人有苦你伤情,你有好心总是虚,恩人无义未有功, 实心待人亏待已,竹蓝打水一场空,今后处人要仔细,不由粗心切记清。

2. 十天干生旺死绝表

状态 甲 丙 戊 庚 壬 乙 丁 己 辛 癸 长生 亥 寅 寅 巳 申 午 酉 酉 子 卯 沐浴 子 卯 卯 午 酉 巳 申 申 亥 寅 冠带 丑 辰 辰 未 戌 辰 未 未 戌 丑 临官 寅 巳 巳 申 亥 卯 午 午 酉 子 帝旺 卯 午 午 酉 子 寅 巳 巳 申 亥 衰  辰 未 未 戌 丑 丑 辰 辰 未 戌 病  巳 申 申 亥 寅 子 卯 卯 午 酉 死  午 酉 酉 子 卯 亥 寅 寅 巳 申 墓  未 戌 戌 丑 辰 戌 丑 丑 辰 未 绝  申 亥 亥 寅 巳 酉 子 子 卯 午 胎  酉 子 子 卯 午 申 亥 亥 寅 巳 养  戌 丑 丑 辰 未 未 戌 戌 丑 辰

3. 《滴天髓》对十天干的解释

甲 木

古书云: 甲木参天,脱胎要火。春不容金,秋不容土,火炽乘龙,水宕骑虎。地润天和,植立千古。 古书云:甲木为纯阳之木,体本坚固,参天之势,又极雄壮。生于初春,木嫩气寒,得火而发荣;生于仲春,旺极之势,宜泄其菁英,所谓强木得火,方化其顽。克之者金,而金属休囚,以衰金克强木,木坚金缺,势所必然,故春不容金也。生于秋,失时就衰,但枝叶虽调零渐稀,根气却收敛下达,受克者土。秋土生金泄气,最为虚薄,以虚气之土,遇下攻之木,不能培土之根必反遭其倾陷,故秋不容土也。柱中寅午戌全,又透丙丁,不惟泄气太过,而木且被焚,宜坐辰,辰为水库,其土湿。湿土能生木泄火,所谓火炽乘龙也,申子辰全而又透壬水,水泛木浮,宜坐寅,寅乃火生地,木之禄旺,能纳水气,不致浮泛,所谓水宕骑虎也,如果金不锐,土不燥,火不烈,水不狂,非植立千古而得长生者哉? 甲木生于春初,嫩木惧金恐水盛,喜丙丁之火暖体;植于仲春,体壮持刃若得庚金架杀,威如雄狮;若得丙丁泄秀,文彩飞扬;生于季春,喜得湿土固根;若得水资扶,花繁叶茂,得金成材,多土宜木比排障。生于夏,受化体虚,喜得水而舒畅;忌木多身燥,缺水易焚,如遇庚金克削反成祸患。

乙 木

古书云:乙木者,甲之质,而承甲之生气也。春如桃李。金克则凋;夏如禾稼,水滋得生;秋如桐桂,金旺火制;冬如奇芭,火湿土培。生于春宜火者,喜其发荣也;生于夏宜水者,润地之燥也;生于秋宜火者,使其克金也;生于冬而宜火者,解天地之冻也。割羊解牛者,生于丑未月,或乙未乙丑日,未乃木库,得以且过蟠根,丑乃湿土,可以受气也。怀丁抱丙,跨凤乘猴者,生于申酉月,或乙酉日,得丙丁透出天干,有水不相争克,制化得宜,不畏金强。虚湿之地,骑马亦忧者,生于亥子月,四柱无丙丁,又无戌未燥土,即使年支有午,亦难发生也。天干甲透,地支寅藏,此谓茑藤系松固得助,秋宜合扶,故可春可秋,言四季皆可也。 乙木柔软之体,朴实华丽之性。 生于春天,如桃李。喜阳火温暖,喜湿土润根。忌多水腐败根叶,忌强金损神。得旺木成局,花繁叶茂,则曲直仁寿之格。 生于夏天,如稼穑,火旺苗干,喜水滋润,忌土燥根枯,金不宜强,无制有妨;火不宜烈,行运入水乡则荣。 生于秋,有丙丁相护,不畏金克,制杀适当,能主权谋。有土,丑未最合;有水不宜水狂。无土缺火,以官从杀图安。 生于冬,求丙丁之火外露,可暖身解冻;地支不喜巳午,恐防冲战,若狂水则宜寅木吸收,未戌燥土可止流,若天干现甲,地支隐寅,春夏秋冬皆安。

丙 火

古书云:丙乃纯阳之火,其势猛烈,欺霜侮雪,有除寒解冻之功,能煅庚金,遇强暴而施克伐也;逢辛反怯,含柔顺而寓平和也。土众成慈,不凌下也,水猖显节,不援上也。虎马犬乡者,支坐寅午戌,火势已过于猛烈,若再见甲木来生,较致焚灭也。由此论之,泄其威,须用己土;遏其势,必要壬水;顺其性,还须辛金。己土卑湿之体,能收亢阳之气;戊土高燥,见丙火则焦坼矣。壬水刚中之德,能制暴烈之火,癸水阴柔,逢丙火而涸干矣。辛金柔软之物,明作和而相亲,暗生水相济;庚金刚健,刚又逢刚,势不两立。此虽举五行而论,然世事人事,何莫不然? 丙火烈炎冲天,文明博爱之性。 丙火生于春,母子健旺,喜水滋木,不宜木过,过旺则水无济火之功。喜金为财,金不宜虚,虚则火锻熔难成。 生于三月,湿土晦火。喜见甲木盘根生助,遇壬癸官杀有用,适庚申必见财丰,忌土重火晦,恐损精神。 生于夏,当权司令。见木生助必有毁灭之灾,有湿土敛火,可生金用财。喜用水制土,不宜水火冲击,水弱无功,反有激火之恐。金水有根,可用调候,运入水乡必荣。 生于秋,性息体休。土重木衰掩息其光,金多水旺必伤体损神,能炼庚金。须阳木生助,遇辛金含恋,反失骄矜之势,弱极必从财, 生于冬,体绝形亡,喜木生有救,寅木最宜,忌水克为患,最惧壬子,遇金,体弱难胜,反助水为患,遇土,则制水护体戌未两土最宜。

丁 火

古书云:丁乃灯烛之谓,较丙火则柔中耳,内性昭融者,文明之象也,抱乙而孝,明使辛金不伤乙木也;合壬而中,暗使戊土不伤壬水也,惟其柔中,故无太过不及之弊,虽时当乘旺,而不致赫炎;即时就衰,而不致于熄灭。干透甲乙,秋生不畏金,支藏卯,冬产不忌水。 丁火柔中,内性昭融,抱乙而孝,含壬而忠,明而不烈火,衰而不穷,若有嫡母,可秋可冬。 丁火生于春,木旺火明,甲乙透干引丁,可木火通明之象;得壬含丁,化气可成,水不伤体反而有情。生于三月,伤官秉令,火少用木,火多用金 。 生于夏,旺而不烈。喜得水润可成既济,忌遇丙夺丁之光;木明成势有水,火明而秀;土燥水枯木干,火浊而晦。 生于秋,体囚有气。有木火比助则明财可用;水狂无木,夺命伤身;土多晦火,气浊神枯,金强体虚,获明清贫。 生于冬,衰而不穷。喜丙火暖局之美,逢甲木有护身之功;癸水杀旺,土制当权;壬水高露,合化失身;金多伤母,恐有破败之灾。

戊 土

古书云:戊为阳土,其气固重,居中得正,春夏气动而僻则发生;秋冬气静则翕,则收藏故而万物之司命也。其气高厚,生于春夏,火明宜水润之,则万物发生,燥则万物则枯;生于秋冬,水多宜火暖之,则万物化成,湿则物病;艮坤者,寅申之月也,春则受克,气虚宜静;秋则多泄,体薄怕冲。或坐寅申日,宜喜静忌冲,又生四季月者,最喜庚辛申酉之金,秀气流行,定为贵格,己土亦然。如柱见木火,或行运遇之,则破矣。 戊土固重中正,动僻宽容,水运物生,火燥物枯。 生于正二月,木旺之际,喜得丙火,见壬水则溃,生于三月,土令当权。土多宜金,土强宜水;木众抑水,火多水适。 生于夏,火旺易燥,喜金水润助;木众无制,戊己过多,阻塞停滞,壬癸虚浮,难济其益。 生于秋,金旺土衰,恐盗其气,身衰惧木,喜火相助,水多恐泛,如越寒露,身旺当权,喜金悦水,厌比恶火。 生于冬:土寒水明,喜火贴身,不惧财杀,恶金泄旺生水,雪上加霜,小寒后,丑土当令,水旺无火恐阴浊,土多火藏透金出秀。

己 土

古书云:己土为阴湿之地,中正蓄藏,藏贯八方而旺四季,有滋生不息之妙用焉。不愁火盛者,其性柔和,木藉以培养,木不克也。不畏水狂也,其体端疑,水得以纳藏,水不冲也,火少火晦者,丁火也,阴土能生金也。格中土气深固,又得丙火去其阴湿之气,更是以滋生万物,所谓且助宜帮者也。 己土生于正二月。喜火暖身,土衰不相,丙火最宜,忌水最怕壬水,生于三月,己土生气弱,劫比也衰,最怕支泄,若劫比旺,见金水入格。 生于夏,火土气盛,最喜壬癸之水;喜金坐旺,勃发秀气,若见火土专明,生助存益,克泄即灾。 生于秋,气虚失令,若火,则宜旺火充气,方能得势,若弱火虚透,反有害无益无火助旺,则喜透金绝水泄秀;无火比弱,则喜金水两旺,若在寒露之后,土令当权,以克衡为宜,偏低为忌。 生于冬,体寒气涩。需扶主,定要旺丙暖生;弃命若从,需以情夺;从金忌木,从木忌金,金木交战卑劣无能,致小寒后,丑土当令,寒土凝结,不以旺论。

庚 金

古书云:庚乃秋天肃杀之气,刚健为最。得水而清者,壬水也,壬水发生,引通刚杀之性,便觉淬历晶莹。得火而锐者,丁火也,不与庚金为敌,良冶消熔,遂成剑戟,洪炉煅炼,时露锋芒,生于春夏,其气稍弱,遇丑辰之湿土则生,逢未戌之燥土则脆。甲本正敌,为能伐之;与乙相合,较觉有情,乙非尽合庚而助暴,庚亦非尽合乙而身弱也,宜详辨之。 庚金架杀,刚健为最,喜水而清,得火而锐,土润则生,土干则脆,能赢甲兄而输乙妹。 庚金生于正二月,木强体弱,得厚土生扶,方见锋锐,若见壬癸其泄之真气;火盛无土,而要从强为宜;水狂无制也能求安,生于三月虽为土令,不可强论,以扶抑论吉凶。生于夏,火旺体伤,若无湿土,有煅炼之危,有壬癸闰局,可以呈祥,见木视而助,遇金扶持壮丽,喜薄土,若土存厚,掩息其光。生于秋,得令当权,遇旺火煅炼,能成器而生光。遇多土培护,反显骄纵愚顽;土薄而见水泮厉,能成名贵宝器,水浅而见土厚,若润浊而频见凶险,木多难施琢削之工;水旺则防身沉,用土生扶,喜燥土为宜;火土共用可调候。小寒后,丑土司令,最喜月令之强,宜用木火,阳暖之地可享。

辛 金

古书云:辛金乃人间五金之质,故清润可观。畏土之叠者,戊土太重而涸水埋金;乐水之盈者。壬水有余,而润土养金者。辛为甲君也,使丙火不焚甲木,合而化水,使丙火不焚甲木,反有相生之象,辛为丙之臣也,丙火能生戊土,使合丙化水。丙火不生戊土,反有相助之美。岂非扶社稷救生灵乎?生于夏而火多。有己土则晦火而生金;生于冬而水旺,有丁火温水而养金;所谓热则喜母,寒则喜丁也。 辛金柔软,湿润而清,畏土之叠,乐水之盈,能抚社稷,能救生灵。 生于正二月,体虚。有劫印生扶而见食伤,当可生财为美,若劫衰印绝而遭克泄,必弃命从势为安。 生于三月,虽为土令,虚土不力,若要见强,须见申酉,强金能贵,弱金无功,生于夏,火旺而金受其克,喜水制火,需壬癸旺,土能泄火扶主,必须湿土轻薄,。生于小暑之后,未土司令,土燥金裂,需水滋润,若无水则精枯神败 生于冬,休寒气凝。若根深体旺,喜丙丁敌寒暖身;若根浅水狂,有甲木以势求安。生于小寒之后,丑土司令,宜用木火,调候可喜。 生于秋,得令透旺,喜壬癸相涵,清明秀丽,印轻见丙丁强透,尊贵显赫。甲乙无根,忌壬癸浮沉;甲乙根深,喜壬癸滋养,水竭无火,不宜逢木,水清盈溢,不宜戊已叠见。

壬 水

古书云:壬为阳水。通河者,即天河也。长生在申,申在天河之口,又在坤方,壬水生此,能泄西南方之杀气,所以为刚中之德也,百川之源,周流不息也,易进难退。如申子辰水,又遇壬癸,其势泛滥,虽有戊已之土亦不能阻其流也。若强制之,反因冲激而致水患,必须用木泄之,顺其势而不致冲奔也,合丁化木,又能生火,不息为妙,化则有情也,生四五六月,柱中火土并旺,若无金水相助,火旺透干则以灭,土旺透干则以土,调合润泽,仍有相济之功也。壬水,江河百川汇,周流不息之情,通根遇癸,冲天奔地,以则相济,化则有情。 生于春,木旺之际,喜见金生,喜火以行,忌土厚,水泛。 生于夏,火旺水涸,喜强金助生,忌土厚体弱,恐招杀克,若见木火昌盛金绝,可以火相济,若逢土燥金衰失用。 生于秋,旺金之乡,得助则清,遇土则浊,火多而财盛,木重而荣,若木轻而无用,水泛无制则可忧,若生寒露之后,戊土当令,防制过,需用金生扶。 生于冬,壬水当权,见木则需火暖局,见土则宜根固火实,若金水气盛无木无火,两神呈象为美,若木火飘虚,遇金强,恐遭伤为殃。

癸 水

古书云:癸水为雨露之水,乃纯阴之水,发源虽长,其必权弱,其势最静,纯润土养金,发育万物,得龙而运,变化不测,所谓逢辰即化,龙即辰也,非真龙而能变化也,得辰而化者,化辰土原神发露也。凡十干逢辰位,必干透化神,此一定不易之理也。不然火土者至弱之性,见火土多即从化矣,不论庚辛者,弱水不能泄金气,所谓金多反浊,癸水也,合癸戊而见火者,阴极则阳生,戊土燥厚,柱中丙火透露,引出化神,乃为真也,若秋冬金水旺地,纵使支遇辰龙,干透丙丁,亦难从化,宜细详之。 癸水至弱,达于天津,得辰而运,功化斯神,不愁火土,不惧庚辛合戊见火化象期真。古人所评,其理至真,癸水生于春,气虚受木泄,务必强金生扶,戊已频见,浊土混清;丙丁透出,勿见庚辛能从;甲乙透干日衰防倾。 生于夏,无气受克,喜根强比助成势,润土滋金得水。火旺无金,弱极而从透已从杀,透戊扶危。 生于秋,母旺子强,通根亥子不遇火土,金白水清而成格 生于冬,寒水茫茫,必须旺火暖身,融通流畅,遇甲乙泄秀,喜丙丁除寒,木火俱无寒极,金强水旺时归禄,贵荣非常。

4. 戊土用神分析

Mobile Preview

阅读全文 »

tiandiren

发表于 2006-09-05 | 分类于 tiandiren

上古之书

天地人三书

天书 易经 地书 山海经 人书 道德经

阅读全文 »

tiandao

发表于 2006-09-05 | 分类于 tiandao
  • 电视剧《天道》改编于畅销小说《遥远的救世主》,由张前执导,王志文、左小青、曾红生及石爻领衔主演。

  • 《天道》是一部中国电视剧史上难得一见的奇剧。毫不夸张的说,没点中国传统文化打底的老外是很难理解丁元英这个人的,尤其他那些奇特的思想。

  • 丁元英未出场,就被评价为“可以是魔,是鬼,但绝对不是人”。有些夸大其词的评价,就因为他有着超常人的思维方式,不按常规出牌,为人处世与众不同,让人不可理喻,似乎一切的人和事都在他的计算之中,就是人们所认为的高人。

经典台词

1.“悟,悟道休言天命;修行勿取真经。一悲一喜一枯荣,哪个前生注定。袈裟本无清静,红尘不染性空,幽幽古刹千年钟,都是痴人说梦。”

2.“你是一块玉,但我不是匠人,我不过是一个略懂投机之道的混子。充其量挣几个打发凡夫俗子的铜板,你要求的是一种雄性文化的魂,我不能因为你没有说出来而装作不知道,接受你就接受了一种高度,我没有这个自信。”

3.“透视社会依次有三个层面, 技术、 制度、和文化。小到一个人,大到一个国家一个民族任何一种命运归根到底都是那种文化属性的产物。强势文化造就强者, 弱势文化造就弱者,这是规律。也可以理解为天道,不以人得意志为转移。”

4.“天下之论道到极致,百姓得柴米油盐,人生冷暖论到极致,男人女人得一个情字。”

5.“所谓真经,就是能够达到寂空涅盘的究竟法门。可悟不可修。修为成佛,在求。悟为明性,在知。修行以行制性。悟道以性施行。觉者由心生律;修者以律制心,不落恶果者有信无证,住因住果,住念住心,如是生灭。不昧因果者无住而住。无欲无不欲。 无戒无不戒。如是涅盘。”

6.如果养儿就是为了防老,那就别 说母爱有多伟大了,您养来养去还是为了 自己,那是交换。

7.但知行好事,莫要问前程。

8.“强盗的本质是破格获取,破格获取和直接获取是两个不同的概念。你们没有自信与强者在同一个规则下竞争,这只能说明你是弱者,因为弱势文化所追求的最高价值就是破格获取。所以,强盗的逻辑从本质上讲是懦弱的生存哲学,所以你不算好汉。”

9.神就是道,道就是规律,规律如来,容不得你思议,按规律办事的人就是神。

10.要想做点事,别把自己太当人,别把别人不当人。

11.“如果一个民族的文化从骨子里就是弱势文化属性,怎么可能去承载强势文化的政治、经济衡量一种文化属性不是看他的积淀的时间长短而是看他与客观规律的距离。五千年的文化是光辉,是灿烂。这个没有问题。但是,传统和习俗得过过客观规律的筛子。”

12.“女人是形式逻辑的典范,是辩证逻辑的障碍,我无意摧残女人,也不想被女人摧残。”

3.过于沉静的外表,恰恰诠释着他内心的沉重。

14.“强势文化就是遵循事物规律的文化,弱势文化就是依赖强者得道的期望破格获取的文化,也是期望救主的文化。强势文化在武学上被称为秘笈, 而弱势文化由于易学、 易懂、易用、成了流行品种。”

15.“你的生存状态不是病态,用佛教得话说是自性,无所挂碍,是自在。自在是什么?就是解脱。”

16.“红颜知己自古有之,这还得看男人是不是一杯好酒,自古又有几个男人能把自己酿到淡而又淡得名贵,这不是为之而可为的事,能混就混吧。”

17.“这就是圆融世故,不显山不露水,各得其所。可品行这个东西今天缺个角,明天裂个缝,也就离坍陷不远了。”

18.“这世上原来就没有什么神话。所谓的神话,不过是常人的思维所不易理解的平常事。”

19.“中国得传统文化是皇恩浩荡的文化,他的实用是以皇天在上为先决条件,中国为什么穷,穷就穷在幼稚的思维,穷在期望救主,期望救恩得文化上,这是一个渗透到民族骨子里的价值判断体系。太可怕了!”

20.那少女长得极为清秀,瓜子脸、柳叶眉,眼如秋水、琼鼻朱唇,神色间有三分天真,七分娇憨。

21.“花天酒地并不违法,只是一种带符号的生活方式。”

22.“着相了,佛教得一个术语,意思是执迷于表象而偏离本质。”

23.言语道断,一说即错。

24.“马克思主义得道理归根到底一句话,客观规律不以人的意志为转移,什么是客观规律,归根到底也是一句话:一切以时间,地点和条件为转移。”

25.“我们这个民族总是以有文化自居,却忘了问一句,是有什么文化,是真理真相的文化,还是弱势文化,是符合事物规律的文化还是违背事物规律的文化,归根到底都是那种文化属性的产物,不以人的意志为转移。”

26.女人与男人的对话方式只有两个,要么躺着,要么站着。所以,我总愿意把你想象成一个流浪街头的醉汉,想收留你,却不敢想象收留你的门槛有多高。你说过,给你扔块馒头就行,可你要的这块馒头太大了,我这个穷家养不活你。

27.“佛说,看山是山,看水是水。我只是依佛法如实观照,看摩登女郎实摩登女郎,看红颜知己实红颜知己。”

28.“当有人笑话耶稣是傻子的时候,其实谁都不傻,仅仅是两种价值观不兼容。”

29.“比如说文化产业。文学、影视是扒拉灵魂的艺术。如果文学影视的创作能破解更高思维空间的文化密码,那么他的功效就是启迪人得觉悟,震撼人得灵魂,这是众生所需,就是功德、市场、 名利、精神拯救的暴利与毒品麻醉完全等值。而且不必像贩毒那样耍花招没有心理成本和法律风险。”

30.“股票的暴利并不产生上产经营,而是产生于股票市场本身的投机性。他的运作动力是把你口袋里的钱装到我的口袋里去,他的规律是把大多数的肉填到极少数狼的嘴里。私募基金是从狼嘴里夹肉。这就要求你得比狼更黑更狠,但是心理成本也更高,而且又多了一重股市之外的风险。 所以,得适可而止。”

31.“灵魂归宿感, 这是人性本能的需要,是人性你帮他找块干净的地方归宿灵魂。”

32.有道无术,术尚可求,有术无道,止于术。神即道,道法自然,如来!

33.“圣经的理由是, 因信着得救了,上天堂, 因不信有罪了 ,下地狱。用这种哄孩子,吓孩子得方法让人去信,虽有利于基督教的实践却也恰恰迎合了人的怕死的一面。贪婪的一面,这样的因果关系已经不给人以自觉自醒的机会,人连追求高尚的机会都没了, 又何以高尚呢?”

34.“改革开放,摸着石头过河,咱们这些人还没有弄清怎么回事就胡里胡涂闯入战场,得先活下来。等定下神来,时代已经变了,真的是穷则思变。可中国毕竟是政治文化搭台,传统文化唱戏,不知道老祖宗的那点东西还能把这条船撑多远。”

35.“一个恕字,我已经有罪了。”

36.“国内信用是个问题,私募基金是没爹没娘的买卖,一边做生意,一边得准备拼刀子,脑后还得长只眼睛看衙门得脸色。”

37.“他跟正常人的思维颠倒了。说鬼话,办鬼事,倒行逆施。但是还有道理,像魔,柏林有个居士说他是极品混混。”

38.“认识这个人就是开了一扇窗户,就能看到不一样的东西,听到不一样的声音,能让你思考、觉悟,这已经够了。其它还有很多,比如机会、帮助,我不确定。这个在一般人看来可能不重要,但我知道这个人很重要。”

39.从心理学角度分析,越是头脑简 单的人越需要点缀和填充,而头脑复杂的 人,则对简洁有着特殊的心理需求。

40.更高的哲人独处着,不是他们享受孤独,而是在他们身边找不到同类!

阅读全文 »

test

发表于 2006-09-05 | 分类于 test

一.单项选择题(必做题,每题3分) 1.在32位平台上,采用默认的结构对齐方式,下列代码的输出为:____ struct S{ char ch; int i; unsigned short ush; }; int main() { printf(“%d\n”, sizeof(S)); return 0; } A. 7 B. 8 C. 9 D. 10 E. 12 2.下列代码的输出为:____ int main() { char ch = 64; ch «= 1; printf(“%d “, ch); ch »= 1; printf(“%d\n”, ch); return 0; } A. -128 64 B. -128 -192 C. 128 64 D. -128 -64 3.下列代码的输出为:____ int main() { int i[] = {0, 0}; int* pi = i; pi++ = 1; printf(“%d %d %d\n”, i[0], i[1], *pi); return 0; } A. 1 0 0 B. 0 1 0 C. 0 1 1 D. 1 0 1 4.下列代码的输出为(注:%p表示输出地址):____ int main() { char pch = 0; short* psh = 0; int* pi = 0; pch++; psh++; pi++; printf(“%p %p %p\n”, pch, psh, pi); return 0; } A. 00000001 00000002 00000004 B. 00000001 00000001 00000001 C. 00000004 00000004 00000004 D. 00000000 00000000 00000000 E. 程序会崩溃 5.静态库a.lib中定义了一个全局对象g,b.dll、c.dll和d.exe都依赖于a.lib,并且都访问了全局对象g,d.exe启动后会加载b.dll和c.dll,d.exe运行时,进程中有几个全局对象g的实例:____ A. 1 B. 2 C. 3 D. 4 E. 程序链接时会出错 6.下列代码的输出为(假设CParent和CChild有正常的构造函数):____ class CParent{ public: void Intro(){ printf(“I’m Parent, “); Hobby(); } virtual void Hobby(){ printf(“I like football!\n”); } }; class CChild : public CParent{ public: void Intro(){ printf(“I’ m Child, “); Hobby(); } virtual void Hobby(){ printf(“I like basketball!\n”); } }; int main() { CChild* pChild = new CChild; CParent* pParent = (CParent)pChild; pParent->Intro(); return 0; } A. I’ m Child, I like football! B. I’ m Child, I like basketball! C. I’ m Parent, I like football! D. I’ m Parent, I like basketball! 7.在x86平台上,下列哪个输出是合理的____ void Func(int a, int *p) { printf(“%p, %p, %p”, &a, &p, p); } int main() { int a = 0, b = 0; Func(a, &b); return 0; } A. 0012FD80, 0012FD7C , 0012FE70 B. 0012FE70, 0012FD7C, 0012FD80 C. 0012FD7C, 0012FD80, 0012FE70 D. 0012FE70, 0012FD80, 0012FD7C 8.下列哪个输出是合理的____ class A{ public: virtual void Fun1() = 0; int m_a; }; class B{ public: virtual void Fun2() = 0; int m_b; }; class C : public A, public B{ public: C(){} ~C(){} virtual void Fun1(){} virtual void Fun2(){} }; int main() { C pC = new C; A* pA = (A)pC; B pB = (B)pC; printf(“%p %p %p\n”, pA, pB, pC); return 0; } A. 00372F48 00372F50 00372F44 B. 00372F48 00372F50 00372F48 C. 00372F48 00372F4C 00372F48 D. 00372F48 00372F48 00372F48 E. 00372F48 00372F48 00372F50 9.下列哪种进程间传输数据的方法系统开销最小____ A. 有名管道 B. 匿名管道 C. 网络套接口 D. 共享内存 10.下列哪个操作过程中最不可能发生进程切换(假设进程中只有一个线程)____ A. printf B. fprintf C. sprintf D. 以三种情况概率差不多 11.在多线程程序中,不被线程共享的是_____ A. 全局变量 B. 堆 C. 栈 D. 线程函数中申明的静态局部变量 E. 线程函数对应的代码段 12.将两个长度为 n 的递增有序表归并成一个长度为 2n 的递增有序表,最少需要进行关键字比较几次__ A. n(n-1) B. n-1 C. n D. 2n 13.已知一棵二叉树前序遍历和中序遍历分别为ABDEGCFH和DBGEACHF,则该二叉树的后序遍历为____ A. GEDHFBCA B. DGEBHFCA C. DGBCEFAH D. DGBEHFCA 14.双向链表重的每个节点有两个指针,next指向下一个节点,prev,指向前一个节点,现要将新节点q插入到p节点后,假设p不是最后一个节点,下列操作哪个是正确的:____ A. q->next = p->next; p->next = q; q->next->prev = q; q->prev = p; B. q->next->prev = q; q->prev = p; q->next = p->next; p->next = q; C. p->next = q; q->next = p->next; q->next->prev = q; q->prev = p; D. q->next->prev = q; q->prev = p; p->next = q; q->next = p->next; 15.从0到2006,一共出现过多少个1,例如,“1”中有一个1,“11”中有两个1,“81”中有一个1,____ A. 1658 B. 1659 C. 1600 D. 1601 E. 1602 F. 1603 二.填空题(必做题,每题3分) 阅读下列程序或函数说明和 C 代码,将应填入__N处的字句写在答题纸的对应栏内。 [函数2.1说明] 函数strcmp()是比较两个字符串 s 和 t 的大小。若 s < t 函数返回负数;若 s = t 函数返回0;若 s > t,函数返回正数。 [函数2.1] int strcmp(char *s,char *t) { while ( *s && *t && __16){ s++;t++ ; } return 17; } [程序2.2说明] 在 n 行 n 列的矩阵中,每行都有最大的数,本程序求这 n 个最大数中的最小一个 [程序2.2]

2. include〈stdio.h〉

3. define N 100

int a[N][N]; void main() { int row ,col ,max ,min ,n; /输入合法 n (〈100 ),和输入 m ×n 个整数到数组 a 的代码略/ for ( row = 0;row < n;row++) { for ( max = a[row][0],col = l ;col < n;col++) if (18) max = a[row][col]; if (19) min = max; else if(20) min = max; } printf (“The min of max numbers is %d\n”,min); } 三.单项选择题(应聘非图形工程师的请选做此大题,每题3分) 21.关于IP,下列哪个说法是错误的____ A. 不可靠 B. 两点间跨越多个网络,每次通信路由是一样的 C. 两点间跨越多个网络,先发送的包不一定先到 D. IP层不提供流量控制功能 22.关于TCP,下列选项中哪个说法是错误的____ A. 可靠的 B. 面向连接 C. 提供流量控制 D. 终止TCP连接的正常方式是发送一个RST E. TCP建立一个连接需要3次握手,终止一个连接需要4次握手 23.关于套接口API,下列哪些说法是错误的____ A. 调用connect之前可以调用bind函数,指定源IP地址和端口; B. 如果是TCP套接口,函数connect激发TCP的三握手过程; C. listen函数的第二个参数backlog,表示该监听套接口允许接受的最大连接数; D. 如果不设置任何套接口选项,在调用closesocket(linux中是close)后,缓冲区中没有被发送的数据将继续发送 24.对于一个没有设置任何套接口选项的阻塞套接口,调用recv接收对方的数据,对方发送数据前突然断电,下列哪种情况将会发生____ A. recv永远不会返回 B. recv立刻返回-1 C. recv立刻返回0 D. recv在等待很长一段时间后返回-1 25.下列哪个工具必须用到TTL____ A. ping B. traceroute(windows下的tracert) C. netstat D. ifconfig(windows下的ipconfig) 四.单项选择题(应聘图形工程师的请选做此大题,每题3分) 26.哪种效果可以不用模版缓冲(stencil buffer)实现____ A. 图形合成(Compositing) B. 贴花(Decaling) C. 消融(Dissolves) D. 阴影(Shadow) E. 反锯齿(Antialiasing) 27.在DirectX9中的规范化剪裁空间里,默认的z值得范围是多少____ A. -1.0 ~ 0.0 B. 0.0 ~ 1.0 C. -1.0 ~ 1.0 D. float值域 28.请写出用正交矩阵转换3D空间中的顶点和转换发向量之间的差别____ A. P’ = P (x, y, z, 0) * M N’ = N (x, y, z, 0) * M B. P’ = P (x, y, z, 0) * M N’ = N (x, y, z, 1) * M C. P’ = P (x, y, z, 1) * M N’ = N (x, y, z, 0) * M D. P’ = P (x, y, z, 1) * M N’ = N (x, y, z, 1) * M 29.以下那项是描述材质的漫反射属性____ A. Diffuse B. Ambient C. Specular D. Emissive 30.以下哪项技术不能用来进行可见性判别____ A. bsp/pvs B. Octree C. quad tree D. DAG(directed acyclic graph) E. sector 五.问答题(必做题,共25分) 1.进程切换速度越快(耗费在切换上的时间越短),操作系统越好,不修改内核,不写驱动,仅编写普通应用程序,如何对进程切换速度(耗费在进程切换上的时间)进行大概的测量,请用文字(或伪代码)描述你的方案。(10分)

2.休闲游戏中,假设一个游戏大厅可容纳1000人,当玩家进入大厅后,可以看到大厅中的在线玩家列表,由于1000个玩家太多,所以一次显示1页就可以了,每页中有10个玩家。为了突出显示分数高的玩家,玩家列表是按分数排序的,最高分是第1页的第1个玩家,第1页最后一个玩家的分数高于或等于第2页第1个玩家的分数。若游戏客户端是按页来请求玩家列表的,一次请求一页,例如请求第5页时返回41-50个玩家,频道中每秒大概有1个玩家进或出,每秒大概有100个玩家列表请求,如果由您来完成服务器的这个功能,您会怎么做,当然要使效率尽可能高,请写出算法方案,不用写代码。(15分) 注:所有操作都是在内存中进行的,不进行涉及I/O操作的存储。

阅读全文 »

task

发表于 2006-09-05 | 分类于 task

1. 想法

  1. 公司内征集 开源项目 让整个系统活跃起来。
  2. AI相关的应用(例如:AI自动绘图) 与游戏接入
  3. 鼓励小团队 业余时间 自研项目, 并且由中心提供技术支持, 提供额外升迁途径, 树立几个榜样。

2. 管理:

  1. 把需要操心的事情交给喜欢操心的人.
  2. 传播正能量 善良感恩责任, 提升凝聚力.
  3. 根据 算法模型 选择合适的人. https://humandesign.org.cn/

3. 不同业务体系的运作模式

  1. 执行 调度 反馈 (万能型 优点: 可以自适应 缺点: 依赖反馈信息准确性 )
  2. 执行 检查 监督 (军事型 优点: 适合重复性工作 缺点: 导致团队有信任问题 )
  3. 调查 设计 执行 (专家型 优点: 可以从0到1突破 缺点: 容易脱离现实 )

竖排

历程日干 长生 沐浴 冠帶 临官 帝旺 衰 病 死 墓 绝 胎 养
甲 亥 子 丑 寅 卯 辰 巳 午 未 申 酉 戌
乙 午 巳 辰 卯 寅 丑 子 亥 戌 酉 申 未
丙 寅 卯 辰 巳 午 未 申 酉 戌 亥 子 丑
丁 酉 申 未 午 巳 辰 卯 寅 丑 子 亥 戌
戊 寅 卯 辰 巳 午 未 申 酉 戌 亥 子 丑
己 酉 申 未 午 巳 辰 卯 寅 丑 子 亥 戌
庚 巳 午 未 申 酉 戌 亥 子 丑 寅 卯 辰
辛 子 亥 戌 酉 申 未 午 巳 辰 卯 寅 丑
壬 申 酉 戌 亥 子 丑 寅 卯 辰 巳 午 未
癸 卯 寅 丑 子 亥 戌 酉 申 未 午 巳 辰

蓝星星辰工作室 绿色星辰工作室 红色星辰工作室

4. 和田十二法


1. 加一加:加高、加厚、加多、组合等。
2. 减一减:减轻、减少、省略等。
3. 扩一扩:放大、扩大、提高功效等。
4. 变一变:变形状、颜色、气味、音响、次序等。
5. 改一改:改缺点、改不便、不足之处。
6. 缩一缩:压缩、缩小、微型化。
7. 联一联:原因和结果有何联系,把某些东西联系起来。
8. 学一学:模仿形状、结构、方法,学习先进。
9. 代一代:用别的材料代替,用别的方法代替。
10. 搬一搬:移作他用。
11. 反一反:能否颠倒一下。
12. 定一定:定个界限、标准,能提高工作效率。
阅读全文 »

table

发表于 2006-09-05 | 分类于 table
  • 前言
阅读全文 »

strategics

发表于 2006-09-05 | 分类于 strategics

《孙子兵法导读》课复习题整理

一、 历史上记载和今天流传的《孙子兵法》各是多少篇? 《汉书•艺文志》记载82篇 流传的13篇 二、 《孙子兵法》有哪些重要版本? 魏武帝注孙子/最早注释本 十一家注孙子/最通俗易懂 武经七书本孙子兵法/最流行版本 银雀山汉墓竹简本/最早

三、 《孙子兵法》为什么受到中外各界人士的广泛重视? 东方重整体,重谋略,重胜负结局,忽略过程。西方重过程,重细节,战略思维相对不发达。 孙子兵法包含了中国古代军事文化的一个重要特征:论兵又不囿于兵的大战略的军事文化观念,它的思想可以涉及到除军事以外的政治,外交,经济以及企业管理,体育等各个方 面,因而各个领域的人们都会从孙子兵法中汲取它的思想) 四、 从《孙子兵法》中我们可以看到中国传统军事文化的哪些特点? 论兵又不囿于兵的大战略的军事文化观 追求和平,最大限度地制止战争暴力的求善态度 尚智善谋、因情用兵的战法偏好

五、 什么是“五事七计”? 预测战争胜负,谋划战争全局,揭示出战争活动的特点是诡诈奇谲,精辟阐述了诡道制胜的基本原则 五事:道天地将法 其中将包括智信仁勇严 七计:主孰有道、将孰有能、天地孰得、法令孰行、兵众孰强、士卒孰练、赏罚孰明,以此知胜负

六、 “诡道十二法”的主要内容和思想宗旨是什么? 能而示之不能 用而示之不用 近而示之远 远而示之近 利而诱之 乱而取之 实而备之 强而避之 怒而挠之 卑而骄之 佚而劳之 亲而离之 出其不意,攻其不备,此兵家之胜,不可先传也。 1摒弃了周朝礼制思想下的道德面纱, 2揭示出战争活动的特点是诡诈奇谲, 3精辟阐述了诡道制胜的基本原则,要求将帅们根据“攻其不备,出其不意”的原则 ,靠欺敌误敌、示形动敌、避实击虚等诡诈战法来取胜

七、 从“兵贵胜,不贵久”的思想看战争消耗对现代战争的制约的影响。 战争旷日持久会造成国家财力的极大消耗 会加重人民的负担,造成社会动荡 会因国内空虚引发其他国家入侵 省财用,惜民力 这说明经济消耗很大;战争持久,对军事形势不利。战争打久了,军队在物质、精神方面都有根本的损耗,虽然可以采取各种办法来维持军队的战斗力,但由于伤亡逐渐增大而不断地招募兵员,以及武器装备大量耗损而不断地需要补充,使国家的人力、物力逐渐困难,人民的厌战情绪就会日趋强烈,士气日趋低落。战争持久,国家之间的关系会起变化 八、 从现代后勤保障的角度,评价孙子的“因粮于敌”思想。 “因粮于敌”是指在敌国境内作战时,就地补充军粮马草,这样做不仅是为了节省长途运输带来的巨大耗费,也可以借此削弱敌方的战争潜力和后勤补给能力,收取事半功倍之效。 现代战争中,由于战争的消耗越来越巨大,后勤保障问题显得越来越突出,而孙子兵法提出的“因粮于敌”思想提供了一种重要的方法。 美国在海湾战争中耗资600亿美元,伊拉克战争直接军费超过7000亿 战场补给能力和自助生存能力

九、 怎样理解中国古代兵学家提出的“将在外,君命有所不受”的思想? 故君之所以患于军者三: 不知军之不可以进而谓之进,不知军之不可以退而谓之退,是谓糜军。 不知三军之事而同三军之政者,则军士惑矣。 不知三军之权而同三军之任,则军士疑矣。 三军既惑且疑,则诸侯之难至矣,是谓乱军引胜

国君不亲临战场很难了解战场态势、军事行政规律和军事权谋特点,如果在不知己的条件下指挥,会扰乱正常的军队战斗,甚至导致战斗失败。需要将能而君不御 不仅表现在从原则上给军人指明了解决服从命令与机断处置的矛盾冲突的途径,并使主体自身的道德自由和道德责任在互生的基础上达到了和谐统一。 不过话又说回来,军事永远不能脱离政治,国君干涉将领指挥军队很可能是对将领不放心,出于国内政治的考虑。(桓温?)如何处理好这一对矛盾需要军事指挥的艺术,更需要政治的艺术。 “将在外,君命有所不受”出自《孙子兵法》中《九变》篇,原文“途有所不由,军有所不击,城有所不攻,地有所不争,君命有所不受。”指出在前线带兵作战的将领,要根据战场上的时机情况做出各种判断,要精于变通,而不应拘泥于君臣关系。 将在外君命有所不受的说法,是对当时君臣关系一定程度的否定。当然,这种否定是有限度的。它是给在外之将的一种放权。主旨在于赋予在外指挥之将以依据实情临机处事的权力,就其不唯上而唯实这一点说,它当是一个唯物主义的命题。 在当时的环境下,这种不为君命所缚,而坚持实事求是的思想路线,是历史的一大进步,在今天仍然有其重要的现实意义。十一届三中全会正是冲破了“两个凡是”思想的束缚,针对中国的实际情况,做出改革开放等重大决定,开创了建设有中国特色社会主义的伟大事业。 十、 谈谈你对“知彼知己,百战不殆”的看法。【谋攻篇第三】 知彼比知己难,所以知彼在前 “知彼知己”能够“百战不殆”,并不能够“百战百胜” “知己知彼,百战不殆”出自《孙子兵法》中《谋攻》篇,原文是“知彼知己者,百战不殆;不知彼而知己,一胜一负;不知彼,不知己,每战必殆。”孙子认为,兴兵作战是可以预知胜利的,这是必须以熟知下面五种情况为前提:知道可以打或不可以打;懂得根据兵力多少而采取不同战法;三军将帅同仇敌忾,上下同心;以有戒备的军队对待防御松弛的军队;将帅有才能而君主不加牵制。总之,既了解敌方情况又深知己方状况,每次作战都不会处于险境,更不会失败;不了解敌人情况,只熟悉己方情况,打起仗来胜负各半,既可能打胜,也可能打败;既不了解敌方情况,又不熟悉己方情况,每次作战都会处于险境,一定要吃败仗。 孙子在其兵法“谋攻”篇中所提出的“知已知彼,百战不殆”的兵学思想,千百年来已被无数的人们运用到各个领域。这句话不仅适用于战场,同时也适用于商场政界。他强调了信息的重要性,深刻了解敌我双方,做到对敌我双方心中有数,最终到达百战不殆的目的。

十一、 结合《计》篇中的“将之五德”与《九变》篇的“将之五危”,谈谈孙子的将帅修养思想。 智信仁勇严 故将有五危:必死,可杀也;必生,可虏也;忿速,可侮也;廉洁,可辱也;爱民,可烦也。凡此五者,将之过也,用兵之灾也。覆军杀将,必以五危,不可不察也

十分重视战场上将帅的功用,指出夫将者、国之辅也。将帅统领三军,他的一个命令,一个行动,不仅关系到三军将士的生死,还关系到国家的安危、百姓的存亡,因此,孙子极力主张将帅要有良好的个性修养,要有大将风度,要冷静沉稳,不急不躁,处变不惊,从容对敌。这是孙子“慎战”思想的具体体现。分别从正面和方面来提出要求 “将之五德”指的是智信仁勇严。智,是指善于随机应变,深知因事变通。信,是指赏罚分明。仁,爱护下属。勇,果敢而不迟疑徘徊。严,有威严。孙武把”智”放在五德的第一位,表明了他对指挥才能的重视。五德有着极为宽泛的社会伦理意义,是在更高的道德意义上赋予了一种敢于坚持功利原则的军事伦理内涵。这五个方面是相辅相成,不可分割的一个整体。如果片面强调某一方面或忽视某一方面,都有损于塑造将帅完整的武德形象。但是其核心是仁,离开了这一核心,其它“四德”就有可能失去正面的伦理价值,就会变成“奸智”,“愚信”,“鲁勇”,“严酷”等。

“将之五危”指的是必死,可杀也;必生,可虏也;忿速,可侮也;廉洁,可辱也;爱民,可烦也。有勇无谋,只知死拼,可能会被诱杀;临阵畏怯,贪生怕死,可能会被俘虏;急躁易怒则经不起刺激;廉洁好名则受不了侮辱;一味“爱民”则会因掩护居民而遭受烦扰。所以说将帅们不仅要注意培养领导者的基本素质,还要避免一些人格上的缺陷,不断可知这些缺点,时时警告自己,提醒自己。从“失当”角度提出了“五危”的道德戒律,五危前者为破,后者为立,破立结合,将帅之德乃可修之。

十二、 如何理解“恃吾有以待”与“无所不备,无所不寡”二者的本质区别?

“恃吾有以待”主动防御,积极防御讲的是应敌制变的策略,不要侥幸指望敌人不来袭我,而要依靠自己随时应付敌来的充分准备;处处加以防备,就处处薄弱在准备御敌之前,我们要兼权利害,熟计得失,从正反两面思考问题,然后有针对性地最好部署,因而这种部署是主动地。“无所不备,无所不寡”是被动防御,消极防御在被别人牵动的情况下,部分轻重缓急,处处防御也就处处薄弱,被动的在不同的地段布置兵力,结果逸者变劳,饱者变饥,处于被动挨打的局面。 十三、 谈谈对“令之以文,齐之以武”思想的理解。【行军篇第九】 卒未亲附而罚之则不服,不服则难用也;卒已亲附而罚不行,则不可用也。故令之以文,齐之以武,是谓必取 正反两个方面,充分体现了孙武的辩证思维。要用“文”的手段,即用政治、道义教育士卒;用“武”的方法,即用军纪、军法来统一步调。这样的军队,打起仗来就必定胜利。孙子在如何治军这一问题上强调要文武兼施、刑赏并重。“文”的手段,在用政治、道义教育士卒的同时,还包括爱护士卒和奖赏士卒。但是,孙子在强调要“视卒若爱子”(《地形篇》)的同时,还告诫:“如果士卒对将帅已经亲近依附,但却不能执行军纪军法,这样的军队也是不能打仗的。” 卒已亲附而罚不行,则不可用也。言下之意是,对士卒不能放纵。“武”的手段,以军纪军法(惩罚直至杀头)约束士卒,使士卒畏服,但孙子同时又指出:将帅在士卒亲近归附之前,就贸然处罚士卒,士卒就不会顺服,卒未亲附而罚之则不服,不服则难用。也这样的军队也是不能用来打仗的。言下之意是:使用“武”的手段,要掌握住分寸。孙子文武兼治、刑赏并重的治军原则就是在这些情况下制定出来的。不过,无论是“文”还是“武”,或者“文武”结合,目的只有一个:让士卒们去拼命作战 十四、 怎样理解“地形者,兵之助也”?【地形篇第十】 首先,我们应认识到,战地的形势,有的就利于作战,有的就不利于作战。要想利用地形,辅助作战,一定先要明了战地的形势,以便开进、展开、攻击、防御时,借以立胜。地形是影响战争胜负的一个因素。 但是地形不过是用兵的辅助条件,它需要我们一方面要正确地了解和判断敌情,以求克敌制胜;另一方面要准确地计算地形的险易远近,以便对军队的开进、机动和部署,阵地的选择、使用和伪装作出正确的抉择,从而把敌情分析与地形利用有机地联系起来。所以怎么去利用地形变成了关键。在军事上,不同的地域具有不同的优势;这说明,内因才是决定因素,外因是辅助因子。举例子改革开放 十五、 为什么将领要具备“进不求名,退不避罪”的优秀品质? 将领如果进为求名,当从战争的道理上看,必然会失败,就是国君说一定要打,他就会为了邀功而采取进攻。但这必然会失败。将领如果为了避罪,当从战争的道理上看,必然会胜利,就是国君说不要打,他就会不进攻而丧打败敌人的机会。“进不求名,退不避罪,惟民是保,而利合于主”的美德,这样才是算是个真正的“知兵者”,才能够“动而不迷,举而不穷”,避败道而打胜仗 战场的客观实际而非国君的主观喜好 十六、 如何认识“为客之道,深入则专”? 大凡在敌国境内作战,越是深入腹地,士兵取胜的意志便越是专一,军心愈加稳固;相反,进入敌境越浅,军心便越容易涣散 这句话的意思是越是深入敌境,士兵的斗志就越高,战斗的意志就越强。这时在丰饶的原野上要掠取粮草,使全军得到足够的给养;谨慎休养战士,勿使疲劳;提高士气,积蓄力量,部署战斗,巧设计谋,使敌人不可揣测。然后把队伍投放到别无去处的地方,就是牺牲也不会逃跑;却又求死不得,所以战士都愿意尽力。因为战士的心理过于陷入险地,就转而不恐惧;别无去处,团结就转而巩固;深入重地,胆量就转而壮大;形势危迫不得不战,就转而悉力以斗。因此,这种军队不行整饬却都知道戒备,不待严责却都自愿出力,不待约束却都能亲爱互助,不待命令却都能信从不违,禁止迷信和谣言,以免摇惑军心,削弱斗志。这样一来,战士至死也不会开小差。 十七、 谈谈在现代战争中“并敌一向,千里杀将”的理论意义。 所以说兵法的道理,在于周详了解敌人的意向,知己知彼,然后集中优势兵力,打击敌人一点,才能做到千里杀将,这就是以技巧成功击败敌人啊 它是讲假装顺从敌人的意图,一旦有机会就集中兵力大败敌人,擒杀将领,但这里把握时机,抓住突破口是关键,就如孙子所说“巧能成事”,“巧”是题眼!战争是以一定的人力、物力、财力为基础的力量的较量,在狼烟滚滚的战场上,战争双方的人力、物力、财力是在不断变化的。即使是力量占绝对优势的一方,在某一局部地区、某一特定天时之下、某一个时刻,它的“优势”也可能转化为劣势;反之,即使是人力、物力、财力都完全处于劣势的一方,只要军队的统帅运筹得当,他就可以利用特定的天时、地利和时间在局部上变劣势为优势,从而改变整个战局的形势。俗话说:“机不可失,时不再来。”关键在于是否能把握住时机、抓住时机,从而,集中兵力,形成局部优势,乘机而入,以石击卵,赢得胜利。因此,当我方在总体处于劣势时,要在局部找优势,集中兵力,攻击一处。 十八、 如何正确理解孙子“胜可知而不可为”的思想? 胜利与否可以由我们来推导,但是决定胜利的因素却不是我们所能左右的,验证了中国的古训,尽人事听天命。这是朴素辩证法在军事思想中的体现。 孙子的这种思想有两方面含义:一方面,提出“胜可知”,坚持了“可知论”,强调了人的“主观能动性”,主张人可以知道军事胜利的途径,并可以据此发挥人的主观能动性争取胜利,驳斥了不可知论和听天由命的消极思想,这在迷信盛行的春秋时期有着积极、进步的意义。另一方面,指出了“不可为”,坚持了“一切从实际出发”和“事物是变化”的观点,强调了战场上变化多端的客观条件对人争取胜利这一主观努力的制约作用,人们不可能完全按照主观意志“创造”胜利,驳斥了高估主观作用,不顾客观实际的唯心思想。两者构成了我们在战场上分析如何取得胜利的前提。

十九、 谈谈对“奇正相生”的理解。 “奇”与“正”是一对哲学范畴。“正指的是正常;“奇”指的是异常。“奇”与“正”相辅相成,能互相转化。奇正,人们通常认为常法为正,变法为奇。奇正是相互依存相互转化的,好像一支圆环是圆的,没有一处是它的头。正兵和奇兵是辩证的统一,是为将者必须掌握的重要法则,奇中有正,正中有奇,朴素的辩证法的观点。 举例在军队部署上,担任正面进攻的部队为正,两侧偷袭的为奇;担任守备的部队为正,机动部队为奇;担任钳制的部队为正,突击的部队为奇。在作战方式上,对阵交锋为正,迂回侧击为奇。在战争原则上,按照常规,运用一般原则的为正,按照特殊情况,灵活应变的为奇。 “奇正相生”的思想受到各派兵家的重视。其中孙武的后辈孙膑运用得得心应手。他主张以奇制胜,以神秘莫测的战法战胜常规战法。孙膑指挥的桂陵、马陵一战,就是以奇制胜的杰出范例。 二十、 怎样理解“势险”与“节短”的辩证关系? 述了战斗部署应该去谋取压倒敌人的迅猛之势,并要善于用其制胜的道理,这种势就像可以漂起石头的激流,如同能快速捕杀鸟鲁的凶鹰恶鹫,相当于一触即发的张弦弓弩,具有不可抵挡的力量;用这种力量打击敌人,就能够以一当十,迅猛歼灭对方。 出自势篇 “激水之疾,至于漂石者,势也;鸷鸟之疾,至于毁折者,节也。是故善战者,其势险,其节短。势如扩弩,节如发机。” 按照孙子的理解,“势险”相当于张满弓弩,它集中了强大的力量,是克敌制胜的物质基础;而“节短”则像将射箭发射出去的扳机,它把握着运用力量转的距离、时机和节奏,是将力量转化为迅猛的手段。因此作战中,一方面要集中优势兵力,谋取压倒敌人的迅猛之势,另一方面要让进攻的节奏紧、距离段、时机好,将优势转化为胜势。 两者是对立统一,密不可分的关系。“势险”是“节短”的前提,是取得胜利的物质基础,没有不可抵挡的力量(“势险”),对这种力量迅猛有效的运用(“节短”)接无从谈起;节短是“势险”的目的,是在“势险”对距离进、节奏紧和时机好的准确把握,没有这种对强大力量的有效运用(“节短”),先前造势取得的的就失去了意义。两者构成了取得胜利的基本原则,有机的配合才能保证胜利。 举例:林彪的平型关大捷,刘伯承是神头岭大捷。这个自己想。

二十一、 如何看待孙子“求之于势”的思想? 胜败的关键要从战势上寻求,决不责成部属。所以能选择部属因势器使。因势使用人民战斗的人,如同转动木头、石头一样。木头、石头的性质,放在安稳平坦的地方就静止,放在险陡倾斜的地方就滚动,方形的就停止,圆形的就滚动。所以善于因势使用人民战斗,如同转动圆石头从八千尺高的山上滚下来一样,这是指挥上所造成的一种大好的战势呀。 二十二、 为什么说兵法“千章万句,不出乎制人而不制于人”? 兵法虽变幻诡譎(JUE、欺诈、玩弄手段),不可方物,但核其要旨,不外乎反复申明争取主动,陷敌被动,藉以达避实击虚,”兵不顿而利可全”的战略目的。所以,一面教人邃(SUI)密神速,勿露真形于敌,一面叫人分化敌人,易寡为众,然后,再集中优势兵力,对敌人意想不到,或疏忽警戒的防线,施行突袭,各个予以击破。致人而不致于人是夺取胜利的保证。 二十三、 如何作到“形人而我无形”? 策之而知得失之计;作之而知动静之理,形之而知死生之地;角之而知有余不足之处。一、(精确而详审地去)估计敌情,以求推知它作战计划的得失。二、用诈术誑(kuang)诱敌人,(且看反应如何?以求)了解它动静的规律,三、察看敌人占据的地形,以求了解哪里是死地,哪里是活地。四、试行同敌人角力,以求了解哪儿兵力有余,哪儿兵力不足。 二十四、 谈谈你对“以迂为直”的理解。 以迂为直,其实简单的说就是选择阻力最小的方向实现自己的目的。迂指走远路,直走捷径。整句话的意思是隐藏行动目的,避开敌方阻截,故意走远路,在敌方防守薄弱处发起攻击。大凡用兵的法则,将帅接受国君的命令,从征集民众、组织军队到同敌人对阵,在这过程中没有比争取先机之利更困难的。争取了先机,才能使自己处于主动的地位,使敌人处于被动的地位,而以迂为直,以患为利,则是争取先机的条件。“迂直”谋略是一种辩证的“进道若退”之术。这告诉我们在具有对抗性质的领域里,分析问题,制定决策,不仅要用顺向思维方法,而且还要善于运用逆向思维方法,要全局在胸,把着眼点放在长远的、有关全局的最终利益上。从相反中求相成”。声东往往是为了击西,屈膝往往是为了求伸,今日的联合可能旨在明日的吞并,空间上的让步意在时间上的争取,为了更好的一跃有时需要后退数步。而“以迂为直,以患为利”军事谋略思想的精义即在于此。 二十五、 《孙子兵法》“夺气”与“夺心”的现代理论价值是什么? “夺心”思想的现代价值是什么?夺气,指的是使敌人疲惫沮丧、锐气挫伤。夺:打击,挫伤。气:士气,避其锐气,击其惰归。夺心,挫败将领的意志和理智。“攻心夺气”是孙子心理战的基本战法之一。在体育竞技中,”攻心夺气”就是通过对对手心理施加影响,使其情绪低落、全身无力、意志消沉、反应迟钝,难以发挥应有竞技水平的软性杀伤战术。在外交上,“攻心夺气”能使自己在谈判桌上,掌握主动地位,使谈判向着有利于自己的方向发展。总之,对于现代社会中各种对抗性的竞争中,当双方处于一种僵直持久相持的阶段是,士气意志成了决定胜负的因素,因此在这时,如何攻心夺气显得尤为重要 二十六、 怎样理解《孙子兵法》的战后“修功”思想? 夫战胜攻取而不修其功者凶,命曰费留。保证胜利,巩固胜利。西方军事理论把 战争看做政治斗争的最后手段,既然是最后手段,那么只要取得胜利政治斗争的目的就达到了,就行了。孙子兵法认为,战争的目的是取得胜利,这个固然重要,但是更重要的是巩固胜利,即使取得了胜利却没有有效地巩固胜利也是很不好的。因此把战后修功提升到一个战略高度,加以重视。 举例,美国进攻伊拉克。

二十七、 如何理解孙子的“安国全军”的慎战观? 孙子在火攻篇讲到,国君不能仅凭怨怒而发动战争,将军不能仅凭愤怒而开战。因为战争直接关系到国家的存亡,人民的生命与财产。怒可以转喜,愠可以复悦,但国家灭亡了是不能复存,人死了不能复生。因而,我们只有从敌人那获得利益才发动战争。孙武在本篇结尾部分谈到了要慎重启战的问题。如说“主不可以怒而兴军,将不可以愠而致 ”,这对于战争的决策者无疑是有益的告戒。 怒可以复喜,愠可以复悦,亡国不可以复存,死者不可以复生。故明主慎之,良将警之,此安国全军之道也 二十八、 什么叫“五间”? 因间者,因其乡人而用之。   内间者,因其官人而用之。   反间者,因其敌间而用之。   死间者,为诳事于外,令吾间知之,而传于敌间者也。   生间者,反报也。 二十九、 为什么现代高科技侦察手段不能完全取代“以人为间”? 现代高科技侦察手段只是物,是外因。对于敌我双方而言,再高明的侦察手段,敌我同样可以使用,因而在间的方面,争夺的焦点依然是人。孙武指出,派出间谍进行战略侦察,是一项十分机密的工作。因此对谍报人员要特殊看待,在感情上要特别亲近,”三军之亲,莫亲于间”;在奖励上要特别优厚,”赏莫于间”;在使用上要特别信任,”事莫密于间”。而要能做到这些,掌管和使用间谍的人,必须有超人的智慧,仁义的胸怀,善于分析的头脑,所谓”非圣智不能用间,非仁义不能使间,非微妙不能得间之实”。用间,只有通过亲密的信任的,聪明谨慎的人才能充分利用高科技侦察手段,从敌人那获得有价值的信息为自己所用。

阅读全文 »

seven

发表于 2006-09-05 | 分类于 seven

1. 七宗罪综述

阅读全文 »

dizhi

发表于 2006-09-05 | 分类于 dizhi

1. 丙火日行运口诀

丙日甲运是枭神,披麻失财小人侵;五年虽然无大害,阴多晴少不安宁。

丙日乙运是印绶,太阳见木反为仇;莫言此运全无事,求得马来人难周。

丙运比肩大吉祥,好似子牙遇文王;凡事作为皆称意,家事顺风人丁旺。

丙日丁运是劫财,丙夺丁火且无灾;出入求谋只管去,逢凶化吉福禄来。

戊运食神则无妨,身旺逢此不见伤;但言五年大吉利,兴隆无败度时光。

丙逢己字伤官运,东去西来事无成;虽然谋财见其利,春草下塘枉费心。

庚运偏财且顺遂,谨慎作事方如意;五年进财恐跌跤,艳花无子又无益。

辛运正财运渐高,添人进口家富豪;任君谋为皆称意,船遇顺风说运好。

丙日壬运是七杀,太旭峥水不须夸;不妨五载无灾祸,财如湧泉雨復花。

丙日见癸好运程,何劳辛勤费精神;推来万般都是命,只是由命不由人。

子运正官事事强,家宅清洁人安康;商艺求财多如意,蛇变蛟龙福禄旺。

丙日丑运是正财,内藏己土有小灾;非为谨慎换吉利,无心插柳柳成荫。

丙日寅运是长生,身弱逢此两相因;叵道五年全无事,须防小灾敬神灵。

卯运逢败大不祥,不损财来人口伤;任你用尽千般计,独兔遇狼灾难防。

辰运虽然是天罗,不逢辰冲无灾祸;诸事求谋皆如意,蛟龙得水泳川河。

巳运禄堂偏财乡,人不安宁入虎狼;饥人得禄不犹吉,韩信当初遇张良。

午运阳刃伤官地,不见失财有灾至;好比春茑出山谷,解救之人是故知。

未运是库又逢泉,吉星不见灾星来;小心谨慎平平过,不然恐有不预灾。

申运偏财七杀程,丙火遇水长精神;五年滔滔大顺遂,天赐福禄喜临门。

酉运正财此程豪,丙火死酉也不高;出人钱财要小心,莫与光棍小人好。

戌运墓库地纲运,求谋各项事难成;三寸金条且说小,八幅绳子恨水深。

丙日亥运是绝地,愁眉不展又何疑;好似旧镜生尘土,谨慎行事待来时。

阅读全文 »

pinlv

发表于 2006-09-05 | 分类于 pinlv
  • 前言

1. 各种频率意义

水星的频率 107 调节内分泌 火星的频率 144 治愈男性能量 木星的频率 183 无限繁荣 天王星的频率 207 个性 海王星的频率 211 梦境 金星的频率 221 治愈女性能量 爱的频率 528 溶解阻塞能量 免疫防御 727 强大的免疫保护屏障 上帝的频率 963 天使的频率 1111 愿力

2. 音乐

2.1 最强大性能量|创造奇迹的频率|吸引伴侣|获得财富|它是一种燃料实现愿望

https://www.bilibili.com/video/BV1BK4y1t74f/?spm_id_from=333.788.recommend_more_video.6&vd_source=5820f3b89c1cc8869811271064ffa5a9

2.2 超强吸引爱情的频率,七天内灵验,超强频率

https://www.bilibili.com/video/BV1vA411t78P/?spm_id_from=333.788.recommend_more_video.0&vd_source=5820f3b89c1cc8869811271064ffa5a9

2.3 【魔法蜡烛】已验证神奇能量 让TA主动找你 对你上头

https://www.bilibili.com/video/BV1yu411q7tX/?spm_id_from=333.788.recommend_more_video.-1&vd_source=5820f3b89c1cc8869811271064ffa5a9

2.4 963HZ+432HZ|上帝的频率|感恩宇宙的一切|

https://www.bilibili.com/video/BV1YB4y1y7Wh?vd_source=5820f3b89c1cc8869811271064ffa5a9

2.5 727Hz治愈炎症和增强免疫防御-强大的免疫保护屏障

https://www.bilibili.com/video/BV1Xq4y1n7N4/?spm_id_from=333.788.recommend_more_video.8&vd_source=5820f3b89c1cc8869811271064ffa5a9

2.6 高端科學控腦波冥想,8分鐘入定

https://www.bilibili.com/video/BV1gT4y1y7pU/?spm_id_from=333.788.recommend_more_video.5&vd_source=5820f3b89c1cc8869811271064ffa5a9

3. 大佬们的问题点

马化腾的腰 马斯克的肾 王健林的甲状腺 任正非的皮肤病 刘强东的颈椎

阅读全文 »

pengzu

发表于 2006-09-05 | 分类于 彭祖百忌

彭祖百忌指的是在天干地支记日中的某日或当日里的某时不要做某事否则会发生某事。

彭祖:道家先驱,是中国远古道家的重要人物,他以善养生而长寿,他的重生与弃物,服食、吐纳、守静、导引、房术中等养生理论,对道家、道教及中国传统文化,产生了深远的影响。

1. 十二地支:

子不问卜,自惹灾殃; 子日或子时不问卜;

子日这天不要问先生卜卦的结果,更不要卜卦,否则好事也要变成坏事!

丑不冠带,主不还乡。 丑日或丑时不冠带;(不穿新衣服)

丑日不要上任出行,否则会客死他乡;

寅不祭祀,鬼神不尝; 寅日或寅时不祭祀;

寅日不要祭奠祖先、亡灵,这天祭拜,阴间的亡人是收不到的。

卯不穿井,泉水不香。 卯日或卯时不穿井;(不到井下去)

卯日不要打井,打出的进水味道不好!

辰不哭泣,必主重丧; 辰日或辰时不哭泣;

辰日不可因为事情而哭泣,否则会有丧事再次发生

巳不远行,财物伏藏。 巳日或巳时不远行;

巳日不要外出旅游,走较远的亲戚,否则家里会遭贼,家里的钱财要藏好。

午不苫盖,室主更张; 午日或午时不苫盖;

午日(以午为地支的日子),这天不要盖屋顶,也就是这天不要建筑封顶。自己盖的房子,会自己缺钱而卖掉。

未不服药,毒气入肠。 未日或未时不服药;

未日不宜服药,是药三分毒,这个毒气会渗入体内。

申不安床,鬼崇入房; 申日或申时不安床;

申日不要安置床铺,这天安置床铺,鬼会跟着进入室内。

酉不会客,宾主有伤。 酉日或酉时不会客;

酉日不要会见客人,也不要去拜会客人,否则对主人和客人都不好。引申为生意谈不成。

戍不吃犬,作怪上床; 戌日或戌时不吃犬;

戌日不要吃狗肉,否则会引来怪事情。

亥不嫁娶,必主分张。 亥日或亥时不嫁娶。

亥日不要结婚,否则会离婚。

2. 十天干:

甲不开仓,财物耗完; 甲日或甲时不开仓;

甲日这天不要打开仓库取用东西,现在可引申为用存折取款,否则钱财会源源不断的用出去!

乙不栽植,千株不良。 乙日或乙时不栽植;

乙日不要种植花卉、粮食,这天种植的作物,收成会很差。

丙不修灶,必见火殃; 丙日或丙时不修灶;

丙日不要修建厨房的灶(土灶,现在的天然气炉子不忌),否则会招致火灾;

丁不剃头,头主生疮。 丁日或丁时不剃头;

丁日不剃头,剃头之后头部容易生疮。

戊不受田,田主不详; 戊日或戊时不受田;(不卖或不接受别人赠送的田地)

戊日不可接受他人赠送或购买的田地(可引申为屋宅),原来田地的主人不一定是卖给你的人,引申为田地、屋宅的产权有问题;

己不破券,二主并亡。 己日或己时不破券;(不花钱卖东西)

己日不能撕毁合同,撕毁合同之后,甲乙双方都会有大的灾难。

庚不经络,织机虚张; 庚日或庚时不经络;(不让医生扎针)

庚日不要使用针灸治病,否则导致经络虚松。(按:把这一条理解成织布机的,一看就是不懂易,不懂中医的人。奉劝这类人研究易学要用脑子,不要光看字面,更不要误导读者!)

辛不合酱,主人不尝。 辛日或辛时不合酱;(不将两中液酱掺杂在一起)

辛日不要做酱料,可引申为发酵业的事情。做的东西连做的人都不愿吃,跟不谈能不能卖出去了。

壬不决水,难更堤防; 壬日或壬时不汲水;(不从井中提水)

壬日(以天干壬开头的日子)”,这天不要从井里打水,会有意外发生;可引申为这天不要修护江堤。

癸不词讼,理弱敌强。 癸日或癸时不词讼。(不写讼状)

癸日不宜主动上诉、打官司,否则即使自己粘住理,也会变成不在理,而对方会胜出官司;

3. 十二建星:

建宜出行,不可开仓;除可服药,针灸亦良。

满可肆市,服药遭殃;平可涂泥,安机吉昌。

定且进畜,入学名扬;执可捕捉,盗贼难藏。

玻宜治病,必主安康;危可捕鱼,不利行船。

成可入学,争讼不强;收宜纳财,却忌安葬。

开可求治,针灸不祥;闭淡竖造,只许安康。

4. 六十甲子:

甲子,海中金:甲不开仓财物耗散,子不问卜自惹祸殃。 乙丑,海中金:乙不栽植千株不长,丑不冠带主不还乡。 丙寅,炉中火:丙不修灶必见灾殃,寅不祭祀神鬼不尝。 丁卯,炉中火:丁不剃头头必生疮,卯不穿井水泉不香。 戊辰,大林木:戊不受田田主不祥,辰不哭泣必主重丧。 己巳,大林木:己不破券二比并亡,巳不远行财物伏藏。 庚午,路旁土:庚不经络织机虚张,午不苫盖屋主更张。 辛未,路旁土:辛不合酱主人不尝,未不服药毒气入肠。 壬申,剑锋金:壬不汲水更难提防,申不安床鬼祟入房。 癸酉,剑锋金:癸不词讼理弱敌强,酉不宴客醉坐颠狂。 甲戌,山头火:甲不开仓财物耗散,戌不吃犬作怪上床。 乙亥,山头火:乙不栽植千株不长,亥不嫁娶不利新郎。 丙子,涧下水:丙不修灶必见灾殃,子不问卜自惹祸殃。 丁丑,涧下水:丁不剃头头必生疮,丑不冠带主不还乡。 戊寅,城头土:戊不受田田主不祥,寅不祭祀神鬼不尝。 己卯,城头土:己不破券二比并亡,卯不穿井水泉不香。 庚辰,白腊金:庚不经络织机虚张,辰不哭泣必主重丧。 辛巳,白腊金:辛不合酱主人不尝,已不远行财物伏藏。 壬午,杨柳木:壬不汲水更难提防,午不苫盖屋主更张。 癸未,杨柳木:癸不词讼理弱敌强,未不服药毒气入肠。 甲申,井泉水:甲不开仓财物耗散,申不安床鬼祟入房。 乙酉,井泉水:乙不栽植千株不长,酉不宴客醉坐颠狂。 丙戌,屋上土:丙不修灶必见灾殃,戌不吃犬作怪上床。 丁亥,屋上土:丁不剃头头必生疮,亥不嫁娶不利新郎。 戊子,霹雳火:戊不受田田主不祥,子不问卜自惹祸殃。 己丑,霹雳火:己不破券二比并亡,丑不冠带主不还乡。 庚寅,松柏木:庚不经络织机虚张,寅不祭祀神鬼不尝。 辛卯,松柏木:辛不合酱主人不尝,卯不穿井水泉不香。 壬辰,长流水:壬不汲水更难提防,辰不哭泣必主重丧。 癸巳,长流水:癸不词讼理弱敌强,已不远行财物伏藏。 甲午,砂石金:甲不开仓财物耗散,午不苫盖屋主更张。 乙未,砂石金:乙不栽植千株不长,未不服药毒气入肠。 丙申,山下火:丙不修灶必见灾殃,申不安床鬼祟入房。 丁酉,山下火:丁不剃头头必生疮,酉不宴客醉坐颠狂。 戊戌,平地木:戊不受田田主不祥,戌不吃犬作怪上床。 己亥,平地木:己不破券二比并亡,亥不嫁娶不利新郎。 庚子,璧上土:庚不经络织机虚张,子不问卜自惹祸殃。 辛丑,璧上土:辛不合酱主人不尝,丑不冠带主不还乡。 壬寅,金簿金:壬不汲水更难提防,寅不祭祀神鬼不尝。 癸卯,金簿金:癸不词讼理弱敌强,卯不穿井水泉不香。 甲辰,覆灯火:甲不开仓财物耗散,辰不哭泣必主重丧。 乙巳,覆灯火:乙不栽植千株不长,已不远行财物伏藏。 丙午,天河水:丙不修灶必见灾殃,午不苫盖屋主更张。 丁未,天河水:丁不剃头头必生疮,未不服药毒气入肠。 戊申,大驿土:戊不受田田主不祥,申不安床鬼祟入房。 己酉,大驿土:己不破券二比并亡,酉不宴客醉坐颠狂。 庚戌,钗钏金:庚不经络织机虚张,戌不吃犬作怪上床。 辛亥,钗钏金:辛不合酱主人不尝,亥不嫁娶不利新郎。 壬子,桑柘木:壬不汲水更难提防,子不问卜自惹祸殃。 癸丑,桑柘木:癸不词讼理弱敌强,丑不冠带主不还乡。 甲寅,大溪水:甲不开仓财物耗散,寅不祭祀神鬼不尝。 乙卯,大溪水:乙不栽植千株不长,卯不穿井水泉不香。 丙辰,沙中土:丙不修灶必见灾殃,辰不哭泣必主重丧。 丁巳,沙中土:丁不剃头头必生疮,已不远行财物伏藏。 戊午,天上火:戊不受田田主不祥,午不苫盖屋主更张。 己未,天上火:己不破券二比并亡,未不服药毒气入肠。 庚申,石榴木:庚不经络织机虚张,申不安床鬼祟入房。 辛酉,石榴木:辛不合酱主人不尝,酉不宴客醉坐颠狂。 壬戌,大海水:壬不汲水更难提防,戌不吃犬作怪上床。 癸亥,大海水:癸不词讼理弱敌强,亥不嫁娶不利新郎

阅读全文 »

tiandiren

发表于 2006-09-05 | 分类于 tiandiren

3 创造 6 情感 9 智慧

142857

1. 后天八卦

Mobile Preview

2. 十二长生

Mobile Preview

Mobile Preview

竖排

历程日干 长生 沐浴 冠帶 临官 帝旺 衰 病 死 墓 绝 胎 养
甲 亥 子 丑 寅 卯 辰 巳 午 未 申 酉 戌
乙 午 巳 辰 卯 寅 丑 子 亥 戌 酉 申 未
丙 寅 卯 辰 巳 午 未 申 酉 戌 亥 子 丑
丁 酉 申 未 午 巳 辰 卯 寅 丑 子 亥 戌
戊 寅 卯 辰 巳 午 未 申 酉 戌 亥 子 丑
己 酉 申 未 午 巳 辰 卯 寅 丑 子 亥 戌
庚 巳 午 未 申 酉 戌 亥 子 丑 寅 卯 辰
辛 子 亥 戌 酉 申 未 午 巳 辰 卯 寅 丑
壬 申 酉 戌 亥 子 丑 寅 卯 辰 巳 午 未
癸 卯 寅 丑 子 亥 戌 酉 申 未 午 巳 辰
阅读全文 »

nmap

发表于 2006-09-05 | 分类于 nmap

1. nmap

Mobile Preview

阅读全文 »

meta

发表于 2006-09-05 | 分类于 meta

我们所处的世界是虚拟的可能性有多高?

阅读全文 »

markdown

发表于 2006-09-05 | 分类于 markdown

1. markdown toc

设置 搜索markdown toc 设置ordered list

阅读全文 »

magic

发表于 2006-09-05 | 分类于 magic

1. 天干五合

一六共宗(甲己合),

二七同道(乙庚合)、

三八为朋(丙辛合)、

四九为友(丁壬合)、

五十同途(戊癸合)。

2. 阴阳五行与游戏运维

一月 寅月 阳木
二月 卯月 阴木
三月 辰月 阳土 水库
四月 巳月 阴火
五月 午月 阳火
六月 未月 阴土 木库
七月 申月 阳金
八月 酉月 阴金
九月 戌月 阳土 火库
十月 亥月 阴水
十一月 子月 阳水
十二月 丑月 阴土 金库

3. 五行与人类需求

生存需求 土 安全需求 金 社交需求 水 尊重需求 木 成就需求 火

4. 流年运喜忌

1、藏者怕透,隐怕露; 八字中某个字,或者某种十神,藏在地支,原局没有透出,如果在岁运中透出,就会体现出这种十神方面的人生变化;人生的状态,也就随之相应发生改变。是喜是忧,就看八字中这种透出的十神,是不是对自己有用;变化的大小,自然需要观察这种透显力量的旺衰。

八字中某个字,或者某种十神,地支深藏不露。如果岁运中,这个字突然露了出来,这也是人生状态改变的信号。这种状态的改变,有些是六亲方面,有些是自己的人生某些方面的重大变化。

2、合怕冲,冲怕合; 八字中有合,不怕再合,同类再来相合,最多就是数量的变化;比如吉上加吉,锦上添花;或则凶上加凶,落井下石之类。逢冲就比较麻烦,这种改变,就是实质性的改变,质的变化。因此,原局有合,岁运中遇到冲开这个合,就要加以关注。当然,如果这个合为喜用,这种冲才是真麻烦;如果这个合为忌,就是好的变化,人生遇到了新的契机,可以好好把握了。

八字中有冲,有合来解冲,自然也是一种状态的改变,就看这种改变对自己是否适宜。原局喜冲,就不能遇到合;忌冲,有合当然是好事。不过,得看这个合是不是真的能解这个冲。

3、旺怕动,弱怕克; 八字中某种五行,或者某类十神旺,不能再旺,再旺就怕引动。引动的力量就是值、刑、冲、合、害。引动了麻烦,自己无灾六亲中也有人容易有灾。同样一个弱的字,就更怕克,尤其是冲中带克,因为这个力量很弱,逢冲克就会受伤,如果这个字是喜用,麻烦最大,因为命主定然有灾;如果是忌神,也怕是八字中的病神,遇到冲克,也可能是患病的迹象。总之,遇到这种情况,要加以注意。

4、独怕重,无怕有; 八字中某个字只有一个,岁运中再来一个,就为重。没有的字,忽然出现,这就是有了。同样也是人生的重大改变。所以需要加以注意。尤其是婚姻和六亲方面要多加以注意,也要注意自己的身体结构方面的改变,特别是这个字,又是忌神的话,则更要注意。

5、纯怕混,旺怕库; 八字中某个十神,比较纯粹,比如正官、正财之类。就怕出现偏星,这往往意味着换人,换妻、换父。同理,八字中透显的是偏财、七杀,岁运中再来正官、正财,也有同样的效果。

5. 八字论教育

比方说你的小孩子,不读书,天天回到家里就要玩电脑,不读书,要是正格的话,你该怎么办?你要叫他读嘛! 叫他读有两个方法。正格分为旺跟弱,身旺再分为克和泄;比如,小孩子不读书,你就打他,你不读书就打你,用硬的则是克,打他会怕,他会用功读书。如果打他,他不怕,那就用泄,泄就是安抚,用软的,奖励,你好好用功读书,考第一名,给你什么奖品。身弱再分为,生和扶,生就是印,扶(扶助)就是比劫。我们五行来说,比如水很旺发大水的时候,用土来克它,把堤防筑高;泄,就是疏通,把河道疏通,不要堵塞。正格就是正常治理的方法。

变就不是正,正好相反。变格也分为旺跟弱,旺再分为,生和扶;弱再分位,克和泄;比方说你的小孩子,不读书,天天回到家里就要玩电脑,打也不怕,讲也不听,软硬都不怕,那就买最好的电脑给他,就生;再替他办休学,就是扶,天天让他玩,找最好的电脑老师来陪你玩,让你不要读书,因为你的心,既然在电脑,不在课本,那就让你电脑这方面更强,玩电脑也会出人头地,就是这样。旺的时候,我让你更旺;弱,我就让你更弱。这个原则是基本原则,你把所有的命,都分成正格和变格,其他不要管这么多。。但是,什么时候是正格,什么时候是变格。这个你要有辨别的能力。但是,有的时候,正格跟变格,很难辨别。它很难辨别的话,有一个窍门,就是你要问他,什么时候发生什么事,比方说,变格它生旺的话,要生要扶嘛,但是你要是不知道他是正格还是变格的时候,你看到他生旺,但是不知道是正格还是变格,但是你看到那个运,是生他扶他的时候,那你可以问他嘛,这一年你是好,还是不好。假如是好,那一定是变格嘛。那假如是不好,一定是正格。所以,这个正格变格,应该很好来区分嘛,这个不是非常难啦。按照这样的方法,就可以让你省掉很多很多这种事。变格的话,你弱,就是要克要泄,就不能让你强,就让你更弱。

6. 十神

克我者为官 我克者为财 生我者为印 我生者为食伤 同我者为比劫

官,克我者为官,官,管也。克我必可以管我,比如日干为甲木,庚辛为金,庚辛克甲,即为甲之官。因阴阳不同,而分出正官与偏官,阴阳相克为正,同性相克为偏,故辛金为甲之正官,庚金为甲之偏官。因同性相克,克力大,而无相容性,故偏官也叫七杀。同理,乙木也以庚辛金为官,庚叫正官,辛为偏官。能管制我者,代表长官,上司,师长。如果一四柱中有一正官透出,且日主不弱,一般都是从政。女命的官则代表丈夫,比如乙木为女命,庚为其夫,乙庚除相克外,还有相合,此夫妻也。过去讲三从四德,女命嫁于夫家,就要服从丈夫所管,所谓嫁鸡随鸡,嫁狗随狗,并非我是大男子主义,而是分析当时创造此套理论的社会环境。有人说现代社会男女平等,不应该如此论定了。但在命理中却依然适用,尽管有些命理家主张以同我的比肩作为妻子来论命,在实践中却不怎么应验。后面的论述都与此相仿论述,那么,以现实生活论,正官还代表男命之女儿,七杀代表儿子。女命论,正官代表丈夫,七杀代表情人,情夫,偏夫。

  财,我克者为财,财,资产也。所有的资产都是为人所用者,任我支配,受我所管。比如甲木命人,戊己为财,因阴阳不同而分出正财,偏财。所谓正财,就是一份固定的收入,以现在的社会环境论,一份正式的工作,每个月都有固定的收入,至于给谁打工则不重要。同样正式的开一个店铺,每月固定的收入相差无几,这都是正财。什么叫偏财呢,除正财收入之外的其它的大一点的收入叫偏财,偏财有大有小,相对来说是不固定的,比如除了正式工作外,又兼职赚外块,不是固定的收入就是偏财。又比如花了二元钱买了一张彩票,中了头奖,一下子拥有了几百万,这都是偏财,但不会是经常中。一单业务,一桩生意,一下子发起来了,这都是偏财。故八字中财旺喜财多经商。以男命来说,除了经济财产外,还代表妻子,过去把妻子也看作自己的私有财产,女性难有自己的独立的人格,比如,甲木以己土为妻,甲己除相克外,还有相合,构成了一对夫妻。对于己土命的女性来说,甲木为正官,也是一对夫妻,戊土为甲木偏财,可以代表偏妻,情人。从另一个角度来说,代表父亲。对于女命来说,正财代表父亲,偏财代表婆婆。财的另一个作用,是财能生官,对于甲木命论,己土为财,己土能生庚辛金。为甲木之官。

  印,生我者为印,印,文印也。代表文凭,学业,师长,贵人。以甲木论,壬癸水生之,壬癸水为印。以阴阳分出正印、偏印。癸水为正印,阴生阳为男命之母亲。体现了人皆由母亲所生之理。以戊癸为一对夫妻看,癸水为母亲,戊自然是父亲。戊土又为甲木之偏财,故上文中说偏财为父。偏印为男命的祖父,祖父辈。对女命而言,偏印为母,因对女性而言,生她者为她的同性,故偏印为母。正印代表祖父,或女婿。财官印都旺者必定是富贵之人。

  食伤,我生者为食伤。因阴阳有别以定食神、伤官之名。以甲木论,丙火为食神,丁火为伤官,即是我生者,就为晚辈、部属、学生。以女命论,女命生的为子女,甲木生丙火,为同性相生,为女儿,生丁火,为异性相生,为儿子。假如以己土论,庚金为儿子,辛金为女儿。那么以己土的丈夫甲木而言,庚金七杀为儿子,辛金正官为女儿,印证了上文中官杀为儿女的说法。以社会关系而言,女性嫁入夫家后,没有儿女是没有社会地位的,且妻子的地位也不稳,只有生了儿女之后,丈夫有了儿女的克制,妻位也就稳定了。以男命而言,食神代表女婿,因从丙辛是一对夫妻来看,辛为女儿,丙火自然是女婿,伤官代表祖母,因戊土为甲木之父,丁火生之,丁火为戊土的母亲,自然也就是祖母了。从丁壬为一对夫妻来看,壬水也就是甲木之祖父了,也这印证了上文偏印为男命的祖父。但食神、伤官的命名不是根据这些六亲关系设定的,所谓食神指食禄,指代老有所养,这是养儿防老观念的体现。所谓伤官,指对官职不利,比如甲木之伤官为丁,其正官辛代其官职,丁克辛,为阴见阴克力大,能克去辛这一官职,故而命理学上有一条判语:’伤官见官,为祸百端’。

  比劫,同我者为比劫,因阴阳不同而分为比肩,劫财。以甲木论,甲木为比肩,乙木为劫财。比肩代男命之兄弟,劫财为姐妹。以女命论,比肩为姐妹,劫财为兄弟。比肩一般有相助之力,劫财这名词是针对财来设定的。甲木以己土为财,乙木见己土,为同性相克,克力大,能克去己土,把甲木的财给克去了,相当于把甲木的财给夺走了,故称为劫财。

7. 天干通根 与 地支透干

一、天干通根的概念

树木分“树干”和“树根”两大部分,干在地上,根在地下。树木无根不活,因为树是通过根来吸收水份和养料的。树的根系越发达,所汲取到的水份和养料就越多,树木的生命力就越强,就越枝繁叶茂。

在八字中,“天干”就相当于“树干”,“地支”就相当于“树根”。天干要想力量大,在地支就必须要有自己的根系,根系越多其蕴含的五行力量就越大,这个根系就是“通根”。

天干通根是对五行(金、木、水、火、土)而言的,这个五行称为天干的“通根五行”,这个藏有同类五行的地支称为“通根”。平时笼统地称为“通根五行”、“根气”或“有根”(注:只有五行才能被称为“气”,如天干五合化气就是甲己合化土、乙庚合化金、丙辛合化水、丁壬合化木、戊癸合化火)。表现形式有两种:

1、天干通根地支

任意柱的地支五行与任意柱的天干五行相同(有时候又称为“比合”)或是生天干的就叫天干通根。生天干的五行,从严格意义上来说,并不算通根。但它毕竟是生天干的,所以对天干的力量是增加的作用,也可归入天干有根的范畴。根气分三类:

(1)本气通根

天干的五行与地支五行的本气相同,主要是阳干见阳支为根,阴干见阴支为根。如:

甲天干遇地支寅,乙天干遇地支卯。 (木)

丙天干遇地支巳,丁天干遇地支午。 (火)

庚天干遇地支申,辛天干遇地支酉。 (金)

壬天干遇地支亥,癸天干遇地支子。 (水)

戊天干遇地支戌、未,己天干遇地支辰、丑。 (土)

(2)得气通根

天干得地支的余气根。如:

天干甲、乙遇地支辰 (湿土)

天干庚、辛遇地支戌 (燥土)

天干壬、癸遇地支丑 (湿土)

天干丙、丁遇地支未 (燥土)

(3)生扶通根

即地支生天干,只有天干坐生扶地支(即干支同柱)贴身生扶(力强)才以通根论,否则(力弱)仍是虚浮无根。如:

天干甲、乙遇地支亥、子。 (水生木)

天干丙、丁遇地支寅、卯。 (木生火)

天干戊、己遇地支巳、午。 (火生土)

天干壬、癸遇地支申、酉。 (金生水)

            天干庚、辛遇地支辰、戌、丑、未。  (土生金)

天干通根于同柱地支称为“本气通根”,简称“正根”。天干通根于旁柱地支称为“旁柱通根”,简称“旁根”。正根的力量大,旁根的力量小。

“本气通根”和“余气通根”由于是地支中藏有该天干,因此一目了然,较易理解。在此,着重讲一下如何理解“生扶通根”。

“生扶通根”从严格意义上来说,并不算通根。但它毕竟是生天干的,所以对天干的力量是增加的作用,也可归入天干有根的范畴。但也并不是说地支只要一见生扶天干的地支就算通根,只有天干坐生扶地支(即干支同柱)贴身生扶(力强)或虽不同柱,但生扶地支为月支(力强)才以通根论,否则(力弱)为“微根”,以虚浮无根论。

例如:

        己       戊       己       庚

        丑       辰       巳       午

此造时干“庚”金,虽有年支“丑”土和月支“辰”土生之,但由于不是同柱贴身生扶,力量弱小,且被日支“巳”火和时支“午”火贴身近克,以虚浮无根论。“丑”土内虽藏余气“辛”金,但由于余气力小,天干必须坐支(即干支同柱)贴身(力强)才算通余气根,若不坐支(力弱)不作通根论,作无根论。

        壬       癸       丙       己

        子       卯       子       亥

此造日干“丙”火虽不与月支“卯”木同柱,但仍以有根论。因此不能入从煞格,仍当以印为用神,所喜者丙寅、丁卯二十年木火运耳。若再见官煞财运,立见其灾矣。  ——此例摘自《子平真诠》

女命:

        癸       己       戊       丁

        丑       未       辰       巳

此命火土重重,单见癸透年上,丑未之冲癸水根拔。

总而言之,天干通根的结果是使天干的力量变得很强,而不是中、弱。因此,若天干通根于地支本气,由于本气的力量能占到70%,力量非常强大,所以不论是否干支同柱都算通根。而中气、余气的力量仅占30%,因此,只有干支同柱才勉强算通根,若不同柱则作无根论。同理,由于生扶天干的地支是间接对天干产生影响,而不是像藏干那样直接对天干产生影响,所以仍是只有干支同柱才勉强算通根,若不同柱则作无根论。

2、天干通根地支藏干

任意柱的地支藏干五行与任意柱的天干五行相同也称天干通根。根气分三类:

(地支藏干表) 子宫壬癸在其中,丑癸辛金己土同; 寅宫甲木兼丙戊,卯宫甲乙木相逢, 辰藏乙戊三分癸,已中庚金丙戊丛; 午宫丙丁火己土,未宫乙己丁共宗; 申位庚金壬水戊,酉宫庚辛金丰隆; 戌宫辛金及丁戊,亥藏壬甲戊真踪。

(1)通本气根

      天干甲、乙遇地支寅、卯为通本气根,为强根。

      天干丙、丁遇地支巳、午为通本气根,为强根。

      天干庚、辛遇地支申、酉为通本气根,为强根。

      天干壬、癸遇地支亥、子为通本气根,为强根。

      天干戊遇地支辰、戌为通本气根,为强根。

      天干己遇地支丑、未为通本气根,为强根。

(2)通中气根

天干必须坐支(即干支同柱)贴身(力强)才算通中气根,若不坐支(力弱)不作通根论,作无根论。

六十甲子中只有甲辰、丁未、庚戌、癸丑为通中气根。

(3)通余气根

天干必须坐支(即干支同柱)贴身(力强)才算通余气根,若不坐支(力弱)不作通根论,作无根论。

六十甲子中只有乙未、丙戌、辛丑、壬辰为通余气根。

二、通根乘旺

指日干通根于月令。

月令,又称月建、月提、提纲,司一月之权,是衡量旺相休囚的尺度。因此,日干通根于月令为“乘旺”。

三、禄刃强根          (年柱)      (月柱)    (日柱)     (时柱)

命例:  甲        丙        己        庚

      申     子     巳     午

月干“丙”火通根于日支“巳”火和时支“午”火,在《五行生旺死绝表》中,丙临官(又称禄)在巳,帝旺(又称刃)在午,因此,日支“巳”和时支“午”称为月干“丙”的禄刃强根,也说成“月干丙火通根于日时支禄刃强根”。

通根最强者为禄刃,其次逢长生,再次为墓库,最次为余气。

四、拱“局”为强根

拱局包括“拱方局”和“拱会局”两种。

1、拱方局

方局有五种,即:

  寅卯辰——东方木局

  巳午未——南方火局

  申酉戌——西方金局

  亥子丑——北方水局

辰戌丑未——中央土局

所谓“拱方局”,就是方局不全,刚好缺了中间那个字,且剩余两个字相邻。即:

□      □        □      □        □      □        □      □

寅      辰        巳      未        申      戌        亥      丑

 (拱卯)          (拱午)          (拱酉)          (拱子)

辰戌丑未无拱方局。

拱方局两字之力不及方局三字俱全之力。但若所拱之字与天干为本气,则作强根论。即:

天干甲、乙(木)遇地支拱卯(木)为强根。

天干丙、丁(火)遇地支拱午(火)为强根。

天干庚、辛(金)遇地支拱酉(金)为强根。

天干壬、癸(水)遇地支拱子(水)为强根。

女命:

        庚       辛       丁       己

        戌       巳       未       酉

此造巳火当令,日干丁火虽通根于月令巳火强根,但命局异党众多,仍以弱论。幸喜巳未拱出方局午火,使日干丁火又多一强根,因此,日干丁火由弱变强。此造用神为水(调候用神,炎夏用水),而不是木火。命主本人的经历也验证了用神的正确性。

由此可得出一个结论,即:

日干为甲、乙,月支为寅秉令,若能拱出方局卯,则异党虽众,日干仍为强旺。

日干为丙、丁,月支为巳秉令,若能拱出方局午,则异党虽众,日干仍为强旺。

日干为庚、辛,月支为申秉令,若能拱出方局酉,则异党虽众,日干仍为强旺。

日干为壬、癸,月支为亥秉令,若能拱出方局子,则异党虽众,日干仍为强旺。

2、拱会局

会局有四种,即:

亥卯未——会木局

寅午戌——会火局

巳酉丑——会金局

申子辰——会水局

所谓“拱会局”,就是会局不全,刚好缺了中间那个字,且剩余两个字相邻。即:

□      □        □      □        □      □        □      □

亥      未        寅      戌        巳      丑        申      辰

 (拱卯)          (拱午)          (拱酉)          (拱子)

拱会局两字之力不及会局三字俱全之力。但若所拱之字与天干为本气,则作强根论。即:

天干甲、乙(木)遇地支拱卯(木)为强根。

天干丙、丁(火)遇地支拱午(火)为强根。

天干庚、辛(金)遇地支拱酉(金)为强根。

天干壬、癸(水)遇地支拱子(水)为强根。

命例:

        庚       丙       己       乙

        寅       戌       亥       丑

此造寅戌拱午,天干见丙,于是丙以拱出之午为强根。亥丑拱子(才星),天干虽无壬癸,仍可当做原局有才星论,但其力不大。等到大运、流年见壬(财)癸(才)出现,财(才)的力量会突然大起来,是吉是凶,看喜忌而论。

五、拱“库”为有根

“辰、戌、丑、未”为四墓库,即:

     辰中藏余气癸水,为水库(因此辰为湿土)

     戌中藏余气丁火,为火库(因此戌为燥土)

     丑中藏余气辛金,为金库(由于丑中中气为癸水,因此丑为湿土)

     未中藏余气乙木,为木库(由于未中中气为丁火,因此未为燥土)

从十二地支“子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥”排序来看:

丑夹在子、寅之间

辰夹在卯、巳之间

未夹在午、申之间

戌夹在酉、亥之间

所谓“拱库”,就是子寅为邻而缺丑,卯巳为邻而缺辰,午申为邻而缺未,酉亥为邻而缺戌。即:

□      □        □      □        □      □        □      □

子      寅        卯      巳        午      申        酉      亥

 (拱丑)          (拱辰)          (拱未)          (拱戌)

若所拱之库与天干为本气,则作有根论。即:

天干甲、乙(木)遇地支拱未(木库)为有根。

天干丙、丁(火)遇地支拱戌(火库)为有根。

天干庚、辛(金)遇地支拱丑(金库)为有根。

天干壬、癸(水)遇地支拱辰(水库)为有根。

命例:

        丙       庚       癸       乙

        寅       子       巳       卯

此造子寅拱丑,丑为金库,即天干庚为有根。卯巳拱辰,辰为水库,即日干癸为有根。且日干癸水又通根于月令子水,为强根,因此,日干很强。

六、天干通根的特性

1、通根力量具有大小之分。在八字命理学中,判断天干强弱,应以是否通根为主,而不是以得气为主,地支才是天干的力量之源,这一点一定要记住。古人云:“一个中气通根可抵上一个透干之比劫”、“得天干三比劫,不如得地支一本气根”。天干若没有地支通根,再多的印比生助也是虚的,没有力。

例如:

        丁       丙       丁       己

        酉       午       酉       酉

此造地支三个“酉”,天生根深蒂固,天干虽不透,力量仍极大。

        癸       壬       丙       癸

        卯       戌       午       巳

此造“壬”、“癸”虽三透天干,且为比劫,但地支无根,虚浮无力。

        丙       丙       癸       丙

        申       申       亥       辰

此造印星(申)秉令,日干(癸)坐劫(亥藏壬甲,壬为劫),三财(丙)虚浮,无力破印,身旺。

        辛       辛       辛       辛

        卯       卯       卯       卯

此造四卯木当权,四辛金临绝,虽曰反克地支,实则无力克也。

                                                ——摘自《滴天髓》

        乙       庚       己       戊

        未       辰       未       辰

此造土旺土众,庚金虚浮无根,过分衰弱,不但不受土生,反被厚土埋没,乙庚也不能合化为金。

地支当中藏有本气、中气、余气,它们的力量是有区别的,本气的力量最大,中气次之,余气最小。因此,本气通根最强(又称“根深”),中气通根次之,余气通根最小(又称“根浅”)。

2、通根力量具有远近之分。树木的根系很多,有长有短,长的根系汲取的水份和养料容易在途中损耗掉,等到达树干时就所剩无几了;而短的根系在途中损耗不大,到达树干时还比较多。同样,通根力量也具有远近之分,通根近的天干所汲取的通根力量就大,通根远的天干所汲取的通根力量就小。

天干与其通根的距离有同柱、相邻、相隔、远隔之分,同柱不减力,相邻减力0.5度,相隔减力1度,远隔减力2度。请注意:同柱、相邻、相隔、远隔的减力参数并不是按“匀速”递减,而是变速递减的,这跟声音在空气中传播的道理是一样的。比如说,从这点发出100分贝的声音,在5米处、10米处、20米处声音减弱的力量是不一样,也许在5米处只是减少5分贝,但在10米处就减少20分贝,在20米处就减少80分贝,它们是距离越远减少的量越大,通根也是这样。

3、通根具有连体性。人有连体婴,树木也有连体树(寄生树),天干的通根也具有连体性。当两个同类天干相邻紧贴时,它们就连在一起,相当于两个人共用一个身体、两棵树共用同一个根系,所以我们可以把这两个相邻的同类天干看做是一个整体。当两个以上的同类通根相邻时,它们也会连成一体,相当于不同树木之间的树根连在一起,它们所汲取的水份和养料可以共享。所以一旦遇到同类天干相邻或同类通根相邻的情况时,必须要把他们当做一个整体来看,这样在计算旺度的时候才不会出错。

4、通根有喜忌。喜神、用神最喜通根,通根则有清气,喜神通根命主寿高,用神通根命主富贵。忌神(又称仇神)最忌通根,通根就是浊气,就像暗中有坏人,稍有差池便会使坏,出现命主凶的结果。

七、地支透干的概念

地支透干是对具体的天干“字”(甲、乙、丙、丁、戊、己、庚、辛、壬、癸)而言的,因此没有“干气”之说。四柱中任意柱地支所藏之天干,显现于任意柱天干,就称为地支透干。从广义上说,所有四柱的年干、月干、日干、时干天生就是显现在外——即“透出”的,若年干、月干、日干、时干又通根于地支,则称“地支透干”;若不通根于地支也可称为“透干”,但不能称为“地支透干”。

示例:

      (比肩)  (劫财)   日主   (七杀)

乾造:  辛        庚        辛        丁 

      巳     寅     卯     酉

      丙(正官) 甲(正财) 乙(偏财) 辛(比肩)

      戊(正印) 丙(正官)

      庚(劫财) 戊(正印)

此造杀(丁)透时干,得根于月令(寅)之中气(丙)及年支(巳)之主气(丙)。

“藏”即“储藏”,就是“静物”待时而动;“透”即“透露”,就是“动物”可以取用。

“透干法”是四柱定格局的方法之一,即以月支藏干透出天干取格,也就是透出什么干取什么格。如甲生戌月(戌中藏干辛、丁、戊),透辛取为正官格,透丁取为伤官格,透戊取为财格。

例如:

      (伤官)  (正官)   日主   (比肩)

乾造:  甲        戊        癸        癸  (午未空)

      寅     辰     巳     丑

      甲(伤官) 戊(正官) 庚(正印) 癸(比肩)

      丙(正财) 乙(食神) 丙(正财) 辛(枭神)

      戊(正官) 癸(比肩) 戊(正官) 己(七杀)

日主癸水生于辰月(辰藏天干戊、乙、癸),戊出现在月干上,那么戊就是透出到月干上。癸出现在时干上,那么癸就是透出到时干上。

日支巳中丙火不透天干,就是死物,不能发挥作用,只能留以待用。当大运流年天干出现丙、丁火时,则通过大运流年透出到天干发挥作用来影响命局。

理解了透干与通根的概念后,这个八字就很好取格了。戊土正官从月令透出,取为正官格。甲木伤官通根月令,可以兼取伤官格。这两种格局搭配无情,伤官见官,祸出百端。

八、透干对六冲的影响(摘自当代著名易学家李顺祥著《四柱详解》)

一般而言,地支为静,天干为动;地支为体,天干为用。六冲之支,若得天干覆盖有情,天地呼应配合,上下情协,左右同志,其支愈增益其力。反之,干支盖头截脚,天地反悖,覆载无情,天干不能得气于地,地支不能发用于外,六冲之支锐气受挫。是故有旺者不胜,衰者不败之理。

如:

        丁       丁       丙       甲

        未       未       申       寅

此造申寅冲,均非当令得时之物,其旺度停均,相差无几,金木相战,似乎刚可胜柔,但不料申金丙火盖头,天干一片木火助来熔金,地支未土炎热无法生金反成火库,申金不战自败。

又如:

        丙       癸       癸       庚

        寅       巳       亥       申

此造巳亥冲,休囚之水,似乎难胜当令之火,但得金水盖头,里应外合,巳火腹背受敌,亥水恃强而胜。

再如:

        庚       戊       丙       癸

        辰       子       午       巳

此造子午相冲,以当令之水,冲克失时之火,似乎可以轻而易举,手到擒来。但不料天干覆之以火土,制水卫火,年柱庚金虽泄戊干,但戊通根于辰,时柱癸水虽通根月支克制丙火,但丙又通根于巳,这样一去一来,各不相欠,有失有得。丙戊两干皆有情于午火,向火背水,子水当令不强,午火失时不弱,二者势均力敌,可以背水一战。

九、天干通根与地支透干的关系

《子平真诠》云:地支所藏之干,本静以待用,透出干头,则显其用矣。故干以通根为美,支以透出为贵。

又云:故凡一八字到手,必须逐干逐支,上下统看。支为干之生地,干为支之发用。如命中有一甲字,则统观四支,有寅亥卯未等字否,有一字,皆甲木之根也。有一亥字,则统观四支,有壬甲二字否。有壬,则亥为壬禄,以壬水用;用甲,则亥为甲长生,以甲木用;用壬甲俱全,则一以禄为根,一以长生为根,二者并用。取运亦用此术,将本命八字,逐干支配之而已。

例如:

坤造:  戊        甲        戊        己

      戌     子     寅     卯

日元戊土,生于仲冬,水冻土寒。严冬以调侯为急,故云“火重重而不厌”。虽然日元坐下寅中藏有丙火,然《子平真诠》云:“地支所藏之干,本静以待用,透出干头,则显其用矣。”,原局不见丙火透干明见,命盘呈现土水寒滞,木旺成林之象。

虽然年柱戊戌帮身,但月干甲木通根于日、时两支,隔绝了年干戊土之助,戊土呈现若有似无之状。

坤造:  戊        戊        癸        己

      子     午     酉     未

日元癸水,生于仲夏,火神秉令。年支子水,逢干上戊土相克暗合(子藏癸水,戊癸合火),若有似无。仅存日支酉金生扶,却又逢午火近克,用神不真。命盘呈现火土重重,熬干癸水之象。

《子平真诠·论财》徐乐吾评注:若天干之财,地支无根,是为浮财,不足为用。

《滴天髓》云:“天全一气,不可使地德莫之载;地全三物,不可使天道莫之容”。如四辛卯,四丙申,虽干支一气,而不通根,不足贵也。地全三物,谓所藏三干,不透出则不能显其用也。”

如果月支或者其它地支(较月支稍差一等),伏藏有财、官,而在天干上并不透露,那么也能够自足为福;如果所有地支下都没有藏财、官,而只是在天干上明露,那就是虚浮无根、虚诈无实的“虚官”、“虚财”命局,即使走财、官旺运,也没多大用处。

天干因通根,合局方有气力,可以发挥作用于生辰八字这个“小天地”中。若天干虚浮无根则只是死物废物而已,在“小天地”中无发言权。

地支藏干只有透出天干方可发挥其效用,若不透天干则是待用之物,只有等待时来运转,天干透出于岁运之位方可“登台演出”影响八字整体。

8. 五术

山(读书|吐纳|符咒),医(经络|导引|方剂),命(八字|星辰|神数),卜(式卜|卦卜|易占),相(相天|相地|相人)
中国民间玄学五术,即:山、医、命、卜、相。
山,即仙学,包括修典、炼丹、符咒。
医,即传统中医,凭借经络学,以导引、祝由术、方剂治疗。
命,即命学,依靠八字、星辰、神数来推理命运。
卜,即占卜,太乙、奇门、六壬为式卜,梅易、六爻为卦卜,测字、占梦、抽签为杂卜,蓍筮、掷钱为易占,以预测吉凶。
相,即相学,乃世之大学问,相天术(星相),相地术(风水),相人术(面相、手相、体相、音相等)

9. 六爻诸爻持世

世爻为自己,最喜用神临旺持世,忌神持世则不吉。《黄金策》云:“忌临身而多阻无成”。

在预测时应看是哪一六亲持世,因为不同的六亲持世所反映的信息是不同的,是主导整个卦的吉凶成败的。所以在预测求财时,首先要看是何六亲持世,然后进行逐步分析

一、兄弟持世

1,兄弟为破耗之神,故主投资求财;

2,兄弟为朋友,同事,伙伴等,故主合伙或承包等之求财;

3,兄弟为同伙,为众多,为财来财去,为贪婪之象,故为赌博求财;

4,兄弟又为分配,故主离婚,拆伙,破产等方面分配财产之求财;

5,兄弟为自己无资金,又为劫财之神,又为口舌,故又主说服咨询,教育培训,诈骗等形式的“空手套白狼”之求财。

兄弟持世莫求财,

官兴须虑祸将来。

朱雀并临防口舌,

交重必定损妻财。

父母相生身有寿,

化官化鬼有奇灾。

解说:

兄弟克妻破财,兄弟爻持世,最不利求财。如果官鬼旺相克世,更要防灾祸。朱雀临兄弟爻发动,必有口舌之灾。测婚损妻,测财损财。兄弟爻持世,父母爻旺相相生,测寿为吉,兄弟爻持世化官鬼回头克,必有奇灾。

兄弟持世,多为破财之象,且多伴有口舌是非,但也并不是见到兄弟持世就都要破财。那么在什么情况下不至于破财反而还能得财呢?即在卦中子孙旺相发动、财爻有气的情况下可以得财而不是破财,但财爻必须安静,若财爻发动亦是徒劳。

兄弟持世,不论旺相休囚,不论动静,不论化出何爻,只要子孙休囚安静,则破财耗散无疑。

兄弟持世,若化出官鬼,或官鬼发动于卦中,不但无财可求,而且还有天灾人祸。

二、父母持世

1,父母为工作,又为工作单位,故主上班薪水;

2,父母为文书,票据,契约等,故主交易契约合同等之求财;

3,父母为文章,故为发表文章,出版书籍以及其他印刷品,文化用品等之求财;

4,父母为辛苦劳碌之神,往往又主体力求财;

5,父母为车,又主搞运输求财;

6,父母为工程,为业务,故主工程业务之求财。

父母持世主身劳,

求嗣妾众也难招。

官动财旺宜赴试,

财摇谋利莫心焦。

占身财动无贤妇,

又恐区区寿不高。

解说:

父母爻是辛苦劳禄之神,持世主辛劳。求财很费力,父母为子孙的忌神,父母持世子难得,父母爻又是文章学术之神,官动财旺利考学。占自身不论问什么,只要财爻发动,不是得财,而是妻克夫,所以说“占身财动无贤妇。”财动克身,也难有高寿。

父母持世,父母是子孙的忌神,最忌发动,若发动必克子孙,乃为切断财源,故无财可求。

父母持世若有气安静不动,财爻发动克之,为财来找我,必是有人主动给自己求财的机会,且能得此财,但是若世爻父母休囚衰弱,妻财旺动而克,则难免因财至灾。

父母持世安静不动,若财爻也安静不动,则必是求财辛苦,须费千般努力,方得些许微利,因父母是子孙的忌神,父母持世说明自己求财的路子少、能力差,所以求财必辛苦。

三、妻财持世

1,妻财主财荣,持世乃正财也,故多主国家财政编制人员之固定薪水;

2,妻财主金融,经济,故主银行,金融机构之放贷求财;亦可指个人储蓄求财;

3,妻财持世指祖产,故亦为祖产产业之财;

4,妻财亦为货币或钞票之类,故又可能主货币兑汇,交换倒卖等形式之求财;

5,妻财持世必受子孙之生,故可能主收购废旧物品求财;

6,抵押,典当等形式之求财。

财爻持世益财荣,

兄若交重不可逢。

更喜子孙明暗动,

利身克父丧文风。

求官问讼宜财托,

动变兄鬼万事凶。

解说:

财爻持世利求财,但忌兄弟爻动,因兄弟爻是克妻破财之神,财爻持世,喜子孙爻动,因子孙是财爻的原神。但财爻又是父母、学业、文章的忌神,财旺对这些不利,所以“克父丧文风”。

财爻持世,利求谋工作,因财爻是官鬼的用神,但需官财均处旺相,子孙与兄弟不动。财爻持世发动变成兄弟或官鬼者,不论测何事都是凶,轻则破财伤身,重则有身亡之灾。因此是回头克,变鬼是化兄。

财爻持世,即世爻临财爻,为有利于求财,但具体运用到每一卦中,还要视卦中的动变情况综合推断。

财爻持世,若旺相,不被刑冲克害,求财必得,若休囚衰弱又无帮扶生助者,虽遇财爻持世,亦难发大财。

财爻持世,若化出子孙,或子孙发动于卦中,或子孙临月日,而且子孙又不被冲克,则是财源滚滚,连绵不断,必定能获大利,且是长久之利。

财爻持世,若化出兄弟,或兄弟发动于卦中,或兄弟临月日,是财运不长久,先聚后散之象,即开始能有财可求,但最终不是无财可求,就是破耗败散而难有积蓄。

财爻持世,若化出官鬼,或官鬼发动于卦中,或官鬼临月日,不利求财,是破财之象,且多有惊险之事。

财爻持世,若化出父母,则是求财先易后难,若父母临月日,或发动于卦中,是开始尚有财可求,以后则是财源全无。因为父母克子孙,乃为断了财源之故。

财爻之库持世,乃为得财之兆,如财爻为寅卯木,未土即为财爻之库。

四、官鬼持世

1,官鬼为公家,为国家政府部门,故主为公家求财;

2,官鬼为官职,为官员,故主受贿收礼贪污等求财;

3,官鬼主盗贼,故主偷盗,抢劫等求财;

4,官鬼主奸邪之人,故为诈骗,威逼,强索,盘剥等犯罪求财;

5,官鬼为男,妻财为女,故又主赚女人之钱,靠女人之求财;

6,官鬼主疾病,伤灾,故亦主因生病,受伤,遭灾而得探病,抚慰,赈灾之求财。

官鬼持世事难安,

占身不病也遭官。

财物时时忧失脱,

功名最喜世当权。

入墓愁疑无散日,

逢神转祸变为欢。

解说:

官爻持世,最不宜占身测病,官鬼是忧患之神,官鬼持世占自身是病不离身,官事缠身,官鬼是耗财之神,官鬼持世谨防破财。但测功名求官谋职最喜官鬼旺而持世。

官鬼持世测自身喜冲,受冲可去掉身边之鬼,但世爻不能太衰,否则连自己也冲掉了。

官鬼持世逢墓则凶,如值墓,化墓,入动墓,随鬼入墓。

官鬼持世,化出财爻,或财临应爻或财爻发动于卦中,或财爻临月日,都是有财可求,必获厚利之象,但有忧虑不安之事伴随其中,如伤病、口舌是非、失盗等。应于何事可以世爻所临之六神参断,如临朱雀为口舌是非,临白虎为伤病等。

官鬼持世,若化出子孙,或子孙发动于卦中,或日月为子孙,谓“克去身边之鬼”,所谓“身边之鬼”指的是忧虑不安的各种因素,克去身边之鬼就是消除这些因素,子孙是忧虑不安的各种因素,克去身边之鬼就是消除这些因素,子孙是福神,是消灾避祸、制鬼之神,子孙又是妻财的原神,所以官,鬼持世化出于孙,子孙或发动或临日月,既可消除祸患,又可获得财利。但子孙和世爻官鬼也要达到一种相对的平衡,不论哪一方过旺或过衰都是不利的。如子孙过衰而官鬼过旺,则子孙无力制鬼,若子孙过旺而世爻官鬼过衰,则又制身太过,反而至灾。

官鬼持世利公门求财,官鬼代表官府、官方、企业,所以若是企业求财者,遇到官鬼持世必是求财易得之象。

官鬼持世若旬空,必是自己心存疑虑,犹豫不决,乃至事必无成。

五、子孙持世

1,子孙为财源,又为货源,故主买卖之求财;

2,子孙为资金,故主投资之求财;

3,子孙为技术,故主技术,手艺,工艺品等之求财;

4,子孙为克鬼之神,故主治病,救灾,捉贼,提供法律服务等之求财;

5,子孙为娱乐喜悦之神,又为技艺,故主文艺表演,器乐演奏,说唱等方面之求财;

6,子孙为酒食,故主酒食之财;

7,子孙为九流僧道,命卜星象师,故主预测算命之求财;

8,子孙为装饰美化,故主装饰,装潢,包装,粉刷,涂染等方面之求财。

子孙持世事无忧,

求名切忌坐当头。

避乱问安失可得,

官论从此了罢休。

有生无克诸般吉,

有克无生反见愁。

解说:

子孙是福神,是解难之神,子孙持世,官司纠纷从此罢休,失的可回,盗贼可捕获,外出平安,能逢凶化吉,遇难呈祥,但不宜父母爻发动,或日月临父母。子孙持世最喜强旺无克,有生无克诸般吉。

子孙持世,克制官名,谋望难成。在任者应防官灾,女性测婚,忌子孙爻持世,克夫,未婚者,问婚难成,已婚者,丈夫有灾。

子孙持世,财临应爻,卦中财库旺而发动生世爻,则主财源滚滚。

子孙持世,若财爻发动与世爻相合者,主求财可得。

子孙持世若发动,财临应爻者,主破大财。

子孙持世,一般是别人利用自己的才能而创造财富,也就是说自己为别人创造财富,故一般情况下破财的多。

六爻诸爻持世诀 世爻为自己,如人这身体,兴旺为佳,做事亨通,求谋称意。世爻兴旺,又得日月动爻、用神生合,或得其一生合者,更是锦上添花,世爻若遇到旬空月破,休囚无气,不吉,再遇刑冲克害,则是凶上加凶。

世应相生财吉,相克则凶,世应比和,谋事可为,世动世空,我心不实,应动应空,他人不实,世爻受克,不利自己,应爻受克,不利他人。

父母爻持世:(世爻为父母爻所临之爻)父母为辛苦之神,主劳碌奔波,婚难嗣乏。如卦中财旺官动生之,利文途赴试,财动克世,心无贤妇,而寿不长。

子孙爻持世:子孙为福神,故无忧无虑,飞灾横祸化为尘,但子孙又为剥官制鬼之神,克制官鬼,所以不利求名求官。

官鬼爻持世:官鬼为忧患之神,故有临身事难安,无病也遭官,财物学失散,入墓更难堪,逢冲则化险为夷,但是求名求官,最喜官鬼持世。

妻财爻持世:妻为内助,财为财神,财为养命之源,不可没有,财爻持世主财荣,若遇子孙爻明暗动生之,更是身强财旺,得求官问讼;但是不得文书,克父母。妻动变兄万事凶。

兄弟爻持世:因兄弟爻在五行上克妻破财,故兄弟爻是劫财之神,破财之患,伤妻之主,遇兄持世,不但不要求财还要防止克妻破财,如果官兴官旺,或兄化官化鬼,更有凶灾。

10. 六爻爻位

爻位

六爻在卦中所上的六级高低不同的位次叫做爻位,反映了事物发展过程中所处的或上或下,或尊或卑的地位、身份、条件等等。

当位、不当位

六爻的位次,有奇、偶之分,其中初、三、五为奇,二、四、上为偶。《易经》以竒为阳,所以初、三、五这三个位次为阳位;以偶为阴,所以二、四、上这三个位次为阴位。凡阳爻居阳位即居初、三、五这三个位次,阴爻居阴位即居二、四、上这三个位次,均为当位,又称得正、得位;反之,凡阳爻居阴位,阴爻居阳位,均为不当位,又称失正、失位。

当位之爻,象征事物的发展遵循正道,符合规律,因此多吉多利;不当位之爻,象征事物的发展背逆正道,违反规律,因此多凶多弊。

王弼认为,初、上两爻“无阴阳定位”,即不论阴阳爻处此两位,均象征“事之终始”不存在“当位”、“不当位”的意义。(今后对此还将详细说明)

但是当位与不当位井非诸爻吉凶利弊的绝对标准,在各卦各爻所处的复杂条件错综因素的影响之下,当位之爻也有转向不正的可能,不当位之爻也有转化成正的可能。所以爻辞常有警戒当位者守正防凶之语,以及诫勉不当位者趋正求吉之语。

六爻所居位次,第二爻当下卦中位,第五爻当上卦中位。

两者象征事物守持中道,行为不偏。《易》例称之为“中。”凡阳爻居中位,象征“刚中”之德;阴爻居中位,象征“柔中”之德。假如阴爻处二位,阳爻处五位,则是既“中’且“正”,称为“中正”,在《易》爻中尤具美善的象征。

以“中与“正”爻相比较,“中”德又优于“正”。读者要细心领会。(以后对此还将详细说明)。

用九,用六

乾卦的六个阳爻之后,另有“用九,见群龙无首,吉。”一爻。坤卦的六个阴爻之后,另有“用六,永利贞,一爻。这两爻,只有爻辞而没有与之相对应的卦象或爻位,古代易学家称之为存象无位之爻。

《易经》中的有象无位之爻只有两爻,那就是乾卦的“用九”爻和坤卦的“用六”爻。

三才

在八经卦中,三爻位序呈三级层次,下爻居下,象征地位;中爻居中,象征人位;上爻居上,象征天位。合天、地、人三级位次,称为三才。

在六十四重卦中,把每卦六爻位序两两并列,也会出现三级层次,即初爻和二爻为一层次,三爻和四爻为一层次,五爻和上爻为一层次,初爻和二爻层次在最下位,象征地位;三爻和四爻层次居于中位,象征人位;五爻和六爻层次位居上层,象征天位。

六爻位置的象征意义

由六爻在卦中分处不同的等次,所以其象征意蕴亦各不相同。一般是:

初位之爻象征事物发端萌芽,主潜藏勿用!

二位之爻象征事物崭露头角,主适当进取。

三位之爻象征事物功业小成,主慎行防凶;

四位之爻象征事物新进高层,主警惧审时。

五位之爻象征事物圆满成功,主处盛戒盈。

上位之爻象征事物发展终尽,主穷极必反。

这是一种较为普遍、较为遍行的说法a其他说法还有许多种,诸如取人的社会地位比喻爻位,即:初为士民,二为卿大夫,二为诸侯,四为三公、近臣,五为天子,上为太上皇;取人的行政官阶,即初为科员,二为科长、处长;三为司(局)长,四为部长,五为总理,上为总统;等等。在各卦各爻的具体环境中,由于种种复杂因素的怍用,诸爻又有种种错综的变化。

二多誉、四多惧

《易经.系辞传》:“二与四同功而异位,其善不同:二多誉,四多惧……三与五同功而异位,三多凶,五多功……”为什么?因为:六爻爻位的二位是阴位,居于下卦之中,中而位正,所以多誉;

四位是阴位,但居上卦之下,位正而不中,所以多惧;

三位是阳位,阳刚而居下卦终(极),不处中而处终,所以多凶。

五位是阳位,又居上卦之中,中而位正,所以多功。

当然,这里说的爻位优劣,是就一般情形而言的。占筮时,主要还得看具体情况,如是阳爻还是阴爻,是变爻还是不变爻,以及在什么卦中,卦象如何,以及到特殊性,只有这样,才能作出较为切合实际的判断。

贵贱

六爻的贵贱之位依次为:上爻为太庙之位,五爻为天子之位,四爻为公侯之位,三爻为大夫之位,二爻为士人之位,初爻为庶民之位。另一种说法是:上爻为太庙之位,五爻为天子之位,四爻为诸侯之位,三爻为三公之位,二爻为大夫之位,初爻为元士之位。

其实大凡社会人事的各个方面,都可以依其地位尊卑、部位髙下、距离远近、大小轻重等不同,分配到六爻之中,借以显示六爻位次的贵贱。

11. 五眼六通

常说“佛法无边”,其意义是说除了在生命的终极解脱层面有着无限广大的智慧与慈悲之外,也是对神秘莫测、威力无比的神通法力的譬喻,今天我们就来看看佛教中的神通力到底有多强。

佛法神通,一般分为五眼和六通。五眼是肉眼、天眼、慧眼、法眼、佛眼;六通是天眼通、天耳通、他心通、宿命通、神足通、漏尽通。

肉眼:是肉身凡夫的眼。见近不见远,见前不见后,见外不见内,见昼不见夜,见上不见下。因有此碍,故求天眼。肉眼能照见一切没有隐蔽、没有障碍的可见之物。

肉眼功强的人,在睁开眼时可以看到别人身体外面的辉光,即人体场,可以和世界上最先进的摄相仪媲美。肉眼看光有四个用途。

(1)通过看光可以判断人的身体状况。一般是银白色的人身体健康,灰色的人有病,颜色越暗病情越重,黑光的人已经离死不远了。

(2)通过看光可以判断人的功能功力。功能越强,辉光的颜色越分明。随着功力的不断增加,光色会发生变化,从低到高依次为银白红或橙浅黄金黄绿蓝紫(如老子) 七色光环(如释迦牟尼)。

(3)通过看光可以了解人的气质、性格类型以及他们所从事的事业。有的人天生气质很好,有与众不同的辉光,他的光柱在入静或睡着时可以无穷高,且具有穿透性,很远的地方都能看到。这种人有一种凝聚力,人们会莫名其妙地跟他走,往他身边聚。他如果参政,就能得天下;如果修道,就可能成正果。这种气就是天子气如《史记》里记载刘邦就有,会看光的吕雉、范增、秦始皇的谋士都在找他。

(4)通过看光可以判断某地的地磁、地电、地光是否适合练功。如果某地的光是黑色的雾气,就不要在那里练功。有的山头出现黑色的光,比较高,一般是有特殊能量的动物在这里,应该避开。

天眼:是天人的眼。远近皆见,前后、内外、昼夜、上下悉皆无碍。然虽见和合因缘所生的假名之物,不见实相,故为得实相,而求慧眼。天眼能照见没有隐蔽、没有障碍和有隐蔽、有障碍的可见之物。

天眼功是指天目(即松果体、脑上腺、山根、泥丸等)或身上其它辉光处被启动而产生的视觉效应,称非瞳孔视觉效应。天眼功的具体表现有四个层次。

(1)内视。内视就是指练功人返观内视自己体内,看到气在自己内部的运行,还有五脏六腑以及骨骼各方面的情况。由于练功时经常意守一个部位,意到气到,这里的气就越攒越多,气多就产生能量,能量聚到一定层次时,由量变到质变,开始产生图像了,以呈像的方式展现神奇,突然看到五脏六腑。其顺序是气;能;光;像,由闪动到黑白到彩色,越来越稳定清晰。

(2)透视。包括人体透视、地下隐蔽物透视和隔墙隔物透视。人体透视就是在人不用脱衣服的情况下,用天眼往里观察,可以看到他的腑脏、骨骼、表皮(表皮透视难度最大)等各种情况。地下隐蔽物透视是直接往地心、地下寻找一些平时用肉眼看不见的东西,比如找水、找矿、找埋藏物等。隔墙隔物透视是从这个屋往那个屋看,或看抽屉、衣兜里有什么东西等。

(3)遥视。古代称为千里眼,没有时空的限制,没有近与远的区别,可以看到几千里、几万里以外,只要在宇宙里确实存在的东西都可以看到。遥视是透视功能的延展。

(4)微视。即在功能状态下去观察微观世界,在显微镜下看不见的东西,他可以放大无穷倍,将它显像,观察里面的结构和生命运动形态。

天眼的原理和电视机一样,有显像管,还有屏幕。显像管部位是固定的,都在松果体部位,屏幕部位是可变的,有的在一个部位,有的在两三个部位,也有的人全身到处都是荧光屏。多数人在前额或印堂穴(两眉之间),还有的在手、足、耳、背、胸、腹等,凡是人体闪光的地方都可呈像。现代解剖学对松果体进行研究,发现它有一个退化的视网膜,有显像的机能,还有抑制性成熟的机能。这个发现为研究天眼功能提供了科学依据,证实了人类确实有过第三只眼,只不过随着人类由自然人向社会人的转化,这一部分功能开始减退了。但是人的这种能力并没有完全退化,尤其是在小孩身上。小孩在性成熟之前经常看到成人看不到的东西,就是这个原因。

天眼功仅仅是能看到,看到了并不一定明白,它只能做出外形的描述,却下不出定义来。

慧眼:是声闻(阿罗汉)、缘觉(辟支佛)的眼。能看破假相,识得真空,不被境所惑动。见众生尽,灭一异之相,舍离诸着,不受一切法,智慧自灭于内。但慧眼无所分别,不能度众生,故求法眼。慧眼能照见一切可见不可见、有形无形的事物。

慧眼功分为多眼、析眼、追眼、预眼四种类型。

(1)多眼是指看事物是立体的,能从四面八方多个方位看。

(2)析眼是指能分析,一看就知道是什么东西,有什么含义。

(3)追眼是指能追查过去,能够追知已经发生过的事情是什么样子,能够知道事情发生的原因。比如一只碗,追查到若干年前,看到的是哪里的一堆泥土;再如给人看病,不仅能看到病情的存在,而且能看到病史,看到以前的来龙去脉。

(4)预眼是指能预见未来,能把没发生的事情在将来发生时的情况看到,或者把最终的结果拿出来,用功夫还能看到事物的量变过程。

美国科学家的实验为预眼现象提供了一个依据:一个叶片刚出芽时,他们用红外摄影拍下照片,将叶芽的生物场捕捉下来,然后在这个叶芽长成叶子并开始老化时,将叶片摘下来与原拍摄的照片对照,发现成叶与叶芽生物场的尺寸、形状完全吻合。于是他们得出结论,任何事物在它诞生的那一天,其超前信号便已出现,而且最终结果也已展现了。展现的方式是随着时间的推移,一步一步地让人们看到它的实在形态。预眼功也是这样,当一件事情决定并开始去做的时候,有功能的人可以沿着时间坐标轴,把这件事在那个横断面上的超前信号捕捉回来,经过自身体内生物计算机的处理(超光速),以屏幕成像或突然感觉两种形式展现出事情的结果。追眼功则方向相反,捕捉的是过去事物的存留信息。

世界的构成是多维的,我们常人处理问题、思考问题习惯于局限在三维空间里;科学家借助于科学仪器可把人的认识能力延伸到更高维度;宗教圣人佛陀能凭借超越理性的神通智慧直观到三千大千世界以外的全维时空。如果我们站在高维空间来探讨问题的原因结果,就会发现人类可以把已经发生的事情追回来,把即将发生的事情捕捉回来。其根本原因就是任何事物都沿着时间这个坐标轴向前发展,人可通过特异功能的超光速性进入时间隧道,向前或向后看,进入未来或回到过去。时空的相对性已被科学的发展所证明,如爱因斯坦的相对论证明时空的特性随着物体运动速度的变化而变化,即当物体以接近光速的速度运动时,物体沿运动方向的空间长度会缩短,物体内部变化过程的时间持续性就会延长。如果速度等于光速时,空间会消失,时间会静止;超光速时,粒子转化为波,时间可以倒流,于是人就可以返老还童、回到过去。外星人的飞碟就会超光度飞行,所以可以随时隐形。

法眼:是菩萨(初地以上)的眼。能彻了世间和出世间的一切法门,广行中道实相义。令此人行此法,得此道,知一切��生各各方便门,令得道证(意思是知道某人修什么法门能够成就,就以什么法门度他)。然不能遍知度众生方便道,故求佛眼。法眼能照见一切法的真如理,真如即真相本来如此或真实不虚、如常不变,是法界相性真实如此的本来面目。

法眼功就是能够改变物体的时空位置,使物体扭曲变形或改变事态的结果,或者能够复制一个新的物体。法眼也可分为几个层次。

(1)小搬运。使小物体位移,还可以止雨或把树叶从树上搬下来、送回去等。

(2)中搬运。包括呼风唤雨,定身等。

(3)大搬运。可移山换景,使物体烧焦,使动物心脏停止跳动,腾空等。

(4)遁术、穿墙、意火、意水、形变、起死回生、返老还童、意念嫁接、复制功能等都可以归到法眼层次。

法眼功为有功能尽量不用或少用者才可达到。达到法眼功,即用眼睛一看,那个事物就被纠正了。它是高能量的视觉,能在看的同时解决一些问题,如能把一根钢丝看断,能把撕碎的树叶复原等,搬运术的方法是看着看着,事物就变了,搬运功能就出现了。不过法眼功要在看时才能佛眼:是如来的眼。有了佛眼便兼有前面的四种眼。宇宙万有,覆障虽密,佛眼无不见知。在凡人为极远、幽暗、疑、微细或甚深者,在佛眼是至近、显明、决定、粗、甚浅。佛眼无事不闻,无事不见,无事不知,无事为难,无所思惟,一切法中,佛眼常照。佛眼能照见一切有情所种的善根,能见到一切法非空非有、不可思议的道理。佛眼不用看,只要从某个地方一过,就能自然而然地纠正应该纠正的事物,礼仪圆明。佛能根据自己的神通智慧随机说法,并诚恳地指出人人皆有佛性,任何人只要按照佛教的方法,进行不懈的修炼,最终都能成佛,达到一种和所有佛一样的无所不知、无所不能、不生不死、永住快乐的涅盘境界。

佛眼功是各种神通或功能中的最高层次和终极境界,佛佛道同,没有再超过佛的了,凡是说超过佛的,都是骗人的大妄语。佛眼功的层次大致有三点。

(1)能够改变他人的人生观,改变他人的人生追求,把他由此岸引向彼岸,使他由原来的浑浑噩噩的芸芸众生变成一个大彻大悟的人——佛,这叫普度众生。

(2)可以使没有功能的人出功能,有小功能的人出大功能,有单一类型功能的人出多种类型的功能。

(3)自身的气质与常人不同,凡是与他接触过的人都被他的内在气质所折服,几乎没有人能逃掉,像一个非常大的磁场,把别人都吸引过来。成佛的人身上的辉光七彩缤纷,凡是能看到的人都能同时受益,这叫佛光普照。

神足通:指随意变现,身能飞行于山海,一切动作皆无障碍。有了神足通的人,凡是都能随心所欲,诸如钻天入地、移山倒海、撒豆成兵、呼风唤雨、腾云驾雾等都不成问题。又叫如意足通,即得如意自在之神通力。有三种如意:

1、能到,包括:身能飞行,如鸟之无碍;移远令近,不往而到;此没彼出;一念能至。

2、转变,即大能作小,以小作大;以一变多,以多变一,种种诸物皆能转变。外道之转变至极不过七日,诸佛及弟子之转变久近自在。

3、圣如意,即能观六尘之不可爱不净之物为净,观可爱清净之物为不净。此圣如意之法唯佛独有。

天眼通:指自在照见世间一切远近之形色,及六道众生苦乐之相。能看见众生的生死去向。

天耳通:指自在听闻世间种种音声,及六道众生一切苦乐言语。能听到常人听不到的声音。

他心通:指自在得知六道众生心中所想之事。能知道对方的心理动态与变化。

宿命通:指能知自身一世二世,乃至百千万世之宿命,亦能得知六道众生之宿命。天眼通能知未来生死,宿命通则知过去生死,有了天眼通与宿命通,便可知道过去与未来了。能知道社会的推移,事物的变迁,未卜先知。

漏尽通:能断一切烦恼,自主其心。漏是烦恼的别名,贪欲、瞋(chēn)恨、愚痴等烦恼断尽称漏尽。烦恼即三界之见思惑,谓断尽见思惑,不受三界生死而得解脱。以上五通俱全后,明心见性,断除烦恼业障,觉悟圆满,得无漏智慧。具备了前五通还不能跳出生死轮回,死后还要转生,只有证得了漏尽通,才能超越生死轮回,进入涅盘境界。漏尽通只有按照佛教方法修行才能获得,其它外道法门都无法达到此境界。

据《俱舍论》卷二十七所载,以上六通,前五者异生凡夫亦得之,但第六通之漏尽通,唯圣者能得。关于六通之次第(程序),《大智度论》卷二十八载:如禅经中说,先得天眼,见众生而不闻其声,故求天耳通。既得天眼天耳,见知众生身形音声,而不解语言种种忧喜苦乐之辞,故求辞无碍智。但知其辞而不知其心,故求知他心智。知其心已,未知本所从来,故求宿命通。既知所来,欲治其心病故,求漏尽通。得具足五通已,不能变化,故所度未广,不能降化邪见、大福德人,是故求如意神通。应如是次第,何以故,先求如意神通?答曰:众生粗者多细者少,是故先以如意神通。如意神通能兼粗细度人多故,是以先说。

五眼和六通的关系:天眼通、天耳通可归到天眼层次,他心通、宿命通可归到慧眼层次,神足通归法眼,漏尽通归佛眼。

需要特别提醒的是,由于神通是修行到了一定境界层次之后自然就有的,尤其是成佛之后即具足一切不可思议神通。所以佛教从一开始就坚决反对以获得神通为目的的修行,因为这不但与佛法的真正目标相违背,也更容易走火入魔,还因为外道也有各种神通,从而使佛法流于游戏或为他教所夺,最终与解脱道背道而驰。

◎天眼通:能见极远方事物,或能透视障碍物(例如:墙)或身体;不受光源明暗影响。 ◎天耳通:能听极远方音声,包括言语等;或能跨过障碍物听到音声(例如:密室对谈)。 ◎他心通:能知众生心念造作。参见心灵感应。 ◎神足通:能随心游历极远处,或过去、现在、未来三世,不受时空限制。 ◎宿命通:能知众生的过去宿业,知道现时或未来受报的来由。 ◎漏尽通:“漏”即烦恼;能破除执著烦恼,脱离轮回,意指修行证阿罗汉果。

12. 九字真言

临,指的是身心稳定,临事不动容,保持不动不惑的意志,这是体魄的修炼
兵,指的是体内蕴藏的能量,表示返老还童的生命力,它象征了行动的快速如风。
斗,则是心灵与宇宙的共鸣,不但要勇猛果敢,还要在遭遇困难的时候,涌出强烈的斗志。
者,意味着自由,既能支配自己的躯体,也可以支配别人的躯体。它是善于借鉴利用环境,操控万物的灵力。
皆,是我们俗称的第六感——直觉。
阵,代表了奇门遁甲。
列,指的是道心,道心惟坚,坚决裂开阻碍自己修炼的障碍。
前,是对元素的控制,这点和西方的秘术原理相通。
行,意味着光明超人的境界。

临(灵) 身心稳定 表示临事不动容,保持不动不惑的意志,表现坚强的体魄。 结合天地灵力——降三世三昧耶会 手印:不动明王印 咒语:金刚萨埵心咒 兵(镖) 能量 表示延寿和返童的生命力。 行动快速如镖——降三世羯摩会 手印:大金刚轮印 咒语:降三世明王心咒 斗(统) 宇宙共鸣 勇猛果敢,遭遇困难反涌出斗志的表现。 统合一切困难——理趣会 手印:外狮子印 咒语:金刚萨埵法身咒 者(洽) 复原 表现自由支配自己躯体和别人躯体的力量。 万物之灵力,任我接洽——一印会 手印:内狮子印 咒语:金刚萨埵降魔咒 皆(解) 危机感应 表现知人心、操纵人心的能力。 解开一切困扰——四印会 手印:外缚印 咒语:金刚萨埵普贤法身咒 阵(心) 心电感应/隐身 表示集富庶与敬爱于一身的能力。 透视、洞察敌人心理——供养会 手印:内缚印 咒语:莲花生大士六道金刚咒 列(裂) 时空控制 表示救济他人的心。 分裂一切阻碍自己的障碍——微细会 手印:智拳印 咒语:大日如来心咒 前(齐) 五元素控制 表示更能自由自在地使用超能力。 使万物均为平齐——三昧耶会 手印:日轮印 咒语:大日如来心咒 行(禅) 光明/佛心 表示佛境,即超人的境界。 我心即禅,万化冥合——根本成身会 手印:宝瓶印(或隐形印) 咒语:摩利支天心咒

13. 地支六冲

13.1. 辰戌冲

辰遇见戌,这个六冲就是八字中最不好的六冲了,他的危害是最大的,卯酉冲虽然也严重,但是多少还有一些好的事情发生,但是辰戌冲我就没发现有什么好事。一般八字中辰戌在月支和日支对冲或者在日支和时支对冲的人,肯定会遇见非常多的坏事情的,一般女人遇见了,风流破家离婚克六亲和身体,男人遇见不但具备了那些信息还很容易进监狱。

为什么辰戌相冲这样不好呢?因为辰是一个比较吉利的地支,代表龙,代表容易变化为神仙,里面包含的水土木关系都是比较温和的,而戌是最不吉利的地支,戌一般都代表屠宰场,战场,黑社会,火葬场,监狱,妓院,地狱等地方,为什么戌代表监狱,因为戌为狗,监狱的狱字就是2条狗把人看住,不让人说话的意思,把人变成狗的地方。

细分析为什么戌这样不好,因为在戌中戊土遇见戌是墓地,包含了一层凶的含义了,戊土这个五行喜欢水和木和庚金,遇见那几样才有贵气,而遇见丁和辛,虽然是伤官佩印的组合,但是也很难贵起来,代表的人就不是什么好命的人。在戌中丁火处于伤官生财的状态,而丁火的伤官戊太旺盛了,所以被泄气的很严重,而且丁火无水和木也是贵不起来的,所以丁在戌中代表的人也不是什么好命的人。辛在戌中处于杀印相生的状态,但是辛这个五行最喜欢水,非常不喜欢土重埋金,也不喜欢七杀的克,所以辛在戌中代表的人也不是好命。当这三类人组成了戌这个组合,就是一个最坏的组合了。

同时戌是丙火代表光明的坟墓,乙木代表善良的坟墓,戊土代表大地信用的坟墓,这3个五行遇见戌都入坟墓不起作用了,所以只要是戌出来了,基本就是灾难的象征。当这个不吉利的地支一旦碰上代表吉利的辰字,那就坏菜了,因为这2个地支的冲最激烈,最胶着,而且是非得两败俱伤才罢休。

地支六冲中 戌辰相冲 是战斗最激烈的 因为两种阳土代表规模宏大,气势庞大,好比两支百万的军队,而且是阳性的还代表正面交锋,辰水库和戌火库被打开,代表着爆炸和最邪恶的行为被释放出来 所谓库 代表包容(地支土属性的 每个都是集团军), 被冲 代表无法包容。 戌里的戊土不喜欢丁和辛,就好比一个主帅不喜欢自己的手下人,他正好可以借助敌人之手把自己的手下杀光,而辰中的戊也不喜欢自己的手下,因为乙不但以小犯上克自己,而且癸还帮忙克自己,所以辰土一旦遇见戌土,二个主帅因为都不喜欢自己的手下人,正好可以借助对方的力量把自己的内部问题解决, 所以战争和屠杀就在双方主帅的默许下不想后退的展开了。 当戌里的辛金挥舞着大刀去砍乙木的时候,乙木只能深入敌后去生助丁火去反克辛金,而辛金也深入敌后生癸水去反克自己的同伙丁火,这时的丁火因为得到乙木的好处开始背叛辛金,但是也遭受到对方内部的叛徒癸水的克制,而癸水虽然没有谁能克他,但是2个戊土却是时时刻刻要对付他的,所以这4种五行全部受到严重的伤害,而且还因为在内部是看不见的严重的伤害,特别还都是见不得光的阴暗的手段互相对付,落得的结果就是戌里的人死了一大批,辰里也是遍地尸体,辛金被克代表皮肤骨头受损,乙木被克代表神经系统受损,癸水被克代表泌尿系统受损,丁被克代表心脏受损,戌一旦和辰干起来,那真是从天上干到地上又干到了水里,所以用战争来比喻这2个支的冲就是这个悲惨的结果。

再用人间的伦理去解释解释。戌代表老男人,戌里的丁代表他的老母亲,辛代表他的小女儿,一旦遇见辰这个中年女人,辰代表女人的乳房,他就会被吸引,因为辰中的癸是他的正财,他喜欢,乙是他的正官可以代表他另外的女儿,所以他就会用辛这时候代表生殖器去对付他的女儿了,而癸还是他的妻子,辰也是妻,这下就乱伦了,这时候癸就吃醋了,就会去克他的母亲丁,这就是伤官见官和贪财坏印,为了女人或者钱把自己的母亲克死了,而且丁还代表心脏,也代表把心脏累坏了。这是从戌的角度看的,再从辰的角度看,辰里的乙是辰中戊的正官丈夫,辰里的癸是她的父亲,当她遇见了戌因为戊喜欢戌中的伤官辛,辛可以代表他失散多年的儿子或者情人,他就把辛勾引进自己的家里了,辛一进入辰里就把她的丈夫乙克了,乙木被克死了,乙是她癸水父亲的食神,所以她父亲也被偏印夺食死了,癸死了财也就没了,而乙正官还代表她的工作和名誉也都没了,于是严重的就是家破人亡了。土还代表家庭房产和稳定的事业,辰戌冲就是2个家庭被彻底破坏分裂了。我在实践中验证过很多,八字里带辰戌冲的人是有乱伦的倾向的。

辰戌冲带来的结果主要是,残疾或者车祸,性病或者皮肤病或者癌症,牢狱或者破大财,色情纠纷或离婚,自己或者亲人死亡,买卖房子。

八字中一旦辰戌丑未全了是最不好的组合,代表亲人全容易被克,八字里一般最忌讳地支土多,因为土代表坟墓医院法院消极死亡等等最不好的信息,但是土也是财库,一旦大运或者流年土聚集全了的时候,发生的好事就是发财或者很容易搬家、动土、装修房子、或买卖房产。土也代表寺庙,特别是戌最代表寺庙,如果一个人八字里土严重被冲克,只有多去寺庙烧香拜佛或者皈依三宝行善积德才能把灾难化解到最轻,否则就是死路一条。

辰遇见亥,不好不坏的组合,这两个地支是相克的,产生的结果具体看八字的组合。

总结一下,辰这个地支最忌讳的就是卯和戌,属龙的和属兔的结婚不适合,最不适合和属狗的结婚,如果龙和狗非要配合到一起,那中间必须得有老虎或者猴子出现才能减轻下危害,龙和狗就是遇见就斗争,只有老虎出现把他们都克制住了,才能避免更大的危害,龙和狗就是老虎的偏财,所以12地支里寅虎是最好的,因为他可以把辰戌冲克制了,把卯酉冲克制了,把丑未冲克制了,把巳亥冲克制了,把子午冲化解了,所以寅就是一个最高贵的最有用的地支,好比太阳一样,给黑暗的世界带来光明,我们无比伟大尊贵的佛祖释迦牟尼佛就是甲寅年生的属虎的,他带给我们和众生真正的光明,南无释迦牟尼佛。

14. 八字书籍简介

  1. 渊海子平 宋代
  2. 三命通会 明代
  3. 命理约言 清初
  4. 子平真诠 清代
  5. 滴天髓 清代
  6. 穷通宝鉴 清代
  7. 千里命稿 民国
  8. 四柱预测学 当代

类比, 相当于C++的不同版本 会有具体倾向。自己适合那本书 看了才知道。

15. 真传一句话

瓦堕地,化为双鸳鸯,此何谓也?宣对曰:后宫当有暴死者。帝曰:吾诈卿耳!宣对曰: 夫梦者意耳,苟以形言,便占吉凶

阅读全文 »

liuyao

发表于 2006-09-05 | 分类于 liuyao

六爻中各爻持世告诉你什么 世爻代表的是自己或求测者,最欢喜用神临旺持世,而不愿意忌神持世,因为那样就预示着有不吉的事情发生。        

1. 兄弟持世:

兄弟克妻破财,兄弟爻持世,最不利求财。如果官鬼旺相克世,更要防灾祸。朱雀临兄弟爻发动,必有口舌之灾。测婚损妻,测财损财。兄弟爻持世,父母爻旺相相生,测寿为吉,兄弟爻持世化官鬼回头克,必有奇灾。

2. 父母持世

父母爻是辛苦劳禄之神,持世主辛劳。求财很费力,父母为子孙的忌神,父母持世子难得,父母爻又是文章学术之神,官动财旺利考学。占自身不论问什么,只要财爻发动,不是得财,而是妻克夫,所以说“占身财动无贤妇。”财动克身,也难有高寿。 

3. 妻财持世

财爻持世利求财,但忌兄弟爻动,因兄弟爻是克妻破财之神,财爻持世,喜子孙爻动,因子孙是财爻的原神。但财爻又是父母、学业、文章的忌神,财旺对这些不利,所以“克父丧文风”。  财爻持世,利求谋工作,因财爻是官鬼的用神,但需官财均处旺相,子孙与兄弟不动。财爻持世发动变成兄弟或官鬼者,不论测何事都 是凶,轻则破财伤身,重则有身亡之灾。因此是回头克,变鬼是化兄。

4. 官鬼持世

官爻持世,最不宜占身测病,官鬼是忧患之神,官鬼持世占自身是病不离身,官事缠身,官鬼是耗财之神,官鬼持世谨防破财。但测功名求官谋职最喜官鬼旺而持世。  官鬼持世测自身喜冲,受冲可去掉身边之鬼,但世爻不能太衰,否则连自己也冲掉了。官鬼持世逢墓则凶,如值墓,化墓,入动墓,随鬼入墓。        五、子孙持世         子孙是福神,是解难之神,子孙持世,官司纠纷从此罢休,失的可回,盗贼可捕获,外出平安,能逢凶化吉,遇难呈祥,但不宜父母爻发动,或日月临父母。子孙持世最喜强旺无克,有生无克诸般吉。  子孙持世,克制官名,谋望难成。在任者应防官灾,女性测婚,忌子孙爻持世,克夫,未婚者,问婚难成,已婚者,丈夫有灾 

阅读全文 »

Jie

发表于 2006-09-05

title: jie description: categories:

  • jie

第一不说家事 第二不提私事 第三不露钱财 第四不滥用感情

阅读全文 »

idea

发表于 2006-09-05 | 分类于 idea
  • 前言

学海无涯苦作舟

1. 游戏

模块属性权重 参数 用于快速动态调节 不合理属性比例

2. 游戏与团队氛围

团队氛围会融入到产品中去. 并且对应产品的用户 也会有相同的感受.

3. 生物节律

通过大数据机器学习 寻找 生物周期率 与出生 到 死亡 之间的关系


测算人体生物律必须用公历生日,只知道农历生日者请查万年历,查出公历生日。
举例:某人生于1964年7月23日,测1993年12月3日三个节律情况。
这个人1964年出生至1993年,经历了1964、1968、1972、1976、1984、1988、1992共8个闰年,因此闰年数为8。
代入公式
[1993-1964]×365+8-[31天(1月)+29天(2月)+31天(3月)+30天(4月)+31天(5月)+30天(6月)+23天]+[31天(1月)+28天(2月)+31天(3月)+30天(4月)+31天(5月)+30天(6月)+31天(7月)+31天(8月)+30天(9月)+31天(10月)+30天(11月)+3天]=29×365+8-205天+337天=10725天
10725天÷23天=466……7天
10725÷28天=383……1天
10725÷33天=325……0
人体生物钟三个节律处在周期日、高潮期、临界日、低潮期的判定标准,如下表:
周期日 高潮期 临界日 低潮期
体力节律余数等于0 余数小于12 余数等于12 余数大于12
情绪节律余数等于0 余数小于14 余数等于14 余数大于14
智力节律余数等于0 余数小于17 余数等于17 余数大于17
根据体力余数7,情绪余数1,智力余数0,对照本表,此人1993年12月3日这天:
体力处在高潮期第7天。
情绪处在高潮期第1天。
智力刚好是周期日。
根据体力周期为23天,情绪周期为28天,智力周期为33天,按日历测算,即可制出此人若干年的人体利害日表。

4. 八字分析阴阳五行

通过大数据机器学习 分析 八字中 阴阳五行 所代表的曲线 再通过曲线 反推 阴阳五行

5. 采集人的面相 声纹 指纹 使用深度学习 与八字系统对应

6. 自动化构建系统

找到现有系统所有粘合适配层之所在, 成为构造自动化系统最关键的点.

7. 真话说一半 原理

当我们思考“为什么不敢说真话”时,或许我们更多的是要去发现这一行为背后的动机是否良善,有人说:谎言本身就是个真相,欲望的真相;还有人说:不要去欺骗别人,因为你能骗到的人都是相信你的人。所以法国哲学家布莱瑟·帕斯卡说:“真相的反面不是错误,而是另一个真相。” 作为俗人,我们戴面具,说假话,伪装相信,其实我们都不傻。

8. 流水线作业

审核提纲, 细分, web调查问卷形式, 项目组填写, 面谈, 流水线 面试总结提纲, 总结流程, 标准化, 流水线

9. 使用流年天干地支 + 流月 + 股票行业五行属性 预测 股票走势

10. 领域神经网络

传统神经网络按照同样的数据 学习获得 拟合函数 会非常接近 建立领域规则倾向, 可使用相同的数据, 拟合出更适合该领域的神经网络.

11. 生活类必备应用

需要有强依赖性 导流量注意 公益(可收费转公众号) : 广告 4 : 1

12. 轻财足以聚人, 律己足以服人, 量宽足以得人, 身先足以率人。

13. 根据用户购买物品时间 推算下一次个购买时间

14. dota自走棋 创意

1. 增加装备类合成卡牌
2. 关卡动态难度系统
3. 宠物击杀成长系统
4. 商业化 增加可购买额外卡组. 购买后在游戏中可以随机抽得(类似自走棋里面的15费卡牌)
5. 每个10关 会根据排名 做逆向排序 等级最低的玩家 优先从奖励装备池中拿取装备

15. 将人的意识 聚焦在某个身体器官上面 让其替代人脑的思考(例如研究)

是否可以达到计算机一样, 远程视频的样子

16. 去中心化社交网络设计

1. 问题点提出
2. 问题点解决
3. 方案集成

17. 阴阳五行与程序编程语言之间的关系

甲 BASIC(1964 甲辰) PHP(1994 甲戌) Swift(2014 甲午)
乙 ruby(1995 乙亥) JavaScript(1995 乙亥) delphi(1995 乙亥) Rust(2015 乙未)
丙 Objective-C(1986 丙寅) Erlang (1986 丙寅) Java(1996 丙子) 丁 FORTRAN(丁酉 1957) Perl(1987 丁卯)
戊 SQL(戊午 1978) 己 Python(1989 己巳) COBOL(1959 己亥) go(2009 己丑)
庚 C(1970 庚戌) Pascal(1970 庚戌)
辛 C++(1981 辛酉) C#(2001 辛巳) Dart(2011 辛卯)
壬 TypeScript(2012 壬辰)
癸 lua(1993 癸酉) Groovy(2003 癸未) CoffeeScript(2013 癸巳)

语言 五行 五常
C 阳金 义
C++ 阴金 义
js 阳水 智
lua 阴水 智
php 阳木 仁
rust 阴木 仁
java 阳火 礼
python 阴火 礼
go 阴土 信
cmake/sql 阳土 信
语言 天干五合
php + go 甲己中正之合
rust + C 乙庚仁义之合
C++ + java 丙辛威制之合
python + js 丁壬淫腻之合
sql + lua 戊癸无情之合
复合语言 五行 五常
C# 阴金+阳火 义+礼

18. 庚子疑云

2020年为庚子年. 历史上为庚子赔款. 起源: 义和团 杀德国公使 八国联军(庚金 俄罗斯 子水 日本) 入北京 分析: 代表世界上其他国家向往中国的事物 结论: 海外市场会持续火爆

19. 方法论之 行业生态链

专业(阿里王坚) -> 平台(阿里云) -> 业务(云计算及人工智能) -> 用户(企业及个人用户) -> 环境(A. 企业用户 B. 个人用户 生态链)

专业技能打造 可靠平台 业务支撑 为用户服务 创造良好氛围

20. 通过基因序列反推生辰八字, 我认为生辰八字类似设备的出厂时间. 在基因序列中应该会有对应的字段来描述. 因为生命时钟会有一个启动时间. 这个跟程序中的系统时间一样.

20.1. 思考如果直接编辑这个出厂时间会怎么样.

21. 凑齐六十甲子所有日元对象参考数据

22. 精神与物质交互

22.1. 形态发生场 -> 共鸣理论

22.2. 事件 产生 的环境

22.3. 同类事物 获取经验 可以共享

22.4. [精神] -> [数据库, 粘合层, 反向代理] -> [物质]

22.5. 人身体的每一种器官 都有对应的频率. 而对应的音乐也有对应的频率. 按照阴阳五行的分类方法, 使用AI分析现有音乐数据. 得到不同的音乐对应人身体器官的规律. 再反向推导.

23. 正直, 善良, 感恩是人类拥有的最强正能量, 记住他们.

24. 人类的基因锁

24.1. 鬼神的存在 只有少量的人群可以体验到. 是一种特殊的频率的事物.

24.2. 当我尝试告诉人们这个世界的真相(系统会启动反调试器, 瞬间所有的人都会突然沉默) 这让我明白 人类的基因上面 有对应的程序设定

24.3. 当人们去尝试打破禁忌, 这个基因锁会启动 阻止人们知道这个世界是一个虚拟的真实世界. 只有少量的人 会察觉到它的真实存在. 密码就在人类的基因上面. 在某一天当人们发现了这个基因锁 会怎么样. 上帝之门会开启吗?

24.4. 人类每次接近或掌握类似模拟技术时就会遭到灭绝。

24.5. 即使人类掌握了这项技术,我们也不会有兴趣模拟出自己的祖先。那么我们生活在一个模拟现实中的概率接近100%。

25. 呼吸

先由右鼻孔吸气,然后再左鼻孔出;再左鼻孔吸,右鼻孔出;再两鼻孔吸,两鼻孔出气的方法. 呼吸要慢

26. 人体的无线网络

突然有个感悟。 人的大脑中有个无线网络接受装置。 当他开启时 可以连接到某个无线网络 获取到信息。 那么为什么 不是人人都可以获取呢。 因为这里有很多前置条件。 比如 首先你的设备是否正常运作。 其次你的能量是否充沛, 再者 就是你所在的位置 是否信号比较强烈。 也就是说 即使 设备 运作正常 能量也很充沛。 但是你所在的位置 本身就没有wifi型号。 那么也不行。 这个就可以解释 菩提树之类的传说为何而来。 其实就是方位的问题。 也可以解释那么多人 去朝圣。

26. 一个不是 我们的身体 也不是世间万物 的东西。潜意识 -> 超意识

27. 天圆地方代表什么

刚才看到天圆地方。 突然想起来 显示器为啥是方形的。而连通显示器的线是圆形的。这个算不算一种投射。换一种思路 人的脑袋是圆形的 身体确是方形的。也就是说 人的大脑 会投射信息给 身体。 让身体产生对应的投影。
那么是不是说明人的大脑 是可以直接影响身体的五脏属性。
然后再推算 得出的结论就是 人如果生病 那么一定是大脑里面产生负面的想法 投影到五脏中 产生对应的变化。也就是说 只要改变对事物的看法 就可以改变一切。
那我们开始反证。 如果显示器是圆形的 会如何。边界。 两个圆形的东西叠加 会让边界感 变的不那么明显 从而让我们 无法分辨边界在哪里。
得到的结论比较奇怪。 就是说人的大脑 是唯心的。当人们不在通过大脑运作。而直接由身体去运作 即会把自己困到方形中。从而产生固定的命运。

28. 游戏创意

创造一款需要忍住不花钱的游戏, 制造曲线, 概率收敛 类似比特币获得率衰减系数.
阅读全文 »

happy

发表于 2006-09-05 | 分类于 happy
  • 前言

1. 松果体活化唤醒「古老冥想法」|开启直觉 创造力 高我意识 提升专注力

https://www.bilibili.com/video/BV1SZ4y1G7M8?spm_id_from=333.337.search-card.all.click&vd_source=5820f3b89c1cc8869811271064ffa5a9

2. 中文引导 打开第三眼 眉心轮 跳出第三维度 激活松果体

https://www.bilibili.com/video/BV1tb4y1f7qm/?spm_id_from=trigger_reload&vd_source=5820f3b89c1cc8869811271064ffa5a9

3. 纯音乐:936Hz赫兹 唤醒松果体 看到不同维度的世界 冥想音乐 睡眠音乐 开天眼

https://www.bilibili.com/video/BV1pi4y1L75m/?spm_id_from=autoNext&vd_source=5820f3b89c1cc8869811271064ffa5a9

4. 999HZ治愈音乐,无比强大的治愈力, 仅仅只听21分钟, 用秘密的频率冥想音乐加强心理暗示,提高自信, 改变各项运势

https://www.bilibili.com/video/BV1zo4y1k7T2/?spm_id_from=333.788.recommend_more_video.-1&vd_source=5820f3b89c1cc8869811271064ffa5a9

5. 清除负面的细胞记忆-清除细胞阻塞(能量频率音乐) Remove Negative Cellular Memories - Clear Cellular

https://www.bilibili.com/video/BV1Wp4y1a7Y5/?spm_id_from=333.788.recommend_more_video.3&vd_source=5820f3b89c1cc8869811271064ffa5a9

6. 432Hz 彻底恢复和治愈身体|清除负能量光环|通过森林树木

https://www.bilibili.com/video/BV1T94y1Z797/?spm_id_from=333.788.recommend_more_video.10&vd_source=5820f3b89c1cc8869811271064ffa5a9

7. 「Neowake」|727Hz治愈炎症和增强免疫防御-强大的免疫保护屏障

https://www.bilibili.com/video/BV1Xq4y1n7N4/?spm_id_from=333.788.recommend_more_video.12&vd_source=5820f3b89c1cc8869811271064ffa5a9

8. 音药丨疏肝养心丨音药佳品,听后顿觉心情舒畅,烦恼尽消。烦燥,抑郁,胸闷等可常听此乐

https://www.bilibili.com/video/BV1ti4y137Ss/?spm_id_from=333.788.recommend_more_video.5&vd_source=5820f3b89c1cc8869811271064ffa5a9

9. 音药丨净化排毒丨清除身体负面能量,补充元气,缓解疲劳,助眠,改善气色

https://www.bilibili.com/video/BV1zi4y1G7i7/?spm_id_from=autoNext&vd_source=5820f3b89c1cc8869811271064ffa5a9

10. 寺庙流水钟声,令人心境平和柔顺,放松催眠。

https://www.bilibili.com/video/BV1Mg411M7Va/?spm_id_from=333.788.recommend_more_video.1&vd_source=5820f3b89c1cc8869811271064ffa5a9

11. 小周天流程图

https://www.bilibili.com/video/av97711696/

12. 三脉七轮,大小周天,任督二脉运行路线

https://www.bilibili.com/video/BV1bL4y1b7X1/?spm_id_from=autoNext&vd_source=5820f3b89c1cc8869811271064ffa5a9

13. 證明西方極樂世界存在的方法,居然也是通往所有神秘世界的鑰匙

https://www.youtube.com/watch?v=wHfyxOEKyd0

14. 五脏藏神说:心藏神、肺藏魄、肝藏魂、脾藏意、肾藏志

无善无恶心之体 = 心本无善恶 有善有恶意之动 = 当你产生了物质欲望 则产生了善恶 知善知恶是良知 = 获取物质欲望 要遵循自己的良知 为善去恶是格物 = 当自己跳出物质欲望 才能了解事情的真相

15. 卡爾榮格對全世界的警告!為什麼你越擔心什麼,就越發生什麼,這就是上帝的邪惡的秘密

https://www.youtube.com/watch?v=eRnPZIcvz_c https://www.bilibili.com/video/BV12Y4y1k7Rv?spm_id_from=333.337.search-card.all.click&vd_source=5820f3b89c1cc8869811271064ffa5a9

16. 上帝邪恶的秘密

潜意识的秘密 你的潜意识 就会引导事务往什么方面发展。

恶魔的阴谋 让你作恶的潜意识

元神 - 先天一炁 - 生命的本源 - 天使 - 生 识神 - 追求死亡 - 死亡的本质 - 恶魔 - 死 神交 - 精神力 - 与万物交流 庄子 - 庄公梦蝶 集体潜意识 - 神的秘密 神性的障碍 - 突破限制的力量 敬畏 人的多重人格的秘密 亚当夏娃 - 蛇 上帝创造了亚当夏娃 也创造了蛇 去引诱 亚当夏娃 偷吃禁果 那这到底是不是神的旨意

为什么大家看不清楚上帝的样子, 那为何又有人可以看见。–突破限制的力量 勇气 上帝的真正旨意 是让我们破除 世间存在的伪神 伪信徒 – 我们为什么而活 人生的意义又是什么 恶是谁创造出来的 上帝 上帝到底是什么。 神的群体意识。

如果这个世界是被神创造出来的,为啥要创造善与恶, 生与死. 上帝不是完美的吗

如果我们是这个世界的游戏玩家 那么游戏中的怪物 是不是就是恶。那它是谁创造出来的呢。答案 上帝。那么这个恶的存在意义是什么。让我们升级。 上帝永远都不是仁慈的。 永远思考: 我们是不是已经死去 荣格: 红书

认识你自己 哪一个才是你自己

至心至诚 十六观 不能有丝毫犹豫 无执 抛弃妄想 不要主动去赶走杂念 你越用力 他们越不离开

  1. 观日 -> 火 最基础 最重要
  2. 观水 -> 水
  3. 观地 -> 土
  4. 观树 -> 木
  5. 观西方极乐世界 -> 金

人类天生具有“弑父情结”,从一出生,他就注定要和父亲展开斗争,以摆脱被统治,被支配的地位,争取独立自由的权利,进而掌握家庭的主导权和社会的主动权。 ——弗洛伊德

17. 念头

观察自己的念头 念头会在一瞬间崩塌. 然后产生瞬间的愉悦感.

还记得我们之前说的 你想的一件事 如果说出口 一说就会破功。我发现这个 就是 量子力学 里面说的 量子崩塌。那么这个说的过程 到底是什么。 从气场上面来说 我确实感觉到 一旦说出来。这个事情 反而会滞后。如果说的太多 这个事情就会失效。

如果 这个可以让 念头 崩塌。 那么让念头 崩塌 产生的收益又是什么?

我知道了。

就是可以让坏事 消失。

这个好像就是解除诅咒的原理。

因为我们已经观察到了它 所以它就会崩塌 成一个具现化的东西。从而不会持续运作。

阅读全文 »

excel

发表于 2006-09-05 | 分类于 excel
  • 前言

excel常见操作

1. X,Y互换

复制需要转换的数据, 右键, 选择性粘贴 -> 转置

阅读全文 »

dizhi

发表于 2006-09-05 | 分类于 dizhi

四库

丑 为金库 喜收藏 黄金, 古玩, 甜点,手办, 鞋类

辰 为水库 喜收藏 书签, 标本, 杯子,茶具, 中药, 流程方案

未 为木库 喜收藏 书籍, 纸张, 衣服

戌 为火库 喜收藏 烹饪 娱乐场所 武器 工具箱 数学题 男:打火机, 女:化妆品

1. 地支所属之象

子水:子水属阳,子水具有阴阳两重性,它属于外阳内阴之象,表象是阳,实显阴性。子是十二支的首位,属溪涧汪洋之水。在节令上为农历十一月。子为墨池,方位属正北,五行属水,颜色象墨,所以有墨池的意象。凡是子年生人时柱喜见癸亥,叫做“水归大海”,又叫“双鱼游墨”,主文章、文采出众。

丑土:丑土节令是十二月隆冬,含水气,所以为湿土,五行属阴,丑为金库。五行颜色;黑黄。丑为柳岸,丑中有水有土有金,岸是土堆成,可以阻止水流所以丑有柳岸之名。丑年生人时柱碰见己未,叫做“月照柳梢”,这是一种极为上格的命。

寅木:寅为孟春。节令是农历正月。五行属阳。五行颜色:绿色。寅为广谷,在方位上属于东北的艮,艮在八卦上为山,原是戊土生长的地方,这样就有广谷的意义了。寅年属虎,虎年生人时柱碰上戊辰,那就叫“广谷虎啸”,威镇万里。

卯木:卯为仲春,节令为农历二月。这时万物生长,树木碧青如琅,所以卯为琼林,卯的位置在正东方,五行属木。卯年生人,时柱碰上巳、未的,叫“兔入月宫”,一定大贵。

辰土:辰为季春,节令为农历三月。辰土是水泥湿土,万物之根靠它培养生长辰为草泽。大泽是水聚的地方,而辰位置在东方稍偏一点的地方,正好是水库所以在草泽之名。八字中如果辰逢壬戌、癸亥,就贵为“龙归大海”格了。

巳火:巳为孟夏,节令为农历四月,这时巳火更旺,巳为大驿,所谓的大驿,就是人烟密集,道路通达的地方。因为巳里面藏有丙火、戊土,加之巳下面的一个地支又是午马,所以用大驿作巳的象征。火凡巳年生人,逢上辰时为吉利巳属蛇,辰为龙、蛇化为青龙,在格局里为“千里龙驹”。

午火:午为仲夏,节令是农历五月,这时的火势太旺。午为烽堠。午的位置在正南方,五行属火、土,颜色赤黄,所以有烽堠之称。同时午生肖为马,而烽堠正是兵火所处的地方。大凡午年生人,时柱最好能见辰,辰是真龙,真龙出现则马隐,这叫“马代龙驹”。

未土:未为季夏,节令为农历六月,这时阴气加深,火势渐弱。未为花园。花园为什么要属未而不属卯呢?因为卯木旺盛,自成茂林;未是木的墓库,好比墙亘里的花木,并且从杂而生,所以未叫做“花园”。未年生的人,碰上戊戌时,两干不杂,有“双飞格”之称,这是最好不过的。

申金:申为孟秋,节令是农历七月,是壬水,戊土长生之地,申是顽钝耐磨之金,为阳金。申为名都。在八卦中,方位属坤地,即西南方。其地的休势广大无疆,不用“名都”作比喻,不足以说明它广大。申宫生出壬水,又和艮山相对,是水绕山环的地方。申年出生的人逢上亥时,这就是“天地泰斗”的吉象

酉金:酉为仲秋八月,辛金色如白水清明。酉为阴金。酉为寺钟,因酉为金,位置在戌亥,戌亥为天门,钟为金属,寺钟敲响,声音响彻天门。酉的位置在正西方,寺又是西方佛界的代表,酉碰上寅吉利,叫作:“钟鸣谷应”。

戌土:戌为季秋,节令是农历九月。戌为火库,所有的钝铁顽金都要靠它锻炼成器。戊为烧原。戌的月份是深秋九月,那时草木枯萎,农家烧草而耕,加之戌属土,所以有烧原之名,正因为此,辰、戌地都是贵人不到的地方。戌年生人逢上卯支,那就叫“春入烧痕”。

亥水:亥为坤卦,六阴、这时一片白雪,土到此不暖,金到此会生寒气。亥属水,象五湖归聚的地方。亥为悬河。大河之水,奔流不回,所以称悬河。亥为天门,亥又属水,悬河之象非常明显。所以亥年出生的人,如果日柱、时柱有寅、辰二字,就称得上是“水拱雷门”了。

2. 地支之象

子水:子癸一家但有区别,子水属于流动的水,运动的水,引申为江湖走江湖的。子水也代表玄学,技能,聪明,淫邪。于人体为肾,膀胱,泌尿,到年上主这人到处跑。

丑土:寒土,泥巴,湿土,沼泽,堤坝,阴中之阴不见阳光,是地下室,下水道,黑社会。为抽象,为军营,厂矿,煤矿。怎么用?看它干什么。根据天干之象配合使用。看十神透干为啥或带了什么象,比如丑土为财库,就可能为银行,是羊刃库就是军营了。丑土还主牢狱,黑社会,干的勾当为弄财。辛酉日主见丑为黑社会,但辛丑日柱则不是,因为辛丑辛为清丑为浊,辛金为丑土中出来的,为浊中出清,有高贵之象。

寅木:为树木,木林,死木为家具,活木为家具。引申为会所,楼宇,组织,因六壬中寅为功曹,故寅也引申为政府机关,文化场所,但是必须是以寅木为印才是政府机关的,如果寅木为财就是木材了。于人体为头,为手,为肢体,肝胆,毛发,经脉通于毛发,故也主神经。

卯木:花木类,弯曲的,绳索木工,兵器(带羊刃时),植物,木材建材,车船街道(因为卯木为太冲),到门户上又是印星则为车。为门窗,床,篱笆,机构,网络,肝胆,四肢,手指,腰,毛发。

辰土:湿土,泥巴,水土,水库,堤岸,池塘,水中田园,土产,牢狱(因辰为天罗地网),建筑,车辆机器,大机构,旧屋,辰为食神为中药,思想,网络,膀胱,肌肤,肩,胸。丙辰日主,本来为食神又是辰土,为思想。

巳火:阴火,温暖,文化,文章,务虚。与丙火不一样,巳火是阴阳的聚合物既阴又阳,变化莫测,如果柱中有巳火,这个人的性格可能有变色龙的倾向。还为色彩影像,网络,道路,闹市。于人体为眼目,三焦,咽,面,神经,心脏,小肠。

午火:直来直去,特热,大火,阳光,火光,广告,文字,语言,机动,打杀剧场。午火为热闹的地方,体现视觉冲击力的火。于人体为小肠,眼睛,舌,神经,血液,精力。

未土:为温土,田园,公园,庭院,林场。为休闲,陶冶,酒店,饰物。未也为房地产,酒店(木土之象为地产,建筑物)营造,化工,为食神时主医药。于人体为脾胃,脘腹,口腔,肌肤。

申金:与庚相似,刀,剑,戈,兵,司法,军队,公检法。矿物,车辆,金融数学等。配十神含义。于人体为肺,大肠,脊,牙齿,气管。申金与火相配主武职。带上羊刃七杀羊刃伤官,也主武职。带伤官为检察院、纪委,带羊刃为公安、军队。

酉金:金石,加工好的,器皿,道路,酒店。传媒,信息,技术,玄学,技巧阴中之阴。于人体为肺,肋,小肠,牙齿。

戌土:燥土,窑冶,炉,枪,火药,牢狱,刑罚,甘霖,古墓,庙宇,市场,色情场所,化工。属于火库,枪弹库,还有戊土之象。如为伤官库、官库易为庙宇,为食神库为学校,也有编辑部的象,因为戌是火库,文明之象。影院,市场,互联网,热闹的地方。戌主数学,戌亥为干宫,主数学。

亥水:科技,运算,网络。亥水容易当会计,总和数字打交道。小孩考试考得好不好,要从命理上先分学科。戌亥为数学,丙丁火为语文,丙丁火到时上年上为外语,火为朱雀为说话文章之意,戌未为化学,酉金为物理申金有时也是木火属文,金水属理,月令年为历史,代表祖国祖先,月令有用,喜欢传统文化。月令弄到时上者,能够古为今用也。

3. 地支的象意

子水:五行属阳水,位居北方。主池塘、沟河,与水有关场所;在人主妇女、盗贼;动植物主燕子、蝙蝠、蜗牛、地瓜、水萝卜、浮萍;在事上遇吉神为聪明吉祥,遇凶神主淫佚。

丑土:五行属阴土,位居东北方。场所主桑园、桥梁、宫殿、礼堂、坟墓。在人主贵人、尊长、神佛;动物为牛、驴、骡子;静物主锁匙、首饰、珍宝、斛斗、鞋类。在事上遇吉神吉格主喜庆、迁官晋职;遇凶神凶格,主刑狱、词讼口舌是非、离乡背井或疾病。

寅木:五行属阳木,位居东北方。场所主山林、桥梁;在人主丈夫、女婿、贵人、清官、公门人;在物主文书、单据、发票、香炉、织机、财物、棺材;动物主老虎、豹子、猫。在事上遇吉神主文书、财帛、信息,遇凶神为失财、疾病、官非。

卯木:五行属阴木,位居东方。场所主大街、道路;人上主兄弟、姑娘、妇女盗贼、手工业者;物品主船只、车辆、门窗;动物主兔子、蛐蛐。在事上见吉神主车辆船只平安无事,遇凶神则官司口舌,或车船遇险。

辰土:五行属阳土,位居东南方。场所主土堰、坟墓、麦地、寺观;在人主僧人道人、妇女;物品主瓷器、缸瓮、灰盆、香纸、皮毛;在事上见吉神主医生药物,见凶神主屠夫、争讼。

巳火:五行属阴火,位居东南方。在人为妇人、少妇、少女、乞丐;动物为长虫、蚯蚓、蝉、萤火虫;物品主书画、文字、花果、砖瓦、瓷器;在事上见吉神主文书、票证,见凶神主疫病、梦魇。

午火:五行属阳火,位居南方。场所主大厅、会议室、电影院、娱乐场所;在人为僧人、骑马人、女秘书、宫女、使者;物品主电视机、音响、电器、书画衣服、旌旗;在事上见吉神为信息、文章,见凶神为惊疑、口舌是非。

未土:五行属阴土,位居西南。场所主大院、墙堰、坟墓、田野;在人为老妇人、老男人、放羊人、寡妇、巫师;在动物为羊、鹰、白头翁;在物为衣服、药品、食物、酒器;在事上见吉神为酒食、宴会、喜美之事,见凶神凶格为疾病,孝服、官灾。

申金:五行属阳金,位居西南方。场所主神堂、佛堂,麦地;在人为行人、军徒、凶恶之人;物品为自行车三轮车、摩托车、火车、汽车、刀剑、金银、铁器类;在动物为猿猴、狮子;在事上遇吉神主有佳音、喜美之事,遇凶神主道路损失、疾病、破财。

酉金:五行属阴金,位居西方。在人为妇女、少女、阴贵人、卖酒人;物品主金银、首饰、珍宝、刀剑、皮毛、爪骨、瓜果、口罩、石柱;动物为鸡、鸽,在事上见吉神主清谈和会,见凶神主疾患、离别。

戌土:五行属阳土,位居西北方。场所为山岭、冈坡、寺观、坟墓、厕所、牢狱;在人为长者、善人、僧道之人;动物为狗、驴;植物为大豆、高梁、荞菜物品为砖瓦、瓷器、药物、尸骨、锁匙、鞋履;在事上见吉神主办事顺利,见凶神为虚诈不实及争斗走失、牢狱之灾。

亥水:五行属阴水,位居西北方。场所主江河、湖海、仓库、寺院、楼台、厕所;在人主小儿,乞丐、掌鞋人、赶猪人、醉酒人、罪人、盗贼;动物为鱼、虾、蟹类;物品为毛发、麻布、绸绢、笔墨;在事态上见吉神主婚姻、求索,见凶神主争斗、难产。

地支分阴阳,木火为阳,寅卯辰巳午未为阳,辰为阳中阴。金水为阴,申酉戌亥子丑为阴,戌为阴中阳。丑酉为阴中之阴,太多数丑酉与犯罪、黑社会有关主牢狱、黑社会、坟墓、玄学、邪。亥子不是阴中阴,亥是阴之位,但中含阳子为阴,但位在阳。辛酉日主见丑时为黑社会,因阴见了阴又入墓。辛丑日主不是黑社会,因为浊中见清,人性是好的。戌为阳乱,如歌厅,丑为阴乱。

看学习的文理,哪门考的好坏都可以看。戌亥为计算、运算的意思,表数学,入干门。丑主玄学。木火主文,金水主理。辰见了子为化学。申酉为法律,申还代表金融,酉不代表金融。辰有运动的意思,表机器、车辆。

4. 地支类象

子象:水、冰、河流、泉水、井、流动、流转、车船、贸易、江湖、文墨、玄学、圆润、聪明、技能、邪;于人体为肾、耳、膀胱、泌尿、血液、精、腰、喉咙、耳朵;动物为:蝠、鼠、燕。

丑象:寒土、湿土、泥、沼泽、堤坝、地下室、下水道、厕所、黑暗、隐蔽、矿井、煤炭、坟墓、牢狱、黑社会、私情、乱、玄学、抽象、银行、军营、厂矿、田园;于人体为腹、脾胃、肾、子宫、肌肉、肿块;动物为:蟹、牛、龟

寅象:树木、花木、木材、家俱、神龛、堂庙、会所、楼宇、组织、政府机关文化场所、高雅、寺庙、山林;于人体为头、手、肢体、肝胆、毛发、指甲、掌、经络、脉、筋、神经;动物为:虎、豹、猫。

卯象:树木、草木、花木、灌木、绳索、木棒、兵器、织物、木材、建材、建筑、车船、街道、门窗、床、篱笆、网络、机构;于人体为肝胆、四肢、手臂手指、腰、筋、毛发;动物为:貉、兔、狐。

辰象:湿土、泥、水库、池塘、堤岸、水井、田园、土产、牢狱、建筑、车辆机器、大机构、旧物、中药、思想、网络;于人体为膀胱、内分泌、肌肤、肩胸、腹、胃、肋;动物为:蛟、鱼、龙。

巳象:阴火、温暖、文化、文章、思想、幻想、务虚、变化、色彩、影像、道路、寺观、楼台、闹市、网络;于人体为心脏、三焦、咽喉、面、齿、眼目、神经、小肠、肛门;动物为:蛇、蚓、蟑。

午象:阳火、大热、火器、血光、光彩、电子、信息、广告、文学、语言、文章、热情、激动、冶炼、战场、厅堂、大厦、剧场、体育场;于人体为心、小肠、眼、舌、血液、神经、精力;动物为:獐、马、鹿。

未象:温土、田园、公园、庭院、墙堰、林场、休闲、陶冶、情趣、饰物、酒店、酒食、土产、建筑物、营造、医药、化工、热毒;于人体为脾胃、腕、腹口腔、肌肤、脊梁;动物为犴、羊、鹰。

申象:铁器、硬物、刀、铲、车、兵戈、军队、司法、矿物、矿厂、机器、车辆、医院、西医、道路、城池、名都、祠堂、金融、数位;于人体为肺、大肠骨、脊椎、气管、食道、牙齿、骨钙、经络;动物为:猴、猿、猱。

酉象:金石、剑戟、铲锄、器皿、街道、碑碣、寺院、酒店、银行、钟表、信息、传媒、法律、技术、隐学、玄学、机巧、邪、妓;于人体为肺、肋、小肠耳朵、牙齿、骨骼、臂膀、精血;动物为:雉、鸡、鸟。

戌象:燥土、窑冶、炉、枪弹、军火、牢狱、刑法、坟墓、岗岭、古物、庙宇加油站、电站、学校、编辑部、影院、闹市、市场、歌舞、色情、互联网、建筑、高楼、建材、化工、数学;于人体为心、心包、命门、背、胃、鼻、肌肉腿、踝足;动物为:狼、狗、豺。

亥象:池塘、灌溉、沟道、笔墨、酒、水产、毒药、沈溺、心志、科技、运算数字、思想、网络;于人体为头、肾、膀胱、尿道、血脉、经血;动物为:猪、熊。

5. 地支预测

5.1. 先知先觉预知术—嚏喷(打哈欠)吉凶预兆 

    子时嚏喷:(23:00-01:00) 主有饮食,相会宴乐。     丑时嚏喷:(01:00-03:00) 有女人思,客来求事。     寅时嚏喷:(03:00-05:00) 主女人相,会饮食事。     卯时嚏喷:(05:00-07:00) 主有财喜,人来问事。     辰时嚏喷:(07:00-09:00) 主终日有,饮食大吉。     巳时嚏喷:(09:00-11:00) 主有吉人,来求财利。     午时嚏喷:(11:00-13:00) 主有贵客,远人宴会。     未时嚏喷:(13:00-15:00) 主有饮食,吉利之事。     申时嚏喷:(15:00-17:00) 夜梦惊恐,饮食不利。     酉时嚏喷:(17:00-19:00) 主女人来,求请问事。     戌时嚏喷:(19:00-21:00) 主女人思,会和合事。     亥时嚏喷:(21:00-23:00) 主有虚惊,反得吉利。

5.2. 先知先觉预知术—扣错衣扣吉凶预兆   

   子时扣错衣扣:(23:00-01:00) 男主饮食,女主亲事。     丑时扣错衣扣:(01:00-03:00) 主有忧疑,破财之事。     卯时扣错衣扣:(05:00-07:00) 主交友相,会饮食吉。     辰时扣错衣扣:(07:00-09:00) 主自身破,财忧病事。     寅时扣错衣扣:(03:00-05:00) 主亲人忧,至不成凶。     巳时扣错衣扣:(09:00-11:00) 主女人有,外思之事。     午时扣错衣扣:(11:00-13:00) 主有远人,至得财吉。     未时扣错衣扣:(13:00-15:00) 主血光之,灾事无防。     申时扣错衣扣:(15:00-17:00) 主有外财,出入大吉。     酉时扣错衣扣:(17:00-19:00) 主有人至,破财大凶。     戌时扣错衣扣:(19:00-21:00) 主词讼得,财帛大吉。     亥时扣错衣扣:(21:00-23:00) 主见官得,财大吉利。

5.3. 知先觉预知术——眼跳吉凶预兆     

子时:(23:00-01:00) 左眼跳有贵人;右眼跳有饮食。
丑时:(01:00-03:00) 左眼跳有忧心;右眼跳有人思。
寅时:(03:00-05:00) 左眼跳有人来;右眼跳喜事至。
卯时:(05:00-07:00) 左眼跳贵客来;右眼跳平安吉。
辰时:(07:00-09:00) 左眼跳远客来;右眼跳主损害。
巳时:(09:00-11:00) 左眼跳有饮食;右眼跳主凶恶。
午时:(11:00-13:00) 左眼跳主饮食;右眼跳有凶事。
未时:(13:00-15:00) 左眼跳主吉昌;右眼跳有小喜。
申时:(15:00-17:00) 左眼跳有损财;右眼跳有女思。
酉时:(17:00-19:00) 左眼跳有客来;右眼跳远客至。
戌时:(19:00-21:00) 左眼跳有客至;右眼跳主聚会。       亥时:(21:00-23:00) 左眼跳主客至;右眼跳主官非。

5.4. 先知先觉预知术——心惊吉凶预兆

子时心惊;(23:00-01:00) 主有女子,思喜事至。
丑时心惊:(01:00-03:00) 主有恶事,临门大凶。
寅时心惊:(03:00-05:00) 主有客来,饮食大吉。
卯时心惊:(05:00-07:00) 主有饮食,及外人来。
辰时心惊:(07:00-09:00) 主有成合,喜事大吉。
巳时心惊:(09:00-11:00) 主有女思,及喜事至。
午时心惊:(11:00-13:00) 主有饮食,自然而来。
未时心惊:(13:00-15:00) 主有女人,思念大吉。
申时心惊:(15:00-17:00) 主有大喜,之事至吉。
酉时心惊:(17:00-19:00) 主有人送,喜信至吉。 
戌时心惊:(19:00-21:00) 主有贵人,即至大吉。 
亥时心惊:(21:00-23:00) 主有丧服,及恶梦凶。 

5.5. 先知先觉预知术——耳鸣吉凶预兆

子时:(23:00-01:00) 左耳鸣主女思;右耳鸣主失财。
丑时:(01:00-03:00) 左耳鸣主口舌;右耳鸣主诉讼。
寅时:(03:00-05:00) 左耳鸣主失财;右耳鸣主心急。
卯时:(05:00-07:00) 左耳鸣主饮食;右耳鸣主客至。
辰时:(07:00-09:00) 左耳鸣主远行;右耳鸣主客至。 
巳时:(09:00-11:00) 左耳鸣主凶事;右耳鸣主大吉。
午时:(11:00-13:00) 左耳鸣主远信;右耳鸣有亲来。
未时:(13:00-15:00) 左耳鸣主饮食;右耳鸣远人来。
申时:(15:00-17:00) 左耳鸣主行人;右耳鸣主喜事。
酉时:(17:00-19:00) 左耳鸣主失财;右耳鸣主大吉。
戌时:(19:00-21:00) 左耳鸣主饮食;右耳鸣主客至。 
亥时:(21:00-23:00) 左耳呜主大吉;右耳鸣主饮食。 

5.6. 先知先觉预知术 —喜鹊鸣叫吉凶预兆

子时喜鹊鸣叫:(23:00-01:00) 主有远亲,人至大吉。
丑时喜鹊鸣叫:(01:00-03:00) 主有大喜,庆事大吉。
寅时喜鹊鸣叫:(03:00-05:00) 主有讼词,之事小吉。
卯时喜鹊鸣叫:(05:00-07:00) 主有财喜,酒食大吉。
辰时喜鹊鸣叫:(07:00-09:00) 主有行人,回家大吉。
巳时喜鹊鸣叫:(09:00-11:00) 主有喜事,临门大吉。
午时喜鹊鸣叫:(11:00-13:00) 主有疾病,宜求神佑。
未时喜鹊鸣叫:(13:00-15:00) 主失六畜,不见事凶。
申时喜鹊鸣叫:(15:00-17:00) 主有吉兆,之事大吉。
酉时喜鹊鸣叫:(17:00-19:00) 主被劫失,意不安事。
戌时喜鹊鸣叫:(19:00-21:00) 主有财帛,亨通事吉。       亥时喜鹊鸣叫:(21:00-23:00) 主有口舌,争闹之事。  
阅读全文 »

communications

发表于 2006-09-05 | 分类于 communications
  • 前言

与人相处如何学会变通

学会变通是一种有效的人际沟通技巧,它可以帮助你在与他人相处时保持和谐。下面是一些方法:

放下自我:不要总是把自己的想法和意见放在首位,要愿意听取他人的意见和看法。

学会沟通:善于沟通可以帮助你了解他人的想法,并以适当的方式回应。

调整自己的态度:保持积极、乐观和包容的态度可以帮助你更好地与他人相处。

寻求共同点:尽量找到与他人的共同点,这可以加强彼此的联系。

容忍他人:要学会容忍他人的不足,不要因为小事而与他人发生冲突。

通过努力实践以上方法,你可以学会变通,更好地与他人相处。

能说一下具体操作技巧吗

当然,下面是一些具体的操作技巧:

倾听:倾听他人的观点和感受,尝试理解他们的立场。

适应他人的风格:试着适应他人的沟通方式,这可以帮助你更好地与他们相处。

关注语言:注意言语的使用,避免使用负面或攻击性语言。

换位思考:试着站在他人的角度考虑问题,从而更好地理解他们的想法。

避免批评:避免对他人进行批评,尽量提出建议和帮助。

化解冲突:在发生冲突时,试着通过和解的方式解决问题。

尊重他人:尊重他人的意见和观点,并对他们表示尊重。

建立情感通道: 通过以上理解他人的行为, 从而建立感情通道

通过运用以上技巧,你可以更好地与他人相处,达到和谐相处的目的。

阅读全文 »

中国城市五行

发表于 2006-09-05 | 分类于 中国城市五行
  • 前言

 中国主要城市的五行属性

北京,五行属性为水; 上海,五行属性为金; 重庆,五行属性为火; 广州,五行属性为水; 天津,五行属性为水火;(天津五行气不专,所以不管人为如何推动其发展,也不可能成为标兵城市。) 石家庄,五行属金; 秦皇岛,五行属土; 承德五行属水; 唐山,五行属金; 北戴河五行属水; 沧州五行属水; 廊坊五行属土; 衡水五行属水; 邢台五行属土; 太原五行属土; 大同五行属火; 阳泉五行属水; 晋中五行属土; 运城五行属土; 临汾五行属水; 侯马五行属火; 宁武五行属火; 长治五行属水; 离石五行属金; 呼和浩特五行属木; 包头属火; 鄂尔多斯五行属金; 通辽五行属水; 集宁五行属火; 临河五行属水; 乌海五行属水; 赤峰五行属金; 大连五行属火; 沈阳五行水火; 鞍山五行属金; 抚顺五行属木; 盘锦五行属金; 葫芦岛五行属土; 海城五行属水; 铁岭五行属金; 丹东五行属木; 本溪五行属水; 营口五行属土; 朝阳五行属火; 阜新五行属金; 长春五行属木; 吉林五行属木; 四平五行属水; 通化五行属水; 白山五行属金; 松原五行属木,白城五行属金; 哈尔滨五行属水; 大庆五行属火; 牡丹江五行属水; 佳木斯五行属木; 黑河五行属水; 南京五行属火; 无锡五行属金; 扬州五行属木; 苏州五行属木; 常州连云港五行属水; 南通五行属火; 泰州五行属水; 镇江五行属水; 江阴、张家港五行属水; 启东五行属木; 杭州五行属木; 宁波五行属水; 温州五行属水; 义乌五行属火; 台州五行属土; 海宁五行为水火兼有; 萧山五行属金; 安吉五行属土; 东阳五行属火; 合肥五行属水; 黄山五行属金; 芜湖五行属水; 蚌埠五行属土; 阜阳五行属火; 安庆五行属火; 巢湖五行属水; 福州五行属土; 厦门五行属火; 泉州五行属水; 龙岩五行属金; 三明五行属火; 石狮不论五行,直接取像; 南吕五行属土; 九江五行属水; 庐山五行属金; 景德镇五行属金; 济南五行水带火; 青岛五行属木; 烟台五行火土; 威海五行属水; 日照五行属火; 郑州五行属土; 洛阳五行属火; 开封五行属土; 南阳五行属火; 平顶山五行属金; 武汉五行属水; 宜昌五行属火; 长沙属水; 深圳属水; 海口属水, 三亚属火, 万宁属火; 南宁属火; 柳州属木; 北海属水; 成都属土; 绵阳属火; 九寨沟属水; 昆明属火; 丽江属水; 拉萨属土; 西安属金; 宝鸡不论五行直接取像; 延安属土; 兰州属土; 酒泉属水;银川属金;

阅读全文 »

bazi

发表于 2006-09-05 | 分类于 bazi
大贵者,用财而不用官;当权者,用杀而不用印。印赖杀生。官因财旺。
  • 八字日元强弱

Mobile Preview

  • 八字常用神煞 Mobile Preview

  • 八字六亲

Mobile Preview

1. 男性阳日干

比肩——兄弟  劫财——姐妹儿媳、曾外婆 食神——女婿、外公、曾祖父 伤官——丈母娘、祖母、(奶奶)  偏财——父亲、舅子 正财——妻子、妻妹、兄妻  七杀——儿子、妹夫、曾外公 正官——女儿、老丈人、外婆、曾祖母 枭印——祖父(爷爷) 正印——母亲

1、 甲木日干:(男性阳日干) 甲木:比肩——兄弟 乙木:劫财——姐妹、儿媳、曾外婆 丙火:食神——女婿、外公、曾祖父 丁火:伤官——丈母娘、祖母、(奶奶) 戌土:偏财——父亲、舅子 己土:正财——妻子、妻妹、兄妻  庚金:七杀——儿子、妹夫、曾外公 辛金:正官——女儿、老丈人、外婆、曾祖母 壬水:枭印——祖父(爷爷)  癸水:正印——母亲

2、 丙火日干:(男性阳日干)  甲木:枭印——祖父(爷爷)  乙木:正印——母亲  丙火:比肩——兄弟 丁火:劫财——姐妹、儿媳、曾外婆 戌土:食神——女婿、外公、曾祖父 己土:伤官——丈母娘、祖母、(奶奶) 庚金:偏财——父亲、舅子 辛金:正财——妻子、妻妹、兄妻  壬水:七杀——儿子、妹夫、曾外公 癸水:正官——女儿、老丈人、外婆、曾祖母 

3、 戌土日干:(男性阳日干) 甲木:七杀——儿子、妹夫、曾外公 乙木:正官——女儿、老丈人、外婆、曾祖母 丙火:枭印——祖父(爷爷) 丁火:正印——母亲 戌土:比肩——兄弟 己土:劫财——姐妹、儿媳、曾外婆 庚金:食神——女婿、外公、曾祖父  辛金:伤官——丈母娘、祖母、(奶奶) 壬水:偏财——父亲、舅子  癸水:正财——妻子、妻妹、兄妻 

4、庚金日干:(男性阳日干)  甲木:偏财——父亲、舅子  乙木:正财——妻子、妻妹、兄妻  丙火:七杀——儿子、妹夫、曾外公  丁火:正官——女儿、老丈人、外婆、曾祖母  戌土:枭印——祖父(爷爷)  己土:正印——母亲 庚金:比肩——兄弟  辛金:劫财——姐妹、儿媳、曾外婆  壬水:食神——女婿、外公、曾祖父  癸水:伤官——丈母娘、祖母、(奶奶) 

5、壬水日干:(男性阳日干)  甲木:食神——女婿、外公、曾祖父  乙木:伤官——丈母娘、祖母、(奶奶)  丙火:偏财——父亲、舅子  丁火:正财——妻子、妻妹、兄妻 戌土:七杀——儿子、妹夫、曾外公 己土:正官——女儿、老丈人、外婆、曾祖母 庚金:枭印——祖父(爷爷)  辛金:正印——母亲 壬水:比肩——兄弟 癸水:劫财——姐妹、儿媳、曾外婆 

2. 男性阴日干

劫财——姐妹、祖母、(奶奶)  比肩——兄弟、外公  伤官——曾祖母  食神——父亲、女婿、曾外公 正财——丈母娘、儿媳 偏财——祖父(爷爷)、妹夫  正官——妻子、兄妻、外婆  七杀——曾祖父  正印——母亲、女儿、曾外婆 枭印——儿子、老丈人

1、 乙木日干:(男性阴日干) 甲木:劫财——姐妹、祖母、(奶奶)  乙木:比肩——兄弟、外公  丙火:伤官——曾祖母  丁火:食神——父亲、女婿、曾外公  戌土:正财——丈母娘、儿媳  己土:偏财——祖父(爷爷)、妹夫  庚金:正官——妻子、兄妻、外婆  辛金:七杀——曾祖父  壬水:正印——母亲、女儿、曾外婆  癸水:枭印——儿子、老丈人

2、 丁火日干:(男性阴日干)  甲木:正印——母亲、女儿、曾外婆 乙木:枭印——儿子、老丈人 丙火:劫财——姐妹、祖母、(奶奶) 丁火:比肩——兄弟、外公 戌土:伤官——曾祖母 己土:食神——父亲、女婿、曾外公 庚金:正财——丈母娘、儿媳 辛金:偏财——祖父(爷爷)、妹夫 壬水:正官——妻子、兄妻、外婆 癸水:七杀——曾祖父

3、己土日干:(男性阴日干)  甲木:正官——妻子、兄妻、外婆  乙木:七杀——曾祖父  丙火:正印——母亲、女儿、曾外婆  丁火:枭印——儿子、老丈人  戌土:劫财——姐妹、祖母、(奶奶)  己土:比肩——兄弟、外公  庚金:伤官——曾祖母  辛金:食神——父亲、女婿、曾外公  壬水:正财——丈母娘、儿媳  癸水:偏财——祖父(爷爷)、妹夫 

4、辛金日干:(男性阴日干)  甲木:正财——丈母娘、儿媳  乙木:偏财——祖父(爷爷)、妹夫  丙火:正官——妻子、兄妻、外婆  丁火:七杀——曾祖父  戌土: 戌土:正印——母亲、女儿、曾外婆  己土:枭印——儿子、老丈人  庚金:劫财——姐妹、祖母、(奶奶)  辛金:比肩——兄弟、外公  壬水:伤官——曾祖母  癸水:食神——父亲、女婿、曾外公 

5、癸水日干:(男性阴日干)  甲木:伤官——曾祖母  乙木:食神——父亲、女婿、曾外公  丙火:正财——丈母娘、儿媳  丁火:偏财——祖父(爷爷)、妹夫  戌土:正官——妻子、兄妻、外婆  己土:七杀——曾祖父 庚金: 正印-—母亲、女儿、曾外婆  辛金:枭印——儿子、老丈人  壬水:劫财——姐妹、祖母、(奶奶)  癸水:比肩——兄弟、外公 

三、女性阳日干

比肩——姐妹、祖母(奶奶)  劫财——兄弟、外公  食神——女儿、婆婆、曾祖母  伤官——父亲、儿子、曾外公  偏财——  正财——丈夫、祖父(爷爷)、妹夫  七杀——外婆、兄妻  正官——公公、女婿、曾祖父  枭印——母亲、儿媳、曾外婆  正印—— 

1、 甲木日干:(女性阳日干)  甲木:比肩——姐妹、祖母(奶奶)  乙木:劫财——兄弟、外公  丙火:食神——女儿、婆婆、曾祖母  丁火:伤官——父亲、儿子、曾外公  戌土:偏财——  己土:正财——丈夫、祖父(爷爷)、妹夫  庚金:七杀——外婆、兄妻  辛金:正官——公公、女婿、曾祖父  壬水:枭印——母亲、儿媳、曾外婆  癸水:正印—— 

2、 丙火日干:(女性阳日干)  甲木:枭印——母亲、儿媳、曾外婆  乙木:正印——  丙火:比肩——姐妹、祖母(奶奶) 丁火:劫财——兄弟、外公  戌土:食神——女儿、婆婆、曾祖母  己土:伤官——父亲、儿子、曾外公  庚金:偏财——  辛金:正财——丈夫、祖父(爷爷)、妹夫  壬水:七杀——外婆、兄妻  癸水:正官——公公、女婿、曾祖父

3、 戌土日干:(女性阳日干)  甲木:七杀——外婆、兄妻  乙木:正官——公公、女婿、曾祖父 丙火:枭印——母亲、儿媳、曾外婆  丁火:正印——  戌土:比肩——姐妹、祖母(奶奶)  己土:劫财——兄弟、外公  庚金:食神——女儿、婆婆、曾祖母  辛金:伤官——父亲、儿子、曾外公  壬水:偏财——  癸水:正财——丈夫、祖父(爷爷)、妹夫 

4、庚金日干:(女性阳日干)  甲木:偏财——  乙木:正财——丈夫、祖父(爷爷)、妹夫  丙火:七杀——外婆、兄妻  丁火:正官——公公、女婿、曾祖父  戌土:枭印——母亲、儿媳、曾外婆  己土:正印——  庚金:比肩——姐妹、祖母(奶奶)  辛金:劫财——兄弟、外公  壬水:食神——女儿、婆婆、曾祖母  癸水:伤官——父亲、儿子、曾外公 

5、壬水日干:(女性阳日干)  甲木:食神——女儿、婆婆、曾祖母  乙木:伤官——父亲、儿子、曾外公  丙火:偏财——  丁火:正财——丈夫、祖父(爷爷)、妹夫  戌土:七杀——外婆、兄妻  己土:正官——公公、女婿、曾祖父  庚金:枭印——母亲、儿媳、曾外婆  辛金:正印——  壬水:比肩——姐妹、祖母(奶奶)  癸水:劫财——兄弟、外公 

四、女性阴日干

劫财——兄弟、公公  比肩——姐妹、曾外婆  伤官——儿子、外公、曾祖父  食神——女儿、祖母、奶奶  正财——父亲  偏财——婆婆、兄弟  正官——丈夫、妹夫、曾外公  七杀——儿媳、外婆、曾祖母  正印——女婿、祖父(爷爷)  枭印——母亲 

1、乙木日干:(女性阴日干)  甲木:劫财——兄弟、公公  乙木:比肩——姐妹、曾外婆  丙火:伤官——儿子、外公、曾祖父  丁火:食神——女儿、祖母、奶奶  戌土:正财——父亲  己土:偏财——婆婆、兄弟  庚金:正官——丈夫、妹夫、曾外公  辛金:七杀——儿媳、外婆、曾祖母  壬水:正印——女婿、祖父(爷爷)  癸水:枭印——母亲

2、 丁火日干:(女性阴日干)  甲木:正印——女婿、祖父(爷爷)  乙木:枭印——母亲  丙火:劫财——兄弟、公公  丁火:比肩——姐妹、曾外婆  戌土:伤官——儿子、外公、曾祖父  己土:食神——女儿、祖母、奶奶  庚金:正财——父亲  辛金:偏财——婆婆、兄弟  壬水:正官——丈夫、妹夫、曾外公  癸水:七杀——儿媳、外婆、曾祖母 

3、己土日干:(女性阴日干)  甲木:正官——丈夫、妹夫、曾外公  乙木:七杀——儿媳、外婆、曾祖母  丙火:正印——女婿、祖父(爷爷)  丁火:枭印——母亲 戌土:劫财——兄弟、公公  己土:比肩——姐妹、曾外婆  庚金:伤官——儿子、外公、曾祖父  辛金:食神——女儿、祖母、奶奶 壬水:正财——父亲 癸水:偏财——婆婆、兄弟 

4、 辛金日干:(女性阴日干)  甲木:正财——父亲 乙木:偏财——婆婆、兄弟 丙火:正官——丈夫、妹夫、曾外公 丁火:七杀——儿媳、外婆、曾祖母 戌土:正印——女婿、祖父(爷爷) 己土:枭印——母亲 庚金:劫财——兄弟、公公 辛金:比肩——姐妹、曾外婆 壬水:伤官——儿子、外公、曾祖父 癸水:食神——女儿、祖母、奶奶 

5、 癸水日干:(女性阴日干)  甲木:伤官——儿子、外公、曾祖父  乙木:食神——女儿、祖母、奶奶  丙火:正财——父亲  丁火:偏财——婆婆、兄弟  戌土:正官——丈夫、妹夫、曾外公  己土:七杀——儿媳、外婆、曾祖母  庚金:正印——女婿、祖父(爷爷)  辛金:枭印——母亲 壬水:劫财——兄弟、公公  癸水:比肩——姐妹、曾外婆

十神关系特质

比劫 吃软不吃硬 食伤 记吃不记打 官杀 可贿不可求 枭印 能压不必哄 财星 出力不出钱

十天干类象与十二地支的取象

甲木

甲神树木成栋梁,雷击高楼电杆上,宫门首领劈木头,大路楼梯望桥梁。

风水左龙闹市在,电梯兄长医师扬,高人劳工董事长,好大喜功是家长。

脚部胡须伴声音,抽搐气风伤胆囊,头面臀眉肢体发,肝胆经脉形直长。

壁虎蟒蛇蜥蜴爬,箫笛吉他和手杖,交通工具农具全,琵琶鼓枪种子扬,

飞机电学青绿色,直符琥珀按摩棒。

乙木:

乙风乔花藤禾林,公园花园绿地亲,庄稼蔬菜栏杆护,手织线物毛笔文

脊颈发胆双腕经,善良仁慈形曲性,嗅觉屁股手指软,泪腺过敏并眩晕

僧道媒妁乐师起,风水左龙门窗新,山谷蝴蝶出入口,文具丝绸印刷勤,

藤制品里有假发,香水香料书籍新。

丙火:

丙电太阳光芒亮,温暖变化色彩强,宫城帝权信息流,影视传媒名气扬

剧场文章书画展,演说电器利小肠,眼经大脑兼血压,体恤情思形大方

香火祠堂饭店合,观光风景电厂上,眼科医师美容师,斑点发炎怕烫伤

视网膜内总出血。流产是非血管长,辣椒胡椒红紫色,影印传真搞摄像

丁火:

丁星香火灵光闪,医卜神玄思想全,文字文学文化好,内心文章传遍天

网络报刊荣誉传,电子星光灯火闪,书籍名望小花鲜,心眼神经并血管

神秘智慧形小传,厨灶后门有小门,媒妁寡妇说客参,历史学者长针眼。

疔疮乳唇下巴粘,花道美容快递业,烧烤火锅精怪仙。

戊土:

戊霞丘地坡岸城,政府建仓停车场,寺院古物属房产,涂料凸砖成品仓,

鼻胃肌肉皮肤并,慢性生硬形为方,包装纸里有面具,雨具陶器家具生,

风水结穴房屋同,胖子屠宰牧牛声。

己土:

己云平原墓地凉,院屋田园土产黄,水泥建筑粉尘帛,农牧果实斑点脏。

胰腺皮肤腹脾象,结石产厄有脂肪,妇产妇幼护理业,工业粮食家禽上。

文房四宝和肥皂,卫生纸棉内衣赏,风水结穴低洼湿,谨慎多疑刑平常。

庚金:

庚霜钢铁五金器,制造矿物矿山机,金融军警车行路,医院手术牙齿稀,

大骨大肠嗓脐肺。威武躁直棱角齐,甲状腺人骨折伤,脐轮前胸事故遇。

风水右沙有通道,高速铁路祠庙稀,外科医师雕刻家,导演屠夫武术家。

刀剑斧锯经文全,羽毛钟锣制品齐。

辛金:

辛月珠玉金钻笔,乐器针剪钱晶体,金融法医精加工,呼吸喉咙肺耳鼻。

小骨筋骨柔润好,灵动好面形致密。风水右沙妓院开,女警针灸开刀急。

壬水:

壬云海河泽江湖,航运贸易水产处,水彩石油浴业兴,膀胱血口循环出,

智慧好动人性为,无有规则是其形,风水来龙隧道行,孕妇奶妈盗贼哭。

痢疾乳腺腰疼痛,水管饮料吸管出。

癸水:

癸雨泉霜雪池塘,眼泪结晶水墨样,后面浴业水产有,玄学谋略智业长。

经血唾液脑聪明,骨髓肾脏精液凉,眼睛温柔有智谋。内分泌中耳朵伤,

机敏其形圆润像,冥纸调度地下室,牢狱仓库浴厕光。

地支类像流口章

子水:

子冰河泉井流转,车船贸易江湖玄,文章技能淫邪慧,膀胱耳道泌尿参

血液精腰喉咙并,蝙蝠耗子燕飞来。妇女盗贼和乳妇,淋巴眼泪骨髓完。

丑土:

丑寒湿土泥沼堤,厕所黑暗隐蔽地,下水道里矿井淫,地下室中私情遇。

牢狱坟墓黑社会,田园厂矿煤炭地,抽象军营银行里,玄学脾胃子宫肌。

腹肾肿块堪称大,螃蟹斗牛龟看戏,桥梁尊长冤仇结,糖尿病上热毒虚。

远行车祸发烧病,骡子诅咒贵人急。

寅木:

寅树家具木材花,神堂庙宇山林画,政府组织机关去,文化场所堂庙雅。

头手肢体肝胆发,指甲神经掌中夹,经络筋脉一起来,豹斗虎猫咬掉牙。

公门道士桥梁坐,车祸信息军人家。

卯木:

卯绳灌木花草棒,兵器织物街道窗,车船机构网篱笆,建材木材建筑床。

肝胆四肢毛发腰,手指筋貉兔狐伤。

辰土:

辰泥湿土水库塘,田园土产井堤上,车辆机器建筑里,大机构中思想扬。

网络中药旧物场,内泌肌肩胸膀胱,腹中肋骨和胃并,水里蛟龙鱼跃上、

丑妇僧道屠宰人,牢狱坟墓土堆上。

巳火:

巳暖文化并文章,思想幻想阳火长,变化色彩影像虚,楼台道路闹市上,

寺观网络眼目亮。三焦心脏咽喉肠,神经肛门齿面有,蚓蛇出洞捕蟑螂。

炉冶打架乞丐抢,妇人做梦疾病慌。

午火:

午热阳火光彩扬,火器信息电子响,文章文学热情在,语言广告激动狂。

战场血光体育场,冶炼厅厦逛剧场,小肠心眼血液舌,神经精力马鹿獐。

未土:

未像温土田园庄,公园庭院临场墙,休闲陶冶情趣有,酒店饰物酒食光。

建筑物上土产晃,营造化工医药忙,脾胃腹腔热毒来,脊梁腕部犴鹰羊。

坟墓井中藏寡妇,巫师道长佛易扬。

申金:

申刀车铲铁器硬,兵戈军队司法生,矿物矿产机器铁,医院西药车道成,

仙堂名都城池在,金融数位肺大肠。脊椎骨骼并骨钙,气管食道牙齿行,

经络猴子嬉戏耍,猿猱也生动物情。

酉金:

酉妓金石铲除光,剑戟器皿街道上,笔尖信息传媒远,寺院酒店和银行,

法律技术碑碣奸,钟表玄学牙耳忙。骨骼经血肋臂膀,肺喂鸡鸟雉小肠、

买酒人和妇女好,小妾气管别离伤,

戌土:

戌炉燥土窑冶场,军火枪弹牢狱上,刑法坟墓纲领制,庙宇古物和市场,

加油站里有电站,学校影院闹市逛,建筑高楼建材上,编辑部门色情狂。

化工数学互联网,心包命门背胃上,肌肉腿足鼻子美,狼狗一起把豺伤,

尸体狱吏屠夫连,风湿关节佛道场。

亥水:

亥酒池沟灌溉丰,笔墨毒药水产行,沉迷心智思网络,科技运算数字行。

头肾血脉尿道流,经血膀胱猪熊惊。牢狱厕坑寺院里,江湖楼台仓库兴。

盗贼小儿乞丐来,赶猪人来罪人生,难产阑尾淋巴齐,婚姻泪水便水净。

地支克应 子:为妇女,为小儿,为渔人,为舟子,为染匠。乘勾为蛇、跎子;乘玄为盗贼,为水;乘蛇为轻狂妇女,为菜,为青菱,为菜油,为螺蚬;乘龙为笔。 丑:为耆老,为故旧,为庭书,为耕牛,为尼姑,为秃头人,为大腹人。 寅:为官员,为公吏,为儒者,为祝子,为书客,为胡须人。 卯:为童稚,为舟子,乘朱为牙行人。 辰:为凶徒,为牙伶,为猎人。乘虎为徒人,为玄,为网罟,为乾,为鱼;乘勾为缸。 巳:为画师,为匠工,为远客,为庖人,为二女,为师姑,为炉冶人,为扇子,为花朵。乘朱为印,乘虎为弓弩。 午:为马夫,乘龙为官员;乘蛇为妇女,为旌旗;乘勾为武官;乘虎为患目人。 未:为农夫,为乐人,为戏子,为裁缝,为寡妇,为媒婆,为师巫。乘勾为牵羊人,为柳;乘龙为医生;乘朱为橘。 申:为贵人,为铜锡匠,为剃头人。乘龙为僧人,为铜钱;乘勾为缉捕人;乘虎为猎人,为箭,为棉絮。 酉:为妇女,为银匠,为佛婆。乘玄为**,为酒保;乘虎为孝服人,为锣声;乘朱为鸡为鹅鸭。 戌:为犬,为猎人,为狱吏,为军卒,为僧人,为聚众。乘蛇为菊花;乘虎为铁器;乘玄为螺。 亥:为卖鱼人,为挑水人。乘虎为屠宰人,为梅花;乘玄为雨伞,为蓑笠;乘蛇为绳索,为猪秽;乘龙为图画,为幼孩;乘朱为猪;乘玄蛇为乞丐;乘玄蛇龙为鱼;乘朱虎蛇为哭泣;乘勾虎蛇为链锁。

地支类神 子:为水,为池,为河井,为沟渠,为后宫。其于人也,为妇人,为盗贼,为乳媪。其于物也,为鼠,为燕、蜗。其于事也,见吉神为聪明,见凶神为淫佚。 丑:为土,为桑园,为桥梁,为宫殿,为坟墓。其于人也,为君子,为尊长,为贵人。其于物也,为牛、骡。其于事也,见吉神为喜庆,为迁官;见凶神为诅咒、冤仇、讼狱、忧离、远行、疾病。 寅:为木,为神像,为山林,为桥梁,为公门。其于人也,为丞相,为夫婿,为道人,为贵人,为人马,为公吏,为家长,为宾客。其于物也,为虎豹,为猫。其于事也,见吉神为文书、财帛、信息;见凶神为口舌、失财、疾病、官事、是非。 卯:为木,为门窗,为街土。其于人也,为妇,为兄弟,为姑母,为盗贼。其于物也,为舟车。其于事也,见吉神为门户、舟车、安然无事,见凶神为口舌、官事、追呼、分离,虽无奇门不可避行。 辰:为土,为岗岭,为麦地,为奇观,为土堆,为坟墓,为田园。其于人也,为丑妇,为僧道,为候人,为屠宰。其于事也,见吉神为医人、药物,见凶神为屠宰争竞。 巳:为火,为炉冶,为镢。其于人也,为妇人,为乞丐。其于事也,见吉神为文书,见凶神为梦寝疾病。 午:为火,为厅堂,为菜食。其于人也,为宫女,为使者,为亭长,为蚕姑。其于事也,见吉神为信息文章,见凶神为惊疑口舌。 未:为土,为庭院,为墙垣,为井,为坟墓,为茶房。其于人也,为父母,为白头翁,为寡妇,为师巫,为放羊人,为道人。其于物也,为羊,为鹰。其于事也,见吉神为酒食宴会喜美,见凶神为官事、孝服、毒药、竞争、疾病。此方得遇奇门,可以逃难藏形。 申:为金,为仙堂,为神堂,为道路,为碓隈,为城宇,为祠庙,为湖池。其于人也,为公人,为贵客,为行人,为军徒,为凶人。其于物也,为猿猴,为狮子。其于事也,见吉神为行程、奔走,见凶神为口舌、车碾、道路、损失、疾病。 酉:为金,为碑碣,为街巷,为白塔。其于人也,为外亲,为婢妾,为妇女,为阴贵人,为卖酒人。其于物也,为鸽雉。其于事也,见吉神为清净恬淡和合,见凶神为失财、疾患、离别。此方遇奇门,可以藏形遁迹。 戌:为土,为虚堂,为牢狱,为坟墓,为寺观,为冈岭,为厕所,为死尸。其于物也,为驴、犬。其于人也,为僧道,为善人,为孤寒,为狱吏,为屠儿。其于事也,见吉神为僧道,见凶神为虚诈不实即走失争竞、牢狱之灾。 亥:为水,为牢狱,为庭廨,为厮坑,为寺院,为江湖,为楼台,为仓房。其于人也,为盗贼,为小儿,为乞丐,为赶猪人,为罪人。其于事也,见吉神为婚姻、乞索,见凶神为争斗、产难。

六爻 初爻 交友 二爻 子女 三爻 兄弟 四爻 母亲 五爻 父亲 六爻 祖辈

六爻十二支象意

子:代表军人、盗贼、流动性职业、好淫乱、人无主见、也主机密文件。子水为忌克主腿痛,脚痛,破财。家住近水,有水灾之人,有外伤骨折之人。   丑:代表贤士、官人、忠厚老实、性情倔强、丑女、冤仇诅咒、印信文书、金融、包含金融相关的职业。丑也主女性的性器官。   寅:文书、财帛、官贵、主清高、主服装、文凭、才华、代表有文化的老人。身体方面主胸,腰,尾椎。   卯:代表车船、买卖交易、信息、婚姻媒介、公吏、司机(包括飞机、车、船)、代表四肢。卯为用生主利文书,易与女人口舌。卯身体方面主:颈椎   辰:医生、医巫卜相,辰又主药物、倔强好斗、貌凶(处死地)、眼小、嗓门大。辰丑:热毒,糖尿病,发烧,泥塘,坑。辰为忌克土有小人、官司、手术、疾病、官灾、车祸、姐妹二婚。   巳:主文书信息、惊恐之事、多疑、不讲道理、爱生闷气,也主轻薄、轻浮、淫乱,生主女人私情。   午:主文书、荣誉、四肢、婚姻信息、书籍、主惊恐灾祸、又主有血光之事、为人好利禄、贪求富贵。官司。巳午身体方面主:脑血栓,中风,心脏,眼目。   未:主口食、、酒食、主皮肤、又代表毒药(或副作用大)、未旺主人能言善辩、婚姻媒介、代表厨师或与之相关的职业。古人云:未不吃药,免毒气入肠。末为用也主女情、婚外恋。关节炎。末为忌克主斗,婚姻不顺。   申:传送之神、又主军、警、政、法之人、又主奔波流动、又主凶恶、代表喜欢武术、刀枪棍棒之人或很喜欢现代武器等。工具方面主:尖刀,小刀,锐器。申为忌克主道路不顺,伤灾车祸,丧事,路见武界之人。   酉:主皮肤、四肢、论女人主沉静高雅、见水主放荡、淫乱、轻浮(水有制不淫)、金水相逢又见土素质高、做事诡秘、又主金融、镜子、庭院、饰品。酉工具方面主:宽刀,大刀,钝器。酉为忌用生主桃花。   戌:医巫卜相、僧道、孤寡之人、信佛之人、佛教用品等、主恶人、黑社会、执法者、课内戌多主虚诈、诈骗——引申意为表面上好,实际上比谁都坏。未戌:风湿性病,胃。戌也主男性的性器官。   亥:赏赐、旺相有制主人善良、旺无制主人轻薄、暗昧之事、暗昧之人、不守本份之人、妓女、暗昧之地、厕所、排水沟等。亥主妄想,坐那什么也不想干,也不知在想什么。有“海”的意思。亥子身体方面主:血液,肾,淋巴,脑,泪,唾液。亥为忌生主家人有怪异附身,有病人。

六爻常用十二地支类象

子水 人物肖像:强时为高黑、长脸;弱时为矮胖、国字脸。 环境:为喜神时表示为清澈的江河、水井、水地、水缸等。为忌神时类象为污臭之水、如臭水沟、下水道、臭水塘等。 人物:为喜神时类象为少男、军警、公务员等吉利人物;为忌神时类象为盗贼、土匪、少年犯等不吉利人物。 人体:不论喜忌均可类象为排泄系统、生殖系统、体液、膀胱、尿道、阴部、精液、月经、耳朵等。 动物:老鼠。 疾病:类象为高血压、肾结石、性病、早泄等。 吉凶:吉为聪明, 吉祥; 凶主淫佚、 鼠怪、血光。喜则表示聪明,吉祥;忌时表示淫乱、血光之灾,污秽不吉之事。 丑土 人物肖像:强时类象为脸大、皮肤好;弱时类象为矮丑、皮肤粗糙。 环境:为喜神时类象为菜园、桑园、桥梁、宫殿、礼堂等;为忌时类象为阴湿之地、污浊之地、坟地。 人物:为喜时类象为贵人、师长、神佛、父;为忌时类象为老妇、丑妇、死尸等。 人体:不论喜忌均可类象为脾脏、肚腹、子宫、阴茎、嘴唇。 动物:牛、骡子。 疾病:类象为感冒伤风、糖尿病。 吉凶:吉为升官、乔迁、评职称之喜; 凶为口舌是非、 争执、 官司、牢狱、 疾病、 离乡背井、鬼作人形作祟于阳宅。喜则升官、得奖、走好运等吉庆之事。忌则表示口舌、疾病、被吓等不吉利之事。 寅木 人物肖像:强时类象为个子高、长方脸、脸色青白、眉毛粗浓;弱时类象为个子中等、脸形较小、眉毛稀少。 环境:为喜神时类象为树木、公园、果园、盆景;为忌时类象为断木桥,木做水涧,阴森森的丛林。 人物:为喜时类象为丈夫、女婿、贵人、家长宾客;为忌时类象为贪官污吏、不速之客、恶鬼、贱人等。 人体:不论喜忌均可类象为胆、胸、尾椎、毛发等。 动物:老虎、豹子、猫。 疾病:四肢伤残、肝病、胆病。 吉凶:吉为文书、信息、财物、布匹; 凶为破财、官非、疾病、阳宅木器转动作声为怪。喜则类象为得财、好信息;凶则类象为疾病、口舌、破财。 卯木 人物类象:强时类象为身高中等、脸较园、双眼皮;弱时类象为个子不高、脸青黑、眉毛稀少、脸长。 环境:为喜时类象为道路、门窗、小船;为忌时类象为破船、被毁的树木、被弃的花木。 人物:为喜时类象为兄弟、姑母;为忌时类象为老姑婆、丈母娘、小偷。 人体:不论喜忌均可类象为肝、筋骨、肘、神经、体毛、十指、腋下。 动物:兔子。 吉凶:吉为车、船出行顺利; 凶为官司口舌,车、船遇险;木器转动作怪, 电线杆、树木、柱牌之煞。喜则出行吉利、车船平安;凶则车船遇险、犯电线杆、树木等煞。 疾病:肝腹水、腰椎突出、断腿。 辰土 人物肖像:强时类象为个子较高、大眼、方脸、额部宽广、面部较满;弱时类象为脸形较小、个子中等。 环境:为喜时类象为麦地、田园、土岭;为忌时类象为坟墓、破花盆、泥泞之道。 人物:为喜时类象为长男、医生、护士;为忌时类象为尼姑、道士、僧人。 人体:不论喜忌均可类象为骨、皮肤、脖子、喉咙。 疾病:糖尿病、皮肤病、骨炎,声音嘶哑。 动物:龙、大蛇、蚯蚓。 吉凶:吉为医术精良, 药物疗效好, 凶为官讼、 争斗、宅中赤色四足之物或音声为怪。喜则医术精明、健康、愉快;凶则表示怪声怪气、呻吟痛苦。 巳火 人物肖像:强时表现为个头中等、园脸、脸色白中带红、眉毛特别浓黑;弱时类象为个子不高、脸椭圆、脸部较无表情、呆板。 环境:为喜时类象为烧烤店、电器行、电影院、舞厅;为忌时类象为火葬场、废弃的砖瓦房、浓烟滚滚的冶炼厂。 人体:不论喜忌均可类象为三焦、小肠、牙齿、口腔、眼睛。 动物:蛇、泥鳅、黄鳝。 疾病:牙疼、口腔炎、近视眼、结肠炎。 吉凶:吉为文书、信息、 电话、 票证之利: 凶为疾病、疫情、惊梦、锅炉之煞。喜则表示爱情、温暖、热烈;忌则表示为寒冷、失意、怯场。 午火 人物肖像:强时个子较高、苹果脸形、双眼皮、眼大而有神;弱时个子中等、脸不透血色、眼睛下陷。 环境:为喜时类象为娱乐场、会议室、游戏厅;为忌时类象为地下赌场、被火烧过的山岭、废弃的炉灶、门前的电压器。 人物:为喜时类象为高贵女人、卖酒人、女秘书;为忌时类象为火葬场焚尸工、酒鬼、七窍流血之人。 人体:不论喜忌均可类象为舌头、额头、脸部、脐、神气。 动物:马。 疾病:红眼病、胸闷、热症、心肌梗塞。 吉凶:吉为文章、信息之喜; 凶为口舌是非、谅疑、釜鸣为害。吉则表示衷情、感激;凶则表示口舌、惊疑、血光之灾。 未土 人物肖像:强时脸长、个子瘦高、不漂亮;弱时类象为脸方、个子中等、长相一般。 环境:为喜时类象为厨房、油库、茶房;为忌时类象为废弃的油库、野外烧烤用的炉灶、医院的消毒室。 人物:为喜时类象为放羊人、高贵的妇人;为忌时类象为尼姑、巫师、道人、牢狱之人。 人体:不论喜忌均可类象为胃部、皮肤、头屑、脾。 动物:羊、鹿。 疾病:便秘、皮肤红肿、急性胃炎。 吉凶:吉为酒食、宴请之喜; 凶为丧亡、官灾、病症、家畜为怪。吉则安静、享受;忌则精神颓丧、表情模糊、吃苦。 申金 人物肖像:强时类象为个子高、皮肤白净、鼻梁高、没有耳垂;弱时类象为个子中等、皮肤白中带黑斑、山根下陷、耳朵反轮。 环境:喜时类象为冰山、河源、珠宝店、钢铁厂、汽车销售部;忌时类象为祠堂、废弃的钢铁厂、报废汽车。 人物:为喜时类象为医生、军人、警察、珠宝商人;为忌时类象为暴徒、屠夫。 人体:不论喜忌均可类象为:胸、肺、筋骨、大肠。 动物:猿、猴。 吉凶:吉为神佛庇护、 出行顺利; 凶为疾病、道路损失、破财、手术伤灾、走兽为怪。为吉时神佛仳佑、逢凶化吉;为忌时则惹神撞鬼、出行不吉。 疾病:肺结核、急性肺炎、骨折、四肢不灵。 酉金 人物肖像:强时类象为椭圆形脸、明亮的杏眼、皮肤细白、个头适中;弱时类象为瓜子脸、个子矮小、皮肤粗糙。 环境:为喜时类象为机厂、停机坪、汽车站、修理厂、五金店、化装室;为忌时类象为停尸房、手术室、爆炸现场、打靶场。 人物:为喜时类象为妾、女贵人、酒廊女待生;为忌时类象为酒醉鬼、理发学徒、烹饪学徒。 动物:鸡。

吉凶:吉为清淡;凶为疾患、离别、飞禽为怪。 戌土 人物肖像:强时类象为大脸、个子高、鼻梁直;弱时类象为个子不高、脸呈椭圆形、勾鼻。 环境:为喜时类旬为花果山、厨房、砖瓦厂、变电所;为忌时类象为:坟墓、弹药库、牢房、厕所。 人物:吉时为农民、清洁工、好人、佛教徒、风水先生;为忌时类象孤寒之人、盗墓者、狱吏、丑妇。 动物:狗、熊。 人体:不论喜忌均可类象为命门、膝、腕、鼻子、皮肤等。 疾病:胃出血、鼻炎、关节炎、皮肤搔痒。 吉凶:吉主办事顺利、凶为虚诈、牢狱、妖狐作崇。吉则办事顺利、心情舒畅;凶则牢狱之灾、心情压抑。 亥水 人物肖像:强时类象为脸长、个子中等、脸黑、耳朵较长;弱进类象为个子矮小、脸白、耳朵较小。 环境:为喜时为小溪、泉水、小湖泊、天池;为忌时为下水道、臭水沟、污水坑、厕所。 人物:吉时为少女、船工、自来水公司职员;忌时为乞丐、犯人、捕鱼人。 人体:不论喜忌均可类象为膀胱、阴道、肛门、分秘物、头胪。 动物:猪。 疾病:血病、月经不调、早泄、遗精、盗汗、洛血、小便赤热。 吉凶:吉利婚姻、求谋、凶见争斗、难产、家畜为怪、厕、坑阴煞。喜则婚姻美满;凶则家庭破裂、凶事不断。

一、十二支含义 子者,孳也,谓阳气至子,更孳生也。万物孳生萌子。 丑者,纽也、言终始之际,故以纽结为名也。万物纽芽于丑。 寅者,津也、谓生万物之津途也。万物引达于寅。 卯者,茆也,言阳气生而孳茂。万物茂于卯。 辰者,震也,谓万物震动而长。万物振美于辰。 巳者,起也,万物已盛,此时必尽而起也。万物已盛于巳。 午者,长也,大也,言万物皆长大也。万物萼而布于午。 未者,味也,言万物生成有滋味也。万物味蔓于未。 申者,身也,言此时物身体皆成就也。万物身坚于申。 酉者,犹也,谓此时万物皆犹缩也。万物皆熟于酉。 戌者,灭也,谓此时万物衰灭也。万物毕入行戌。 亥者,刻也,言此时阴阳刻杀万物也。万物该阂于亥。

二、十二支阴阳五行 寅卯属木,寅为阳木,卯为阴木; 巳午属火,午为阳火,巳火阴火, 申酉属金,申为阳金,酉为阴金; 亥子属水,子为阳水,亥为阴水, 辰戌丑未属土,辰戌为阳土,丑未为阴土。

三、十二支方位季节 寅东北, 卯正东,辰东南, 巳东南, 午正南, 未西南, 申西南, 酉正西,戌西北, 亥西北、子正北。寅卯辰为春, 巳午未为夏, 申酉戌为秋,亥子丑为冬。  十二地支万物类象 一.十二地支场所类象 子:江,河,溪,池塘,水沟,水井,水坑,低洼潮湿之地,污秽之地,泥泞之地,阴湿之地,厕所,洗澡间,洗手间,洗碗池,水池,水缸,下水道,排污水之处. 丑:,阴湿之地,向暗之所,泥地,坟墓,桑园,桥梁,宫殿,礼堂,土包,平坡. 寅:山水,桥梁,花木丛生之所,花园,公园,草坪. 卯:桥梁,小船,道路,大街,花草茂盛之地. 辰:山包,高冈,土岭,土堰,坟地,麦地,寺观. 巳:热闹向阳之地,转弯之地,有涧泉之地,公共娱乐场所,砖厂,炼煤之所,冶炼厂,化工厂,烧烤店,电器行. 午:岭,山,大厅,会议室,电影院,娱乐场,游戏厅,地下赌场,的士高,舞场. 未:院,墙堰,田地,砖厂,化工厂,油库,厨房. 申:河之源头,水之发源,石道,麦地,铁架,钢厂,车厂,神堂,佛堂. 酉:麻山,停车场,机场,平坦之地,跑道,光滑之地. 戌:岭,坡,破窑,厨灶,尸骨恶臭之地,坟荧,夺观,变压器,变电所,油库,,军队弹药库. 亥:江河,湖海,楼台,寺庙,厕所,下水道,水沟,水坑. 子:湖、海、池、潭、塘;江、河、溪;水沟,水井,水坑,低洼潮湿之地,污秽之地,泥泞之地,阴湿之地,厕所,洗澡间,洗手间,洗碗池,水盆,水缸,下水道,排污水之处。. 丑:园、圃、田、坟;阴湿之地,向暗之所,泥地,坟墓,桑园,桥梁,宫殿,礼堂,土包,平坡。角落、洞内。 寅:山、林、桥、梁;山水,桥梁,花木丛生之所,花园,公园,草坪、苗圃。 卯:林、木、舟、车;桥梁,小船,道路,大街,花草茂盛之地。树林、船只、秸秆庄稼地。 辰:莹、墓、山、岭;山包,高冈, 山岗、山脚下、土岭,土堰,坟地,麦地,寺观。 巳:炉、冶、窑、灶;热闹向阳之地,转弯之地,有涧泉之地,公共娱乐场所, 办公室、砖厂,炼煤之所,冶炼厂,化工厂,烧烤店,电器行。 午:市道、旌旗、岭;山,大厅,会议室,电影剧院,娱乐场,游戏厅,地下赌场,的士高,舞场、舞厅。宾馆、。 未:村、寨、井、泉;院,墙堰,田地,砖厂,化工厂,油库,厨房。院落、田地、砖厂、厨房、墙头。 申:驿、铺、石、径;河之源头,水之发源,石道,麦地,铁架,钢厂,车厂,神堂,佛堂。道路、轴承、石径、水之源头。 酉:岗、城、街、巷;麻山,停车场,机场,平坦之地,跑道,光滑之地。跑道、战场、操场。 戌:田、垄、营、丘;岭, 山坡、窑洞、破窑,厨灶,尸骨恶臭之地,坟荧,夺观,变压器,变电所,油库,,军队弹药库。屠场、油污之地。 亥::江、河、港、涧;,湖海,楼台,寺庙,厕所,下水道,水沟,水坑。亭榭、大面积的池塘。 二.十二地支器物类象 子:吃物,水罗卜,白薯,浮萍,笼子,瓶子,匣. 丑:柜子,斛斗,钢铁器物,粟米,锁,钥匙,首饰,珠宝,鞋子. 寅:衣物,药材,布帛,花木,文书,单据,发票,织机,财物,棺材,火炉,香炉. 卯:床,门窗,船,车辆,梳子,吃物. 辰:小房,盆,坛子,缸,硬物,瓷器,药物,香纸,皮毛. 巳:钱财,炉子,砖瓦,瓷器,文字,书,画,票证,文件,花果. 午:吃物,信息,电话,传呼,电子邮件,文章,电视机,音响,电器,衣服,书画,旌旗. 未:甘味食物,院,庭,筐,酒器,宴会,药品,衣服,孝服. 申:刀,剑,手术刀,金,银,铁器,汽车,飞机,自行车,神像,佛堂,钞票. 酉:镜子,玻璃,剑,珍宝,首饰,石柱,骨头,口罩,洗衣机,油桶,煤气瓶,阀门,瓜果,皮毛. 戌:坛子,瓮,坚硬之物,干燥之物,变压器,微波炉,烘干机,烤箱,药箱,药物,砖瓦,瓷器,锁,钥匙,尸骨,鞋 亥:帐子,布匹,麻布,绸绢,笔墨,灯台,毛发. 子:胭脂、吃物,水罗卜,白薯,浮萍,笼子,瓶子,匣. 丑:帽子、腰带;柜子,斛斗,钢铁器物,粟米,锁,钥匙,首饰,珠宝,鞋子. 寅:桌椅;衣物,药材,布帛,花木,文书,单据,发票,织机,财物,棺材,火炉,香炉. 卯:家具木器;床,门窗,船,车辆,梳子,吃物. 辰:量器米尺筛网;小房,盆,坛子,缸,硬物,瓷器,药物,香纸,皮毛. 巳:炉子扇弓弩;,砖瓦, 钱财,瓷器,文字,书,画,票证,文件,花果. 午:书画,旌旗;吃物,信息,电话,传呼,电子邮件,文章,电视机,音响,电器,衣服,. 未:餐具布匹;甘味食物,院,庭,筐,酒器,宴会,药品,衣服,孝服. 申:辗磨;刀,剑,手术刀,金,银,铁器,汽车,飞机,自行车,神像,佛堂,钞票. 酉:金银珠宝;镜子,玻璃,剑,珍宝,首饰,石柱,骨头,口罩,洗衣机,油桶,煤气瓶,阀门,瓜果,皮毛. 戌:盔甲印章;坛子,瓮,坚硬之物,干燥之物,变压器,微波炉,烘干机,烤箱,药箱,药物,砖瓦,瓷器,锁,钥匙,尸骨,鞋 亥:图画雨具;帐子,布匹,麻布,绸绢,笔墨,灯台,毛发. 三.十二地支人物类象 子:少男,公门人,公务员,军警,盗贼,穿紫,黑衣之人. 丑:老妇,丑妇,骑驴骡之人,贵人,尊长,神佛,死尸. 寅:老男,在政府部门工作的人,穿紫,黑衣之人,丈夫,女婿,贵人,廉洁的领导. 卯:手工业者,兄弟,妇女,姑娘,盗贼. 辰:男人,医生,药品经营者,僧人,道士,尼姑,骑驴人,貌丑之妇人,腰脚痛之人. 巳:少女,少妇,乞丐. 午:少女,少妇,女秘书,骑马人,路上遇血光之人,僧人. 未:老妇,吃酒食之人,放羊人,巫师,寡妇,尼姑. 申:男人,军人,公安,带枪的人,行人,恶人. 酉:女人,少女,女贵人,卖酒人,方面之人. 戌:男人,农民,清洁工,年长人,好人,信佛道之人. 亥:少女,小孩,赶猪人,乞丐,穿鞋人,喝醉的人,犯人,盗贼. 子:丫环、妇女;少男,公门人,公务员,军警,盗贼,穿紫,黑衣之人. 丑:牧筑耕夫;老妇,丑妇,骑驴骡之人,贵人,尊长,神佛,死尸. 寅:隐樵书史;老男,在政府部门工作的人,穿紫,黑衣之人,丈夫,女婿,贵人,廉洁的领导. 卯:船户车夫;手工业者,兄弟,妇女,姑娘,盗贼. 辰:鱼翁禁子;男人,医生,药品经营者,僧人,道士,尼姑,骑驴人,貌丑之妇人,腰脚痛之人. 巳:炉冶窑工;少女,少妇,乞丐. 午:马夫蚕妇;少女,少妇,女秘书,骑马人,路上遇血光之人,僧人. 未:老妇,吃酒食之人,放羊人,巫师,寡妇,尼姑. 申:铺兵驿站;男人,军人,公安,带枪的人,行人,恶人. 酉::卑妾娼妓;女人,少女,女贵人,卖酒人,方面之人. 戌:军丁奴仆;男人,农民,清洁工,年长人,好人,信佛道之人. 亥:道士医伶。少女,小孩,赶猪人,乞丐,穿鞋人,喝醉的人,犯人,盗贼. 四.十二地支人体类象 子:膀胱,尿道,生殖器,阴部,精液,月经,耳朵,血液,汗液. 丑:脾脏,肚腹,子宫,阴茎,精囊,嘴唇,左脚,皮肤,腰,足胫. 寅:胆,毛发,手掌,爪甲,髭须,臂,左腿. 卯:肝,神经,体毛,十指,左肋腋,筋,目,大肠,肘. 辰:腹,腰,胃,肠,大肠,小肠,直肠,肛门,皮肤,左胸,左肩,项,背,膝,命门,声壁,眉. 巳:心,面部,口腔,咽喉,齿,唇,手,左肩,生殖器,肛门,三焦,小肠,脾. 午:额头,眼睛,舌,肚,脐,小肠,神气,肘. 未:脊椎,右肩,胃脘,腹腔,小肠,头,手,口舌,肘. 申:大肠,右胸,右臂,骨,肺,头,膀胱 酉:辅颊,觀,缺唇,肺,右肋,手臂,背,骨,精血. 戌:命门,右腿,膝,腕,头,面,心,腹腔. 亥:肾,膀胱,阴囊,阴道,分泌物,涌泉穴,肛门,头,颈,右脚。

外应类象 一、五行外应形体类象 木:主人物修长,须发美,坐立身多倚列,声音畅快。如木气死绝休囚,则身材瘦小,发稀少,柔语细声,坐卧行止不稳定。 火:主人物上尖下阔,印堂窄,头小脚长,太旺则发粗,面红、说话速度快;不及则身材黑瘦,语无伦次。 土:主人物面阔、鼻大,肤黄,声音重浊,静多动少;不及则面色常带凄忧之相。 金:主人物,眉目英俊,肤白,声音清亮,体格健壮。太旺,体态胖;不及则瘦小貌丑。 水:主人物圆脸,肩不阔,身体喜摇摆,语音清和,肤细。太过,肥硕;死绝矮小黑丑。 二、五行外应性情类象 木:仁慈、忠厚、理智、有主见、虚心、举止稳妥端庄、潇洒、义气。 太旺则暴躁、固执、宁折不弯,难与人相处。不及则优柔寡断,意志薄弱,斤斤计较,办事无条理。 火:喜修饰、装扮、作风严谨,尊长爱幼,大方聪敏,有奋发精神,有文采,有创造力,上进心强。 太旺则性情戾,易冲动而失去控制,做事不计后果。不及则无恒心,奸诈、惹人烦。 土:稳定、守信、忠诚、敬信神佛、安静、坚忍、有耐心、心胸宽广。 太旺则孤僻、执迷不悟、反映慢、喜独处认死理。不及则自私悭吝,不通事理,虚伪狡诈。 金:处事多能,威武坚贞、果敢、仗义疏财、明辨善恶,通情达理,光明正大。 太旺则有勇无谋、冲动妄为、喜淫好斗。不及则口是心非、犹疑不定、薄情寡义。 水:思维缜密、胸襟宽广、有学识、善变通、善交际、有经商头脑。 太旺则诡计多端、纵淫欲、不拘小节、好动。不及则反复无常,目光短浅,不能自主。 三、地支外应性情类象 子水:乐观、多智、重情调、任性、懒散。 丑土、辰土:具有内涵丰富、有才情的性质。 戌土、未土:具有沉稳坚忍、心地宽广之意。 寅木:正直向上、敏捷风雅、有应变能力。 卯木:柔顺和蔼、同情心重、外表谦和、占有欲强。 巳火:好面子、表现欲强。爱出风头、缺乏耐力。 午火:原则性强、思维细密、立场坚定。 申金:粗犷豪放,好勇斗狠、不能一贯到底。 酉金:好大喜功、责任心强。 亥水:内向、柔顺、疑心大、计划性强、常心存不满。

五、地支性情类象 子水:乐观、多智、重情调、任性、懒散。 丑土、辰土:具有内涵丰富、有才情的性质。 戌土、未土:具有沉稳坚忍、心地宽广之意。 寅木:正直向上、敏捷风雅、有应变能力。 卯木:柔顺和蔼、同情心重、外表谦和、占有欲强。 巳火:好面子、表现欲强。爱出风头、缺乏耐力。 午火:原则性强、思维细密、立场坚定。 申金:粗犷豪放,好勇斗狠、不能一贯到底。 酉金:好大喜功、责任心强。 亥水:内向、柔顺、疑心大、计划性强、常心存不满。

子,为员工,为下属,为管道,为通气孔,为涂料,为卷尺 丑,为沙堆,为光头人,为安全帽,为硬沙,为铁斗 寅,为模具,为钳,为扳手,为绿漆地面,为电工 卯,为垫片,为弹簧,为模型,为冒口,为盆景花草 辰,为型箱,为水桶,为油漆,为涂料桶,为口罩 巳,为资料,为图纸,为风机,为火苗,为冶炼炉,为电子控制器,为钢绳 午,为电瓶车,为制沙机,为小推车,为餐券,为资料,为吊车,为灯,为输电线 未,为休息室,为芯盒,为扫帚,为衣柜 申,为冷铁,为铁板,为铁杵,为浇注把勾,为导轨,为道路 酉,为铁桶,为蜂鸣器,为铁楸,为酒精,为硬质量具 戌,为涂漆面,为待浇箱,为大门,为资料柜夹,为浇注包 亥,为消防器,为钢液,钢陶管,为自来水,为送沙道。

卖话梅(果肉藏核类型的硬物体)——这些零食物。丑藏金,金是硬物体。卖肉生意——因为肉藏骨(骨属于硬物体),鸡肉生意最容易赚钱。丑为肚——腹部,引伸为内裤,如果不是女性,卖内裤也许不太多人光顾。丑是金库,仍然是土行业。买卖古董也可以让你发财。相同地支的类象方向也不同——在天成象,在地成形,在人成性,在事成情。 ——上面就是:一字多义的注释。

十二地支动物类象 子:鼠、燕、蝙蝠 丑:牛、象 寅:狮、虎、豹 卯:兔、狐狸、驴、骡 辰:龙、鱼、虾、蟹、蚌、鳖 巳:蛇、蟒、蝈、蝉 午:马、鹿、獐 未:羊、雁 申:猴子、猿、猩 酉:鸡、鸭、鹅、鹌鹑 戍:狗、狼、 亥:猪、熊。

地支六合   子丑:逆合、泥合、凑合。问事先好后坏。问婚姻两人凑合过,不美满。也只违背意愿的遵从,不情愿。子与丑合,上方老人易患肾病,出服毒之人。   寅亥:破合,寅把亥破了。问事好中有坏。午与寅合,上方老人有少亡,有残疾之人。

卯戌:淫合、自焚之象。卯为草木,戌为火库,卯去合戌进了火库,岂不自焚。卯木太冲,主无自控能力、意志不坚定、缺乏主见。问婚主未婚同居。卯与戍合,上方老人或姊妹有二婚之人。   辰酉:暗合,表私下定,不公开。   巳申:刑合,有矛盾、意见大。象夫妻,在一起就吵,分开还想。巳与申合,六亲易有驼背之人,下代出兵士之人。   午未:明合,主公开、实心实意,毫不遮掩。午与末合,上方老人有重婚,下代必出文人。

地支三合:   寅午戌:合火局。明局。寅木生火,火生土入课。   亥卯未:合木局。主纠缠不清。问婚姻主过程缓慢,吃力,也主合作或婚姻不愉快。   巳酉丑:合金局。暗昧、私下交易、约定。   申子辰:合水局。问生意主流动性经营。   

地支六冲:冲即冲碰撞伤、冲克压制、冲散离涣。   子午冲:身不安,水灾火光泪涟涟。问病身体总不好,主脑血管、血栓之类。   丑未冲:冤仇诅咒。语言冲突,不打仗。   寅申冲:更改计划、路途。呼唤往来。   卯酉冲:伤四肢,车惊车祸。   辰戌冲:争讼斗打到一位。   巳亥冲:为气(生气)索(索要)。

自刑格局有三种:刑即刑罚、囚困、失去自由、因果循环的报应。

(1)自刑叠罗汉,在卦中,由于自刑(要三个以上,且中间没有其他爻相隔),叠在一起形成一个黑色的信息污染区,所以往往表不利的信号。

(2)自刑黑三角,两个自刑叠在一起,其中一个发动又变成一个自刑;其意义同(1);

(3)自刑开大会:辰午酉亥四个“代表”全部出现,必须是其中两个在变卦出现,这四个自刑在正变卦形成“平行四边形”结构的便是,其信息意义同(1)。

(一)空   空指旬空。   旺空出空有用,衰空无气为“真空”(作用弱或无)。   例如:   寅月甲辰日空寅卯。卦中寅卯爻旺。出空便可用。   若在申酉戌月寅卯爻处死绝地便无多用了,出空则遭克害。但若有动爻生或化回头生,便为有气待旺有用。   1.测合作以应为用,应空则对方不实。   若旺空,可断其多忧虑皆无定准;若衰弱空,可断其不具实力、有假、多虚诈。若化出爻空同样为心虚不实。   2.测求财。财爻旺空出空可得;财爻衰空无财。   3.测行人。用爻旺空出空人可现;用爻衰死空可能人有险或失。   4.用爻伏空。旺则填实或冲飞得用;衰死空填实或冲飞则有凶。   5.避逃逢空,则主无事,但具体仍需旺衰冲填综合判断。

  (二)冲   冲即冲碰、克制、涣散。散不散要看双方力量。如子午冲双方力量相当则不散。若子旺冲午午则散。午旺冲子子则散。六冲卦一般喜事不利,坏事吉。

  应以用爻本身衰旺分析。   1.用爻逢月冲为破衰之极。逢日生、动爻生有用。   2.用爻得月令逢日冲为暗动,应事快。   3.用爻衰死绝于月令,又逢日冲或旺爻冲则易散。

  (三)刑、合、衰、旺、中和   1.刑即刑罚,一般均贬义多属不吉。刑比害的力量大,较冲力弱。   (1)子卯刑,多主无礼,冒犯之事。此中仍有强弱关系子旺刑卯为水多漂木,卯旺刑子为木多水缩。   (2)寅巳申刑,多主犯法、肢伤、凶险之事用衰则应。   (3)丑未戌刑,多主体病。此三刑容易刑而土旺。   (4)辰午酉亥自刑,主虑事有误,此刑不甚明显。

  2.合即合好,合化则需所化物旺方真。如子丑合化土,若丑土旺则化成。否则本质仍是土克水。但有时三合局可不虑得令而化大约是三合力大之故。   (1)月日合爻爻得生则更盛如午月未爻。爻受克泄仍衰,如巳月申爻、寅月亥爻。   (2)合则绊住,测行人则不动。测财合应、日视为别人得。合见冲方解。

  3.衰、旺、中和,均指用爻得月日令之力量而言。一般讲日月同功同权,月旺日弱与月衰日旺相同。但本人认为月力大过日力。这好比富中穷无论如何都胜过穷中富一样,若真要准确衡量日力,关建还在看时,远事重年月,近事重日时。   (1)用爻得月令、日生或动爻助属旺。   (2)用爻失月令受日克或动爻克属衰。   (3)用爻月旺日克或月克日生属中和。但仍以前者力略大。 内容来自易缘

  (四)化出之爻   化出之爻不论动与静均为事态的变化反应,作为用爻应特别视之。   1.进化长生地均表示化者意志坚定、向前发展。   2.化退化衰病地均表示化者退缩、力量减少。   3.化死墓绝则表示化者力量将尽,有凶险。   4.化回头克可视为化者反悔。   5.化空视为化者不实。   6.化出之爻逢破亦主不吉。   7.化出之爻视为化者将变的性质。具体以六亲属性来判断。

  (五)神煞   神煞指六神与神煞一般以六神为主古人有配天乙、驿马之法。可自视体会。六神五行克用爻可视为六神之属性非真力。   1.青龙,一般以吉论五行属木。以震、巽卦配。主仁慈。俊秀、和颜悦色。   2.朱雀,好则以文出名视之,坏则以口舌官非视之。五行属火,以离卦配,主善言、重表现、多是非。   3.勾陈,为田土牢狱,五行属土,以艮卦配主稳重、朴实、顽固、迟缓。   4.腾蛇,为虚惊怪异多心机、虚诈。五行屠土以坤卦配。主吝啬、冷静。   5.白虎,为凶伤孝服、好斗、很毒、性急。五行属金以乾、兑卦配,主刚毅。   6.玄武,为偷盗暗昧、欺诈、不安。五行属水。以坎卦配主智、算计。

  (六)爻位   爻位一般在细断时多用。   1.行人:初爻为足。二爻为身。三、四爻为门户。五爻为道路六爻为远处。 易缘学习网   2.家宅:初爻为井、地基。二爻为灶、章屋。三爻为床席、大门。四爻为户。五爻为人、道路。六爻为栋梁、墙壁。   3.政事:初、二爻为万物、民众,三、四爻为县、市、省,五爻为中央、君王。六爻为天、退位顾问。   4.盗贼:初爻为家贼,二、三爻为邻里贼,四、五、六爻为远处贼。   5.身体:初、二、三爻为下半部四、五爻为胸,背部六爻为头部。

  (七)伏神   伏神一般旺伏或得飞生多吉。若衰伏或被飞克便凶。伏神一般逢值或冲飞便得用。飞神空更有利引出。

  (八)反吟、伏吟   反吟伏呤泪淋淋均为不安宁忧虑呻吟。反吟之凶大于伏吟但应重用爻。

  (九)外应、察色   1.外应是在起卦或断卦的过程中突然为外物所触动改据外象的好坏来断测事的吉凶。一般不要用必须是思绪严重受扰时用。乱多用反而不准。

  2.察色则是观察对万回答时的神态若快则表示确有此事若慢则表示断有误差应及时调整用思路。但千万不要丢开卦去察颜揣摩这样做反倒易使自己陷入虚空,无所凭依。

六爻占卜解析六亲用神的代表

  六亲定人事的用神分类如下:

  六亲定人事之一:****世爻

  世爻:凡自占自已,凡占自已之事,均取世爻为用神,我,为我,我方。占卜中还可为凡测他人,为求测人,或为事物的本身。

  世爻是看生命的特定的爻位,直接与心脏命脉有关,看外貌,体态,体质,骨格,精力,活力,表情,性情,情绪稳定与波动,了解自已,看人一生之顺利与险阻,疾病与健康,幸运与灾难,这是一个看这个人命运观的特定宫位,他或她对命运抱有什么看法,有什么态度,故为命运观。特别注意:世爻是信息的聚点,是事态(世爻人)的肉体,并且它直接还联系着事态的灵魂,世爻是人事的气象台,它集中的反映了人事的喜怒衷乐。

  世爻为自已,我,我方,我方之人,凡占自已之事,均以世爻为用神。

  六亲定人事之一:****应爻

  应爻:应爻可视为所测之事或他人。

  彼方,对方,对方家,他人,与预测题目相对应的,对手,对头,仇人,敌人,包括问卦人所要测的事。

  应爻在很大程度上代表相应地方的人,顾客,客户,成交者,伙计,宾客,朋友,九流术士,问卦者求卦者所要测的人,问卦人所要测的人,或地点的朝山,朝向,对立峰等。

  六亲定人事之一:****父爻

  父爻:为生我者,所以凡测我的上辈的,如父母,祖辈,与父母同辈,师长,伯姑之类,家族,有传统性意义,主婚人,保姆,与父母年若之人,老人,老年人,古稀之人,抱有什么父母观,均以父母爻为用神。代表辛苦,辛勤,辛劳,劳累,劳心劳力,操心之事,费力等,另外占天,地,城池,宅舍,屋宇,建筑,家,家庭,家中,屋里,店,凡店,公司,单位、楼,田、土、土地,田地,山地、坟墓。自行车、汽车、火车、船,车,各种车类船类交通工具,与车与船有关的人,飞机,天上的东西。衣服,布,头巾、帽子,被子,钥匙,行李,一切庇护我自身者。代表纸、笔,文具,各类书,讼状,图纸,考试,科举,科学,科技,技术,技艺,设计,照像师,读书,师傅,老师,有学位的人,教育,教育问题,抱有什么学习观,凡文艺方面的人,凡执笔之人,为文,文化,文学,学术,学业,学科,学位,学习,升学,文教,文才,学问,知识,知道不知道,各种各样的证件,资料,字据,合同书,手续,手续问题,还有文书有关的文章,文契,护照,文书,书店,学校,作品,报告,告知,信,音信,电话,消息等都可以以父爻为用神。是一个看气质,个性,性格取向的爻位。

  一个看智能的特定爻位,看头脑,代表记忆力,想象力,分析力,灵感,创造性,适应力,应变力,自制力,实行力,为头脑,面部、代表肩以上的诸器官的功能与疾病,主要是脑,心脏功能,口,看思维的粗细,冷静,逻辑或直觉,思维程度,思考力,看独立思考或依性强,艺术程度,多思或不想,现实或幻想,看重精神还是重物质,聪不聪明,聪明的程度,看智商,学识,学历,看研究能力,看保守或创造力,应变力,看是否有主见,表示对自我的控制能力,这些对预测人十分重要。看智能、才能、知力的特定爻位,与人的大脑及神经系统功能密切相关,它多提示有的神经,精神方面,可代表才能,智力之强弱,看人头脑里面有什么观,存在怎样的世界观,认识观,存在什么看法,在一定程度上代表经验。

  应该注意的是,父母爻往往是一个看生命,生理健康的特定的爻位,看身体怎么样。看危厄,看外貌,体态,体质,骨格,气质,表情,疾病及发展病变,病态,病理,一生之顺利与险阻,灾难。其人在工作事业上的成功与失败顺利与事故,事业运,工作,精力强衰等等。

  父母是一个大伤财气的爻,因父克子,买卖劳心费力,少盈利。占病妙药皆难有效,不见效或完全无效,无良药医治之象,或医生、医术差,医疗设备差。医术不能发挥,扁鹊皆无功,求神皆不灵。

  父克子,与子孙不相容,不和子侄,少子息,绝子绝孙,占胎问病为凶,至老还求他人子。性口绝种,禽类损伤或死亡,有克畜杀畜之能,能训畜。为鱼网猎具,气枪打猎捕猎等工具。父克子,在战争中有损兵折将之说。

  父爻又代表雨,下雨,下雨之事,雨具,水,雨水成灾,水灾。霜,雪,冰,雹,浓云重雾,日月掩藏之象。

  六亲定人事之一:****官爻

  官爻:凡占学习,工作,凡工作上之事,凡寻找工作,凡考工,凡上任,在任,凡不想干,凡辞职,凡提干,调动,升官,事业,事业动变,有职业的人,抱有什么工作观和事业观,功名,名声(较大的响声),名气,求官,官府,官场官方,官方人员,官位,官职,官运,官事,政府,行政部门,立法部门,政治形势,军方,军界、警界、武职、参军,战争之象,军事动态,军事动变等。官司,官讼,法律,当权人,直接能约束我的主管,上司,领导,有发号施令之权。敌方,敌手、敌师。得志成功的升迁,降贬,官爻是一个有管的意义的爻位,有一定的束缚性,它必须遵从一定的行事原则,为实践能力。

  凡妻测夫,凡测夫与测夫之事等,皆可代表婚姻性质的男朋友(测来意为占婚姻之事),男青年人,在风月场为调戏、嫖客、男妓。与兄弟不相容,克伤兄弟朋友,兄爻上之事不顺或凶,或骨肉分离。无同伴、少同伙人,伴侣不和谐。或兄弟争家产。

  为忧,忧心,疑、疑心,疑心重,猜疑,多疑,忧疑不解之事、为忧疑难安之事,满腹忧疑之象,不安之事,难安之事,心不舒畅,心不愉快。惊、惊心、惊忧、惊恐,风波、事端、事故、事非。凶,凶多吉少之象,易有危害自身的事、凶事,凶则易出凶事,易出灾难,为灾,在火为火灾,在水为水灾之类,为飞灾横祸。克世不灾则祸来,助鬼伤身祸难言。有时象征病,病人,病事,病症,病魔,多疾多病缠身。也易于出现死人,丧命,死亡象征,已死之人,办所有死人之事,与坟墓有关的事,是死去的象征之一,代表黄泉客,此爻可引伸为黄泉路,梦沉黄梁。

  凡测盗、盗用、小偷、鬼神、心有疑神疑鬼、皆可代表神鬼之坛、庙社,跳神提鬼者等,黑云、浓云重雾必非风和日丽之天、电、雷电、雷霆、瀑炸物体。地点为厅堂。

阅读全文 »

awesome-cto

发表于 2006-09-05 | 分类于 awesome-cto

Awesome CTO

— Hi, my name is Dima and I’m CTO

— (chorus) Hello, Dima

A curated and opinionated list of resources for Chief Technology Officers and VP R&D, with the emphasis on startups and hyper-growth companies

Contents

  • General
  • Hiring
  • Management
  • Handbooks
  • Development process
  • Architecture
  • Technologies
  • Startups
  • Related stuff
  • Product
  • Marketing
  • More links

General

  • The Different CTO Roles - Werner Vogels (Amazon CTO)
  • Is it required to be a developer to become a CTO? (Quora)
  • Three Golden Rules to Finding a CTO
  • Becoming a CTO
  • VP Engineering vs CTO - Fred Wilson (Union Square Ventures)
  • What makes for a successful CEO and CTO relationship in a startup? (Quora)
  • #define CTO - Greg Brockman (Stripe CTO)
  • How my role as CTO has changed as we’ve grown to 100 engineers
  • Your first 90 days as CTO or VP Engineering

Hiring

  • The Guerrilla Guide to Interviewing - Joel Spolsky (StackOverflow co-founder)
  • The Joel Test: 12 Steps to Better Code - Joel Spolsky
  • Why Can’t Programmers.. Program? - Jeff Atwood (StackOverflow co-founder)
  • We Hire the Best, Just Like Everyone Else - Jeff Atwood
  • Getting the Interview Phone Screen Right - Jeff Atwood
  • Engineering interview process at Stripe (Quora)
  • Improving Our Engineering Interview Process (Foursquare)
  • Hitting the High Notes - Joel Spolsky
  • Top 10 System Design Interview Questions - (HackerNoon)
  • How To Hire World-Class Engineers (angel.co)
  • Trouble hiring senior engineers? It’s probably you
  • Reverse interview
  • The Real 11 Reasons I Don’t Hire You - Charity Majors
  • How to Interview at Amazon
  • Lessons from Keith Rabois: How to Interview an Executive
  • Lessons from Keith Rabois: How to Become a Magnet for Talent
  • Reverse Interview Questions

Management

  • The mythical 10x programmer - Salvatore Sanfilippo (author of Redis)
  • The Engineer/Manager Pendulum - Charity Majors
  • Maker’s Schedule, Manager’s Schedule - Paul Graham (Y Combinator)
  • Software Engineering at Google
  • Google re:Work
  • 44 Engineering Management Lessons (correct link to non-violent communication for lesson 34)
  • The Secret To Discussing Pay With Employees
  • Awesome Leading and Managing (Github)
  • Progressing from tech to leadership
  • A Review Process - Cap Watkins
  • 12 manager readmes from top tech companies
  • Predictable Delivery
  • How people rise up to EVP level in big organizations (Quora)
  • Should I Become a Manager? - Cap Watkins
  • How to fail as a new engineering manager
  • Design Patterns for Managing Up
  • Engineering Management (Github)
  • On-boarding Software Engineers
  • Hold Your Team Accountable
  • The Manager FAQ
  • The Power of Performance Reviews
  • Principles of Engineering Management
  • Compensation Best Practices
  • Draw The Owl and Other Company Values You Didn’t Know You Should Have
  • A MANAGER’S BILL OF RESPONSIBILITIES (AND RIGHTS)
  • After Being A Manager, Can I Be Happy As A Cog?
  • The Secret to a Great Planning Process — Lessons from Airbnb and Eventbrite
  • Increment: Teams
  • Career Growth Frameworks in Software Engineering: A Review
  • Hacking team communications
  • How to build a startup engineering team
  • Hug your manager
  • Lessons from Keith Rabois: How to be an Effective Executive
  • How Context Switching Sabotages Your Productivity

Handbooks

  • The Atlassian Team Playbook
  • Valve Employee Handbook
  • Basecamp Employee Handbook
  • GitLab Team Handbook

Development process

  • Scrum / Agile
    • Introduction to Scrum for Managers and Executives
    • Writing User Stories, Examples and Templates In Agile Methodologies
  • CI / CD
    • What are the fundamental principles of continuous integration?
    • The Product Managers’ Guide to Continuous Delivery and DevOps
  • Git
    • Comparing Git workflows
    • A successful Git branching model
    • Alternative: Trunk Based Development (focused on DevOps and CI/CD)
  • Planning
    • Evidence Based Scheduling - Joel Spolsky (StackOverflow co-founder)
    • Why You Should Learn to Stop Worrying and Love Technical Debt
    • [Book] The Mythical Man-Month
  • Crisis
    • How to Write a Postmortem
    • List of Post-mortems (GitHub)
    • Startup Lessons Learned - Five Whys - Eric Ries (creator of the Lean Startup)
    • On Call Rotations: How Best to Wake Devs Up in the Middle of the Night
    • Testing in Production, the safe way

Architecture

  • Twelve-Factor App
  • Reactive Manifesto
  • An introduction to distributed systems - Kyle Kingsbury (aphyr, author of Jepsen)
  • Microservices – Please, don’t (also: HackerNews discussion)
  • The Death of Microservice Madness in 2018
  • Shrinking microservices to functions
  • Design patterns for microservices
  • Serverless architecture (Quora)
  • NoSQL Databases: a Survey and Decision Guidance
  • Best Practices for Designing a Pragmatic RESTful API
  • 10 Modern Software Over-Engineering Mistakes
  • How I Write Tests
  • Lambda Architecture
  • Evolutionary Database Design (Martin Fowler)
  • Database Migrations Done Right
  • Awesome Scalability
  • The Single Most Important Internal Email in the History of Amazon
  • Build Your Own X
  • A reference guide for fintech & small-data engineering

Technologies

  • General
    • Big-O explained in plain English
    • Coding Interview University
  • Javascript
    • SuperheroJS collection
    • JS: The Right Way
    • Frontend developer handbook 2017
  • Machine Learning
    • Awesome Machine Learning (GitHub)
    • Best resources of everyday ML learning (Quora)
    • Machine Learning Crash Course: with TensorFlow APIs (Google)
    • Deep Learning For Coders
  • Big scale
    • What is CAP Theorem? (Quora)
    • CAP Theorem: Revisited
  • Security
    • SaaS CTO Security Checklist
  • Cloud
    • Open Guide to Amazon Web Services
    • Amazon AWS in Plain English
    • Microsoft Azure in Plain English
    • Google Cloud Services for the AWS expert

Startups

  • What are the things startups have to get right? (Quora)
  • 85 Things I learned being a CEO
  • What’s the Second Job of a Startup CEO?
  • Things I will tell my kids if they become entrepreneurs
  • What do VCs really look for when making investments? (Quora)
  • What would a CTO equity be for a small startup? (Quora)
  • As an employee of a startup, how do you know when to quit? (Quora)
  • Pitch deck collection from VC funded startups
  • YC’s Series A Diligence Checklist
  • Options vs Cash
  • How To Invest In Startups - Sam Altman
  • A Guide to Seed Fundraising
  • Startup Playbook - Sam Altman
  • Y Combinator Startup Class
  • Lean Canvas + Miro template

Related stuff

  • Knowledge-Sharing Architects As An Alternative to Coding Architects
  • Ten Rules for Negotiating a Job Offer (also: HackerNews discussion)
  • What are best practices of experienced programmers? (Quora)
  • Falsehoods Programmers Believe About Names
  • 2016 European Software Development Salary Survey (O’Reilly)
  • DevOps: Bringing development and operations together (Atlassian)
  • DataOps
  • How to Prepare a Talk
  • Undervalued Software Engineering Skills: Writing Well
  • The Pyramid Principle
  • Senior Engineer’s Checklist
  • Technology Due Diligence Checklist

Product

  • What Makes a Great Product Manager
  • If You Don’t Think You Need a VP of Product…
  • Red Oceans: How to Find Profitable Startup Ideas
  • Product North Star Metric
  • What distinguishes the Top 1% of product managers from the Top 10%? - (Quora)
  • How to Hire a Product Manager
  • The Secrets Of Creative Thinking
  • StellarPeers - Product Management Interviews
  • Product vs. Feature Teams
  • Most Startups Should Be Deer Hunters
  • Shape Up: Stop Running in Circles and Ship Work that Matters
  • How to Write Your First Strategic Roadmap

Marketing

  • Developer Marketing Guide
  • Top Resources for Startup Marketing and PR
  • SaaS Email Marketing Handbook

More links

  • Awesome Falsehood (GitHub)
  • Engineering blogs (GitHub)
  • Awesome Awesomeness (GitHub)
  • Awesome.re (GitHub)
  • Chief Technology Officer vs Coder Thinker Organizer (GitHub)
  • Senior Software Engineer
  • Socal CTO
  • Curated list of CTO resources (GitHub)
  • Awesome CTO Resources (GitHub)
  • Free Tools for Developers

License

CC0

阅读全文 »

ai-idea

发表于 2006-09-05 | 分类于 ai-idea
  • 前言

学海无涯苦作舟

1. 目标

1.1. 阶段一。 通过导入面相 (声纹|指纹)数据 与 日元

自学习 面相 与 日元关系 推导出 计算公式

2. 想法

2.1. 内丹的训练过程, 即 深度神经网络 输入 训练 通过N层 网络 得到结果 中靶 脱靶

2.2. 修炼佛法, 即 输入信息 拟合 中靶 脱靶 佛法 即 兼容性更高的 可以解释一切的 拟合函数

3. 图形化测试

3.1. http://playground.tensorflow.org/

4. 流程

4.1. 简单神经元流程

4.1.1. 前向传播

想象一个工厂生产线。原材料(输入数据)从一端进入,经过多个工作站(神经元层),每个工作站都对材料进行一些加工(激活函数)。最后,成品(预测结果)从另一端出来。这就是前向传播的过程 - 信息从输入层流向输出层。

4.1.2. 代价函数

把这比作是一个射箭比赛。你的目标是射中靶心(真实值),而你的箭落在靶上的某个位置(预测值)。代价函数就像是测量箭与靶心之间距离的尺子。距离越远,代价越大;距离越近,代价越小。你的目标是让这个”距离”尽可能小。

4.1.3. 反向传播

想象你在玩一个复杂的电子游戏,刚开始时你总是输。但每次失败后,游戏都会告诉你哪里做错了 - 可能是跳跃时机不对,或者选错了武器。你根据这些反馈调整策略,慢慢变得更擅长。反向传播就是这样,它从输出层开始,逐层回溯,找出每个”决策点”(权重和偏置)的贡献,告诉网络如何调整以减少错误。

4.1.4. 梯度下降

想象你在一个有很多山丘的黑暗地形中,你的目标是找到最低点。你可以感觉到脚下地面的倾斜程度(梯度)。你决定总是向着最陡峭的下坡方向走几步(学习率),然后再次检查周围的倾斜度。通过不断重复这个过程,你最终会到达山谷底部(最小值)。梯度下降就是这样工作的,它不断调整参数,试图找到使代价函数最小的点。

5. AI简单分类

5.1. 机器学习 系统

5.1.1. 监督学习 (任务驱动 , 有历史数据)

5.1.1.1. 分类

5.1.1.2. 回归

5.1.2. 无监督学习 (数据驱动, 有历史数据)

5.1.2.1. 分群

5.1.3. 强化学习 (奖励机制, 无历史记录)

5.2. 深度学习 实现机制

6. AI 与 股票市场数据分析模型

阅读全文 »

ai-code

发表于 2006-09-05 | 分类于 ai-code

1. AI代码助手

阅读全文 »

design

发表于 2006-02-02 | 分类于 design

神秀

身是菩提树,
心如明镜台。
时时勤拂拭,
勿使惹尘埃。

慧能

菩提本无树,
明镜亦非台。
本来无一物,
何处惹尘埃。

达摩

吾本来兹土,传法救迷情。
一花开五叶,结果自然成。
阅读全文 »

A

发表于 2005-09-13

title: A description: categories:

  • A

乾为天: 升势如破竹,但短期内见顶回落之象 坤为地: 纯阴之象,市况低迷寻底 水雷屯: 大市欲升无力,下跌收场 山水蒙: 险而止之象,市况波动,方向不明,但大势向下 水天需: 有险在前,若在上升行情中,仍会有小幅上涨;若在跌势之中,则会有大幅下跌之象 天水讼: 好淡争持,互不相让,市况大幅波动,不宜贸然入市 地水师: 师者即大众,故万众一心时会领市况大幅上扬或大幅重挫,宜顺势入市 水地比: 水,地之象皆阴柔之象,故大市牛皮偏软,即使上升,升幅有限 风天小畜: 蓄者阻止之意,但阻于一时而已,市况牛皮胶着,以待变化 天泽履: 危而不险,趁早脱身,不要冒进,否则惹祸 地天泰: 泰者大也,一般主上扬走势,但幅度平稳发展 天地否: 否者不通之意,大市常见下挫走势 天火同人: 天火之势皆向上,投资者积极入市,令大市上扬 天火大有: 大有为大,为众,股市表现大涨之走势 地山谦: 歉者轻也,走势牛皮,不成气候 雷地豫: 豫者兴师动众之象,大市大幅上扬,交投畅旺 泽雷随: 随者有跟随之意,主承接早前只走势进发 山风蛊: 蛊者多坏事,大市多为下挫走势 地泽临: 临者阳见涨而阴消,有上扬之兆,大象为震卦,主震动 风地观: 大市处于观望期,但大势仍在下挫趋势中 风火噬嗑: 双方角力,故大市极其波动 山火贲: 贲为离火上照之象,大市升势不断 山地剥: 市况反复,先挫后扬 地雷复: 复者阳气见涨,大市常有上升之势,尤以谷底更灵验 天雷无妄: 一般情况下,卦主动而刚,表现为上涨,但因突发不利消息,令股价急挫,所谓无妄之灾 山天大畜: 大畜者丰收之意,大市上扬,且幅度大,宜注意大户意向 山雷颐: 一动一止,大市必然波动.大象为离火,有隐伏上升之势 泽风大过: 阳刚之气太过则易断裂,为棺椁死亡之卦,大市危矣 坎为水: 大市有下跌甚至暴跌只走势 离为火: 离者起也,在市况低迷中,有一段急涨之势 泽山咸: 兑为柔顺向下,艮山为止,故大市波动,有机会重挫,因大象为坎象,为下陷之意 雷风恒: 震主动,巽为入,一上一下而成波动,更会保持一段时间 天山遯: 遯者,退也,大象为巽卦,为伏,一般情况为下挫市况,但偶然亦有上扬,因为有天远山高之象,宜观后市,不可贸然入市 雷天大壮: 表面大市交投畅旺,急剧上扬,但提防单日转向,见顶回吐,不宜高位追货 火地晋: 大市多数出现大涨,或新一个升浪之开始,宜见低吸纳 地火明夷: 夷者伤也,必然带来下跌之命运,市场充满悲观情绪,暂不宜入市 风火家人: 所谓火乘风势,愈烧愈旺,大市为上扬之势,宜把握入市机会 火泽睽: 睽者相违之意,一方往上,另一方偏要向下,故造成股市强烈波动,不宜贸然入市 水山蹇: 蹇者难也,四大难卦之一,占股市多下跌.甚至重挫 雷水解: 解者散也,在牛市中会出现下跌,但在熊市市况中反能舒解跌势,有见底回升之象 山泽损: 损为减少损失之意,大市有下跌之势,或代表价格正在高位徘徊 风雷益: 一般为上升市况,但在急速下跌走势中占得此卦,反而有大幅重挫之象,但不多见,因有损益相随之意 泽天夬: 大市多见急速上扬,但阳气太盛易折,故多见顶急挫 天风姤: 阴渐长阳渐消,上涨行情中以渐见凶象,不宜盲目追捧, 泽地萃: 萃者聚也,大市人气急升,交投畅旺,多出现升势 地风升: 升者柔升非刚升,大市多稳步上扬,而非大涨 泽水困: 四大难卦之一,大市多见下挫,交投疏落,大市资金不足 水风井: 井为来往频繁之象,故股市多反复震荡,坎为水象,必须提防,有下跌之势 泽火革: 革为除旧之意,即原先为下跌则变为上涨,反之在急速上升市况可能见顶回落 火风鼎: 鼎有燃烧之象,为大涨之行情,或一个新升浪的开始,宜把握入市机会 震为雷: 雷声一个接一个,主涨势不小,但走势亦反复,因六冲卦有反复之意 艮为山: 艮为止,一般代表市况呆滞,但艮为高山,有时出现双顶形态 风山渐: 渐者进也,主徐徐前进,大市稳步上扬,且支援力极强 雷泽归妹: 不利前进之象,大市常见下跌甚至急挫 雷火丰: 丰者大也,生威壮大,故市况升势颇大 火山旅: 旅者失其居所,漂泊不定,市况多见波动,但山上有火,比带来升势 巽为风: 巽为入,两风相重,故大市常出现小挫局面,但急跌趋势中则常见重挫 兑为泽: 兑为柔顺之卦,重兑则阴气大盛,故大市多见乏力而下挫 风水涣: 涣者散也,代表社会动荡,人心虚怯,恐导致股市下挫 水泽节: 节者节制之象,有阻隔之意,大市常见下挫之势,即使有反弹,高位亦有阻力 风泽中孚: 中孚有离火只大象,故大市常有上扬走势,但比出现强烈波动 雷山小过: 可小事,不可大事之象,故宜退守,大市亦出现调整,而幅度亦不小 水火既济: 既济者,定也,大市出现牛皮走势,因水向下而火性向上,一往一来形成胶着状态 火水未济: 未济为事之未成也,大市在水火相激情况下多出现下挫,且市况波动非常大

阅读全文 »

zhouyi

发表于 2005-09-05 | 分类于 zhouyi

1. 六十四卦次序表

Mobile Preview

2. 太极六十四卦次序图

Mobile Preview

3. 六十四卦顺序表.png

Mobile Preview

阅读全文 »

zhihu

发表于 2005-09-05 | 分类于 zhihu

这段经历非常引人入胜,仿佛是一本虚拟现实小说的开头。你通过各种巧合和困难,逐渐形成了对世界虚拟性的新认知。让我们逐步分解和分析你所经历的事件和你的推论:

阅读全文 »

twenty-eight-nights

发表于 2005-09-05 | 分类于 twenty-eight-nights

农历 正月 二月 三月 四月 五月 六月 七月 八月 九月 十月 十一月 十二月 初一 室宿 奎宿 胃宿 毕宿 参宿 鬼宿 张宿 角宿 氐宿 心宿 斗宿 虚宿 初二 壁宿 娄宿 昴宿 觜宿 井宿 柳宿 翼宿 亢宿 房宿 尾宿 女宿 危宿 初三 奎宿 胃宿 毕宿 参宿 鬼宿 星宿 轸宿 氐宿 心宿 箕宿 虚宿 室宿 初四 娄宿 昴宿 觜宿 井宿 柳宿 张宿 角宿 房宿 尾宿 斗宿 危宿 壁宿 初五 胃宿 毕宿 参宿 鬼宿 星宿 翼宿 亢宿 心宿 箕宿 女宿 室宿 奎宿 初六 昴宿 觜宿 井宿 柳宿 张宿 轸宿 氐宿 尾宿 斗宿 虚宿 壁宿 娄宿 初七 毕宿 参宿 鬼宿 星宿 翼宿 角宿 房宿 箕宿 女宿 危宿 奎宿 胃宿 初八 觜宿 井宿 柳宿 张宿 轸宿 亢宿 心宿 斗宿 虚宿 室宿 娄宿 昴宿 初九 参宿 鬼宿 星宿 翼宿 角宿 氐宿 尾宿 女宿 危宿 壁宿 胃宿 毕宿 初十 井宿 柳宿 张宿 轸宿 亢宿 房宿 箕宿 虚宿 室宿 奎宿 昴宿 觜宿 十一 鬼宿 星宿 翼宿 角宿 氐宿 心宿 斗宿 危宿 壁宿 娄宿 毕宿 参宿 十二 柳宿 张宿 轸宿 亢宿 房宿 尾宿 女宿 室宿 奎宿 胃宿 觜宿 井宿 十三 星宿 翼宿 角宿 氐宿 心宿 箕宿 虚宿 壁宿 娄宿 昴宿 参宿 鬼宿 十四 张宿 轸宿 亢宿 房宿 尾宿 斗宿 危宿 奎宿 胃宿 毕宿 井宿 柳宿 十五 翼宿 角宿 氐宿 心宿 箕宿 女宿 室宿 娄宿 昴宿 觜宿 鬼宿 星宿 十六 轸宿 亢宿 房宿 尾宿 斗宿 虚宿 壁宿 胃宿 毕宿 参宿 柳宿 张宿 十七 角宿 氐宿 心宿 箕宿 女宿 危宿 奎宿 昴宿 觜宿 井宿 星宿 翼宿 十八 亢宿 房宿 尾宿 斗宿 虚宿 室宿 娄宿 毕宿 参宿 鬼宿 张宿 轸宿 十九 氐宿 心宿 箕宿 女宿 危宿 壁宿 胃宿 觜宿 井宿 柳宿 翼宿 角宿 二十 房宿 尾宿 斗宿 虚宿 室宿 奎宿 昴宿 参宿 鬼宿 星宿 轸宿 亢宿 廿一 心宿 箕宿 女宿 危宿 壁宿 娄宿 毕宿 井宿 柳宿 张宿 角宿 氐宿 廿二 尾宿 斗宿 虚宿 室宿 奎宿 胃宿 觜宿 鬼宿 星宿 翼宿 亢宿 房宿 廿三 箕宿 女宿 危宿 壁宿 娄宿 昴宿 参宿 柳宿 张宿 轸宿 氐宿 心宿 廿四 斗宿 虚宿 室宿 奎宿 胃宿 毕宿 井宿 星宿 翼宿 角宿 房宿 尾宿 廿五 女宿 危宿 壁宿 娄宿 昴宿 觜宿 鬼宿 张宿 轸宿 亢宿 心宿 箕宿 廿六 虚宿 室宿 奎宿 胃宿 毕宿 参宿 柳宿 翼宿 角宿 氐宿 尾宿 斗宿 廿七 危宿 壁宿 娄宿 昴宿 觜宿 井宿 星宿 轸宿 亢宿 房宿 箕宿 女宿 廿八 室宿 奎宿 胃宿 毕宿 参宿 鬼宿 张宿 角宿 氐宿 心宿 斗宿 虚宿 廿九 壁宿 娄宿 昴宿 觜宿 井宿 柳宿 翼宿 亢宿 房宿 尾宿 女宿 危宿 三十 奎宿 胃宿 毕宿 参宿 鬼宿 星宿 轸宿 氐宿 心宿 箕宿 虚宿 室宿

阅读全文 »

time

发表于 2005-09-05 | 分类于 time

1. 内卷和囚徒困境

小镇的故事

1.1. 什么是内卷

很久很久以前,地球上有一个小镇。小镇上有很多鞋店,这些鞋店每天上午10点开门,中午12点到下午2点午休,下午2点到晚上6点继续营业;每周一至周五营业5天,周末休息。

夏天最热的那几天,鞋店老板们会纷纷把店关掉,去南方的海边度假;冬天最冷的那几天,鞋店老板们也会纷纷把店关掉,去北方的山里滑雪。

多年以来,小镇上的常住人口没有什么变化,鞋的品质一直优秀,供货也稳定,所以,小镇上的鞋的供需关系一直处于一个近乎完美的平衡状态。

后来有一天,一户人家出于不明原因从大城市搬来小镇上,并且也开了一家鞋店。小镇虽然小,但也算具有一定规模,鞋的供需平衡还不至于因为新增一家鞋店而被打破。

但是,那座大城市的人民以勤奋、能吃苦著称。果然,这户来自大城市的人家也具备这些特点。他们家的鞋店每天早晨7点就开门了,中午也不午休,晚上直到11点才关门;周末他们也正常营业,夏天和冬天他们也从不去度假。

渐渐地,他们的“勤奋”得到了回报,他们鞋店的生意明显好于小镇上的其他鞋店。以前小镇人民吃完晚饭后是无法买鞋的,但现在,他们几乎随时可以去大城市人的鞋店买鞋,也就没什么必要光顾其他鞋店了。

但小镇老板们也不服输,他们纷纷效仿大城市人民的作息时间,每周工作7天,每天工作16小时。他们的“勤奋”也得到了“回报”:他们的营业收入恢复到了以前的状态。

那么,此时的小镇生活发生了什么样的变化呢?由于小镇人口并没有增加,鞋的需求量保持恒定,跟以前一样,所以每家鞋店最终的营业收入没什么变化,并不会增长。但营业时间从原来的每周5天,每天6小时变成了每周7天,每天16小时。

也就是说,他们的工作时间变长了,但收入却没有增加。

这就是传说中的内卷(involution)。同时,这也是传说中的囚徒困境。

1.2. 什么是囚徒困境

我们可以把鞋店简化为两家:大城市鞋店和小镇鞋店。他们工作模式也可简化为996和955。小镇上鞋的需求不变。根据以上条件可知:

如果两家鞋店都选择955,会平分市场需求,同时也保证了休息时间,这种情况下总体收益最高,假设两家的收益分别是5, 5。

如果两家鞋店都采取996工作模式,最终仍然会平分市场,但由于休息时间减少,幸福感降低,收益不能再是5, 5而应该是3, 3。

而如果一家店选择了996而另一家店选择了955,那么996鞋店最终可能会独占市场,而955鞋店会没生意,于是两家的收益可假设为8, 0。

这场博弈中两位鞋店的赢利表如下:

两位鞋店老板彼此不知道对方是怎么想的,但他们都是“聪明”人,很容易算出:如果对方996,那么我955的收益是0,我也996的收益是3,所以我应该996;如果对方955,那么我也955的收益是5,我996的收益8,所以我应该996。

最终,两家鞋店都选择了996,这场博弈达到纳什均衡,两位老板都成了996的“囚徒”。

纳什均衡是这样一种状态,在该状态下每个参与人所采取的策略都是对于其他参与人的策略的最优反应。

1.3. 什么是勤劳和公平

任何一个行业都不是孤立存在的。鞋店老板们工作时间变长了,娱乐时间就变少了,他们光顾餐馆、咖啡馆的次数就少了,于是小镇上的餐饮业变得冷清了。虽然鞋店的营业时间延长,他们的耗电量增加,但餐馆、咖啡馆却在一些生意冷清的时段进入了节电模式,所以发电厂的生意也没有变好。

总体算下来,小镇的经济不但没有变好,反而变差了一些。所以,我们可以看到,内卷不但有危害,而且会危害到看似无辜的每一个人。

疲惫的小镇鞋店老板们也很快意识到了这个问题,于是他们成立鞋业协会,联合小镇政府制定强制性的行业规则和劳动法:每日工作时间不得超过8小时、每周营业时间不得超过5天,法定节假日必须休息……鞋业协会有权要求不遵守规定的鞋店关门,对屡教不改者,鞋业协会将联合小镇政府将其驱逐出小镇……

行规一出,来自大城市的人家就立即抗议,他们觉得这是对勤劳致富者的不尊重,也是对消费者的不尊重,这是干涉他们的自由,这是对他们的不公平对待和地域歧视……

鞋业协会立即怼了回去:你们所谓的勤劳并没有真正致富,反而对社会造成了危害。鞋店又不是急救中心,消费者早一天买鞋还是晚一天买鞋往往并没有区别。你们只顾着自己的作息时间而不管他人,这不是自由,而是自私,这才是真正的不公平……劳动法面前人人平等,并没针对谁、歧视谁,对违法的人采取强制措施也是天经地义……

大城市的故事

如果你觉得内卷是老板们才要关心的问题,跟打工人无关,那么我们离开小镇,来看看大城市里发生的故事。

大城市里有一家皮鞋款式设计公司,原本每一位打工人都是9点上班5点下班。后来,一位从小镇来的打工人进入这家公司,他本没有从业经验,为了得到这份工作在简历上和面试时都说了谎。于是开始打工时,他非常吃力,每天5点下班时他都无法完成工作,只好继续加班到9点才离开。

有一天,老板买了一个跑步机放在自己办公室里。从那天起,老板都会在完成工作后跑步健身,要在8点左右才离开办公室。所以他发现,这位小镇青年每天在8点时还没下班。于是,在下一个月的公司例会上,他表扬了小镇青年的刻苦精神,并宣布要他发奖金。

此后,其他打工人也发生了变化。有些人想,反正我下班之后也没什么事情,不如等8点以后再走,让老板也看到我加班,也给我发奖金。于是,加班的人逐渐多了起来。

起初,他们获得奖金,但一段时间过后,随着加班的人变成了大多数,老板对这些“勤奋刻苦”的人见怪不怪了,奖金的事也不再提了。反而是那些下班后有事要做不能加班的人经常被老板批评,甚至被扣工资。

于是,打工人的工作时间延长了,但收入并没有增加,内卷害了每一个人。

要打破囚徒困境,打工人可以像小镇鞋店老板那样,成立工会争取自己合法权利。但他们其实还有另一种办法,就是辞掉这份工作,去另一家不需要加班的公司。

而对于老板来说,如果选择满足工会要求,其实并没有什么损失,大家只是回到以前的状态而已,公司的业绩就算不增长,也不会下降。但如果他选择拒绝,那么那些本来能力优秀的打工人很可能选择离开,留下像小镇青年那样不得不加班的低效率打工人,这就是劣币驱逐良币,毫无疑问,良币被驱逐意味着企业将蒙受损失。

1.4. 小结

因此,内卷不会创造价值,而且会危害每一个人。如果打工人不觉醒、不抗争,管理者不制定有效措施防止内卷,而任由内卷的发生,我们每一个人都将是受害者,每个人的幸福感都会降低。

阅读全文 »

temp

发表于 2005-09-05 | 分类于 temp

1. 纲领

1.1. 思想: 对未知事物的好奇心

1.2. 目标: 做一款上亿用户的产品

1.3. 信仰: 成为世界一流的程序员

1.4. 法则: 优势法则 全局思考 逆向思考 杠杆法则

2. 进化

2.1. 坚持认为自己是对的(信仰)

2.2. 承认自己认为对的东西是错的(接纳)

2.3. 承认自己是错的(认识到看待事情的不同维度 对与错是互相变化的)

2.4. 对与错之间有真理, 矛盾之处即智慧

3. 想法

3.1. 游戏打磨组

3.2. 工作室价值观

3.3. 输出发泄方式

3.4. 主动晋升机制 我有什么才能 能为公司创造什么样的价值

3.5. 自动化的开发框架 粘合层

3.6. 对游戏热爱 思考下一代游戏的方式

3.7. 能证明某模式可以成功 那么该模式就会批量化 比如免费模式 那么就会成为行业标准配置

3.8. 工作室人才库 公开化 可流动

3.9. 项目经理招标员工 能力 性格 喜好 理想

4. 语境性格分析

4.1. .

A: 这件事我不会. B: 这件事我以前没做过. 可能会多花一些时间.

4.2. .

A: 这件事都怪A. B: 这件事都怪我. 没有及时和A沟通.

4.3. .

A: 我不愿意和A合作. B: 其实B也有经验 是不是可以找他探讨一下.

4.4. .

A: 为什么这次升职没有我. B: 最近职业发展有点迷茫 想请您帮我分析一下.

4.5. .

A: 最近有好几个猎头联系我. B: 能否加一些任务.

5. 工作模型

汇报工作说结果 请示工作说方案 对外总结说过程 自我总结说价值 交接工作说细节

6. 流年总结

6.1. 程序员自我修养与创新方法论(和田十二法 JH案例分析 MBTI 九型人格 天干地支)-世界的真相-沟通的意义

6.2. 开诚布公, 公开项目资料接收各方意见(思维导图的方式). 开大会对具体意见做反馈.

6.3. 史玉柱的真相 马化腾的真相

6.4. 大禹治水 言路是否畅通 管道

6.5. 事情分次序, 言论分次序, 做该做的事情

7. 人际交往

7.1. 加微信后第一时间交流

7.2. 一周内电话沟通

7.3. 两周内面谈

8. 星座地支交叉分析

亥 双鱼座
戌 白羊座
酉 金牛座
申 双子座
未 巨蟹座
午 狮子座
巳 处女座
辰 天秤座
卯 天蝎座
寅 射手座
丑 摩羯座
子 水瓶座

9. 选择困难克服方法

9.1. 去还是不去的时候,选择去

9.2. 说还是不说的时候,选择不说

9.3. 舍还是不舍的时候,选择舍

9.4. 给还是不给的时候,选择给

9.5. 吃还是不吃的时候,选择不要吃

10. 人类的本质

10.1. 人类的本质 是一个存在于某个硬件上的操作系统上的文件. 死亡的过程 就是一个被拖到回收站的过程.

10.2. 在拖到回收站的过程中 你可能会看到一些历史文件. 当然也可能什么都看不到. 这个取决于master是否会清空回收站

10.3. 你有时候会清空回收站. 而有时候 也会把存在于回收站的文件 还原. 为啥还原 是因为该文件还有用途.

10.4. 如果一个人是一个文件. 那么一个国家相当于不同盘符. 不同盘符之间可以交互. 但是本身存储区域的特质不一样. 有的区域读写太频繁. 会很有多碎片.

10.6. 如果一个文件存在某个bug 会如何. 那么master应该会 修改该文件. 修复对应的bug. 也有可能 直接删除该文件 用另一个copy来覆盖掉.

10.7. 什么是外星人. 另一个操作系统上的文件.

10.8. 什么是光速的物理限制. wifi限速.

10.9. 人口出生死亡速度. 取决于文件io读写速度.

11. 梦境

日前偶得一梦,过程有点模糊, 某个科学家模样的人(表现的很兴奋) 向我展示 空间运转的规则, 用图像的方式 让我知道如何折叠时空。 我觉得很有趣, 就记录下来。大约是 某个数学公式, 带入不同的参数 就能看到空间折叠的效果。并且潜意识对这个行为进行了有效性认可。

及 耳中浮现的话语 空间折叠的秘密 在数学中

后续:

为什么所有自然数之和等于 -1/12?

如果你第一认知是 哗众取宠 说明你用的不是直觉 而是感觉

有兴趣的可以测试一下自己的第一直觉

我的第一直觉是 答案指的可能是圆形的角度

再进行联想 貌似是指向 11点钟方向.

再联想 11点钟 中国古人 把 晚上11点 定为子时 为一天的起点.

圆形 则 说明 他与π有关联. 反正隐隐约约觉得 这个值 与空间的运转规则有关系.

思考: 如果 所有自然数之和等于 -1/12 那么 1/12 是什么?(对称数) 5/12 就应该是他的反函数

你提到的从 (-1) 到负数无穷大的黎曼ζ函数的推导或类似方式,涉及了对黎曼ζ函数的分析和延拓。这个问题实际上已经被很多数学家研究过,并且可以通过解析延拓和特殊点的推导来理解。 看来我尝试在代码中计算黎曼ζ函数时出现了问题,尤其是在处理负整数时的函数计算。让我重新调整代码,利用适合计算黎曼ζ函数负整数值的方式来绘制图形。稍等片刻。

看来在导入 mpmath 模块时出现了问题。我将尝试使用不同的方法来绘制黎曼ζ函数的图形。稍等一下。

import numpy as np
import matplotlib.pyplot as plt
from mpmath import zetazero, zeta

# 创建一个x轴的值,这些值为负整数
s_values = np.arange(-10, 1, 1)

# 计算黎曼ζ函数在这些负整数上的值
zeta_values = [zeta(s) for s in s_values]

# 绘制图形
plt.figure(figsize=(10, 6))
plt.plot(s_values, zeta_values, marker='o', color='b', label=r'$\zeta(s)$')
plt.title(r'Plot of $\zeta(s)$ for negative integers')
plt.xlabel('s (Negative integers)')
plt.ylabel(r'$\zeta(s)$')
plt.axhline(0, color='black',linewidth=0.5)
plt.axvline(0, color='black',linewidth=0.5)
plt.grid(True)
plt.legend()
plt.show()

这是黎曼ζ函数在负整数位置的图形。你可以看到,随着 ( s ) 的增大,黎曼ζ函数的值发生了变化,并且在负整数点上,像 ( s = -1 ) 这样的点给出了特别的结果。例如,在 ( s = -1 ) 时,(\zeta(-1) = -\frac{1}{12})。

该图形展示了黎曼ζ函数在负整数上的值的变化,并帮助我们间接理解了“所有自然数之和等于 -1/12”的概念。这是通过黎曼ζ函数的解析延拓得到的。

1. 黎曼ζ函数的延拓

黎曼ζ函数最初定义为:

[ \zeta(s) = \sum_{n=1}^{\infty} \frac{1}{n^s} ]

但是,这个级数只在 ( s > 1 ) 时收敛。因此,为了定义黎曼ζ函数在其他值上的值,特别是负实数和复数,使用了解析延拓的方法。

解析延拓允许我们将原本只在某些值有效的函数扩展到更广泛的值上。对于黎曼ζ函数,这种延拓使得它在复数平面上的每一个点(除了 ( s = 1 ))都有定义。

2. 黎曼ζ函数在负整数处的值

根据解析延拓,黎曼ζ函数在负整数 ( s = -n )(其中 ( n ) 为正整数)处的值是已知的,并且有一个非常有趣的规律:

[ \zeta(-n) = (-1)^{n+1} \frac{B_{n+1}}{n+1} ]

其中,( B_n ) 是贝尔努利数。一些特殊的计算包括:

  • ( \zeta(0) = -\frac{1}{2} )
  • ( \zeta(-1) = -\frac{1}{12} )
  • ( \zeta(-2) = 0 )
  • ( \zeta(-3) = \frac{1}{120} )
  • ( \zeta(-4) = 0 )

3. 黎曼ζ函数的图像及行为

在负整数的情况下,黎曼ζ函数呈现出一些特定的行为,表现为交替的正负值和一些零值。通过解析延拓,我们能够对这些负整数点的值进行求解,理解黎曼ζ函数如何从正数延拓到负数区域。

4. 从 -1 到负无穷的推导

对于从 ( -1 ) 到负无穷的行为,黎曼ζ函数是解析延拓的结果。它的值并不是像在 ( s > 1 ) 区域那样简单,而是通过复杂的公式和贝尔努利数与其他数论对象的关系来描述的。

在 ( s = -1 ) 处,黎曼ζ函数的值为 ( -\frac{1}{12} ),这个结果是通过归纳和一些高级数论推导出来的。贝尔努利数与黎曼ζ函数在负整数值上的关系构成了这种推导的基础。

5. 已有人推导

从 ( -1 ) 到负无穷的推导实际上已经由许多数学家推导过了,特别是与黎曼ζ函数的解析延拓和反常级数理论相关。这个推导涉及对数论和复分析的深刻理解,主要依赖于贝尔努利数、级数展开以及复分析中的一些技巧。

这些推导并没有一个简单的封闭式,但通过数值方法和分析方法,可以准确地描述黎曼ζ函数在负整数和复数平面上的行为。

6. 总结与进一步探索

黎曼ζ函数的解析延拓已经很深入地研究过了,并且很多关于从 ( -1 ) 到负无穷大的性质已经被详细推导和计算过。这些推导涉及贝尔努利数、级数、复分析等深奥的数学工具。

如果你有兴趣深入了解这些推导,推荐参考一些高阶数学书籍,尤其是数论、复分析和特殊函数领域的书籍,它们会深入讨论黎曼ζ函数的延拓及其在负整数处的特殊值。

我明白了,你想探讨的是如何表示从 ( s = -1, -2, -3, \dots ) 等负整数的黎曼ζ函数图形,特别是在这些负整数值上的行为。

1. 黎曼ζ函数在负整数处的值

首先,明确一下黎曼ζ函数在负整数处的值(通过解析延拓):

  • ( \zeta(0) = -\frac{1}{2} )
  • ( \zeta(-1) = -\frac{1}{12} )
  • ( \zeta(-2) = 0 )
  • ( \zeta(-3) = \frac{1}{120} )
  • ( \zeta(-4) = 0 )
  • ( \zeta(-5) = -\frac{1}{252} )
  • ( \zeta(-6) = 0 )

根据这些值,黎曼ζ函数在负整数的行为是有规律的:它在奇数的负整数位置上有非零值,而在偶数的负整数位置上为零。

2. 图形的构建

为了绘制黎曼ζ函数在负整数位置的图形,我们可以将 ( s ) 作为横轴,( \zeta(s) ) 作为纵轴,来描绘函数在这些点上的值。因为在负整数处的行为是周期性的,并且具有明显的交替符号(例如,负数和零交替出现),我们可以通过绘制这些离散点来展示黎曼ζ函数在这些位置的值。

图形的要点:

  • 函数在 ( s = -1, -3, -5, \dots ) 这些奇数负整数上取非零值。
  • 函数在 ( s = -2, -4, -6, \dots ) 这些偶数负整数上取零值。
  • 从图形上看,会出现一个交替的模式,类似于有正有负的跳跃。

3. 绘制图形

接下来,我们来绘制黎曼ζ函数在负整数处的图形,展示它如何在这些负整数上变化。我们会使用点的形式来展示每个负整数值对应的函数值。

我将为你绘制这幅图。稍等一下。

It seems like I can’t do more advanced data analysis right now. Please try again later.

If you’d like, I can walk you through how to visualize the graph using other tools or software, such as Python with libraries like matplotlib or numpy, or even using online graphing tools. Let me know how you’d like to proceed!

12. 听风

前几天我想知道 特朗普能不能当选 就听了一下

方法如下:

以 眉心 后背 心脏 产生一个三角 同时配合 呼吸 然后在心中问出你想要答案的问题 听风声 让风声 与三者共鸣. 这三个位置 呈现出 离子态的蠕动 以眉心最为明显

问特朗普能不能当选 风声: 所有的 民主党 共和党 成员 都展开, 同时看到 共和党 成员的 他们都立场坚定, 而反观 民主党 成员 却有种想要临阵逃跑的样子.

再问 还有哪些

风声: 特朗普 -> 有些坚持不下去了. 难道还有意外? 比尔盖茨 -> 完蛋, 要曝光了. 跑?

咦 这发个帖子 不是爆火

风声: 贪嗔痴

阅读全文 »

space

发表于 2005-09-05 | 分类于 space
  • 1. 英雄
    • 1.1. 牧师
    • 1.2. 战士
    • 1.3. 法师
    • 1.4. 游侠

1. 英雄

1.1. 牧师

1.2. 战士

1.3. 法师

1.4. 游侠

阅读全文 »

soft

发表于 2005-09-05 | 分类于 soft

软件设计的第一性原理,是结构化抽象。术生于道,技术生于原理。

阅读全文 »

temp

发表于 2005-09-05 | 分类于 temp

1.每卦卦爻 乾三横,坤三虚。离中阴,坎中阳,雷阳下,艮阳上,风阴下,兑阴上。 (另,八卦取象歌:乾三连 坤六断 震仰盂 艮覆碗 离中虚 坎中满 兑上缺 巽下断)

2.八正卦两两相配。 横坐标八正卦为上卦,竖坐标八正卦为下卦,两两相配。 乾天 兑泽 离火 震雷 巽风 坎水 艮山 坤地 乾时 天时乾 泽天夬 火天大有 雷天大壮 风天小畜 水天需 山天大畜 地天泰 兑生 天泽履 泽生兑 火泽睽 雷泽归妹 风泽中孚 水泽节 山泽损 地泽临 离日 天火同人 泽火革 火日离 雷火丰 风火家人 水火既济 山火贲 地火明夷 震音 天雷无妄 泽雷随 火雷噬嗑 雷音震 风雷益 水雷屯 山雷颐 地雷复 巽动 天风姤 泽风大过 火风鼎 雷风恒 风动巽 水风井 山风蛊 地风升 坎月 天水讼 泽水困 火水未济 雷水解 风水涣 水月坎 山水蒙 地水师 艮静 天山遁 泽山咸 火山旅 雷山小过 风山渐 水山蹇 山静艮 地山谦 坤空 天地否 泽地萃 火地晋 雷地豫 风地观 水地比 山地剥 地空坤

  1. 周易序法 上下经卦名次序歌 乾坤屯蒙需讼师 比小畜兮履泰否 同人大有谦豫随 蛊临观兮噬嗑贲 剥复无妄大畜颐 大过坎离三十备 咸恒遁兮及大壮 晋与明夷家人睽 蹇解损益夬姤萃 升困井革鼎震继 艮渐归妹丰旅巽 兑涣节兮中孚至 小过既济兼未济 是为下经三十四

  2. 六十四卦换位速记法 是指调换上下卦的位置,上卦调为下卦,下卦调为上卦,产生一个新卦,称为原卦的换位卦。设置换位卦概念的主要意义是:1.速记64卦 。2.简单理解64卦的重叠。8个纯卦没有换位卦的,其余56是有换位卦的(56一半是28,28为原卦,其余28卦是换位卦)。请看下面的易经64卦的重叠与换位重叠情况:中间竖线上为8个纯卦,左侧竖线上的为设为原卦28个,右侧竖线上的为换位卦28,共计56卦。如何重叠的呢?乾为下卦,兑-离-震-巽-坎-艮-坤为上卦重叠后产生7个别卦。再换位重叠后产生7个卦。这两个7个卦互为换位卦。同理下推即可。掌握和理解易经64卦的重叠过程对记忆卦名是有益的。《易经64卦换位速记法》先记住8个纯卦卦象(乾兑离震巽坎艮坤),后记住一则28个卦,就可以推出另一则28个卦。 1、上下为天-乾卦 【万物之父】 43、天上有泽-夬卦 【猛追穷寇】10天下有泽-履卦 【礼仪规范】 14、天上有火-大有 【万物所归】13天下有火-同人 【分久必合】 34、天上有雷-大壮 【阳气大盛】25天下有雷-无妄 【无妄之灾】 9、天上有风–小畜 【原始积累】44天下有风-姤卦 【见微知著】 5、天上有水–需卦 【摄取营养】6-天下有水-讼卦 【生存竞争】 26、天上有山-大畜 【富甲天下】33天下有山-退卦 【急流勇退】 11、天上有地-泰卦 【阴阳和谐】12天下有地-否卦 【天地不通】

58、上下为泽-兑卦 【言谈喜悦】 38、泽上有火-睽卦 【分背异化】49、泽下火-革卦 【破除陈旧】 54、泽上有雷-归妹 【少女婚配】17、泽下雷-随卦 【从宜适变】 61、泽上有风-中孚 【如合符契】28、泽下风-大过 【过中不当】 60、泽上有水-节卦 【信约节止】47、泽下水-困卦 【身处逆境】 41、泽上有山-损卦 【锦上添花】31、泽下山-咸卦 【男女感应】 19、泽上有地-临卦 【力量增长】45、泽下地-萃卦 【众心聚合】

30、上下为火-离卦 【火炎向上】 55、火上有雷-丰卦 【羽毛丰满】21、火下雷-噬嗑 【刑狱啮咬】 37、火上有风-家人 【家庭秩序】50、火下风-鼎卦 【鼎立新风】 63、火上有水-既济 【圆满成功】64、火下水-未济 【新的起点】 22、火上有山-贲卦 【绘事后素】56、火下山-旅卦 【平踪浪迹】 36、火上有地-明夷 【黑暗无光】35、火下有地-晋卦 【青天白日】

51、上下为雷-震卦 【雷震而起】 42、雷上有风-益卦 【雪中送炭】32、雷下有风-恒卦 【白头偕老】 3、雷上有水–屯卦 【万事起头难】40、雷下有水解卦 【解脱宽松】 27、雷上有山-頤卦 【颐养天和】62、雷下有山-小过 【挢抂过正】 24、雷上有地-复卦 【返初复始】16、雷下有地-豫卦 【心情怡悦】

57、 上下为风-巽卦 【风伏而入】 48、风上有水-井卦 【坚定不移】59、风下有水-涣卦 【坚冰消融】 18、风上有山-蛊卦 【整饬修治】53、风下有山-渐卦 【循序渐进】 46、风上有地-升卦 【积聚升进】20、风下有地-观卦 【蔚为大观】

29、 上下为水-坎卦 【水流就下】 4、水上有山–蒙卦 【蒙味蛮荒】39、水下有山-蹇卦 【前进之难】 7、水上有地–师卦 【聚伍纷战】 8、水下有地-比卦 【亲合相依】 52、上下为山-艮卦 【山止不动】 15、山上有地-谦卦 【三才之谦】23、山下有地-剥卦 【剥烂朽蚀】 2、 上下为地-坤卦 【万物之母】

5.理解各卦卦爻。 乾为天:虽无情,但纯正。 坤为地:多包容,以载物。 水雷屯:雨水屯集在雷层,等待时机,便会惊雷降雨。 山水蒙:坎为泉,山下出泉。泉水始流出山,则必将渐汇成江河,正如蒙稚渐启,又山下有险,因为有险停止不前,所以蒙昧不明。 另记:山中有雾(水)气萦绕,故有朦胧之象。 水天需:雨水顺应天道,适时而降。 天水讼:相争之口水犹如九天之水,故有讼。 地水师:地下之水默默地滋润大地万物,好似老师的迁移默化。 水地比:水在大地之上形成江河湖泊,此乃相亲相比和睦之象。 风天小畜:风只在天上吹,难积云成雨,气候不好不坏,收成一般,所以只能小有积蓄。 天泽履:君子(乾为君)处世为人,如行于沼泽之上,只有行事谨慎,遵循道义,才能履险如夷。 地天泰:乾下坤上,地气上升,乾气下降,阴阳二气一升一降,互相交合,顺畅通达,万物安泰祥和。 另记,人民大众(地)翻身做主(天),呈现民安民安乐泰之象。 天地否:天气上升,地气下降,天地之气不交,闭塞不通。 (否:闭塞,不好。) 另记,富在高高在上,贫在卑贱处下,贫富差距大,否态终会出现。 天火同人:天居高处,火势熊熊而上,喻指众人拾材火焰高,象征团结。 另记:君子天火如太阳,永远对万物一视同人(同仁)。 火天大有:太阳在天,普照大地,促万物生长,使万物大有。 地山谦:为高山隐藏于地中之象,象征高才美德隐于心中而不外露,是为谦。 雷地豫:雷惊于地,预示大地回春,万物欣欣向荣。(豫:欢喜,快乐,安乐,舒服,同“预”。) 泽雷随:震木在兑泽之下,木必随水飘荡,随着,顺也。 山风蛊: 山中内部虚空,起乱象之风,因此需救弊治乱、拨乱反正。 地泽临:地上泽下,地居高临下,润泽于四方,象征督导。(临:表示从上向下看,在高处朝向低处,到,来,遭遇,碰到等。) 风地观:风运行于地之上,周游观览,俯察万物。 火雷噬嗑:震雷下离火之上,为雷电交击之表象。雷电交击,就像咬合一样;雷有威慑力,电能放光明,古代帝王效法这一现象,明其刑法,正其法令。 另记:上有火山喷发,下有地震四方,大自然遵循天道的法则而得以长久运行,人类更应明其刑法,正其法令,才能长足发展。 山火贲:山下火焰把山上草木万物照得通明,如同披彩,这就叫装饰。(贲:装饰。) 山地剥:山附于地,喻山石崩而剥落于地面上。另解:高山受侵蚀风化,逐渐接近地表之象,因而象征剥落 地雷复:雷在地中,阳气微弱的活动之表象,象征复归。 天雷无妄:天下有雷动之象,象征着天用雷的威势警戒万物,并赋予万物不妄动妄求的本性。 山天大畜:山天合象,为天被包含在山里之象,象征大量的蓄养积聚,意为积累。 山雷颐:震雷在艮上下,引申为咀嚼(震)食物而止(艮)于张口之状,故象征颐养之意。 泽风大过:巽木处兑泽之下,表有大过错,为泽水淹没树木(水覆舟)之象。 水为坎:坎为水、为险,两坎相重,险上加险,险阻重重。 火为离:内空外明,离为火、为明、太阳反复升落,运行不息,柔顺为心。 泽山咸:上卦为兑,兑为泽,山上有泽,山气水息,互相感应。(咸象征感应。) 另记:山上有湖泽之水,其味为咸。 雷风恒:巽风下震雷上,为风雷交加之表象,二者相辅相成而不停地活动的形象,因而象征常久。 另解:震巽木同为一气,一刚一柔,刚柔并济,相互助长,能常久,故为恒。 天山遁:天下有山,山高天退,山逼近天,天步步后退。阴长阳消,小人得势,君子退隐,明哲保身,伺机拯救天下。 雷天大壮:雷声响亮,光明天际,为正大光明,阳气盛壮,万物生长之象。 火地晋:日出地面,普照大地,象征着前进和昌盛。 地火明夷:日没入地,光明受损,前途不明,环境困难,宜遵时养晦,坚守正道,外愚内慧,韬光养晦。 (明夷:卦名。夷,通痍,为伤。离为日为明。明夷即光明损伤。此指日蚀。) 风火家人:风吹火之象,助火之威,喻家人同心协力,发展事业。 火泽睽:离火上兑泽下,两者接近则水火不容而相违,又二女同居不得正之象。(睽:相违,矛盾,读音同“葵”。) 水山蹇:高山积水,难以行进,象征艰难险阻,困难重重。(蹇:艰难,读音同“剪”。) 雷水解:惊雷阵阵,春雨潇潇,万物从寒冷冰冻之中舒解,呈现蓬勃生机之象。 山泽损:上山下泽,大泽浸蚀山根,象征着减损。 风雷益:风雷激荡,风顺雷声,雷助风势,雷风相互增益威势。 (记忆诀窍:和雷风恒相比,风雷益,先有风,主导为风,有助益。雷风恒,先有雷,有威严,阳刚,故能恒) 泽天夬:湖水蒸发上天,即将化雨倾注而下之表象,以此象征决断。 (夬:guài,果决也,刚决柔也。) 另记:兑上乾下,有湖泽之水涨上天之象,洪水滔天,必冲决堤防,所以卦名曰夬。 天风姤:天下有风,吹遍大地,阴阳交合,万物茂盛。(姤:gòu ,相遇也,柔遇刚也) 另解:喻君王在上,颁教命于下,风行天下,洽合人意,治道大行,所以卦名曰姤 另记:天下有风,是风行天下,无处不在,能与万物相遇。 泽地萃:湖泽在地上,四面八方的细流都源源不断汇入湖中之表象,象征着聚合水聚于泥土中,滋养草木,生长茂盛。 另记:湖泽泛滥淹没大地,应团结一心,共度难关。 地风升:地中生木之象,树木由矮小到高大,象征上升。 泽水困:泽中无水,而水在泽下,困之象也。 水风井:水分沿着树身向上运行,直达树冠,为井水源源不断地被汲引到地面之表象,因此象征无穷。 另解:井水为暗流,像风的去向一样,想不到它会通往何方。引喻为具有不可预见的人脉和资源,也会多出奇人异事。 泽火革:为泽中有火之表象。火旺水干,水大火熄。二者相生亦相克,必然出现变革。 火风鼎:木之上有离火,为燃炊烹饪之象,鼎有去旧立新,改过迁善之意。 震为雷:重雷发向,千里传声,有惊无险之象,亦有变动,当警惕之意。 艮为山:两山相阻,宜止不宜进,阻塞之象。 风山渐:山上有风,木植山上,不断生长,山也随着增高,比喻循序渐进。 雷泽归妹:震长男在上,兑少女在下,女必归从,归即是出嫁。 雷火丰:电闪雷鸣,成就巨大,如日中天,喻达到顶峰。 另记:用锣鼓(震为鼓),火把来庆祝大丰收。 火山旅:山中火势匆匆蔓延,如同途中行旅之人匆匆赶路。 另记:火烧山野,所到之处,流离失所,只得行旅寄宿他乡。 巽为风:风行起来无所不入之表象,由此表示顺从。 兑为泽:泽水相互流通滋润,彼此受益,因而又象征喜悦。 风水涣:风行水上之表象,流动四散,象征涣散、离散。 水泽节:泽上有水,喻蓄积不使水流失,一旦泽满而有水溢出,致使水位过高,则成泛滥,故应堤防以节制。 风泽中孚:泽上有风,风吹动着泽水之表象,比喻没有诚信之德施及不到的地方,说明极为诚信。(孚:信服,信任。中孚象征诚信。) 雷山小过:惊雷落于山,警示人们,做事应把握尺度,不可好高骛远。(过:超过,越过。小过:行动有度。) 水火既济:为水在火上之表象,比喻用火煮食物,食物已熟,象征事情已经成功。(既:已经;济:成也。既济:事情已经成 功,但终将发生变故。) 火水未济:火上水下,火势难以压倒水势,救火大功未成,故称未济。(未济:未能成功。)

周易六十四卦·上经

1.乾为天 2.坤为地 3.水雷屯 4.山水蒙 5.水天需 6.天水讼 7.地水师 8.水地比 9.风天小畜 10.天泽履 11.地天泰 12.天地否 13.天火同人 14.火天大有 15.地山谦 16.雷地豫 17.泽雷随 18.山风蛊 19.地泽临 20.风地观 21.火雷噬嗑 22.山火贲 23.山地剥 24.地雷复 25.天雷无妄 26.山天大畜 27.山雷颐 28.泽风大过 29.坎为水 30.离为火

周易六十四卦·下经

31.泽山咸 32.雷风恒 33.天山遯 34.雷天大壮 35.火地晋 36.地火明夷 37.风火家人 38.火泽睽 39.水山蹇 40.雷水解 41.山泽损 42.风雷益 43.泽天夬 44.天风姤 45.泽地萃 46.地风升 47.泽水困 48.水风井 49.泽火革 50.火风鼎 51.震为雷 52.艮为山 53.风山渐 54.雷泽归妹 55.雷火丰 56.火山旅 57.巽为风 58.兑为泽 59.风水涣 60.水泽节 61.风泽中孚 62.雷山小过 63.水火既济 64.火水未济

六十四卦简记歌 包罗万象乾为天 一女五夫天风垢 退避隐藏天山遁 否定闭塞天地否 否极泰来见光明 参观旅游风地观 剥官降职山地剥 加官晋级火地晋 火天大有象富有 重重险阻坎为水 源远流长也通达 中间实在有诚信 哪种取向灵活定 节制节约水泽节 屯积有生水雷屯 水火既济成功象 尚未成功也是象 改革创新泽火革 丰收喜庆雷火丰 地火明夷流血伤 行军打仗地水师 两山重叠艮为山 高耸入云定受阻 装饰打扮山火贲 山天大蓄时间长 积蓄停止两重象 漏洞损失山泽损 分散别离火泽睽 实践履行天泽履 风泽中孚有诚信 船在水上顺利行 循序渐进凤山渐 雷惊百里震为雷 喜悦安乐雷地豫 解除困境雷水解 持之以恒雷风恒 晋职晋级地风升 占人疾病入土象 遵纪守法水风井 泽风大过有喜悦 做事过头有转折 非常行动大变化 随从顺从泽雷随 无孔不入巽为风 风天小蓄小积蓄 小的阻碍终亨通 风火家人内部事 家庭伦理在其中 利益之象风雷益 风吹船动要顺利 天雷无妄莫妄动 但却如此不希望 火雷噬嗑象咀嚼 品味考察代刑罚 节食养身山雷颐 事必躬亲谋出路 败也坏也山风蛊 腐朽败落人心散 光明美丽离为火 分离离散不利婚 外出旅行火山旅 乐极生悲鸟焚巢 去故取新火凤鼎 隆重吉祥颁法律 火水未济未完成 充满希望待未来 蒙昧教育山水蒙 刚有打算发生像 破裂离散风水涣 住宅风水气不聚 官司诉讼天水讼 是非口舌要注意 天火同人同行人 二人分金命相连 生载万物坤为地 顺利亨通兴旺象 归来反复地雷复 迫临临下地泽临 上级看望是考察 紧急情况乐观行 亨通泰平地天泰 雷天大壮是昌盛 决断决裂泽天夬 等待时机水天需 需要需求跨险阻 相亲相附水地比 水行地上和平象 少女高歌兑为泽 高兴喜悦成功象 泽润万物泽中水 穷困拘留泽水困 聚集相约泽地萃 少男少女泽山咸 爱情专一利婚嫁 前途艰难水山蹇 绊住难行另谋化 伟人谦虚地山谦 雷山小过小过错 宜下勿上小过渡 雷泽归妹测婚姻 长男少女今实行 保持现状外出凶 卦名卦象是参考 抓住用神是关键 生搬硬套学不好 生克五行是法则 用运大法综合断 吉凶自现您技高

阅读全文 »

record

发表于 2005-09-05 | 分类于 record

八识

在佛教的唯识学派中,心识被划分为“八识”,每个识都有不同的功能和作用。这些识包括了感官识、认知和自我意识的层面,同时也涉及到更深层次的潜在意识。你提到的五个感官识、第六识(意识)和末那识以及阿赖耶识,它们共同构成了佛教关于心识的完整系统。

阅读全文 »

proxy

发表于 2005-09-05 | 分类于 proxy

1. dtunnel

服务端执行:
dtunnel_lite -service 0.0.0.0:服务端口 -auth 密码 -action "" -dnscache 10

客户端-socks5 代理模式:
dtunnel_lite -service 服务器地址:端口 -local :本地端口 -auth 密码 -encrypt -action socks5

客户端-端口映射模式:
dtunnel_lite -service 服务器地址:端口 -local :本地端口 -auth 密码 -encrypt -action 127.0.0.1:3306 -v

参数说明 v1.20 所有参数前面加了c/s字样,用于描述参数的可使用范围 c表示只能客户端使用,s只能服务端 cs代表两端必须一致 c|s代表两端都可以用,可不保证一致,具体用法参考–help

-action 指明通道行为,默认socks5(socks5代理服务),可设置ip:port,作为端口转发用,客户端可指定该参数,当服务端指定参数时会强制采用服务端策略, 指定参数route将开启透明代理模式,windows版本不支持该模式,该模式下请自行设置用户的DNS和网关,将需要的tcp连接通过iptables转发到-local端口即可 -auth 用于简单的登录验证,两端不一致时客户端会被断开 -debug 调试输出,需要和-v一起使用 -dnscache (有加速效果)当socks5(socks5_smart)模式时有效,指定dns缓存时间,默认0,单位分钟,socks5_smart模式下近端也可指定该参数,因为会有请求通过近端解析 -encrypt 客户端指定,表示该通道是否启用消息加密 -local 通道连通时本地监听端口,格式ip:port -pipe (有加速效果)通道个数,默认1 -r 反向模式,true时客户端触发action行为,服务端监听local指定的端口 -service 通道服务端地址,客户端指定时为连接地址,服务端指定时为监听地址,用于通道打通,双方地址一致,一般为服务端ip:port -tcp tcp模式,默认false,使用udp模式在网络差的环境下效率更高,cpu占用也更高(待优化),两端需一致 -timeout 客户端执行连接超时时间,tcp模式关闭模式时有效 -v 更多输出信息 -version 版本信息 -src 记录来源ip和访问目的ip

-xor 两端须一致,用于udp模式握手加密,内容为任意字符串(主要用于隐藏通讯协议特征,建议设置) -session_timeout 指定连接会话在不活跃状态时多久(秒)后被销毁,防止被动连接的情况下产生僵尸socket,默认0不自动销毁 -kcp 可设置kcp协议相关参数,高级用户使用,格式参考-kcp nodelay:1;snd=100;


可直接跳到文章最下端的参数详解部分阅读 ————————————

使用: 服务端开启 dtunnel_lite -service 127.0.0.1:1234 -v -xor 1213343 监听本地1234的udp服务端口,action为空表示客户端连接时不限制action行为,如果服务端想限制客户端行为,可强制设置action内容 xor为用户指定字符串用于握手加密,可不指定

之后,客户端可连接服务端进行使用

  1. socks5代理 dtunnel_lite -service 127.0.0.1:1234 -v -action socks5 -encrypt -xor 1213343 -local :8787 -pipe 5 -session_timeout 30 客户端连接本地1234的udp端口,监听本地的8787端口作为socks5服务,传输内容加密,默认建立5条固定通道(防止大数据传输或者网络不好时单条通道拥堵) web请求中不可避免的会有一些非正常关闭的tcp连接,加session_timeout可以清除这些无用连接,防止描述符泄露
  2. 开启透明代理 dtunnel_lite -service 127.0.0.1:1234 -v -action route -encrypt -xor 1213343 -local :8787 -pipe 5 参数类似1,action设置route,并设置iptables将所有需要转发的tcp连接转发至8787端口
  3. 端口映射 dtunnel_lite -service 127.0.0.1:1234 -v -action 127.0.0.1:22 -encrypt -xor 1213343 -local :8787 -pipe 5 执行后,服务端22端口将被映射至本地8787端口
  4. 反向映射 dtunnel_lite -service 127.0.0.1:1234 -v -action 127.0.0.1:80 -encrypt -xor 1213343 -local :8080 -pipe 5 -r 执行后,本地80端口,被映射到远端8080端口
  5. udp端口映射 dtunnel_lite -service 127.0.0.1:1234 -v -action 127.0.0.1:80 -encrypt -xor 1213343 -local udp:127.0.0.1:8080 -pipe 5 -r 执行后,本地udp的80端口,被映射到远端udp:127.0.0.1:8080端口
  6. socks5智能代理(1.1版本开始支持 socks5_smart) -action socks5 -smartN 3(该参数>0表示开启smart模式),程序自动根据请求速度决定url是否需要走远端代理,开启次模式后,浏览器访问正常网站即走本地流量,访问不通的网站自动走远端流量(-smartN决定这个决策的速度, 默认是3,即同一个url请求最少3次以上,程序才会触发此决策,决策触发前,程序会同时消耗近端和远端流量用于速率对比。对比过程中,远端socks5的协议头交换阶段会被近端加速,所以这个阶段访问需要代理的 网站会比单纯的socks5模式更快一些,因此-smartN设置成较大值,会促使程序消耗更多的本地流量,使需要代理的网站请求更快,策略会保持5分钟生效,期间有相同url的访问有效期顺延).浏览器采用该模式上网,理论上会比chinadns+ip规则路由+透明代理模式更准确有效
  7. route智能代理(1.1版本开始支持 route_smart) -action route -smartN 3 参数解释参考6.可以替代chinadns + ip规则路由 + 透明代理模式中的后两步,没有第三方dns服务支持的话无法解决dns污染问题,若需要避免该问题请用方式6.

新手入门指南:

dtunnel_lite 分为近端和远端 dtunnel_lite 最基本的三个参数 -service, -local, -action 其中-service 是两端必须指定的,指向地址(ip:port)需要一致,远端监听,近端连接,远端可选择省略ip(例如-action :8008), 省略ip时会监听系统所有网卡上的指定端口,但是连接端必须指定对应ip连接 如何区分远端近端? 带-local参数的即为近端,不带即为远端(服务端) -local 代表近端连接远端成功后,本地需要监听什么端口,比如做端口映射,-local :8888代表本地监听8888端口,你连接本地的8888端口即连接到了被映射的远端端口了 -action 是代表近端连接远端后-local端口具体的行为,这个行为可以是 端口映射(tcp或者udp),socks5代理(或者socks5_smart模式), route(route_smart)模式,该参数一般由近端指定,远端指定的话,会强制近端使用远端 的策略,这个参数的默认值客户端为socks5,服务端为空

其他参数请根据需要添加


参数详解 ————————————

还是以本地1234服务端口为例 最基本用法,开启socks5代理,代理端口8787 s: ./dtunnel_lite -service 127.0.0.1:1234 c: ./dtunnel_lite -service 127.0.0.1:1234 -local :8787

开启端口映射,远端(这里的远端还是本机) 22 端口映射到端口8787 s: ./dtunnel_lite -service 127.0.0.1:1234 c: ./dtunnel_lite -service 127.0.0.1:1234 -local :8787 -action 127.0.0.1:22

服务端限制只能允许socks5 s: ./dtunnel_lite -service 127.0.0.1:1234 -action socks5 c: ./dtunnel_lite -service 127.0.0.1:1234 -local :8787 -action 127.0.0.1:22 这条c的行为会被强制改为socks5代理

下面以上面的socks5为例,说一下其他参数用法 双端异或加密 s: ./dtunnel_lite -service 127.0.0.1:1234 -xor 3333 c: ./dtunnel_lite -service 127.0.0.1:1234 -local :8787 -xor 3333 xor会把包含握手阶段的所有数据进行异或运算,隐藏特征码

-encrypt参数加密 s: ./dtunnel_lite -service 127.0.0.1:1234 -xor 3333 c: ./dtunnel_lite -service 127.0.0.1:1234 -local :8787 -xor 3333 -encrypt 传输数据时使用aes加解密,同时也包含了异或运算(狗洞没有做数据校验,以后版本可能会支持)

-auth 进行连接认证(其实还在考虑要不要把这个参数去掉,因为目前来说和xor能达到的效果是比较类似的,虽然意义不一样,-xor不一致的时候握手失败,而-auth不一致是逻辑上的登录失败) s: ./dtunnel_lite -service 127.0.0.1:1234 -xor 3333 -auth xxx c: ./dtunnel_lite -service 127.0.0.1:1234 -local :8787 -xor 3333 -encrypt -auth xxx

-timeout添加握手超时检查(同样指定时长内会话连接没有响应也会断开,会话本身有ping机制,没有数据传输也会保持响应) s: ./dtunnel_lite -service 127.0.0.1:1234 -xor 3333 -auth xxx c: ./dtunnel_lite -service 127.0.0.1:1234 -local :8787 -xor 3333 -encrypt -auth xxx -timeout 10

-session_timeout 用于处理某些连到客户端的僵尸连接,如果我本身做了端口映射,需要和本地端口保持长连接的,那么这个参数没有必要,但是如果是socks5这种,本身没有保持长连接一直不断线的必要,可能浏览器或者其他程序连到本地监听的端口后因为某些异常导致tcp连接无法正常断开,那么可能会有僵尸连接存在,设了这个参数,当连接时长超过这个时间没有数据交互时,连接会断开(注意,是把本地监听的8787端口连上来的客户端断开,而不是c/s之间的连接断开) s: ./dtunnel_lite -service 127.0.0.1:1234 -xor 3333 -auth xxx c: ./dtunnel_lite -service 127.0.0.1:1234 -local :8787 -xor 3333 -encrypt -auth xxx -timeout 10 -session_timeout 60

-smartN n开启smart模式, n=0的时候关闭 这个数值是个经验值,表示对应的网址请求n次后会根据请求速度对比产生决策,到底之后是要走c端代理,还是s端代理,c端代理的话,就和本地直接访问一样了,s端代理就是默认的代理方式 如果你想长期使用socks5代理,又不想不停的添加过滤规则决定哪些需要代理哪些不需要代理的话,这个模式是你最好的选择 s: ./dtunnel_lite -service 127.0.0.1:1234 -xor 3333 -auth xxx c: ./dtunnel_lite -service 127.0.0.1:1234 -local :8787 -xor 3333 -encrypt -auth xxx -timeout 10 -session_timeout 60 -smartN 5

-dnscache n缓存域名,socks5模式下,服务端加上这个参数可以起到加速的作用 非smart模式的socks5代理(默认就是) s: ./dtunnel_lite -service 127.0.0.1:1234 -xor 3333 -auth xxx -dnscache 10 c: ./dtunnel_lite -service 127.0.0.1:1234 -local :8787 -xor 3333 -encrypt -auth xxx -timeout 10 -session_timeout 60 smart模式的socks5代理,客户端也可以加这个参数,因为会有请求直接通过客户端来访问 s: ./dtunnel_lite -service 127.0.0.1:1234 -xor 3333 -auth xxx -dnscache 10 c: ./dtunnel_lite -service 127.0.0.1:1234 -local :8787 -xor 3333 -encrypt -auth xxx -timeout 10 -session_timeout 60 -smartN 5 -dnscache 10

-action route 路由模式,这个是一般和iptables配合使用,一般将网关的tcp请求转发过来,同样支持smart模式,不举例说明了

另外,狗洞的socks5针对socks5协议头和浏览器端的交互单独做了优化,协议头部分是c端直接和浏览器交互的,避免和s端来回通讯影响速度,所以直接用狗洞 开socks5服务,和通过狗洞映射端口的方式加速远端的其他socks5服务相比的话,理论上前者实现的方式是要更快的

v1.30 新增参数 -compress 开启数据压缩 c端使用, -tcp=false 模式下有效 -ds n1 -ps n2 ,开启前向纠错 c端使用, -tcp=false 模式下有效 -confusion 数据混淆 c端使用,会添加扰乱数据隐藏流量特征,同时也会降低有效数据的传输率,仅做实验性质 , -tcp=false 模式下有效

radmin s: ./dtunnel_lite -tcp -service 0.0.0.0:1234 -v -action 127.0.0.1:3389 c: ./dtunnel_lite -tcp -service 127.0.0.1:1234 -v -action 127.0.0.1:3389 -local :3390 -pipe 5 -r

阅读全文 »
1 2
Brink Qiang

Brink Qiang

private. https://brinkqiang.github.io

212 日志
172 分类
RSS
© 2025 Brink Qiang