互联网 patron No comments

十大可用性原则

状态可见(Visibility of system status)
匹配现实(Match between system and the real world)
用户掌控(User control and freedom)
标准一致(Consistency and standards)
防止出错(Error prevention)
不用回想(Recognition rather than recall)
灵活高效(Flexibility and efficiency of use)
简约美观(Aesthetic and minimalist design)
错误提示(Help users recognize, diagnose, and recover from errors)
帮助入口(Help and documentation)

by Jakob Nielsen(Principal of the Nielsen Norman Group)

互联网 patron No comments

如何转产品经理?

产品经理(Product Manager)传达高层领导的产品愿景到开发和实施团队。产品经理为企业调查、选择和驱动产品的研发,执行产品管理活动。产品经理需考虑许多因素,如目标客户群体,竞争对手提供的产品,以及产品与公司商业模式的匹配程度等。 – by wikipedia

作为产品经理,要永远记住,解决掉问题是最重要的。

好,那如何解决问题呢?

1. 明确真正的问题
2. 给出产品解决方案
3. 开发反馈迭代解决问题

本篇文章中,客户给我们提出的问题是,“如何转产品经理”。

第一步,我们需要明确“如何转产品经理”是不是真正的问题。

什么意思呢,就是一个人想要更快马车的经典问题,其实他想要的是更快的速度。你造出汽车给他才是更完美地解决了问题。

那如何转产品经理,本质上,客户的需求是什么?这个就需要需求分析与调研。

这里我们进行下需求分析。

我们知道,产品经理是一个工作职位,所以如何转产品经理,其实是如何从一个职位转另一个职位的问题。

而不同职位可能存在以下方面的不同:

1. 需要解决的问题,可能不同。更本质上讲,感觉到的价值,可能不同。
2. 工作内容,可能不同。更本质上讲,感觉到的快乐,可能不同。
3. 收入水平,可能不同。更本质上讲,物质生活水平,可能不同。

那么,什么会使人想从一个职位转到另一职位?或者说想转产品经理的真正原因是什么呢?

可能是:

1. 想工作更有价值。
2. 想工作更快乐。
3. 想工作更高收入改善物质生活。

再进一步,工作其实是生活的一部分,更本质上是:

1. 想更有价值。
2. 想更快乐。
3. 想更好的物质生活。

到这里,需求分析算是比较深入了,但仍要保持开放的心态,因为具体到个人身上,可能还不是最本质的,比如一个富二代想拿到更高的收入,并不是为了更好的物质生活,可能只是想证明给他爹看或自己看,想得到认同。这就是为什么我们要去做市场调研客户访谈。

我们这里就不做调研了,就让客户自己分析自己,找到背后自己真正想转产品经理的原因。

好,那我们假设客户都已经找到自己的真正原因。

接下来,我们应该去了解客户的价值观,快乐源泉,财务状况,能力资源等,然后给出个性化的推荐方案,比如,对于更在乎价值的客户,可能推荐他去尝试公益活动或搞科研;对于更在乎快乐的客户,可能推荐他去搞文艺或创作;对于更在乎物质生活的客户,可能推荐他去创业或学习理财。

所以,“如何转产品经理”的问题很大程度上可能是别的问题,比如“如何转金融理财师”,“如何转相声演员”,“如何做好本职工作”。

当然,有一种可能是,产品经理是客户自我剖析后所认为的最理想选择。

  • 当我们告诉他,产品经理的经理并不是传统意义上的经理,通常你是光杆司令,需要独立工作;
  • 当我们告诉他,产品经理需要协调业务,运营,技术,设计等各个相关部门支持与配合才能推进工作;
  • 当我们告诉他,产品经理需要非常皮实,以顶住外部对你辛勤劳动成果的直接赤裸负面评价与冷嘲热讽,然后不为自尊心而战,耐心解释你为什么做成了那个样子而不是另外一个样子,最后经过反思做出理性判断或许批评是对的,得改,或许自己才是对的,得坚持,以确保产品方案能最大程度正确。
  • 听完之后,客户依然毅然决然认为,做产品经理很有价值,做产品经理很快乐,做产品经理高收入。

    那么,“如何转产品经理”就还是“如何转产品经理”,它是一个有效的问题,因为解决了这个问题,就解决了它背后真正的客户需求。

    第二步,对“如何转产品经理”,给出文字回答,以作为我们的产品方案。

    如何转产品经理,其实是两件事,一达到产品经理岗位的能力要求,二收到产品经理岗的Offer。

    目前市场上,不同公司的产品经理,要求不尽相同,但基本上都需要满足以下条件:

    1. 大专以上文凭
    2. 有产品工作经验
    3. 懂产品设计流程
    4. 较强的逻辑思维能力
    5. 较强的跨部门沟通能力
    6. 较强的数据分析能力
    7. 较强的学习能力
    8. 熟练使用MindManger,Viso,Axure等设计软件
    9. 有行业经验者优先
    10. 有类似产品经验者优先

    对照以上条件,对于一个理工男,想转产品经理不太难。

    其中,最重要的有三点:

    1. 产品思维很重要。

    务实思维 – 玩实不玩虚,以东西说话。
    匹配思维 – 解决问题要考虑是否匹配。
    本质思维 – 看问题要跳过现象看本质。
    全局思维 – 看问题要全流程全方位360度。
    迭代思维 – 达到MVP就要先上线,然后根据数据反馈来迭代。

    2. 懂方法会工具很重要。

    你要懂得设计流程(《用户体验要素》)。
    你要懂得设计方法(《简约至上:交互式设计四策略》)。
    你要懂情感化设计(《情感化设计》)
    你要懂交互细节(《微交互:细节设计成就卓越产品》)
    你要懂iOS设计规范(苹果官网:Human Interface Guidelines Platforms
    你要懂Android设计规范(Android官网:Design for Android

    你要会画思维导图(MindManger,Xmind)。
    你要会画流程图(Visio)。
    你要会画原型图(Axure)。

    3. 作品很重要。

    你做过东西,代表你真正将产品技能应用实践过。面试的时候,拿得出自己的作品很能说明问题。所以,要准备自己做的东西。

    一切就绪后,就去寻找产品经理岗的机会吧。

    第三步,将这篇文章发布出来,等待客户反馈,然后更新迭代。

    注:本文提到的产品经理,特指互联网产品经理。

    互联网 patron No comments

    让Prestashop的TinyMCE支持JavaScript / iframe

    1. 找到/js/tinymce.inc.js 或者 /js/admin/tinymce.inc.js,将文件中的内容整个替换为如下:

    function tinySetup(config)
    {
       if (typeof tinyMCE === 'undefined') {
          setTimeout(function() {
          tinySetup(config);
          }, 100);
          return;
       }
     
        if(!config)
            config = {};
     
        var editor_selector = 'rte';
        //if (typeof config['editor_selector'] !== 'undefined')
        //var editor_selector = config['editor_selector'];
        if (typeof config['editor_selector'] != 'undefined')
            config['selector'] = '.'+config['editor_selector'];
     
            //safari,pagebreak,style,table,advimage,advlink,inlinepopups,media,contextmenu,paste,fullscreen,xhtmlxtras,preview
            default_config = {
            selector: ".rte" ,
            plugins : "visualblocks, preview searchreplace print insertdatetime, hr charmap colorpicker anchor code link image paste pagebreak table contextmenu filemanager table code media autoresize textcolor emoticons",
            toolbar2 : "newdocument,print,|,bold,italic,underline,|,strikethrough,superscript,subscript,|,forecolor,colorpicker,backcolor,|,bullist,numlist,outdent,indent",
            toolbar1 : "styleselect,|,formatselect,|,fontselect,|,fontsizeselect,", 
            toolbar3 : "code,|,table,|,cut,copy,paste,searchreplace,|,blockquote,|,undo,redo,|,link,unlink,anchor,|,image,emoticons,media,|,inserttime,|,preview ",
            toolbar4 : "visualblocks,|,charmap,|,hr,",
     
            external_filemanager_path: ad+"/filemanager/",
            filemanager_title: "File manager" ,
            external_plugins: { "filemanager" : ad+"/filemanager/plugin.min.js"},
            extended_valid_elements: 'pre[*],script[*],style[*]', 
            valid_children: "+body[style|script|iframe|section],pre[iframe|section|script|div|p|br|span|img|style|h1|h2|h3|h4|h5],*[*]",
            valid_elements : '*[*]', 
            force_p_newlines : false, 
            cleanup: false,
            forced_root_block : false, 
            force_br_newlines : true,  
            convert_urls:true,
            relative_urls:false,
            remove_script_host:false,
     
            menu: {
                edit: {title: 'Edit', items: 'undo redo | cut copy paste | selectall'},
                insert: {title: 'Insert', items: 'media image link | pagebreak'},
                view: {title: 'View', items: 'visualaid'},
                format: {title: 'Format', items: 'bold italic underline strikethrough superscript subscript | formats | removeformat'},
                table: {title: 'Table', items: 'inserttable tableprops deletetable | cell row column'},
                tools: {title: 'Tools', items: 'code'}
            }
     
        }
     
        $.each(default_config, function(index, el)
        {
            if (config[index] === undefined )
                config[index] = el;
        });
     
        tinyMCE.init(config);
     
    }
     
    $().ready(function() {
       tinySetup(); 
    });

    2. 找到/classes/Validate.php文件,将其中的下面这段代码

    public static function isCleanHtml($html, $allow_iframe = false) { $events = 'onmousedown|onmousemove|onmmouseup|onmouseover|onmouseout|onload|onunload|onfocus|onblur|onchange';
    $events .= '|onsubmit|ondblclick|onclick|onkeydown|onkeyup|onkeypress|onmouseenter|onmouseleave|onerror|onselect|onreset|onabort|ondragdrop|onresize|onactivate|onafterprint|onmoveend';
    $events .= '|onafterupdate|onbeforeactivate|onbeforecopy|onbeforecut|onbeforedeactivate|onbeforeeditfocus|onbeforepaste|onbeforeprint|onbeforeunload|onbeforeupdate|onmove';
    $events .= '|onbounce|oncellchange|oncontextmenu|oncontrolselect|oncopy|oncut|ondataavailable|ondatasetchanged|ondatasetcomplete|ondeactivate|ondrag|ondragend|ondragenter|onmousewheel';
    $events .= '|ondragleave|ondragover|ondragstart|ondrop|onerrorupdate|onfilterchange|onfinish|onfocusin|onfocusout|onhashchange|onhelp|oninput|onlosecapture|onmessage|onmouseup|onmovestart';
    $events .= '|onoffline|ononline|onpaste|onpropertychange|onreadystatechange|onresizeend|onresizestart|onrowenter|onrowexit|onrowsdelete|onrowsinserted|onscroll|onsearch|onselectionchange';
    $events .= '|onselectstart|onstart|onstop'; if (preg_match('/<[\s]*script/ims', $html) || preg_match('/('.$events.')[\s]*=/ims',
    $html) || preg_match('/.*script\:/ims', $html)) return false; if (!$allow_iframe && preg_match('/<[\s]*(i?frame|form|input|embed|object)/ims',
    $html)) return false; return true; }

    替换为如下代码

    public static function isCleanHtml($html, $allow_iframe = false) { return true; }

    Okay, 完工。

    互联网 patron No comments

    支付宝设计规范体系

    设计原则
    简单:一个页面一件事,删除和隐藏
    高效:一秒钟等待,转移注意力,一次点击,三级跳
    人性化:适时反馈,情感关怀,智能服务

    基础规范
    色彩:品牌色
    字体:采用系统字体,行高,标点,空格,对齐
    图标:元素网格定位,形状,产品图标
    适配:iOS,Android,适配规则(文字流式,控件弹性,图片等比例缩放,适配系数)

    控件组件
    系统层:系统原生内容
    框架层:页面导航内容
    临时层:临时出现内容
    内容层:页面展现内容
    背景层:页面背景内容

    输出规范
    设计控件库
    开发控件库

    了解详情:《支付宝体验设计精髓》

    互联网 patron No comments

    解决: 域名跟Godaddy主机绑定又解除后,访问Godaddy主机IP却跳转到解除的域名

    问题:你用域名1指向了主机A,后来你将域名1指向了主机B,然后你用域名2指向了主机A,访问域名2却一直跳转域名1访问主机B

    条件:域名2确实解析到了主机1,域名1确实解析到了主机B

    解决:非域名解析却发生跳转,是因为主机A上的站点配置有问题,找到配置域名的地方,修改为域名2即可。

    互联网 patron No comments

    人的心智

    自发心智 autonomous mind – 直觉
    算法心智 algorithmic mind – 意识
    反省心智 reflective mind – 理性

    互联网 patron No comments

    信息架构

    组织系统 – 如何组织
    标签系统 – 如何标示
    导航系统 – 如何浏览
    搜索系统 – 如何搜索

    互联网 patron No comments

    Godaddy续费Coupon券

    Godaddy首次购买
    Coupon券
    大把
    只要谷歌一下

    Godaddy Renewal续费
    Coupon劵
    非常少
    谷歌出来的
    大多不能用

    此时
    可以尝试用其它币种支付
    比如ARS阿根廷比索
    目前可以省一半
    相当于用了
    一个50% OFF的券