优大网

8 / 15

基于Java的四大开源测试工具

摘要:成功的应用程序离不开测试人员和QA团队反复地测试,应用程序在进行最后的部署之前,需要通过测试来确保它的负载管理能力以及在特殊情况下的工作条件和工作加载情况。

测试是应用程序生命周期里至关重要的一步,应用程序在进行最后的部署之前,需要通过测试来确保它的负载管理能力以及在特殊情况下的工作条件和工作加载情况。

网络上许多开源的Java测试工具,然而真正经得起时间和实践考验的不多,本文例举了Java里的四大开源测试工具,这四个工具主要专注于前端测试,并且得到了测试人员和QA团队的广泛使用。

 

Apache JMeter——JMeter是一款开源的纯Java测试工具,其主要用于负载测试和性能测试。QA团队使用它来查找和发现相关的性能和负载管理问题,尤其是Web应用程序的性能问题。它可以用于对静态的和动态的资源(文件、Servlet、Perl脚本、Java对象、JDBC数据库连接和查询、FTP、HTTP、JMS、通用的TCP连接、LDAP和OS本地进程访问等)的性能进行测试。它可以用于对服务器,网络或对象模拟繁重的负载来测试它们的强度或分析不同压力类型下的整体性能。

Jmeter架构提供了“out of the box”功能。此外,它还支持各种插件,这些插件可以实现其独特的创新功能,用户可以根据自己的需求进行自定义配置,添加相应地插件。

Selenium ——Selenium是一个开源的自动化测试工具,其主要用于Web应用程序的自动化测试,与其它测试工具不同的是,它可以在许多平台和操作系统上运行,可以直接在浏览器下运行,并且支持所有流行的测试框架和编程语言,如C++、Java、Python、Per和Ruby等。

Sahi ——Sahi是另一个开源的自动化Web测试工具,Sahi可以专门测试动态的AJAX应用程序,还带有非常出色的自动播放效果机制。其主要特点是:独立的平台和浏览器、出色的刻录机、无需等待、无需XPath、内置Java异常交互报告。

Robotium——Robotium是一款测试Android应用程序的开源自动化测试框架,应该说,Robotium是开发者们最常用的一款开源工具。主要针对Android平台的应用进行黑盒自动化测试,它提供了模拟各种手势操作(点击、长按、滑动等)、查找和断言机制的API,能够对各种控件进行操作。Robotium无需测试应用程序源码,并且安装简单、容易编写测试用例。当然,它还可以测试基于浏览器的一些Android应用程序,但前提是有些限制条件。

各位开发者,你们使用哪一款工具呢?

来自: Open Source Testing Tools in Java

http://www.csdn.net/article/2013-07-12/2816206-Open-Source-Testing-Tools-in-Java

用来简化开发任务的20个JavaScript类库

摘要:所谓JS库就是预先写好的JS程序库,用于简化以JS为基础的开发程序,尤其是对AJAX和其他以Web为中心技术的JS代码集。文章搜集了20个JS库,帮你处理与开发相关的问题,让你的网站在竞争中领先一步。

所谓JS库就是预先写好的JS程序库,用于简化以JS为基础的开发程序,尤其是对AJAX和其他以Web为中心技术的JS代码集。JS的首要用途是将编写的功能内嵌在HTML页面,并与页面的对象模型(DOM)进行互动。

很多JS库很容易和其他Web开发技术进行整合,例如CSS、 PHP、Ruby、和Java。许多程序库可以检测运行环境之间的差异,删除一些应用程序,以满足整合需求。文章搜集了20个JS库,帮你处理与开发相关的问题,让你的网站在竞争中领先一步。

1. Tracking.js

Tracking.js是一个独立的JS库,可以跟踪照相机实时收到的数据。跟踪对象既可以是色彩也可以是人物,当检测到某个特定的颜色时或人物/脸庞/身体出现移动的时候,我们可以触发JS事件。

2. Aristochart

Aristochart是一个不依赖于其它库的JS库,它能够使用Canvas创建静态的2D线形图表。这个库专注于打造客户化设计,提供多种选项用于更改设计、标签等等。

3. Hitch

Hitch是一个轻量级的JS库,能够向CSS文件添加表现能力。同时具备CSS预处理程序能力,比如添加前缀或变量,还有一些其他的功能。这个程序库有多个随时可用的表达方式,如“any of,all of,has…”,并允许我们定义任何一种方式(称为hitches)。

4. Cesium

Cesium是基于WebGL的JS绘图库,支持3种不同的视图:3D globe、2D map、2.5D Columbus View,相互转换只要一行代码而已!绘画各种形状,突出显示特定区域以及使用鼠标或触摸板与地图进行互动是非常简单的。Cesium作为一个独立的JS文件可以在所有主流浏览器上运行,包括手机上。

5. Two.js

它是一个2D的绘图API,一个优秀的JS库,用于较新的Web浏览器,可基于不同上下文绘制,包括svg、canvas和webgl。 这个库目前只支持形状(非文本或图片),允许导入SVG数据。当需要一起转变的时候,Two.js可以聚合多个有用的元素。其中还有一个内置动画循环方法来绘制各种图形,还具有使之个性化的多个选项。

6. Sequel.js

Sequel.js是一个轻量级JS库,有助于通过一个面向对象的API来构建SQL查询字符串,既可以在浏览器上运行,也可以在所有标准的SQL查询上运行。

7. Draggabilly

这是一个可以让页面元素可拖动的独立JS库,Draggabilly能够帮你轻松实现网页上各种元素的拖放操作。可以在一个限制的容器范围内拖动页面元素,对于每一个事件(start,move,end)都有回调,可以返回当前元素的位置。它可用于大部分浏览器(IE8+)并内置支持触摸事件。

8. Zebra

此JS库带有一串富用户界面组件,可以创建类似于桌面效果布局。UI元素由HTML5 canvas构建,由CSS着色,预期在所有浏览器中渲染出相同的效果。拥有30多个UI元素,包括grid、tabs、menu、form elements、menu等等。

9. Formula.js

这个JS库为Web开发者带来了大多数公式,公式列举了多重分类——日期/时间,文本,逻辑,金融等等。此外,除了在客户端运行,还在服务端(即将发布)上运行。

10. Chart.js

这是一个给人印象深刻的JS独立图表库,大小不足5kb的程序包,建立在HTML5 canvas之上。目前支持6种图表类型:直线图、条形图、雷达图、饼状图、柱状图和地区区域图。颜色、字体、边框、大小都可以根据用户需求自定义。

11. Flippant.js

这是一个迷你JS和CSS库,允许自动翻转桌面上的东西。不依赖任何其它类库,便于自定义,翻转功能效果好。

12. React

React是一个用来构建用户界面的JS库,可以高效灵活地与你之前使用的类库和框架结合使用。

13. PathFinding.js

PathFinding.js是JS里一个综合路径寻找类库,其目的是提供一个可以方便结合到网络游戏里的路径寻找类库。它可以在服务端运行,也可以在浏览器上运行。提供在线演示算法是怎样执行的。当具体使用路径寻找器时,你可以通过其它的参数来指示该用哪一个策略。

14. Reactor.js

这是一个用于响应式编程的轻量级类库。它提供的反应变量,当它们所依赖的的事物发生改变的时候可以实现自动更新。这和电子数据表的运作方式有点相似,当一个单元格的数值有所变化的时候,与其有联系的其他单元格数值也会变化。

15. Bootbox.js

Bootbox.js是一个很小的JS库,允许使用Twitter的Bootstrap模式创建程序对话窗口,不需要担心创建、管理或删除任何任何需要的DOM元素或JS事件处理程序。

16. Parallel.js

Parallel.js在JS里是一个用于多核处理的微型库,它的创建充分发挥了成熟的Web-workers API,JS的确是很快,但由于它的单线程计算模式,它缺乏了与其对等语言的平行计算功能。

17. SVG.js

SVG.js可以通过SVG进行操作和手动绘画,此库轻便独立,功能丰富,有内置方法可以创建各种形状——三角形、圆形、多边形,或自定义图形。

18. Packery

这是一个使用“装箱算法”的JS布局库,这是“补漏”的体面说法。Packery的布局可以是井然有序的,也可以是错乱无序的。元素可以被固定在相应的位置,也可以随意拖放。

19. FPS Meter

FPS Meter是一个简单的JS库,用来制作迷人的、快速的、可主题化的FPS仪表。他可以测量出每秒的帧数,帧之间的毫秒数,以及使用.tickStart()方法时,渲染一帧所需要的毫秒数。

20. Howler.js

Howler.js一个是JS库,通过默认方式运行在网页音频API上,当浏览器不支持时退回到HTML5音频。为了保证跨浏览器的兼容性,它允许接收多种文件格式。该库能同时缓存和播放多个声音,还有循环播放功能,淡入淡出效果和标准的多媒体控制功能。

原文:CodeGeekz

 

http://www.csdn.net/article/2013-07-09/2816111-javascript-libraries

还逝者以宁静

—— 请放过旧金山空难中逝去的女生

石述思 昨天 21:00

 

 

(编辑配图;图片来源于网络)

一群怀揣梦想的孩子,在学校组织下,花着比正常旅行贵一倍的费用,绕道韩国乘坐便宜的飞机,结果出了意外,两个据说品学兼优的花季女生罹难。这场发生在旧金山的悲剧震惊了全国,甚至惊动了总书记。

 

 

在一个充斥着冷漠和功利的时代,有那么多人能对素昧平生的同胞一掬同情之泪,进行深切哀悼,无疑是值得上新闻联播的正能量。但围观效应像病毒一样持续发酵。她们的身份很快被披露,成群的记者萦绕在其悲伤的家长和同学周围,网络上用近乎人肉搜索的方式对这两个不满18岁的女孩进行深度曝光,发展下去,她们荣膺最美女孩的日子不远了。或许都是出于好心,但有时这样的好心却是通向地狱的阶梯。

 

对于死于意外的任何无辜者,全世界通用的术语都是“让亡灵安息”。如果你参加过追悼会,就知道你唯一能做的事就是面对死者肃穆地默哀,而不是如此痴迷于她们生前美丽的容貌和勤奋好学的光荣事迹。中国是个缺少死亡教育的国度,每个人的死亡都难以摆脱被过度消费的威胁,在美国一本名为《死亡课》的教材中,提醒所有悼念者:不要不断去揭死者家属的伤疤,永远不要对他说:我理解你此刻的感受——你永远理解不了。

最值得关注的是那两个女孩的家人,毕竟,那么多同学一起遭遇事故,只有自己的孩子无法生还,你越强调她们生前多优秀乖巧善良,越相当于向其家长伤口上撒盐,无异于为其尽快接受现实,完成心理康复制造人为障碍。

 

请记住:出于人道的考虑,这两个孩子不是你发挥个人情感、宣泄个人情绪的工具。你唯一能做的就是默默地为她们祈祷,希望天堂中不再有空难。

在这个阶层撕裂的社会,更有人借两个冤魂吐槽,说什么能出国游学的都不是普通人,都是权贵富豪的化身,不和广大寒门子弟同甘共苦,去美国送钱,纯属炫富且不爱国。而这样的言论,宛如来自地狱的声音,除了点燃仇恨的烈焰,就是捻灭这世道仅存的悲悯与同情。

 

 

围绕这两个女生的过度关注乃至人肉搜索与其说是社会爱心的一次积聚,不如说是一次集体无意识的情绪宣泄与对别人隐私的一次公然的践踏。

 

其实,这场空难留给人们有价值的思考有很多:比如学校为啥热衷于组织孩子花大价钱去美国游学,是对国内教育的反讽,还是利益的驱动?再比如绕道韩国,多飞那么长的时间,竟然比乘坐国内航班便宜,是韩国航空公司为抢滩内地市场进行的促销,还是国内航空公司平时存在牟取暴利的恶行?更重要的是,据美国救援人员披露,其中一个罹难的女孩出事时没有系安全带,不管是不是疏忽,无疑都能对未来的乘客起到足够的警示作用,尽可能避免悲剧的重演。

 

但显然,这些真正有价值的反思,都不如两个花季少女的信息有收视率和点击率。但从尊重死者、尊重死者家属、尊重未成人的角度,这样的关注度显然在挑战这个社会基本的道德法治底线。

 

在悲剧发生后不久,北京市海淀区检察院对李双江公子以轮奸罪提起公诉,由于其是未成人,检方隐去了公子的姓名。对于如此少年,中国法律尚且尊重其基本权利,何况两个无辜的花季少女呢?她们不需要因为一次意外死亡事故被包装成英雄少女,她们的家长也不需要。再联想起那个在埃及神像上刻上“到此一游”的南京14岁孩子被人肉搜索的全民狂欢,让人感到道德绑架的威力是如此令人惊骇。

 

如果真的有生命意识和人文关怀,我可以推荐给一些发挥的对象:比如中国死于井下的矿工、亡于尘肺病的农民工都没有姓名,其中多数正当权益难以得到维护,而且他们身上也具备了相当多足以感动中国的品质,请将他们的姓名公开吧。在一个以人为本的国度,每个生命都不应该被轻易抹去。

“这是生者与死者共有的世界,爱是唯一的桥梁。”

 

(责任编辑:杨光)

http://dajia.qq.com/blog/224315033462716

七个习惯可使你成功

习惯一:别指望谁能推着你走
如果你不向前走,谁又会推你走呢?因此,积极主动的态度,是实现个人愿景的原则。
我们常说:“我不会……,因为遗传……”、“我迟到,因为……”、“我的计划没完成,因为……”
我们总是在找借口或是抱怨,在不满中消耗自己的生命。而人类与动物的区别正是人能主动积极地创造、
实现梦想,来提升我们的生命品质。所以,有效能的人士为自己的行为及一生所做的选择负责,
自主选择应对外界环境的态度和应对方法;他们致力于实现有能力控制的事情,
而不是被动地忧虑那些没法控制或难以控制的事情;他们通过努力提升效能,
从而扩展自身的关切范围和影响范围。积极的心态能让你拥有“选择的自由”。
我们虽然不能控制客观环境,但我们可以选择对客观现实做何种反应。
积极的涵义不仅仅是采取行动,还代表对自己负责的态度。个人行为取决于自身,
而非外部环境,并且人有能力也有责任创造有利的外在环境。

习惯二:忠诚于自己的人生计划
我们经常在人生的道路上迷失方向,因徘徊和迷途消耗了生命。而高效能的人懂得设计自己的未来。
他们认真地计划自己要成为什么人,想做些什么,要拥有什么,并且清晰明确地写出,以此作为决策指导。
因此,“以终为始”是实现自我领导的原则。这将确保自己的行为与目标保持一致,并不受其他人或外界环境的影响。
我们将这个书面计划称之为“使命宣言”。任何一个存在的社会组织都需要“使命宣言”,任何一个企业或个人也不例外。
“使命宣言”需要阶段性地评估以及持续修正和改良。确立目标后全力以赴,就是我们所说的在正确的时间做正确的事,
并把事情做对。为什么很多人成功了反而感到失落?许多人在埋头苦干时,尚未发掘人生的终极目标,
只是为忙碌而忙碌着,未曾洞悉自己心灵深处的所欲所求,也不曾审视过自己的人生信条:
你到底要做什么?什么是你生命中最重要的?你生活的重心是什么?只有确立了符合价值观的人生目标,
才能凝聚意志力,全力以赴且持之以恒地付诸实现,才有可能获得内心最大的满足。

习惯三:选择不做什么更难
每个人的时间都是有限的,所以要做重要的事,即你觉得有价值并对你的生命价值、最高目标具有贡献的事情;
要少做紧急的事,也就是你或别人认为需要立刻解决的事。消防队的最大贡献应是做好防火工作,而不只是忙于到处救火。
因此,“要事第一”是自我管理的原则。有效能的人只会有少量非常重要且需立即处理的紧急、危机事件,
他们将工作焦点放在重要但不紧急的事情上,来保持效益与效率的平衡。“有效管理”是把最重要的事放在第一位的重点管理。
先由领导决定什么是重点后,自己掌握住重点并时刻把它放在第一位,以免被感觉、情绪或冲动左右。
要想集中精力于当前的要务;就必须先排除次要事情的牵绊,要勇于说“不”。

习惯四:远离角斗场的时代
懂得利人利己的人,把生活看作一个合作的舞台,而不是角斗场。一般人遇事多用二分法:非强即弱,非胜即败。
其实,世界给了每个人足够的立足空间,他人之得并非自己之失。因此,“双赢思维”成为人们运用于人际领导的原则。
我们从小就参与各种比赛、考试,培养了一种你赢我输、你死我活的竞争心态。试想一下,谁又甘心在竞赛中认输呢?
树立双赢思维就是要在人际交往中不断寻求互利,以达成双方都满意并致力于合作的协议计划。
具有双赢思维的人,往往有三种个性品格:正直、成熟和富足心态。他们忠于自己的感受、价值观和承诺;
有勇气表达自己的想法及感觉,能以豁达体谅的心态看待他人的想法及体验;相信世界有足够的发展资源和空间,人人都能共享。
利人利己观念的形成是以诚信、成熟、豁达的品格为基础的。豁达的胸襟源于个人崇高的价值观与自信的安全感,
所以不怕与人共名声、共财势,从而肯尝试无限的可能性,充分发挥创造力和宽广的选择空间。

习惯五:换位思考的沟通
如果一位眼科医生为病人配眼镜,他先摘下自己的眼镜让病人试戴,其理由是:
“我已经戴了10多年,效果很好,就给你吧,反正我家里还有一副。”那么,谁都知道这是行不通的。
如果医生还说:“我戴得很好,你再试试,别心慌。”在病人看到的东西都扭曲了的同时,
医生还反复说:“只要有信心,你一定能看得到。”那就真叫人哭笑不得了。我们常说遇事要将心比心。
因此,“知彼解己”是交流的原则。
这位医生尚未诊断就开处方,谁敢领教?但与人沟通时,我们常犯这种不分青红皂白、妄下断语的毛病。
因此我必须强调:“了解他人”与“表达自我”是人际沟通不可缺少的要素。首先要了解对方,
然后争取让对方了解自己,才是进行有效人际交流的关键,要改变匆匆忙忙去建议或解决问题的倾向。
要培养设身处地的“换位”沟通习惯。欲求别人的理解,首先要理解对方。人人都希望被了解,
也急于表达,但却常常疏于倾听。众所周知,有效的倾听不仅可以获取广泛的准确信息,还有助于双方情感的积累。
当我们的修养到了能把握自己、保持心态平和、能抵御外界干扰和博采众家之言时,我们的人际关系也就上了一个台阶。

习惯六:1+1可以大于2
统合综效是对付阻碍成长与改变的最有力途径。助力通常是积极、合理、自觉、符合经济效益的力量;
相反,阻力则消极、不合逻辑、情绪化和不自觉。不设法消除阻力的后果就等于向弹簧施加作用力,结果还是要反弹。
如果将双赢思维、换位沟通与统合综效原则整合,不仅可以化解阻力,甚至可以化阻力为助力,“统合综效”就是创造性合作的原则。

集思广益的合作威力无比。许多自然现象显示:全体大于部分的总和。不同植物生长在一起,根部会相互缠绕,
土质会因此改善,植物比单独生长更为茂盛;两块砖头所能承受的力量大于单独承受力的总和。
这些原理也同样适用于人,但也有例外。只有当人人都敞开胸怀,以接纳的心态尊重差异时,才能众志成城。

习惯七:过着身心平衡的生活
身心和意志是我们达成目标的基础,所以有规律地锻炼身心将使我们能接受更大的挑战,
静思内省将使人的直觉变得越来越敏感。当我们平衡地在这两方面改善时,则加强了所有习惯的效能。
这样我们将成长、变化,并最终走向成功。
人生最值得投资的就是磨练自己。生活与工作都要靠自己,因此自己是最值得珍爱的财富。
工作本身并不能给人带来经济上的安全感,而具备良好的思考、学习、创造与适应能力,才能使自己立于不败之地;
拥有财富,并不代表有永远的经济保障,拥有创造财富的能力才真正可靠。
以上这七个习惯是相辅相成的。前三个习惯在于我们本身,确立目标就要全力以赴,着重于如何进行个人修炼,
由依赖转向独立,实现“个人成功”;第四、五、六个习惯,即建立共赢、换位沟通、集思广益,
都将促进团队沟通与合作;而第七个习惯涵盖了前六个,督促我们从身心开始完善。通过培养这些习惯,
我们可以循序渐进地获得实质性的变革,成为真正的高效能人士。

P!nk–Try

Ever wonder about what he’s doing

How it all turned to lies
Sometimes I think that it’s better to never ask why

Where there is desire
There is gonna be a flame
Where there is a flame
Someone’s bound to get burned
But just because it burns
Doesn’t mean you’re gonna die
You’ve gotta get up and try try try
Gotta get up and try try try
You gotta get up and try try try

Funny how the heart can be deceiving
More than just a couple times
Why do we fall in love so easy
Even when it’s not right

Where there is desire
There is gonna be a flame
Where there is a flame
Someone’s bound to get burned
But just because it burns
Doesn’t mean you’re gonna die
You’ve gotta get up and try try try
Gotta get up and try try try
You gotta get up and try try try

Ever worried that it might be ruined
And does it make you wanna cry?
When you’re out there doing what you’re doing
Are you just getting by?
Tell me are you just getting by by by
Where there is desire
There is gonna be a flame
Where there is a flame
Someone’s bound to get burned
But just because it burns
Doesn’t mean you’re gonna die
You’ve gotta get up and try try try
Gotta get up and try try try
You gotta get up and try try try
Gotta get up and try try try
Gotta get up and try try try
You gotta get up and try try try
Gotta get up and try try try

You gotta get up and try try try
Gotta get up and try try try

 

超棒的30款JS类库和工具

摘要:对于Web设计人员和开发人员来说,手里有一套便利的、最新的工具可供使用是极其重要的。Web设计和开发的趋势变化极快,所以拥有最新的工具是必不可少的。因此小编今天为大家整理了30个JS类库和工具以供参考。

当设计人员和开发人员真正快速便捷的使用JavaScript类库和工具的同时,他们的生活也就变得更轻松、简单。你付出的越多,它回报你的也就越多,这正是JS类库和工具需求量很大的原因。

对于Web设计人员和开发人员来说,手里有一套便利的、最新的工具可供使用是极其重要的。Web设计和开发的趋势变化极快,所以拥有最新的工具是必不可少的。

可是要想找到质量高和效率高的工具并非易事,尤其是考虑到这种类型的工具它所带有的额外工具的可用性,并且,不是所有的工具都是高质量的。因此,寻找好的工具不仅仅是一项艰巨的任务,同时也很耗时。这就是为什么小编今天为大家提供30个JS类库和工具列表的原因。所有的工具都很有用,找出最能够满足你需要的那一个!

dynamo.js

这是一款使用很便捷的工具,它可以快速容易的创建HTML动态bits,为文本目录添加微妙效果。

Smoke.js

Smoke.js是一个轻量级且灵活的JS插件,只是用来替代原有的alert而已。它完全由HTML与CSS3构成,所以你能够自己添加样式来表现出个性化。

Holder.js

Holder.js可直接在客户端渲染图片的占位。支持在线和离线,允许轻松创建占位符,并快速使用可链接API(chainable API)风格。

Graphene

这款工具有惊人之处,有一个控制面板和绘图工具箱,使用起来很容易上手。

GMap

这是一款了不起的轻量级jQuery插件,用来将Google Maps插入到网页或者博客中。提供了更加简便的方法用于集成、管理和定制。

jPages

jPages是一个超给力的jQuery分页插件,它提供了很多丰富的新特性,例如自动翻页功能、可用键盘和鼠标滚动浏览、内容延迟显示、支持自定义分页导航菜单等等。使用起来很简单,效果也很出色。

Leaflet-JS Library

Leaflet是一个开源的基于移动开发的互动式地图JS库,代码量仅约28 KB。

JSZip

JSZip允许使用JS创建、阅读和编辑.zip文件。

Colors

这是一款非常有用的颜色处理类库,工作效率高,可以为项目选择正确的颜色。

Fitvids.js

这是另一款轻量、易用的jQuery插件,如果你需要你的视频能够自动适应网页的宽度,FitVids.js这个jquery插件可以帮助你。

Stroll.js

这些滚动效果是纯粹使用CSS3所实现的,其中所用到的JS仅是用来实现绑定和移除CSS样式。

Hammer.js

Hammer.js是一个轻量级的JS库,能让你的网站轻松实现触控事件。它依赖于jQuery,用来控制触摸设备上的多点触控特性。

Socialite.js

Socialite.js 是一个用来方便生成各种社交网站分享按钮的JS库,提供多种按钮排列样式,可以根据客户需求实现个性化设置。

Retina.js

顾名思义,Retina.js是很棒的脚本,帮助你在Retina显示设备上制造出高质量的图片,这是一款便捷的开源软件。检查网页中的图片是否存在高清的版本,如果有将会替换显示。

KineticJS

这是一个很简便的HTML5 Canvas独立JS类库,使用这个类库你可以轻松的在桌面和移动设备上进行图形和图片绘制和修改,执行动画效果,或者和图形图片进行互动。

URI.js

URI.js是一个JS库,用于处理URLs地址。它提供了类似于jQuery风格的API(便利的接口和方法链),用于读写所有常用组件,像.directory和.authority一样的方式。

Crossfilter

Crossfilter是一个用来展示大数据集的JS库,在浏览器里有很多不同的多元数据集,支持超快的交互,甚至在上百万或者更多数据下都很快。主要用来构建数据分析程序。

DropKick.js

从头开始做下拉式菜单可能是非常耗时和繁忙的任务,因此DropKick出现了,它是一个下拉框美化插件,使用非常简单,直接为下拉框select调用方法即可,瞬间让你摆脱繁琐。

Foresight.js

Foresight.js可以在装载图片之前知道用户的设备是否可以显示高分辨率的图片。

Kartograph

Kartograph是一个简单且轻量级的框架,建立交互式地图应用程序无需谷歌地图或其他任何地图服务。

Patternizer – Stripe Pattern Generator Tool(条纹模式生成器工具)

Patternizer是一个在线的带状模式生成工具,可以帮助你简单快捷的创建复杂的模式。你同样可以把你创建模式的经验与别人分享,收集别人的意见。

Morris.js

Morris.js是一个轻量级的JS库,使用jQuery和Raphaël来生成各种时序图。

JavaScript Library Boilerplate

JS Boilerplate可以帮助你来轻松创建你自己的JS库,例如jQuery,Zepto,Prototype等等。

heatmap.js

Heatmap.js用来生成基于用户自定义数据上的Web热图,内嵌HTML5 Canvas元素。

uiji.js

uiji.js很独特,它是jQuery的反向,它不是使用CSS选择器来查找元素,您可以使用相同的语法来创建元素。

sigma.js

sigma.js是一个开源的轻量级JS库,用来绘制各种图形,使用的是HTML Canvas元素。它同样可以用来显示交互式的静态和动态图表。

Heyoffline.js

heyoffline.js是一个简单的JS库,当用户网络不可用的时候可以提示用户保存信息,以免数据丢失。

JavaScript Console–Debugging JavaScript Tool(JS调试工具)

从字面意思可以看出,它是一个JS调试工具,同时为移动Web Apps提供远程调试。

Yeoman

它旨在为开发者提供一系列“健壮的”工具、程序库和工作流,帮助他们快速构建出漂亮、引人注目的Web应用。

Batman.js

这个框架就像它的名字一样酷——它可以创建丰富高效的单页面浏览器Apps。Batman.js框架利用CoffeeScript或JavaScript来快速构建Web Apps。由于其拥有强大的视图绑定和可观察的属性,所以它的代码非常简洁。

原文:Inspire Trends

http://www.csdn.net/article/2013-07-01/2816068-best-javascript-libraries-and-tools

工作变得简单又高效 试试这八个WebApp

摘要:你的工作类型是不是需要和同事协作交流,是不是要和客户联系?选择正确的工具和方法既可以提高工作效率,又可以节省大量时间。下面的这些Apps也许能成为帮你解决问题的得力助手。

有的时候只用得到一个Web App就可以解决金融危机,简化操作或者是让团队更有效地交流,这通常和你使用的App有关。许多公司对待技术问题的解决办法就是通过升级来让工具变得更强大,这已经在组织内成为一种连锁反应了。介绍对你事业有帮助的八款Web App。

Creately

Creately:在线图表制作协作平台是一款优秀的绘制产品图形的在线工具,绘制的图形更为丰富,支持UML图、Mindmap图、SWOT图、产品原型图、流程图等数十种类型。

对于可视化公司而言,没什么工具能打败Creately。流程表和图表App能够为你的想法创建条理清晰的视觉图表,这是成功的法宝。这个App多人协作也很方便,用户可以利用侧边栏来邀请其他人在线协作,团队成员可以留言评论和任务追踪。不同于Vizio,它使用云技术运行并在线储存数据。要创建一个可视化文件,需要拖放对象,您也可以使用预先存在的模板以开始浏览网页。

ZenDesk

ZenDesk是基于云计算运行的软件,帮助代理商追踪支持调用,了解协助状态,提供步骤指导。更重要的是,这个App可以在调用时生成报表,支持resolutions,并且还可以根据准确性进行适当的微调。

Work.com

关于“竞赛重装”App的想法似乎有点不可思议。但使用了Work.com,结果就是最好的证明。这个App的设计目的就是为了帮助管理人员测评工作成绩。可最后却为员工所用。使用游戏模式技术,员工可以获得奖励,例如提高在Facebook上的知名度或者收到礼物卡。一旦员工达到目标,管理人员可以和他们互动,调整他们的工作效率。

Smartsheet

当Microsoft Excel在企业里大展拳脚的时候,许多企业每天仍在使用电子数据表工具(spreadsheet tool)。Smartsheet是一款包含任务管理,调查表格,甘特图表和日历视图等众多功能的在线协助软件。这个App可以创建多人协作型的电子数据表,让他们可以直接在电子表格里进行数据的协作,包含所需的各种计算方式。员工可以附加文件到个人单元格或留言评论。有不同版本的Smartsheet可供Web、平板电脑和手机使用。

Setster

近些年日历已经被加入到云技术里了。通过Setster,你可以根据和客户的关系制定日程表。如果你期待一个在线App,这个排程器正合适,取消或重新安排会议,每个人都能收到提示。它还有一个特色,那就是填充会议或添加弹性时间,所以大家都知道不必准时出席会议。

WalkMe.com

如果你还在努力和客户交流复杂的思想,那么WalkMe.com可以帮你改变这一切。如果你需要顾客在一个网页上填满很长的表格或完成难度大的任务,那你就可以使用WalkMe作为现场教程。这款工具利用拖放方法来创建步骤,并同时出现在现实网页上。尤为关键的是,通过自助辅助工具,几乎没有人完成不了任务。

15Five

产品之所以叫做15Five是因为员工需要用15分钟的时间回答一份问卷,题目是公司高层为每周工作汇报所指定的,鼓励诚实和透明度。在将报告上交发CEO或者公司的其他五位高管前,经理人则花 5 分钟的时间来审阅和点评这些答案。通过这种节省时间的汇总报告,CEO可以快速地发掘公司运作的优缺点,然后将更宏观的目标传达给团队。

Do.com

一些所谓的“团队合作”的观念常常被忽略,Do.com的服务对象是那些需要协作的中小企业和小型组织,目的是让团队里面的每个人都可以看到尚未完成的任务和项目。 它是一款小巧的、多功能的团队管理工具,员工可以写下带有问题的便条,甚至可以在线聊天。员工还可以连接文件到Dropbox和Google Drive,亦可同步连接到Salesforce的联系人。

Do.com在Heroku的云应用平台上开发,用Ruby on Rails编写,通过HTML5部署,并向第三方开发者提供API服务。由于采用了HTML5技术,该应用支持所有浏览器,包括苹果的iOS设备。除了网络应用之外,他们还为智能手机用户开发了本地应用(目前仅有iOS版,Android版将在明年推出)。

原文:ItWorld

http://www.csdn.net/article/2013-06-27/2816025-8-Web-apps-that-will-change-your-business

极客编程必备的五大PHP开发应用

摘要:有了PHP应用可以帮助编码爱好者事半功倍,提升项目质量;有了这些最新的且灵活的PHP应用使创建编码项目更加简单、便捷。本文,我们收集了五大最新的PHP开发应用。

PHP应用在网络上并不多见。最重要的是,很难找到有关这方面的资源。代码指南对于编程爱好者来说非常重要且是必备的,因为它能为你节省大量的时间,让你自由编码。

PHP编码者需要掌握该领域的新技术,并且在项目中必须运用新的功能。有了PHP应用可以帮助编码爱好者事半功倍,提升项目质量;有了这些最新的且灵活的PHP应用使创建编码项目更加简单、便捷。本文,我们收集了五大最新的PHP开发应用,一起来看下。

1.  phpFreeChat


这是一款方便、快捷的PHP模块,你可以在Web应用中嵌入聊天功能。其提供三个版本选项,一个是开源的,能够为你的网站集成所有聊天所需的应用功能;另外两个版本则是需要付费。

2.  Unirest :HTTP Libraries支持多种语言


Unirest库不仅支持PHP,而且还支持其他多种语言比如.NET、JAVA、Python等,使用Unirest HTTP库能够提高Web开发。

3. Whoops:Library for PHP Error Reporting


极客在调试过程中发现错误时非常痛苦,Whoops就是为化解这一难题而生,这款PHP库提供简单的方式来处理错误并让你在Web应用开发阶段进行调试。

4.  PHP Mobile Detect


这是一款轻量级的类能够帮助你在Web应用中检测移动设备;支持各种主流设备包括平板电脑、智能手机,使得现代Web应用更加强大且实用。

5.  phpFastCache


即便你获得了所有测量,但却增加了页面加载时间。而phpFastCache是专为你准备的最佳解决方案,它不但能减少数据库加载时间,还能加速动态Web应用。从本质上讲,它是应用体系架构通用的、目标分布式对象系统。

英文出自:Meenaxi

http://www.csdn.net/article/2013-06-24/2815961-php-applications-for-code-geeks

加速编码的17款最棒的CSS工具

摘要:文章中收集了加速编码的17款最好的CSS工具;以帮助开发人员和设计人员简化工作。利用它们可以生成CSS菜单、动画影像、按钮、滑块、动画文本、CSS形状代码、图层还有很多其他的。

不用介绍,软件开发界的“地球人”都知道CSS,因为它是最流行的一种样式设计语言。学习和使用CSS已经不再是一件棘手的事,因为在网上可以获得很多信息教程和CSS工具。这些工具有助于你创造出有用的、有创新的Web应用程序,同时节省更多开发步骤和时间。

文章中收集了加速编码的17款最好的CSS工具;以帮助开发人员和设计人员简化工作。利用它们可以生成CSS菜单、动画影像、按钮、滑块、动画文本、CSS形状代码、图层还有很多其他的。希望这个列表对你的开发工作有用。

1. Topcoat : CSS for Clean and Fast Web Apps

Topcoat是一个程序库,包含CSS类用于创建表格元素、按钮、复选框、滑块等。这个轻量级的工具可以让你设计的网页或者App看起来相当不错。

2. PCSS : Shortcut Oriented Server Side CSS3 Preprocessor

PCSS是一款由PHP驱动的CSS预处理器,它可以帮助开发者通过定义变量、类测试、默认单元和服务端浏览器细节,以达到快速编写CSS代码的目的。PCSS使用PHP5来实现服务端处理,因此正在运行的网站服务器上需要具备这个PCSS版本。

3. Skeleton

Skeleton是一款较小的CSS文件集合体,它可以帮助开发者快速创建适配任何尺寸的网站,无论是在17寸笔记本屏幕或iPhone上。Skeleton的构建基于三大规律:快速响应到手机,迅速启动和独一无二的风格。

4. CSS Menu Maker

这个工具帮助用户轻松创建CSS下移菜单。CSS菜单编辑器提供网络专业人员和工具,帮助开发人员构建个性化的、跨浏览器相兼容的CSS菜单,同时还为所有的CSS菜单和设备用户提供源代码,以便下载和调整代码。

5. Sencha Animator

这是一个桌面应用程序,允许用户创建专门用在触摸屏移动设备和Webkit浏览器上的CSS3动画。 Sencha Animator还可以协助用户创建动画文本、图片、倾斜按钮和内嵌分析。

6. CSS Form Code Generator

CSS Form Code Generator可以制作布局好看的表格,也可以制作出布局简单的色彩表。这个“Code Maker”生成的CSS布局代码也可以为这些表格添枝加叶。

7. PrefixmyCSS

PrefixmyCss可以简简单单的为CSS3代码添加前缀。用户必须复制CSS代码到窗口才能添加前缀,供应商已提前在代码上添加了前缀,用户可安全放心的替换旧的代码。

8. Sky CSS Tool

Sky CSS Tool允许你创建CSS类时几乎不需要使用手写代码。用户可能需要与JavaScript相兼容的浏览器来确保正常运行。

9. Spritemapper

Spritemapper是一款可以合并多个图片的应用程序,为相应的片段生成CSS精确位置。此款工具可以帮助开发者优化可用空间和加载时间。

10. CSS Compressor

CSS Compressor通过压缩CSS来提高加载速度,还可以节约带宽。依据你对CSS的压缩程度和代码的易读性,它提供了三个级别的压缩。

11. Patternify

Patternify可以帮助你生成漂亮的CSS模板。

12. CSS Text Shadow

CSS Text Shadow帮助使用者生成漂亮的文字阴影。

13. CSS3 Pie

CSS3 Pie在IE 6-9下可以渲染出最有用的CSS装饰功能。

14. The Web Font Combinator

该工具旨在浏览器下快速预览字体,无需一遍遍的刷新。近些年出版的书也都让标题字体紧挨着正文字体,这也是一种网络再创作的尝试。

15. 3D Transforms

CSS 3D变换器是一款在线工具,用户使用它可以执行多种级别的3D转换。目前此工具还处在实验模式下,在使用的时候,需要在浏览器下制定浏览器前缀。

16.  Quick Form Builder

Quick Form Builder有助于便捷地创建CSS表单。

17.  Layer Style

这是一款HTML5 App,用一种直观的方式创建CSS3。其内置的Colorpicker允许用户选择各种颜色,还便于用户拖放图片到页面,使用它们作为背景或挑选他们喜欢的颜色。(编则/张红月)

原文:codegeekz

http://www.csdn.net/article/2013-06-24/2815973-17-Best-CSS-Tools-to-Speed-Up-Your-Coding

让thinkphp完美支持smarty模板

Published by 荒野无灯 on  under PHP Tags: ,,,,,6487 views

 

ThinkPHP_modified_hywd20100217.zip (932.0 KB)

一,去掉了系统自带的think 模板引擎,用功能强大的smarty替代之,基本上可以说是完美支持smarty模板了。
原有的smarty模板接口只能实现基本的功能,比如判断模板是否已经缓存就无能为力,这样使用无疑大大削减了smarty的功能。
二,去掉了分组功能
三,默认使用php模板
四,支持带路由的dispatch
五,支持CURD方法、连贯操作、统计查询等
六,支持语言包、模板主题
七、去掉了大部分扩展机制
八、完美支持smarty模板引擎(ThinkPHP\Vendor\Smarty)

默认加载 :

convention.php
defines.php
functions.php
paths.php
runtime.php //生成核心和应用缓存用
core.php //include 文件用
alias.php //include 文件用
THinkphp/Lib/Think/Core
Log.class.php
Think.class.php
Db.class.php
Model.class.php
App.class.php
View.class.php
Action.class.php
Dispatcher.class.php

ThinkPHP\Lib\Think\Exception\ThinkException.class.php

THinkphp/Lib/Think/Util/
Debug.class.php
Session.class.php

可通过如下配置使用smarty模板引擎:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
    /* 模板引擎设置 */
‘TMPL_ENGINE_TYPE’      => ‘Smarty’,
‘TMPL_TEMPLATE_SUFFIX’  => ‘.html’,     // 默认模板文件后缀
‘TMPL_CACHFILE_SUFFIX’  => ‘.php’,      // 默认模板缓存后缀
‘TMPL_PARSE_STRING’     => array(‘__UPLOAD__’=>__ROOT__.’/Content/’,), // 模板引擎要自动替换的字符串,必须是数组形式。
‘TMPL_ENGINE_CONFIG’ => array(
‘debugging’=>true,
//    ‘error_reporting’=>”,
//    ‘exception_handler’=>array(‘ExceptionClass’,’ExceptionMethod’),
‘template_dir’ => TMPL_PATH,  //模板目录
‘compile_dir’ =>TEMP_PATH ,//编译目录
‘cache_dir’ =>CACHE_PATH,  //缓存目录
‘caching’ => false,  //是否启用缓存
‘cache_lifetime’ =>60*60*24,//缓存时间s
‘left_delimiter’=>'<{‘,
‘right_delimiter’ =>’}>’,
)  ,
‘TMPL_ENGINE_SMARTY_FILTER’=>array(
‘output’=>’trimwhitespace’,

),

这里初定义了smarty的编译目录、缓存目录、是否启用缓存、缓存时间、以及左定界符和右定界符,还有smarty的filter插件。(此处的trimwithespace用于过滤输出的html代码的空白。)
由于是开发时期,所以我还开启了smarty 的debugging(注意,由于修改了左右定界符,所以smarty的debugging模板也要作相应修改)。

关于 thinkphp的视图类(view)
thinkphp的视图类(view)是在核心库文件Action.class.php中__construct的实例化的,此__construct同时执行_initialize方法。
Action.class.php中的display方法是用于调用模板引擎的显示方法的,此处即为smarty的显示方法。为了让ThinkPHP支持Smarty的fetch方法和display方法的cache_id,让thinkphp里面调用display和fetch就像用smarty时一模一样,因此必须修改thinkphp
Action.class.php中的:
protected function display
protected function fetch
我还增加了几个方法(都是smarty里面的):
protected function is_cached
protected function clear_cache
具体代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
    protected function display($templateFile=”,$cache_id = null,$compile_id=null,$charset=”,$contentType=’text/html’)
{
$this->view->display($templateFile,$cache_id,$compile_id,$charset,$contentType);
}

protected function fetch($templateFile=”,$cache_id = null,$compile_id=null,$charset=”,$contentType=’text/html’)
{
return $this->view->fetch($templateFile,$cache_id ,$compile_id,$charset,$contentType);
}

//判断模板文件是否已经被缓存
//如果不是检查当前模块的操作模板,参数请用 module:action  方式
protected function is_cached($template, $cache_id = null, $compile_id = null)
{
if(!file_exists_case($template))
// 自动定位模板文件
$template   = $this->view->parseTemplateFile($template);
$template=substr($template,strlen(TMPL_PATH));
return $this->view->smarty->is_cached($template, $cache_id, $compile_id);
}

//清除单一模板文件的缓存
//如果不是清除当前模块的操作模板,参数请用 module:action  方式
protected function clear_cache($template_name, $cache_id=null, $compile_id=null, $exp_time=null)
{
if(!file_exists_case($template_name))
// 自动定位模板文件
$template_name  = $this->view->parseTemplateFile($template_name);
$template_name=substr($template_name,strlen(TMPL_PATH));
return $this->view->smarty->clear_cache($template_name, $cache_id, $compile_id, $exp_time);
}

//清除所有smarty 静态缓存
//返回清除的缓存数量
protected function clear_all_cache($exp_time=null)
{
return $this->view->smarty->clear_all_cache($exp_time);
}

//清除smarty编译缓存
//如果不带参数默认返回清除的编译缓存数量,带参数返回
//如果不是清除当前模块的操作模板,参数请用 module:action  方式
protected function clear_compiled_tpl($template_name=null)
{
if(null!=$template_name)
{
if(!file_exists_case($template_name))
// 自动定位模板文件
$template_name  = $this->view->parseTemplateFile($template_name);
$template_name=substr($template_name,strlen(TMPL_PATH));
}
return $this->view->smarty->clear_compiled_tpl($template_name);
}

这里注意,除了is_cached方法,其它的像clear_cache等我额外增加了函数如果在后调用并不会清除前台的缓存,除非前台后台是同一个app 。

进阶:让ThinkPHP支持Smarty的fetch方法的cache_id
这样以后肯定不行,还要修改Lib/Think/Core/View.class.php
增加一个属性,以支持调用插件:

1
2
3
4
    protected $cache_id=null;  //cache_id
protected $compile_id=null;  //cache_id
protected $smarty=null;
public $filters=null;

构造函数修改成如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
    function __construct()
{
$this->filters=C(‘FILTERS’);
$engine  = strtolower(C(‘TMPL_ENGINE_TYPE’));
if(‘smarty’==$engine)
{
vendor(‘Smarty.Smarty#class’);
$tpl = new Smarty();
if(C(‘TMPL_ENGINE_CONFIG’))
{
$config  =  C(‘TMPL_ENGINE_CONFIG’);
foreach ($config as $key=>$val)
{
$tpl->{$key}   =  $val;
}
}
else
{
$tpl->caching = C(‘TMPL_CACHE_ON’);
$tpl->template_dir = TMPL_PATH;
$tpl->compile_dir = CACHE_PATH ;
$tpl->cache_dir = TEMP_PATH ;
}
if(C(‘TMPL_ENGINE_SMARTY_FILTER’))
{
$filter  =  C(‘TMPL_ENGINE_SMARTY_FILTER’);
foreach ($filter as $key=>$val)
{
$tpl->load_filter($key,$val);
}
}

$this->smarty=&$tpl;
}
}

其中FILTERS是配置文件中定义的,类型为一维数组。
例如在应用的配置文件中:

1
‘FILTERS’=>array(‘hl_before_highlight_codeblock’,’hl_replace_attach_tag’,’hl_after_highlight_codeblock’,),

其中的hl_before_highlight_codeblock等函数是在应用的Common/common.php文件中定义的,因为应用在编译时首先会包含应用目录下的Common/common.php 。
display方法修改成如下:

1
2
3
4
    public function display($templateFile=”,$cache_id,$compile_id,$charset=”,$contentType=’text/html’)
{
$this->fetch($templateFile,$cache_id,$compile_id,$charset,$contentType,true);
}

fetch方法修改成如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
  /**
+———————————————————-
* 加载模板和页面输出
+———————————————————-
* @access public
+———————————————————-
* @param string $templateFile 模板文件名 留空为自动获取
* @param string $charset 模板输出字符集
* @param string $contentType 输出类型
* @param string $display 是否直接显示
+———————————————————-
* @return mixed
+———————————————————-
*/
public function fetch($templateFile=”,$cache_id=null,$compile_id=null,$charset=”,$contentType=’text/html’,$display=false)
{
$GLOBALS[‘_viewStartTime’] = microtime(TRUE);
if(null===$templateFile)
// 使用null参数作为模版名直接返回不做任何输出
return ;
if(empty($charset))  $charset = C(‘DEFAULT_CHARSET’);
// 网页字符编码
header(“Content-Type:”.$contentType.”; charset=”.$charset);
header(“Cache-control: private”);  //支持页面回跳
//页面缓存

http://ihacklog.com/post/change-thinkphp-framework-to-support-smarty-template-engine-perfectly.html

« 较早的 文章 较新的 文章 »

Copyright © 2024 优大网 浙ICP备13002865号

回到顶部 ↑