-
个人简介:
PHP开发者,高可用性、分布式集群实践者,伪Python、GAE开发者,伪Linux系统管理员,伪MySQL管理员
2009年8月至今服务于阿里巴巴云计算公司
2008年8月至2009年7月31日服务于博客大巴
-
归档
- 2012 年一月
- 2011 年十一月
- 2011 年九月
- 2011 年八月
- 2011 年七月
- 2011 年六月
- 2011 年五月
- 2011 年三月
- 2011 年二月
- 2011 年一月
- 2010 年十二月
- 2010 年十一月
- 2010 年十月
- 2010 年九月
- 2010 年八月
- 2010 年七月
- 2010 年六月
- 2010 年五月
- 2010 年四月
- 2010 年三月
- 2010 年二月
- 2010 年一月
- 2009 年十二月
- 2009 年十一月
- 2009 年十月
- 2009 年九月
- 2009 年八月
- 2009 年七月
- 2009 年六月
- 2009 年五月
- 2009 年四月
- 2009 年三月
- 2009 年二月
- 2009 年一月
- 2008 年十二月
- 2008 年十一月
- 2008 年十月
- 2008 年九月
- 2008 年八月
- 2008 年七月
- 2008 年六月
- 2008 年五月
- 2008 年四月
- 2008 年三月
- 2008 年二月
- 2008 年一月
- 2007 年十二月
- 2007 年十一月
- 2007 年四月
-
杂项
月归档:三月 2010
Firefox使用SSH配合autoproxy自动翻山图文教程
在这个特殊的日子里,我没有什么可以做的,在西厢计划没有成型之前,希望此文能够让翻山的人少折腾,少排出一点二氧化碳。 每个人都抱着“我们不能改变什么,那是别人玩的游戏”,我们的未来还有希望吗。围观也是一种态度,起码我们有勇气去寻求真相。也许我们不能改变什么,但是我们应该为那些有勇气的人鼓掌。 Google走了,周围有人说:因为他们没有遵守中国的法律。其实是你自己被剥夺了寻求真相的权利,而他在帮你把它争取回来,而你依然是一名不明真相的群众。 这篇文章将介绍另一种翻山手段,SSH代理山墙,对于购买类似Dreamhost主机的用户,会有SSH帐号可以使用,通过这个SSH帐号,即可实现更为安全可靠并且稳定的翻山术。 名词解释:SSH 安全外壳协议(Secure Shell Protocol / SSH)是一种在不安全网络上提供安全远程登录及其它安全网络服务的协议。最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。 常用的SSH工具有开源软件putty,后面介绍的MyEntunnel最终还是靠pLink调用putty实现SSH的加密通道。 第一步:获取拥有SSH权限的帐号和密码。 对于购买类似Dreamhost主机的用户,会有SSH帐号可以使用,也可以通过其他方式购买或者获取SSH帐号。 友情提示:没有SSH帐号的朋友可以去淘宝、有啊,拍拍等网站自行搜索,并购买,目前报价普遍10元左右每月 第二步:配置MyEntunnel软件 下载并安装MyEntunnel,该软件全名为My Encrypted Tunnel。 按照上图将第一步收到的帐号信息填写到相应的地方后,点击 “保存”按钮,再点击“连接”按钮。 第一次连接过程中会出现一个认证对话框,按照提示选“yes”即可。以后的自动连接中将不再出现此认证对话框。 最后点击“隐藏”按钮,使对话框隐藏到右下角系统任务栏中。 提示: 为MyEntunnel创建一个快捷方式,将其复制到系统的【启动】(C:\Documents and Settings\当前用户名(需要修改成你自己的)\「开始」菜单\程序\启动)文件夹中,今后开机便可自动启动软件,并自动连接服务器。 如上图所示,myentunnel有三种颜色表示不同的状态,绿色代表连接成功且稳定;黄色代表正在连接或重新连接;红色代表连接失败。 第三步:配置Firefox浏览器 Firefox有一个扩展,叫做AutoProxy,它能够自动配置让被墙的站点通过代理服务器访问。你可以通过firefox访问以下地址安装:https://addons.mozilla.org/zh-CN/firefox/addon/11009 如下图所示,点击添加到Firefox。 点击 “立即安装” 安装完成后按照提示重新启动firefox以便配置 autoproxy。 重启后完成autoproxy的安装,我们在弹出的窗口中开始配置autoproxy,如下图: 在“代理规则”中“添加规则订阅” 如下图选中“gfwList”,然后点击右下角“订阅”按钮。 在“代理服务器”选项卡中,选中“选择代理服务器” 然后按照下图标示选择并确定。 如下图所示,在“选项” … 继续阅读
数据库的层次结构
1、树状结构 在历史上,层次数据库最早出现,将数据库保存为文件中的记录,各种逻辑被嵌套到一起,而没有将同样的记录按照线性排列。层次数据库对某些查询非常适合,但是过强的结构限制了人们对数据的自由操控,后来出现的网络(CODASYL)数据库,虽然灵活了很多,但数据操控仍然很困难,知道关系型理论的出现,才证明的了数据库设计是科学而不是工艺,然而,因为层次模型很有弹性,所以层次结构依然极为常见(至少层次描述非常常见),例如XML和LDAP等层次技术非常活跃,严格的说HTML也算是一种层次存取数据的方式。 层次式数据不太容易理解,比如ERP系统中最基本的物料单,层次结构之所以复杂,主要原因不是因为组件之间的关系表达,而是访问树的方式,我们访问树的部分或全部节点,通常按照顺序返回这些节点,访问树通常由DBMS引擎以过程性方式实现,而过程性操作正是违背关系理论的主要表现之一。 2、树状结构和主从结构 很多人认为“父子关系”和“主从关系”没有什么不同,实际上这两种关系有着很多的不同。 1) 树状结构保存只需要一个表。代表层次结构的树,其所有节点完全相同,叶子节点的类型有时可能不同,例如文件系统中的文件夹和文件节点,如果撇去这点,所有的节点类型完全相同,我们可以用相同的方法描述,而且同一个表来代表节点,换句话说,表与它本身之间有种主从关系,而不是两个类型不同的表关系。 2)深度。层次结构中,与根节点的距离本身是重要的信息,而在主从关系中,不是主表就是明细表。 3)所有权。主从关系中,可以明确的外键完整性约束,例如,每个表中订单必须与另外一张表的已存在的ID对应,但层次结构,比如,虽然比如经理的工号虽然是参照已经存在的员工的工号规则来的,但是经理向老板报告,不跟员工报告,这会导致NULL值问题。 4)多重父节点。以父节点似乎别数据结合子节点,是假设一个子节点只有一个父节点,实际上生活中,很多情况下都不是这样,比如机械零件和螺丝钉,那就不是树了,父子关系就无能为力了。 其实某位大牛曾经说过:从关系理论角度去理解树的结构,树有两种实体类型,一个是节点,另一个是节点之间的连接。这样的设计世界上是解决了完整性约束的的问题,因为只有实际存在连结的节点才能被描述。这种描述实际上最后能描出一个图来,也就是能解决一个子节点对应多个父节点的问题。 DBMS厂商常常实现了空间数据处理或全文索引等特殊功能,但对层次结构的支持很薄弱或者根本没有。 处理层次结构的主要困难在于树的访问,当然仅仅为了在图形用户界面中显示树状结构,每次用户点击将树展开并没有什么问题
mysql root帐号丢失解决办法
一.windows系统的解决方法 1.首先以系统管理员身份登陆系统。 2.停止MySQL的服务。 3.进入命令窗口,然后进入MySQL的安装目录,比如我的安装目录是c:\mysql,进入C:\mysql\bin 4.跳过权限检查启动MySQL,c:\mysql\bin>;mysqld-nt –skip-grant-tables (或者将–skip-grant-tables写入my.ini中,重新启动Mysql,即可设置新密码)。 5.重新打开一个窗口,进入c:\mysql\bin目录,设置root的新密码 c:\mysql\bin>mysqladmin -u root flush-privileges password “newpassword” c:\mysql\bin>mysqladmin -u root -p shutdown 将newpassword替换为你要用的root的密码,第二个命令会提示你输入新密码,重复第一个命令输入的密码。 6.停止MySQL Server,用正常模式启动Mysql 7.你可以用新的密码链接到Mysql了。 二.Unix/Linux的解决方法 1.用root或者运行mysqld的用户登录系统; 2.利用kill命令结束掉mysqld的进程; 3.使用–skip-grant-tables参数启动MySQL Server shell>mysqld_safe –skip-grant-tables & 4.为root@localhost设置新密码 shell>mysqladmin -u root flush-privileges password “newpassword” 5.重启MySQL Server
MySQL视图介绍
一. 视图概述 视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。 对其中所引用的基础表来说,视图的作用类似于筛选。定义视图的筛选可以来自当前或其它数据库的一个或多个表,或者其它视图。通过视图进行查询没有任何限制,通过它们进行数据修改时的限制也很少。 视图是存储在数据库中的查询的SQL 语句,它主要出于两种原因:安全原因, 视图可以隐藏一些数据,如:社会保险基金表,可以用视图只显示姓名,地址,而不显示社会保险号和工资数等,另一原因是可使复杂的查询易于理解和使用。 视图:查看图形或文档的方式。 视图是从一个或多个表或视图中导出的表,其结构和数据是建立在对表的查询基础上的。和表一样,视图也是包括几个被定义的数据列和多个数据行,但就本质而言这些数据列和数据行来源于其所引用的表。 所以视图不是真实存在的基础表而是一张虚表,视图所对应的数据并不实际地以视图结构存储在数据库中,而是存储在视图所引用的表中。 视图一经定义便存储在数据库中,与其相对应的数据并没有像表那样又在数据库中再存储一份,通过视图看到的数据只是存放在基本表中的数据。对视图的操作与对表的操作一样,可以对其进行查询、修改(有一定的限制)、删除。 当对通过视图看到的数据进行修改时,相应的基本表的数据也要发生变化,同时,若基本表的数据发生变化,则这种变化也可以自动地反映到视图中。 视图有很多优点,主要表现在: •视点集中 •简化操作 •定制数据 •合并分割数据 •安全性 当然视图也存在一些缺点,最大的缺点就是视图带来的更新负担,比如源数据改了,那么视图中要做相应更新,视图中数据改了源数据也要做同步,这和MySQL的Cache差不多。 二. 创建视图——CREATE VIEW 1. 语法 CREATE [OR REPLACE] [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}] VIEW [db_name.]view_name [(column_list)] AS select_statement [WITH … 继续阅读
Blog迁到Linode,新空间,新开始
很久没有认证的写博客了,原因是多方面的,一方面因为工作比较忙,最近在死磕一个电子商务的项目,对于不适合人类阅读的代码,花了很大的力气去重构,当然我也只能重构一些我用到的部分,这部分重构只能保证与我相关的这些特性能够在未来的一段时间内降低维护的成本,更深层次的重构,有专门的团队在负责,还有一个原因是过年吃多了,又长胖了,人胖了就不想动,变懒了,于是赶紧买了一辆自行车,只要不下雨,上下班都骑车,还特意在自行车上装了一个码表,蛮便宜的,十几块钱,能清楚记录我平均速度,总里程,总时间,当前行车速度,当前温度等等信息,建议骑车的人去买一个,安装也非常方便,淘宝上可以买到。 昨天晚上把Blog迁往Linode,关于Linode的详细介绍,请关注百度的Blogkid同学的介绍,这个VPS是和老王,神仙等人一起合租的,差不多每个人300人民币一年,速度还可以,从我的测试来看,比我之前用的VPS稍微慢一点,比起它的资源和性能,总的性价比还是不错的,如果有需要的朋友可以考虑一下,一个人买有点贵,当然如果你不差钱的话,那就无所谓了。 最近还发现一个神奇的现象,我的Blog流量在最近一个月增加了一倍多,新增流量主要来自百度搜索,但奇怪的是,google webmaster tools 中显示,订阅用户也增加了一倍多,看来订阅用户和访问量基本上没啥关系,怪不得那么多人在feed中添加广告,不过feed能够做到更精准的营销,这是当你在Blogbus 6周年跨界融合大会上,碰到的Feedsky创始人吕欣欣,他老人家说的。当时还和他合影了,不过照片不知道去哪里了…… 关于以后,我会把更多的业余时间投入到数据库上去,先从MySQL入手开始搞,所以以后Blog可能更多的出现数据库方面的文章,当然PHP是我的职业语言,关于这方面的心得,我会继续发布在Blog上,关于编程语言可能还有Python,这个是不错的语言,Blog上还有可能出现的内容可能就是一些读书笔记。
django Settings cannot be imported 错误解决
在命令行中直接敲入Python命令进入交互模式,然后使用 from django.template import Template ,Context t = Template(“Test is {{test}}”) 会导致:ImportError: Settings cannot be imported, because environment variable DJANGO_SETTINGS_MODULE is undefined.原因是django的配置信息没有初始化 有两种解决方法, 一种是切换到你项目或者APP所在的目录使用manage.py shell命令启动交互窗口 还有一种是手动将django的配置初始化: >>> from django.conf import settings >>> settings.configure()