LooPo @ 12 April 2009, “3 Comments”

LooPo乐铺

从开始策划到上线,已经近半年时间了。怎一个“累”字。 接下来就要安下心来整理开源项目的代码了。

Tags:
Internet, IT, LooPo @ 02 November 2008, “2 Comments”

虽然早在去年初,乐铺就已经支持 OpenID 登录方式了,当时还为 OpenID 的中文名拉过赞助…… 不过对于大部分人而言,可能对 OpenID 还比较陌生。从国内寥寥无几支持 OpenID 的网站就可以看得出来。

我坚信这种情况不会持续太久了,前段时间 Yahoo! 率先支持了 OpenID 协议,允许在支持 OpenID 的网站上使用 Yahoo! 帐号登录。上月末 Google 也加入了支持行列(虽然支持的很烂)。相信随着两大网络巨头的加入,大家对 OpenID 的应用会越来越熟悉了吧。

抽了一个晚上时间,把乐铺原来简陋的 OpenID 功能完善了一下,现在已经可以允许一个帐号同时绑定多个 OpenID 了,并且加入了通过 Google 帐号注册的功能(Yahoo! 的 Api 没找到返回 Email 的地方,所以不能注册,只能绑定)。希望能对国内的 OpenID 推动起到一些作用。欢迎大家亲自去体验

对了,还有个秘密透漏下:凡是通过 OpenID 注册的帐号,会自动获得 N 元的折扣券一张哦,N 是多少?对不起,我也不知道……


Linux, Programming @ 30 October 2008, “1 Comment”

lifesinger 的 blog 上看到淘宝内部使用的 TBCompressor,自己还傻乎乎的留言问有没有 for Linux 版本的。

YUI Compressor 本身就是一个 jar 包,可以方便的跨平台运行,不过每次都要打开控制台来运行,也有些不爽,参考了 TBCompressor,作了一个 nautilus-script,这下就可以直接对 js 和 css 文件点击右键进行操作了。

效果截图如下:

下载地址MinJS

使用方法:下载后的文件放到 ~/.gnome2/nautilus-scripts 目录下即可,需要先打开文件配置你的 YUI Compressor jar 文件所在的路径。

PHP @ 24 July 2008, “7 Comments”

PHPE好久没更新了”

每每听到热心的网友们和我说类似的话,心里就很不是滋味。

一直有想把 PHPE 重新发展的计划,也一直在给自己找借口。当时 PHPE 创建的时候,动机是那么的简单,现在条件比之前充足的多,却一直在逃避。昨天难得能静下心来思考。个人的能力是有限的,每个人有每个人的梦想,小团队有小团队的梦想。

希望国内所有 PHP 爱好者,所有关注过 PHPE 的朋友们,能一起为了梦想,加入我们的建设,为国内的 PHP 发展出份力量。

目标:尽可能的使用开源工具(我知道大家时间都很有限,花在该花的地方吧),搭建新的PHP学习、协作、讨论平台及线下交流平台

延续梦想,请关注 PHPE 重建计划,期待电脑前你的意见~ 🙂

讨论请移步http://club.phpe.net/index.php?s=&act=ST&f=7&t=13501&st=0

Tags:
IT, PHP @ 19 July 2008, “No Comments”

中国股市:http://apps.facebook.com/china-stock/

欢迎试用,并提出宝贵意见。 🙂

几个月前就有开发这个应用的想法了,不过一直没动手,这周差不多花了三个晚上的空余时间才搞定。很久没写过代码,手有点生了,还有就是在 FBML 的熟悉过程中花了太多的时间,稍候会再总结一下开发方面的经验。

Facebook 已经推出中文版了,什么时候开发者 wiki 也能中文化就好了, 目前上面中文的应用还很少,还需要国内的开发者一起努力。

Tags: ,
Linux, Programming @ 25 October 2007, “No Comments”

公司的版本库由 CVS 转到了 SVN,转的过程就不说了,Google 上一搜一把。 为了实时看到 SVN 版本库的状态,在网上找了一个很好用的工具叫 StatSVN,会把当前 SVN 库的状态用数据和图表的方式展现出来,可以按开发者、目录、commit log 分别展示,很是强大。 在计划写个脚本每天凌晨自动生成前一年的报表的时候,碰到一些麻烦。刚开始的脚本是这样的:

#!/bin/bash
(/usr/bin/svn update /root/SVN)
(/usr/bin/svn log /root/SVN --xml -v > /root/SVN/svn.log)
(/usr/local/jdk/jre/bin/java -jar /root/statsvn-0.3.1/statsvn.jar /root/SVN/svn.log /root/SVN/ -out
put-dir /usr/local/apache2/htdocs/SVN/svnstat/ -title CNFOL -threads 50 -mantis http://xxx.com/bugs
/ -no-developer admin -include **/*.php:**/*.java:**/*.html:**/*.htm:**/*.js:**/*.css:**/*
.shtml:**/*.xml:**/*.sql:**/*.jsp:**/*.do:**/*.cfg)
(/bin/rm -f /root/SVN/svn.log)

第二天发现脚本没有自动运行,再尝试着把所有和 PATH 有关的环境变量都加进去,还是不行。后来在 winger 的协助下,通过记录日志的方式,把脚本的错误输出都记录了下来,发现出错的脚本在 /usr/local/jdk/jre/bin/java -jar /root/statsvn-0.3.1/statsvn.jar 这行,错误信息如下:

Parsing SVN log '/root/SVN/svn.log' exclude pattern ''
Logfile parsing failed.
svn log: svn info: XML document structures must start and end within the same entity.

奇怪的是,在控制台下手工运行都没问题,放到脚本里面就报错。看起来还是环境变量有问题,最终还是 winger 帮忙发现了问题,只要在脚本的头部加入

export LANG=en_US.UTF-8

就一切正常了。

PHP, Programming @ 10 October 2007, “3 Comments”

插件说明
PressLine 用来根据你的 blog 内容生成一个时间线的图表出来,可以通过鼠标拖动查看,效果就像 GoogleMap 那样。点击这里 看本站的演示。

安装步骤

  1. 解压插件安装包,把整个 `pressline` 目录上传到你的 `/wp-content/plugins/` 目录下;
  2. 更改刚才上传的 `pressline` 目录权限为 777(Windows服务器用户可以跳过这步);
  3. 进入你的 Blog 后台,在 Plugins 菜单下激活 `PressLine` 插件;
  4. 上传插件包中的 `pressline.tpl.php` 文件到你目前在用的模板目录下;
  5. 建立一个新页面,命名为 `PressLine`,页面模板选择 `PressLine`,内容保持为空,发布该页面;
  6. 完成,在前台点击你新建立的 PressLine 页面即可看到效果。

Download:

Description:
A simple plugin used to display your blog entries on a ajax timeline. Just like the googlemaps.

Feature List:

  • This plugins base on the time line library called <TimeLine> at http://simile.mit.edu/timeline/
  • Support for WordPress 1.5, 2.0, 2.1, 2.2 and 2.3
  • Caches the output

read more »

先是看了 桑林志 上的介绍,第一眼就被这个效果吸引了,再看到 mulberry 希望有人做成 wordpress 插件的形式,于是偶的第一个 woredpress 插件就这样诞生了~ hoho~

效果可以 点这里 看到,在发布文章和更新文章的时候,数据文件会被自动更新,是在 mulberry 的代码基础上进行修改的。没啥技术含量。

经过 mulberry 的同意,可以让我继续用 PressLine 这个名称,喜欢的朋友可以 点击这里 进入下载页面。

稍候我会为这个插件专门做了一个页面(页面见此)。 使用过程中有什么意见请在这里留言,我会及时更新的。:)

== Feature List ==
* This plugins base on the time line library called <TimeLine> at http://simile.mit.edu/timeline/
* Support for WordPress 1.5, 2.0, 2.1, 2.2 and 2.3
* Caches the output

Database, PHP @ 17 August 2007, “2 Comments”

公司的数据库一直在用 mysql.4.0.x 的版本,用了几年了,不过现在连 mysql 官方都停止对 4.0.x 版本的支持了,升级看起来是大势所趋。搜索了一些这方面的文章,大家的作法不一,网上的文章也有很多错误的地方。

总结了一下,由于 mysql 4.0.x 的库都是 latin1 编码的,所以主要问题还是出现在编码转换上。

废话少说,下面是经测试可用的转换步骤,测试版本为

mysql4.0.26->mysql5.0.45-community

1.latin1->latin1 原来是 latin1 字符集的数据库,升级后保留 latin1 编码;
个人不推荐这种方式,如果数据库中有包含中文字符的话,还是换成gbk或者utf8编码比较好。

这种方式下,可以直接把 datadir copy 到新的mysql 的data 目录即可,如果数据库中有包含中文,可能用 phpmyadmin 会看不到正常的结果,不用担心,用其它客户端连接的时候,都是可以正常输入和输出的,注意在用 php 连的时候,不需要加 set names xxx 字样;

2.latin1->gbk 原来是 latin1,升级后是 gbk
两种方法:
1) 修改 my.cnf,在 [mysqld] 中加入

default-character-set=gbk

后重启 mysql 服务,然后就可以直接把 datadir copy 过来了,前提是整个库中都是 gbk 编码的库的时候才建议这样,而且copy 过来后,my.cnf中的那行 default-character-set 不能再动了;
2) 手工在新服务器上建立需要的库,字符集选择 gbk,然后在旧服务器上先用 mysqldump 导出为 sql 文件,在导出的 sql 文件的起始位置添加 set names gbk; 在服务器上用以下语句导入:

mysql -u xxx [database] < xxx.sql

这种方式转换后,php 连接数据库后需要先执行 set names gbk;

3.latin1->utf8 原来是 latin1,升级后是 utf8

手工在新服务器上建立需要的库,字符集选择 utf8_bin,然后在旧服务器上先用 mysqldump 导出为 sql 文件,在导出的 sql 文件的起始位置添加 set names gbk; 在服务器上用下面的语句导入:

mysql --default-character-set=utf8 -u xxx [database] < xxx.sql

这种方式转换后,php 连接数据库后需要先执行 set names utf8;

另外有一点要注意的,4.1 版本开始,mysql 的用户密码算法有改变,php5 才支持这种新的验证方式,如果你还是使用 php4,可以在 my.cnf 的 [mysqld] 中多加一句:

old_password = 1

Database @ 20 July 2007, “No Comments”

Oracle自带的 EXP 命令,可以很方便的从Oracle库中导出所需要的数据。基本语法可以通过 exp help=y 查看。

今天在使用的时候碰到一个问题,需要导出指定库中的前200条记录,在网上搜索了一下,大部分文章都是这样说的:
exp scott/tiger TABLES=(emp,bonus) QUERY="WHERE job='SALESMAN' and sal<1600"

于是我试着这样做
exp scott/tiger TABLES=(emp,bonus) QUERY="WHERE rownum<201"

实际测试的时候,发现老是报 LRM-00112: multiple values not allowed for parameter 'query' 的错误。再后来发现引号是需要转义的,网上那么多文章都错了……

下面是正确的写法:

windows下的写法:
C:\exp>exp userid=tkyte/tkyte tables=t query="""where object_id < 5000""" linux下的写法: $ exp userid=/ tables=t query=\"where object_id \< 5000\"