分类目录归档:未分类

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

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/

7.SETIS悉尼大学学术电子文本及图像服务 http://setis.library.usyd.edu.au/

8.新西兰数字文献收集网
http://nzdl.sadl.uleth.ca/cgi-bin/library

9.古腾堡数字化图书馆
http://www.gutenberg.org/wiki/Main_Page

10.Infomotions 西方文学/哲学网 (包括自美国/英国的文学和西方哲学公开著作)
http://infomotions.com/

11.康奈尔大学Arxiv (收藏了物理,数学,非线性科学和计算机科学方面的数字化 “预印本” 出版物)
http://arxiv.org/

12.Bartleby.com (包含世界历史百科全书,以及哈佛经典著作,提供免费的电子文本)
http://www.bartleby.com/

13.Bibliomania (提供超过2000部免费电子文献,以及研究成果) http://www.bibliomania.com/

14.Cogprints(有各类心理学,神经科学,语言学,哲学,生物学,人类学和计算机科学电子文献, 部分区域需要注册)
http://cogprints.org/

15.印第安纳大学国际文献档案库(这是一个服务公众的全文数字图书馆,作者可以提交著作,并被连入参考文献)
http://dlc.dlib.indiana.edu/dlc/

16.DLESE地球系统教育数字图书馆( 涵盖了环境,地理,地质,海洋以及其他物理科学;空间科学与技术;教育方法和科学哲学内容) http://www.dlese.org/library/

17.Elfwood(拥有超过两万部文学和艺术作品,来自超过一千五百名幻想/科幻艺术家和作家)
http://www.elfwood.com/

18.Eserver.org(收藏了大量在线智慧文学和资源,由华盛顿大学创立)http://eserver.org/

19.IPL互联网公共图书馆 (密歇根大学信息学院的学习和教学环境) http://www.ipl.org/

20.库尔特·斯塔博的在线图书馆(收藏了古代和现代的大量生物学著作,其中很多珍本, 可在线阅读) http://www.zum.de/

21.麻省理工学院的开放文献网站 http://ocw.mit.edu/OcwWeb/web/home/home/index.htm

22.美国国家科学院在线数据据库
(超过3000部科学,工程和健康卫生方面的著作,可以在线阅读,这些文献代表了美国在这些领域的研究精华)
http://www.nap.edu/

23.Ndltd.org
(搜集了来自澳大利亚,加拿大,许多欧洲国家,香港,台湾和美国的论文)http://www.ndltd.org/

24.宾夕法尼亚大学网站
(有超过 16000 部在线电子书 ,值得一读) :http://digital.library.upenn.edu/books/

25.牛津大学档案馆
(建于1976年,这里有用于研究和教学的大量高品质文献 资料公共区域可以免费在线检索目录,下载):http://ota.ahds.ac.uk/

26.弗吉尼亚大学电子文献中心
(超过10000 部可以公开或取的著作(以及超过 164000 幅图像):http://www2.lib.virginia.edu/etext/index.html

27.Gallica.bnf.fr
(法兰西国家图书馆资助的网站,法文):http://gallica.bnf.fr/

28.世界图书馆(世界图书馆,法语) http://abu.cnam.fr/

29.意大利电子书网站(包括小说,诗歌,古典文学,戏剧,传记,恐怖和幻想小说,新经济学等)http://www.ebookgratis.it/

30.日本文学著作( 格式包括 HTML , ZIP(下载)和日文电子书格式)http://www.aozora.gr.jp/

31.今日美国开放图书计划
(一家报纸网站的独立部门,一些有名的小说家开放了他们的版权,供所有的访客阅)http://www.usatoday.com/life/books/openbooks/2005-02-01-abounding-gutter_x.htm

32.英语文学网站
(超过一千位学生为这个巨大的网站捐助成果,焦点是英语文学) http://www.litencyc.com/

33.计算机程序设计电子书
(包括:Abap, Java, Linux, Php, Oracle & Vb.net 。 PDF 格式。注意,在下载之前,需先建立一个账户)
http://www.downloadfreepdf.com/

34.数学世界
(为学生,教育家,数学爱好者和研究者准备的全面地数学百科全书)http://mathworld.wolfram.com/

35.在线医学百科全书
(超过1500主题的在线医学百科全书,包括康复,疾病,伤害,营养,手术,症状,试验)http://www.healthopedia.com/

36.医生的免费电子书(免费使用的医学电子书) http://freebooks4doctors.com/

37.奥地利文献
(超过12000 部奥地利文献,甚至包括明信片,可以在因特网上访问)http://www.literature.at/default.alo;jsessionid=453DD0DC127BBBB02C863B1887F76E28

38.GPO Access(美国政府文献):http://www.access.gpo.gov/

39.世界最大的社会科学文献网站(ICPSR)
(Inter-university Consortium for Political and Social Research):http://www.icpsr.umich.edu/icpsrweb/ICPSR/

40.National Academy Press
(美国国家科学院、国家工程院、医学协会等机构的论文/报告/PPT,内容几乎涵盖所有学科)
http://www.nationalacademies.org/publications/

41.UNESCO
(联合国教科文组织提供的文档,包含自然科学与社会科学,有多种语言,包括中文)
http://www.unesco.org/new/en/unesco/

后话:最后关于UNESCO的疏忽一直没有发现,很抱歉,现在已经补充,同时增添Alexa搜索中文官方网站的网址http://cn.alexa.com/
很有用的网站搜索,需要什么可以去那里搜索。

git初始化

一、git基本配置
在https://github.com/中下载git后,安装并运行git
1.首先检测SSH keys,若已经存在key,则直接进入第三步

cd ~/.ssh
2.将原来的SSH keys备份并删除

mkdir key_backup
cp id_rsa* key_backup
rm id_rsa*
3.创建一个新的SSH key

复制代码
ssh-keygen -t rsa -C “your_email@youremail.com”
Creates a new ssh key using the provided email Generating public/private rsa key pair.
#此处输入将要保存的路径,默认为当前路径
Enter file in which to save the key (/Users/your_user_directory/.ssh/id_rsa): 输入回车后提示输入一个类似于密码的自定义的通行证号,如果直接回车则为空
Enter passphrase (empty for no passphrase):
#提示重新输入以便确认输入是否正确
Enter same passphrase again:
复制代码
如果看到Your public key has been saved等信息则说明保存成功
4.将SSH key输入到GitHub网站中
在:Account Settings->SSH Pbulic Keys>单击Add another public key
将刚才新建的key输入到key中并且添加一个标题,例如:git-tutorial。即/Users/your_user_directory/.ssh/id_rsa。默认情况下.ssh是隐藏文件,需要将系统设置成显示隐藏文件才能看到。输入完成后单击Add key后,会看到git-tutorial已经被添加进去了。
5.测试是否能够正确链接到github中,输入以下命令:

ssh -T git@github.com
将会显示一下信息
The authenticity of host ‘github.com (207.97.227.239)’ can’t be established. RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48. Are you sure you want to continue connecting (yes/no)?
输入yes后,显示出下列信息表示连接成功
Hi username! You’ve successfully authenticated, but GitHub does not provide shell access.
二、配置个人信息
当上面步骤完成后,就可以设置一些基本的个人信息了
1.设置用户名和邮箱
Git通过检测用户名和邮箱来跟踪进行commit的用户

git config –global user.name “Firstname Lastname”
git config –global user.email “your_email@youremail.com”
2.设置GitHub网站标记
单击网站中的Account Settings>Account Admin,将APT Token中的那串字符串记录下来,输入到下列命令中:

git config –global github.user username
git config –global github.token 获取到的token
三、创建一个新的代码库
打开网站中的创建代码库按钮,或直接使用https://github.com/repositories/new链接打开。
输入相应的信息后单击创建按钮。
实例:
1.创建完成后在本地创建一个文件夹并在该文件夹下创建一个README文件

mkdir ~/Hello-World 在user目录下创建一个名为Hello-World的项目文件夹(~代表用户目录,即:C:\Documents and Settings\当前登陆系统的用户名)
cd ~/Hello-World 更改当前目录到Hello-World目录中
git init 初始化该文件夹,将会提示以下信息:
Initialized empty Git repository in /Users/your_user_directory/Hello-World/.git/
touch README
2.创建完README以后就需要添加并提交文件了

git add README
git commit -m “first commit”
至此已经将要更改的文件提交到头信息中,但并没有真正提交到网站上去,还需要执行下面两个命令:

git remote add origin git@github.com:gbyukg/zf-tutorial.git(若是第一次提交该项目的文件或是修改项目文件名后则需要这行这个命令,以后就可不用执行该命令)
git push -u origin master

php实现zip压缩文件解压缩

仔细的研究了一下,原来用php写的解压程序效率比想象的还是高很多的,既然这么好,干脆再优化一下后用到自己后台中,虽然现在大部分空间的控制面板中有压缩和解压这个功能,但是毕竟有时候有些麻烦。

做这个之前,没有接触过php压缩这一块,网上搜了一些,大多数都是php压缩类、压缩函数,少则几百行,多的就几千行代码。这对于我这种新手来说很摸不到头脑,再说我也不用这么复杂的功能。最后参考函数手册,理清楚了几个相关的函数后,就明白了怎么去整了。

记得要开启 zip ,把 php.ini 中的 extension=php_zip.dll 前面的分号去掉。

源码范例:
代码如下:
<?php

//需开启配置 php_zip.dll
//phpinfo();
header(“Content-type:text/html;charset=utf-8”);

function get_zip_originalsize($filename, $path) {
//先判断待解压的文件是否存在
if(!file_exists($filename)){
die(“文件 $filename 不存在!”);
}
$starttime = explode(‘ ‘,microtime()); //解压开始的时间

//将文件名和路径转成windows系统默认的gb2312编码,否则将会读取不到
$filename = iconv(“utf-8″,”gb2312”,$filename);
$path = iconv(“utf-8″,”gb2312”,$path);
//打开压缩包
$resource = zip_open($filename);
$i = 1;
//遍历读取压缩包里面的一个个文件
while ($dir_resource = zip_read($resource)) {
//如果能打开则继续
if (zip_entry_open($resource,$dir_resource)) {
//获取当前项目的名称,即压缩包里面当前对应的文件名
$file_name = $path.zip_entry_name($dir_resource);
//以最后一个“/”分割,再用字符串截取出路径部分
$file_path = substr($file_name,0,strrpos($file_name, “/”));
//如果路径不存在,则创建一个目录,true表示可以创建多级目录
if(!is_dir($file_path)){
mkdir($file_path,0777,true);
}
//如果不是目录,则写入文件
if(!is_dir($file_name)){
//读取这个文件
$file_size = zip_entry_filesize($dir_resource);
//最大读取6M,如果文件过大,跳过解压,继续下一个
if($file_size<(1024*1024*6)){
$file_content = zip_entry_read($dir_resource,$file_size);
file_put_contents($file_name,$file_content);
}else{
echo “<p> “.$i++.” 此文件已被跳过,原因:文件过大, -> “.iconv(“gb2312″,”utf-8″,$file_name).” </p>”;
}
}
//关闭当前
zip_entry_close($dir_resource);
}
}
//关闭压缩包
zip_close($resource);
$endtime = explode(‘ ‘,microtime()); //解压结束的时间
$thistime = $endtime[0]+$endtime[1]-($starttime[0]+$starttime[1]);
$thistime = round($thistime,3); //保留3为小数
echo “<p>解压完毕!,本次解压花费:$thistime 秒。</p>”;
}

$size = get_zip_originalsize(‘20131101.zip’,’temp/’);

?>

测试解压了一个300多KB的小文件,花了0.115秒,测试解压了一个30多MB的(网页文件,小文件比较多),花了20多秒。

Mysql命令行添加用户

创建用户:

命令:

CREATE USER 'username'@'host' IDENTIFIED BY 'password';

说明:username – 你将创建的用户名, host – 指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost,  如 果想让该用户可以从任意远程主机登陆,可以使用通配符%. password –  该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登 陆服务器.

例子:

CREATE USER 'dog'@'localhost' IDENTIFIED BY '123456'; 
CREATE USER 'pig'@'192.168.1.101_' IDENDIFIED BY '123456'; 
CREATE USER 'pig'@'%' IDENTIFIED BY '123456'; 
CREATE USER 'pig'@'%' IDENTIFIED BY ''; 
CREATE USER 'pig'@'%';

授权:

命令:

GRANT privileges ON databasename.tablename TO 'username'@'host'

说明: privileges – 用户的操作权限,如SELECT , INSERT , UPDATE  等(详细列表见该文最后面).如果要授予所 的权限则使用ALL.;databasename –  数据库名,tablename-表名,如果要授予该用户对所有数据库和表的相应操作权限则可用* 表示, 如*.*.
例子:

GRANT SELECTINSERT ON test.user TO 'pig'@'%'; 
GRANT ALL ON *.* TO 'pig'@'%';

注意:用以上命令授权的用户不能给其它用户授权,如果想让该用户可以授权,用以下命令:

GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION

设置与更改用户密码

命令:

SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');

如果是当前登陆用户用

SET PASSWORD = PASSWORD("newpassword");

撤销用户权限

命令:

REVOKE privilege ON databasename.tablename FROM 'username'@'host';

说明: privilege, databasename, tablename – 同授权部分.
例子

REVOKE SELECT ON *.* FROM 'pig'@'%';

注意: 假如你在给用户’pig’@’%’授权的时候是这样的(或类似 的):GRANT SELECT ON test.user TO  ‘pig’@’%’, 则在使用 REVOKE SELECT ON *.* FROM  ‘pig’@’%’;命令并不能撤销该用户对test数据库中user表的SELECT 操作. 相反,如果授权使用的是GRANT SELECT ON  *.* TO ‘pig’@’%’;则 REVOKE SELECT ON test.user FROM  ‘pig’@’%’;命令也不能撤销该用户对test数据库中user表的 Select 权限.

具体信息可以用命令SHOW GRANTS FOR ‘pig’@’%’; 查看.

删除用户

命令:

DROP USER ‘username’@'host’;

一个典型的数据库建表, 建用户过程:

创建用于localhost连接的用户并指定密码 
mysql> create user 'pcom'@'localhost' identified by 'aaa7B2249'; 
Query OK, 0 rows affected (0.00 sec) 
     
创建数据库 
mysql> create database pcom default character set utf8 collate utf8_bin; 
Query OK, 1 row affected (0.00 sec) 
     
给本地用户授权, 这里不需要指定密码 
mysql> grant all on pcom.* to 'pcom'@'localhost'; 
Query OK, 0 rows affected (0.00 sec) 
     
给其他IP地址下的用户授权, 注意: 这里必须指定密码, 否则就可以无密码访问 
mysql> grant all on pcom.* to 'pcom'@'192.168.0.0/255.255.0.0' identified by 'aaa7B2249'; 
Query OK, 0 rows affected (0.00 sec) 
     
同理 
mysql> grant all on pcom.* to 'pcom'@'172.20.0.0/255.255.0.0' identified by 'aaa7B2249'; 
Query OK, 0 rows affected (0.00 sec) 
     
Done!

附表:在MySQL中的操作权限

ALTER
Allows use of ALTER TABLE. 
    
ALTER ROUTINE 
Alters or drops stored routines. 
    
CREATE
Allows use of CREATE TABLE. 
    
CREATE ROUTINE 
Creates stored routines. 
    
CREATE TEMPORARY TABLE
Allows use of CREATE TEMPORARY TABLE. 
    
CREATE USER
Allows use of CREATE USERDROP USERRENAME USERand REVOKE ALL PRIVILEGES. 
    
CREATE VIEW
Allows use of CREATE VIEW. 
    
DELETE
Allows use of DELETE. 
    
DROP
Allows use of DROP TABLE. 
    
EXECUTE
Allows the user to run stored routines. 
    
FILE 
Allows use of SELECT… INTO OUTFILE and LOAD DATA INFILE. 
    
INDEX
Allows use of CREATE INDEX and DROP INDEX. 
    
INSERT
Allows use of INSERT. 
    
LOCK TABLES 
Allows use of LOCK TABLES on tables for which the user also has SELECT privileges. 
    
PROCESS 
Allows use of SHOW FULL PROCESSLIST. 
    
RELOAD 
Allows use of FLUSH. 
    
REPLICATION 
Allows the user to ask where slave or master 
    
CLIENT 
servers are. 
    
REPLICATION SLAVE 
Needed for replication slaves. 
    
SELECT
Allows use of SELECT. 
    
SHOW DATABASES 
Allows use of SHOW DATABASES. 
    
SHOW VIEW
Allows use of SHOW CREATE VIEW. 
    
SHUTDOWN 
Allows use of mysqladmin shutdown. 
    
SUPER 
Allows use of CHANGE MASTERKILLPURGE MASTER LOGSand SET GLOBAL SQL statements. Allows mysqladmin debug command. Allows one extra connection to be made if maximum connections are reached. 
    
UPDATE
Allows use of UPDATE. 
    
USAGE 
Allows connection without any specific privileges.

最后不要忘记刷新数据库

flush privileges;