深圳 华为EC1308 ITV 破解管理设置

On 2010年06月21日, in Article, by Kane

最近看球,把丢空2年的ITV找了出来。ITV 默认是以PPOE 拨号方式的,可以通过设置更改网络选项。

硬件型号:华为EC1308

1. 点遥控的【设置】进入设置界面后
2. 输入密码 8288
3. 在网络设置里面选择【有线】,下一步【DHCP】方式, 确认后,点取消返回界面
4. 点保存,输入密码 3008

这样就一通过路由器拨号,直接以内网方式使用ITV的功能了。

另外设置里面还有其他选项,有一个是 hotel 的方式的。但是没啥反映,开始以为有成人台呢. 哈哈。

Tagged with:  

参加完 UI AWARD 2010 深圳站感想

On 2010年06月19日, in My Life, by Kane

最近在跟公司的几个项目,都比较少写博客(其实都写微博去了)和逛论坛了。没留意到 UI AWARD 2010 深圳站(UI AWARD 2010:中国用户体验设计精英汇走进深圳)的报名,在andraw的帮忙下,还是顺利参加上了。去到会场第一感触就是,发现自己好老啊,现在的UI UE 设计师都是 85后的了。 真惭愧啊.. 打滚了那么多年,都比不上他们。自己的定位也在往产品设计 产品经理的方向转,虽然公司现在给的职称是产品经理,但还有很多东西要学,在技术方面也许比较OK,但项目管理这块就技穷了,看了2本书有点收获。但感觉有心无力啊. 转回正题吧..

UIRSS.com总编辑徐海波,海波兄的每句话几乎都说中了同行的心里话。做UI 、UE的有职称吗? UI 能上央视吗? 社会对UI的认识不深,更不要说UE了。 海波兄的努力,大家是有目共睹的。虽然我感觉这事比较难成,但毕竟终于有人开头去做这事了,这需要全国的同行去坚持和努力,让UI UE在社会的层面上得到更多的认同。

对于腾讯 ISD CDC 2大部门的演讲,的确收益不少。感觉最深刻的就是 CDC 的同学太幸福了,TC有足够的资源可以把重复性的工作外包出去,CDC的同学可以全新全意去做 具有前瞻性的产品设计。话说CDC的副总监说,是靠自己的坚持,但毕竟只有少数的公司有这个条件去坚持这种前瞻性的概念性产品设计。

CDC陈薇演讲的SNS游戏,再次说明了小公司别搞SNS游戏,你们不够TC来的。SNS游戏需要庞大的用户基数,应该说基于SNS的产品。TC除了有庞大的用户群,还有一批优秀的设计师,只要哪个idea 是work的,TC就肯定可以搞出来。

艾空网络iconboy讲述了游戏GUI的变化和他们自己一个项目的案例,其实我更感兴趣这个项目能赚多少钱。

CDC牟伟成同学演示的那几个DEMO,的确让我比较惊讶的,一个原型DEMO 居然可以用Air 技术做到高保真外,而且可以实现所有交互和功能,难怪Pony 说可以直接发布了。

ISD的同学演讲的 Template,ISD的同学在做产品效率优化,性能优化下了很多功夫。 但要像做到TC那么巨大流量和用户群的产品不多,这些性能优化的技术和经验还需要ISD的同学多分享。


BTW,下午的分享会一开始忘记了录音真失败,只从 iconboy 开始做了录音。先等海波兄把今天的PPT 分享出来后,看看那他允不允许把录音公开吧。如果可以的话,我再把录音上传。

 

终于看完 iamsujie 的《人人都是产品经理》,按书上的说,做开发我太外向了,做销售我又太内向了。 互联网变化的太快了…快得让人难以呼吸。拥抱变化…让自己走上不归路吧。 开发需求文档就写得多了… 拥抱变化,来学习 BRD MRD PRD FSD 吧。





BRD

Business Requirements Document,商业需求文档。这是产品声明周期中最早的问的文档,再早就应该是脑中的构思了,其内容涉及市场分析,销售策略,盈利预测等,通常是和老大们过的ppt,所以也就比较短小精炼,没有产品细节。

商业需求文档重点放在定义项目的商业需求。BRD要能说出客户碰到的一个或多个商业问题,并且通过公司的产品能够解决这些问题。接着建议一个方案 —— 通常是新产品或者现有产品的改进来解决这些问题。BRD也可能包括一个高级的商业案例,例如收益预测,市场竞争分析和销售/营销策略。BRD通常是由拥有产品经理,产品营销经理或者行业分析师头衔的人撰写的。在小公司,可能由高级主管或者甚至创始人撰写。BRD通常是一份连续的1-3页Word文档,或者不超过10页的Powerpoint文档。





MRD

Market Requirements Document,市场需求文档。获得老大的认同后,产品进入实施,需要先出MRD,具体来说要有更细致的市场与竞争对手分析,通过哪些功能来实现商业目的,功能/非功能需求分哪几块,功能的优先级等等。实际工作中,这个阶段PD可能的产出物有Mind Manager的思维图,Excel的Feature List等。

市场需求文档(MRD)重点放在为一个被提议的新产品或者现有产品的改进定义市场需求。与BRD指出商业问题和解决这些问题的解决方案不同,MRD更深入提议解决方案的细节。它包括一些或者所有这些细节:

a. 解决商业问题所需要的特色
b. 市场竞争分析
c. 功能和非功能需求
d. 特色/需求的优先级
e. 用例

MRD通常是由拥有产品经理,产品营销经理或者行业分析师头衔的人撰写的。MRD通常是一份连续的5-25页Word文档,或者正如之后描述那样在一些机构中甚至更长。





PRD

Product Requirements Document,产品需求文档。进步一细化,这部分是PD写得最多的内容,也就是传统意义上的需求分析,我们这里主要指UC(use case)文档。主要内容有,功能使用的具体描述(每个UC一般有用例简述、行为者、前置条件、后置条件、UI描述、流程/子流程/分支流程,等几大块),Visio做的功能点业务流程,界面的说明,demo等。Demo方面,可能用dreamweaver、ps甚至画图板简单画一下,有时候也会有 UI/UE支持,出高保真的demo,开发将来可以直接用的那种。

产品需求文档(PRD)重点放在为一个被提议的新产品或者现有产品的改进定义市场需求。与MRD侧重于从市场需要角度看需求的不同,PRD侧重于从产品本身角度看待需求。通常在特点和功能需求上更深入细节,并也可能包括屏幕截图和用户界面流程。在那些MRD不包括具体需求和用例的机构中,PRD就包含这些具体内容。PRD通常是由拥有产品经理,行业分析师或者产品分析师头衔的人撰写的。PRD通常是一份连续的20-50页Word文档,或者针对复杂产品甚至更长。

提醒:一些机构将这里描述的MRD和PRD合并成一个文档,并称最后的文档为MRD。在这种情况下,MRD包括本段描述的内容,也包括上一段描述 PRD的内容,并且可能超过50页。





FSD

Functional Specifications Document,功能详细说明。有一点像“概要设计”,这步就开始往开发衔接了,产品UI、业务逻辑的细节都要确定,细化文档并保持更新。相应的,有很多内容,比如表结构设计,要由项目经理来编写了。

功能规格文档(FSD)把焦点集中在实现,定义产品功能需求的全部细节。FSD可能通过一张张的截屏和一条条功能点来定义产品规格。这是一份可以直接让工程师创建产品的文档。与MRD和PRD侧重于以市场需要和产品角度看需求不同,FSD把重点放在了以表格形式定义产品细节,再让工程师实现这些细节。 FSD也可能包括完整的屏幕截图和UI设计细节。FSD通常是由拥有产品分析师,工程领导或者项目经理头衔的人撰写的 – 作者通常属于工程部门。通常一个连续几十页的Word或类似文档。

Tagged with:  

之前做了淘宝给的面试题,其中一题是 页面有 一个ul 里面有 n 个li, 而每个li在 mouseover 的时候,需要执行相应的function。 一般来做,我们会在每个 li上绑定 mouseover事件。而这套题的重点是怎么优化代码,提高效率。 在舜子提供的思路下,是把事件绑定在 li 的父级 ul 上面。 通过event 来判断当前对象。 这个思路,我感觉是叫时间委托吧,呵呵。代码如下:


function delegate(e){
				e = e || window.event;
				return e.target || e.srcElement;
			}

$("ul").bind("mouseover",function(e){
					var t = delegate(e), o=$(t),ul=o.parent(); //找到当前的对象

					if(o.is('li') && ul.is('ul')) //判断对象
					{
						do something...
					}
				})
Tagged with:  

感謝小馬和清羽給予面試的機會

On 2010年04月18日, in My Life, by Kane

這2周事情多啊,趕項目,天天對著code。 上週收到小馬的聯繫,這周清羽就給了份UED的試題我做了。 剛開始拿到題目,看上去沒什麼大不了,覺得什麼人都能做出來吧。但是做下來裏面大有乾坤和講究。在微博裏也寫到了,像淘寶UED 的團隊的境界已經不是在做web了。 在外面普通的中小企基本上不可能達到這種境界。我想這大部分原因還是環境不一樣吧:) 。

題目已經做完了,無論結果是如何。感覺已經戰勝了自己能力,做這道題勝過看N篇技術文章。真的是讀萬卷書不如實踐做一題。這2天都在趕項目的事情,也沒好好的去整理和回味題目。 找天沒那麼忙了,就把題目的point 放上來。

HTML5 和 CSS3 的來臨,自己也感覺到已經開始累了。 到底自己還有多少時間能追技術呢?最近在玩騰訊的微博,也很少寫博客了,有興趣的就fo我一下吧。之前看到danger 的微博報導,一個有關30歲還能做開發 這個話題。 有人相關的錄音或資料嘛..我瞞有興趣想看看是怎麼說的。

 

ThinkPad W500 也可以多點觸摸了

On 2010年03月24日, in My Life, by Kane

敗了W500差不多2年了,一直有點遺憾就是比APPLE少了個多點觸摸。 今天在CB 看到 Synaptics驱动为老本触控板带来多点触控 一文,馬上裝下驅動。 真的令我太興奮了,哈哈。 聯想也太過分了,把這個功能屏蔽了。現在可以好好enjoy一下多點觸摸的爽了。哈哈上圖

最後送上驅動地址: ftp://ftp.hp.com/pub/softpaq/sp47501-48000/sp47815.exe  這個是WIN7 的。其他沒試過。哈哈哈。

Tagged with:  

blur 与 focus 事件相处之道

On 2010年03月10日, in Javascript, by Kane

表单的处理一般分成2种: field 单独 onblur 时进行验证并提示 与 在提交表单时验证全部 field (并行与单独验证)。 今天遇到了一个问题,可以说是低级错误。单独说一下 每个 field onblur 时验证的问题。


<input type="text" onblur="test(this)" />

function test(o){
   if(document.getElementById(o).value=='')
   {
       alert('test');
       document.getElementById(o).focus();
    }
}

上面这种情况下是可以正常运行,但下面的情况是当多个field需要同时验证的时候就有问题了


<input type="text" onblur="test(this)" />
<input type="text" onblur="test(this)" />
function test(o){

if(document.getElementById(o).value=='')
 {
 alert('test');
 document.getElementById(o).focus();
 }
}

在这种情况下会出现死循环,到时IE 卡死 cpu100% 。解决方法就是多field的时候,不能 又blur又focus。 鱼与熊掌不可兼得也…

Tagged with:  

年后,把项目的jquery升级到1.42版本了,一直在想怎么优化原有的js。 因为一直在用FF调试,没留意IE。 今天用IE 试了下,居然发现了一个严重的bug。 IE 下 $.ajax 会导致内存泄露。一开始还不知道是 jquery的原因,到处找代码原因。最后在 小超 同志下的测试,发现了原来是 jquery 版本问题。 真折腾自己啊… 降回1.32 版本就不存在问题了。

在找内存泄露的过程中,找到了2个小软件 Drip-0.5 和 IEJSLeaksDetector 专门对IE内存泄露检测的2个工具。

Tagged with:  

仿WEB QQ 有新消息时,滚动窗口标题栏效果。 用了一个闭包的方法来实现。

/**
 * 调用方法
 * TitleFlash.stop();
 * TitleFlash.setTitle(str);
 * TitleFlash.go();
 */
var TitleFlash=(function(){

			var msg="";
			var msgud = " " + msg;
			var T;
			function titleScroll(){

				if (msgud.length < msg.length)
					msgud += " - " + msg;
				msgud = msgud.substring(1, msgud.length);
				document.title = msgud.substring(0, msg.length);
				T=window.setTimeout(function(){titleScroll()},200)
			}
			return{
				setTitle: function(title){
					msg=title;
				},
				go:function(){
					titleScroll();
				},
				stop:function(){
					clearTimeout(T);
				}
			}

		})();
Tagged with:  

ZendFramework1.97 和 Smarty 结合并用的方法

On 2010年01月22日, in PHP, by Kane

网上搜了一堆结合的方法都是 ZF1.8 以下的..自己研究了2天终于成功了。记录一下..

目录结构是Zend Studio – 7.1.1 自建生成的,其中 template 和 templates 是我自己加上去给Smarty用的,也可以说是替换ZF 的View层。如下图

第一步 配置application.ini

把 resources.frontController.noViewRenderer = 1 加到 production 里,然后在staging : production 里面加上smarty的配置信息

[production]
phpSettings.display_startup_errors = 0
phpSettings.display_errors = 0
includePaths.library = APPLICATION_PATH "/../library"
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"
resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
resources.frontController.noViewRenderer = 1

[staging : production]
smarty.class_path = "Smarty/Smarty.class.php"
smarty.left_delimiter = "{"
smarty.right_delimiter = "}"
smarty.template_dir =APPLICATION_PATH "/template/"
smarty.compile_dir =APPLICATION_PATH "/templates_c/"
smarty.cache_dir = APPLICATION_PATH "/cache/"
smarty.cache_lifetime = 600
smarty.caching = 0

[testing : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1

[development : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1

第二步 修改Bootstrap.php

添加下面的代码


public function _initView(){
        $config = new Zend_Config_Ini(APPLICATION_PATH. '/configs/application.ini', 'staging');
        require_once $config->smarty->class_path;

        $smarty = new Smarty();
        $smarty->left_delimiter = $config->smarty->left_delimiter;
        $smarty->right_delimiter = $config->smarty->right_delimiter;
        $smarty->template_dir = $config->smarty->template_dir;
        $smarty->compile_dir = $config->smarty->compile_dir;
        $smarty->cache_dir = $config->smarty->cache_dir;
        $smarty->cache_lifetime = $config->smarty->cache_lifetime;
        $smarty->caching = $config->smarty->caching;

        Zend_Registry::set('smarty', $smarty);
    }

第三步 在 controller 测试

添加下面的代码

 public function indexAction()
    {
    	$template='test/test.html';
    	$this->smarty = Zend_Registry::get('smarty');
		$this->smarty->assign('test', 'iamkane');
		$this->smarty->display($template);

    }
Tagged with: