一个温顺女人变得泼辣,一定是男人不争气,她不得不出头。一个纯洁女人变得恶俗,一定是男人档次不够高。相反,一个平庸女人,相貌变得可爱,眼睛变得灵光,一定有一个好男人。男人要知道,女人的美有你一半的功劳,她的丑也有你一半的过错。
作者: liyunde
Everything happens for a reason 这个世界,没有偶然。
常常想一个人反而会模糊了影子,只剩下依稀的几个片段.回忆里那些许的画面让人纠缠.如今我一个人安静的生活,默默的想念.没有你没有争吵没有眼泪,亦没有快乐.我很想念你,只是我的骄傲,我的固执,我的任性不允许我先低头.对不起.我依然爱着你.你依旧是我的伤.
The rain falls because the sky can no longer handle its weight. Just like the tears fall because the heart can no longer handle the pain..—– 雨水落下来是因为天空无法承受它的重量,眼泪掉下来是因为心再也无法承受那样的伤痛.
In the end you’ll see who’s fake, who’s true and who would risk it all just for you. 到最后,你总会明白,谁是虚心假意,谁是真心实意,谁为了你不顾一切。
Warmness is luxury—which is reflected by deep cold and hurt. 温暖是奢侈的东西,奢侈到需要用很深的寒冷和疼痛才能体现。
Love does not consist in gazing at each other, but in looking outward together in the same direction.——爱不是彼此凝视,而是一起注视着同一个方向。
If the whole world betrays you, I’m gonna betray the whole world for you. 如果全世界背叛了你,我愿为你背叛全世界。
Be thankful for your past relationships, someone better suited to you is waiting out there.–感谢你逝去的恋情,因为更合适的人正在某处等你。
到底如何征服恐惧呢?If you want to conquer fear, don’t sit at home and think about it. Go out and get busy. 如果你想征服恐惧,不要坐在家里去胡思乱想。走出去,让自己忙碌起来。这就是战胜恐惧最有效的方法。
Many people do not need good-bye, because of just going by. Forget is that we give each other the best souvenir. 很多人不需要再见,因为只是路过而已。遗忘就是我们给彼此最好的纪念。
The best way to get over someone,is to get under someone else.—— 忘记某个人最好的方法,就是喜欢上其他人。
关键时刻,相信全球通
一朋友去厕所,方便完发现没带纸,又等不到人,手机又欠费。绝望中他给10086打电话,请求帮助。。。据说那边沉默了很久,后来……他的一个朋友半天后收到了这样一条短信:尊敬的中国移动用户你好,你的好友谁谁谁在厕所里,让你给他送手纸。详情请咨询10086
念你
我的字典里没有放弃
因为已锁定你
我从不写空白的日记
日记里全是你
眼前这月亮翘翘溜走
又见那太阳缓缓升起
多少个昼夜变换
多少次一年四季
爱不偷懒终於如一
我的字典里没有放弃
因为已锁定你
我从不写空白的日记
日记里全是你
我的字典里没有放弃
因为已锁定你
我从不写空白的日记
日记里全是你
眼前这月亮翘翘溜走
又见那太阳缓缓升起
多少个昼夜变换
多少次一年四季
爱不偷懒终於如一
我的字典里没有放弃
因为已锁定你
我从不写空白的日记
日记里全是你
7.29世界爱虎日
生前何必久睡,死后自会长眠
生前何必久睡,死后自会长眠
忧郁的长命百岁,不如快乐健康到花甲
sqlserver 迁移到mysql详细步骤数据库表结构迁移
最近在开发的一个项目,需要从MS SQLServer迁移到MYSQL,以下把迁移过程记录下来,与大家共享!
sqlserver迁移到mysql 在数据库方面的工作主要是表的迁移,以及存储过程的迁移,这里先说说表的迁移.
首先先将MSSQL Server表结构导出为.sql文件. 表迁移,mysql一律不能运行带有[,],dbo.等带有sqlserver特征的脚步, 所以在导出的sqlserver脚步里面,首先要把这些字符全部过滤掉(可使用editplus进行过滤),在表创建方面的不支持的字符如下:[,],[dbo].,GO, on primary,.
在过滤完以上的字符后, 由于导出的sql文件都包含多个表, 为了能够一次性装载完所有的scripts并运行,需要在每个表的create语句后面加上分号, (同时还有加上ENGINE=InnoDB),否则你会发现只能一个一个表的进行运行,比如原来是这样:
CREATE TABLE bmapnamebidsg (
bword nvarchar (100) NOT NULL ,
bids text NULL ,
status int NOT NULL ,
cr_date datetime NOT NULL
)
CREATE TABLE BookStaticSortStatus (
sid int NOT NULL ,
sortStatus int NOT NULL ,
mxReviewStatus int NOT NULL ,
lReviewStatus int NOT NULL ,
up_date datetime NOT NULL
)
改动后是这样的:
CREATE TABLE bmapnamebidsg (
bword nvarchar (100) NOT NULL ,
bids text NULL ,
status int NOT NULL ,
cr_date datetime NOT NULL
)ENGINE=InnoDB ;
CREATE TABLE BookStaticSortStatus (
sid int NOT NULL ,
sortStatus int NOT NULL ,
mxReviewStatus int NOT NULL ,
lReviewStatus int NOT NULL ,
up_date datetime NOT NULL
)ENGINE=InnoDB ;
接下来就是数据类型了!
在数据类型方面,mysql基本对应了sqlserver的数据类型, 向bit,text,varchar,等,都对应得比较好, 但是,mysql并不支持smalldatetime(这个是sqlserver特有的),需要转成datetime,另外, sqlserver中的identity自增长属性在mysql中则表现为auto_increament属性,并且声明该属性的列必须是key!
最后我们看看主键,索引以及缺省值如何对应,一些是MS SQLServer(建一个主键,为两个字段定义缺省值,再为一个字段定义成索引):
ALTER TABLE BookStaticSortStatus WITH NOCHECK ADD
CONSTRAINT PK_BookStaticSortStatus PRIMARY KEY CLUSTERED
(
sid
)
ALTER TABLE BookStaticSortStatus ADD
CONSTRAINT DF_BookStaticSortStatus_status DEFAULT ((-1)) FOR sortStatus,
CONSTRAINT DF_BookStaticSortStatus_up_date DEFAULT (getdate()) FOR up_date
CREATE INDEX [sort2_books] ON [dbo].[books]([s2id]) ON [PRIMARY]
MySQL:
CREATE TABLE `bmapnamebidsg` (
`bword` varchar(100) character set utf8 NOT NULL default ‘1’,
`bids` text NOT NULL,
`status` int(11) NOT NULL,
`cr_date` datetime NOT NULL,
PRIMARY KEY (`bword`),
KEY `bids` (`bids`(1))
) ENGINE=InnoDB DEFAULT CHARSET=latin1
完成以上动作,表结构的迁移就基本完成了!
喜欢与爱的区别,你身边那个人爱你吗?
很爱很爱你:喜欢你的人,半夜会找你打电话聊天到很晚;爱你的人,半夜看你在网上会赶你下线。喜欢你的人,在你生病时,会讲好话关心你;爱你的人,在你生病时,他会关心到你烦,并强迫你去看医生。喜欢你的人,他说他要给你最大的快乐;爱你的人,他只能给你保证,你跟他在一起,他是最快乐的。
其实,很多故事不必说给每个人听,就当做是一段记忆,伤感却也美丽。
又是深夜了,不知道有多少人和我一样还没有睡。你在想些什么呢?或许每个人心里都有那么一段故事,无法述说。就只能放任那些在深夜里对自己倾述。其实,很多故事不必说给每个人听,就当做是一段记忆,伤感却也美丽。——人,总是要醒来的,在某个时刻。唯美文字
你愿意容忍的恰是你会拥有的。没有你的允许,没有人能毁掉你的一天。昨天是所有抱怨的最后期限
Whatever you are willing to put up with, is exactly what you will have.No one can ruin your day without your permission.Yesterday was the deadline for all complaints. 你愿意容忍的恰是你会拥有的。没有你的允许,没有人能毁掉你的一天。昨天是所有抱怨的最后期限。。
innodb引擎Plugin ‘InnoDB’ registration as a STORAGE ENGINE failed.
今天在做innodb参数配置的时候,对其默认配置加以修改–结果导致启动后的server竟然不支持innodb引擎。Plugin ‘InnoDB’ registration as a STORAGE ENGINE failed.
错误日志:
InnoDB: Data file /usr/local/mysql4/data/ibdata2 did not exist: new to be created
InnoDB: Setting file /usr/local/mysql4/data/ibdata2 size to 20 MB
InnoDB: Database physically writes the file full: wait…
InnoDB: No valid checkpoint found.
InnoDB: If this error appears when you are creating an InnoDB database,
InnoDB: the problem may be that during an earlier attempt you managed
InnoDB: to create the InnoDB data files, but log file creation failed.
InnoDB: If that is the case, please refer to
InnoDB: http://dev.mysql.com/doc/refman/5.1/en/error-creating-innodb.html
[ERROR] Plugin ‘InnoDB’ init function returned error.
[ERROR] Plugin ‘InnoDB’ registration as a STORAGE ENGINE failed.
在遇到这些情况的时候,我起初考虑是没有建立新日志文件的权限。
实则不然
当我在未正常关闭server的情况下对其参数修改,
修改之后没有删除ib_logfile文件,ib_logfile文件中记录些innodb引擎非常有用的信息比如说默认的innodb默认的配置信息,你又是在未正常关闭server情况下操作的,所以导致重启后的server不支持innodb引擎。
rm -rf ib_logfile*
正确配置参数
重启server。
windows下Mysql解决启动1067和Fatal error: Can’t open and lock privilege tables: Table ‘mysql.host’ doesn’t exist
Can’t open and lock privilege tables: Table ‘mysql.host’ doesn’t exist
2011年02月26日 星期六 01:43
关于手动修改mysql目录下的my.ini的数据库保存路径后,在启动的时候出错。
查看错误日志后,发现Can’t open and lock privilege tables: Table ‘mysql.host’ doesn’t exist
原错误日志内容:
110226 1:20:46 [Note] Plugin ‘FEDERATED’ is disabled.
C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqld: Table ‘mysql.plugin’ doesn’t exist
110226 1:20:46 [ERROR] Can’t open the mysql.plugin table. Please run mysql_upgrade to create it.
InnoDB: The first specified data file D:\mysite\database\ibdata1 did not exist:
InnoDB: a new database to be created!
110226 1:20:47 InnoDB: Setting file D:\mysite\database\ibdata1 size to 10 MB
InnoDB: Database physically writes the file full: wait…
110226 1:20:47 InnoDB: Log file .\ib_logfile0 did not exist: new to be created
InnoDB: Setting log file .\ib_logfile0 size to 10 MB
InnoDB: Database physically writes the file full: wait…
110226 1:20:47 InnoDB: Log file .\ib_logfile1 did not exist: new to be created
InnoDB: Setting log file .\ib_logfile1 size to 10 MB
InnoDB: Database physically writes the file full: wait…
InnoDB: Doublewrite buffer not found: creating new
InnoDB: Doublewrite buffer created
InnoDB: Creating foreign key constraint system tables
InnoDB: Foreign key constraint system tables created
110226 1:20:48 InnoDB: Started; log sequence number 0 0
110226 1:20:48 [ERROR] Fatal error: Can’t open and lock privilege tables: Table ‘mysql.host’ doesn’t exist
从网上查了半天都是linux下的解决方法,没有windows的。不过仔细看了看linux下的解决方法,发现是因为
这个文件闹得,从日志上来看是因为不能够打开私有权限的表格。
这个文件闹得,从日志上来看是因为不能够打开私有权限的表格。
解决方法直接把这个文件夹全都复制到你要修改的目录下,重启mysql就ok了。
Microsoft .NET Framework 3.5 sp1离线安装(DotNetFX35)中文版制作
1. 离线安装包的bug. .NET Framework 3.5 SP1发布了,兴冲冲…下载,当然是完全离线安装包.net Framework 3.5 Service pack 1(Full Package) 231MB,网络慢呀!终于下载完了,安装….遇到新情况,还要连接网络下载,不是完全离线安装包吗?(急…等待中…大概需要30多分钟) 上火…啪啪的… 说明:呵呵,查了资料后才知道是微软制作安装程序时的一个无奈bug.在这里微软没有提醒大家,确实忽悠了我们。原来,.NET Framework 3.5 SP1(Full Package)是默认英文的安装包,如果要同时包含所有语言,那体积会太大了,可能考虑到这一点,发布时并没有包含其它的语言包,而是通过安装时在线下载,因而Full Package的称呼有点言不符实。
2. 自己动手,制作离线安装包. 自己能办到的,一般不求别人…
第一 下载.net Framework 3.5 Service pack 1 (Full Package) 231MB
安装包后dotnetfx35.exe,用WinRAR将其解压缩。
http://www.microsoft.com/downloads/details.aspx?familyid=D0E5DEA7-AC26-4AD7-B68C-FE5076BBA986&displaylang=zh-cn
第二 下载中文简体语言包。
http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=8489ed13-b831-4855-96f7-dd35e4c02a20
文件名 文件大小 dotnetfx35langpack_ia64zh-CHS.exe 16.9 MB
dotnetfx35langpack_x64zh-CHS.exe 33.3 MB
dotnetfx35langpack_x86zh-CHS.exe 27.4 MB
一般用户下载dotnetfx35langpack_x86zh-CHS.exe 即可 说明:也可从vs2008 sp1
提取,里面dotnetfx35langpack_x64zh-CHS.exe和
dotnetfx35langpack_x86zh-CHS.exe都有,前提是你已经下载了VS2008 sp1。
3.
将语言包dotnetfx35langpack_x86zh-CHS.exe复制到第一步解压缩的\wcu\dotNetFramework\dotNetFX35\x86文件夹里。
(如果是x64位的,可将dotnetfx35langpack_x64zh-CHS.exe
复制到\wcu\dotNetFramework\dotNetFX35\x64文件夹里。) 第四
点击运行dotNetFx35setup.exe,可彻底的离线安装了。安装之后需要重启计算机。
================================================
在没有装VS2008的机器上单独安装3.5SP1的时候,无论你下载的什么完整版还是非完整版,安装程序都需要连接Internet,去下一些东东,而且超慢。更要命的是:提示有63M的东西要下,然后已经下了63M了,还是在下。等了好久,快抓狂了。去网上找到了一个解决办法。
先说解决方案:
1.到官网上下载3.5SP1的完整安装包。
2.下载完成后,命令行下运行dotnetfx35.exe /x解压到一个目录
3.进入解压目录下进入wcu\dotNetFrameWork
4.从命令行运行dotNetFx35setup.exe /lang:ENU
5.OK一路畅通了。
Doodle:雕塑大师亚历山大·考尔德诞辰 113 周年
感谢读者 轩辕十四 的提醒。
鼠标拖动产生动态效果,下面的影子也同时变化……雕塑大师亚历山大·考尔德诞辰 113 周年
静态图片地址:http://www.google.com.hk/logos/2011/calder11.png
这是一个动态doodle,可用鼠标拖动,同时在搜索框下方看到同步变化的光影效果。其实去年Google就用同样的图片纪念过历山大·考尔德112周年,但一年之后的今天,他们将其进化到了更高级的动态形式。
亚历山大·考尔德(1898.7~1976.11)出生于美国费城,他的父亲以及祖父都是雕塑家。1919年,考尔德在新泽西州霍普肯史蒂文斯理工学院的机械工程系毕业,打下以后从事活动雕塑的 发明与设计的基础。1922年,他去纽约业余学习绘画。翌年,加入了美国“垃圾箱”画派领导的艺术学生联合会。真正从事雕塑,大约是在1926年去巴黎之 后。他在欧洲现代派雕塑的鼓舞下,开始用铁丝、木头等来制作玩具动物,把制成的动物组成一个微型“马戏班”,并公开展出,引起了人们的兴趣。接着,考尔德 又用金属线制作真人大小的模特儿。1930年,荷兰的蒙德里安画室给了他很大的启示,他开始思考艺术的抽象化问题。1931~1932年,他创作了许多由 机器牵动的雕塑品,受到杜桑的鼓励。至1937年,他为巴黎世界博览会西班牙馆设计了一件《水银喷泉》,以流注的水银冲击连在旋转杆上的金属板,成为他第 一件真正的“活动雕塑”作品。这一件纵横有259×290厘米大的活动雕塑《虾笼子与活动鱼尾》,是他在此基础上于1939年新设计的大型活动雕塑代表作之一。
考尔德是美国最受欢迎、在国际上享有崇高声誉的现代艺术家,是20世纪雕塑界重要的革新者之一。
图文结合案例解析淘宝店铺运营
投身电子商务做淘宝运营的朋友以及一些中小卖家问到以下几个问题:
一、运营是做什么?
二、运营人员需要具备什么知识?
三、学习运营可以看些什么书?
这三个问题我从后往前按自己的理解先来回答一下。
第三:学习运营可以看些什么书?——淘宝运营更多的是实际操作经验的积累,到目前为止,我还没有看到一本理论体系非常适合的书。所以建议在实操中自学。没事逛逛派代也能学到不少东西。
第二:运营人员需要具备什么知识?——在我看来,优秀的运营人员需要具备非常庞大的知识体系,推广技巧方面,营销策划方面,交互设计方面,视觉设计方面,用户体验方面,数据分析方面,消费者形为心理学等等,当然还要懂产品。
第一:运营是做什么?——这个问题我想不同的团队不同的发展阶段对它的理解都不尽相同。从广义上来看,运营是要来解决以下三个关键问题:流量、转化率、用户粘度。从狭义的角度来看,运营是解决转化率和用户粘度两个问题。关于这三点通俗的理解如下:
流量:把人带到店铺来
转化率:让进来的人买东西
用户粘度:让买过东西的人以后还经常来买
图解:除了把运营工作定义为解决三大关键问题之外。还有另外一种理解方式。运营是解决上游产品到下游客户两者端到端的问题,所以掌握产品,摸清客户成为另一种运营工作思路。
理论的空话先不多说。以下店铺是一朋友所开,近日发给我看,让我给他们提一些建议,那我就结合具体店铺来谈一下我做淘宝运营的几个思路:
一、流量方面
朋友没有给我店铺账号密码,所以对于他们店铺的流量分析就无从做起了,但解决流量问题,我还是可以通过我的思路来说一下有哪些工作分解
以上部分,可能内容还有不尽详实之处。各位派友也可以帮我补充补充。
二、转化率方面
在分析问题之前,同样我先将我的思路图列出来
关于如何提高店铺转化率,可能很多人都能说上来不少方法。按工作内容不同来划分,我将之归为三类,一是产品设计,也可理解为产品的挖掘包装;二是店铺装修,这个大家容易理解,淘宝上卖的就是文字和图片,所以店铺装修是个大问题。三是活动策划。好的产品,好的页面展示,当然配合诱人的活动形式才容易产生最快的购买。
以下就细细来说一下我朋友的店铺。
1、店铺首页设计
首页图片我只截了首屏如下:
分析情况如下:
1)主色调:店铺首页的主色调为大红色,整体效果有点跟小也香水类似。使用醒目色红色来引起注意,聚集视觉焦点,这本身无可厚非。但考虑到当前是炎炎夏目,暖色系大红大黄容易让用户产生烦燥情绪,造成跳失率偏高的情况。相比之下芳草集的绿色调,御泥坊的灰蓝色调,相宜本草的蓝绿色调都更胜一筹,让用户看起来清新舒爽。其实类似这个店铺首屏这张焦点图的效果就非常友好。因此建议在做店铺整体风格设计的时候考试到季节因素气候因素。
2)分类模块:如下图所示:店铺的产品分类存在结构混乱,内容不全的情况。而这个版块又恰恰是非常重要的一个部分。欧美用户更愿意使用搜索功能,因为他们的民族更强调个性化,有冒险精神,而亚洲用户则更偏好使用类目导航的固定路径,相对求同存异,对已知有依赖性。所以,好的类目导航会对用户体验有非常大的提升。
目前为止,我还算是一个化妆品门外汉,但我觉得,化妆品产品的分类至少需要切以下几个维度:一是按功能分,有护肤类,彩妆类,美发美体类;二是按性别分:男士专用,女士专用;三是按肤质分:油性皮肤,中性皮肤,干性皮肤;第四,按品牌分,欧莱雅,The Face Shop,相宜本草等;第五,按热门关键词;第六,按价格区间。。。
也许有人会说,左侧分类栏有详细的分类啊,其它通栏位置还有必要这样详细的分类导航模块吗,我的答案是肯定的,需要。
如果不做这样的分类。举个例子,我是一个油性皮肤的人,进了店铺半天也没看到跟油性相关的产品或关键词,那我可能没有兴趣浏览下去了,直接关掉网页
3)框架布局。在框架布局方面,应该更多的考虑到用户的浏览习惯。根据Google的眼动仪测试报告。用户在浏览网页的时候,习惯路径是从上到下,从左到右。综合起来,就是“F”型的热点区域。因此店铺首页在做布局设计的时候,也要考虑到这些方面。西红柿美肤馆这个店铺显然没有考虑到这一点,三屏以下,基本上采用的都是相类似模块的重复堆砌,例如下图,两张图如此近的堆砌,究竟是让用户看哪一张呢
2、单品页设计问题
1)宝贝标题:我将当前店铺中销量最高的一个拿来做案例。此商品标题如下:
镇店之宝 Cetaphil/丝塔芙 舒特肤温和洗面奶118ML 洁面/抗敏感
首先说一个常识,宝贝标题不是简单对产品作一个文字描述,宝贝标题中的每一个关键词都是一条路径,这条路径在用户进行搜索行为的时候,就能把陌生的他与自己的商品建立一条通道联系。所以选择匹配度高的热门关键词作为宝贝标题是正确的选择。先看一下这个宝贝标题各个关键词在淘宝的日搜索量。
从上面这个图就能看出来,有两个宝贝标题关键词日搜索量为0,还有一个搜索量不到300,那么这三个关键词就应该被优化掉。举个例子“护肤”这个关键词日搜索量就有5000多,为什么不用呢。
2)产品介绍:这个单品页里面对产品的介绍顺序如下:
产品文字描述——使用需知——产品图片展示——品牌介绍——名人推荐——效果评测——用户体验反馈——产品细节展示——热销纪录
当我看完整个单品页后觉得脑子里面很混乱,我发现我没有装进去多少有价值的信息。是内容不够多吗,不是,内容已经够多了。问题在于,陈列顺序出现了逻辑上的混乱。
当你向我推荐一个东西的时候,你先要告诉我你是个什么东西(品牌),买来有什么用(功效),如果我觉得有兴趣,我还会接着问,你这个东西是正品行货吗(资质认证),还有谁在用(热销记录)。最后被你说服了,我想买了,但我还有最后一个问题,这个东西怎么用呢?(使用需知)
结合以上思维路径,我建议单品页的内容介绍按以下步骤来:
产品文字描述——产品图片展示——产品细节展示——品牌介绍——效果评测——名人推荐——用户体验反馈——热销纪录——使用需知
另外,西红柿美肤馆这个单品页的部分图片也太不专业了,例如如下所示,感觉很山寨。
3、分流页设计问题
分流页我想说两个问题:
第一:不同类的产品,应该使用不同的单品页模板。不同的单品页模板设置不一样的分流模块。
为什么这么说呢,如果所有的单品页点进去都是相同的分流模块,那跟人家想进商场你在门口硬塞给他一张传单有什么区别呢。其实应该这样,例如卖服装的,外套的单品页里面分流模块就应该放裤装的产品,男士护肤品的单品页里面分流模块就应该放男士护肤的专用产品。油性皮肤护肤单品的分流模块就应该推荐一些其它适合油性皮肤的产品,等等。
第二:分流模块的产品其实除了掌柜热卖和特价秒杀团购外有更多选择。
还是举个例子来说,单品页的分流模块分为宝贝详情上方,宝贝详情下方两个位置。在一个洗面奶的单品页里面,宝贝详情上方的分流模块可以放什么呢,我认为在这个位置,你要告诉客户的是,买了这个洗面奶,你还可以买以下相配套的爽肤水,隔离霜哦。那宝贝详情下方的分流模块又可以放什么呢?我认为客户浏览到这里的时候有可能会对本产品不感兴趣,有跳失的可能。所以在这里,我们可以告诉他,如果这个洗面奶你不喜欢,还可以选择其它品牌性价比更多的洗面奶哦。
综合来说,分流页模块不是简单地把自己热卖的,或者搞特价的商品强推给客户。如果是这样,关联销售根本就提高不起来。我想超市里面啤酒和尿不湿的案例大家都听过了吧。
有句话是这么说的,关联销售不是为不同的买家找共同的产品,而是为不同的产品找到共同的买家。这句话有点绕,大家慢慢理解。
我这朋友家西红柿美肤馆的分流页模块就犯了这个问题,既单调又单一。如下图所示:
4、活动策划问题
为什么产品好,还要做活动呢,我想用一句话可以概括。在中国人的思维里,买东西不是为了买便宜,而是为了占便宜。有一个案例是这样的:某超市某品牌牙膏正常日销量为2000盒。有一次,他们做了一个促销活动,降价5毛,仅限一日。结果当天该品牌牙膏的日销量是10000盒。真的是消费者买到便宜了吗?不见得,一盒牙膏正常情况下一个人可以用一个月。也就是说超市降价5毛等于每个人每个月节约了5毛钱。5毛钱多吗,如果我说地上每天有一毛钱让你捡,一个月捡3块,我估计没有几个人愿意捡的。因此。店铺经常策划一些活动就是为了让消费者觉得在你这里买东西占到了便宜。
我观察过西红柿美肤馆这个店铺一段时间。发现他们的店铺活动非常之简单,没有花样,没有主题。除了打折,还是打折。
其实店铺活动策划这方面,是有很多种选择的。我分成了下面这四类
一是常规营销活动:比如常年满多少包邮之类的,收藏送红包,送优惠券之类的
二是主题系列活动:例如周未购,每周秒杀,新品抢先购之类。通过第一季,第二季,第三季这样的持续形式来促使新用户的回头,老用户的积累。相当于每周给客户一点盼头。
三是节点促销活动:例如情人节,感恩节,国庆节,暑假等等,都可以包装成活动。活动形式灵活多变,满减,满送等,例如:五一我要“价”给你,暑“价”集中营等等
四是噱头促销活动:这个很多店铺玩过,比如说冲冠特价,掌柜搬家清仓等等。
本来还有再分析下其它几个方面,奈何本人一向不喜欢篇幅太长,打住吧
三、用户粘性方面
还是先上图,把我的思路先抛出来,如果有高手觉得内容不充分,也可补充。在我看来,要解决用户粘性的问题,需从以下几方面着手:
以上内容不作解释了,相信应该都看得懂。具体到西红柿美肤馆这个店铺,因为在他们这没买过东西,所以CRM做得如何,售后服务做得如何,就不得而知了。我仅仅从页面上获取的信息提出几点想法。
1、化妆品的消费人群有一个特性,就是除了买东西之外,还有一个交流分享的需求。在这方面,NALA做得还不错。通过QQ群来进行有效的管理。给客户一个自由交流分享的渠道。
其它除了QQ群。还有淘宝店铺帮派这个东西可以充分利用起来。把店铺帮派打造成一个小论坛,小社区。满足客户在这方面的需求。此外,店铺帮派还可以填充一些关于美妆护肤的专业知识。做信息内容的输出。提高可读性。
再有,就是利用时下比较热的微博来做CRM。通过与客户的在线沟通互动,增加用户的粘性。提高客户的复购率。
很遗憾的是,在这两方面,我朋友这家店铺都没有重视起来。
2、对于淘宝上的用户来说,店铺忠诚度是非常低的,那么如何来打造自己的忠实客户人群呢。我想利用好售后服务卡是非常关键的。
一般情况下,售后服务卡大多数人都理解为退换货表。在我看来,不仅仅如此简单,里面大有文章可做。一张设计精美的售后服务卡,可以让用户爱不释手,可以拿来当书签。增加了跟用户的“对话”时间,也即增加了用户回访店铺的可能性。不要好不容易跟一个客户产生了交易又彻底消失在他的世界里。要学会挖掘客户终生价值。
此外,如果可以的话,这张售后服务卡上还可以印上店铺红包的领取代码,或者直接充当一张有限期为一个月的包邮卡均可,让客户在收到货的同时有一个小小的惊喜。也大大提高了店铺的回访率和复购率。
总结一下,淘宝运营是做什么呢?
第一:通过运营手段提高店铺流量,降低店铺流量获取成本
第二:通过营销策划,店铺设计来提高店铺的转化率
第三:通过CRM,来增加店铺的忠实客户。
UCenter中上传头像功能的剥离
UCenter中上传头像功能的剥离
本文的内容仅供技术交流学习之用,相关的代码并未考虑实际应用系统中所必需的用户身份验证等功能,同时由于 UCenter 发行许可的限制,请勿将本文附带的代码直接用于实际的产品或项目中。
Discuz! 和 UCHome 中的头像上传功能很好用,大概有不少人和我一样想弄清楚它是怎么实现的,甚至希望移植到自己的应用系统中。
这个功能其实是在 UCenter 中实现的(这是 Discuz! 和 UCHome 等其它相关产品都依赖的公共模块),通过一个 Flash 文件(camera.swf),跟服务端的 PHP 程序配合完成的。
UCenter/UCHome 本身是开源的,但那个 camera.swf 并没有提供源代码。我们可以通过对 PHP 程序进行分析研究,进而基本摸清这个功能操作的细节,并最终将其剥离出来,独立于 UCenter 而独立运行。本文内容依据的是 UCenter1.5.0/UCHome2.0 。
首先我们来看一下 UCenter/UCHome 中这个功能是怎么工作的。
基本步骤
0. 浏览器访问 UCHome 中的一个 web 页面,其中包含 camera.swf。为保证 camera.swf 能正常工作,在其相同的路径下需要有 locale.xml 文件。
装载 camera.swf 的 HTML 代码可以由下面的程序生成:
home/uc_client/client.php : uc_avatar()
生成的内容大致如下:
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="447" height="477" id="mycamera" align="middle">
<param name="allowScriptAccess" value="always" />
<param name="scale" value="exactfit" />
<param name="wmode" value="transparent" />
<param name="quality" value="high" />
<param name="bgcolor" value="#ffffff" />
<param name="movie" value="http://localhost/center/images/camera.swf?inajax=1&appid=1&input=6b49vKhr%2FC4VpMIMCAt07Kr2eQk8jjY%2F6vtvDonod47dU7JK%2BxVFJPIVY%2FJGMQoSpzHylapBa8FbsEWFGorPwZDJRM10wGjxvbHKTVmVgrng%2BpoSTTsk%2BE3U&agent=a523e70c80e13e4eaee37c7f4bde4f2c&ucapi=http%3A%2F%2Flocalhost%2Fcenter&avatartype=virtual" />
<param name="menu" value="false" />
<embed src="http://localhost/center/images/camera.swf?inajax=1&appid=1&input=6b49vKhr%2FC4VpMIMCAt07Kr2eQk8jjY%2F6vtvDonod47dU7JK%2BxVFJPIVY%2FJGMQoSpzHylapBa8FbsEWFGorPwZDJRM10wGjxvbHKTVmVgrng%2BpoSTTsk%2BE3U&agent=a523e70c80e13e4eaee37c7f4bde4f2c&ucapi=http%3A%2F%2Flocalhost%2Fcenter&avatartype=virtual"
quality="high"
bgcolor="#ffffff"
width="447"
height="477"
name="mycamera"
align="middle"
allowScriptAccess="always"
allowFullScreen="false"
scale="exactfit"
wmode="transparent"
type="application/x-shockwave-flash"
pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>
参数分解如下:
inajax 1
appid 1
input 6b49vKhr%2FC4VpMIMCAt07Kr2eQk8jjY%2F6vtvDonod47dU7JK%2BxVFJPIVY%2FJGMQoSpzHylapBa8FbsEWFGorPwZDJRM10wGjxvbHKTVmVgrng%2BpoSTTsk%2BE3U
agent a523e70c80e13e4eaee37c7f4bde4f2c
ucapi http://localhost/center
avatartype virtual
其中的关键参数为 ucapi,后面两步 POST 的 URL 为 <ucapi>/index.php
这里的 "/index.php" 似乎是 hardcode 在 camera.swf 里的,不过在最后的程序代码中会看到,如果我们指定的 ucapi 明确给定了一个 php 文件的话,可以绕开 index.php 这个文件名。换句话说,如果服务端不是采用 PHP,而是另外一种编程语言的话(比如 Java/.NET 等),也是可以实现的。
1. 用户在 camera.swf 中"选择图片"后,camera.swf 会立刻把选中的图片上传到服务器。
$_SERVER
REQUEST_URI /center/index.php?m=user&inajax=1&a=uploadavatar&appid=1&input=ca68o1L41a1HkbmhMJVGHu0oFjxYXwadnUT9HnFpnyz5AgiZcsVGecPP38w%2BwM7XtT79zC5WMWlH8T7LvluCSXS3YUsrcJDoD1ySILNO2xo63hmBAvXVX24f&agent=a523e70c80e13e4eaee37c7f4bde4f2c&avatartype=virtual
METHOD POST
$_GET
m user
inajax 1
a uploadavatar
appid 1
input ca68o1L41a1HkbmhMJVGHu0oFjxYXwadnUT9HnFpnyz5AgiZcsVGecPP38w+wM7XtT79zC5WMWlH8T7LvluCSXS3YUsrcJDoD1ySILNO2xo63hmBAvXVX24f
agent a523e70c80e13e4eaee37c7f4bde4f2c
avatartype virtual
$_POST
Filename something.jpg
Upload Submit Query
$_FILES
图片文件内容
处理程序为:
center/control/user.php : onuploadavatar()
程序返回的内容为保存该文件的临时位置,比如:
http://localhost/center/data/tmp/upload5.jpg
camera.swf 会通过上面这个网址来读取图片,显示供操作。还可以有以下返回值作为错误代码:
-1 : Invalid identity!
-2 : Invalid photograph!
-3 : No photograph be upload!
-4 : Can not write to the data/tmp folder!
-5 : Server can not upload!
2. 用户在 camera.swf 中"确定"后,camera.swf 会向服务器上传 3 个图片数据,作为大、中、小尺寸的头像图片。
$_SERVER
REQUEST_URI /center/index.php?m=user&inajax=1&a=rectavatar&appid=1&input=ca68o1L41a1HkbmhMJVGHu0oFjxYXwadnUT9HnFpnyz5AgiZcsVGecPP38w%2BwM7XtT79zC5WMWlH8T7LvluCSXS3YUsrcJDoD1ySILNO2xo63hmBAvXVX24f&agent=a523e70c80e13e4eaee37c7f4bde4f2c&avatartype=virtual&randomnumber=5478
METHOD POST
$_GET
m user
inajax 1
a rectavatar
appid 1
input ca68o1L41a1HkbmhMJVGHu0oFjxYXwadnUT9HnFpnyz5AgiZcsVGecPP38w+wM7XtT79zC5WMWlH8T7LvluCSXS3YUsrcJDoD1ySILNO2xo63hmBAvXVX24f
agent a523e70c80e13e4eaee37c7f4bde4f2c
avatartype virtual
randomnumber 5478
$_POST
avatar1 …<big>
avatar3 …<middle>
avatar2 …<small>
处理程序为:
center/control/user.php : onrectavatar()
程序的返回内容为:
成功时: <?xml version="1.0" ?><root><face success="1"/></root>
失败时: <root><message type="error" value="-1" /></root>
3. 上传完成后,如果 camera.swf 能找到名为 updateavatar() 的 Javascript function,就会调用它。
参数分析
在上面第 0 步生成的 HTML 中,指向 camera.swf 的 URL 携带了一些参数,其中最关键的是 ucapi,它决定了第 1 步和第 2 步的 HTTP Request 发往哪里。
其它几个都是 UCenter 应用系统所需要的参数。camera.swf 是专为 UCenter 设计的,所以它特别支持这几个参数值,也就是说,在访问 camera.swf 的 URL 里包含了什么值,在后续访问 ucapi 的时候就会原样传回来。
camera.swf 没有提供源代码,没办法改造,但并不妨碍我们使用它。比如,我们可以借用 input 这个参数,把自己应用程序所需要的自定义参数(比如 user id)统一编码装在这个值里。
剥离实现
搞清楚了功能操作的细节和参数含义,重新实现这个功能就很容易了。
所谓重新剥离实现,就是在直接借用 camera.swf/locale.xml 这两个文件的前提下,重新编写服务器端的处理程序,实现头像上传功能,脱离 UCenter 独立运行。
理论上任何服务端编程语言都可以,我这里只给出 PHP 的代码。
包含了三个程序文件:
avatar.php — 实现了上面"基本步骤"中提到的全部功能
camera.swf — 提取自 UCenter
locale.xml — 提取自 UCenter
将这三个文件部署到 web server 上,然后访问 http://localhost/avatar.php 即可。还可以在 URL 上指定一个 uid 作为"用户标识",比如 http://u.liyunde.org/avatar.php?uid=1
程序下载地址: http://maquan.download.csdn.net/
基于xmlrpc的PingBack 规范形象介绍 在wordpress中广泛使用
Pingback是在博客圈的背景下诞生的一个新鲜玩意,说白了,其目的等同于csdn上的trackback。不过,它有更加完善的机制,而且用php很容易实现。
传统的博客是这样的,我写了篇很牛X的文章,你不巧看到了,但是我的观点你不同意,而且更不巧,你还非常喜欢抬杠,为了能和我抬杠,你就得在我的博客上留言,而且你啰里啰唆的打了1000个字上去。问题是,我不喜欢抬杠,所以我限制留言字数为100字。
问题来了,如果你对我的博客文章有几K个字节的感想,单单发表在我的博客评论里显得有点屈才。你可以在你的博客里重新发布一篇文章,为了让我知道你的大作,以便我们抬杠,你还得给我发封电子邮件告诉我。这个流程虽然不怎么复杂,但还是很麻烦。
Pingback简化了这个流程,只要在你啰里啰唆的评论里加个超链接,指向我的文章。我就会收到有关你的评论,而且还会自动显示在我的博客评论中。
神奇吧,神奇的背后是老瓶装新酒。要理解Pingback,最好有点web服务的知识,不知道也没关系,所谓web服务就是俩服务器之间没事倒腾数据玩,当然,俩服务器得使用同一种语言进行交流。目前,有两种倒腾语言,SOAP和xmlrpc,php5已全面支持。SOAP稳定可靠,但是很复杂,xmlrpc就简单实用的多。pingback就是基于xmlrpc实现的。
来看看具体的操作流程:
1、首先我发布文章,我的文章地址是:http://www.renseng.com/learning/dede-cms-remove-page-index-html.html。如果你乐意打开这个网页,并看下源文件,会注意到,在页面上有个link元素,内容是<link rel=”pingback” href=”http://www.renseng.com/xmlrpc.php” />。这玩意标示了一个pingback服务器的地址:http://www.renseng.com/xmlrpc.php。
2、然后你看了文章,开始在你的博客写你的啰里啰唆的评论,评论一开始可能会这样:carche在<a href=”http://www.renseng.com/learning/dede-cms-remove-page-index-html.html”>CURL……….</a>中 提到,我对此不敢苟同…………….
3、之后提交你的文章,如果你的blog系统是wordpress架构,当你提交文章之后,wordpress会扫描你文章中提到的链接,这时它发现了http://www.renseng.com/learning/dede-cms-remove-page-index-html.html这个链接。wordpress会抓取这篇文章,然后用一个像这样的正则表达式 ”/<link\s+rel=\”?pingback\”?\s+href=\”?(^>*)\”?\s+>/” 来寻找pingback服务器地址,找到这个地址后,开始倒腾数据。
4、你的blog系统会给找到的pingback服务器发送以下信息:你好,在某某博客文章中曾经引用了http://www.renseng.com/learning/dede-cms-remove-page-index-html.html这个超链接。
5、我的pingback服务器收到信息之后,先检查一下是不是确实有这回事,如果是就返回随便什么字符;如果不是,就返回一段错误码。之后,我的blog系统会根据你请求的信息,到你的评论里面抓取内容,并显示在我的blog评论中。
大致流程是这样的,如果要看详细的规范,参考:http://www.hixie.ch/specs/pingback/pingback
特别奉献
As for worrying about what other people might think – forget it. They aren’t concerned about you. They’re too busy worrying about what you and other people think of them.
关于忧虑别人对你的看法,算了吧!他们根本不在乎你,他们只会忙着忧虑你和别人对他们自己的看法。
衣服还能这样穿,太有才了
以后找个女朋友,带她去海边,还可以这么穿!
alexa排名下降是什么原因?三招帮你解忧
对于大多数网站而言,当出现网站alexa排名下降的现象之后,需要提升网站alexa排名的问题,实际上也就是对处于稳定期的网站如何进行有效推广使之访问量重新进入新一轮增长的问题。
尽管ALEXA网站排名系统存在很多不合理之处,但作为唯一可以为全球网站做流量排名的机构,ALEXA排名数据仍然被看作判断一个网站价值的参考指标之一,因此当网站的排名出现明显下降时,往往会让网站经营者感到很大压力,并想尽一些办法提升网站的ALEXA排名。实际上,ALEXA网站排名的高低的确能说明一定的问题:虽然排名靠前的网站不一定访问量真的巨大(不排除某些网站采用作弊的手段获取高的排名),但排名非常落后的网站必定不会有很大的访问量。所以,实际情况是,大部分网站经营者,对于ALEXA网站排名还是基本认可并且在乎的,尤其作为同类网站的相对比较指标,ALEXA的数据有其自身的价值。
从网站推广的角度来看,一个网站从策划到稳定发展要经历四个基本阶段:网站策划与建设阶段、网站发布初期、网站增长期、网站稳定期。在这四个阶段中,一般来说,前三个阶段网站的访问量都会有明显的上升,相应地网站ALEXA排名也在不断上升。到了网站稳定期,访问量增长缓慢甚至出现一定的下降,ALEXA排名下降也通常出现在这个阶段。所以,对于大多数网站而言,当出现网站ALEXA排名下降的现象之后,需要提升网站ALEXA排名的问题,实际上也就是对处于稳定期的网站如何进行有效推广使之访问量重新进入新一轮增长的问题。
对稳定期网站的推广,显然要比新网站推广的其他阶段有更大的困难,因为常规的网站推广方法已经应用过了,采用新的网站推广策略 无疑需要对现有经营活动做出较大的调整,这对很多网站来说并不是简单的事情,比如增加新的功能和服务、向新的业务领域拓展等。所以,当网站进入稳定期之后,如何制定有效的网站推广策略是网站运营的难题之一。
分析一些网站进入稳定期之后的访问统计数据可以发现,有时甚可以感觉到“可怕的稳定”:尽管每天的用户可能不同,但是不仅总的访问量保持稳定,甚至来自各个渠道的用户比例都保持稳定!在这种情况下,期望网站访问量获得自然的爆发性增长是不可能的,根据对部分网站运营的体会以及为一些网站提供咨询的经验,对于稳定期网站的推广可以从下面几个方面来考虑:
第一,分析自己的网站资源,是否可以通过对现有资源的整合,利用常规的推广方法(例如搜索引擎营销)获得更多的用户,或者用户的平均网页浏览数量。具体的分析方法包括:
(1)通过网站流量统计数据,分析用户来源比例是否合适,比如来自搜索引擎的用户比例是否有进一步提升的可能;
(2)通过网站的搜索引擎优化诊断,分析主要搜索引擎收录网页的数量和在检索结果中的表现,从中可能会发现一些没有被搜索引擎收录的网页,并对某些重要网页进行针对性的优化设计;
(3)通过ALEXA网站统计数据分析,与竞争对手相比,自己的网站在独立用户数量(Reach per million users)和页面平均浏览数(Page Views per user)的差距在什么地方,如果用户平均页面浏览数过低,则可以通过对内容资源的重新组织来增加用户的阅读量。尤其对一些信息资源为主的网站,早期发布的信息尽管仍有价值,但往往会被用户忽略,仅仅相当于一个新闻网站,用户只关注最新的内容,这是对网站资源的浪费,有必要进行资源的重新整合。
一般来说,对现有网站资源的整合应用需要对网站进行全面的优化设计,这往往是网站经营者感到比较困难的事情。不过,实践经验表明,这项工作对稳定期网站访问量的提升很有效。
第二,有针对性的增加新的内容。通过对现有访问者需求特点的分析,提供更有吸引力的新的内容,尤其是当前的热点内容,是快速提升网站访问量的方法之一。
第三,增加网站互动性的功能,为现有用户提供扩展服务。
以上提到的仅仅是在没有多少额外资源投入的情况下的常规网站推广手段而已,如果有充裕的网站推广预算,当然可以加大广告投入的力度了,花钱买流量的事情,没有多少技术含量,谁都可以去操作。另外,如果希望更快获得网站排名的飞跃,利用流氓软件强迫用户访问或者不断弹出网站的内容,这种方式对网站排名可能任何时候都有效,只是这些手段不属于正规的网站运营方法,也不会为正规的网站所采用,作者也没有兴趣去实践体验。