Archive for the ‘技术’ Category

eaccelerator.shm_size=”32″ eAccelerator 可以使用的共享内存的数量 (以兆为单位) . “0″ 是指操作系统的默认值. 默认值是 “0″.可根据服务器的实际情况来调整,16,32,64,128都是可以的。 eaccelerator.cache_dir=”/home/php/tmp” 这个目录是给磁盘缓存使用. eAccelerator 在这里储存预先编译好的代码, 进程数据, 内容以及用户的自定义内容. 同样的数据也能被储存在共享内存中 (这样可以提高访问速度). 默认的设置是 “/tmp/eaccelerator”. eaccelerator.enable=”1″ 开启或关闭 eAccelerator。”1″ 为开启,”0″ 为关闭。默认值为 “1″。 eaccelerator.optimizer=”1″ 启或关闭内部优化器,可以提升代码执行速度。”1″ 为开启,”0″ 为关闭。默认值为 “1″。 eaccelerator.check_mtime=”1″ 打开或者关闭 PHP 的文件修改检查. “1″ 是指打开, “0″ 是指关闭. 如果您在修改以后重新编译 PHP 的文件,那么您应当设置为 “1″. 默认值是 “1″. eaccelerator.debug=”0″ 开启或关闭调试日志记录。”1″ 为开启,”0″ 为关闭。默认值为 “0″。会将缓存命中得记录写入日志。 eaccelerator.filter=”” 判断哪些 PHP 文件必须缓存。您可以指定缓存和不缓存的文件类型(如 “*.php *.phtml”等) [...]

Tuesday, September 7th, 2010 at 18:07 | 0 comments
Categories: 技术

Facebook的数据规模使得很多传统的解决方案根本不适用,或者无法分解来处理。保持一个拥有5亿用户的系统一直稳定可靠的运行,并不是一件很容易的事情。这篇文章介绍了一下Facebook使用的软件。 Facebook的扩展性挑战 在我们讨论细节之前,这里有一些Facebook已经做的软件规模: > Facebook每月页面浏览量为5700亿(据Google Ad Planner)。 > Facebook的照片量比其他所有图片网站加起来还多(包括Flickr等网站)。 > 每个月超过30亿张照片被上传。 > Facebook的系统服务每秒处理120万张照片 。 这不包括CDN服务中处理的照片。 > 每月超过25亿条的内容 (状态更新,评论等)被共享。 > Facebook有超过30,000服务器 (这个数字是去年的!) Facebook扩展所依赖的软件 Facebook在某些程度上说仍然是LAMP的站点,但它比普通的LAMP大得多,以纳入其他元素和很多服务,并修改现行的做法。 例如: >Facebook也使用PHP,但它已经为它建立一个编译器,以便它可以分为本地代码打开了Web服务器,从而提高性能。 >Facebook也使用Linux,但它特别为网络吞吐量做了优化。 >Facebook也使用MySQL,但主要是作为一个Key-value的持久性存储,Jions和服务器逻辑操作在Web服务器上操作。因为在那里更容易执行。 >还有是自编写的系统,如Haystack,一个高度可扩展的对象存储,用来存储Facebook的照片。还有Scribe,一个日志系统,可以运行在Facebook的巨大规模上的日志系统。 OK。现在 我们介绍一下全球最大的社会网络网站的所使用的软件吧。 Memcached memcached的是现在互联网最有名的软件之一了。 这是一个分布式内存缓存系统,用来作为Web服务器和MySQL服务器之间的缓存层(因为数据库访问比较慢)。 多年以来,Facebook已经提出了一些优化Memcached和一些周边软件的办法。如压缩network stack。 Facebook的每时每刻都有数10TB的数据缓存在Memcached的数千台服务器上。 它可能是世界上最大的Memcached的集群了。 HipHop for PHP PHP作为一种脚本语言,和本地程序相比是运行缓慢的。 HipHop可以将PHP转换成C++代码,然后再进行编译,可以获得更好的性能。 因为Facebook严重依赖PHP,这使得其可以让Web服务器运行的更有效率。 一个工程师小团队在Facebook(一开始只有三人)花了18个月时间开发HipHop,现在已经是可用状态。 Haystack Haystack是Facebook的高性能照片存储/检索系统(严格来说,是一个对象存储,因此它并不一定要存储照片)。 它有许多工作要做;有超过20亿张上传的照片,并且每一个被保存在四个不同的分辨率,因此有超过800亿张照片。 它不仅是对能够处理的上亿的照片,运行表现也是至关重要的。 正如我们前面提到的,Facebook的服务约120万张照片每秒 ,这个数字不包括CDN上的。 这是一个惊人的数字。 BigPipe BigPipe是Facebook开发的一个动态的网页服务系统。 Facebook使用它来按section(称为“pagelets”)处理每个网页,以获取最佳性能。 例如,在聊天窗口是分开的,新闻Feed也是分开的,等等。 [...]

Monday, August 23rd, 2010 at 10:51 | 0 comments
Categories: 技术

引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的 使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP- NG(Next Generation of HTTP)的建议已经提出。 HTTP协议的主要特点可概括如下: 1.支持客户/服务器模式。 2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服 务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。 3.灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。 4.无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方 式可以节省传输时间。 5.无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则 它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。 一、HTTP协议详解之URL篇 http(超文本传输协议)是一个基于请求与响应模式的、无状态的、应用层的协议,常基于TCP的连接方 式,HTTP1.1版本中给出一种持续连接的机制,绝大多数的Web开发,都是构建在HTTP协议之上的Web应用。 HTTP URL (URL是一种特殊类型的URI,包含了用于查找某个资源的足够的信息)的格式如下: http://host[":"port][abs_path] http表示要通过HTTP协议来定位网络资源;host表示合法的Internet主机域名或者IP地址;port指定一个端口号, 为空则使用缺省端口80;abs_path指定请求资源的URI;如果URL中没有给出abs_path,那么当它作为请求URI 时,必须以“/”的形式给出,通常这个工作浏览器自动帮我们完成。 eg: 1、输入:www.guet.edu.cn 浏览器自动转换成:http://www.guet.edu.cn/ 2、http:192.168.0.116:8080/index.jsp 二、HTTP协议详解之请求篇 http请求由三部分组成,分别是:请求行、消息报头、请求正文 1、请求行以一个方法符号开头,以空格分开,后面跟着请求的URI和协议的版本,格式如下:Method Request- URI HTTP-Version CRLF 其中 Method表示请求方法;Request-URI是一个统一资源标识符;HTTP-Version表示请求的HTTP协议版本; CRLF表示回车和换行(除了作为结尾的CRLF外,不允许出现单独的CR或LF字符)。 请求方法(所有方法全为大写)有多种,各个方法的解释如下: GET     请求获取Request-URI所标识的资源 POST    在Request-URI所标识的资源后附加新的数据 HEAD    请求获取由Request-URI所标识的资源的响应消息报头 PUT     请求服务器存储一个资源,并用Request-URI作为其标识 DELETE  请求服务器删除Request-URI所标识的资源 TRACE   请求服务器回送收到的请求信息,主要用于测试或诊断 CONNECT 保留将来使用 [...]

Sunday, August 22nd, 2010 at 23:24 | 0 comments
Categories: 技术
Tags: ,

使用pdb调试python,具体看这里http://docs.python.org/library/pdb.html,晚些时候有空了,再翻译一下。

Saturday, August 21st, 2010 at 21:22 | 0 comments
Categories: 技术
Tags: ,

这两天往框架里加memcache接口的时候,写的单元测试发现了一个问题,如果我在set操作的时候指定了MEMCACHE_COMPRESSED压缩,则使用get进行取操作的时候却取不到值,如果去掉压缩参数,则取值正常。另外一个问题是关于delete操作,在php手册里面是这样介绍的 bool Memcache::delete ( string $key [, int $timeout ] ) Memcache::delete() deletes item with the key. If parameter timeout is specified, the item will expire after timeout seconds. Also you can use memcache_delete() function. 如果timeout参数被指定了,比如指定30,则该item会在30秒内被删除掉。按照我的理解是,如果我指定了30秒的话,执行删除操作后,我在30秒内再去取该值,应该是还能取到的,但是单元测试里的结果是,不管指定多长的时间,删除总是立即被删除,无法再取到。不知道这个是我的理解问题还是小bug呢。

Friday, August 20th, 2010 at 11:00 | 0 comments
Categories: 技术

一致性哈希算法的一种PHP实现 <?php /** * Flexihash – A simple consistent hashing implementation for PHP. * * The MIT License * * Copyright (c) 2008 Paul Annesley * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the “Software”), to deal * in the [...]

Tuesday, August 17th, 2010 at 12:38 | 0 comments
Categories: 技术

1. 什么是JSONP:JSONP(JSON with Padding)是一个非官方的协议,它允许在服务器端集成Script tags返回至客户端,通过javascript callback的形式实现跨域访问(这仅仅是JSONP简单的实现形式)。 2.为什么使用JSONP:由于 JSON 只是一种含有简单括号结构的纯文本,因此许多通道都可以交换 JSON 消息。因为同源策略的限制,我们不能在与外部服务器进行通信的时候使用 XMLHttpRequest。而JSONP是一种可以绕过同源策略的方法,即通过使用 JSON 与 < script> 标记相结合的方法,从服务端直接返回可执行的JavaScript函数调用或者JavaScript对象。 Jsonp原理: 首先在客户端注册一个callback, 然后把callback的名字传给服务器。 此时,服务器先生成 json 数据。 然后以 javascript 语法的方式,生成一个function , function 名字就是传递上来的参数 jsonp. 最后将 json 数据直接以入参的方式,放置到 function 中,这样就生成了一段 js 语法的文档,返回给客户端。 客户端浏览器,解析script标签,并执行返回的 javascript 文档,此时数据作为参数,传入到了客户端预先定义好的 callback 函数里.(动态执行回调函数) 大家参考这里可以得到很好的解释

Saturday, August 7th, 2010 at 15:33 | 0 comments
Categories: 技术
Tags: , ,

我们对同样的一些电影,书,音乐进行评分,从这些评分中能看到我们彼此之间的相似度么?说到这里你可能会想到豆瓣,我们有没有方法来模仿豆瓣计算这种相似度呢?本文是《集体智慧编程》介绍相似度算法:欧几里德距离和皮尔逊相关度系数的一次演练。 本文将介绍. 距离是在传统统计学和数据挖掘中衡量接近程度的关键度量。我们如何衡量接近程度或距离呢?在详细介绍不同距离度量方式前,让我们先描述一个便于讨论的问题场景。 故事是这样的:一些人对同样的一些电影做出了评价,我们将在这个基础上进行分析.我们按照IMDB的评分规则,10分为电影的最高评分.首先我们将能够描述这一事实的数据构造出来放入数据库中.我们需要下列的表: o    Moive表 电影信息表 o    UserInfo表 用户表(这些人将对电影给出评分) o    Moive_Level表 使用下面的SQL语句就可以完成上面数据表的建表工作. if exists (select * from dbo.sysobjects where id = object_id(N’[dbo].[Moive]‘) and OBJECTPROPERTY(id, N’IsUserTable’) = 1) drop table [dbo].[Moive] GO if exists (select * from dbo.sysobjects where id = object_id(N’[dbo].[Moive_Level]‘) and OBJECTPROPERTY(id, N’IsUserTable’) = 1) drop table [dbo].[Moive_Level] GO if exists (select * from dbo.sysobjects where id = object_id(N’[dbo].[UserInfo]‘) and OBJECTPROPERTY(id, N’IsUserTable’) = 1) drop table [dbo].[UserInfo] GO CREATE TABLE [dbo].[Moive] ( [Name] [char] (30) COLLATE Chinese_PRC_CI_AS NOT NULL , [Director] [char] (30) COLLATE Chinese_PRC_CI_AS NULL , [Actor] [nvarchar] (200) COLLATE Chinese_PRC_CI_AS NULL , [Year] [int] NULL , [Region] [char] (10) COLLATE Chinese_PRC_CI_AS NULL , [id] [bigint] IDENTITY (1, 1) NOT NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[Moive_Level] ( [UserID] [char] (20) COLLATE Chinese_PRC_CI_AS NOT NULL , [MoiveID] [char] (30) COLLATE Chinese_PRC_CI_AS NOT NULL , [Level] [float] NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[UserInfo] ( [UserID] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL , [Age] [int] NULL , [ID] [bigint] IDENTITY (1, 1) NOT NULL ) ON [PRIMARY] GO 首先是Moive电影表,我从一些电影网站中抽取了1330条电影信息,覆盖了爱情电影,动作电影,科幻电影等各种类型的电影.实际上我们坐算法演示的时候只用到其中的10条数据.如下图,这10条数据是比较有代表性的,从类型和发行时间上都有特点.. 下列用户将对上面的十部电影进行评价: 用户对电影的评价是如下结构(下图试数据片段): 一个简单常用的距离度量是欧几里德距离。它以人们都评价过的电影为坐标轴,然后将参与评价的人绘制在图上,并考察它们的距离远近,换句话说这幅图就是描述了处于偏好空间中的人们.第一种算法考察方法是: 欧几里德距离 欧几里得度量定义欧几里得空间中点 x = (x1,…,xn) 和 y = [...]

Saturday, August 7th, 2010 at 10:22 | 0 comments
Categories: 技术

首页可用性设计 首页元素要清晰的关注用户的关键任务(避免“增加功能倾向(featuritis)”) 如果网站比较大,那么首页应包含搜索输入框 首页要十分清楚的提供产品(内容)分类 在首页或首页内一次点击展示有用的内容 信息展示时应当是简单的、自然的、符合逻辑顺序的 在首页展示真实网站内容的优秀示例 首页上的链接以最重要的关键词作为起始(例如:“Sun holidays”而不是“Holidays in the sun”) 在首页提供一个最近的特色项列表,并提供存档内容的链接 首页导航不要过度格式化(修饰),确保用户不会把它误认为广告 在首页清晰的声明价值取向(例如一个标志性的口号或欢迎语) 在首页包含有意义的图案设计,而非无关的剪贴画或绘画作品 导航选项按逻辑性或用户导向方式排序(把次要的公司信息放在底部) 首页标题(title)可以为诸如google等搜索引擎提供良好可见度 所有公司相关信息安排在一个显著区域(例如:“关于我们(About Us)”) 用户可以了解到价值取向 一看到首页,第一次访问的人就知道从何处开始 在首页展示出所有主要的操作选项 首页拥有一个易记的URL 首页需经过专业设计,以给用户良好的第一印象 首页的设计要能激发用户探索站点的兴趣 首页就要像一个首页,不能让用户把它与二级页面混淆 任务导向 网站应避免出现不相干的、多余的或让用户分心的信息 避免过多的使用脚本、小应用程序(applets)、视频音频文件、图案和图片 网站应避免不必要的登记 关键人物路径必须是清晰的,无干扰的(例如:购买、捐献) 信息以简单的、自然的(natural)、符合逻辑顺序的方式展示 应尽量缩减每个任务需要的屏幕数量 应减量减少页面滚动(scrolling)和点击 网站应正确的预期和提示用户下一步可能的动作 展示图表时,确保用户可以看到真实数据(例如在柱状图上标明数字注解) 当分配给用户任务时,应充分利用计算机的优势(例如搜索输入的自动完成功能) 用户可以快速完成普通任务 当必要时,应为当前任务提供数据对比功能(例如:商品比较) 任务顺序应当与用户日常工作顺序一致 网站可以保证用户的工作比不使用它时更轻松快捷 最重要的或经常使用的主题、特征或功能应放在页面中央附近的位置,而不是特别靠左边或右边 确保用户不会重复输入相同的信息 重要的、频繁使用的主题或任务应接近网站的“表面” 保持最少的录入(例如购买过程中),并为用户提供加速器 任何给定任务路径应当有一个合理的步骤长度(2-5次点击) 当一个任务有多步时,网站要告诉用户完成任务需要的所有步骤,并为用户当前步骤所在的位置提供反馈 在每个产品后面紧跟它的价格 可以非常容易的找到网站的隐私策略,尤其是在那些要求填写个人信息的页面。隐私策略应当是简单的、清晰的 网站用户不需要记住从一个地方到另一个地方的信息 隐喻的使用可以被典型用户轻松理解 数据格式应当遵循文化常规 软件的内部工作细节不要暴露给用户 应当迎合用户那些之前已经养成的那些小的互联网习惯 [...]

Friday, August 6th, 2010 at 10:16 | 0 comments
Categories: 技术
Tags: , ,

诗词中有:“名花韵在年晴初,雨沁胭脂脸更敷。”,你知道胭脂是什么颜色么?“回眸一笑百媚生,六宫粉黛无颜色。”中的这个“黛”又是指什么颜色呢?“漆黑一片”里漆黑真的就是完全的黑色吗?在下面这个Web设计中的中国传统色彩速查表,你可以得到准确的答案。 原文作者:青女 附注及色样添加:Quester ████ 粉红(#ffb3a7),即浅红色。别称:妃色 杨妃色 湘妃色 妃红色 ████ 妃色 妃红色(#ed5736):古同“绯”,粉红色。杨妃色 湘妃色 粉红皆同义。 ████ 品红(#f00056):比大红浅的红色(quester注:这里的“品红”估计是指的“一品红”,是基于大红色系的,和现在我们印刷用色的“品红M100”不是一个概念) ████ 桃红(#f47983),桃花的颜色,比粉红略鲜润的颜色。 (quester注:不大于M70的色彩,有时可加入适量黄色) ████ 海棠红(#db5a6b),淡紫红色、较桃红色深一些,是非常妩媚娇艳的颜色。 ████ 石榴红(#f20c00):石榴花的颜色,高色度和纯度的红色。 ████ 樱桃色(#c93756):鲜红色 ████ 银红(#f05654):银朱和粉红色颜料配成的颜色。多用来形容有光泽的各种红色,尤指有光泽浅红。 ████ 大红(#ff2121):正红色,三原色中的红,传统的中国红,又称绛色 (quester注:RGB 色中的 R255 系列明度) ████ 绛紫(#8c4356):紫中略带红的颜色 ████ 绯红(#c83c23):艳丽的深红 ████ 胭脂(#9d2933):1,女子装扮时用的胭脂的颜色。2,国画暗红色颜料 ████ 朱红(#ff4c00):朱砂的颜色,比大红活泼,也称铅朱 朱色 丹色 (quester注:在YM对等的情况下,适量减少红色的成分就是该色的色彩系列感觉) ████ 丹(#ff4e20):丹砂的鲜艳红色 ████ 彤(#f35336):赤色 ████ 茜色(#cb3a56):茜草染的色彩,呈深红色 ████ 火红(#ff2d51):火焰的红色,赤色 ████ 赫赤(#c91f37):深红,火红。泛指赤色、火红色。 ████ 嫣红(#ef7a82):鲜艳的红色 [...]

Friday, August 6th, 2010 at 09:57 | 0 comments
Categories: 技术
Tags: , ,