原文来自:http://www.techweb.com.cn/internet/2011-05-23/1039015.shtml,只做摘要
看:
XML/HTML代码
- 使用微博或者开心网等SNS工具的人们需要注意了,你热烈关注的某个美女或许只是一具披着“画皮”僵尸。这个真相真是一个打击,尤其是那些对美好女性一直怀着热爱之心的男童鞋们——或许你今天还在和“它”互粉呢!
-
- 不相信吗?看看她们是不是都有以下几个特点:资料上,有一张美女头像,有一个琼瑶式昵称,职业信息一律很光鲜:“某某大学、某某银行、某某电视台……”;行为上,时不时发些小资情调的内容,偶尔爆一下自己是MM的料,很主动地去关注各种人来骗取回粉——当然这并不是全部,在没有被网络公关公司用来赢利之前,它跟真正的自然用户没有太多分别。TechWeb从网络公关公司手里拿到的微博营销账号,全部具备以上特点。
仔细想想,你是否有做过类似的事情呢。其实仔细想想这些都很正常,以前在SNS刚刚出来的时候,也会有很多人过来加你为好友,或者频繁的转帖以吸引人,然后在文末有一句央求之类的话,求哥哥姐姐关注我。
当然我是几乎都没有加过,但那些通过好友的好友再来加的,你就不知道是否确实认识而不一定就直接拒绝了。这样的用户起初的时候都很正常,几个月后,不是发几条淘宝购物信息,就是贴一点奇怪的文章,当然内容都是站外的。
当时这种营销手段就被我所不齿,而且也和很多朋友讨论过这样是否有意义,但最终的确定是,这种手法防不胜防,而且确实有效。毕竟你申请加1W个人为好友,只要有1%加你,你就有100个好友了。只是不知道SNS是否会有好友上限限制和发请求限制,如果有,最起码也是一种阻挡的手段。
然后继续看:
XML/HTML代码
- 在TechWeb以某进口化妆品公司名义进行咨询的过程中,网络公关公司的销售人员还透露,他们的资源远不止这明面上列出来的,大小账号养着有200多个,甚至还拥有粉丝数量超过百万、居于草根粉丝榜前列的账号。最近由于风声紧,出于保护的目的,只有进行到谈合同的阶段才会展示给客户。
果然这一段就是与我上面所说的大致相同了,找个十几个编辑之类的人物,每天都会发个几条几十条信息的,让人感觉这个用户还活着。
难道真如techWeb所说?
XML/HTML代码
- 中国4.77亿网民被公关公司们视作了一群没有思考能力、容易被引导控制的鱼儿们。而网络公关公司控制的网络红人们就是一个个钓鱼的僵太公
基于上述情况,很多公司居然还开发出了相应的软件,使得做这些事情更为轻松:
XML/HTML代码
- 某知名网站CTO任先生向TechWeb讲述了高级僵尸粉丝的修炼过程:“首先,通过机器人每天做几件事情:随机关注、随机评论、随机发帖。保持活跃度。这样的机器人因为有开放接口,所以实现起来并不难。只要预先设定好一个机器人注册的头像、昵称、随机帖的原始数据库。然后保持一两个月的活跃度之后就可以去参与其他的加关注、转发、评论的付费营销了。”
-
- 有这样的机器人吗?据辽宁某网络公关公司透露,一款名为“微博时光机”的API应用就是他们豢养高级僵尸账号的必备法器。
什么是微博时光机?
XML/HTML代码
- 百度知道搜索“微博时光机”,也找不到具体的答案。经TechWeb多方了解,“微博时光机”是一种微博API应用,经过设置,可以每天按时间自动发送微博,甚至还具有更多的功能。目前的微博时光机有两款,一款是新浪官方技术团队开发出来的“时光机”,一款是民间技术团队开发的“微博时光机”。
-
- 某社交数据分析公司的CEO戴先生在试用了新浪官方开发的“时光机”之后,认为功能过于简单,有一定的使用价值,但可能不是前述的“必备法器”。而民间技术团队开发的“微博时光机”,其官方网站仅有图片一张,据称产品还在内测中,无法得知其详细功能。
-
- 此外,TechWeb在一家水军网站还找到了另一款不叫“微博时光机”的微博更新应用,并附带一个包括人生、情感、幽默、语录、时尚等分类总计3万多条微博的内容库。使用者只需选择所需内容,安排好发送时间,即可保持微博内容不断更新,不带重复。
在知晓了这样的背景后,你会做什么?会找出你的好友中的僵尸吗?还是会想着做其他事情?或许你屑做这些事情,但如果真的有利益到你头上时,你还能忍得住吗?
我在安装SVN for ubuntu的时候直接参考了本文,因此摘录下来,与各位分享。
原文:http://www.svn8.com/svnpz/20080308/253.html
1. 简介
如果您对 Subversion 还比较陌生,本节将给您一个关于 Subversion 的简要介绍。
Subversion 是一款开放源代码的版本控制系统。使用 Subversion,您可以重新加载源代码和文档的历史版本。Subversion 管理了源代码在各个时期的版本。一个文件树被集中放置在文件仓库中。这个文件仓库很像是一个传统的文件服务器,只不过它能够记住文件和目录的每一次变化。
2. 假设
首先我们假设您能够在 Ubuntu 中操作 Linux 的命令、编辑文件、启动和停止服务。当然,我们还认为您的 Ubuntu 正在运行中,您可以使用 sudo 操作并且您打算使用 Subversion。
我们假设您可能需要使用所有可能的方法访问 SVN 文件仓库。同时我们也认为您应该已经配置好了您的 /etc/apt/sources.list 文件。
3. 本文涉及的范围
要通过 HTTP 协议访问 SVN 文件仓库,您需要安装并配置好 Web 服务器。Apache 2 被证实可以很好的与 SVN 一起工作。关于 Apache 2 的安装超出了本文的范围,尽管如此,本文还是会涉及如何配置 Apache 2 使用 SVN。
类似的,要通过 HTTPS 协议访问 SVN 文件仓库,您需要在您的 Apache 2 中安装并配置好数字证书,这也不在本文的讨论范围之中。
4. 安装
幸运的,Subversion 已经包含在 main 仓库中。所以,要安装 Subversion,您只需要简单的运行:
$ sudo apt-get install subversion
$ sudo apt-get install libapache2-svn
如果系统报告了依赖关系的错误,请找出相应的软件包并安装它们。如果存在其它问题,也请自行解决。如果您是再不能解决这些问题,可以考虑通过 Ubuntu 的网站、Wiki、论坛或邮件列表寻求支持。
5. 服务器配置
您应该已经安装了上述的软件包。本节将阐述如何创建 SVN 文件仓库以及如何设置项目的访问权限。
5.1. 创建 SVN 仓库
许多位置都可以放置 Subversion 文件仓库,其中两个最常用的是:/usr/local/svn 以及 /home/svn。为了在下面的描述中简单明了,我们假设您的 Subversion 文件仓库放在 /home/svn,并且你的项目名称是简单的“myproject”。
同样的,也有许多常用的方式设置文件仓库的访问权限。然而,这也是安装过程中最经常出现错误 的地方,因此我们会对此进行一个详细说明。典型的情况下,您应该创建一个名为“Subversion”的组来拥有文件仓库所在的目录。下面是一个快速的操 作说明,有关内容请参考相关文档的详细说明:
在 Ubuntu 菜单上选择“系统->系统管理->用户和组”;
切换到“组”标签;
点击“添加组”按钮;
组名为“subversion”;
将您自己和“www-data”(Apache 用户)加入组成员中;
点击“OK”以确认修改,关闭该程序。
您需要注销然后再登录以便您能够成为 subversion 组的一员,然后就可以执行签入文件(Check in,也称提交文件)的操作了。
现在执行下面的命令
$ sudo mkdir /home/svn
$ cd /home/svn
$ sudo mkdir myproject
$ sudo chown -R root:subversion myproject
$ sudo chmod -R g+rws myproject
最后的一条命令赋予组成员对所有新加入文件仓库的文件拥有相应的权限。
下面的命令用于创建 SVN 文件仓库:
$ sudo svnadmin create /home/svn/myproject
6. 访问方式
Subversion 文件仓库可以通过许多不同的方式进行访问(Check Out,签出)——通过本地硬盘,或者通过各种网络协议。无论如何,文件仓库的位置总是使用 URL 来表示。下表显示了不同的 URL 模式对应的访问方法:
模式
访问方法
file:///
直接访问本地硬盘上文件仓库
http://
通过 WebDAV 协议访问支持 Subversion 的 Apache 2 Web 服务器
https://
类似 http://,支持 SSL 加密
svn://
通过自带协议访问 svnserve 服务器
svn+ssh://
类似 svn://,支持通过 SSH 通道
本节中,我们将看到如何配置 SVN 以使之能够通过所有的方法得以访问。当然这里我们之讨论基本的方法。要了解更高级的用途,我们推荐您阅读《使用 Subversion 进行版本控制》在线电子书。
6.1. 直接访问文件仓库(file://)
这是所有访问方式中最简单的。它不需要事先运行任何 SVN 服务。这种访问方式用于访问本地的 SVN 文件仓库。语法是:
$ svn co file:///home/svn/myproject
或者
$ svn co file://localhost/home/svn/myproject
注意:如果您并不确定主机的名称,您必须使用三个斜杠(///),而如果您指定了主机的名称,则您必须使用两个斜杠(//).
对文件仓库的访问权限基于文件系统的权限。如果该用户具有读/写权限,那么他/她就可以签出/提交修改。如果您像前面我们说描述的那样设置了相应的组,您可以简单的将一个用户添加到“subversion”组中以使其具有签出和提交的权限。
6.2. 通过 WebDAV 协议访问(http://)
要通过 WebDAV 协议访问 SVN 文件仓库,您必须配置您的 Apache 2 Web 服务器。您必须加入下面的代码片段到您的 /etc/apach2/apache2.conf 中:
DAV svn
SVNPath /home/svn/myproject
AuthType Basic
AuthName "myproject subversion repository"
AuthUserFile /etc/subversion/passwd
Require valid-user
当您添加了上面的内容,您必须重新起动 Apache 2 Web 服务器,请输入下面的命令:
sudo /etc/init.d/apache2 restart
接下来,您需要创建 /etc/subversion/passwd 文件,该文件包含了用户授权的详细信息。要添加用户,您可以执行下面的命令:
sudo htpasswd2 /etc/subversion/passwd user_name
它会提示您输入密码,当您输入了密码,该用户就建立了。您可以通过下面的命令来访问文件仓库:
$ svn co http://hostname/svn/myproject myproject --username user_name
它会提示您输入密码。您必须输入您使用 htpasswd2 设置的密码。当通过验证,项目的文件就被签出了。
警告:密码是通过纯文本传输的。如果您担心密码泄漏的问题,我们建议您使用 SSL 加密,有关详情请看下一节。
6.3. 通过具有安全套接字(SSL)的 WebDAV 协议访问(https://)
通过具有 SSL 加密的 WebDAV 协议访问 SVN 文件仓库(https://)非常类似上节所述的内容,除了您必须为您的 Apache 2 Web 服务器设置数字证书之外。
您可以安装由诸如 Verisign 发放的数字签名,或者您可以安装您自己的数字签名。
我们假设您已经为 Apache 2 Web 服务器安装和配置好了相应的数字证书。现在按照上一节所描述的方法访问 SVN 文件仓库,别忘了把 http:// 换成 https://。如何,几乎是一模一样的!
6.4. 通过自带协议访问(svn://)
当您创建了 SVN 文件仓库,您可以修改 /home/svn/myproject/conf/svnserve.conf 来配置其访问控制。
例如,您可以取消下面的注释符号来设置授权机制:
# [general]
# password-db = passwd
现在,您可以在“passwd”文件中维护用户清单。编辑同一目录下“passwd”文件,添加新用户。语法如下:
username = password
要了解详情,请参考该文件。
现在,您可以在本地或者远程通过 svn:// 当文 SVN 了,您可以使用“svnserve”来运行 svnserver,语法如下:
$ svnserve -d --foreground -r /home/svn
# -d -- daemon mode
# --foreground -- run in foreground (useful for debugging)
# -r -- root of directory to serve
要了解更多信息,请输入:
$ svnserve --help
当您执行了该命令,SVN 就开始监听默认的端口(3690)。您可以通过下面的命令来访问文件仓库:
$ svn co svn://hostname/myproject myproject --username user_name
基于服务器的配置,它会要求输入密码。一旦通过验证,就会签出文件仓库中的代码。
要同步文件仓库和本地的副本,您可以执行 update 子命令,语法如下:
$ cd project_dir
$ svn update
要了解更多的 SVN 子命令,您可以参考手册。例如要了解 co (checkout) 命令,请执行:
$ svn co help
6.5. 通过具有安全套接字(SSL)的自带协议访问(svn+ssh://)
配置和服务器进程于上节所述相同。我们假设您已经运行了“svnserve”命令。
我们还假设您运行了 ssh 服务并允许接入。要验证这一点,请尝试使用 ssh 登录计算机。如果您可以登录,那么大功告成,如果不能,请在执行下面的步骤前解决它。
svn+ssh:// 协议使用 SSL 加密来访问 SVN 文件仓库。如您所知,数据传输是加密的。要访问这样的文件仓库,请输入:
$ svn co svn+ssh://hostname/home/svn/myproject myproject --username user_name
注意:在这种方式下,您必须使用完整的路径(/home/svn/myproject)来访问 SVN 文件仓库
基于服务器的配置,它会要求输入密码。您必须输入您用于登录 ssh 的密码,一旦通过验证,就会签出文件仓库中的代码。
您还应该参考 SVN book 以了解关于 svn+ssh:// 协议的详细信息。
7. 参考资料
Setting up Apache on Ubuntu
SVN Home page
SVN Book
Apache 2 Documentation
Mod-SSL
Apache-SSL SvYLinux联盟
Linux联盟收集整理 ,转贴请标明原始链接,如有任何疑问欢迎来本站Linux论坛讨论
在PHP的开发中,虽然一直标榜LAMP是最佳搭配,但事实上,在小型项目中,sqlite的优势也很明显。pgsql和mysql也是处于同一竞争的水平线上。
sqlite小到一个文件就是一个表,象微软的access一样方便,而且从PHP5开始,就内置了对sqlite的支持(不过需要打开先PDO,才能支持,可以看我以前写的:为windows下面的PHP添加sqlite功能)
但很多人对于sqlite并不是很熟悉,正好在博客园看到有人介绍SQLITE,于是进行了很无耻的复制粘贴,一是笔记,二是传播。望原作者莫生气。
原文作者:arrowcat
原文链接:http://www.cnblogs.com/hustcat/archive/2009/02/12/1389448.html
原文如下:
写在前面:出于项目的需要,最近打算对SQLite的内核进行一个完整的剖析,在此希望和对SQLite有兴趣的一起交流。我知道,这是一个漫长的过程,就像曾经去读Linux内核一样,这个过程也将是辛苦的,但我相信结果一定是美好的... ...接下来是第一章。
1、SQLite介绍
自几十年前出现的商业应用程序以来,数据库就成为软件应用程序的主要组成部分。正与数据库管理系统非常关键一样,它们也变得非常庞大,并占用了相当多的系 统资源,增加了管理的复杂性。随着软件应用程序逐渐模块模块化,一种新型数据库会比大型复杂的传统数据库管理系统更适应。嵌入式数据库直接在应用程序进程 中运行,提供了零配置(zero-configuration)运行模式,并且资源占用非常少。
SQLite是一个开源的嵌入式关系数据库,它在2000年由D. Richard Hipp发布,它的减少应用程序管理数据的开销,SQLite可移植性好,很容易使用,很小,高效而且可靠。
SQLite嵌入到使用它的应用程序中,它们共用相同的进程空间,而不是单独的一个进程。从外部看,它并不像一个RDBMS,但在进程内部,它却是完整的,自包含的数据库引擎。
嵌入式数据库的一大好处就是在你的程序内部不需要网络配置,也不需要管理。因为客户端和服务器在同一进程空间运行。SQLite 的数据库权限只依赖于文件系统,没有用户帐户的概念。SQLite 有数据库级锁定,没有网络服务器。它需要的内存,其它开销很小,适合用于嵌入式设备。你需要做的仅仅是把它正确的编译到你的程序。
2、架构(architecture)
SQLite采用了模块的设计,它由三个子系统,包括8个独立的模块构成。

2.1、接口(Interface)
接口由SQLite C API组成,也就是说不管是程序、脚本语言还是库文件,最终都是通过它与SQLite交互的(我们通常用得较多的ODBC/JDBC最后也会转化为相应C API的调用)。
2.2、编译器(Compiler)
在编译器中,分词器(Tokenizer)和分析器(Parser)对SQL进行语法检查,然后把它转化为底层能更方便处理的分层的数据结构---语法 树,然后把语法树传给代码生成器(code generator)进行处理。而代码生成器根据它生成一种针对SQLite的汇编代码,最后由虚拟机(Virtual Machine)执行。
2.3、虚拟机(Virtual Machine)
架构中最核心的部分是虚拟机,或者叫做虚拟数据库引擎(Virtual Database Engine,VDBE)。它和Java虚拟机相似,解释执行字节代码。VDBE的字节代码由128个操作码(opcodes)构成,它们主要集中在数据 库操作。它的每一条指令都用来完成特定的数据库操作(比如打开一个表的游标)或者为这些操作栈空间的准备(比如压入参数)。总之,所有的这些指令都是为了 满足SQL命令的要求(关于VM,后面会做详细介绍)。
2.4、后端(Back-End)
后端由B-树(B-tree),页缓存(page cache,pager)和操作系统接口(即系统调用)构成。B-tree和page cache共同对数据进行管理。B-tree的主要功能就是索引,它维护着各个页面之间的复杂的关系,便于快速找到所需数据。而pager的主要作用就是 通过OS接口在B-tree和Disk之间传递页面。
3、SQLite的特点(SQLite’s Features and Philosophy)
3.1、零配置(Zero Configuration)
3.2、可移植(Portability):
它是运行在Windows,Linux,BSD,Mac OS X和一些商用Unix系统,比如Sun的Solaris,IBM的AIX,同样,它也可以工作在许多嵌入式操作系统下,比如QNX,VxWorks,Palm OS, Symbin和Windows CE。
3.3、Compactness:
SQLite是被设计成轻量级,自包含的。one header file, one library, and you’re relational, no external database server required
3.4、简单(Simplicity)
3.5、灵活(Flexibility)
3.6、可靠(Reliability):
SQLite的核心大约有3万行标准C代码,这些代码都是模块化的,很容易阅读。
主要参考:The Definitive Guide to SQLite
一直不相信猫有九命,但事实上,我感觉出来了。
老婆家有一小猫,特别调皮
刚刚捡回来没多久,从6楼摔下去,好象是摔在自行车上,导致腿骨折,老婆(当时还是女友)哭了很伤心,带它去看病,打钢钉。乖了大概两年左右。又从6楼跳了下去,这回比上次严重多了,抱回来的时候,嘴边都在吐血,气是有一口没一口的,可就是这样,它还是顽强的活了下来。
再过了一年左右也就是前段时间,国庆前,它又在尝试飞行,结果,可想而知。等找它的时候已经不在楼下了,楼下打扫卫生的阿姨说是看到有人捉猫的,笼里有三只,其中一只是白猫。
这回,老婆一家都是哭天呛地的,可是半个多月后,她们发现,猫又回来了。
感慨一下,以前只听过狗被抓走,然后可以认路回家的,不料猫也有这个能力,实在太强了。
从这件事上,我终于感觉到了,猫,确实有九命。
本文纯作感慨。。。