2012年4月27日星期五
项目推进总结
难得的诗词雅兴
《大学语文》新读本 |
孟子曰:”舜发于畎亩之中,傅说举于版筑之中,胶鬲举于鱼盐之中,管夷吾举于士,孙叔敖举于海,百里奚举于市。
故天将降大任于是人也,必先苦其心志,劳其筋骨,饿其体肤,空乏其身,行拂乱其所为,所以动心忍性,曾益其所不能。
人恒过,然后能改;困于心,衡于虑,而后作;征于色,发于声,而后喻。入则无法家拂士,出则无敌国外患者,国恒亡。
然后知生于忧患,而死于安乐也。”
飞云冉冉蘅皋暮,彩笔新题断肠句。试问闲愁都几许?一川烟草,满城风絮,梅子黄时雨。
草色烟光残照里,无言谁会凭栏意。
拟把疏狂图一醉,对酒当歌,强乐还无味。
衣带渐宽终不悔,为伊消得人憔悴。
2012年4月22日星期日
2012年4月19日星期四
网店产品方向的思考
网店产品方向的思考
-- 帮平哥考虑在福州考虑开网店的
# 靠不靠谱的点子
(自己遐想)
1. 搜集不同影院的折扣电影票,也可包括KTV或连锁餐饮的折扣优惠套餐等其他类似的,网店开卖折扣产品。
(有点类似小型的团购这些折扣产品吧)
2. 国外中档品牌的化妆品,最好有稳定可靠的货源。
3. 销售复印修订的书籍,我在大学时候见过很多同学在网上,尤其淘宝,购买过很多这种廉价的书籍。
4. 专业服饰的销售,比如针对专业品牌的登山徒步类型产品(可以在淘宝网店看看类似)。垂直领域的服饰品牌产品。
5. 买漂亮的首饰(不需要很值钱的),重要在如何精美包装啊。问题是得联系到好的厂家,且其价格便宜。
其他的应该还有很多的吧,我还没细想到,……
(我感觉自己也想的不多啊,眼光和思维仍有些局限,还不够开阔。再……想想)
继续多考察多讨论,我估计啊,要想开间好的不错的网店还真得随着时间,边做边打磨,慢慢看准方向。
PS. 有时间的话,在淘宝网店多逛逛考察也是挺有用的。
欢迎分享你的点子!热烈欢迎交流~
# 关于网店注意点(搜集)
A、影响网店知名度的因素有哪些?
因素很多,只能大致给你列出几点:
一、网店在同一类别下与竞争对手有何不同的亮点;
二、你研究过竞争对手的营销策略吗?
三、你的流量来源主要从哪些渠道?
四、你的老顾客回头率有多少?
五、你的宝贝卖火爆的有几款?分别得到多少好评?
六、你可能只需要将某个你不小心忽略的细节改进,就能引发新的转化点;
七、你利用过社交媒体了解到的知名度,包括哪些?
综合地看待这几个问题,然后搜集尽量与你店铺相关的数据,反向思考你的消费者的体验和你网店持续保持新鲜的活性,做好口碑工作。
B、主要结合掏宝上的情况,一般卖什么有几个选择:
1. 拥有独特的实体产品,或者是认识渠道的人,或者是自己本身就在做实体。不熟不做,这类成功的机会比较大,因为对买卖的产品内行,才可能做好;
2. 做高仿产品。品牌本身就是一个推广资源,高仿山寨也是一个机会点,很多人做这个生意,中等价格销售高仿品获取高利润。
3. 做代销。这些是对于那些创业不是很坚决的人士的一个模式,服装、饰品领域比较普遍。
4. 自己城市批发渠道、生产渠道找货。也有人专门从零开始找货,跑城市批发市场,找厂家谈合作。
5. 网络批发。可以通过阿里巴巴、慧聪等找一些货。
6. 直接从掏宝进行转手。在线下商业里,也有所谓买手的概念,就是开个专卖店,但是货是从各百货公司等处挑选一些很独特的商品来销售的,掏宝上也有人用类似的手法。
想先要从最重要的开始,就是你自己的定位:
1) 有基本价值原则。例如做不做高仿品,长期做店铺还是干一票就走,售后服务等。这些决定了哪些你可以做,哪些你不可以做,每个老板价值观不同,先最好想清楚,不要模糊,避免以后左右为难。我认识个朋友,就是被售后服务搞得很头痛,后来只好关店铺了事。
2) 目标要明确。不同的人开店目的不同,有为兴趣,有为赚钱,这是大的目标。细节目标也要有个大致,例如半年销售额、选择领域。很多人得过且过,没有目标,所以也就不了了之。
3) 要有计划。目标转化为执行,必须有个计划,例如选择领域,资金准备,广告投放等,必须有步骤去做。
4) 要有资源,可执行。这点就是结合实际的情况了,资金,关系网络,个人经验等都必须考虑到,这样才会选择正确的行业。
# 参考链接
http://www.wangdian6.com/show.php?tid=1615
http://daxue.taobao.com/
http://www.taobao.com
……
2012年4月16日星期一
Fwd: C++的std::string的读时也拷贝技术!
转载:http://coolshell.cn/articles/1443.html
===
C++的std::string的读时也拷贝技术!
嘿嘿,你没有看错,我也没有写错,是读时也拷贝技术。什么?我的错,你之前听说写过时才拷贝,嗯,不错的确有这门技术,英文是Copy On Write,简写就是COW,非常’牛’!那么我们就来看看这个’牛’技术的效果吧。
我们先编写一段程序
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | #include <string> #include <iostream> #include <sys/time.h> static long getcurrenttick() { long tick ; struct timeval time_val; gettimeofday(&time_val , NULL); tick = time_val.tv_sec * 1000 + time_val.tv_usec / 1000 ; return tick; } int main( ) { string the_base(1024 * 1024 * 10, 'x' ); long begin = getcurrenttick(); for ( int i = 0 ;i< 100 ;++i ) { string the_copy = the_base ; } fprintf (stdout, "耗时[%d] \n" ,getcurrenttick() - begin ); } |
嗯,一个非常大的字符串,有10M字节的x,并且执行了100此拷贝。编译执行它,非常快,在我的虚拟机甚至不要1个毫秒。
现在我们来对这个string加点料!
1 2 3 4 5 6 7 8 9 | int main( void ) { string the_base(1024 * 1024 * 10, 'x' ); long begin = getcurrenttick(); for ( int i = 0; i < 100; i++) { string the_copy = the_base; the_copy[0] = 'y' ; } fprintf (stdout, "耗时[%d] \n" ,getcurrenttick() - begin ); } |
现在我们再编译并执行这断程序,居然需要4~5秒!哇!非常美妙的写时才拷贝技术,性能和功能的完美统一。
我们再来看看另外一种情况!
1 2 3 4 | string original = "hello" ; char & ref = original[0]; string clone = original; ref = 'y' ; |
我们生成了一个string,并保留了它首字符的引用,然后复制这个string,修改string中的首字符。因为写操作只是直接的修改了内存中的指定位置,这个string就根本不能感知到有写发生,如果写时才拷贝是不成熟的,那么我们将同时会修改original和clone两个string。那岂不是灾难性的结果?幸好上述问题不会发生。clone的值肯定是没有被修改的。看来COW就是非常的牛!
以上都证明了我们的COW技术非常牛!
有太阳就有黑暗,这句说是不是有点耳熟?
1 2 3 4 5 6 7 8 9 | int main( void ) { string the_base(1024 * 1024 * 10, 'x' ); fprintf (stdout, "the_base's first char is [%c]\n" ,the_base[0] ); long begin = getcurrenttick(); for ( int i = 0; i < 100; i++) { string the_copy = the_base; } fprintf (stdout, "耗时[%d] \n" ,getcurrenttick() - begin ); } |
啊,居然也是4~5秒!你可能在想,我只是做了一个读,没有写嘛,这到底是怎么回事?难道还有读时也拷贝的技术!。
不错,为了避免了你通过[]操作符获取string内部指针而直接修改字符串的内容,在你使用了the_base[0]后,这个字符串的写时才拷贝技术就失效了。
C++标准的确就是这样的,C++标准认为,当你通过迭代器或[]获取到string的内部地址的时候,string并不知道你将是要读还是要写。这是它无法确定,为此,当你获取到内部引用后,为了避免不能捕获你的写操作,它在此时废止了写时才拷贝技术!
这样看来我们在使用COW的时候,一定要注意,如果你不需要对string的内部进行修改,那你就千万不要使用通过[]操作符和迭代器去获取字符串的内部地址引用,如果你一定要这么做,那么你就必须要付出代价。当然,string还提供了一些使迭代器和引用失效的方法。比如说push_back,等, 你在使用[]之后再使用迭代器之后,引用就有可能失效了。那么你又回到了COW的世界!比如下面的一个例子
1 2 3 4 5 6 7 8 9 10 11 12 13 | int main( ) { struct timeval time_val; string the_base(1024 * 1024 * 10, 'x' ); long begin = 0 ; fprintf (stdout, "the_base's first char is [%c]\n" ,the_base[0] ); the_base.push_back( 'y' ); begin = getcurrenttick(); for ( int i = 0 ;i< 100 ;++i ) { string the_copy = the_base ; } fprintf (stdout, "耗时[%d] \n" ,getcurrenttick() - begin ); } |
一切又恢复了正常!如果对[]返回引用进行了操作又会发生情况呢,有兴趣的朋友可以试试!结果非常令人惊讶。
另外:上述例子是在linux环境下编译的,使用STL是GNU的STL。windows上我用的是vs2003,但是非常明显vs2003一点都不支持COW。
这篇文章出自http://ridiculousfish.com/blog/archives/2009/09/17/i-didnt-order-that-so-why-is-it-on-my-bill-episode-2/ 这里,我使用了它的例子。但是我重新自己组织了内容。
编写这篇文章的同时,我还参考了耗子的《标准C++类string的Copy-On-Write技术》一文