0) { foreach($set as $item) { $is_key = ($is_key ? false : true); //alternating if ($is_key) //setup key name { $key = $item; } else //setup key/value pair { $_GET[$key] = $item; //only need to populate _GET $_REQUEST[$key] = $item; } } } } //makes _GET vars look like individual directories (better search engine indexing) function wp_indexable_urls($url) { static $cache = array(); //use the cache, luke if (array_key_exists($url, $cache)) { return $cache[$url]; } //only parse ones that have query strings if (!strstr($url, '?')) { return $cache[$url] = $url; } //if parsing fails, abort if (($urlinfo = parse_url($url)) === false) { return $cache[$url] = $url; } $new_url = $urlinfo['scheme'] . "://"; if (array_key_exists('user', $urlinfo)) { $new_url .= $urlinfo['user']; $host_prefix = '@'; } if (array_key_exists('pass', $urlinfo)) { $new_url .= ':' . $urlinfo['pass']; $host_prefix = '@'; } $new_url .= $urlinfo['host']; if (array_key_exists('port', $urlinfo)) { $new_url .= ':' . $urlinfo['port']; } //if it's blank or just / then its really index.php if ($urlinfo['path'] = '/' || $urlinfo['path'] == '') { $new_url .= "/index.php"; } else { $new_url .= $urlinfo['path']; } //turn query string into url if (array_key_exists('query', $urlinfo)) { $pieces = explode('&', $urlinfo['query']); if (is_array($pieces) && count($pieces) > 0) { foreach($pieces as $piece) { $set = explode('=', $piece); if (is_array($set) && count($set) > 0) { list($key, $value) = $set; $new_url .= "/$key/$value"; } } } } //make sure there's a trailing / to give appearance of a directory index if (substr($new_url, -1) != '/') { $new_url .= '/'; } if (array_key_exists('fragment', $urlinfo)) { $new_url .= '#' . $urlinfo['fragment']; } return $cache[$url] = $new_url; } //add necessary filters for links to change add_filter('the_permalink', 'wp_indexable_urls'); add_filter('page_link', 'wp_indexable_urls'); add_filter('post_link', 'wp_indexable_urls'); add_filter('attachment_link', 'wp_indexable_urls'); add_filter('year_link', 'wp_indexable_urls'); add_filter('month_link', 'wp_indexable_urls'); add_filter('day_link', 'wp_indexable_urls'); add_filter('category_link', 'wp_indexable_urls'); 开放式电子商务平台
July 30, 2010

OpenSource感想

 这篇是关于open source的,尽管os这种“不赚钱”的东西,在中国已属于被遗忘的话题。

但是这么多人仍然在为中国的open source 努力,这不得不让我来写一些东西。

Open Source 诞生伊始,为世界提供了一个选择。世界多一个选择,是有着巨大的意义和价值的。虽然那时open source 在很多人心里代表了免费。
有价值的东西,无论开始是否免费,他的价值终将体现。

OpenSource为世界提供一个选择的同时,也孕育了无限的机会。试想一下,封闭的产品开发,和开发的自由开发,谁更富于创新?谁更创造机会?

在今天,我们这些被成为Geek的人,在写着自己感兴趣的东西,没有人给钱。在明天,也许我们成为一个强大的社区,开发这我们感兴趣的东西,没有人给钱。在将来,也许社会化开发已经成为软件开发的主要模式。软件价值链缩短到了最短,OpenSource 直接创造世界的主体。开源和不开源还有分别吗?

世界是奇妙的,OpenSource 存在和发展壮大到今天,背后一定有文化和价值链,生态链的存在。所以,尽管因为中国的市场发展现状,中国的经济现状,中国的文化现状,让OpenSource 在中国的发展落后于 ,但是,我们至少看到了,社会化开发是软件开发的大趋势。希望中国的开源更加繁荣,向Peter,David等为中国开源社区不断努力的同志们致敬!

This article is created by 开心写作网

该文已同时发布到
devblog.ns-soft.com
spaces.live.com

又见开放平台

 做开放平台的公司有两种:一种是觉得自己不够强大所以开放平台,一种是觉得自己非常强大所以开放。

一周里参加了四个活动,一次和top(淘宝开放平台),一次和盛大创新院,一次是上海oscamp, 一次杭州oscamp

Peter的oscamp越来越来有声有色了。国内的开放平台却没什么长进。

这么说吧,如果facebook没有开放平台,而他们忽然自己感觉到了要开放平台,这种一定是真的开放。反之,基本都是伪开放平台。

很多东西可以抄袭,sns可以抄袭,游戏可以抄袭,手机也可以山寨,但是有些是很难抄袭的,比如文化,比如信仰。

facebook是程序员的文化,是年轻人的文化,是美国的文化,所以是自由和开放的。自由和开放提供了无限的创新和商机。facebook从没有在一开始就清楚的知道朋友买卖会火,停车位会火,也不知道开放将如何带来收益。但是facebook知道这一切都将孕育在自由和开放中。

而伟大的top, 在开放伊始,就画好了蓝图,告诉isv你们要做这个,要做那个。就像伟大的renren希望isv都做游戏一样。

虽然他们很焦急的盼望开放平台繁荣,想尽了各种办法。可惜,他们最初开放的原始目的就是错误的-想赚钱。他们对待开发者的态度也是错的-把他们作为手而不是脑。

就像中国的文化一样,一切是自上而下的,美国的文化是自下而上的。

盛大的开放平台更加搞笑。先看人,每一个发言的人大概都觉得我们是民工,一遍遍的讲盛大多牛,有多少用户,盛大通行证都牛。把所有这些都当作新鲜事讲给我们这些宅男听。听得我必须看iphone网页来忍住不耐。然后我们提问,答案依然是盛大多大,盛大网络多牛。好吧。

再看SDO的合作方式,完全和“开放平台“没有关系。就是和我们10年前找公司合作没有区别,谈个接口,谈个分成,一起赚钱。如果这也叫做”开放平台“的话,那软件企业基本都是做”开放平台“的。

OK, 开放平台没有错。感谢facebook给我们提供了这么好的理念。但是,中国这样一种文化的国家里,淘宝和盛大这样一个强势文化的公司里,是很难做出和facebook一样的那种”开放平台“的。我们的开放平台,一定又是有中国特色的。也或许开放平台最终改变了我们的文化,也许吧。

希望中国式开放平台一路走好。

 

 

至于MochiMedia 这家三年前在美国就火起来的公司,为什么三年前做一样事情的公司在中国都没有火,这是个问题。而且中国有个魔咒就是外国公司在中国互联网一律败北。让我们拭目以待盛大能否挑战神话。

至于IGA, 多少人寄予了多少厚望了多少年,我们当年花了多少人力。可惜,有时候模式就是不能生搬硬套的。Forget about it 。

 

This article is created by 开心写作网

该文已同时发布到
spaces.live.com

May 4, 2010

花两年时间 做好一个产品

This article is created by 开心写作网

该文已同时发布到
devblog.ns-soft.com

February 12, 2010

google buzz

google推出了buzz

我说过,google在下一盘很大的棋, 见http://dev.ns-soft.com/index.php/p/18/
我看好google
可惜,zf在做一副很大的麻将,做成之日,也就是google退出中国之时,甚至更早。

This article is created by 开心写作网
December 15, 2009

OpenSocial Platform Open souce 实现

Community Engine                                                                                                           

http://communityengine.org/

ruby on rails 的 sns 插件,安装很方便,但是功能太简单了。好像不支持OpenSocial.

Apache Shindig                                                                                                                    

 http://incubator.apache.org/shindig/index.html

有java和php两个版本。Apache的东西总是让人觉得太重了。。。

lovdbyless                                                                                                                           

http://lovdbyless.com/

ms是国外的UCHOME, 基于ruby on rails的, 试用了一下,功能少的可怜。不过支持flickr和youtube 的嵌入,可惜这两个网站在中国都不能用。更大的问题是,完全不符合中国人试用sns的习惯。

Ruby on rails OpenSocial contaner                                                                                          

http://www.elctech.com/projects/opensocial-container-plugin-0-0-1

完全没看懂怎么用

pesta  shindig的.Net版                                                                                                       

http://code.google.com/p/pesta/

不使用微软的东西很多年

Raya OpenSocial 的.Net实现                                                                                            

http://www.codeplex.com/raya

不使用微软的东西很多年,在.Net出来之前

This article is created by 开心写作网
October 22, 2009

再谈阿里软件的失败

 在一个时代做的太好太大的,是佷难进入另一个时代的。

就像微软,SAP一样,他们内部有着这么多上个世纪的杰出的工程师,但是多年一个萝卜一个坑儿的漫长工作,或者说是多年成功带来的骄傲和自信,已经让他们相信他们那套东西是永远正确的,于是,他们在另一个时代都失败了。

淘宝,或者说阿里巴巴集团,有可能也会成为其中之一。

大公司最大的问题,就是一伙当年佷牛,但是如今已经高高在上,脱离了时代脱离了市场的老家伙,在指挥另一伙什么都不懂的学校刚毕业的新生。新人崇拜老人,老人崇拜自己的过去,所以,他们没有将来。

像做一个大的软件项目或者系统集成项目一样去做平台,以及平台上所有的应用,甚至引入软件开发测试流程,把开发者作为自己的vendor,作为自己的下家, 作为为自己工作的软件外包团队,这一切, 都是让人觉得如此的迂腐, 如此的两眼不闻窗外事以至于如此的封闭落后。

 

背景:

2007年1月8日  马云宣布投资1亿元的阿里软件成立,“三年内成为中国最出色的软件公司”

2009年7月21日 阿里软件总裁王涛辞职

2009年7月22日 阿里巴巴集团宣布阿里软件被阿里研究院合并

2009年9月1日  阿里巴巴在港交所宣布,将以2.08亿收购阿里软件所有业务。三年到了,马云言出必行。

 

关于SAAS怎么实现。

SAAS 只是是一种收钱的方法,但不是一种做法,阿里太直接的从字面去做了,结果变成了一个软件集成商,自己定需求,下面外包给isv, 上面用最生硬最直接的方法向商家收钱,平台变成鸡肋,甚至是影响用户体验的障碍。

未来的互联商务生态系里,“SAAS”, “ISV”, “需求”,“方向”,“标书”,“流程”。。。这些单词都会消失。SAAS将生存在一个巨大的,网状的,活跃的生态系统里。赚钱有可能就像链式裂变反应一样剧烈。一荣俱荣,但是缺少任何人都对生态没有影响。

买一件衣服,赚钱的可能有openid,提供帐户的google,提供广告的广告联盟,云计算提供商,商品搜索引擎提供商, 网店提供商,物流软件提供商,诸多企业管理软件提供商,支付平台等等, 如果你的网店又使用了图片或者video展示商品, 引用了口碑网站的评论, 或者是什么模拟试穿软件。。。

这一切,都需要自由与开放的互联,平台只是一个传说,因为每个人都会成为平台。opensource的平台软件的出现,将让网站像写一个页面那么简单的就可以支持开放api。 你认为自己很强大,你认为只有你可以做为平台,你认为平台上的app不需要自由的竞争 ,那你就会脱离这个网络,和这一切无关。

 

This article is created by 开心写作网
October 21, 2009

中国式开放平台,你需要的是手还是脑袋

看淘宝开放平台的“中国式开放”,你就会有这个感受。

不管是以前的alisoft, 还是新的TOP, 做法都是:

1. 替开发者指定软件需求

alisoft是以比较松散的方式在论坛中列出所谓“官方需求”,建议开发者进行这些需求的开发。

而TOP, 则是严格定义的了“开发方向”,并要求使用指定的"业务标签“,似乎TOP非常害怕开发者开发他不想要的app。

2. 直接和开发者竞争

alisoft直接参与各种“官需”和非关需的开发,并提供给商家和买家使用。总是让人觉得他的“开放平台”有抛砖引玉的嫌疑,看到好的需求,就自己做。

TOP最近和万网的合作也耐人寻味,应该说是联姻。因为TOP参股了万网。推出的是“淘里淘外”独立网店服务。这本来正是很多开发者想做的。从长远看,抛弃第三方app,靠TOP+万网,仍是不可能完全解决"独立网店“这个需求的深海的,所以,这是一个浪费的项目,而从短期看,”淘里淘外“是伤害第三方开发者感情的 。

 

从很多方面,不光是TOP,中国特色的开放平台总是让人觉得,你的目的是想要更多的”手“,而不是更多的”脑袋“。

所以,我一直称这种平台为”外包平台“,而不是”开放平台".

为什么要开放平台,我认为不是因为你缺少手,而是因为你缺少脑袋,也就是创新。

如果你把需求范围都定好了, 把你想得到的"开发方向“都规定好了, 只能开发这样的东西,不能开发别的东西,那你怎么繁荣呢? 我们知道,大多数成功的软件产品和服务都是多数人想不到的,而不是教科书或者网络评论里进场能看到的那些“业务方向”,是不是?如果你只允许平台开发你能想的到的应用,那“开放"最大的好处和目的就消失了, 你只是一个需要无数”手“而非”脑袋“,无数程序而非创意的”外包平台“

也许TOP的项目领导人,和我一样,是2000年前就如行IT的,所以,属于web1.0之前的那一代人(也许可以叫做前web时代霍者web负1.0时代),因为他们经历过很多大型项目,学习过很多业务流程,实施过很多开发流程,因此,把所以东西都当作了一个大项目来做。

学习一下google吧, 把所有项目化成小team小实验来做, 而不是自上而下的做一个超大项目。

学习一下facebook吧, 把更多的创新和思考的机会留给internet。

不让你的脑袋空出一点来,又怎么能去容纳别人的脑袋呢、

这才如何利用大众的脑袋的方法。

 

This article is created by 开心写作网
July 15, 2009

预测贴:sns的未来

我一直再想,sns究竟会发展成怎样。

我们应该做一个新的sns,还是做app 开发,还是做sns之间的互联?

做新的sns很容易,但是这已经不是一个分蛋糕的时代了,蛋糕已经分完,这是一个大鱼吃小鱼的时代,再做一个sns,实际是帮那些大的sns提供创意和用户。

做sns之间的互联,这个我想了很久。friendfeed那种feed的整合,没有应用,将来用户一定会离开的。如果用api互联,会要求用户登录不同的sns,不太可行。openid,或者统一到google帐户,这恐怕只有google 能做,放弃。

理想化的世界,是只有一个sns,所有人都在上面,所有应用都在上面,而且不断有新的应用出现,多好啊,用户也开心,开发者也开心。就像windows 时代一样,一种近似的大统一, 真正推动了时代的迅猛发展。

是的, 将来一定是往这个方向发展。只有一个sns,其他都微不足道。这个sns是谁呢?

我忽然吓了一跳,这不是google吗?google为什么推open social, 为什么推open id, 为什么又开放认证api,开发friendconnection。。。他做的所有事请,可以归结为

1.  打造统一的,自由的,开放的平台

2. 打破封闭sns之间的界线

google真的非常聪明。 他一直都没有直接去做sns,虽然他买了orkut,myspace, youtube,  但是,他一直在悄悄的做一件,为未来的”Global sns“做准备。开放认证的api, 开放friend connection的api,推open id , 推open social…

也就是说,他已经设计好了这个未来的“global sns“, 他现在悄悄的把每个条件都创造好,到时一切会水到渠成,这是最猛的做法。

而他做的第一件事,平台,这是未来sns存活的关键。

第二件事,是为他将来一统sns创造条件。

为什么平台是不是option,而是sns的生命?

将来的sns,将趋向于整合和淘汰

不会一直有新的sns出现, 因为用户已经很累了,现在用facebook,校内,51, 都忙不过来了, 绝大多数用户每天只会登录一个sns。将来的sns,将会只剩下几家最强的。

胜出的关键,就是应用。

因为现在的sns的朋友关系都是轻易可以取到,在另一个sns种重建这个关系非常容易。就像现在所有sns曾经做的一样:读取用户hotmail的联系人并邀请。因此,朋友的多少不是关键问题,用户在无论哪个sns上,都有同样的朋友关系在。关键的,就只剩下app了。

app决定了用户可以上来做什么,从而决定了用户来不来。

所以,为了的sns,需要的是平台, app的平台。只有一个自由开放的平台, 才可以有无限多,丰富而精彩的app出现, 其中的10%,会是最吸引人的应用。

开放平台是未来sns的生命 ,不是sns的option

现在的那些虽然“开放”了平台, 但是思路仍然是停留在“做sns网站”, 而不是做平台上的,都将被淘汰。

(道理再简单不过, 用户以前来你网站,也就是因为你网站的内容, 什么内容呢,不外乎那些用户之间的互动应用对不对?但一个封闭世界, 一个少数人创造和维护的世界, 怎么有可能会比一个开放的世界的内容多呢?怎么会比一个开放的世界更能保持发展的活力呢?那些依仗着自己有巨大用户群, 而闭门造车的sns,必将被淘汰。他们的应用,内容,发展活力,都必将枯竭)

那些急功近利, 千方百计左右和指挥app开发,想走“精品app”路线的sns,必将被淘汰。

(很简单的道理,精品不是想做就能做出来的。 “精品”一定是有概率的,一定只有20%左右(八二定律),只有出了10个普通的app,才可能有一两个精品。愚昧而天真的人,才会期望每个app都是精品)
于是, 我们只剩下做应用一条路了。

统一世界和打造平台, 永远是巨无霸们的责任,也只有他们能做。我们要做的是

1. 一定要放弃做sns,不可能同时做好两件事,而且前面也证明了, sns将统一成很少几个。 除非你有信心和google、facebook竞争,否则就不要浪费时间了

2. 跟对人,做对事。 也就是,跟对平台, 做好应用。

Ebay 将为第三方开发者提供AppStore

http://www.blippitt.com/ebay-allows-third-party-apps-from-developers

eBay has opened its platform to developers, allowing third-party applications to be added to the site.  Later this year, probably in the summer, the auction site will open an app store filled with widgets and applications built by outside developers.

Apps on eBay could eventually help sellers keep tabs on their shipping processes, help them gather market data based on user activity on their eBay sites, and help them provide better service.

UPS is already capitalizing on this beta, allowing sellers to embed their WorldShip widget on their eBay pages.  This lets clients manage shipping preferences from within eBay itself.

For monetization purposes, developers will be able to charge a subscription fee for their applications, so long as they meet eBay’s standards of quality.  To ensure that these standards are met, eBay charges developers $75 to launch each application and ensure it adds value for users.

Developers will also have the ability integrate PayPal into their products.

UPS在ebay上的物流应用

快递公司UPS目前已开发了一款eBay第三方应用。用户可以将这款名为“WorldShip”的应用嵌入到eBay页面中,从而对出货的优先级进行实时管理。UPS的这款应用是收费的,eBay将获得应用程序销售收入的20%。