2012年05月5日

垃圾智能手机不宜经常连接到笔记本电脑

Filed under: 喷口水 — cmpan @ 2012-05-05 06:43:40

低端智能手机容易把笔记本电脑显示屏烧坏。
之前笔记本显示器坏了一次,开始屏幕在抖动,到后来待机后在动鼠标,显示屏就不亮了,只能重启电脑。到后来屏幕都不亮了。
今天手机用USB接上笔记本后,发现屏幕有闪动状况,顿悟肯定不是手机辐射影响屏幕,赶紧拔下来,换充电器充电。

还不如多加几百,弄个中高端的平板手机,否则常用电脑来玩手机的话,到时候修电脑的钱还要多。

2012年03月15日

如何写一份交互说明文档

Filed under: 开发方法 — cmpan @ 2012-03-15 23:45:09
转载请注明来处,关注我,请点击:http://weibo.com/heidixie
离开交互圈已经有段时间了。但由于博客还在,还是能够偶尔收到一些邮件,上周有位同学问我:我在求职,我看到很多招聘说明上需要交互设计师编写界面交互设计文档,请问界面交互设计文档是什么文档?怎么编写呢
这让我想起来2009年自己在项目里也大力推行过交互说明文档(在下文中,简称为DRD),格式倒没什么限制,交互设计师自己写到界面上也行,单独文档成文也行,总之就是让交互设计师能够将界面承载不了的信息通过文档沉淀下来,降低项目里的沟通成本和风险。今天整理电脑,翻出以前的PPT,分享之。

(全文 …)

2012年02月16日

打开zend studio 项目的方法

Filed under: PHP » PHP » 实践经验 — cmpan @ 2012-02-16 20:31:02

我们用zend studio创建一个php项目的时候,把项目文件夹复制到其他电脑上以或切换工作区后,可以直接打开该项目。

打开方法:
File > Import > General > Existing Projects into Workspace

然后选择项目所在文件夹即可。

Zend Studio每个工作区下创建一个.metadata和RemoteSystemsTempFiles文件夹来保存项目相关信息。
我们打开zend studio的时候,它打开了一个Workspace,这个Workspace里面可以有多个项目,项目文件可以再工作区文件夹里面,也可以在外面。

不像VS打开单个项目,而是打开一个Workspace,而项目则在Workspace中,如果想打开其他不在工作区中的项目,则把项目导入工作区即可。

2012年02月15日

Zend studio 8+设置默认使用UTF-8编码

Filed under: PHP » PHP » 实践经验 — cmpan @ 2012-02-15 12:42:21

Zend Studio 8+默认使用系统编码,也就是GBK,当我们用Zend Studio 用从SVN服务器导出项目的时候,如果项目使用UTF-8字符集,打开文件的时候中文将会出现乱码。
解决:
将如下设置为使用UTF-8编码
1、Project > Properties > Resource
2、Window > Preferences > General > Workspace
3、Window > Preferences > Web > HTML Files
4、Window > Preferences > Web > CSS Files
5、Window > Preferences > PHP > Debug

2011年12月4日

IE兼容性bug汇总

Filed under: 未分类 — cmpan @ 2011-12-04 19:20:08

项目最新版本的开发进入后期阶段,今天鼓起勇气打开IE Test,如我所料啊!页面在IE6下面目全非了,呜呜~~

现在开始修复IE的Bug(大部分是IE6,IE7 8也有一些),顺便记录下来。
(全文 …)

2011年11月29日

使用HTML5开发安卓应用入门

Filed under: 未分类 — cmpan @ 2011-11-29 00:55:03

开发工具安装包下载及安装
1、Eclipse Classic
下载Eclipse Classic版解压 http://www.eclipse.org/downloads/
下载并安装Android SDK http://developer.android.com/sdk/index.html
下载Android Eclipse插件 ADT http://developer.android.com/sdk/eclipse-adt.html
下载HTML5转手机应用构建工具phonegap http://phonegap.com/download-thankyou

安装eclipse插件小插曲:
拜于天朝的超级局域网,我2M宽带安装插件时速度一直不能达到10K,让我得以挑战人类忍耐的极限。还好用vps做代理后有50K左右的速度,人品好的时候还能到200K+,终于安装上了adt插件。

phonegap官方入门教程:http://phonegap.com/start#android

问题及解决:
解决–emulator.exe 遇到问题需要关闭。把C:\Documents and Settings\Administrator\.android\目录删除,重新创建svd。
phonegap 的ajax不存在跨域问题。

2011年11月27日

IE下类似firebug的调试工具DebugBar

Filed under: 未分类 — cmpan @ 2011-11-27 04:59:34

下载地址:http://www.debugbar.com/download.php
该网站还提供ie下使用的仿firebug-lite的CompanionJS:http://www.my-debugbar.com/wiki/CompanionJS/HomePage
比较有名的IETester也是该站出品:http://www.my-debugbar.com/wiki/IETester/HomePage

解决ie下JS提示“尚未实现 ”错误

Filed under: CSS » JS — cmpan @ 2011-11-27 04:43:48

鼠标经过链接的时候,总提示JS 1行、第xx个字符,错误信息是:“尚未实现 ”。从js入手调试了半天,解决不了问题。想到是不是css里的expression引起的,把链入的样式去掉,果真是。css的expression调用了ie不支持的方法引起js错误提示。IE这SB只知道第1行、第xx个字符出错了,不可信。

2011年11月16日

敏捷测试的方法和实践

Filed under: 开发方法 » 敏捷 — cmpan @ 2011-11-16 02:50:37

有一次,当开发人员完成当前Sprint 任务的代码之后,测试人员与开发人员、产品经理一起来浏览产品、从头到尾走一边,产品经理发现了问题,认为需要对功能进行比较大的修改。这时开发人员估计 需要两天时间才能完成代码,但测试人员反对这样做,我们本来只有5天测试时间,加上这次新做的功能比较多、开发代码质量不高,验收测试已经很紧张。如果再 延迟两天,测试没法完成。产品经理说,你们不是在用敏捷测试方法,应该测得很快,三天应该能完成测试工作啊!

什么是敏捷测试呢?敏捷测试当然不能简单地理解测得更快,绝对不是比以前用更少时间进行测试,也不是将测试的范围缩小了或将质量降低来减少测试任务。也有人说,只有敏捷开发,没有敏捷测试。
(全文 …)

2011年11月12日

软件架构模式的种类

Filed under: 架构 — cmpan @ 2011-11-12 09:40:07

在做软件架构设计时,根据不同的抽象层次可分为三种不同层次的模式:架构模式(Architectural Pattern)、设计模式(Design Pattern)、代码模式(Coding Pattern)。

架构模式是一个系统的高层次策略,涉及到大尺度的组件以及整体性质和力学。架构模式的好坏可以影响到总体布局和框架性结构。

设计模式是中等尺度的结构策略。这些中等尺度的结构实现了一些大尺度组件的行为和它们之间的关系。模式的好坏不会影响到系统的总体布局和总体框架。设计模式定义出子系统或组件的微观结构。

代码模式(或成例)是特定的范例和与特定语言有关的编程技巧。代码模式的好坏会影响到一个中等尺度组件的内部、外部的结构或行为的底层细节,但不会影响到一个部件或子系统的中等尺度的结构,更不会影响到系统的总体布局和大尺度框架。
(全文 …)

2011年11月11日

用Flash理跨域上传或异步请求不能传Cookie的解决方案

Filed under: PHP » PHP » 实践经验 — cmpan @ 2011-11-11 03:09:00

用flash上传或flash做代理异步请求的时候,因为flash不能直接传递浏览器中的cookie到服务器,引起SESSION无法识别身份。想当年刚碰到这个问题的时候会非常头痛。其实在PHP里面,解决时很容易的。

客户端:把cookie变量添加到URL

1
2
3
4
5
6
7
    var url = 'http://www.vkas.net/index.php?user/account/getInfo';
    if(document.cookie.length > 0) {
        var cookies = document.cookie.split(';');
        for(var i in cookies) {
            url += '&' + encodeURI(cookies[i].replace(/^\s+|\s+$/g, ''));
        }
    }

服务器端:把URL中传的cookie.session.name设置到session id。这个过程必须在session_start()之前做。

1
2
3
4
    // 解决Flash不能传Cookie
    if (!empty($_GET[session_name()])) {
        session_id($_GET[session_name()]);
    }

2011年11月1日

一种以ID特征为依据的数据分片(Sharding)策略

Filed under: 未分类 — cmpan @ 2011-11-01 00:21:23

假如您有一个应用程序,随着业务越来越有起色,系统所牵涉到的数据量也就越来越大,此时您要涉及到对系统进行伸缩(Scale)的 问题了。一种典型的扩展方法叫做“向上伸缩(Scale Up)”,它的意思是通过使用更好的硬件来提高系统的性能参数。而另一种方法则叫做“向外伸缩(Scale Out)”,它是指通过增加额外的硬件(如服务器)来达到相同的效果。从“硬件成本”还是“系统极限”的角度来说,“向外伸缩”一般都会优于“向上伸 缩”,因此大部分上规模的系统都会在一定程度上考虑“向外”的方式。由于许多系统的瓶颈都处在数据存储上,因此一种叫做“数据分片(Database Sharding)”的数据架构方式应运而生,本文便会讨论这种数据架构方式的一种比较典型的实现方式。
(全文 …)

2011年10月28日

多些时间能少写些代码

Filed under: 未分类 — cmpan @ 2011-10-28 17:35:23

在现在这个浮躁的时期,再加上敏捷咨询师们念的歪经,他们让人感觉上就像是软件产品是可以在很短的时间内高质量的完成的,这令那些管理者们很兴奋, 就像巴甫洛夫的条件反射实验中的狗看到了肉就会流口水那样兴奋。他们使用TDD,快速迭代,不断重构,持续集成直至持续部署的方法在进行软件开发。
(全文 …)

2011年10月26日

对于PHP大型开发框架的看法

Filed under: PHP » PHP » 实践经验 — cmpan @ 2011-10-26 10:00:09

PHP从诞生以来就受到广大编程爱好者的喜欢,成为中小站长的好帮手,并培养了大量的PHP编程人员,但是随着PHP的应用越发广泛,很多时候已不限于从事中小网站的应用,一些大型PHP项目也屡见不鲜。
(全文 …)

2011年10月16日

从敏捷宣言理解敏捷交互设计

Filed under: 架构 — cmpan @ 2011-10-16 18:45:08

敏捷交互设计是敏捷方法论向交互设计领域的延伸,它提倡让所有相关人参与到设计过程中,迭代演进式地进行交互设计。从2010年开始,已经有越来越的团队在不同程度上使用敏捷交互设计的方法,而放弃了流程化的传统产品设计过程。

事实上,敏捷交互设计方法在很多方面都充分体现了敏捷价值观,因此,理解敏捷交互设计实践的最好方法是从记录在敏捷宣言中的价值观开始。
(全文 …)

深入浅出REST

Filed under: 架构 — cmpan @ 2011-10-16 18:43:33

不知你是否意识到,围绕着什么才是实现异构的应用到应用通信的“正确”方式,一场争论正进行的如火如荼:虽然当前主流的方式明显地集中在基于 SOAP、WSDL和WS-*规范的Web Services领域,但也有少数人用细小但洪亮的声音主张说更好的方式是REST,表述性状态转移(REpresentational State Transfer)的简称。在本文中,我不会涉及争论的话题,而是尝试对REST和RESTful HTTP应用集成做实用性的介绍。以我的经验,有些话题一旦触及就会引来众多的讨论,当涉及到这方面话题的时候,我会深入详细地阐述。
(全文 …)

2011年10月12日

HTML的base标签在ie6下的问题解决

Filed under: WEB » 前端设计 — cmpan @ 2011-10-12 17:33:52

当我们用url重写的时候,用base标签可以使页面中的链接、图片地址等网址相关的元素基于我们设置的链接,如下

但是发现在ie6下页面中的图片都不出来了,这是ie的一个bug,解决方案:
1)base的href属性使用完整的路径,如使用,不使用
2)base标签和标签之间不要有任何html标签

2011年09月30日

nginx 使用 ssl

Filed under: Nginx — cmpan @ 2011-09-30 11:46:31

使用如下命令并根据提示输入信息,生成证书
cd /usr/local/nginx/conf

openssl genrsa -des3 -out localhost.key 1024 #创建密钥
openssl req -new -key localhost.key -out localhost.csr
openssl rsa -in localhost.key -out localhost_nopass.key # 生成浏览器浏览网页时不需要输入密码的密钥
openssl x509 -req -days 365 -in localhost.csr -signkey localhost.key -out localhost.crt #生成证书

在nginx的server配置中加如下配置使用证书

ssl on;
ssl_certificate localhost.crt;
ssl_certificate_key localhost_nopass.key;

现在生成的证书是不受信任的,如果需要受信任的证书,需要证书颁发机构颁发(需要用钱解决)。
免费的证书颁发机构:http://www.startssl.com/ 较低版本的ie浏览器可能不支持。

2011年09月29日

最丑陋的PHP命名空间

Filed under: PHP » PHP » 实践经验 — cmpan @ 2011-09-29 13:12:29

PHP5.3加入了命名空间,很高兴有了这个特性,把自己写的框架改成使用命名空间的,发现很不爽。

写了个没有命名空间的函数 function myFnc(){}
调用的时候如果页面里声明了命名空间,就必须用 \myFnc() 来调用。
写了一个没有命名空间的类 class MyClass {}
调用的时候如果页面里声明了命名空间,就必须用 new \MyClass() 来调用。

为什么声明了命名空间就不能直接用 myFnc()、new MyClass() 类调用全局函数和类呢?
万恶之源在于画蛇的时候添了一足。
那条足在哪呢?
就是相对命名空间

我定义了如下命名空间
namespace sp\A;
namespace sp\A\B;
namespace sp\A\B\C;

在namespace sp\A;中,我可以使用 use B\ClassName、use B\C\ClassName来使用命名空间 namespace sp\A\B和namespace sp\A\B\C下的类,这是使用相对命名空间来访问命名空间,这造成混乱不少。
有相对就会有绝对,而绝对访问方式是:
use \spA\B\ClassName;
use \sp\A\B\C\ClassName;

看见use中的开头的反斜杠“\”了吗?他就是万恶之源中的万恶之源。

为什么一定要搞个相对命名空间出来而不统一直接用
use spA\B\ClassName;
use sp\A\B\C\ClassName;

如果这样我们没有命名空间的类可以直接用 new MyClass(),而不用 new \MyClass(),
调用没有命名空间的函数就可以直接用 muFnc(),而不必用 \myFnc()

画蛇何必添足呢!

2011年09月17日

PHP数据类型隐性转换的陷阱

Filed under: PHP » PHP » 实践经验 — cmpan @ 2011-09-17 05:45:04

之前写过一篇《PHP的动态特性》总结了部分PHP的特性,因为动态语言的特性,我们使用PHP时倍感便利,但是便利的同时会引来一些陷阱,不得不防。
(全文 …)

Older Posts »
Copyright © 2009 流水孟春 版权所有
Web技术,LAMP,Nginx,Web2.0,前端技术
Powered by WordPress & UI Designed by 流水孟春