存档

2010年6月 的存档

国内SNS平台 开放的API

2010年6月24日 1 条评论

       国外的Facebook开放API已经很久了,Facebook之所以很风靡,多半归功于F8平台。简单地说,F8就是Facebook和第三方应用中间的桥梁,用户可以在不离开Facebook的情况下,使用第三方网站的功能。比如说,现在Facebook的用户可以看 到自己的好友在看什么书、听什么歌等,而这一切都不用Facebook自己来开发。

今天发现校内网的APP开放平台可以用了,也就是说每个像我一样的大学生每天都必登的校 内网开始正式开放了API。校内网(xiaonei.com)成立于2005年12月,是中国最早的校园SNS社区。2006年10月,千橡公司收购校内 网,同年底,完成了千橡公司 5Q校园网与校内网的合并,并正式命名为校内网,域名为:http://www.xiaonei.com。 校内网成为中国大学生市场具有垄断地位的校园网站,每天活跃人数众多。现在校内网正式开放了API,又一次走在了所有中国SNS的前列!

校 内网已经敞开大门,欢迎所有对校内网平台感兴趣的第三方公司与应用开发爱好者个人前来参加。有兴趣的开发应用同学可以加入校内网上的以下2个群:校内 API开放论坛以及xCube。新入门的同学需要首先添加"开发者"这个APP应用。然后你的页面左边便会多出个”开发者"的应用:具体信息详见校内网开 发中心,或校内目前开放的API的文档。

如果说,校内网是靠模仿Facebook起家的话,那么现在才是真正走出了一条自己的路。随着应 用数量的逐渐增加,我想校内网会不断做出自己的特色。千橡CEO陈一舟称,“API平台也将给用户带来无穷的网络乐趣,有效增加用户粘着度。我们欢迎更多 第三方公司加入到校内网的开放平台中来,实现创业梦想、实现共赢。”  

2008年上半年,中国互联网的发展有几件事值得关注:一、视频 行业的牌照问题;二、各大主要互联网公司相续推出开放平台;三、口啤与炒作的融合性。Facebook应该说是开放平台的先行者了,Facebook的成 功就是得益于开放平台及API应用。对于已经在中国推出中文的Facebook,我们不应该把它给忘记。网址:http://developers.facebook.com/

国内几个已经推出相关开放平台的公司及产品:

1、搜狐博客・开放平台
以博客作为个人应用平台,由开发者及搜狐 爱好者开发相关博客应用小程序;由搜狐推出相关文档说明及参数。
网址:http://ow.blog.sohu.com/

2、谷歌 OpenSocial
通用 API 意味着,您仅需较少的学习,便可为多个网站进行构建。目前,OpenSocial由网络社区的广大成员联合开发。最终目标是,对于所有社交网站都能够执行 API并托管第三方社交应用程序。许多网站在执行OpenSocial,包括Engage.com、Friendster、hi5、Hyves、imeem、 LinkedIn、MySpace、Ning、Oracle、 orkut、Plaxo、Salesforce.com、SixApart、Tianji、Viadeo 和 XING、天涯。
网址:http://code.google.com/apis/opensocial/

3、淘宝开放 平台
淘宝开放平台项目(TOP: taobao open platform)是淘宝(中国)软件公司面向3rdapp开发者,提供API接口和相关开发环境的平台。包括:
API接口规范和定义及其规范
API sandbox 在线开发测试环境
网 址:http://www.taobao.com/theme/tao_source/

4、天涯开放 平台
由Google Opensocial提供技术服务的天涯开放平台,主要整合商家;如:7天酒店。
网址:http://my.tianya.cn

5、 校内网开放平台

校内网将于7月8日正式启动校内开放平台插件功能大赛。现邀请三方公司及个人开发爱好者一起加入校内开放平台插件开发,共同探索平 台开放之路。
网址:http://www.xiaonei.com/developerIndex.jsp

6、 聚友(Myspace)开放平台
MySpace聚友开发者平台(MySpace Developer Platform简称MDP)是一个面向开发者的开放平台,开发者可以在上面开发并且发布符合OpenSocial规范的应用程序,比如Widget、Gadget。
网 址:http://developer.myspace.cn/community/

7、 51.com开放平台

51开放平台API是采用REST基础的接口规范。所有的51开放平台API都是通过HTTP的GET或者POST请求来实 现调用的。有了这些API,你就可以通过你的应用程序获得51.com社交网络的用户资料、好友关系、照片等几乎所有可开放的数据。
网址:http://sandbox.developers.51.com/index.php

8、康 盛uchome “我的空间”
UCenterHome使用网站的开放平台应用开发标准(API),Manyou将有机会帮助您与数万网站之间建立合作的纽带,为这些网站上的网民提供个性化的互联网应 用。
网址:http://uchome.developer.manyou.com/uchome/

9、 雅虎开发者社区
NCP是中国雅虎针对站长天下等产品推出的开放式的web应用/模块开发平台。
开发者可以在该平台开发基于Web的模块, 即NCP扩展应用。
网址:http://dev.cn.yahoo.com/

10、豆瓣API

豆瓣API是豆瓣为 第三方开发人员提供的编程接口。利用豆瓣API,你可以在你的网站或程序中使用豆瓣的数据和功能。

11、新浪魔方
新浪魔方通过组 件化的功能组合,灵活方便地满足不同用户的个性需求
网址:http://mofun.sina.com.cn/

一项新技 术的发展,需要更多的参与者,而不是服务的提供者。以免出现,供大于求的局面;反尔会把这些新的应用推向无价值的边缘。“开放”是目前整个互联网都关注的 一个发展趋势,“开放”不仅意谓着“分享”,更将意谓着“共赢”。

分类: 其他 标签:

VSFtp虚拟账号配置与维护

2010年6月8日 没有评论

安装vsftp时没有db_load这个命令
该命令需要 db4-utils 的包
正常情况下,执行

即可安装
其它服务器上,则要到安装光盘上找,或者去网上下载

  为vsftp建立虚拟用户

在RedHat AS里,是自带了vsftpd为系统提供了一个ftp服务,但在实际应用中根据自己的需要还是要做不少的配置。
  我们知道,在建立vsftpd用户时,我们一般是在linux下建立用户useradd的方式来访问ftp,但有时我们只想提供ftp服务,而避免用户用ftp的帐号去登录linux,采用一般的方式只能是限制该用户的访问权限,但还是避免不了用户登录进linux系统,所以比较好的方法是用vsftpd的虚拟用户(virtual users)。
配置的步骤如下
  1) Create the virtual users database.(建立虚拟用户数据库)
  大家看一下logins.txt文件的格式,它的内容是:
  tom
  foo
  fred
  bar
  意思是说用户tom的密码是foo,用户fred的密码是bar,这就是虚拟用户的信息,大家可以按
  <用户名>
  <密 码>
  的格式来建立自己的虚拟用户群。
  然后以root用户登录系统,建立用户数据库:
  db_load -T -t hash -f logins.txt /etc/vsftpd_login.db
  该命令会建立一个文件 /etc/vsftpd_login.db ,同时改变它的文件属性:
  chmod 600 /etc/vsftpd_login.db
  2) Create a PAM file which uses your new database.(建立PAM文件,告诉系统你要使用自己的数据库了)
  看看另一个文件vsftpd.pam,它有两行内容:
  auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login
  account required /lib/security/pam_userdb.so db=/etc/vsftpd_login
  这是告诉系统,我将用新的用户授权库了。ok,把这个文件copy到/etc/pam.d/ftp:
  cp vsftpd.pam /etc/pam.d/ftp
  3) Set up the location of the files for the virtual users(为虚拟用户建立文件夹)
  useradd -d /home/ftpsite virtual
  ls -ld /home/ftpsite
  (会得到以下输出):
  drwx—— 3 virtual virtual 4096 Jul 30 00:39 /home/ftpsite
然后:
  cp /etc/hosts /home/ftpsite
  chown virtual.virtual /home/ftpsite/hosts
  4)修改vsftpd.conf文件
  文件在/etc/vsftpd/vsftpd.conf,在后面加上:
  anonymous_enable=NO
  local_enable=YES
  write_enable=NO (注:这里可按需求设置)
  anon_upload_enable=NO
  anon_mkdir_write_enable=NO
  anon_other_write_enable=NO
  chroot_local_user=YES
  guest_enable=YES
  guest_username=virtual
  user_config_dir=/etc/vsftpd_user_conf

  5)建立用户的权限
  先mkdir /etc/vsftpd_user_conf
  //开放tom和fred的读权限
  #echo "anon_world_readable_only=NO">/etc/vsftpd_user_conf/tom
  #echo "anon_world_readable_only=NO">/etc/vsftpd_user_conf/fred
这样就可以用读权限了,能看到目录和文件。
  6)重启vsftpd
  service vsftpd restart
  ok,用tom用户登录ftp看看,是不是已经可以了

特别注意
1。如果要删除掉一个虚拟用户,先在logins.txt中删除用户对应的用户名和密码,然后删除vsftpd_login.db,重新运行db_load -T -t hash -f logins.txt /etc/vsftpd_login.db
2。如果只是要修改用户的密码,只需重新运行db_load就可以
3。如果要改变用户的其它配置,只需修改用户的配置文件

原文:http://tristan1.javaeye.com/blog/372377

引用
rpm -qa|grep db4

会有3个包

引用
db4-devel-4.3.29-9.fc6
db4-utils-4.3.29-9.fc6
db4-4.3.29-9.fc6

如果缺少,则安装相应的包,rpm安装即可

centos上可以通过

引用
yum install db4-utils
分类: Linux 标签:

mysql中GROUP BY结合GROUP_CONCAT的使用

2010年6月1日 没有评论

我们知道,group by可以将sql查询结果按照group by后面列进行分类显示。比如:

  1. select columnA,columnB from table group by columnA,columnB  

      则查询结果将按照columnA和columnB分类显示。没有显示在group by中的列不能直接作为返回列放在sql语句中,比如如下sql就是不正确的

  1. select columnA,columnC from table group by columnA  

     由于columnC不在group by的范围之类,所以这样写是不对的,所幸的是,group by支持一些sql 函数的使用,比如SUM,AVG,COUNT等等。这些都比较常用,今天我要记录下的是这个不常用的GROUP_CONCAT。

       有一个需求,需要用到group by 才能实现,可是,我同是还需要返回某列的所有结果,(注意,不是做avg,sum等操作,我要枚举这列的所有结果),那么就可以用到 GROUP_CONCAT。

举个例子:

我有一张数据库表结构如下:

列名 含义
year 年份
month 月份
volumn 期数

该表存储了某杂志的年份,月份和期数。如果需求对该表内容作如下显示:

2010年12月 第1期第2期第3期 第4期
2010年11月 第1期第2期第3期 第4期第5期
2010年10月 第1期第2期第3期 第4期
2010年9月 第1期第2期第3期 第4期第5期
2010年8月 第1期第2期第3期 第4期

sql该怎么写呢?按照年份和月份做group by?然后按照年份和月份做倒叙排列?

  1. select year,month from magazine group by year,month order by year desc,month desc  

   那具体的期数信息就丢了?能不能做group by的时候,还能返回在某个年份year和月份month分组下的所有期数volumn信息?(某个年份+月份下的期数信息是不固定的,只能通过数据库查询才能获得)

该是GROUP_CONCAT上阵的时候了。

  1. select year,month GROUP_CONCAT(volumn) from magazine group by year,month order by year desc, month desc  

这样,查询的返回结果类似于:

year month GROUP_CONCAT(volumn)
2010 12 1,2,3,4
2010 11 1,2,3,4,5

不错吧?

      还有点问题需要补充下,就是作为GROUP_CONCAT函数参数的字段,如过返回值为string,则上面的sql语句已经没有问题,但是如果是 number,则返回的GROUP_CONCAT(volumn)值为BLOB类型(其实上面例子返回的就是一个blob类型,我只是为了演示的方便),需要做一下转化。

  1. select year,month GROUP_CONCAT(conv( oct( volumn ) , 8, 10 )) from magazine group by year,month order by year desc, month desc  

      上面的sql对volumn做了一个从8进制到10进制的转换,这样返回的就是一个字符串了。

mysql默认会以‘,’来分隔多的值,如果想用其他的分隔符来分隔返回结果,比如期望返回值是这样的:1|2|3|4

这可以用SEPARATOR来搞定。

  1. select year,month GROUP_CONCAT(conv( oct( volumn ) , 8, 10 ) SEPARATOR ‘|’) from magazine group by year,month order by year desc, month desc   

更牛的是,你甚至可以对返回的volumn进行排序!!

  1. select year,month GROUP_CONCAT(conv( oct( volumn ) , 8, 10 ) order by volumn desc SEPARATOR ‘|’) from magazine group by year,month order by year desc, month desc  

这个不常用的东东,还是比较好用的。

引用:http://javeye.javaeye.com/blog/558093

分类: MySQL 标签: