九王爷

九王爷的府邸


  • 首页

  • 分类

  • 归档

  • 标签

20 有用的的PHP库

发表于 2010-11-12 | 分类于 Language

下面是一些非常有用的PHP类库,相信一定可以为你的WEB开发提供更好和更为快速的方法。

图表库
下面的类库可以让你很简的创建复杂的图表和图片。当然,它们需要GD库的支持。

pChart – 一个可以创建统计图的库。
Libchart – 这也是一个简单的统计图库。
JpGraph – 一个面向对象的图片创建类。
Open Flash Chart – 这是一个基于Flash的统计图。

RSS 解析
解释RSS并是一件很单调的事情,不过幸好你有下面的类库可以帮助你方便地读取RSS的Feed。

MagpieRSS – 开源的PHP版RSS解析器,据说功能强大,未验证。
SimplePie – 这是一个非常快速,而且易用的RSS和Atom 解析库。
缩略图生成
phpThumb – 功能很强大,如何强大还是自己去体会吧。
支付
你的网站需要处理支付方面的事情?需要一个和支付网关的程序?下面这个程序可以帮到你。

PHP Payment Library – 支持Paypal, Authorize.net 和2Checkout (2CO)
OpenID
PHP-OpenID – 支持OpenID的一个PHP库。OpenID是帮助你使用相同的用户名和口令登录不同的网站的一种解决方案。如果你对OpenID不熟悉的话,你可以到这里看看:http://openid.net.cn/
数据为抽象/对象关系映射ORM
ADOdb – 数据库抽象
Doctrine – 对象关系映射Object relational mapper (ORM) ,需要 PHP 5.2.3+ 版本,一个非常强大的database abstraction layer (DBAL).
Propel – 对象关系映射框架- PHP5
Outlet – 也是关于对象关系映射的一个工具。
注:对象关系映射(Object Relational Mapping,简称ORM)是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。 简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。本质上就是将数据从一种形式转换到另外一种形式。 这也同时暗示者额外的执行开销;然而,如果ORM作为一种中间件实现,则会有很多机会做优化,而这些在手写的持久层并不存在。 更重要的是用于控制转换的元数据需要提供和管理;但是同样,这些花费要比维护手写的方案要少;而且就算是遵守ODMG规范的对象数据库依然需要类级别的元数据。

PDF 生成器
FPDF – 这量一个可以让你生成PDF的纯PHP类库。
Excel 相关
你的站点需要生成Excel?没有问题,下面这两个类库可以让你轻松做到这一点。

php-excel – 这是一个非常简单的Excel文件生成类。
PHP Excel Reader – 可以解析并读取XLS文件中的数据。
E-Mail 相关
不喜欢PHP的mail函数?觉得不够强大?下面的PHP邮件相关的库绝对不会让你失望。

Swift Mailer – 免费的超多功能的PHP邮件库。
PHPMailer - 超强大的邮件发送类。
单元测试
如果你在使用测试驱动的方法开发你的程序,下面的类库和框架绝你能帮助你的开发。

SimpleTest – 一个PHP的单元测试和网页测试的框架。
PHPUnit – 来自xUnit 家族,提供一个框架可以让你方便地进行单元测试的案例开发。并可非常容易地分析其测试结果。

20 你应该知道的PHP库

发表于 2010-11-12 | 分类于 Uncategorized

办公OS选择

发表于 2010-11-08 | 分类于 Uncategorized

最近准备选一个办公使用的OS,需要又以下特点:

  • 能共享文件,且可以指定权限
  • 开源
  • PHP 首选,linux 平台
  • 二次开发简便

选择对比了以下软体:

  • KnowledgeTree Document Management

  • [试用过程]本来是最看好这个的,因为界面漂亮,功能也还行,并且有商业公司的支持。但 因为要求是php版本号5.0~5.2,我的PHP版本是5.3,安装好后也老是出错,所以只好含泪抛弃。
    * Owl Intranet Knowledgebase

  • [适用过程]

  • [试用结果]
  • [评价]
    * Simple Groupware Software

  • [适用过程]

  • [试用结果]
  • [评价]
  • Omnistar Document Management Software

  • [适用过程]在线demo

  • [试用结果]收费,功能单一,简单。
  • [评价]
  • ProjectPier

  • [试用过程] 很不错的程序,简单大气,安装也简单。但功能偏重于项目管理(软件),且文件共享功能简单,所以不适用于我的要求

为何你应该假装自己是一个电脑白痴

发表于 2010-10-25 | 分类于 Other

MinGW安装与使用简介

发表于 2010-09-22 | 分类于 Uncategorized

安装方法:其实很简单,如下:

Step one: 到这里下载MinGW,网速慢的话可能打不开,是个外国网站(上面的网站镜像可能出了点问题,有的东西下载下来却不能用,等我有空我会给大家提供下载)。

Step two :双击安装包,一切按默认设置,一路的“下一步”以后就能搞定。

Step three:环境变量可能会在安装过程中自动设置好,在cmd中输入gcc测试一下,假如显示 gcc: no input file ,则安装已成功。

否则,自己把c:/mingw/bin的目录手动加到环境变量中,方法如下(很简单的哟,没必要害怕嘛)

1.右键“我的电脑”==>属性==>“高级”==>“环境变量”

2.在用户变量(注意不是系统变量)中,假如有path变量,就选择“编辑”,在原先值后面加个分号,在把MinGW的bin目录加上就好了。假如没有path就自己“新建”一个,再把MinGW的bin目录加上。

3.测试方法同上,over。

这里是英文用法,高手请看,下面是我的翻译,仅供参考,翻译不得当的地方请不吝指出。

使用MinGW进行编译和创建(应有程序)

怎样创建一个终端应用程序?

C语言代码编译:

这里有一个例子。下面是一个简单的c语言程序的代码示例,请把它剪切并粘贴到一个叫作hello.c的文件中试试看:

#include <stdio.h>
int main(int argc, char **argv)
{
printf (“Hello World!”);
return (0);
}

假如你想从hello.c生成一个在终端模式下的可执行文件hello.exe.试一下下面的方法:

gcc -c hello.c
这个命令把hello.c编译成一个目标文件hello.o,然后用下面的方法:
gcc -o hello hello.o
这个命令从hello.o文件生成一个可执行的hello.exe文件。事实上,作为一种选择,你可以使用下面的命令把编译和链接放到一步中完成:
gcc -o hello hello.c

C++语言代码编译:

下面是一个简单的c++程序的代码示例,复制并粘贴到一个叫hello.cpp的文件中试试看:

#include <iostream>
int main(int argc, char **argv)
{
std::cout << “C++ Hello World! 感谢” << std::endl;
return (0);
}

对于c++程序来说,使用下面的命令来编译和链接:
g++ -c hello.cpp
g++ -o hello hello.o

(同样你可以把他们合并到一步中完成)

windows应用程序编译:

这里有一个例子。下面是一个简单的windows应用程序的代码示例,请把它复制并粘贴到一个叫作winhello.c的文件中试试看 :

#include <windows.h>
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)
{
MessageBox (NULL, “Hello”, “Hello Demo”, MB_OK);
return (0);
}

假如你想从一个叫winhello.c的c语言源文件创建一个从窗体执行的(Windows executable)winhello.exe,请试用下列命令:

gcc -c winhello.c
首先产生了目标文件winhello.o,然后用:

gcc -o winhello winhello.o -mwindows

这会从hello.o创建一个可执行的hello.exe, -mwindows用来说明要创建的是Windows应用程序而非从终端执行的程序,它确保正确的Windows库被链接。

要同时得到一个终端屏幕和标准的Windows应用程序,在

-mwindows标志后面增加一个-mconsole标志(flag)

假如你有新的资源(一个后缀名为.rc的文件)也要添加到你的程序中,你需要编译这些资源文件(resource file)和别的一些资源文件,并且在链接时包含进这些编译过的资源文件以创建你的程序,下面的例子将告诉你怎样编译和链接一个叫做resfile.rc 的资源文件:
windres -o resfile.o resfile.rc
gcc -o winhello winhello.o resfile.o -mwindows

创建DLL编译:

这里有个例子。把下面的代码复制并粘贴到一个叫dllfct.h的文件中:

#ifdef BUILD_DLL // the dll exports

#define EXPORT __declspec(dllexport)

#else // the exe imports

#define EXPORT __declspec(dllimport)

#endif // function to be imported/exported
EXPORT void tstfunc (void);
把下面的代码复制并粘贴到一个叫dllfct.c的文件中:

#include <stdio.h>

#include “dllfct.h”
EXPORT void tstfunc (void)
{
printf (“DLL Hello World!”);
}
把下面的代码复制并粘贴到一个叫dllHello.c的文件中:

#include “dllfct.h”
int main ()
{
tstfunc ();
return (0);
}

为了创建一个dll和一个使用他的程序,试试下面的命令:

gcc -c dllHello.c
gcc -c -DBUILD_DLL dllfct.c
gcc -shared -o tst.dll -Wl,–out-implib,libtstdll.a dllfct.o
gcc -o dllHello.exe dllHello.o -L./ -ltstdll
注:蓝色字体如果DLL更改过了,只要重新编辑DLL即可,dllHello不用重新编译。
比如我们修改dllfct.c文件为

#include <stdio.h>

#include “dllfct.h”
EXPORT void tstfunc (void)
{
printf (“DLL Hello World! 感谢”);
}
我们执行下面的命令,重新生成 tst.dll
gcc -c -DBUILD_DLL dllfct.c
gcc -shared -o tst.dll -Wl,–out-implib,libtstdll.a dllfct.o
下面我们执行:dllHello.exe程序
那么程序将显示:DLL Hello World! 感谢

非常实用的sql语句

发表于 2010-09-19 | 分类于 Uncategorized

[1、说明:复制表(只复制结构,源表名:a 新表名:b) (Access可用)

](http://selboo.com.cn/post/823/)

select  into b from a where 1 <> 1
select top 0
into b from a


2、说明:拷贝表(拷贝数据,源表名:a 目标表名:b) (Access可用)

insert into b(a, b, c) select d,e,f from b;


3、说明:跨数据库之间表的拷贝(具体数据使用绝对路径) (Access可用)

insert into b(a, b, c) select d,e,f from b in ‘具体数据库’ where 条件
例子:..from b in ‘ “&Server.MapPath( “. “)& “\data.mdb “ & “ ‘ where..
/>

4、说明:子查询(表名1:a 表名2:b)

select a,b,c from a where a IN (select d from b )
或者: select a,b,c from a where a IN (1,2,3)


5、说明:显示文章、提交人和最后回复时间

select a.title,a.username,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b


6、说明:外连接查询(表名1:a 表名2:b)

select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c

7、说明:在线视图查询(表名1:a )

select * from (SELECT a,b,c FROM a) T where t.a > 1;

8、说明:between的用法,between限制查询数据范围时包括了边界值,not between不包括

select * from table1 where time between time1 and time2
select a,b,c, from table1 where a not between 数值1 and 数值2

9、说明:in 的使用方法

select * from table1 where a [not] in (‘值1’,’值2’,’值4’,’值6’)

10、说明:两张关联表,删除主表中已经在副表中没有的信息

delete from table1 where not exists ( select * from table2 where table1.field1=table2.field1 )

11、说明:四表联查问题:

select * from a left inner join b on a.a=b.b right inner join c on a.a=c.c inner join d on a.a=d.d where …..

12、说明:日程安排提前五分钟提醒

SQL: select * from 日程安排 where datediff( ‘minute ‘,f开始时间,getdate())> 5

13、说明:一条sql 语句搞定数据库分页

select top 10 b.* from (select top 20 主键字段,排序字段 from 表名 order by 排序字段 desc) a,表名 b where b.主键字段 = a.主键字段 order by a.排序字段

14、说明:前10条记录

select top 10 * form table1 where 范围

15、说明:选择在每一组b值相同的数据中对应的a最大的记录的所有信息(类似这样的用法可以用于论坛每月排行榜,每月热销产品分析,按科目成绩排名,等等.)

select a,b,c from tablename ta where a=(select max(a) from tablename tb where tb.b=ta.b)

16、说明:包括所有在 TableA 中但不在 TableB和TableC 中的行并消除所有重复行而派生出一个结果表

(select a from tableA ) except (select a from tableB) except (select a from tableC)

17、说明:随机取出10条数据

select top 10 * from tablename order by newid()

18、说明:随机选择记录

select newid()

19、说明:删除重复记录

Delete from tablename where id not in (select max(id) from tablename group by col1,col2,…)

20、说明:列出数据库里所有的表名

select name from sysobjects where type= ‘U ‘

21、说明:列出表里的所有的

select name from syscolumns where id=object_id( ‘TableName ‘)

22、说明:列示type、vender、pcs字段,以type字段排列,case可以方便地实现多重选择,类似select 中的case。

select type,sum(case vender when ‘A ‘ then pcs else 0 end),sum(case vender when ‘C ‘ then pcs else 0 end),sum(case vender when ‘B ‘ then pcs else 0 end) FROM tablename group by type
显示结果:
type vender pcs
电脑 A 1
电脑 A 1
光盘 B 2
光盘 A 2
手机 B 3
手机 C 3

23、说明:初始化表table1

TRUNCATE TABLE table1

24、说明:选择从10到15的记录
select top 5 from (select top 15 from table order by id asc) table_别名 order by id desc

25个jQuery的编程小抄

发表于 2010-09-19 | 分类于 Language

1. jQuery 1.2 Cheat-sheet [PNG]

2. jQuery 1.2 Cheat Sheet v1.0 [PDF]

3. jQuery 1.3 Cheatsheet [PDF]

4. jQuery API Browser [Adobe AIR, HTML]

5. jQuery1.1 Cheat Sheet [HTML]

6. jTouch – jQuery Cheat Sheet for iPhone [HTML]

7. jQuery 1.4 API Cheat Sheet [HTML, PDF, PNG]

8. jQuery Selectors [PDF]

9. jQuery 1.3 Quick API Reference [ HTML]

10. jQuery UI 1.7 Quick API Reference [ HTML]

11. jQuery 1.3.2 Cheat Sheet [Microsoft Excel (XLS), PDF, PNG]

12. jQuery 1.1.3 Cheat Sheet [Microsoft Excel (XLS), PDF, PNG]

13. jQuery 1.3 Visual Cheat Sheet [PDF]

14. jQuery 1.4.2 Visual Cheat Sheet [JPEG, PDF]

15. jQuery API [HTML]

16. jQuery 1.4 Cheat Sheet [PDF]

17. jQuery cheatsheet Wallpaper

18. jQuery – YUI3 Rosetta Stone [HTML]

19. jQuery 1.2 by Adrien Gibrat [PDF]

20. jQuery 1.3 Cheat Sheet

21. jQuery 1.3 Cheatsheet Wallpaper [1920×1200, 1680×1050 and 1440×900]

22. jQuery 1.3 Visual Cheat Sheet by Antonio Lupetti [PDF]

23. jQuery Selectors Cheatsheet [HTML]

24. jQuery UI – Effects Cheatsheet [HTML]

25. jQuery Validator Cheatsheet – Elegant Code [PDF]

全球免费开放的电子图书馆

发表于 2010-09-17 | 分类于 Other

作者:独角兽资讯 来源:http://www.unicornblog.cn/user1/unicornblog/25851.html

1.澳大利亚国立大学ANU电子出版库:http://dspace.anu.edu.au/

2.阿德雷德大学电子文本收藏中心,包括古典文学,哲学,科学和医学著作:http://ebooks.adelaide.edu.au/

3.澳大利亚数字化人文门户(澳大利亚人文学界的数字化资源门户) http://www.ehum.edu.au/

4.科廷大学技术文献库(科廷技术大学科研人员和研究生的科研成果)http://espace.library.curtin.edu.au/R

5.墨尔本大学电子出版物收藏网
http://www.lib.unimelb.edu.au/eprints/

6.昆士兰大学数字文库
http://espace.library.uq.edu.au/

阅读全文 »

Linux关机与重启命令详解

发表于 2010-09-15 | 分类于 Uncategorized

Linux下的关机与重启的命令有多种,每种方式略有些不同,除非有特别紧急的情况发生,否则不要通过直接关闭电源来关机,这可能会导致数据丢失。

1. shutdown:妥善的停机方式

shutdown 是关机或重启系统最安全的方式。
shutdown可以在指定时间关机(定时关机),也可以让shutdown 在开始关闭系统之前等待一段时间,在等待过程中,shutdown 以越来越短的时间间隔发送一些消息给已登录的用户,警告用户,系统将要关闭,可以让用户在系统关闭之前做好相应的准备工作,防止发生数据丢失。管理员也可以提供一个简短的说明,比如:更换设备,10:00恢复。

下面看一下shutdown的详细参数:
shutdown [OPTION]… TIME [MESSAGE]

[-r] 重启计算器。
[-k] 并不真正关机﹐只是送警告信号给每位登录者
[-h] 关机后关闭电源。
[-c] 取消目前正在执行的关机程序,可以给当前登录的用户一个提示信息
[-F] 在重启系统时执行磁盘检查 (fsck)
[-f] 在重启系统时不检查磁盘
比如要在 10:00关闭系统,并给登录用户一条提示信息:
$ shutdown -h 10:00 “系统维护10:00关机,11:00恢复”

比如要在15分钟后重启计算机:
$ shutdown -r +15

2. halt 更简单的关机方式

halt命令执行关闭系统所需要的基本任。它可以被shutdown -h调用,也可以单独使用。halt记录关机的情况,终止百必须的进程,执行sync系统调用,等待文件系统写操作完成,然后停止内核。

halt -n 不执行sync调用。在fsck修复了根分区之后会用到这条命令。如果fsck没用使用-n选项,那么内核可能会用内存中组成上的超级块的老版本覆盖fsck的修改。

3. telinit 改变init的运行级别

使用telnit可以指引init进入指定的运行级别。如要让系统进入单用户模式:
$ telinit 1

4. reboot 快速重启系统

reboot基本和halt一样,只不过它是让系统重新启动,而halt是让机器关机。reboot由shutdown -r来调用。与halt类似,它也支持-n参数。

5. poweroff 让Linux关闭电源

poweroff命令基本和halt一样,区别在于Linux关闭后,poweroffer可以向电源管理系统(如果有的话)发送一则请求来关闭系统主电源。主要用于远程关机。

质量目标的理解和确定

发表于 2010-09-15 | 分类于 Uncategorized

组织质量管理体系的出发点和终结点均为质量目标,没有目标的质量管理不能称之为“管理”,没有绩效的质量管理不能称之为“有效”的质量管理。本文着重从“如何有效地理解和确定质量目标”进行阐述和探讨。
一、质量目标的理论依据和来源
ISO9000:2000标准对“质量目标”的定义是:“在质量方面所追求的目的”。从质量管理学的理论来说,质量目标的理论依据是行为科学和系统理论。作为企业的员工,希望自己得到企业的认同和接受,能够胜任所担负的工作并有所成就和建树,希望获得一定的名誉和成绩。因此,作为企业的管理者,要调动和激励员工的创造性和积极性,必须引导全体员工通过质量目标的成功实现而使其高层次需求得到满足。质量目标就是以行为科学中“激励理论”为基础而产生,又借助系统理论向前发展的。
按照系统论的观点,一个企业是一个目的性的系统,它包括若干个带有目的性的子系统,子系统又包括若干个带有目的性的子子系统……如此循环无穷尽也。
以系统论思想作为指导,从实现企业总的质量目标为出发点,协调企业各个部门乃至每个人的活动,就是质量目标的核心思想。当然,质量目标的理想境界是“横到边、纵到底”,即每个职能部门和每个层次(企业最高管理层、部门管理层、车间、班组乃至每个人)均有质量目标,但基于管理成本和各个企业质量管理水平高低的不同,ISO9001:2000标准只要求“相关职能和层次上建立质量目标”即可。
二、质量目标在质量管理体系中的应用
系统理论的方法与ISO9000:2000标准中提到的管理的系统方法和过程方法有异曲同工之妙。管理的“系统方法”管理的对象为“相互关联和相互作用的过程作为系统”,相当于系统理论中目的性的总系统;“过程方法”管理的对象是“组织所应用的过程”,相当于系统理论中带目的性的子子系统乃至子子孙孙系统。图1是A公司利用系统理论的方法(等同于管理的系统方法和过程方法),通过结构图的方式将其总质量管理体系展开到子系统(后文均称之为过程)。反过来,通过对过程质量目标的确定、实施、考核、分析和改进,最终达到对质量管理体系总质量目标的确定、实施、考核、分析和改进的目的。
由图1可见,企业对总质量目标的管理,可以通过对所有过程的过程质量目标的管理来实现。ISO9000:2000标准3.4.1条款将过程定义为:“一组将输入转化为输出的相互关联或相互作用的活动……注2:组织为了增值通常对过程进行策划并使其在受控条件下运行。”这里指出的过程的“受控条件”之一,应包括对过程质量目标的管理。
过程的质量目标,可定义为“过程在质量方面所追求的目的”,即过程预期的输出(过程结果)。所以,过程的质量目标更加关注过程的有效性和效果。
三、如何在质量管理体系的具体过程中确定过程质量目标
A公司有Bn个部门(如采购部),各个部门又包括Cn项职能活动(如采购部的职能包括供方管理、采购管理和材料仓库管理),各个职能活动又包括Dn个过程 (如采购管理职能包括采购计划制定、按采购计划实施采购、采购材料验收、验收合格材料提供给生产线使用)。当然,这四个过程还可以细分更多的子过程和子子过程。
现以A公司采购计划的制定过程为例加以说明。该过程确定质量目标的思路如下:
该过程的输入:
①生产计划安排所需的材料数量;
②材料仓库库存情况;
③供方交货能力(包括供方的产量、运输路途时间等);
④材料规定的采购技术要求;
⑤公司资金周转情况;
⑥为承担可能发生的风险所增加的采购余量;
⑦所采购材料的重要程度等。
该过程的输出:
适宜和充分的采购计划。
该过程的关注点:
①采购材料能否按照采购计划准时由供方交付;
②采购材料质量和技术要求能否满足规定的技术和质量要求;
③按计划准时交货的材料有无因质量问题影响生产线正常使用;
④顾客投诉或退货是否由采购材料所引起;
⑤是否在经评价合格的供应商处采购材料;
⑥采购成本是否逐年降低等。
从上述关注点可以看出,该过程的质量目标可以考虑以下几个方面:
①采购产品交付准时率(可以按年度、季度和月为时间单位进行考核)=在规定时间段内按采购计划准时交货的批次在规定时间段内采购计划安排的材料采购总批次;
②材料验收合格率=材料验收合格入库批次材料采购总批次;
③材料上线不合格率=材料上生产线后发现不合格总数材料上生产线总数,材料上线准时率=材料准时上生产线批次生产线为满足生产计划安排所需的材料总批次;
④材料原因的顾客投诉件数,材料原因的顾客退货率=材料原因的顾客退货率=材料原因的顾客退货总数顾客接受的产品总数;
⑤无特殊情况100%向评价合格的供方实施采购;
⑥高价值材料每年平均价格降低5%等。
这6个质量目标分别对应上一段该过程应该关注和达到的部分目的,前5个质量目标主要考虑了该过程的有效性,第6个质量目标主要考虑了该过程的效率,并覆盖了质量目标所关注的质量(Q)、成本(C)、交付(D)三个方面。其中,部分质量目标可同时作为按采购实施采购、采购材料验收、供方管理等过程或职能的质量目标,并体现了“过程方法”所描述的“特别是这些过程之间的相互作用”的“识别和管理”。
综上所述,选择什么样的质量目标取决于企业管理者所关注的内容和想要达到的目的。当我们将质量管理分解成Dn个过程,并设定这些过程的质量目标,通过汇总和归纳的方法将Dn个过程质量目标汇总为Cn个职能质量目标、Bn个部门质量目标,最后就完成了对A公司质量管理体系总质量目标的确定,并通过对总质量目标的确定、实施、考核、分析和改进,完成对总质量目标的管理,不断完善和持续改进质量管理体系。

1…456…27
九王爷

九王爷

这里是外宅,备份用的

269 日志
19 分类
41 标签
© 2017 九王爷
由 Hexo 强力驱动
主题 - NexT.Pisces