平面设计视觉要素个人心得

zhang 发表于 跟小梁一起学习PS 分类,标签:
2

我要讲的,是纯视觉要素方面的,而不是设计其他方面(例如文化内涵、构图等等),就是人看到作品后的第一反应,就像男人看到美女之后眼前一亮,至于美女道德、生活习惯好不好都不去管。以下要素是我们的眼睛在几十年的生活中培养出来的“本领”,我们的眼睛无时无刻在捕捉这些要素,要素丰富时,就满足了视觉需求,眼睛觉得“爽”、“眼前一亮”,达不到要求时,就觉得“总觉得缺点什么”,但大多数人都“说不出来”到底缺什么,不是吗?有时候我想,人的进化似乎还没达到完美,以至于人的眼睛和大脑是脱节的,眼睛爽的时候大脑不知道为什么爽。现在我就把眼睛为什么爽告诉你。

1、颜色三要素

也就是HSB模式里的明度、色相、纯度,这大家都知道。其中明度是重中之重,明度太太太太太太重要了,以至于黑白色盲平日生活里光靠明度就能活的很好,以至于列宾靠素描就能成为大师。上面说的眼睛在捕捉的很大一部分就是明度,准确的说,是明度对比,即“高光”和“暗调”的对比,再通俗点就是白和黑的对比。高光告诉我们物体的形状和质感,暗调告诉我们物体在空间的位置关系(也就是物体上光照不到的黑暗部分和它在其他物体上的投影)。掌握了这两点(对,只有这两点),我们就能在生活中生活了。我们走路,眼睛捕捉地面的高光,知道地面是水泥的还是大理石的要用什么力度去走以避免滑倒,看到前面那个坑凹进去形成的阴影知道那个坑有多深我们跨过去;看见苹果洗过后水反光的晶莹高光我们就大概判定它很干净可以吃了,看见它在桌面上黑实的投影知道它放在桌面上(如果它悬浮在桌面上投影就会虚化)然后我们伸手去抓它。。。。。。等等,简单地说,你就是靠明暗混呢!

至于色相和纯度,它们都没明度重要。曾在哪个地方看过这么一句话:“明度是色彩的骨骼,是色彩的关键;色相是色彩的华美肌肤,是色彩的灵魂;纯度体现色彩内向的品质,是色彩的精神。”要我说嘛,我认为:“明度是精神(明暗对比会让你眼前一亮);色相是表情(暖色或冷色对应高兴或静谧);纯度是态度、情绪(热情洋溢或者含蓄腼腆). ” 阅读全文 »

Apache Rewrite 规则详细解释

zhang 发表于 web开发 分类,标签:
0

在开篇之前:
我想说这篇文章其实是我刚刚接触Rewrite的时候学习的文档,应属转载,但是在这里我不想写明原地址,原因是文章中大多数给出的配置命令经实验都是错误的。需要原文的可以在谷歌上搜索一下”Apache Rewrite 规则详解”
好在我对正则表达式有所了解,把原文的代码都通过自己的理解改写了一下,并都能够达到题设的要求,并联想需求添加了例子。
本文是经过我实验后修改有效的,如果还是出现500错误请去掉 # 及后面的注释(也许有些环境不支持中文注解),如果还是错误请在下面给我留言。

1、Rewrite规则简介:

Rewirte主要的功能就是实现URL的跳转,它的正则表达式是基于Perl语言。可基于服务器级的(httpd.conf)和目录级的 (.htaccess)两种方式。如果要想用到rewrite模块,必须先安装或加载rewrite模块。方法有两种一种是编译apache的时候就直接安装rewrite模块,别一种是编译apache时以DSO模式安装apache,然后再利用源码和apxs来安装rewrite模块。

基于服务器级的(httpd.conf)有两种方法,一种是在httpd.conf的全局下直接利用RewriteEngine on来打开rewrite功能;另一种是在局部里利用RewriteEngine on来打开rewrite功能,下面将会举例说明,需要注意的是,必须在每个virtualhost里用RewriteEngine on来打开rewrite功能。否则virtualhost里没有RewriteEngine on它里面的规则也不会生效。

基于目录级的(.htaccess),要注意一点那就是必须打开此目录的FollowSymLinks属性且在.htaccess里要声明RewriteEngine on。

2、举例说明:

例一.下面是在一个虚拟主机里定义的规则。功能是把client请求的主机前缀不是www.kiya.cn和70.40.213.183都跳转到主机前缀为http://www.kiya.cn,避免相同内容的网页有多个指向的域名,如http://kiya.cn。

NameVirtualHost 70.40.213.183:80
ServerAdmin slj@kiya.cn
DocumentRoot “/web”
ServerName kiya.cn

RewriteEngine on #打开rewirte功能
RewriteCond %{HTTP_HOST} !^www.kiya.cn [NC] #声明Client请求的主机中前缀不是www.kiya.cn,其中 [NC] 的意思是忽略大小写
RewriteCond %{HTTP_HOST} !^70.40.213.183 [NC] #声明Client请求的主机中前缀不是70.40.213.183,其中 [NC] 的意思是忽略大小写
RewriteCond %{HTTP_HOST} !^$ #声明Client请求的主机中前缀不为空
RewriteRule ^(.*) http://www.kiya.cn/ [L] #含义是如果Client请求的主机中的前缀符合上述条件,则直接进行跳转到http://www.kiya.cn/,[L]意味着立即停止重写操作,并不再应用其他重写规则。这里的.*是指匹配所有URL中不包含换行字符,()括号的功能是把所有的字符做一个标记,以便于后面的应用.就是引用前面里的 (.*)字符。

例二.将输入 en.sicasoft.com 的域名时跳转到www.sicasoft.com 阅读全文 »

浏览器返回的http 301,302,304状态说明

liangkun 发表于 网站架构 分类,标签:
0

301,302,304 都是HTTP状态的编码.
我们来先说说301和302,因为它们都有些相同,都说明URL发生了转移。
那么请问清楚301和302 Http状态有啥区别?
301,302都是HTTP状态的编码,都代表着某个URL发生了转移,不同之处在于:
301 redirect: 301 代表永久性转移(Permanently Moved),
302 redirect: 302 代表暂时性转移(Temporarily Moved ),
当然 Http 状态 200 标示没有任何问题发生。
这两种转移在使用的时候有啥好处或者问题?
301 重定向是网页更改地址后对搜索引擎友好的最好方法,只要不是暂时搬移的情况,都建议使用301来做转址。
302 重定向是临时性转移。

对 HTTP 304 的理解
最近和同事一起看Web的Cache问题,又进一步理解了 HTTP 中的 304 又有了一些了解。 304 的标准解释是:

Not Modified 客户端有缓冲的文档并发出了一个条件性的请求(一般是提供If-Modified-Since头表示客户只想比指定日期更新的文档)。服务器告诉客户,原来缓冲的文档还可以继续使用。 阅读全文 »

wordpress插件Syntax Highlighter MT:高亮显示html,css,js,php等代码

liangkun 发表于 站长学堂, 软件家园 分类,标签:
1

开发人员常常需要把代码发布到网页上,有没有什么工具或方法可以让自己发布的代码可以按照语言的风格进行展示。如发布的代码为PHP的话,就以PHP风格展示出来;发布的代码为JS的话,就以JS的风格进行展示。
下面的这个效果是PHP代码的效果,这种效果一般可以满足我们上述的需求。
php:

require_once (dirname(__FILE__) . "/include/common.inc.php");
header("Content-Type: text/html; charset=utf-8");
//header("Content-type:text/vnd.wap.wml");

//错误
/*------------
function __error();
------------*/
else
{
	ConvertCharset($varlist);
	include($cfg_templets_dir."/wap/error.wml");
	$dsql->Close();
	ConvertCharset($varlist);
	echo $pageBody;
	exit();
}

上面这个代码是利用的是wordpress的一个插件,叫“Syntax Highlighter MT ”。这个插件支持我们常用到网页代码,如html,css,js,php,java等。 阅读全文 »

Discuz!论坛防灌水和垃圾贴有效过滤之TOP10

liangkun 发表于 站长学堂 分类,标签:
2

现如今,用 Discuz!7.2搭建一个完美的社区化的网站的越来越容易,产品安装的简易,5d6d、超级站长的出现,几乎让搭建一个社区成为零门槛。当然,“树大招风”,Discuz!7.0.0 越来越受到垃圾广告的关注,社区垃圾广告的市场应运而生。很多站长一夜醒来,突然发现每个版块里都有很多的垃圾帖。如何做到对这些垃圾信息的有效过滤呢?Discuz!7.0.0 充分采纳了众多站长与灌水贴和垃圾帖的“斗争”经验,推出了一系列的将防灌水和垃圾广告的功能。现举出最有影响力的十个措施,与广大站长进行分享。

一、安全验证模式

有效过滤指数:★

“误伤”指数:★

适 合 情 况:建议默认设置为高级验证模式,提升基础性能

安全验证模式的设置比较简单,同时在我们的 Discuz!7.0.0 的用户手册 里有详细的介绍,它的主要功能是配合验证码一起使用,两个不同的验证等级将可以过滤掉不同形式的灌水机和广告贴。

二、设置发帖时间间隔

有效过滤指数:★

“误伤”指数:★

适 合 情 况:防止刷帖,建议设置为默认值

可以有效地缓解刷帖的行为。刷帖者势必帖子本身质量不高,尤其有效防止此时有会员利用灌水机发帖。

注:发帖时间间隔在全局 => 优化设置 => 服务器优化 => 发帖灌水预防 中设置,默认为 15 秒。同时,这个设置也是提高服务器性能的一项设置。

三、验证码

有效过滤指数:★★

“误伤”指数:★

适 合 情 况:比较通用,建议默认开启,建议开启注册时的验证码

验证码做为防灌水的主要措施,已经被广大站点所使用。当然,Discuz!7.0.0 几乎将验证码的功能发挥到了极致。验证码的形式主要有英文图片验证码、中文图片验证码、Flash 验证码以及语音验证码,同时在验证码的功能启用了,也可以在后台自由设置验证码发帖限制以及登录失败时显示验证码。验证码的设置越来越灵活,功能越来越强大了,所以比较通用,建议默认开启。

注:关于验证码的详细介绍以及开启详见 Discuz!7.0.0 的用户手册 相应部分。 阅读全文 »

PHP获取163邮箱联系人

admin 发表于 web开发 分类,标签:
3

< ?php
error_reporting(0);
//邮箱用户名(不带@163.com后缀的)
$user = 'username';
//邮箱密码
$pass = 'password';
//目标邮箱
//$mail_addr = username@163.com';
//登陆
$url = 'http://reg.163.com/logins.jsp?type=1&url=http://entry.mail.163.com/coremail/fcg/ntesdoor2?lightweight=1&verifycookie=1&language=-1&style=-1';
$ch = curl_init($url); 阅读全文 »

十个PHP高级应用技巧

zhang 发表于 PHP 分类,标签:
0

1,  使用 ip2long() 和 long2ip() 函数来把 IP 地址转化成整型存储到数据库里。这种方法把存储空间降到了接近四分之一(char(15) 的 15 个字节对整形的 4 个字节),计算一个特定的地址是不是在一个区段内页更简单了,而且加快了搜索和排序的速度(虽然有时仅仅是快了一点)。

2,   在验证 email 地址的时候使用 checkdnsrr() 函数验证域名是否存在。这个内置函数能够确认指定的域名能够解析成 IP 地址。该函数的PHP 文档的用户评论部分有一个简单的用户自定义函数,这个函数基于 checkdnsrr(),用来验证 email 地址的合法性。对于那些认为自己的 email 地址是 [url=mailto:“joeuser@wwwphp.net]“joeuser@wwwphp.net[/url]” 而不是 [url=mailto:“joeuser@php.net]“joeuser@php.net[/url]” 的家伙们,这个方法可以很方便的抓住他们。

3,   如果你使用的是 PHP 5 和 MySQL 4.1 或者更高的版本,考虑抛弃 mysql_* 系列函数改用改进版的 mysqli_* 系列函数。一个很好的功能就是你可以使用预处理语句,如果你在维护一个数据库密集型站点,这个功能能够加快查询速度。一些评估分数。

4,  学会爱上三元运算符。

5,  如果你在项目中感觉到有可复用的部分,在你写下一行代码前先看看 PEAR 中是否已经有了。很多 PHP 程序员都知道 PEAR 是一个很好的资源库,虽然还有很多程序员不知道。这个在线资源库包含了超过 400 个可以复用的程序片段,这些程序片段你可以立即用刀你的程序里。除非说你的项目真的是非常特别的,你总能找到帮你节省时间的 PEAR 包。(参见 PECL)

6,  用 highlight_file() 来自动的打印出格式化的很漂亮的源代码。如果你在留言板、IRC 这些地方寻求一个脚本的帮助的话,这个函数用起来非常的顺手。当然了,要小心不要意外的泄露出你的数据库连接信息和密码等。

7,  使用 error_reporting(0) 函数来防止用户看到潜在的敏感错误信息。在理想情况下,发布服务器应该在 php.ini 里完全禁止。但是如果你用的是一个共享的 web 服务器的话,你没有自己的 php.ini 文件,那么这种情况下你最好的选择就是在所有脚本的第一行前加上 error_reporting(0);(或者使用 require_once() 方法)。这就能够在出错的时候完全屏蔽敏感的 SQL 查询语句和路径名。
阅读全文 »

mysql_fetch_assoc和 mysql_fetch_array的区别

admin 发表于 PHP 分类,标签:
2
mysql_fetch_assoc() 函数从结果集中取得一行作为关联数组。返回根据从结果集取得的行生成的关联数组,如果没有更多行,则返回 false。

注释:mysql_fetch_assoc() 和用  mysql_fetch_array() 加上第二个可选参数 MYSQL_ASSOC 完全相同。它仅仅返回关联数组。这也是  mysql_fetch_array() 初始的工作方式。
 提示:如果在关联索引之外还需要数字索引,用 mysql_fetch_array()。
注释:本函数返回的字段名是区分大小写的。

mysql_fetch_array() 是 mysql_fetch_row()  的扩展版本。除了将数据以数字索引方式储存在数组中之外,还可以将数据作为关联索引储存,
用字段名作 为键名。    如果结果中的两个或以上的列具有相同字段名,最后一列将优先。要访问同名的其它列,必须用该列 的数字索引
或给该列起个别名。对有别名的列,不能再用原来的列名访问其内容(本例中的 'field')。 mysql_fetch_array --  从结果集中取得一行作
为关联数组,或数字数组,或二者兼有。

mysql_fetch_assoc 得到的是关联数组。
mysql_fetch_array 可以得到关联数组也可以得到索引数组,也可以二者都有。

下面以一个例子进行说明它们的区别:
假如从数据库取出一个用户的用户名和密码
username   password
test       123456
用assoc  结果是array([username]=>'test',[password]=>'123456')
用array  根据参数不同结果可能是以下三种之一
         array([username]=>'test',[password]=>'123456')
         array([0]=>'test',[1]=>'123456')
         array([username]=>'test',[password]=>'123456',[0]=>'test',[1]=>'123456')

网页中CSS文件链接方式与嵌入方式的区别?

admin 发表于 web开发 分类,标签:
3

CSS样式表文件是使用link来调用单独的文件好呢,还是直接用<style>……</style>嵌入页面内部好呢?或者说究竟这两种方法该怎么使用呢?

w3cn的阿捷说,在以前,我们通常采用2种方法使用样式表:
页面内嵌法:就是将样式表直接写在页面代码的head区。类似这样:

<style type=”text/css”>
<!–
body { background : white ; color : black ; }
–>
</style>

外部调用法:将样式表写在一个独立的.css文件中,然后在页面head区用以下的代码调用。

<link rel=”stylesheet” rev=”stylesheet” href=”css/style.css” type=”text/css” media=”all” />

在符合web标准的设计中,我们使用外部调用法,好处不言而喻,你可以不修改页面只修改.css文件而改变页面的样式。如果所有页面都调用同一个样式表文件,那么改一个样式表文件,可以改变所有文件的样式。

由此可见阿捷是十分推崇用<link>的。补充一下阿捷的话,使用<link>的好处不单单是修改起样式表很方便,而且会使用户的浏览速度加快。用户第一次打开链接了样式表的页面后,样式表会自动下载到本地缓存当中。当用户再打开另一个页面,而这个页面如果也链接了同样的样式表的时候,会从缓存中读取相关的文件,这样就会加快浏览的速度。 阅读全文 »

如何理解缓存

zhang 发表于 web开发 分类,标签:
0

最近公司一直在招人,我作为主考官之一 。经常会提问的一个问题,就是让用户介绍自己在缓存方面的经验和心得。绝大多数的面试者只能说 ASP.net 的页面缓存和局部缓存,稍稍有点经验的,会提到企业库的缓存,只有很少的人会知道 Memcached(一个分布式的缓存)。而对于缓存的一些基本思想,却没有一个人能说出来。

现在的技术人员,很多时候,不管三七二十一,把一个个实体丢到缓存中,然后在用的时候,就从缓存中去找这个实体。而不会考虑缓存的其他方面因素。所以他们在提到缓存时,想到的才只能是一个个的缓存实现的方法,而不是缓存的思想。

那么,肯定就有人问,蝈蝈俊,那你理解的缓存思想是如何的呢?下面我就一一来说出我理解的缓存。

Q:什么样的缓存才是好缓存?

能解决问题的缓存就是好缓存。这句话简直就是废话,相当于白猫、黑猫,抓住老鼠的就是好猫。

那在解决问题前提下,哪个缓存才是好缓存呢? 这个问题我的答案是:缓存命中率高的缓存是好缓存。

在解决问题前提下,命中率高的缓存比命中率低的缓存,在硬件投入上可能会比较小,同时缓存的数量比命中率低的缓存数量也可能少,这样寻址的速度肯定比较快。所以命中率高的缓存是好缓存。

缓存的命中率

一个缓存的实体在被丢到缓存中后,在这个实体被缓存的期间(这个实体被缓存的生命周期内),如果外部一次都没有使用过它,这个缓存实体的命中率就是0。这个实体被请求的次数越多,它的缓存命中率越高。

上面说的是缓存中一个实体的命中率。对于缓存整体来说,它的命中率则是上面各个被缓存的个体的命中率分布图。 阅读全文 »