运营-巧用直通车关键词流量解析工具:教你如何优化淘宝商品标题!

商品标题优化之前,我们应该清晰认识到:一个好的标题和一个坏标题有什么区别。只有明白如何去区分标题好坏时,我们才能有目的性地进行优化。
判断的最直观的方法就是看我们的商品标题能否达到以下几点要求:
1丶满足主要消费者的搜索习惯:是否包含了尽可能多的关键词?
2丶关键词是否为主流的搜索词?
3丶是否充分表达出特性和促销信息?例如正品丶红色丶大码丶包邮丶试用等等

ShopNC二次开发研究日记12:导航菜单伪静态及二级目录制作SEO优化

虫曰:

ShopNC二次开发研究日记》系列由ChinaBUG企划,根据研究ShopNC的二次开发过程而写,其中的案例大多来源于QQ群或者爱好者的提问。


话说,很久没有来写ShopNC开发的内容了,正好刚忙完推广部同事的一个需求就拿来分享一下开发的过程及如何解决的吧。
同事的需求是:
ShopNC每个分类都是以ID的形式存在,如/index.php?act=search&cate_id=621这样子的形式,这样子对SEO不友好^_^想要友好一点的方式,比如可以让人访问/sxgr/sg/pg这样的形式来访问分类“生鲜果蔬\水果\苹果”。
简单吧,一看感觉好简单,其实好费时,忙了我好几天才折腾完毕。
闲话不说了,就分享一下我怎么解决这个需求的吧,还是老规矩废话一点,慢慢分析我的解决思路噢。
正文
要想实现这样子的方式,不用说肯定是需要伪静态支持的,然后需要写相关的重写规则来处理了,除了写规则之外就是需要修改程序,让程序输出我们需要的格式了。
……

程序员必须知道的10大基础实用算法及其讲解

算法一:快速排序算法
快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现出来。

算法二:堆排序算法
堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆积是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。
堆排序的平均时间复杂度为Ο(nlogn) 。

算法三:归并排序
归并排序(Merge sort,台湾译作:合并排序)是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。

算法四:二分查找算法
二分查找算法是一种在有序数组中查找某一特定元素的搜索算法。搜素过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜 素过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。如果在某一步骤数组 为空,则代表找不到。这种搜索算法每一次比较都使搜索范围缩小一半。折半搜索每次把搜索区域减少一半,时间复杂度为Ο(logn) 。

算法五:BFPRT(线性查找算法)
BFPRT算法解决的问题十分经典,即从某n个元素的序列中选出第k大(第k小)的元素,通过巧妙的分 析,BFPRT可以保证在最坏情况下仍为线性时间复杂度。该算法的思想与快速排序思想相似,当然,为使得算法在最坏情况下,依然能达到o(n)的时间复杂 度,五位算法作者做了精妙的处理。

算法六:DFS(深度优先搜索)
深度优先搜索算法(Depth-First-Search),是搜索算法的一种。它沿着树的深度遍历树的节点,尽可能深的搜索树的分 支。当节点v的所有边都己被探寻过,搜索将回溯到发现节点v的那条边的起始节点。这一过程一直进行到已发现从源节点可达的所有节点为止。如果还存在未被发 现的节点,则选择其中一个作为源节点并重复以上过程,整个进程反复进行直到所有节点都被访问为止。DFS属于盲目搜索。
深度优先搜索是图论中的经典算法,利用深度优先搜索算法可以产生目标图的相应拓扑排序表,利用拓扑排序表可以方便的解决很多相关的图论问题,如最大路径问题等等。一般用堆数据结构来辅助实现DFS算法。

算法七:BFS(广度优先搜索)
广度优先搜索算法(Breadth-First-Search),是一种图形搜索算法。简单的说,BFS是从根节点开始,沿着树(图)的宽度遍历树(图)的节点。如果所有节点均被访问,则算法中止。BFS同样属于盲目搜索。一般用队列数据结构来辅助实现BFS算法。

算法八:Dijkstra算法
戴克斯特拉算法(Dijkstra’s algorithm)是由荷兰计算机科学家艾兹赫尔·戴克斯特拉提出。迪科斯彻算法使用了广度优先搜索解决非负权有向图的单源最短路径问题,算法最终得到一个最短路径树。该算法常用于路由算法或者作为其他图算法的一个子模块。

算法九:动态规划算法
动态规划(Dynamic programming)是一种在数学、计算机科学和经济学中使用的,通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。 动态规划常常适用于有重叠子问题和最优子结构性质的问题,动态规划方法所耗时间往往远少于朴素解法。

算法十:朴素贝叶斯分类算法
朴素贝叶斯分类算法是一种基于贝叶斯定理的简单概率分类算法。贝叶斯分类的基础是概率推理,就是在各种条件的存在不确定,仅知其出现概率的情况下, 如何完成推理和决策任务。概率推理是与确定性推理相对应的。而朴素贝叶斯分类器是基于独立假设的,即假设样本每个特征与其他特征都不相关。

如何设计一款让大家上瘾的APP

“如果一个 App 失败了,在 App Store 中完全没有人下载,会对什么事造成影响呢?”
比起古老的哲学问题,这个问题的答案简单多了。答案是 NO!不会有任何的影响。一个 App 不论设计得多么高雅、推广得多么广泛,如果没有任何人愿意下载,就等同于不曾存在。
所以,要如何设计产品与 App,让使用者愿意使用、参与其中呢?

答案是习惯
触发(Trigger)
行动(Action)
奖励(Reward)
投资(Investment)
小王子教我的设计理念?

Theme Photolux : A TimThumb error has occured

漂亮吧,不过最近安装在phpcloud的免费空间上却是让我很烦恼,这个主题安装上去却显示不正确表现为前台显示图片都是一个叉叉,图片显示不正常,老是显示下面的错误?!
A TimThumb error has occured
The following error(s) occured:
Could not find the internal image you specified.
Query String : src=http://cmsdemo2014.my.phpcloud.com/wp-content/uploads/2014/03/dd6463e4958eaaa84b44f199333d0f8d.jpg&h=&w=290&zc=1&q=100&a=c
TimThumb version : 2.8.11
好神奇!
😛 知识点延伸:
可能你会觉得奇怪为什么你只看到图片显示不正常,没有看到这个错误哈 😛 ,这个其实是正常的,因为这个错误是我直接访问图片文件链接而产生的错误。
具体操作如下:
我们知道图片显示是根据标签的src属性来显示图片的,那么图片显示不出来就是src这个图片源出现问题(图片源可以是一个图片文件的路径也可以是图片的代码噢),既然这个src是图片源。那么自然就能直接打开,所以我的打叉的图片的src是:
http://cmsdemo2014.my.phpcloud.com/wp-content/themes/photolux/lib/utils/timthumb.php?src=http://cmsdemo2014.my.phpcloud.com/wp-content/uploads/2014/03/安卓壁纸_动漫66c143d81e.jpg&h=&w=290&zc=1&q=100&a=c
我直接从浏览器中打开,就会出现上面的提示了。另外,有很多朋友经常性的会遇上系统的验证码显示不正常的问题,然后不知道怎么解决,其实跟这个原理是一样的,先直接打开链接看看是否正常,然后再进入相关的文件内去找有问题的地方,然后不断的重试,直到图片正常显示出来,那么再调用的地方一定就是正常的了。
如果是ShopEX/ShopNC商城系统出现验证码的问题那么请查阅本博客的另外相关的文章:
ShopEX-登陆时验证码显示错误造成不能登陆
PHP-Unicode签名(BOM)影响缓存输出实例
PHP-噢~&#65279(BOM文件头)你这个坏蛋
言归正传,既然知道是这个文件显示错误的话,那么当然就是直接找到这个文件来查看为什么出现这种错误了。
找到wp-content\theme\photolux\lib\utils\timthumb.php文件,然后一步步的跟踪下去,我发现,程序不工作是因为找不到正确的文件路径造成的,知道原因了那就直接修改一下即可(轻描淡写的说出这个原因,实际背后是我一个个代码隐藏,一个个试过去才知道造成问题的所在噢):

ShopEX二次开发DIY日记7之开启了伪静态之后登陆注册的弹窗冲突不能弹出

话说,最近一个客户比较倒霉吧~用的虚拟主机比较差,技术人员不给力呀~安装的伪静态重写插件有问题吧,结果,其他都很正常,就是登陆、注册所在的链接点击之后会出现问题,比如显示莫名其妙的界面,比如打开时空白页,总的说来是弹不出正常的对话框的。
怎么办?
遇上这种问题,第一的想法就是关闭伪静态看看可不可以正常工作,具体操作如下:“营销推广》搜索引擎优化》SEO设置》其他设置》商店页面启用伪静态URL”设置为否,保存即可。
设置完毕之后我们重新测试时会发现,神奇的弹窗又可以使用了!
这边对应两个情况做处理:一个是正常的人比较偷懒安装完伪静态插件之后就不继续设置了;一个是就算你设置了伪静态组件之后,还是不能正常使用。
1、伪静态组件没有设置
2、修改完规则还是不能弹出注册、登陆弹窗

jQuery-相册插件Galleriffic Scale Images – A Quick Hack (jQuery)

jQuery相册插件Galleriffic如何缩放图片-一个快速的Hack方法
//现在增加下面这些代码到到方法preloadRecursive和refresh方法之中相应的地方

var origWidth = image.width;
var origHeight = image.height;
var newWidth = this.scaleWidth;
var newHeight = parseInt((parseInt(origHeight) * parseInt(newWidth) / parseInt(origWidth)));
image.height = newHeight;
image.width = newWidth;

ShopEX-root.htaccess的伪静态配置实例

哈~今天分享一下公司目前用的.htaccess配置吧,不懂这玩意儿,所以都是同事自个研究写的,膜拜一下吧!对于高手,还望不吝赐教呀。
说明:
除了转向之外,做的最多的就是为了优化而设置的一些属性,将ShopEX的一些控制器全部都伪静态了,做成二级目录的形式,据说这样子比较有利SEO哈。
其中要特别注意的是最后那个[QSA,NU,PT,L]不要修改噢,这个形式是解决ShopEX搜索乱码问题的,经测试是有效的,目前网上很多人问ShopEX伪静态之后搜索不出结果,或者在访问的时候会出现乱码的情况,请加上[QSA,NU,PT,L]这个参数,则有可能解决这个问题,目前我是这么解决的,你行不行也不妨碍你试试,对吧?!

PHP-error_reporting(E_ALL ^ E_NOTICE)与error_reporting(0);

error_reporting() 设置 PHP 的报错级别并返回当前级别。
; 错误报告是按位的。或者将数字加起来得到想要的错误报告等级。
; E_ALL – 所有的错误和警告
; E_ERROR – 致命性运行时错
; E_WARNING – 运行时警告(非致命性错)
; E_PARSE – 编译时解析错误
; E_NOTICE – 运行时提醒(这些经常是是你的代码的bug引起的,
;也可能是有意的行为造成的。(如:基于未初始化的变量自动初始化为一个;空字符串的事实而使用一个未初始化的变量)
; E_CORE_ERROR – 发生于PHP启动时初始化过程中的致命错误
; E_CORE_WARNING – 发生于PHP启动时初始化过程中的警告(非致命性错)
; E_COMPILE_ERROR – 编译时致命性错
; E_COMPILE_WARNING – 编译时警告(非致命性错)
; E_USER_ERROR – 用户产生的出错消息
; E_USER_WARNING – 用户产生的警告消息
; E_USER_NOTICE – 用户产生的提醒消息

使用方法:
error_reporting(0);//禁用错误报告
error_reporting(E_ALL ^ E_NOTICE);//显示除去 E_NOTICE 之外的所有错误信息
error_reporting(E_ERROR | E_WARNING | E_PARSE);//显示运行时错误,与error_reporting(E_ALL ^ E_NOTICE);效果相同。error_reporting(E_ALL);//显示所有错误
error_reporting(0)
error_reporting(255);
是列出所有提示error_reporting(0);
是不显示所有提示建议使用error_reporting(7);
只显示严重错误
1 E_ERROR 致命的运行时错误
2 E_WARNING 运行时警告(非致命性错误)
4 E_PARSE 编译时解析错误
8 E_NOTICE 运行时提醒(经常是bug,也可能是有意的)
16 E_CORE_ERROR PHP启动时初始化过程中的致命错误
32 E_CORE_WARNING PHP启动时初始化过程中的警告(非致命性错)
64 E_COMPILE_ERROR 编译时致命性错
128 E_COMPILE_WARNING 编译时警告(非致命性错)
256 E_USER_ERROR 用户自定义的致命错误
512 E_USER_WARNING 用户自定义的警告(非致命性错误)
1024 E_USER_NOTICE 用户自定义的提醒(经常是bug,也可能是有意的)
2048 E_STRICT 编码标准化警告(建议如何修改以向前兼容)
4096 E_RECOVERABLE_ERROR 接近致命的运行时错误,若未被捕获则视同E_ERROR
6143 E_ALL 除E_STRICT外的所有错误(PHP6中为8191,即包含所有)