msgbartop
msgbarbottom

16 七 11 关于Web页面字体

几个页面字体适配度比较好的,HTML body 字体的定义:

•Google: font-family: arial,sans-serif;
•Twitter:font: 13px/1.5 Helvetica Neue,Arial,Helvetica,'Liberation Sans',FreeSans,sans-serif
•豆瓣:font: 12px/162% Arial,Helvetica,sans-serif;
•新浪微博:font-family: Arial,Helvetica,sans-serif;
•Apple中国:font: 12px/18px "Lucida Grande","Lucida Sans Unicode",Helvetica,Arial,Verdana,sans-serif;
•知乎: font: 13px/22px 'Helvetica Neue',Helvetica,Arial,Sans-serif;
•Facebook: font-family: "lucida grande",tahoma,verdana,arial,sans-serif;
•Google+: font: 13px arial,sans-serif;
结论:Arial,Helvetica,Sans-serif 这个组合适配性是最好的,也是最保险的。可选:Helvetica Neue。知乎的定义几乎可以直接照用。

其它:

•微软中国: font-family: Segoe UI,Tahoma,Arial,Verdana,sans-serif;
•淘宝:font: 12px/1.5 tahoma,arial,宋体; //看过淘宝同学写过的很棒的字体文章,估计页面不是统一定义的
•百度:font: 12px arial;
•QQ: font-family: "宋体","Arial Narrow";
•新浪:font-family: "SimSun","Arial Narrow"; //最烂
结论:用了宋体的,都比较烂。。。中文网站要想页面视觉稍微好一点,直接去掉CSS中的宋体


Tags - , , , , ,

29 五 11 敏捷13

  1. 敏捷是整个团队围绕着圆桌一起工作,没有任何沟通障碍
  2. 敏捷是正确理解和挖掘需求,按照业务进行分解,并且有优先级的排列
  3. 敏捷是所有的需求和开发任务都全部贴在墙上,完全可视化管理。需求和任务的细节部分统一在Wiki上记录、维护和整理
  4. 敏捷是每个人都可以自由去墙上领取工作,大家只有一个目标,那就是把项目做好
  5. 敏捷是业务被合理的建模,同时代码被很好的设计
  6. 敏捷是代码每个方法在10行左右,能够表达业务意图,没有重复,遵循开闭原则,修改尽可能在一个地方
  7. 敏捷是代码集体所有制,每天早上做Code Review,大家都有能力修改所有的功能模块
  8. 敏捷是大部分功能都有自动化测试保障,如果测试失败,那么必须第一优先级修复
  9. 敏捷是系统界面简洁,好的交互设计,稳定可靠,良好的性能
  10. 敏捷是自动化编译、打包、部署、升级
  11. 敏捷是不断交付可用的软件,周期从几周到几个月不等,越快越好
  12. 敏捷是团队每周一次learning session,大家追求卓越,互相学习提高,对技术精益求精,对设计不断完善
  13. 敏捷是大家肩并肩地工作,互相尊重、信任、欣赏和协作

Tags - ,

29 五 11 敏捷13

  1. 敏捷是整个团队围绕着圆桌一起工作,没有任何沟通障碍
  2. 敏捷是正确理解和挖掘需求,按照业务进行分解,并且有优先级的排列
  3. 敏捷是所有的需求和开发任务都全部贴在墙上,完全可视化管理。需求和任务的细节部分统一在Wiki上记录、维护和整理
  4. 敏捷是每个人都可以自由去墙上领取工作,大家只有一个目标,那就是把项目做好
  5. 敏捷是业务被合理的建模,同时代码被很好的设计
  6. 敏捷是代码每个方法在10行左右,能够表达业务意图,没有重复,遵循开闭原则,修改尽可能在一个地方
  7. 敏捷是代码集体所有制,每天早上做Code Review,大家都有能力修改所有的功能模块
  8. 敏捷是大部分功能都有自动化测试保障,如果测试失败,那么必须第一优先级修复
  9. 敏捷是系统界面简洁,好的交互设计,稳定可靠,良好的性能
  10. 敏捷是自动化编译、打包、部署、升级
  11. 敏捷是不断交付可用的软件,周期从几周到几个月不等,越快越好
  12. 敏捷是团队每周一次learning session,大家追求卓越,互相学习提高,对技术精益求精,对设计不断完善
  13. 敏捷是大家肩并肩地工作,互相尊重、信任、欣赏和协作

Tags - ,

29 五 11 敏捷13

  1. 敏捷是整个团队围绕着圆桌一起工作,没有任何沟通障碍
  2. 敏捷是正确理解和挖掘需求,按照业务进行分解,并且有优先级的排列
  3. 敏捷是所有的需求和开发任务都全部贴在墙上,完全可视化管理。需求和任务的细节部分统一在Wiki上记录、维护和整理
  4. 敏捷是每个人都可以自由去墙上领取工作,大家只有一个目标,那就是把项目做好
  5. 敏捷是业务被合理的建模,同时代码被很好的设计
  6. 敏捷是代码每个方法在10行左右,能够表达业务意图,没有重复,遵循开闭原则,修改尽可能在一个地方
  7. 敏捷是代码集体所有制,每天早上做Code Review,大家都有能力修改所有的功能模块
  8. 敏捷是大部分功能都有自动化测试保障,如果测试失败,那么必须第一优先级修复
  9. 敏捷是系统界面简洁,好的交互设计,稳定可靠,良好的性能
  10. 敏捷是自动化编译、打包、部署、升级
  11. 敏捷是不断交付可用的软件,周期从几周到几个月不等,越快越好
  12. 敏捷是团队每周一次learning session,大家追求卓越,互相学习提高,对技术精益求精,对设计不断完善
  13. 敏捷是大家肩并肩地工作,互相尊重、信任、欣赏和协作

Tags - ,

29 五 11 敏捷13

  1. 敏捷是整个团队围绕着圆桌一起工作,没有任何沟通障碍
  2. 敏捷是正确理解和挖掘需求,按照业务进行分解,并且有优先级的排列
  3. 敏捷是所有的需求和开发任务都全部贴在墙上,完全可视化管理。需求和任务的细节部分统一在Wiki上记录、维护和整理
  4. 敏捷是每个人都可以自由去墙上领取工作,大家只有一个目标,那就是把项目做好
  5. 敏捷是业务被合理的建模,同时代码被很好的设计
  6. 敏捷是代码每个方法在10行左右,能够表达业务意图,没有重复,遵循开闭原则,修改尽可能在一个地方
  7. 敏捷是代码集体所有制,每天早上做Code Review,大家都有能力修改所有的功能模块
  8. 敏捷是大部分功能都有自动化测试保障,如果测试失败,那么必须第一优先级修复
  9. 敏捷是系统界面简洁,好的交互设计,稳定可靠,良好的性能
  10. 敏捷是自动化编译、打包、部署、升级
  11. 敏捷是不断交付可用的软件,周期从几周到几个月不等,越快越好
  12. 敏捷是团队每周一次learning session,大家追求卓越,互相学习提高,对技术精益求精,对设计不断完善
  13. 敏捷是大家肩并肩地工作,互相尊重、信任、欣赏和协作

Tags - ,

10 五 11 尝鲜Flash Builder 4.5 for PHP

Flash Builder 4.5 for PHP出来有几天了,打算安装来玩玩。下载了安装包(900多MB,够大)后直接安装,但快到最后的时候提示安装失败。。。我X,神马意思嘛。
Google了许久没发现遇到这种情况的,连老外都没遇到过。自己摸索吧~~
尝试删除所有已安装的Adobe和Zend软件:Flash Builder 4.5 Burrito(就是测试版)、Zend Studio 8…………
然后下载Flash Builder 4.5安装,再X一次,看安装程序界面,Flash Builder 4.5是Adobe出的正统的,Flash Builder 4.5 for PHP怎么看都像是Zend山寨的,囧死。。。。
Flash Builder 4.5顺利安装结束后,再尝试安装Flash Builder 4.5 for PHP,好吧,我承认今天RP还是反弹了的,哇哈哈,安装成功!
Tags - , , , , ,

13 十二 10 12款在线网站速度和性能测试工具

网站的访问速度对于一个网站非常重要,没有一个人会喜欢速度慢的网站。下面是12款在线测试网站的访问速度和性能的工具,在优化网站的时候很有用。

Pingdom

测试网站每个元素的加载速度,比如html、图片、JS文件等等。
GTmetrix

GTmetrix集合了Yslow和Google Page Speed的功能,Yslow和Google Page Speed是两款FireFox的插件,但是这个在线应用可以使用任何的浏览器。它会给出你网站的评分并指出哪些是需要改进的。
Light Speed Now

测试网站的速度,然后把报告发送到你的邮箱。
Load Impact

Load Impact可以说是一个负载测试,看看你的网站能够扛得住多少的流量。免费的用户只能模拟50个用户同时测试,升级到付费的用户可以模拟不限用户的负载测试。
Site Perf

Site Perf可以模拟浏览器进行测试,可以测试各个元素的下载速度。还可以测试每个需要解析的主机的连接时间。
WebWait

测试访问速度。
Gomez Networks

Gomez Networks测试网站外部元素的加载时间,比如CSS、图片、JS等。
Octa Gate

Octa Gate测试每个元素的加载时间。
Webslug

对比两个网站的加载速度。
WebToolHub

测试不同网络连接下的网站的加载速度。
iWebTools

iWebTools可以最多同时测试10个页面的大小和加载速度。
SearchMetrics

测试网站的外部元素的加载速度,还可以测试在不同的网络带宽下的连接速度。


Tags - , , , , , , , , , ,

08 十 10 PHP 5.3下支持加密过的代码的Zend Loader

从这里下载:http://downloads.zend.com/guard/5.1.0EA/ZendGuardLoader-php-5.3-Windows.zip
然后修改php.ini的内容如下:
[Zend.loader]
zend_loader.enable=1
zend_loader.disable_licensing=1
zend_loader.obfuscation_level_support=3
zend_loader.license_path=
zend_extension="c:\php\ext\ZendLoader.dll"

顺便提供下载:点击这里下载文件
Tags - , , , , , , ,

29 九 10 记录一下SOAP方式连MySQL需要注意的细节

SOAP方式new对象本身没什么好说的,网上一搜一大堆……
需要注意的是:如果SoapServer的类中成员(例如$db)是连接数据库的,那么在构造函数中传入数据库参数,期望在new对象的时候就一并获得数据库连接就可以执行其他方法是行不通的(花了很久时间才找到原因:PHP内置的SOAP对象不支持子对象的传递和状态保持),因此,可以这样做:
1、原有构造函数的功能分为两块:(1)连接数据库的方法(例如InitConn());(2)精简版的构造函数,根据一个传入的参数决定是否调用(1)
2、原有其他查询数据库的方法在执行逻辑功能之前先检测内部的数据库子对象(例如前述的$db)是否存在,不存在就new一个出来,并调用(1)来连接数据库。同时需要给本方法增加一个新的传入参数,用于存放数据库参数。

没有用过的人可能不知道我在说什么,遇到相同问题的话,以上办法可能会派上大用场d~~
Tags - , , , , , , ,

27 九 10 再谈PHP中基于SOAP的WebService

在使用SOAP编写WebService的过程中主要用到了SoapClient、SoapServer、SoapFault三个类。使用SOAP记得开启curl扩展。

SoapClient类用来使用WebService。SoapClient类可以作为给定WebService的客户端。
它有两种操作形式:
* WSDL 模式
* Non-WSDL 模式
在WSDL模式中,构造器可以使用WSDL文件名作为参数,并从WSDL中提取服务所使用的信息。
non-WSDL模式中使用参数来传递要使用的信息。

SoapServer类用来提供WebService。与SoapClient类似,SoapServer也有两种操作模式:WSDL模式和non-WSDL模式。这两种模式的意义跟SoapClient的两种模式一样。在WSDL模式中,服务实现了WSDL提供的接口;在non-WSDL模式中,参数被用来管理服务的行为。

在SoapServer类的众多方法中,有三个方法比较重要。它们是SoapServer::setClass()、SoapServer::addFunction()和SoapServer::handle()。

下面给出实例:
定义一个提供服务的php类,这个类所提供的函数就是WebService对外提供的服务
<?php
Class PersonInfo
{
     /**
      *    返回姓名
      *    @return string
      *
      */
     public function getName(){
         return "My Name is Chance";
     }
}
?>

下面给出服务器端的代码:
<?php
//包含提供服务的类进来
require_once('PersonInfo.php');

//wsdl方式提供WebService,如果生成了wsdl文件则可直接传递到//SoapServer的构造函数中
//$s = new SoapServer('PersonInfo.wsdl');

//doesn't work 只有location不能提供WebService
//output:looks like we got no XML document
//$s = new SoapServer(null,array("location"=>"http://localhost/Test/MyService/Server.php"));

//下面两种方式均可以工作,只要指定了相应的uri
//$s = new SoapServer(null,array("uri"=>"Server.php"));
$s = new SoapServer(null,array("location"=>"http://localhost/Test/MyService/Server.php","uri"=>"Server.php"));

$s->setClass("PersonInfo");

$s->handle();
?>

下面是客户端代码:
<?php
try{
    //wsdl方式调用WebService
    //wsdl方式中由于wsdl文件写定了,如果发生添加删除函数等操作改动,不会反应到wsdl,相对non-wsdl方式来说不够灵活
    //$soap = new SoapClient("http://localhost/Test/MyService/PersonInfo.wsdl");
    
    //non-wsdl方式调用WebService    
    //在non-wsdl方式中option location系必须提供的,而服务端的location是选择性的,可以不提供
    $soap = new SoapClient(null,array('location'=>"http://localhost/Test/MyService/Server.php",'uri'=>'Server.php'));
    
    //两种调用方式,直接调用方法,和用__soapCall简接调用
    $result1 = $soap->getName();
    $result2 = $soap->__soapCall("getName",array());
    echo $result1."<br/>";
    echo $result2;
    
}catch(SoapFault $e){
    echo $e->getMessage();
}catch(Exception $e){
    echo $e->getMessage();
}
?>

Tags - , , , , , , , , ,