做一个有想法的美工

先做一个实验,假如我们要开发一个小项目,需求很简单,就是一个保存用户基本信息的页面,要求用户可以输入姓名、电话、联系地址、邮箱、手机号码、备注,其中姓名与邮箱是必输项目,我们把这个项目的ui美化工作分给三个美工做(当然这三个人都是虚拟的,其实都不是我做的),三个美工交来的作品都没有样式错误,页面结构正常,让我们看看做出来的效果有什么不一样。

第一个美工交上来的作品,这种作品我们基本上可以理解为实习生做的作品,许多有两年甚至更长开发经验的美工,也会开发出这种作品,不要笑,我甚至见过还比这种作品更烂的作品。如果一个美工有超过一年的工作经验还提交这种作品,基本上没戏了,因为这类美工不会自己思考。不要和我较真,那种从来不与逻辑打交道的美工另当别论了。

许多美工的理解是样式上正常,结构上没有错误就完成了。所以一般来说,让一个美工评估一件工作的工作量,你需要在他评估的工作量上再增加200%。第一个美工交的作品如下图所示:

第二个美工交上来的作品可以算得上是一个合格的作品,中规中矩,没什么太大的亮点。与第一个美工不同的是:

1、他给网页加上了标题信息;

2、他给每一行标题(就是姓名/邮臬等信息)设置了加粗并添加了背景颜色;

3、给必输项加入红色的*号进行标注

4、他把默认的提交按钮文字改为保存,并没有使用默认的提交字样

5、给表格加了连线,这样看起会舒服一些(这项是一种自我提高)

6、为输入框设置了最大可输入长度

再来看第三个美工提交的作品,第三个美工在第二个美工的基础之上又做了一些改进,除了第二美工所做的事情,他还做了这些事:

1、添加了水印备注,让用户更能了解输入框的作用(当然这里只是做了一个示例,实际上姓名的水印是没有必要的);

2、当输入框获得焦点的时候,背景会变颜色,以提醒用户(很多美工不懂js其实是一件很恐怖的事情)

3、给出了正确的效果图,邮箱的错误提示效果都呈现了出来

许多的美工都有这样的想法,我就是一个美工,我只负责界面样式上没有错误,例如说用table将界面对齐,至于页面的第二表现(例如正常应该是什么样,错误应该是什么),应该由程序员负责。实际上在大多数项目中,并没有太多复杂的逻辑。一个美工可以不用管逻辑是否正常,但是一定要把样式弄完整,不要只弄一层样式,而要考虑到更多的情况。其实你并不需要花太多的时间来理解逻辑,而是你要花些心思在上面,多注意几次就好了。

例如在上面示例的Web程序中,程序逻辑代码非常简单,但界面给人的感觉很简洁,最起码看起来不会太难受。而第三个美工所提交的作品,除了页面整洁之外,他还注意到用户的体验,这是很难能可贵的。如果一个美工在设计页面的时候能时时想到用户体验,那么应该离他升职的时间应该不会太远了。如果你能做到文中提到的第三个美工的程度,我认为你已经摸到了产品设计师或者ui设计师的凳子了。

设计页面并不是别人让搞成什么就搞成什么,应该有一些自己的想法,如果你一直像第一个美工那样写样式,你将永远是一个三流的美工。不要像一个鼠标一样,别人拽一下动一下,应该和病毒一样主动出击。在有限的时间里把样式做得最好,无论是界面上还是体验上。

注:本文来源http://iove.net/2679/

rhythmbox的两个实用插件

Rhythmbox Titlebar plugin:在任何当前窗口标题栏显示正在播放歌曲的名称
resume on restart plugin 记住上次退出的播放曲目

安装方法,下载插件之后,解压到 ~/.gnome2/rhythmbox/plugins/ 目录,然后重新打开rhythmbox,在插件目录就可以看到这两个插件,启用即可。

为了方便下载使用,已经将插件下载打包放在了 http://code.google.com/p/wallevextend/downloads/list

php setcookie在IE下的问题

PHP函数setcookie的各个参数的意思
bool setcookie ( string name [, string value [, int expire [, string path [, string domain [, bool secure [, bool httponly]]]]]] )

setcookie() parameters explained

Parameter Description Examples
name The name of the cookie. ‘cookiename’ is called as $_COOKIE['cookiename']
value The value of the cookie. This value is stored on the clients computer; do not store sensitive information. Assuming the name is ‘cookiename’, this value is retrieved through $_COOKIE['cookiename']
expire The time the cookie expires. This is a Unix timestamp so is in number of seconds since the epoch. In other words, you’ll most likely set this with the time() function plus the number of seconds before you want it to expire. Or you might use mktime(). time()+60*60*24*30 will set the cookie to expire in 30 days. If set to 0, or omitted, the cookie will expire at the end of the session (when the browser closes).
path The path on the server in which the cookie will be available on. If set to '/', the cookie will be available within the entire domain. If set to '/foo/', the cookie will only be available within the /foo/ directory and all sub-directories such as /foo/bar/ of domain. The default value is the current directory that the cookie is being set in.
domain The domain that the cookie is available. To make the cookie available on all subdomains of example.com then you’d set it to '.example.com'. The . is not required but makes it compatible with more browsers. Setting it to www.example.com will make the cookie only available in the www subdomain. Refer to tail matching in the spec for details.
secure Indicates that the cookie should only be transmitted over a secure HTTPS connection from the client. When set to TRUE, the cookie will only be set if a secure connection exists. The default is FALSE. On the server-side, it’s on the programmer to send this kind of cookie only on secure connection (e.g. with respect to $_SERVER["HTTPS"]). TRUE or FALSE
httponly When TRUE the cookie will be made accessible only through the HTTP protocol. This means that the cookie won’t be accessible by scripting languages, such as JavaScript. This setting can effectly help to reduce identity theft through XSS attacks (although it is not supported by all browsers). Added in PHP 5.2.0. TRUE or FALSE

遇到的问题

在IE下(没有做具体测试,可能是IE的各个版本,我使用的是IE8),php5.2.13版本存在的问题,如果没有设置setcookie函数中的path和domain参数,那么可能会有cookie不能生效的事情发生。不要惊讶,这并不是PHP的问题,而是IE自身的问题,我在firefox下用firecookie来查看的时候,cookie生效了,可是用IEcookieview看的时候,IE下是没有的。

解决办法:尽可能规范自己的代码,将函数参数的设置为正确可用的值(譬如path设置为’/',domain设置为’.127.0.0.1′)

八一赋

巍巍华夏,历五千载波飞云涌;熠熠神州,经十万阵雨骤风狂。煌煌盛世,看六十年人民中国;莽莽铁军,护十三亿百姓安康。

飘我军旗,红自南昌。忠诚之旅,党指挥枪。一九二一,岁次辛酉,嘉兴红船,破雾启航。一九二七,岁次丁卯,八一晨曦,城头易将。白驹过隙,大江东去,八十二度秋风劲,战地黄花分外香。曾忆血雨腥风,长夜未央;星火燎原,朱毛会师井冈。难忘赤旗黑手,武装割据;古田烛照,新军纲举目张。挥别红都瑞金,执手乡亲父老,战略转移北上,披荆斩棘征途长。忍顾湘江血战,争看四渡赤水,雪山草地何畏,遵义会议谱新章。宝塔山高,延河水长,抗日八载,驱驰四方,金戈铁马,小米加步枪。华北初捷,笑傲太行,南国烽烟,梅岭三章,前仆后继,莫邪与干将。东渡黄河,日出柏坡,逐鹿中原,决胜三仗;弹指一挥间,百万雄师过大江。西望昆仑,月上六盘,剑倚阳关,鞭指八荒;进京赶考处,迎劲旅箪食壶浆。新中国方唱东方红,强虏窥边陲,奇兵照肝胆,雄赳赳,跨过鸭绿江。志愿军并肩人民军,剪暴于俄顷,诛逆于初萌,气昂昂,铁血胜金汤。琴心剑胆,河清海晏,是人寰,向中央。

唱我军歌,声自大江。威武之师,百炼成钢。摧锋陷阵,拔关夺隘,悲歌慷慨,龙血玄黄。曾挽国之危难,曾拯民于倒悬,脚踏祖国大地,背负民族希望。风云开合,壮士请缨,生当人杰,死亦国殇。春秋廿二,赤县千里,关山万重,鏖战沙场。风雪饥寒,穷山野营,百战余一,蹈火赴汤。裹尸马革英雄事,纵死终令汉竹香,待从头收拾旧山河,乾坤荡。华年六十,政通人和,天高海阔,虎跃龙骧。保家卫国,屯垦戍边,抢险救灾,处突维稳,为民解忧,为国争光。嫦娥奔月,载人航天,两弹一星试锋芒。上柱于天,下立于渊,铁马冰河,铁壁铜墙。朝迎旭日,夕送落霞,万里边防,万里海疆。维护和平,国际救援,联合军演,任重道远,永不称霸,永不扩张。际地蟠天,壮怀激烈,昔有开国元勋十帅千将,斗雪傲霜;今朝后生可畏英雄辈出,长风破浪。千山万水,千乘万骑,举大纛,向太阳。

耀我军徽,亮自东方。人民之军,永铸辉煌。岁次己丑,新中国喜逢一甲子;盛世阅兵,天安门旌旗领钢枪。山呼海啸,扬我国威;铁甲丹心,是我栋梁。放眼寰宇,烽烟未息,四海翻腾,五洲激荡。朝乾夕惕,居安思危,枕戈待旦,经略国防。运筹帷幄,决胜千里,庙堂之音立魂魄,统帅挥手指航向。芳林新叶,流水后波,与时俱进,开来继往。以军护民,以文化人,理想凝聚力量,信念铸就坚强。永固红色江山,再造绿色家园,西行九曲黄河,东流万里长江。壁立千仞,海纳百川,战无不胜,兵精将强。官兵一致,军民一致,鱼水情深,团结和畅。人民子弟兵为人民,八一精神放光芒。同歌盛世,齐颂华章,濡丹青,向炎黄。

己丑即逝,庚寅新降,雄兵百万,秣马整装。方地为舆,圆天为盖,雕弓满月射天狼。吟明月之诗,咏红日之章,歌三军之志,诵六合之祥。勇哉八一,军旗飘扬,军歌高亢,军徽闪亮。壮哉八一,砥柱中流,党心所倚,民心所向。伟哉八一,万里长城,千秋大业,百代辉煌。

读完之后,湿了

7月毕业

以此怀念