在HTML5的世界里,任何文本、图像都可以变得令人难以想象,很多HTML5应用也都已经随着浏览器的升级而变得运行飞速,而且兼容性也越来越好。下面为大家介绍7款效果震憾的HTML5应用组件,HTML5是强大的,是WEB的未来。 1、HTML5实时动态数据图表 HTML5实时动态数据图表,这是一款基于HTML5技术的网页图表插件,该图表插件功能十分强大,支持区域范围选择、鼠标拖动自定义区域、显示坐标点数据等功能。 在线演示 / 图表下载 2、jQuery/CSS3水平图片悬停效果 这是一款基于jQuery和CSS3的图片悬浮特效,鼠标滑过图片后,图片将悬浮突出显示,并且,整个图片相册是自定义滚动条,非常漂亮,支持滚轮。 素材演示 / 素材下载 3、jQuery书本翻页动画效果 这是一款基于jQuery的书本翻页特效,这款翻页插件非常适合你应用在在线阅读上,这个翻页插件可以让用户有真实的阅读感觉。 素材演示 / 素材下载 4、jQuery网页背景自由切换插件justParallax justParallax是一款基于JavaScript的网页背景切换插件,该插件允许你随时切换背景图片,并且可以设置网页滚动时背景的移动方式和移动方向。 素材演示 / 素材下载 5、CSS3/jQuery圆盘时钟 这款CSS3时钟是根据你本地的时间而实时走动的,结合jQuery完美的实现了仿真实圆盘时钟的效果。 在线演示 / 素材下载 6、jQuery翻页插件simplePagination simplePagination是一款基于jQuery的内容分页插件,simplePagination自定义3种不同的风格,你也可以自己定义CSS代码来获取自己风格的分页导航。 在线演示 / 素材下载 7、CSS3鼠标悬停动画按钮 这是一款用纯CSS3制作的鼠标悬停动画按钮,该款CSS3按钮有9组不同的鼠标悬停动画,也分别有9中不同的按钮风格,按钮整体干净大气。 在线演示 / 素材下载 转自:http://www.oschina.net/news/41941/7-html5-apps
View Details这里将向大家分享的是一些我对编程的思考总结,这些经验在我毕生编程生涯中曾帮助我在无数的事情上作出正确的决定。这些编程策略有些是很显然的,但实际编程中往往被人们忽略。 下面的例子是用Python写的,但这些概念适用于任何编程语言。 2. 代码优化 找出程序的主执行路径——你的程序大部分时间都执行这些模块。首先优化这部分代码,但也不要在程序实现的第一次迭代中进行优化。那些处理边界情况或失败/异常处理的地方,这部分代码不需要优化,除非它们引起了值得注意的性能问题。 3. 代码行数 不要试图压缩代码行数,但你应该压缩每个任务的代码行数。写简单的函数/方法,每个函数/方法只完成一个任务,而不是多个,除非你有很好的理由。 人们通常喜欢为了减少代码行数而在一个代码片段里完成大量的工作,这会导致代码异常复杂,这种代码试图支持各种情况的处理,而大多时候只是其中的一种情况会发生。多余的情况处理会给执行造成成本。 4. 多学习操作系统和编译器知识 了解机器,理解机器内部里事情是如何工作的。这将会帮助理解各种不同瓶颈产生的原因。这能帮助你找到代码运行时为什么会发生奇怪的现象。 5. 运用管理技术 在编程中运用管理技术。针对不同目的使用正确的工具。我有自己的喜好,但我努力克服。 1. 异常处理和if-else语句的用法 编程的时候,有些边界情况我们需要确保能正确的处理。对这些情况我们通常的做法是使用if语句来检查是否是这种情况。当程序运行时,这些检查动作每次都会执行,来验证是否是遇到了这些特殊场景。如果你使用的编程语言有异常处理系统——你可以利用它们来处理这些边界情况。 C语言里没有异常处理系统。它依赖于错误码来通知调用的函数发生了什么。返回0是成功,负数则表示失败。所以,调用者需要用if-else来检查返回码。没有其它的方法。 但对于那些有异常处理系统的编程语言,我们可以很好的利用它们。但我们需要使用if-else配合异常处理机制来处理这些边界情况或错误。 一个简单的例子 :- 想象有一个后台运行程序,它在启动和停止时都会检查一个pid文件。它会调用下面的函数来获取pid。主调函数使用异常捕获来确保程序逻辑不会出现意外。 下列情况时这个函数会被调用 – 这个后台程序启动时 这个后台程序停止时 每种情况时主函数要做的事 – 启动时 如果pid文件存在,意味着后台程序中运行。这个程序自己会停止,会提示有另一个实例已经在运行。 读取这个文件时如果返回错误,这说明没有pid文件,说明这个程序没有运行(除非读取文件时发生意外)。这时就创建pid文件,启动程序。 停止时 如果发现了pid文件,停止前删除这个文件。 如果没有发现pid文件,那该怎么办?这说明后台程序根本没有运行。报告给用户。 下面就是我们上面提到的主程序会调用的获取pid的代码。注意我们使用异常捕获和if-else语句来处理这些情况。 方法 1 01 # 这种使用异常的方式不好,属于被动防御式编程。 02 def read_pid_file(): 03 04 try: 05 f = open('daemon.pid', 'r') 06 07 pid = int(f.read()) 08 return pid 09 10 # 没有发现文件,也可能是IO错误 11 except IOError: 12 raise "Faild to Read file" […]
View Details摘要:PHP开发技术在这几年依然比较火热,也有越来越多的开发者加入到了PHP开发阵营,在复杂的框架和冗余的代码面前,选择合适的PHP库就显得 尤为重要,优秀的PHP库可以为你节省很多代码和编码时间。 下面是一些非常有用的PHP类库,相信一定可以为你的WEB开发提供更好和更为快速的方法。 图表库 下面的类库可以让你很简的创建复杂的图表和图片。当然,它们需要GD库的支持。 pChart – 一个可以创建统计图的库。 Libchart – 这也是一个简单的统计图库。 JpGraph – 一个面向对象的图片创建类。 Open Flash Chart – 这是一个基于Flash的统计图。 RSS 解析 解释RSS并是一件很单调的事情,不过幸好你有下面的类库可以帮助你方便地读取RSS的Feed。 MagpieRSS – 开源的PHP版RSS解析器,据说功能强大,未验证。 SimplePie – 这是一个非常快速,而且易用的RSS和Atom 解析库。 缩略图生成 phpThumb – 功能很强大,如何强大还是自己去体会吧。 支付 你的网站需要处理支付方面的事情?需要一个和支付网关的程序?下面这个程序可以帮到你。 PHP Payment Library – 支持Paypal, Authorize.net 和2Checkout (2CO) OpenID PHP-OpenID – 支持OpenID的一个PHP库。OpenID是帮助你使用相同的用户名和口令登录不同的网站的一种解决方案。如果你对OpenID不熟悉的话,你可以到这里看看:http://openid.net.cn/ 数据为抽象/对象关系映射ORM ADOdb – 数据库抽象 Doctrine – 对象关系映射Object relational mapper (ORM) ,需要 PHP 5.2.3+ 版本,一个非常强大的database abstraction layer (DBAL). Propel – 对象关系映射框架- PHP5 Outlet – 也是关于对象关系映射的一个工具。 注:对象关系映射(Object Relational Mapping,简称ORM)是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。 简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。本质上就是将数据从一种形式转换到另外一种形 式。 这也同时暗示者额外的执行开销;然而,如果ORM作为一种中间件实现,则会有很多机会做优化,而这些在手写的持久层并不存在。 更重要的是用于控制转换的元数据需要提供和管理;但是同样,这些花费要比维护手写的方案要少;而且就算是遵守ODMG规范的对象数据库依然需要类级别的元 数据。 PDF 生成器 FPDF – 这量一个可以让你生成PDF的纯PHP类库。 Excel 相关 你的站点需要生成Excel?没有问题,下面这两个类库可以让你轻松做到这一点。 php-excel […]
View Details在过去十年中高品质的可用性一直是业内讨论的核心,因为它对用户来说越来越重要。好的可用性也可以帮助建立品牌知名度,从而提升用户对一个网站或者是一家公司的评价。今天人们依然高度关注可用性,是因为大大小小的公司已经证明了好的可用性策略是多么重要。 在过去几年中,良好的可用性成为那些成功的初创公司的核心。多数情况下,简单的想法最具创造性,可用性主要是指:使一个功能或者产品易于使用,但同时也要保持产品质量维持在高水平上。 如今,很多文章会谈到普遍意义。在对该话题年复一年的讨论之后,似乎web设计者们仍然很难去理解它。可用性早已不再是一个玩笑,下面这些建议应当被打印出来并粘到你桌子对面的墙上。 链接的颜色 我经常发现自己在浏览网页时,有些页面上的链接没有以某种形式高亮显示。这是我见过的最愚蠢的错误。我愿意访问那些链接使用默认蓝色的页面,而不是链接和普通文字一个颜色的页面。用户需要知道如何在页面之间导航、在哪儿能点击链接。你不能指望他们把鼠标一行行的掠过所有文字去找链接,直到发现鼠标箭头变成“小手儿”。 我完全理解,有时候出于设计考虑,链接不能使用某种颜色来高亮显示,这样会使它们显得太过突兀。这完全是可以理解的。但是可以添加文字样式或者虚线框,你需要的只是以这种或那种方式来强调链接而已。 访问过的链接也应当以不同的方式来显示,以区别于默认的链接颜色。因为这样可以帮助用户知道他们已经访问过什么,从而确定下一步要去哪儿。一些网站会使用户困惑,但是让他们知道自己已经访问过什么,绝对会使他们对你的网站印象更好。 糟糕的排版 当我们谈到 排版,并不是说我们需要一个大大的标题,或者一段漂亮的文字。 当我们考虑易用性时,排版的漂亮与否并不那么重要,重要的是排版要如何使我们的内容易于阅读。 紧密排列的大段文字会使阅读它的人感到非常头疼,但它应该不会让设计师头疼。他只需要简单的增加行高,进行分段,增加文字大小,改变字体,就能使它更容易阅读。 在网页设计中,如何搭配字体的和用什么样的颜色来唤醒访客,并不是十分重要。当然,你会这些那就更好 。在过去的几年中,我们总是错误的将美感重要性放到功能性之上。其实网站最重要的特性它易用性,它并不像图形设计领域那样有很很大的局限性。有的时候我们不在乎它能有多么的好看,仅需要的是它能正常工作而已。 姜鹏飞翻译于 4天前 1人顶 顶 翻译的不错哦! 让我来作进一步的解释. 互联网上两股最新的设计思潮, 极简主义和扁平化设计, 都极其的简约并聚焦于内容的呈现而非背景图该多漂亮才好. 在极简主义与扁平化设计变得越来越流行的后面有个原因就是他们非常简单,而且工作良好 -有时候真的是很难去相信如此简单的一个网站却能获得巨大的成功, 你进入网站, 看完内容,然后走人, 没有东西使你分心, 没有Flash, 没有使得网站加载变慢的Javascript, 没有好看的花儿或图样, 仅仅是内容而已. 现在, 你应该明白了让内容变得易于访问是多么的重要的道理, 不要在第一时间花费太多的精力去思考该如何让网站变得多漂亮 -无论字体有多优美,别人如果不能阅读的话也是枉然. 不参照惯例 参照设计惯例和易用性建议是非常重要的,因为无论你是谁,只要你按照那么做了,那么用户会在你的网站上花费的时间会和在其他网站上花费的一样多,这意味着你和其他人站在了同一起跑线上。 举一个例子让大家更清楚的理解我到底想要表的什么。这有这么一个网站,在它导航栏上放置了一链接来退出页面。这个按钮的作用,这与通常所理解的导航栏应该有的作用大不相同,这样的设计违反了设计惯例。 好在最近几年,情况改善了很多,但还是能发现在一些不应该发生的低级错误,比如:循环展示模块上面链接失效,或者点击链接的时候弹出了框。因此,要紧跟设计惯例。 避免回答问题 用户浏览网页都是有目标的。也许是想娱乐一下,也许是查找信息,也许是跟家人或朋友保持联系,也许是其它目的。不管他们做什么,总会有一个目标。 现在你需要记住的最重要的是,大多数情况下,用户上网是在寻求某些信息。他们去 Google是要搜索某些东西;他们去维基百科是要学习某些东西;他们上企业站点是为了了解产品信息。他们总会有一个目标。 当我明确地想去网页上找一个问题的答案的时候, 它们却就是找不到, 这种问题在我身上已经发生n次了. 我能理解设计代理(机构)们为何不是始终都突出表述价格因素, 因为在一个项目里面变量太多, 但我就是不能理解一个发廊为何不告诉我理发到底需要多少钱, 我也不能理解洗车公司的网站上为何不突出表述我洗干净车需要多少钱, 那你为啥还要在这个地球上建一个网站呢? 我只是觉得这对你和你的访客都是无益的, 你俩谁也不能从中获得任何有用的信息. 在访客访问你的网站的时候了解他们的意图是个好主意, 如果有人想去下载博客主题, 那就引导他们到下载区域, 如果他们是为了玩游戏而来, 那就尽量多放些游戏在上面, 如果他们是来了解产品价格或者你所能提供的服务的, 那就突出表述它们. 你需要考虑你的网站访客的需求的原因是你的网站不是给你自己建的, 如果你是给你自己建的, 你就别联网, 直接在你自己的电脑上看就可以了, 一个网站是为访客而建的, 访客是有需求的, 实现它们(的需求)吧! 小块可点击区域 因为我买了台Mac所以从不用鼠标。事实上我买了一只魔术鼠标,就在它们被发布并销售仅仅三天以后。因为对我来说再没有什么需要用到鼠标的地方了。我用触摸板移动电脑指针动作非常熟练。但我记得五年前,当我仍然使用PC的时候,我也曾有各种各样的垃圾鼠标。它们并不总是很精确,而且在悬停于小块区域的时候经常定位很困难。 现在我再也没有这个问题了。但是web不是仅仅给我用的。大约有数以亿计的用户,所以你应该明白不是他们所有人都能这么熟练的使用这些奇妙的工具。 小块可点击区域有时候令人不那么舒服。你或许想让字体显得小一点,因为你相信这样看起来很漂亮,但你要考虑到你的决定对可用性的影响有多大(我们不妨再来看看可读性)。 重要的是不但要保证链接是可见的,还要让它们是可点击的。这个区域越小,人们点击它们就越难。这里面有一个网站趋向移动化背后原因——就是说布局需要适应更小的屏幕。需要适应的东西之一就是按钮,根据建议它们应该在便携式设备上变得更大,好让它们容易被点击。 同样的策略也适用于桌面环境。新的扁平化用户界面的风潮是这个理念的布道者。你不会有点击又大又清晰的链接的烦恼。保证让你的用户更轻松的浏览。再说一次,关注于功能性,让美观成为一个神奇蛋糕上面的樱桃。 缺少联系信息 有几件事比糟糕的客户服务更使我恼怒。其中之一就是根本无法联系上客服或者负责该事务的公司。 正如我们之前讨论的,人们总是带着目的来访问网页。如果他们的目的是跟你取得联系,那么从他们的角度来说,如果找不到联系方式那么这个页面就毫无用处。 没有任何借口可以不提供联系信息。如果你不想把你自己的电话号码公之于众,可以留下你的e-mail。对了,你也可以买个便宜的手机配个划算的套餐,然后留下这个号码,或者申请一个新的e-mail。你想要避开垃圾邮件吗? 可以使用一种机器无法自动识别的联系方式。分享Twitter或者Facebook地址,也没什么大不了。这都没什么,只要能给你的客户一个以某种方式找到你的机会。 搜索功能 许多用户都是任务导向型的, 也就是说他们来到网站上仅为获取指定的信息而并不对其他东西感兴趣. 如此看来, 你会发现一个好的搜索功能会变得多么的重要. 但这并不意味着你需要在每个页面都提供一个搜索栏, 如果你运营着一家设计公司, 只有一个单页式网站用于提供项目和联系方式的信息, 那就没必要提供搜索功能. […]
View Details我并不认为程序员是一个情绪特别丰富的群体。但有一些事情却能很容易刺激程序员的神经,那就是代码格式和布局。如果看到一个函数的括弧在同一行上没有闭合,我的眼睛会喷血。如果看到有人没有恰好的在两个函数间留一空行,我的小腿会抽筋。但重点在这里——除非是在家里开发自己的业余爱好软件,我的这些个人喜好其实是无关紧要的。同样,作为一个团队中的一员,你的个人编程喜好也应该放到一边。 编码风格很容易会和编码规范混为一谈,因为这两个词经常会被人换着使用。我认为,编码规范同时包括了编码风格和其它规范,不仅仅指代码格式。例如,像“返回成功/失败的函数应该用一个整数作为返回值”,这样的规则不属于编码风格。在这篇文章中,编码风格简单的指一个描述如何格式化代码的说明。编码风格中的规则通常会涉及到下面这些主题: 缩进 空格使用 Tab使用 注释 命名习惯 代码行长度 语言特点风格,例如是否使用可有可无的分号 编 码风格都是为特定的编程语言制定的,可以把它们看作“我们共同的约定”。如果在你的公司里,在你在时,在这些事情正在制定完成,你可以提出你的喜好,那你 是幸运。但通常情况是,一种编码风格在其生命期里看着无数的程序员来了又走了。在我的眼里,遵守编码风格有下面三个主要好处: 1. 遵守编码风格使代码更容易维护 今 天由这个程序员实现的软件,明天可能需要另外一个程序员维护。如果所有代码中大家使用同一种编码风格,这另外一个程序员快速的扫一眼陌生的代码,就能根据 大家约定的编程习惯,推断出代码的作用。如果编码风格中指明常量应该全用大写字母表示,那么,当看到一个全是大写字母的变量时,你就能推断出它是常量。同 样的,如果编码风格中规定包的引入要有顺序,那你立刻就能知道去哪里找这些包。这使得代码很容易维护。 2. 编码风格使形成代码集体所有制 代码集体所有制意味着全体程序员要负责所有代码。集体所有制的作用很大,它能有效的增大巴士因子——一个项目能承受多少个程序员被车撞了而不影响项目的正常进行。在整个代码库中坚持延用一种常用的编码风格,所以程序员都能更容易的理解、维护。 相反,如果在一个大型的软件项目中,每个程序员都使用自己的编码风格,最终会引起一场维护版图的战争,就像动物世界里我们的这些朋友: 气味记号(也称喷洒尿液或领土记号)是动物标记自己领土范围的一种行为。通常是通过留下具有强烈气味的物质来完成,很多时候是通过在领土中突出的物体上小便。-维基百科 个人编码风格就像是狗撒尿,留下自己的势力记号。他们在代码中留下自己的符号,在程序员之间创造壁垒。 3. 编码风格能消除那些长久的纷争 每 个程序员都对编码风格有强烈的自我认同。这种感觉深植于每个人的自负中,每当和同事遇到是否应该在关键词周围使用空格时,这种讨论很容易升级而僵持不下。 但是,静下来想想——这真的无所谓。不管是不是在关键词周围使用了空格,只要能达成一致,大家都能从中获得易维护和集体所有制的好处。在这种情况中,闭着 眼睛,遵循一种编码风格就行了。 你不需要喜欢这种编码风格。如果你不喜欢里面的某条规定,那就骂几句这个文档,只向文档发脾气,就像人类迁怒于上帝。然后还是按照约定做事。这样做更具有建设性,比无休无止的吵论这些不重要的事情好的多。 有了一套编码风格并不一定会给你带来好处——除非大家都遵守。有些时候,你并不一定需要手工去调整代码。很多的程序编程器,例如Eclipse,能配置帮你格式化代码,使其符合编码风格。即使你的编辑器没有这种功能,很多其它工具也能够自动按照某种风格格式化一个文件。在我们的团队中,我们使用indent 和 uncrustify 工具。我还听说过一些其它好东西,比如ReSharper。那些不能被自动实施的规则,例如命名习惯,可以在代码审查的过程中落实。 你有什么想法?你们团队中采用了什么标准和约定?它们带来了什么好处?请写在评论里。我会很高兴看到讨论。 [英文原文: The conventions we follow ] 转自:http://www.oschina.net/news/41904/the-conventions-we-follow
View DetailsIf you are a PHP developer or graphic web designer you must be aware and know about the basic tools one requires by which to perform certain web related tasks. However, most experienced web developers and designers constantly look for the new tools which they can use to make their workflow and web related tasks easier, faster, and better. In this article we have collected a few of the best PHP Tools and Applications to assist you within your work related tasks. We hope you will find them […]
View DetailsPHP标准库 (SPL)的目的就是提供一组接口,让开发者在PHP5中充分利用面向对象编程。因此本文我们搜集了8个最好的,能辅助开发者简化他们的工作,为他们的开发任务服务的PHP库。 如果你喜欢本文,也许你对我们的其他文章感兴趣:8个给开发者的最好的PHP工具和应用 1. Whoops : 更好的php错误报告库 Whoops是一个易于处理和调试错误的PHP库 。它提供基于堆栈的的错误处理和好看的错误界面。它有个简单的API来处理异常,跟踪帧和数据,并能和任何框架整合(随时可用的集成端和Silex)。 Source 2. PhpFastCache phpFastCache 是一个开源的 PHP 缓存库,只提供一个简单的 PHP 文件,可方便集成到已有项目,支持多种缓存方法,包括:apc, memcache, memcached, wincache, files, pdo and mpdo。可通过简单的 API 来定义缓存的有效时间。 Source 3. Eden : 功能强大的 PHP 库 Eden是一个开源且免费的PHP快速开发类库。它包含很多组件用来自动加载、事件驱动、文档系统、缓存、模板、国际化、数据库、web服务、支付网关、装载和云服务技术。为了给我们最好的选择,他已经将现有的函数实现了与谷歌服务(Youtube, Drive, Contacts, Analytics, Checkout, Maps),Facebook(脸谱), Twitter(推特), Tumblr(轻博客), PayPal(贝宝), Authorize.net, FedEx(联邦快递), UPS(联合包裹服务公司), Amazon + Rackspace Clouds(亚马逊+Rackspace 云)等服务的交互。 Source 4. Php Error PHP Error 是一个开源的 PHP 库,用于转换标准的 PHP 错误信息,主要用于开发过程中的调试。PHP Error 紧密集成到 PHP 环境中,显示带语法高亮的错误提示。 Source 5. Detector Detector是一个开源的PHP类库用于检测关于用户的浏览器环境的许多东西。它可以获得浏览器的使用和浏览器的html5 css3功能,分析是否移动电话、平板电脑、桌面或网页爬虫和其他项如:颜色深度, 视口尺寸、cookie等支持。类库可以自动适应新的浏览器、版本和设备对每一个浏览器使用独特的用户代理字符。 Source 6. Opauth Opauth 是一个开源的 PHP 库,提供了 OAuth 认证的支持,让你无需关注不同 Provider 之间的差别,提供统一标准的访问方法。目前支持 Google、Twitter 和 Facebook,其他的 Provider 支持也将陆续提供。同时也支持处理任何 […]
View Details