简单免费的文档中心—dokuWiki搭建指南

  categories:资料  author:

引言

如果说知识就是力量,那么知识库就是弹药库了。不管是一个技术型企业,还是一个热衷技术的个人,如果能有一个能够方便记录、保存以及检索的知识库,想必是极好的。如果恰好你也并没有充足的预算去购买相应的商用解决方案,那么这篇文章兴许对你有点帮助。

Dokuwiki作为一个wiki引擎,软件主体十分小巧但功能非常强大而又灵活。它语法简单,为易写性、易读性提供保障。它提供权限管理和安全策略,能够保证信息库的安全性。它又是开源的,这给熟悉PHP的开发者留下了无限的可能。它还有一个十分活跃的社区论坛,在那里能找到很多关于安装和使用的有用信息,另外,非常丰富的扩展插件也诞生于此。如果有兴趣,你也可以注册一个账号,在社区论坛里提出需求和解决别人提出的需求。
如果提供一个中小团队或者个人使用,那么Dokuwiki非常合适。

最近因为项目需要,团队需要一个轻量级的文档中心。调研了一下,方案有以下几种:

  • Confluence:最有名,最强大,最通用,最老牌,Atlassian,公司级的wiki就是这货。缺点是团队超过10人用时需要付费,而且价格不菲。:( 忍痛Pass
  • Jekyll:著名开源博客工具,大有取代WordPress的趋势,部署相对简单,插件强大,完全免费。缺点是貌似只能够通过和Git交互来新建和更新文章,没有自带的编辑页面。
  • Dokuwiki:简单,轻量,支持PHP即可使用,插件丰富,权限控制强大,完全免费,有编辑页面,不懂代码也可以使用。缺点是缺乏对Markdown的原生支持(即使装了插件,也无法完全解析Markdown)

因此对比一番,果断选择Dokuwiki作为文档中心。

安装

首先去官网下载页面下载最新版本的Dokuwiki,根据自己需要动态打包,不需要安装:

下载页面

开启web容器

笔者环境是Mac,因此下文以mac为例。其它系统参考Dokuwiki的install页面.

Mac系统由于自带了apache,所以打开即可。先输入

sudo apachectl -v

查看系统apache版本,确认apache确实存在:

apache

确定apache确实存在之后,启动apache服务器:

sudo apachectl start

怎样验证apache服务器确实启动了呢?在浏览器输入“http://localhost”,如果发现“It Works!”的字眼,则说明系统成功启动。

apache index page

如何修改服务端口? 打开Finder,进入/etc/apache2/httpd.conf目录(cmd+Shift+G),编辑httpd.conf文件,找到

Listen 80

一行,改成你想要的端口即可。

至此,web 容器启动完成。

部署

Mac下Apach的DocumentRoot目录是

阅读全文

为什么一个锐角确定了三角函数值就确定了

  categories:资料  author:

为什么一个锐角确定了,三角函数值就确定了,今天老师告诉你答案

为什么一个锐角确定了,三角函数值就确定了,今天老师告诉你答案

很多同学在学数学的时候基础知识掌握不扎实,这时候家长采取的措施是打骂或让其回去看书的措施,那老师和家长有没有分析孩子们掌握不扎实的原因,分析原因才是最主要的,其实有很大一部分原因是孩子对基础知识不理解,如果整天是死记硬背得到的知识,他们很快就会忘记,并且他们也不敢兴趣,所以一定要把基础知识的原理搞明白,自然而然孩子的基础知识就很快记住了,并且基础知识也扎实了,他们也乐意学数学。今天老师就来给你们讲一个基础知识的原理:为什么一个锐角确定了,三角函数值就确定了,希望今天老师总结的知识对你有用。

首先我们来看一下下面的几个实例,得出原理。

通过上面的实例,我们知道当一个锐角是30度或45度时,它的对边比斜边一定是一个定值。那么对于锐角A的每一个确定的值,其对边与斜边的比值也是惟一确定的吗?接下来我们继续来研究。

通过上图中的研究我们知道:在直角三角形中,当锐角A的度数一定时,不管三角形的大小如何,∠A的对边与斜边的比也是一个固定值.在这里我们还引入了一个新的定义:正弦。在Rt△ABC中 ∠C=90 ,我们把锐角A的对边与斜边的比叫做∠ A的正弦,记作sinA。

刚才我们研究了对边比斜边,那接下来我们继续研究在直角三角形ABC中,∠C=90°,当∠A确定时,∠A的对边与斜边的比随之确定,此时,邻边与斜边的比及对边与邻边的比是否随之确定呢?为什么?请看下面的讲解:

通过上面的讲解,我们知道:在Rt△ABC中,在直角三角形中,当锐角A的度数一定时,不管三角形的大小如何, ∠A的∠A的邻边与斜边的比、 ∠A的对边与邻边的比是一个固定值.同时接下来,我们要引入新的两个定义:正切和余弦。

通过上面的讲解大家明白了为什么一个锐角确定了,三角函数值就确定了吧!其实一般的结论是根据相似得到的。请同学们认真看上面的讲解,把这个基础点理解,这对以后高中我们继续研究三角函数有着很重要的作用,讲到这里同学们可以课下做一下笔记,把证明三角函数的确定性整理一下,那这个知识点就明白了。最后希望老师今天分享的这个知识点对爱研究的你有所帮助。

 

来源: http://baijiahao.baidu.com/s?id=1640264048194315416

阅读全文

边边边定理证明

  categories:资料  author:

边边边定理

本词条由“科普中国”科学百科词条编写与应用工作项目 审核 。
边边边定理,简称SSS,是平面几何中的重要定理之一。边边边定理的内容是:有三边对应相等的两个三角形全等。它用于证明两个三角形全等。该定理最早由欧几里得证明。
此外,全等三角形判定定理还有 “边角边”(SAS)、 “角边角”(ASA)、“角角边”(AAS)等。
中文名
边边边定理
外文名
Theorem of edges and edges
作    用
证明两个三角形全等
解    释
有三边对应相等的两个三角形全等
简    称
SSS
证明者
欧几里德

定义

边边边定理,简称SSS,是平面几何中的重要定理之一。边边边定理的内容是:有三边对应相等的两个三角形全等。它用于证明两个三角形全等。该定理最早由欧几里得证明。
《义务教育数学课程标准》(2011 版)将判定三角形全等中的“边边边”列为基本事实,即作为证明推理的出发点,并不要求证明。同时,为了帮助学生发现并理解这条基本事实的合理性,现行教材大都沿袭传统做法,即通过尺规作图,根据已知三边的长度作出一个三角形,再将作出的三角形与原三角形放在一起,看是否重合来得到“边边边”的合理性。以上做法是实验几何的方法,并没有证明“边边边”的成立。

证明方法

编辑

欧几里得的《几何原本》,其中命题 8 证明了三边分别相等的两个三角形,则夹在等边中间的角也相等。书中采用的是反证法,并且借助书中另外一条定理(即命题 7)来完成证明。有了这条定理做保证,就可以继续借助“边角边”完成“边边边”的证明。

方法1

设:在三角形ABC和三角形DEF中,AB等于DE,AC等于DF,即AB是

DE的对应边,AC是DF的对应边。BC等于EF。

阅读全文

位似

  categories:资料  author:

位似

把幻灯片上的图形放大到屏幕上,形成的新图形和原图形就是典型的位似图形。

两个多边形不仅相似,而且对应顶点的连线相交于一点,并且对应边互相平行或位于同一直线上,像这样的两个图形叫做位似图形(homothetic figures),这个交点叫做位似中心,这时的相似比又称为位似比。 [1]
有必要声明,位似图形的标准定义应是:如果两个图形不仅是相似图形,且对应点连线相交于一点,对应线段相互平行,那么这样的两个图形叫做位似图形,位似图形对应点连线的交点是位似中心。

性质

位似图形的任意一对对应点与位似中心在同一直线上,它们到位似中心的距离之比等于相似比。

1.位似图形对应线段的比等于相似比。

2.位似图形的对应角都相等。
3.位似图形对应点连线的交点是位似中心。
4.位似图形面积的比等于相似比的平方。
5.位似图形高、周长的比都等于相似比。
6.位似图形对应边互相平行或在同一直线上。

作用

利用位似可以将一个图形任意放大或缩小。
位似中心的落点
位似图形的中心可以在任意的一点,不过位似图形也会随着位似中心的位变而位变。
根据一个位似中心可以作两个关于已知图形一定位似比的位似图形,这两个图形分布在位似中心的两侧,并且关于位似中心对称。
作图步骤 位似比,即位似图形的相似比,指的是要求画的新图形与参照的原图形的相似比
①首先确定位似中心,位似中心的位置可随意选择;
②确定原图形的关键点,如四边形有四个关键点,即它的四个顶点;
③确定位似比,根据位似比的取值,可以判断是将一个图形放大还是缩小;
④符合要求的图形不惟一,因为所作的图形与所确定的位似中心的位置有关,并且同一个位似中心的两侧各有一个符合要求的图形,最好做两个。
位似变换 把一个几何图形变换成与之位似的图形,叫做位似变换。物理中的透镜成像就是一种位似变换,位似中心为光心. 位似变换应用极为广泛,特别是可以证明三点共线等问题.

———————————–
1 位似图形
每幅图的两个 多边形 不仅相似,而且对应顶点的连线相交于一点,像这样的两个图形叫做位似图形(homothetic figures),这点叫做位似中心.

这时我们说,这两个图形关于这个点位似.

2 位似图形的性质


3 位似中心… 阅读全文

最全三角函数公式推导

  categories:资料  author:

零、写在前面

这只是闲着没事随便写着玩的,大家随便看看就行。

一、基本定义

设角[公式]的终边与单位圆交于点[公式],则有

[公式],[公式]

[公式],[公式]

[公式],[公式]

二、同角三角函数基本关系

由上边的式子可以直接得出以下三个关系式(倒数关系):

[公式]
[公式]
[公式]
还可以得出如下商的关系:

[公式][公式]
结合勾股定理,我们还可以得到下述平方关系:

[公式]
这些关系式很简单,就不推导了。

三、特殊值

1

当这篇文章读完之后,你一定可以推导出上表中任何一个值。

四、诱导公式

我不推荐大家记这个表

而是希望大家先熟悉一下最基本的三个三角函数(sin、cos和tan)的性质,然后再讨论遇到类似问题如何最快速地推导。

  • 正弦函数是奇函数,最小正周期为[公式],其导函数为余弦函数;
  • 余弦函数是偶函数,最小正周期为[公式],其导函数为正弦函数的相反数;
  • 正切函数是奇函数,最小正周期为[公式].

诱导公式的目的是什么呢?就是将[公式][公式]的整数倍去掉,仅保留[公式].因此我们可以按照上述性质一步步地化简:

  1. 按照其奇偶性,将[公式]变为负值;
  2. 根据正弦/余弦函数的周期性,将[公式]的整数倍全部去掉。若此时被加数为负,则再加上[公式]
  3. 若被加的数绝对值仍不小于[公式],就将其绝对值直接减去[公式],然后取负号;
  4. 利用公式[公式][公式]得出结果。
阅读全文

弧度是怎么来的?为何要用弧度?起源是什么

  categories:资料  author:

弧度是怎么来的?为何要用弧度?起源是什么?

角度

谈弧度,就必须先谈下角度,如果世界上只有弧度,没有角度,我相信大家也就不会疑惑为什么会有弧度制了。

角度为什么出现?

角度的出现,是源于对圆周运动的观察

1

这个世界上最大最显眼的圆周运动就是太阳,就算我们现代人知道地心说是错误的,可是以我们的尺度来说,抬头还是观察到太阳在做圆周运动。

作为观察者,我们也非常自然的,以我们为中心,开始计算太阳相对我们的移动,这就开始出现了角度。

圆周为什么是360°?

地球围绕太阳公转,而遥远的十二星座仿佛固定在圆柱形天幕上:

2

地球上的我们就像看走马灯一样,随着地球的公转,在特定的时间看到特定的星座。古人发现了这个规律,并且以星座为参照物,近似观察出循环周期为360天,也就是一年。

因此,天就被等分成了360份,也就是圆被等分成了360份。虽然后来古人慢慢发现了一年实际上是365天,但是因为360度已经成为习惯,并且非常好计算,所以就被保留了下来。

度数是圆周的占比

3

弧度

角度似乎已经足够描述圆周运动了,为什么要出现弧度?是来给世界添乱的吗?

弧度为什么出现?

弧度的出现,刚开始不过是个数学游戏。弧度=弧长/半径,对于相同的角度这个比值保持不变,所以可以看作角度的另一种表现形式。(其实“弦长/半径”也是定值,为啥不选这个作为弧度呢?可以想想。)

5

弧度有什么现实意义?

弧度是从圆周运动进行者的角度来看待圆周运动。

之前说过,古人的世界观是天圆地方,人们的旅行都被视为直线运动。欧式几何里面的直线笔直的延伸到无穷远处。

可是,事实是,地球是圆的,随着技术的发展,大航海时代的来临,大家越来越认识到这一点。传统意义上的直线,在地球表面都不复存在,必须重新定义直线的含义。

弧度也是在这样的环境下开始发扬光大:

6

知道了移动的角度,也就知道了经纬度,就可以通过地图进行导航,而利用弧度,大大简化了这一过程。

“海里”这个航海单位也是弧度在大航海时代的产物。

“海里”传统上定义为子午线1角分的长度。它可从航海图中,以子午线上的纬度的改变来量度。—-维基百科

7

弧度可以把圆周运动转为直线运动

9

这种转换有了之后,就可以很方便的测量汽车的直线速度了。汽车在车胎附近安装一个传感器,测出车胎的转速(比如10弧度/秒),乘以半径(比如1米),就得到了汽车的直线速度(这里就是10米/秒)。有的出租车换了更小直径的轮胎而不修改行车电脑里面的轮胎半径,就可以轻松的“偷里程”。所以,学习多么的重要啊!

弧度帮助理解重要极限

[公式] ,这是个很重要的极限,考试也会经常用到,但是他的几何意义是什么呢?

10

11

在现代数学中,弧度是最基本的概念

弧度使得角度和实数统一在了一起。对于 [公式] 这个函数而言,如果 [公式] 使用角度,就很难去理解这个方程,一边的单位是度,一边是无单位的实数。而使用弧度可以很好的解决这一问题,使得 [公式] 和 [公式] 都是无单位的数。

弧度开启了三角函数的大门。欧拉在他的著作《无穷小分析概论》就提出了弧度,并且作出了三角函数线(这也是非常有趣的概念,在这里就不展开了),通过弧度和三角函数线,第一次定义了三角函数!这也是欧拉在数学上的重大贡献之一。此时,三角分析才开始和函数这个有力的工具挂上钩。… 阅读全文

顶级程序员和普通程序员在思维模式上的5个区别!

  categories:资料  author:

《The Effective Engineer》的作者在写书的过程中,为了了解那些顶级程序员和普通程序员的区别,采访了很多硅谷顶级科技公司的顶尖软件工程师。他发现这些给世界带来巨大影响的的工程师们至少有以下5个共同的思维模式:

1.勇于去研究你不懂的代码

一般人都不愿意去研究自己不曾接触过的代码,很多人都没有尝试就放弃了。如果你经常去研究你没有接触过的代码,你就会越来越熟悉不同的代码结构和设计模式。现在人们很容易就接触到优秀的开源代码资源,你可以很方便的就下载下来做一些改动或者调试,去研究为什么代码可以这么写。

除了代码之外,很多人对于陌生的工作内容也会感到恐惧。每次换工作的时候,你可能都会遇到新公司的工作内容和以前工作的内容不一样的情况,以至于刚开始的时候工作效率没有以前那么高。很多人甚至觉得,他们是不是骗了面试官。

其实,大家都是在学习的过程中。在一个陌生的领域,没有人从一开始就是大神。如果你想变得越来越好,无论是写代码,与人沟通或者其它的技能,都是需要投入时间去学习的。

2.精通代码调试(debug)

很多人在写代码的过程中,经常会有的一个问题就是:为什么我写出来的代码不能运行?为什么运行的结果不是我想要的?

几乎所有的程序员写代码都不是一遍就能写好的。但是顶尖的程序员非常快的就明白自己代码的问题可能是什么。这是一个很重要的能力,但是偏偏学校里不教,面试的时候考官也不经常提及。

那么怎么去调试代码呢?其实核心就是以下几个方法:

  • 不妨先猜测一下到底发生了什么。
  • 假设你的猜测是对的,想想你的猜测会导致程序有什么结果。
  • 试着观察这些结果有没有异常的地方。
  • 如果你没有发现异样,那么说明你的猜测就是对的。
  • 如果你发现了异样,那么说明你的猜测是错的,接下来换一个猜测试试。

对于顶尖程序员来说,这个过程在脑海中就是电光火石的一瞬间。只要你解决的问题足够多,你做出来的猜测就会越准确。

至于如何发现异样?你就需要有一套自己的工具或者方法论了。最简单的就是在代码里输出日志来判断。但是这是比较笨的办法,你需要去接触一些高级的工具或者直接带有Debug功能的编辑器。

3.重视能够节约时间的工具

最近打败人类的AlphaGo每天可以进行上百万局的下棋训练,我们人类一万个小时的训练却需要10年之久。也就是说,电脑运行几分钟,可能就等于人类工作好几年。

曾经在Facebook担任技术总监的Bobby Johnson描述过,高效率的程序员都把时间花在制作工具上。

很多人也认为工具是很重要的,但是他们并没有花时间去制作、整合自己的工具。但是,Jonson团队最出色的员工耗费了他们1/3的时间在工具制作上,这些工具可以用来发布代码,监控系统,以及能让他们花更少的时间去做更多事情。

总之,不要花时间去做机器可以代替你去做的事情。

4.优化你的迭代速度

假设你要花12秒钟去搜索某个函数是在哪里定义的。再假设你每天做这个动作60次,那么你每天就要花12分钟去搜索函数定义。

如果你用一个好一点的编辑器,每次找到函数定义只要2秒钟,那么你每天就会节约10分钟。每年你就可以节约40个小时。

如果你能找到3个这样的场景去优化一下,那么你每年可以节约一个月的时间。想想这一个月你可以做多少有意义的事情。

再假如你在调试一个App的bug的时候,改完一次代码都需要重启一下App,然后点击4、5次才能看到bug有没有改好。那么你是不是可以先花几分钟设置以下,让App一启动就转到显示Bug的页面呢?

千万不要小看这些琐碎的细节,改善它们的回报是巨大。

5.系统性的思考方式

当你在写代码的时候,你很容易就认为只要你按照需求实现了指定的功能,你的代码就写完了。但是这其实只是冰山一角。任何没有发布到生产环境的代码都不会产生任何价值。

如果想写出真正有影响力的代码,你需要从整个系统去理解你的工作:

  • 你的代码和其他人写的代码在功能上是什么关系?
  • 你有没有好好测试你的代码?或者其他人是否很容易测试你的代码?
  • 为了部署你的代码,线上生产环境的代码是不是需要改动?
  • 新的代码会不会影响到已经运行的代码?
  • 在新的功能下,你的目标用户的行为是不是你期望的?
  • 你的代码有没有产生商业上的影响?

这些问题都不是很容易就能回答的,但是在写代码的时候,你需要明白你的代码最后会不会得到最好的结果。… 阅读全文

Linux Socket 编程简介和实现

  categories:资料  author:

这篇文章主要介绍了Linux Socket 编程简介和实现,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

在 TCP/IP 协议中,”IP地址 + TCP或UDP端口号” 可以唯一标识网络通讯中的一个进程,”IP地址+端口号” 就称为 socket。本文以一个简单的 TCP 协议为例,介绍如何创建基于 TCP 协议的网络程序。

TCP 协议通讯流程

下图描述了 TCP 协议的通讯流程(此图来自互联网):

1

下图则描述 TCP 建立连接的过程(此图来自互联网):

服务器调用 socket()、bind()、listen() 函数完成初始化后,调用 accept() 阻塞等待,处于监听端口的状态,客户端调用 socket() 初始化后,调用 connect() 发出 SYN 段并阻塞等待服务器应答,服务器应答一个SYN-ACK 段,客户端收到后从 connect() 返回,同时应答一个 ACK 段,服务器收到后从 accept()

阅读全文

浅谈 Linux C语言 socket 网络编程

  categories:资料  author:

Linux C语言socket网络编程


注意:本文是按照 TCP、UDP的工作过程进行总结的

  1. TCP套 socket 接口编程:基于TCP的 客户/服务器(C/S)模式的工作过程如下:

服务器进程中的一些函数:


  1. socket():
    /*  函数所需头文件及其原型 */
    #include <sys/socket.h>
    int socket( int family, int type, int protocol);
    socketfd = soket(AF_INET, SOCK_STREAM, 0);
    /*  socketfd 作为返回值,可以记作描述符。
     若 socketfd 非负则表示成功,为负则表示失败。
     
阅读全文

mybatis中关于example类

  categories:资料  author:

这几天刚接触example,很多内容都是破碎的,写一篇文章加深理解。

一、什么是example类

mybatis-generator会为每个字段产生Criterion,为底层的mapper.xml创建动态sql。如果表的字段比较多,产生的example类会十分庞大。理论上通过example类可以构造你想到的任何筛选条件。在mybatis-generator中加以配置,配置数据表的生成操作就可以自动生成example了。具体配置可以参考 Mybatis-Generator的具体使用方法 – zorro的菜鸟笔记 – 博客园。

参考资料:http://www.mybatis.org/mybatis-dynamic-sql/docs/introduction.html

下面是mybatis自动生成example的使用。

二、了解example成员变量

 //作用:升序还是降序
 //参数格式:字段+空格+asc(desc)
 protected String orderByClause;  
 //作用:去除重复
 //true是选择不重复记录,false,反之
 protected boolean distinct;
 //自定义查询条件
 //Criteria的集合,集合中对象是由or连接
 protected List<Criteria> oredCriteria;
 //内部类Criteria包含一个Cretiron的集合,
 //每一个Criteria对象内包含的Cretiron之间是由  AND连接的
 public static class Criteria
阅读全文


快乐成长 每天进步一点点      京ICP备18032580号-1