提高脑力的方法

关键观点

  • 科学家们越来越发现成佳节又重阳人的大脑要远比原来所认为的更加可塑。你的行为和所处的环境,能给大脑带来实质上的“重新布线”,或者功能重组。
  • 研究显示,体育运动能提高大脑在执行诸如计划、组织和多重任务工作时的表现。饮食也能影响你大脑的工作效率。
  • 从事听音乐、玩视频游戏,以及冥想等活动也可能提升认知能力。

截肢者有时会经历幻肢感觉,感觉到从不再存在的肢体传来疼痛、痒或者其他刺激。神经学家 Vilayanur S. Ramachandran 研究过一些具有所谓幻肢的患者,其中包括 Tom,他失去了一支胳膊。

Ramachandran 发现当他击打 Tom 的脸时,Tom 会感到他业已失去的手指也被触及。躯体的每一个部分都映射到大脑的体觉皮层上的不同区域,并且正如所发生的那样,属于手那部分的区域紧邻脸的区域。神经学家推断 Tom 的体觉皮层中发生了显著的变化。

Ramachandran 断定由于 Tom 的大脑皮层不再从他那失去的手接收输入信号,负责处理脸部感觉的区域渐渐接管了负责手部的领地。因此触及 Tom 的脸部会产生来自他并不存在的手指的感觉。

这种“重新布线”是一个神经可塑性的实例,神经可塑指成佳节又重阳人的大脑自我变化和改造的能力。科学家们渐渐发现成佳节又重阳人的大脑要比曾经认为的更加可塑。我们的行为和所处的环境都可导致大脑的重新布线,或者大脑功能的重新组织和重新定位。有些人认为甚至我们的思维模式本身已经足够改造大脑。

研究者们现在知道神经发生(即新神经元的诞生)是成佳节又重阳人大脑的一个正常特性。研究显示神经发生最为活跃的一个区域是海马,一个对学习和长期记忆至关重要的结构。

神经发生也发生在负责处理气味的嗅球。但并不是所有新诞生的神经元天生都能幸存下来;实际上,它们中的大多数都死了。为了存活,新生的细胞必须得到营养和与其他健旺的神经元建立连接。科学家们正在试图甄别出影响神经发生和新细胞存活率因素。例如,脑力和体育锻炼都被认为能提升神经元存活率。

方法一:体育运动

常跑轮子的小鼠会在海马区增生神经元,并且在学习和记忆测试中取得更好的成绩。对人的研究也已经揭示体育运动可以提高大脑的执行能力(计划、组织、多重任务的能力,以及更多)。运动也被公认为具有提升情绪的作用,常运动的人年老的时候也更少得痴呆的毛病。在已经年老的人群中,运动员体质的老人要比久坐不动的人薄雾浓云愁永昼大脑执行能力更好;甚至对于在床和沙发上度过整个人生的老人,一旦在晚年开始多活动一些,也能立刻提高这些这些能力。

多种机制都可能对此种脑力提升起作用。运动会增加脑中的血流量,从而增加供应氧,能量和营养给工作负荷沉重的神经元。研究表明运动能够增加一种叫做脑源性神经营养因子的物质(BDNF)的水平,这种物质可以激励神经元的生长,增加联通和生存率。

当然,所有这些研究都无法解释大学里四肢发达、头脑简单的运动员的存在。

前沿信息

最新的研究提示来一点音乐能改善测验成绩。志愿者们完成了两组体育测验。在其中一组中,他们在一片甜美的寂静之声中流汗;而在另一组中,他们聆听了维瓦尔第的《四季》。在每组测验完成后,参加者们都要完成对他们的情绪和语言技巧的评估。体育锻炼本身已经足够提升两者的表现,但如果这些锻炼者能合上音乐的话,他们的语言技巧分数就会提升两倍。也许下次你应该让你的保险公司付钱买一个 iPod。

八卦新闻

>> 有一堆研究揭示了体育运动也能提高睡眠质量,以及免疫功能。还有什么是它做不到的吗?

>> 你不必非得成为查克·诺里斯(谢谢啊)才能获得运动给大脑带来的好处。对老年人的研究发现仅仅每天 20 分钟的步行就已经能玩点小把戏了。

方法二:健康饮食

大脑像身体其他部分一样也需要燃料。那么什么东西能提升你的脑力,什么东西又会让你失去智慧呢?饱和脂肪,这个惯犯,给大脑造成的损害比对身体的一点不少。用高饱和脂肪食物喂养的大鼠在学习和记忆测验中表现不佳,而靠这种饮食为生的人似乎提高了患痴呆的风险。

不过,并非所有的脂肪都带来坏消息。大脑的大部分是脂肪——所有这些细胞膜和髓磷脂包覆层都需要脂肪酸——所以进食特定的脂肪还是很重要的,特别是在鱼类、坚果和种子中富含的 omega-3 脂肪酸。阿尔茨海默氏症、抑郁症、精神分佳节又重阳裂症和其他失调病症都可能与 omega-3 脂肪酸水平低有关。

水果和蔬菜似乎也都是大脑超级食物。它们富含一种称为抗氧化剂的物质,可以抵御损害脑细胞的原子。研究者发现高抗氧化食物能够使高龄大鼠保持敏锐的学习与记忆能力,甚至可以减轻由打击造成的脑损害。这可是真的精神食量啊。

前沿信息

影响大脑的不仅是你吃的东西,还有你吃了多少。研究显示出饲喂限制卡路里饮食(比正常少 25-50%)的实验动物会比其他动物活得长,这也能导致它们提高大脑功能,在记忆和协调测试方面表现更好。限制卡路里饮食的啮齿动物也更能抵御阿尔茨海默氏病、帕金森氏病和亨廷顿氏病造成的伴随损害。

八卦新闻

>> 一些最好的“大脑食物”:胡桃、蓝莓和菠菜。

>> 让婴儿摄取足够的脂肪是特别重要的。得不到充足的这种原料的婴儿,会在制造帮助神经元传导信号的含脂肪的髓磷脂绝缘层时遇到问题。幸运的是,母乳 50% 的成份是脂肪。

>> 传统上食用富含 omega-3 脂肪酸的人群,倾向于拥有更低的中央神经系统失调的发病率。

方法三:兴奋剂

兴奋剂指的是可以加快神经系统活动,增加心率、血压、精力和呼吸等等的物质。这类物质中最著名的就是咖啡因了。(实际上它是世界上使用最广泛的“毒薄雾浓云愁永昼品”。)通过激活中央神经系统,咖啡因能提高唤醒度和机敏度。但在大剂量使用的情况下,刺激太过分,会导致发抖、焦虑和失眠。

可卡因和安非他明就不那么良性了。虽然它们通过不同的机制作用于大脑,但有类似的效用。服用它们会增加释放让大脑感觉良好的神经递质——包括多巴胺和 5-羟色胺——制造出一种强烈的欣快感。它们也能提高机敏性和精力。

所有这些听起来很不错,但是可卡因和安非他明是极端成瘾性的毒薄雾浓云愁永昼品,高剂量服用会造成精神错乱和戒断症状。戒断症状极为痛苦,会导致沮丧低沉,完全与欣快感相反。而且必然的是,过量服用可以致死。

前沿信息

虽然高剂量服用咖啡因无疑会导致令人不快的后果(从兴奋过度,到最差的结果:偶而会导致死亡),少量和适度的使用可以通过某些研究者们正在研究的途径提升智力。

有研究表明相当于两杯咖啡的咖啡因可以提升短期记忆力和缩短反应时间。研究中使用的功能核磁共振成像(FMRI)扫描揭示给服了咖啡因的志愿者大脑中负责注意力的部分也提高了活跃性。另外,研究也提示咖啡因可以在老年妇女身上抵东篱把酒黄昏后制与年龄相关的记忆力减退。

八卦新闻

>> 我们摄取的 3/4 的咖啡因来自咖啡。应该试着限制自己每天喝 100 杯以下的咖啡。这么多咖啡含有大概 10 g 的咖啡因,足够引起致命的并发症。

>> 虚构人物中最著名的兴奋剂使用者之一是伟大的犯罪侦破专家歇洛克·福尔摩斯。这位侦探的许多案例里都描述了他从注射可卡因中获得安慰。这看来很难保证司佳节又重阳法公正的实现。

方法四:视频游戏

视频游戏能救你的命。每周至少花一个小时玩视频游戏的外科医生在手术室里犯的错误要比不玩游戏的医生少三分之一。的确,研究表明视频游戏可以提高智力活动的机敏性,同时也能提升手-眼协调能力、景深知觉和模式识别能力。玩游戏者也比常人有更好的注意力广度和信息处理技巧。当不玩游戏的人在视频游戏上花了一个星期之后(当然是以科学的名义),他们的视知觉技巧得到了提高。最后打击一下你认为游戏者都受排斥的观念:一个研究发现玩游戏的白领专业人员要更自信和有社交能力。

当然,我们不能在谈到视频游戏的影响时而不提及流行的理论,即它要为现实世界不断增加的暴力活动负责。一些研究更增强了这种联系。玩了很多暴力游戏的年轻人,他们的大脑对视频画面有较少的敏感度,这提示这些游戏者对这些场景变得不敏感了。另一个研究揭示了当游戏者玩第一人称射击游戏时,大脑活动的模式与攻击行为发生时是一致的。

这并不一定说明这些玩家会在真实生活中很暴力。这些关系值得探索,但迄今为止这些数据还不能支持视频游戏的增多要为年轻人暴力行为的增长负责的观点。

前沿信息

根据一个新的研究,视频游戏能激活大脑的奖赏回路,但对男性的作用要远远大于对女性的。研究者把正在玩专门为此研究设计的视频游戏的男女送入功能核磁共振成像机器中。两组人都玩得不错,但是男性显示出更多的与奖赏机制相关的脑缘系统活动性;更甚者,男性还显示出更强的与组成奖赏回路的结构之间的联系性,而且对某个特定的游戏者来说,这种联系越强,他就玩得越好。在女性中间这种相关性并不存在。男性要比女性有多两倍的可能说他们感觉到沉溺于视频游戏。

八卦新闻

>> 在美国,视频游戏是一个价值 100 亿美元的生意。

>> 2003 年,一个 16 岁的男孩枪杀了两位警薄雾浓云愁永昼官和一位警薄雾浓云愁永昼察调度员。两年以后受害者的家庭提起了对制造这一大为流行的游戏 Grand Theft Auto (机车大盗?)公司的诉讼。诉讼指控犯罪者受到他对这个饱受争议的视频游戏的沉迷的刺激。

方法五:音乐

当你播放 Queen's 乐队的 Greatest Hits 时,大脑的听觉皮层会分析音乐中的许多元素:音量、音调、音质、旋律和节奏。但是音乐和大脑的相互作用并不仅仅停留在原始的声音上。音乐也能激活你大脑的奖赏中心,并且抑制杏仁核的活动,减轻恐惧和其他负面情绪。

一个广为宣扬的研究暗示听莫扎特的音乐能提升认知能力,刺激了各地的父母跑出去为他们的孩子购买古典音乐 CD。所谓“莫扎特效应”的观念仍然很流行,但是原始的研究被发现有些不太可信,而且任何聆听音乐造成的智力提升似乎都是微小和临时性的。尽管如此,音乐还是好象有些好的作用。它可以对付焦虑和失眠、降低血压、使痴呆患者安静,并且有助于早产婴儿增重和提前出院。

音乐训练可以增强大脑。音乐家大脑中的运动皮层、小脑和胼胝体(连接两个大脑半球的部分)都比非音乐家大。弦乐演奏者要比不会这种乐器的人有更多专属于他们手指的感觉皮质。就音乐训练能否让你更聪明还没有公论,但是一些研究的确显示音乐课能提高幼儿的空间能力。

前沿信息

儿童时期的音乐课和练习会增加脑干对人声的敏感性。据一个近期的研究,脑干与很底层的声音编码有关,更多地暴露于音乐有助于调理这一系统,即便是对没有特殊音乐天赋的儿童也是如此。

所以世界上的乐盲儿童应该感到振奋!就把它想象为吃蔬菜:咀嚼单簧管对你有益。

八卦新闻

>> 听觉皮层可以被在头脑中唱一首歌激活。视觉皮层可以被仅仅想象一张乐谱而激活。

>> 播放古典和轻松音乐可以增加奶牛的产奶量。

方法六:冥想

忘掉苹果吧。如果大部大部的科学研究可以相信的话(也的确往往如此),每天一个“唵”咒就可以让疾病远离。冥想,即把注意力转为内向做沉思和放松,似乎可以有助于任何类型的状况-焦虑失调,真的,而且它还能减轻疼痛,解决高血压、哮喘、失眠、糖尿病、抑郁甚至皮肤问题。

经常冥想者说他们感觉到比非冥想者要更加平静自在,和更有创造力。研究者们靠把冥想者塞进大脑成像机器中,渐渐弄明白了冥想造成的真实的大脑变化。其中一个发现是,大脑细胞典型的常态是在不同的时刻激发活动,但在冥想中它们是同步激发的。冥想专家也显示了左前额叶皮层大脑活动的尖峰激励状态,大脑的这一区域通常和积极的情绪联系在一起。那些在冥想中这一区域最为活跃的人,也极大地提高了免疫系统功能。

冥想能增加大脑皮质的厚度,特别是在与注意和感觉相关的区域。(这种增长似乎并非因为皮层中产生了新的神经元,而是显现出已有的神经元之间建立了更多的联系,支持细胞的数量增加了,而那些区域的血管也增大了。)

前沿信息

冥想能增强聚焦和注意的能力,提高执行认知任务的能力。研究者花了三个月的时间训练志愿者练习致力于减少分心的 Vipassana 冥想。然后这些志愿者们被要求执行一个从一大串字母中挑出数字的任务。经历了冥想训练的人在辨认从计算机屏幕上短暂地一闪而过的数字时做得更好。他们也似乎显示出能完成任务而不用花多少精力。

八卦新闻

>> 参加这些科学研究的和尚们通常已经在冥想上花了 10,000 小时,这要比一年还多。

>> 2005 年在世界上最大规模的脑研究者集会的神经科学年会上,达有暗香盈袖赖喇嘛跑去作为贵宾发言。(译者按:不知演讲了什么内容……真是无所不在啊。在西方知识分子中间,似乎比较容易认同这种经过伪装的政客。不知什么方法可以提升他们的智力?)

Posted in webdesign | Leave a comment

五个为你的设计添加光影效果的简单技 巧

 五个为你的设计添加光影效果的简单技巧

简介

现实生活中无时无处不存在着光照和阴影。你看到的每样东西都是通过光影反射形成它的形象。视觉上,光影帮助我们辨别事物,认知他们的材质、尺度和透视。 

所以如果要让我们的网页设计更加自然、有动感且真实直观,正确理解光影效果就变得非常重要。以下是助你更好利用光影的五个技巧,好好运用它们,能让你的设计更加精致,从众多的页面中脱颖而出。 
光照与阴影的原理快速剖析 

 

 

原文: 5 Simple Tricks To Bring Light and Shadow Into Your Designs

现实生活中无时无处不存在着光照和阴影。你看到的每样东西都是通过光影反射形成它的形象。视觉上,光影帮助我们辨别事物,认知他们的材质尺度透视

所以如果要让我们的网页设计更加自然、有动感且真实直观,正确理解光影效果就变得非常重要。以下是助你更好利用光影的五个技巧,好好运用它们,能让你的设计更加精致,从众多的页面中脱颖而出。

光照与阴影的原理快速剖析

下图中,光源来自左方。高光是光照最强的部分,阴影位于距离光源最远的地方。光影的存在帮助我们感知有关物体表面材质的大量信息。

不过你可能要问,这和网页设计有什么关系?

如果你打算创造丰富、有质感的界面和网站,光影能助你一臂之力。如同许多传统艺术家们在绘画上对光照的运用,你也可以利用光照给你的设计以深度和视觉趣味。

1. 使用光源

应该说利用光照时了解光源在那里是最为重要的基本问题。光源位置决定了高光和阴影的位置(不过在网页设计中你能打破这些规则)。在Photoshop中,你可以利用图层样式中的“全局光照”保证你创造的所有光影效果的光源都在一个位置。

控制好光源位置能够为你的页面设计创造独特气氛(即使仅仅是一个简单的线性或径向渐变也能达到效果)。光影效果还能引导视觉中心的转移。

网络上的例子

Campaign Monitor 使用发散光源,创造出一种日出效果。

Icebrrg 利用光照使页面潜入水下。

Mike Precious 使用了不止一个光源,增加了视觉趣味,而且各处都使用的是桌面台灯的光照效果。

Deaxon 在logo后有一个微弱的光源,使页面的焦点集中在了logo上。

2. 渐变

现实世界中,没有什么事物总是平坦色调。光影附着在一切事物上。利用渐变是创造深度和真实性的好方法。

运用渐变的关键是不要做得太过了。在Photoshop里绘制渐变时,请在图层样式里做渐变叠加,这样能保证你的渐变的可编辑性,而且随着图层的缩放,渐变也能跟着无损地缩放。

网络上的例子

nclud’的网站使用微弱但有效的渐变,用以区分和组织内容。

一眼看去, CSS Ninjas 似乎使用的是平直颜色。不过其实每个色彩区域都有微弱的渐变,创造出迷人的材质效果。

3. 高光

高光能平衡阴影,应该位于物体靠近光源的边缘。高光大部分时候都被忽视了,因为如果用得好的话,你几乎感觉不到它的存在。不过并不是所有情景都适合高光的存在,一个细微的高光就能造成物体表面抛光度的巨大不同。高光越“尖锐”,物体表面的光泽感就越强。

要鉴赏高光,我们需要放大这些细节。做高光设计的时候,把你的设计稿放大一倍以上是个好办法,因为按原始比例显示的时候,你可能都没法弄清自己在捣鼓些什么。

网络上的例子

Icon DockNewism 都在页面上边缘使用了半透明的白色制造高光效果。虽然很不起眼,但是却为设计提供了强烈的光泽感。

Apple’s的网站 大家应该都很熟悉。不过你大概没有注意到导航菜单底部的细微高光。正是这一高光,给与菜单以凸出感。

4. 基本阴影

同渐变一样,投影也被网页设计师们广泛运用。当正确使用时,投影的确能为设计增加视觉深度和质感。关键还是不要做的过度或者滥用。

阴影深度取决于光照方向和强度,以及物体和投影面的距离。光照越强,阴影越锐利越暗;光照越弱,投影也就越弱。

网络上的例子

网络上关于投影的例子实在太多了。

LinkedIn在边栏底部添加了极为细微的投影,创造出深度感。

Google — 可能是互联网上最难设计的页面了 — 仍然在搜索页上使用了细微的投影。

5. 高级阴影

要赋予物体立体感,除了简单的投影,你还有很多选择。长阴影能极大地改变页面中物体的空间关系。

下面的例子中,同样的可乐罐,被赋予不同的阴影和暗部之后,整个空间位置就显得完全不一样了。

网络上的例子

Emotions by Mike 聪明地运用了阴影(以及光照),硬是把平面页面转换成了一个地板。

Superkix 使用投影,让运动鞋漂浮于页面之上。当你缩放页面时,投影还能移动,就像光源也在转移一样。

Sofa 在纯白背景上,通过极佳的光影运用,生生造出了一个地板。

更多资源

以下内容为英文:

另外推荐:35个极佳运用光影效果的网站(英文)

关于作者

Rob Morris是在日本工作的澳大利亚设计师。作为自由设计师,他的别名是 Digitalmash,客户遍及世界各地。你可以在 Twitter上关注他的冒险。

关于译者及版权

译者笨活儿,以学英语为目的为大家翻译优秀的外国教程。你可以订阅我博客,或者加我饭否

本文遵循CC协议 [署名-非商业性使用-相同方式共享] 原则。转载请注明原文以及译文的原始出处。

(al)

 

Posted in webdesign | Leave a comment

面试取胜12招

 
 

Sent to you by qusharp via Google Reader:

 
 
via 英语,文化和交流 by shawtsai on 1/14/09

 取材自ehow.com

关于interview中的着装啊,仪表啊这些我就不罗嗦了,说些具体的注意要点。

  • Over prepare. 在你踏入你应聘的公司以前,当然要做足功夫。对于公司的背景啊,盈利的来源,客户,合作伙伴都要摸透,甚至过去几年公司有无不良业绩,都要调查清楚。为自己好好打算。
  • Make yourself personable to the person that greets you.  也许你刚走出门,其中一个面试者就会说:“这个人怎么这么没礼貌。”人力资源部的经理会把这些意见考虑在内的。所以最好的方法是,对每一个面试官,你都要像对待老朋友一样,和他们友好的打招呼。中国人喜欢点头示意,比较含蓄,外国老总对看门的也会打招呼问好的。
  • Each person you meet, greet with a firm but not bone crushing, firm handshake.  打招呼的时候,顺便握个手吧。面试结束的时候也握个手。握的有力些,这样,能让面试官看出你的自信。用肢体语言说明,我很胜任这份工作。
  • Main focus and eye contact. 在面试中,与面试官保持良好的眼神交流。让他们知道你在集中注意力听他们讲,并且对他们的问题很感兴趣。
  • Answer questions directly and in detail.  面试的时候,实际上就是面试官在了解你简历之外的东西的时候,所以,越详尽越好。对于你了解的,你可以谈的深入些,对你不了解的,不要打肿脸充胖子,闹出笑话就不好了。
  • At some point in a interview you will be asked what your weakness are. 人无完人,是人都有缺点。不要对你的缺点避而不谈。举个例子,你可以说,我在哪一方面不行,但我正在试图改进。
  • During an interview, you may be asked why you are leaving your current position or other positions.  可以说些冠冕堂皇的话,为了取得更长足的进步啊( for advancement, for more education) 有时候老实点,也是必要的。
  • Where do you see yourself in five years?  过去,也许你会说,我要在这个公司摸爬滚打爬上公司高层管理的位置。在今天这个日新月异的社会里,比较流行的回答是“ To become knowledgeable about every facet of this company and contribute to new innovations that will this company grow.” (了解该公司的方方面面,给公司的发展带来创新的活力,伴随企业共同成长) 。
  • Interview the HR person. Remember that a interview is a two way street. 面试不是单纯的考试,老师知道你功课做的如何,打个分就可以了。你来面试,要让面试官知道,这个工作不是你随随便便,应聘试试的。你同样有权利知道整个公司的情况。这个公司是在扩张还是在缩小?问问面试官,他们对这个公司有什么看法?为什么选择进入这间公司工作呢?
  • If they ask you about the salary, don't be afraid to price yourself when you know your worth is. 每个人,心中都对自己有个价码,所以这点,也要做足准备工作,应聘之前,了解一下市场上的价格。对自己的价值有一个准确的了解。美国找工作的可以上salary.com查询。这点和中国人截然不同。中国人对自己提出价码的非常反感。做作的很。
  • Now that the interview is over,  ask for person's business card. 既然面试结束了,可以问面试官要名片了。这对后续面试的结果很有帮助。
  • Send out follow up letters next day so that they can receive it in a few days. 寄封感谢信去也好,或者发邮件也行。

 
 

Things you can do from here:

 
 
Posted in webdesign | Leave a comment

50个可以给你创意网站介绍

 
 

Sent to you by qusharp via Google Reader:

 
 
via 享受软件 by 享受软件 on 4/12/09

introduction

50个可以给你创意网站介绍

在层叠复杂的网页中,特别是在设计领域,人们首先会注意到的就是简简单单几个介绍公司或者设计者的文字。

这些介绍对于读者来说是非常有用的,因为它可以非常简洁明地介绍设计人员或者网站背后的公司。

这些介绍通常会用比较大的字体来显示,并且放在网页的顶部来吸引访问者。这些信息可以给人们非常个性化的感觉,并且大有代替LOGO下面的文字之类的东西可能。

下面的文章中,我们列举了50例在网站中非常成功的运用了网页介绍的案例,你也可以在你的网站中运用这些创意来做你自己的设计。

Digitalmash

digitalmash1

Matt Dempsey

mattdempsey

Chris Merritt

chrismerritt

Deaxon

deaxon

etonDIGITAL

etondigital

Nine Lion Design

ninelion2

Frisk Design

frisk

Andrew Bradshaw

andrew

Studio3K

studio3k

The449

the449

Winnie Lim

winnie

Muhammad Uzair Usman

uzair

Pallian Creative

pallian

Brad Colbow

bradcolbow

Skylar Anderson

skylar

Style Division

styledivision

Iceous Design

iceous

Brian Wilkons

brianwilkins

Travis Isaacs

travisisaacs

Alex Carabi

alex

Viktor Jarnheimer

viktor

Mike Precious

mikeprecious

The Site Guy

marco

David Hellmann

davidhellmann

Kerry Nehil

kerrynehil

Waqas Ashraf

waqas

Jamison Banham

jamison

Albertlo Design

albertlo

Frederica Cau

fedrica

Bryan Le

bryanle

Travis J. Beck

travis

Fredrik Sorlie

fredrik

45royale

45royale2

Alessandro Cavallo

alessandro

Eldesign

eldesign

Nick Hand

nickhand

Matt Radel

mattradel

Alexander Kaiser

poolie

CSS Layout

csslayout

Jason Reed

jasonreed

Alex Cohaniuc

alexc

Kreativity Design

kreativity

Evan Eckard

evaneckard

Lifetree

lifetree

Matt Hamm

farnham

Fred Yates

fredyates

Digimurai

digimurai

Indiqo Media

indiqo

Chris Hortsch

chrishortsch

Humza Ijaz

humza

Bill C. English

billc


Which one was your favorite? Feel free to share any other examples that you may have seen.

 
 

Things you can do from here:

 
 
Posted in webdesign | Leave a comment

smarty截取中文字符扩展



smarty截取中文字符
改良的smarty截取中文字符函2008年05月15日 星期四
15:58改良的smarty截取中文字符函数2008-04-07
11:17
原有的函数截取中文字符时会出现乱码问题,修改smarty目录下plugins\modifier.truncate.php文件如下

function
smarty_modifier_truncate($string, $sublen = 80, $etc =
'...',
                                 
$break_words = false, $middle =
false)
{
$start=0;
$code="UTF-8";
      
if($code == 'UTF-8')
   {
      
$pa =
"/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|\xe0[\xa0-\xbf][\x80-\xbf]|[\xe1-\xef][\x80-\xbf][\x80-\xbf]|\xf0[\x90-\xbf][\x80-\xbf][\x80-\xbf]|[\xf1-\xf7][\x80-\xbf][\x80-\xbf][\x80-\xbf]/";

       preg_match_all($pa, $string,
$t_string);

       if(count($t_string[0]) -
$start > $sublen) return join('', array_slice($t_string[0], $start,
$sublen))."...";
       return join('',
array_slice($t_string[0], $start, $sublen));
   }
  
else
   {
       $start =
$start*2;
       $sublen = $sublen*2;

       $strlen = strlen($string);

       $tmpstr =
'';

       for($i=0; $i<$strlen; $i++)

       {

          
if($i>=$start && $i<($start+$sublen))

           {

              
if(ord(substr($string, $i, 1))>129)

              
{

                  
$tmpstr.= substr($string, $i, 2);

              
}

              
else

              
{

                  
$tmpstr.= substr($string, $i, 1);

              
}
           }

          
if(ord(substr($string, $i, 1))>129) $i++;

       }

       if(strlen($tmpstr)<$strlen )
$tmpstr.= "...";
       return $tmpstr;

   }


}




Smarty
truncate截取utf-8格式中文
由 admin 于 周一, 03/03/2008 - 17:54 提交。 Groups:
Smarty讨论

本站原创,转载请著名来自phpbulo.com!

本文要实现直接用smarty的内置函数来截取utf-8和gb2312格式的中文字串.
1.首先进入到smarty包下的plugins,复制一份modifier.truncate.php,并重命名为modifier.truncate_cn.php,把其中的smarty_modifier_truncate函数替换为下面代码

function
smarty_modifier_truncate_cn($string, $length = 80, $etc = '...', $code =
'UTF-8')
{
    if ($length ==
0)
        return
'';
    if ($code == 'UTF-8')
{
        $pa =
"/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|\xe0[\xa0-\xbf][\x80-\xbf]|[\xe1-\xef][\x80-\xbf][\x80-\xbf]|\xf0[\x90-\xbf][\x80-\xbf][\x80-\xbf]|[\xf1-\xf7][\x80-\xbf][\x80-\xbf][\x80-\xbf]/";
   
}
    else {
    $pa =
"/[\x01-\x7f]|[\xa1-\xff][\xa1-\xff]/";
   
}
    preg_match_all($pa, $string,
$t_string);
    if (count($t_string[0]) >
$length)
        return join('',
array_slice($t_string[0], 0, $length)) . $etc;
    return
join('', array_slice($t_string[0], 0, $length)) .
$etc;
}

2.在模板中使用
phpbulo.php

<?php

$smarty->assign('string',
"我爱你中国");
$smarty->display('phpbulo.tpl');
?>
phpbulo.tpl
{$string|truncate_cn:"10":"..."}
第一个为截取的字符长度,第二个为后缀字符


3.其他
错误:(secure mode) modifier truncate_cn is not
allowed
这主要是你启用了smarty的$security功能
解决方法:
给smarty配置文件中加入允许使用的函数
$smarty->security_settings['MODIFIER_FUNCS']
= array('truncate_cn');

参考资料:
http://61.135.179.73/doku.php?id=php:smarty




Smarty截取中文扩展,支持UTF-8和GB

1function
smarty_modifier_truncate_cn($string, $length = 80, $code = 'UTF-8', $etc =
'')
2{
3    if ($length ==
0)
4        return
'';
5    if($code ==
'UTF-8'){
6        $pa =
"/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|\xe0[\xa0-\xbf][\x80-\xbf]|[\xe1-\xef][\x80-\xbf][\x80-\xbf]|\xf0[\x90-\xbf][\x80-\xbf][\x80-\xbf]|[\xf1-\xf7][\x80-\xbf][\x80-\xbf][\x80-\xbf]/";
7    
}
8    else{
9       
$pa = "/[\x01-\x7f]|[\xa1-\xff][\xa1-\xff]/";
10    
}
11    preg_match_all($pa, $string,
$t_string);
12    if(count($t_string[0]) >
$length)
13        return join('',
array_slice($t_string[0], 0, $length)).$etc;
14    return
join('', array_slice($t_string[0], 0,
$length));
15}
以下代码保存为ascii格式
1<html>
2<head>
3<title>Truncate
测试</title>
4<meta http-equiv="Content-Type" content="text/html;
charset=gbk"
/>
5</head>
6<body>
7{{$string}}<br>
8{{$string|truncate_cn:15:"":""}}<br>
9</body>
10</html>

以下代码保存为:UTF-8格式
1<html>
2<head>
3<title>Truncate
测试</title>
4<meta http-equiv="Content-Type" content="text/html;
charset=UTF-8"
/>
5</head>
6<body>
7{{$string}}<br>
8{{$string|truncate_cn:15:"UTF-8":""}}<br>
9</body>
10</html>

Smarty插件之中英文混排智能截取
truncate

文件名:modifier.smart_truncate_gb2312_string.php

<?php

function smarty_modifier_smart_truncate_gb2312_string($string, $length, $etc
= '..')
{
$result = '';

$string =
html_entity_decode(trim(strip_tags($string)), ENT_QUOTES, 'gb2312');


for($i = 0, $j = 0; $i < strlen($string); $i++)
{
if($j >=
$length)
{
for($x = 0, $y = 0; $x < strlen($etc); $x++)
{

if(ord(substr($etc, $x, 1)) > 12 8)
{
$x++;
$y++;
}

else
{
$y += 0.5;
}
}

$length -= $y;

break;

}

if(ord(substr($string, $i, 1)) > 12 8)
{
$i++;
$j++;

}
else
{
$j += 0.5;
}
}

for($i = 0; (($i <
strlen($string)) && ($length > 0)); $i++)
{

if(ord(substr($string, $i, 1)) > 12 8)
{
if($length < 1.0)

{
break;
}

$result .= substr($string, $i, 2);
$length -=
1.0;

$i++;
}
else
{
$result .= substr($string, $i, 1);

$length -= 0.5;
}
}

$result = htmlentities($result,
ENT_QUOTES, 'gb2312');

if($i < strlen($string))
{
$result .=
$etc;
}

return $result;
}
?>


下面看看UTF-8的相关实现,其实大体都是一样的。


文件名:modifier.smart_truncate_utf8_string.php

<?php

function smarty_modifier_smart_truncate_utf8_string($string, $length, $etc =
'..')
{
$result = '';

$string =
html_entity_decode(trim(strip_tags($string)), ENT_QUOTES, 'utf-8');


for($i = 0, $j = 0; $i < strlen($string); $i++)
{
if($j >=
$length)
{
for($x = 0, $y = 0; $x < strlen($etc); $x++)
{

if($number = strpos(str_pad(decbin(ord(substr($string, $i, 1))), 8, '0',
STR_PAD_LEFT), '0'))
{
$x += $number - 1;
$y++;
}
else
{

$y += 0.5;
}
}

$length -= $y;

break;
}


if($number = strpos(str_pad(decbin(ord(substr($string, $i, 1))), 8, '0',
STR_PAD_LEFT), '0'))
{
$i += $number - 1;
$j++;
}
else
{

$j += 0.5;
}
}

for($i = 0; (($i < strlen($string))
&& ($length > 0)); $i++)
{
if($number =
strpos(str_pad(decbin(ord(substr($string, $i, 1))), 8, '0', STR_PAD_LEFT), '0'))

{
if($length < 1.0)
{
break;
}

$result .=
substr($string, $i, $number);

$length -= 1.0;

$i += $number - 1;

}
else
{
$result .= substr($string, $i, 1);

$length -=
0.5;
}
}

$result = htmlentities($result, ENT_QUOTES, 'utf-8');


if($i < strlen($string))
{
$result .= $etc;
}


return $result;
}
?>

原文地址:http://hi.baidu.com/lssbing/blog ...
4fcd579922ed44.html
Posted in webdesign | Leave a comment

编程入门教程 from 享受软件

编程入门教程(英文)

非常齐全的编程from 享受软件 by 语言英文教程,虽然是英文版的,但英文版的更值得去研究,做困难的事情比起做容易的事情更会有成就感。

下面是一些非常不错的编程入门教程,当然,全是英文版的。不过因为是新手教程,所以非常容易阅读,可以在学习技术的同时加强一下自己的英语阅读能力。

如果你是一个新手,建议你把本页设为你的收藏夹。

编程入门教程

C
Introduction to C Programming
C Optimization Tutorial
Compiling C and C++ Programs on UNIX Systems - gcc/g++
Building and Using Static and Shared C Libraries
Programming in C: UNIX System Calls and Subroutines Using C
C FAQ
C Programming Class Notes
ANSI C for Programmers on UNIX Systems
Sams Teach Yourself C in 24 Hours
Sams Teach Yourself C in 21 Days (4th Ed.)
The Standard C Library for Linux - Part 1: file functions
The Standard C Library for Linux - Part 2: character input/output
The Standard C Library for Linux - Part 3: formatted input/output
The Standard C Library for Linux - Part 4: Character Handling
The Standard C Library for Linux - Part 5: Miscellaneous Functions
Programming in C: A Tutorial
An Introduction to C Development on Linux
C Programming Course
C Language Tutorial
CScene: An Online Magazine for C and C++ Programming

C++
C++ Tutorial
Understanding C++: An Accelerated Introduction
An Introduction to C++ Class Hierarchies
G++ FAQ
Introduction to Object-Oriented Programming Using C++
Compiling C and C++ Programs on UNIX Systems - gcc/g++
C++ FAQ Lite
C++ Programming Language Tutorials
Reducing Dependencies in C++
C++ Exception Handling
Part 1: Unicode
Part 2: A Complete String Class
Making C++ Loadable Modules Work
Sams Teach Yourself C++ in 21 Days (2nd Ed.)
C++ Portability Guide
C++ Tips
C++ Language Tutorial
CScene: An Online Magazine for C and C++ Programming
C++ Libraries FAQ

CGI
CGI Programming Tutorial
CGI Programming 101
CGI Manual of Style
CGI Developer’s Guide
CGI Programming Unleashed
Sams Teach Yourself CGI Programming with Perl 5 in a Week (2nd Ed.)
CGI/Perl Tips, Tricks and Hints
A Tour of HTML Forms and CGI Scripts
Reading CGI Data: URL-Encoding and the CGI Protocol
CGI Programming FAQ

CORBA
CORBA FAQ
A Brief Tutorial on CORBA
CORBA 2.0 Specification
CORBA Tutorials
Sams Teach Yourself CORBA in 14 Days
Linux Network Programming, Part 3 - CORBA: The Software Bus
CORBA Program Development, Part 1
CORBA Program Development, Part 2
CORBA Program Development, Part 3

CSS
CSS2 Tutorial

CVS
CVS Tutorial
Concurrent Version System Tutorial

DHTML
Introduction to Dynamic HTML

Emacs
Emacs: The Software Engineer’s “Swiss Army Knife”
Emacs FAQ
GNU Emacs Lisp Reference Manual
Programming in Emacs Lisp
GNU Emacs Manual
A Tutorial Introduction to Emacs
EMACSulation: Internet-ready!
EMACSulation: Ediff - An Emacs interface to diff and patch
EMACSulation: Emacs as a Server
EMACSulation: Customizing Emacs
Basic Emacs
EMACSulation: Templating Mechanisms
Emacs Macros and the Power-Macros Package
Polyglot Emacs 20.4

Expect
Advanced Programming in Expect: A Bulletproof Interface
Automating Tasks with Expect
What Can you Expect?–A Data Collection Project Using Linux

Fortran
Professional Programmer’s Guide to Fortran 77
Fortran 90 and Computational Science
User Notes on Fortran Programming
Fortran Programming for Physics and Astronomy
A Fortran 90 Tutorial
Using GNU Fortran
Fortran 90: A Course for Fortran 77 Programmers
Fortran 90 for the Fortran 77 Programmer
Introduction to Fortran

GIMP
GIMP Tutorial Index
A Tutorial for Perl GIMP Users
A Scheme Tutorial for GIMP Users
GIMP Guide
The GIMP User Manual
Pseudo 3-D with GIMP
Graphical Photocomposition with GIMP
Creating Text with the GIMP
Creating Fire Effects with the GIMP
Creating and Editing Animations with GIMP
GIMP-Perl: GIMP Scripting for the Rest of Us
Writing a GIMP Plugin
GIMP: The RRU Tutorial
GIMP User FAQ
Script-Fu Tutorial
The Quick Start Guide to the GIMP, Part 1
The Quick Start Guide to the GIMP, Part 2
The Quick Start Guide to the GIMP, Part 3
The Quick Start Guide to the GIMP, Part 4

GNOME
Application Programming Using the GNOME Libraries
Part 1: Everything You Need to Get Started
Part 2: Building a Sample Genealogy Program
Part 3: Adding File Saving and Loading Using libxml
Creating GTK+ Widgets with GOB: An Easier Way to Derive New GTK+ Widgets
Handling Multipel Documents: Using the GnomeMDI Framework
Livening Things Up: Graphics Made Easy Using the GNOME Canvas
Developing Gnome Applications with Python - Part 1

GTK
GDK Reference Manual
GLib Reference Manual
GTK+ Reference Manual
The GIMP Toolkit
GTK+ FAQ
GTK V1.2 Tutorial
Drawing and Event Handling in GTK
An Introduction to the GIMP Tool Kit

Gnuplot
Constrained Dynamics
Continuum Dynamics
Differential Equation Basics
Energy Functions and Stiffness
Particle System Dynamics
An Introduction to Physically Based Modeling
Rigid Body Dynamics I
Rigid Body Dynamics II
Scientific Visualization Tutorials
Gnuplot - An Interactive Plotting Program
GIF Animation Tutorial

HTML
HTML Table Tutorial
HTML by Example
How to Use HTML 3.2
Creating a Client-Side Image Map
Advanced HTML: How to Create Complex Multimedia Documents for the Web
The ABCs of HTML
Sharky’s Netscape Frames Tutorial

ILU
ILU Reference Manual
Using ILU with ANSI C: A Tutorial
Using ILU with Java: A Tutorial
Using ILU with Python: A Tutorial

IP-Masquerading
ipchains: Packet Filtering for Linux 2.2
Setting Up IP Masquerade
Setting Up IP-Masquerading
Ipchains: Easy Links to the Net
Linux Networking Using Ipchains

IPC
Advanced 4.4BSD Interpprocess Communication Tutorial
UNIX Multi-Process Programming and IPC

Java
Enterprise JavaBeans Tutorial
JavaBeans Short Course
Introduction to the JavaBeans API
JDBC Short Course
Essentials of the Java Programming Language, Part 1
Essentials of the Java Programming Language, Part 2
Writing Advanced Applications for the Java Platform
Fundamentals of Java Security
Fundamentals of Java Servlets
Introduction to the Collections Framework
Introduction to CORBA
Fundamentals of RMI
Advanced
Introductory
Intermediate
Java Language Specification
Java Tutorial: Servlet Trail
Java Virtual Machine Specification (2nd Ed.)
Glossary of Java and Related Terms
The Java Language Environment
Java Look and Feel Design Guidelines
Story of a Servlet: An Instant Tutorial
Introduction to Java
Java2D: An Introduction and Tutorial
Java Servlet Tutorial
comp.lang.java FAQ
Brewing Java: A Tutorial
Shlurrrppp … Java: The First User-Friendly Tutorial on Java
Swing Tutorial
Swing: A Quick Tutorial for AWT Programmers
Thinking in Java
Java RMI Tutorial
Java for C++ Programmers
The Advanced Jav/aJ2EE Tutorial
Hacking Java: The Java Professional’s Resource Kit
JFC Unleashed
Java Developer’s Guide
Java Developer’s Reference
Sams Teach Yourself Java in 21 Days (Professional Reference Ed.)
Java Unleashed (2nd Ed.)
Java 1.1 Unleashed (3rd Ed.)
Java Game Programming Tutorial
Java Networking FAQ
Java Tutorial: A Practical Guide for Programmers
Sockets Programming in Java
Programming with Java - Part I
Programming with Java - Part II
Setting Up a Java Development Environment for Linux
Understanding Java
Beginner’s Guide to JDK
GUI Development in Java
Java Servlets: An introduction to writing and running Java servlets on Linux

JavaScript
Introductory JavaScript Tutorials
JavaScript Authoring Guide
Client-Side JavaScript 1.3 Guide
Client-Side JavaScript 1.3 Reference
Core JavaScript 1.4 Guide
Core JavaScript 1.4 Reference
Server-Side JavaScript 1.4 Guide
JavaScript FAQ
JavaScript Tutorial
The Way of JavaScript
Voodoo’s Introduction to JavaScript
JavaScript Tutorial for Programmers
JavaScript Primer
EchoEcho JavaScript Tutorial
Sams Teach Yourself JavaScript 1.1 in a Week (2nd Ed.)

Lisp
Common Lisp Hints
Common Lisp the Language (2nd Ed.)
Lisp FAQ
Lisp Programming Tutorial
Lisp Tutorial
LISP Tutorial
Common Lisp HyperSpec

MIDI
Basic MIDI Tutorials
Tutorial on MIDI and Music Synthesis

ML
ML Tutorial
Programming in Standard ML ‘97
A Gentle Introduction to ML
Moscow ML Owner’s Manual

MPI
An MPI Tutorial
Tutorial on MPI
MPI: Portable Parallel Programming for Scientific Computing
Tuning MPI Applications for Peak Performance
MPI: From Fundamentals to Applications
MPI Tutorial
MPI: The Complete Reference
Introduction to Parallel Programming Using MPI
Basics of MPI Programming

Matlab
Matlab Basics Tutorial
Matlab Summary and Tutorial
Matlab - Official Online Manuals in PDF

Misc
The Soar 8 Tutorial Home Page

Posted in Learn | Leave a comment

java中各种时间格式的转化

经常会遇到处理时间和日期的情况,小记一下

时间和日期中常用到的几个类:java.util.Date,
java.util.Calendar,
java.util.GregorainCalendar,
java.text.DateFormat,
java.text.SimpleDateFormat

java.util.Date :

表示特定瞬间,精确到毫秒
一天是 24 * 60 * 60 = 86400 秒
世界时(UT 或 UTC) , 格林威治时间 (GMT), 格林威治时(GMT)和世界时(UT)
是相等的,格林威治时(GMT) 是标准的"民间"称呼, 世界时(UT) 是相同标准的
科学称呼。UTC 和 UT 的区别是:UTC 是基于原子时钟的,UT 是基于天体观察的。
(中文版的jdk 真是好啊,跟科普教材是的,呵呵)

常用的构造方法 :

Date();

Date(long date)

(long date) 表示从标准基准时间(称为 "历元" epoch ,即 1970.1.1
00:00:00 GMT)经历的毫秒数。

还有一些构造方法已经 deprecated 了

主要的方法:(介绍几个常用的,详细的查询 jdk 文档)

boolean after(Date when) 测试日期在此日期之后。

boolean before(Date when) 测试日期在此日期之前。

Object clone() 返回此对象的副本

long getTime() 返回自 1970.1.1 00:00:00 GMT 后,此对象表示的毫秒数

void setTime(long time) 设置此 Date 对象,以表示 1970 年 1 月 1 日
00:00:00 GMT 以后 time 毫秒的时间点。

String toString() 将 Date 对象转化成以下形式的
String:dow mon dd hh:mm:ss zzz yyyy

其中: dow 是一周中的某一天 (Sun, Mon, Tue, Wed, Thu, Fri, Sat)。
dow 是一周中的某一天 (Sun, Mon, Tue, Wed, Thu, Fri, Sat)。
mon 是月份 (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep,
Oct, Nov, Dec)。

dd 是一月中的某一天(01 至 31),显示为两位十进制数。
hh 是一天中的小时(00 至 23),显示为两位十进制数。
mm 是小时中的分钟(00 至 59),显示为两位十进制数。
ss 是分钟中的秒数(00 至 61),显示为两位十进制数。 60,61 是因为有"润秒"
zzz 是时区(并可以反映夏令时)。标准时区缩写包括方法 parse 识别的时区缩写。
如果不提供时区信息,则 zzz 为空,即根本不包括任何字符。
yyyy 是年份,显示为 4 位十进制数。

使用 System.currentTimeMillis() 获得当前系统时间的毫秒数

java.util.Calendar :

Calendar 类是一个抽象类.

Calendar rightNow = Calendar.getInstance();

可以使用三种方法更改日历字段:set()、add() 和 roll()。

set(f, value) 将日历字段 f 更改为 value。
此外,它设置了一个内部成员变量,以指示日历字段 f 已经被更改。尽管日历字段
f 是立即更改的,但是直到下次调用 get()、getTime()、getTimeInMillis()、
add() 或 roll() 时才会重新计算日历的时间值(以毫秒为单位)。因此,多次调
用 set() 不会触发多次不必要的计算。

add(f, delta) 将 delta 添加到 f 字段中。这等同于调用
set(f, get(f) + delta)

roll(f, delta) 将 delta 添加到 f 字段中,但不更改更大的字段。

java.util.GregorianCalendar:
GregorianCalendar 是 Calendar 的一个具体子类,提供了世界上大多数国家
使用的标准日历系统。

java.text.DateFormat:
DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并
分析日期或时间。

java.text.SimpleDateFormat:

SimpleDateFormat 是一个以与语言环境相关的方式来格式化和分析日期的具体类。
它允许进行格式化(日期 -> 文本)、分析(文本 -> 日期)和规范化。

SimpleDateFormat 使得可以选择任何用户定义的日期-时间格式的模式。但是,
仍然建议通过 DateFormat 中的 getTimeInstance、getDateInstance 或
getDateTimeInstance 来新的创建日期-时间格式化程序。每一个这样的类方法
都能够返回一个以默认格式模式初始化的日期/时间格式化程序。可以根据需要使用
applyPattern 方法来修改格式模式。

日期和时间格式由日期和时间模式 字符串指定。
在日期和时间模式字符串中,未加引号的字母 'A' 到 'Z' 和 'a' 到 'z'
被解释为模式字母,用来表示日期或时间字符串元素。

 

引用

字母 日期或时间元素 表示 示例
G Era 标志符 Text AD
y 年 Year 1996; 96
M 年中的月份 Month July; Jul; 07
w 年中的周数 Number 27
W 月份中的周数 Number 2
D 年中的天数 Number 189
d 月份中的天数 Number 10
F 月份中的星期 Number 2
E 星期中的天数 Text Tuesday; Tue
a Am/pm 标记 Text PM
H 一天中的小时数(0-23) Number 0
k 一天中的小时数(1-24) Number 24
K am/pm 中的小时数(0-11) Number 0
h am/pm 中的小时数(1-12) Number 12
m 小时中的分钟数 Number 30
s 分钟中的秒数 Number 55
S 毫秒数 Number 978
z 时区 General time zone Pacific Standard Time; PST; GMT-08:00
Z 时区 RFC 822 time zone -0800

 

 

 

引用

日期和时间模式 结果
"yyyy.MM.dd G 'at' HH:mm:ss z" 2001.07.04 AD at 12:08:56 PDT
"EEE, MMM d, ''yy" Wed, Jul 4, '01
"h:mm a" 12:08 PM
"hh 'o''clock' a, zzzz" 12 o'clock PM, Pacific Daylight Time
"K:mm a, z" 0:08 PM, PDT
"yyyyy.MMMMM.dd GGG hh:mm aaa" 02001.July.04 AD 12:08 PM
"EEE, d MMM yyyy HH:mm:ss Z" Wed, 4 Jul 2001 12:08:56 -0700
"yyMMddHHmmssZ" 010704120856-0700
"yyyy-MM-dd'T'HH:mm:ss.SSSZ" 2001-07-04T12:08:56.235-0700

 

获得当前系统的毫秒数:
代码
package org.lokvin.example.calendar;   
  
public class CalendarExample1 {   
       
    public static void main(String[] args) {   
           
        java.util.Date date = new java.util.Date();   
        //获得当前系统的毫秒数,自 1970.1.1 00:00:00 GMT   
        long time = System.currentTimeMillis();   
        java.util.Date date1 = new java.util.Date(time);   
        System.out.println("date = " + date.toString());   
        System.out.println("millisecond = " + time);   
        System.out.println("date1 = " + date1.toString());     
    }   
  
}   

运行结果:
引用

date = Mon Dec 04 16:01:16 CST 2006
millisecond = 1165219276771
date1 = Mon Dec 04 16:01:16 CST 2006

 

 

代码
package org.lokvin.example.calendar;   
  
import java.util.Calendar;   
import java.util.GregorianCalendar;   
  
public class CalendarExample2 {   
       
    public static void main(String[] args) {   
        //获得当前日期   
        Calendar calendar = Calendar.getInstance();   
        int era = calendar.get(Calendar.ERA);// 0 = BC, 1 = AD   
        System.out.println("ERA = " + era);   
        int year = calendar.get(Calendar.YEAR); //2006   
        System.out.println("YEAR = " + year);   
        int month = calendar.get(Calendar.MONTH);   
        //获得当前月份, 0..11 表示 JAN..DEC   
        System.out.println("Month = " + month);//0 = JAN ... 11 = DEC   
        int day = calendar.get(Calendar.DAY_OF_MONTH);   
        System.out.println("Day of Month = " + day); // 1   
        //获得日期在本周的天数, Sun=1, Mon=2 ... Sta=7   
        int day_of_week = calendar.get(Calendar.DAY_OF_WEEK);   
        System.out.println("Day of Week = " + day_of_week);   
           
        //获得当前时间 12 时制是 Calendar.HOUR   
        int hour12 = calendar.get(Calendar.HOUR);   
        //获得 AM ,PM , 0 = AM, 1 = PM   
        int ampm = calendar.get(Calendar.AM_PM);   
        System.out.println("hour 12 = " + hour12);   
        System.out.println("am pm = " + ampm); //0 = am , 1 = pm   
        //获得当前时间 24 时制 Calendar.HOUR_OF_DAY   
        int hour24 = calendar.get(Calendar.HOUR_OF_DAY);   
        System.out.println("hour 24 = " + hour24);   
           
           
        Calendar today = new GregorianCalendar(2006, Calendar.DECEMBER, 4);   
        //Calendar.getInstance() 得到当前具体到毫秒的一个时间点   
        System.out.println("calendar = " + calendar.getTime().toString());   
        //通过 new GregorianCalendar(2006, Calendar.DECEMBER, 4)   
        //生成的 calendar 除了指定的年,月,日其余为0(时分秒=0)   
        System.out.println("today = " + today.getTime().toString());   
           
           
    }   
  
}   
  

运行结果:
引用

ERA = 1
YEAR = 2006
Month = 11
Day of Month = 4
Day of Week = 2
hour 12 = 4
am pm = 1
hour 24 = 16
calendar = Mon Dec 04 16:22:42 CST 2006
today = Mon Dec 04 00:00:00 CST 2006

 

两个日期之间的比较:
代码
package org.lokvin.example.calendar;   
  
import java.util.Calendar;   
import java.util.GregorianCalendar;   
  
/*  
* 比较两个 calendar 对象之间的先后  
*/  
public class CalendarExample3 {   
       
    public static void main(String[] args) {   
        //日期比较   
        Calendar xmas = new GregorianCalendar(2006, Calendar.DECEMBER, 25);   
        Calendar newYear = new GregorianCalendar(2007, Calendar.JANUARY, 1);   
           
        //比较两个日期先后   
        boolean flag = xmas.before(newYear);   
        System.out.println("flag = " + flag);   
           
        flag = xmas.after(newYear);   
        System.out.println("flag = " + flag);   
           
        //两个日期相差的毫秒数   
        long timeDiffMillis = newYear.getTimeInMillis() - xmas.getTimeInMillis();   
        System.out.println("time diff millis = " + timeDiffMillis);   
           
        //两个日期相差的秒数   
        long diffSecs = timeDiffMillis / 1000;   
        System.out.println("time diff secs = " + diffSecs);   
           
        //两个日期相差的分钟   
        long diffMins = timeDiffMillis / (1000 * 60);   
        System.out.println("time diff mins = " + diffMins);   
           
        //两个日期相差的小时   
        long diffHours = timeDiffMillis / (1000 * 60 * 60);   
        System.out.println("time diff hours = " + diffHours);   
           
        //两个日期相差的天   
        long diffDays = timeDiffMillis / (1000 * 60 * 60 * 24);   
        System.out.println("time diff days = " + diffDays);   
               
    }   
  
}   

运行结果:

 

引用

flag = true
flag = false
time diff millis = 604800000
time diff secs = 604800
time diff mins = 10080
time diff hours = 168
time diff days = 7

 

 

使用Calendar 计算年龄:

 

代码
package org.lokvin.example.calendar;   
  
import java.util.Calendar;   
import java.util.GregorianCalendar;   
  
/*  
* 计算年龄  
*/  
public class CalendarExample4 {   
      
    public static void main(String[] args) {   
        //创建生日的 Calendar 对象   
        Calendar birthDate = new GregorianCalendar(1979, Calendar.JULY, 7);   
        Calendar today = Calendar.getInstance();   
        int age = today.get(Calendar.YEAR) - birthDate.get(Calendar.YEAR);   
           
        //如果还没有过生日,则 age - 1   
        birthDate.add(Calendar.YEAR, age);   
        if(today.before(birthDate)){   
            age--;   
        }   
        System.out.println("age = " + age);   
    }   
  
      
  
}   

判断是否为闰年:

 

代码
package org.lokvin.example.calendar;   
  
import java.util.GregorianCalendar;   
  
/*  
* 判断是否为闰年 leap year  
*/  
public class CalendarExample5 {   
       
    public static void main(String[] args) {   
        //判断是否"闰年" leap year   
        GregorianCalendar cal = new GregorianCalendar();   
        boolean isLeapYear = cal.isLeapYear(199 8) ;   
        System.out.println("is leap year 1998 = " + isLeapYear);   
        isLeapYear = cal.isLeapYear(2000);   
        System.out.println("is leap year 2000 = " + isLeapYear);   
    }   
}   

运行结果 :

引用

is leap year 1998 = false
is leap year 2000 = true

 

获得其他时区的时间:
代码
package org.lokvin.example.calendar;   
  
import java.util.Calendar;   
import java.util.GregorianCalendar;   
import java.util.TimeZone;   
  
/*  
* 获得其他时区当前时间  
*/  
  
public class CalendarExample6 {   
       
    public static void main(String[] args) {   
           
        Calendar cal = new GregorianCalendar();   
        int hour12 = cal.get(Calendar.HOUR);   
        int hour24 = cal.get(Calendar.HOUR_OF_DAY);   
        System.out.println("hour12 in our timezone = " + hour12);   
        System.out.println("hour24 in our timezone = " + hour24);   
           
        //获得其他时区的当前时间,根据 zoneId 获得时区   
        Calendar calJap = new GregorianCalendar(TimeZone.getTimeZone("Japan"));   
        hour12 = calJap.get(Calendar.HOUR);   
        System.out.println("hour12 in japs timezone = " + hour12);   
        hour24 = calJap.get(Calendar.HOUR_OF_DAY);   
        System.out.println("hour24 in japs timezone = " + hour24);   
           
        //获得 zoneId 的列表   
        String[] zoneIds = TimeZone.getAvailableIDs();   
        for(int i=0; i<zoneIds.length; i++) {   
            String zoneId = zoneIds[i];   
            System.out.println("zone id = " + zoneId);   
        }   
    }   
}   
  

运行结果:
引用

hour12 in our timezone = 5
hour24 in our timezone = 17
hour12 in japs timezone = 6
hour24 in japs timezone = 18
zone id = Etc/GMT+12
zone id = Etc/GMT+11
zone id = MIT
zone id = Pacific/Apia
zone id = Pacific/Midway
...

 

格式化日期:
代码
package org.lokvin.example.calendar;   
  
import java.text.DateFormat;   
import java.text.SimpleDateFormat;   
import java.util.Date;   
  
public class DateForamExample {   
    public static void main(String[] args) {   
        Date rightNow = new Date();   
        DateFormat format1 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");   
        DateFormat format2 = new SimpleDateFormat("yyyy-MM-dd");   
        DateFormat format3 = new SimpleDateFormat("h:mm a");   
        DateFormat format4 = new SimpleDateFormat("yyyy.MM.dd G 'at' HH:mm:ss z");   
        DateFormat format5 = new SimpleDateFormat("EEE, MMM, dd, ''yyyy");   
        DateFormat format6 = new SimpleDateFormat("yyyy.MM.dd kk:mm 'o''clock' a, zzzz");   
        DateFormat format7 = new SimpleDateFormat("yyyyy.MMMMM.dd GGG hh:mm aaa");   
           
        System.out.println("format1 = " + format1.format(rightNow));   
        System.out.println("format2 = " + format2.format(rightNow));   
        System.out.println("format3 = " + format3.format(rightNow));   
        System.out.println("format4 = " + format4.format(rightNow));   
        System.out.println("format5 = " + format5.format(rightNow));   
        System.out.println("format6 = " + format6.format(rightNow));   
        System.out.println("format7 = " + format7.format(rightNow));   
    }   
  
}   

输出结果:

引用

format1 = 2006-12-05 06:12:02
format2 = 2006-12-05
format3 = 6:12 下午
format4 = 2006.12.05 公元 at 18:12:02 CST
format5 = 星期二, 十二月, 05, '2006
format6 = 2006.12.05 18:12 o'clock 下午, 中国标准时间
format7 = 02006.十二月.05 公元 06:12 下午

 

 

取当月的第一天:
java.text.SimpleDateFormat format = new java.text.SimpleDateFormat("yyyy-MM-01");
java.util.Date firstDay=new java.util.Date();
System.out.println("the month first day is "+formats.format(firstDay));
取当月的最后一天:
Calendar cal = Calendar.getInstance();
int maxDay=cals.getActualMaximum(Calendar.DAY_OF_MONTH);
java.text.Format formatter3=new java.text.SimpleDateFormat("yyyy-MM-"+maxDay);
System.out.println(formatter3.format(cal.getTime()));

Posted in Java | Leave a comment

20多个Web2.0风格网站设计实例欣赏




20多个Web2.0风格网站设计实例欣赏



我们都在谈Web2.0,
却又无法说清楚Web2.0是个什么东西。已经有很多人在开始研究Web2.0风格的网站设计,但同时有很大一部分设计师并不同意Web2.0是一种设计,从理论上说,也确实不是。但我们看到越来越多的网站设计,从概念来说符合了Web2.0的特征。于是,一些所谓的Web2.0风格的网页设计元素也得以慢慢形成,比如倒影效果、渐变效果、大字体、100%的宽度等等。


就这些很早就有的网页设计效果就构成Web2.0了?这听上去或许有点可笑,但要真正把这些简单的元素运用得当,很好的融合到一个网站中,让你的网站看上去确实跟上Web2.0的潮流了,或许并不是那么简单的事情。下面Oli精选了20多个Web2.0风格网站设计实例,仔细的浏览一番,或许给你带来更多的设计灵感,更加深入的了解Web2.0网页设计的特征,尤其是那些无法用文字表达清楚的东西。


OnWired


210 20多个Web2.0风格网站设计实例欣赏


Studio 3K


32 20多个Web2.0风格网站设计实例欣赏


Red Relevant


51 20多个Web2.0风格网站设计实例欣赏


Websmith ATP


42 20多个Web2.0风格网站设计实例欣赏


Revolver


111 20多个Web2.0风格网站设计实例欣赏


Church Plant Media


61 20多个Web2.0风格网站设计实例欣赏


Giant Peach Design


71 20多个Web2.0风格网站设计实例欣赏


Campaign Monitor


81 20多个Web2.0风格网站设计实例欣赏


Mochi Kit


91 20多个Web2.0风格网站设计实例欣赏


Blogonize


101 20多个Web2.0风格网站设计实例欣赏


Future of Online
Advertising


112 20多个Web2.0风格网站设计实例欣赏


Hell Design


121 20多个Web2.0风格网站设计实例欣赏


Pownce


181 20多个Web2.0风格网站设计实例欣赏


iMusic Tools


131 20多个Web2.0风格网站设计实例欣赏


Yike Site


141 20多个Web2.0风格网站设计实例欣赏


Storm Lab


151 20多个Web2.0风格网站设计实例欣赏


Action This


161 20多个Web2.0风格网站设计实例欣赏


Trevor Berg


172 20多个Web2.0风格网站设计实例欣赏


Ekklesia


191 20多个Web2.0风格网站设计实例欣赏


Beta Bug


201 20多个Web2.0风格网站设计实例欣赏

附件(1):
210.jpg

附件(2):
32.jpg

附件(3):
51.jpg

附件(4):
42.jpg

附件(5):
111.jpg

附件(6):
61.jpg

附件(7):
71.jpg

附件( 8) :
81.jpg

附件(9):
91.jpg

附件(10):
101.jpg

附件(11):
112.jpg

附件(12):
121.jpg

附件(13):
181.jpg

附件(14):
131.jpg

附件(15):
141.jpg

附件(16):
151.jpg

附件(17):
161.jpg

附件(1 8) :
172.jpg

附件(19):
191.jpg

附件(20):
201.jpg

Posted in webdesign | Leave a comment

Excel公式大全(非常难得)

 
 

Sent to you by qusharp via Google Reader:

 
 
via 享受软件 by 享受软件 on 2/27/09

如果你在上班的话,有一天你会发现.运用好Excel会给自己很大的加分的!

1

  FIND(find_text,within_text,start_num)

  返回值为:所要查找的字符串的第一个位置

  start_num<=0 or start_num<within_text长度 则返回#Value

  eg:FIND(”1″,F10,0)=#Value

  如果字符串未找到则返回#Value

  FIND(”0″,F10,1)=#Value

  查找区分大小写

  eg:FIND(”m”,”Miriam McGovern”)=6

  第1楼

  2

  FINDB(find_text,within_text,start_num)

  按字符来查找

  eg:FINDB(”京”,”东京都”) 等于 3

  第2楼

  3

  SEARCH(find_text,within_text,start_num)

  SEARCHB(find_text,within_text,start_num)

  查找时不区分字符大小写的!

  第3楼

  4

  MATCH(lookup_value,lookup_array,match_type)

  函数 MATCH 返回 lookup_array 中目标值的位置,而不是数值本身。例如,MATCH(”b”,{”a”,”b”,”c”},0) 返回 2,即 “b” 在数组 {”a”,”b”,”c”} 中的相应位置。

  查找文本值时,函数 MATCH 不区分大小写字母。

  如果函数 MATCH 查找不成功,则返回错误值 #N/A。

  如果 match_type 为 0 且 lookup_value 为文本,lookup_value 可以包含通配符、星号(*)和问号(?)。星号可以匹配任何字符序列;问号可以匹配单个字符。

  第4楼

  5

  补充说明MATCH函数

  Lookup_value 为需要在 Look_array 中查找的数值。例如,如果要在电话簿中查找某人的电话号码,则应该将姓名作为查找值,但实际上需要的是电话号码。

  Lookup_value 可以为数值(数字、文本或逻辑值)或对数字、文本或逻辑值的单元格引用。

  Lookup_array 可能包含所要查找的数值的连续单元格区域。Lookup_array 可以为数组或数组引用。

  Match_type 为数字 -1、0 或 1。Match-type 指明 Microsoft Excel 如何在 lookup_array 中查找 lookup_value。

  如果 match_type 为 1,函数 MATCH 查找小于或等于 lookup_value 的最大数值。Lookup_array 必须按升序排列:…、-2、-1、0、1、2、…、A-Z、FALSE、TRUE。

  如果 match_type 为 0,函数 MATCH 查找等于 lookup_value 的第一个数值。Lookup_array 可以按任何顺序排列。

  如果 match_type 为 -1,函数 MATCH 查找大于或等于 lookup_value 的最小数值。Lookup_array 必须按降序排列:TRUE、FALSE、Z-A、…、2、1、0、-1、-2、…,等等。

  如果省略 match_type,则假设为 1。

  第5楼

  6

  数组之间的查找!返回值为数值

  HLOOKUP(lookup_value,table_array,row_index_num,range_lookup)

  VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)

  第6楼

  7

  较为熟悉的取字符串函数

  LEFT(text,num_chars) & LEFTB(text,num_bytes)

  RIGHT(text,num_chars) & RIGHTB(text,num_bytes)

  MID(text,start_num,num_chars) & MIDB(text,start_num,num_bytes)

  第7楼

  8

  CODE(text)

  Text 为需要得到其第一个字符代码的文本。

  eg:

  CODE(”A”) 等于 65

  CODE(”Alphabet”) 等于 65

  第8楼

  9

  YEN(number,decimals)

  Number 为要转换成文本的数字,或对包含数字的单元格的引用,或结果为数字的公式。

  Decimals 为数字四舍五入的截止位。如果值为正数,则小数点右边的位将四舍五入。如果该值为负数,则小数点左边的位将四舍五入。如果忽略此参数,则假定为 0,且不对数字进行四舍五入。

  第9楼

  10

  VALUE(text)

  Text 为带引号的文本,或对需要进行文本转换的单元格的引用。Text 可以是 Microsoft Excel 中可识别的任意常数、日期或时间格式。如果 Text 不为这些格式,则函数 VALUE 返回错误值 #VALUE!。

  第10楼

  11

  TEXT(value,fromat_text)

  Value 为数值、计算结果为数值的公式,或对数值单元格的引用。

  fromat_text 所要选用的文本型数字格式。即“单元格格式”对话框“数字”选项卡的“分类”列表框中显示的格式。fromat_text 不能包含星号 (*),也不能是常规型。

  eg:

  TEXT(2.715, “¥0.00″) 等于 “¥2.72″

  TEXT(”4/15/91″, “mmmm dd, yyyy”) 等于 “April 15, 1991″

  第11楼

  12

  T(value)

  Value 为需要进行测试的值。如果 value 本身就是文本,或是对文本单元格的引用,函数 T 将返回 value ;如果没有引用文本,则返回 “”(空文本)。

  第12楼

  13

  SUBSTITUTE(text,old_text,new_text,instance_num)

  Text 为需要替换其中字符的文本,或对含有文本的单元格的引用。

  Old_text 为需要替换的旧文本。

  New_text 用于替换 old_text 的文本。

  Instance_num 为一数值,用来指定以 new_text 替换第几次出现的 old_text。如果指定了 instance_num,则只有满足要求的 old_text 被替换;否则将用 new_text 替换 Text 中出现的所有 old_text。

  第13楼

  14

  PHONETIC(reference)

  Reference 为文本串或对单个单元格或包含 furigana 文本串的单元格区域的引用。

  如果 reference 为单元格区域,则返回区域左上角单元格中的 furigana 文本串。

  如果 reference 为不相邻单元格的区域,将返回 #N/A 错误值。

  说明:为检验!

  第14楼

  15

  PROPER(text)

  Text 为需要进行转换的字符串数据、包括在一组双引号中的文字串、返回文本值的公式或是对包含文本的单元格的引用。

  第15楼

  16

  REPT(text,number_times)

  Text 需要重复显示的文本。

  Number_times 需要进行重复的次数,为正数,如果 number_times 为 0,函数 REPT 返回 “”(空文本);如果 number_times 不为整数,它将被截尾取整。函数 REPT 的结果不能多于 255 个字符。

  第16楼

  17

  FIXED(number,decimals,no_commas)

  Number 要进行四舍五入并转换成文字串的数。

  Decimals 为一数值,用以指定小数点右边的小数位数。

  No_commas 为一逻辑值。如果其值为 TRUE,则函数 FIXED 返回的文字不含逗号;如果 no_commas 的值等于 FALSE 或省略,则返回的文字中包含逗号。

  在 Microsoft Excel 中,Numbers 的最大有效位数不能超过 15 位,但 decimals 可达到 127。

  如果 decimals 为负数,则 Number 进行四舍五入处理的基准点将从小数点向左数起。

  如果省略 decimals,则假设它为 2。

  第17楼

  18

  EXACT(text1,text2)

  比较字符串,区分大小写

  第18楼

  19

  依照货币格式将小数四舍五入到指定的位数并转换成文字

  DOLLAR 或 RMB(number,decimals)

  Number 为数字、包含数字的单元格引用,或是计算结果为数字的公式。

  Decimals 为十进制数的小数位数。如果 Decimals 为负数,则参数 number 从小数点往左按相应位数取整。如果省略 Decimals,则假设其值为 2 。

  第19楼

  20

  CLEAN(text)

  Text 要从中删除不能打印字符的任何工作表信息。

  第20楼

  21

  CONCATENATE (text1,text2,…)

  Text1, text2, … 为 1 到 30 个将要合并成单个文本项的文本项。这些文本项可以为文字串、数字或对单个单元格的引用

  第21楼

  22

  ASC(text)

  Text 为文本或对包含要更改文本的单元格的引用。如果文本中不包含任何全角英文字母,则文本不会被更改

  第22楼

  23

  JIS(text)

  Text 为文本或对包含要更改文本的单元格的引用。如果文本中不包含任何半角英文字母或片假名,则文本不会更改。

  第23楼

  24

  REPLACE(old_text,start_num,num_chars,new_text)

  REPLACEB(old_text,start_num,num_bytes,new_text)

  Old_text 是要替换其部分字符的文本。

  Start_num 是要用 new_text 替换的 old_text 中字符的位置。

  Num_chars 是希望 REPLACE 使用 new_text 替换 old_text 中字符的个数。

  Num_bytes 是希望 REPLACE 使用 new_text 替换 old_text 中字节的个数。

  New_text 是要用于替换 old_text 中字符的文本。

  第24楼

  25

  MEDIAN(number1,number2, …)

  Number1, number2,… 是需要找出中位数的 1 到 30 个数字参数。

  参数必须是数字、名称、数组或包含数字的引用。Microsoft Excel 会检查每一数组变量或引用中的所有数字。

 
 

Things you can do from here:

 
 
Posted in webdesign | Leave a comment

老外最常说的二十个钻石级句子

老外最常说的二十个钻石级句子
1.After you. 你先请
2.Don’t take it to heart. 别往心里去,别因此而费神
3.We’d better be off。我们该走了
4.Let’s face it。面对现实把(当你不愿意躲避困难时,就用它吧)
5.Let’s get started。咱们开始干
6.I’m really dead。我真的要累死了(有的时候当你的课业负担太重的时候,对你的英语老师说吧)
7.I’ve done my best。我已经尽力了
8.Is that so?真是那样的吗?
9.Don’t play games with me。别跟我耍花招(某人说,这句话的意思难道不是“不要跟我一起玩游戏”吗?汗死!)
10.I don’t know for sure。我不确切知道(这比说“I don’t know的效果好很多呢)
11.I’m not going to kid you。我不是跟你开玩笑的
12.That’s something。太好了,太棒了(嘿嘿,有没有觉得That’s good很土呢?)
13.Do you really mean it。此话当真
14.You are a great help。你帮了大忙了。
15.I couldn’t be more sure。我再也肯定不过了(如果你很强烈的想要人家相信你,就用这个句子吧)
16.I am behind you我支持你(哇,是说我一只在你的背后默默支持你吗?好感人ing——)
17.I’m broke。我身无分文(嘻嘻,难道是因为口袋破了,就一毛钱都没有了吗?)
18.Mind you 请注意!听着!(咳咳——去教老班说这句话先!)
19.That depends。看情况再说
20.It’s a deal。一言为定

Posted in webdesign | Leave a comment