手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表Tag:qeephp

perl: warning: Setting locale failed.

由于VPS的空间比较小,所以。。。偷懒装了一个debian,其实还有更小的,但我想debian相对会较小一点。。

在执行一些命令的时候会报这种错误 :

XML/HTML代码(这种错误第一次就会出现在apt-get的时候)
  1. perl: warning: Setting locale failed.  
  2. perl: warning: Please check that your locale settings:  
  3.     LANGUAGE = (unset),  
  4.     LC_ALL = (unset),  
  5.     LANG = "zh_CN.UTF-8"  
  6.     are supported and installed on your system.  
  7. perl: warning: Falling back to the standard locale ("C").  

这个问题其实很简单,摆明了就是没设置本地环境变量嘛,不过,我也没有设置lang为zh_CN呀。这年头,还是en_US比较安全吧。
在ubuntu下面,可以通过:apt-get install language-pack-en-base 来解决,但debian下没有这个命令,所以只能:

XML/HTML代码
  1. export LANGUAGE=en_US.UTF-8  
  2. export LANG=en_US.UTF-8  
  3. export LC_ALL=en_US.UTF-8  
  4. locale-gen en_US.UTF-8  
  5. dpkg-reconfigure locales  

然后会出来一个界面,你在里面选择en_US.UTF-8,然后一切就都解决了。很方便

Tags: debian, ubuntu

参考:禁用 UIWebView 里面的链接长按弹出效果

张宴在他的博客里说到:苹果一直拒绝 UIWebView 内嵌 HTML5 页面的 iPhone、iPad APP应用上架到 App Store,建议这样的APP去做成Safari的Web应用
但是,他用另外的办法解决了这个小问题,即不让别人感觉到HTML5页面可以被touch:

XML/HTML代码
  1. 1、URL不让直接通过浏览器访问(UIWebView的请求Header头中加点东西,在服务器端将APP内嵌的访问和通过直接浏览器访问区分开来),或者通过浏览器访问时,返回JSON、XML信息,输出“Interface Error”,忽悠苹果审核人员说这是HTTP协议的接口,不是网页。  
  2.   
  3.   2、禁用、禁止 UIWebView 里面的链接长按弹出效果。加入一行 CSS 代码,禁用类似下图的链接长按弹出效果:  
  4. html,body{-webkit-touch-callout: none;}  

以前没有注意过这些,以前只是注意到连续的数字会被当成电话可以被Call。所以只是加了一个telphone=no。黑黑。。
反正先了解一下总是好的。

备份:自动备份VPS数据到Dropbox

以下的文字来自于网址:http://www.wutianqi.com/?p=3115,我和他一样,都遇到了类似的问题
上个月我的数据全没有了,所幸我真的只丢了一小部分数据。还能忍。但现在。。。我想自动化一点,这样或许会安全一点吧?
全文如下:

最近一直在考虑备份的问题,因为随着站越来越大,付出了两年的心血,如果真因为没有备份而导致数据丢失,那就真是欲哭无泪了,而对于那么多的站点及 数据,如果要时常备份,肯定会烦躁的,在网上找到了一个脚本,专门可以把VPS上的数据和数据库中的数据自动备份到dropbox中。

dropbox是什么?不解释,美丽的度娘,万能的谷哥,等着你去找他们。

脚本来至这个网站:http://davehope.co.uk/Blog/backup-your-linux-vps-to-dropbox/

XML/HTML代码
  1. #!/bin/bash  
  2. DROPBOX_USER="Your Dropbox username"   #dropbox账号  
  3. DROPBOX_PASS="Your Dropbox password"   #dropbox密码  
  4. DROPBOX_DIR="Directory in your dropbox account to store the backups, e.g. /backups" #dropbox中存放备份的文件夹  
  5. BACKUP_SRC="/home /var/www /var/git /etc /root" #VPS中需要备份的目录  
  6. BACKUP_DST="/tmp" #备份存放的地方  
  7. MYSQL_SERVER="127.0.0.1"  #本地数据库服务器  
  8. MYSQL_USER="root"  #数据库用户名  
  9. MYSQL_PASS="Your MySQL password"  #数据库密码  
  10. #下面的就不需要修改了  
  11.   
  12. #  
  13. # Stop editing here.  
  14. NOW=$(date +"%Y.%m.%d")  
  15. DESTFILE="$BACKUP_DST/$NOW.tgz"  
  16.   
  17. #  
  18. # Upload a file to Dropbox.  
  19. # $1 = Source file  
  20. # $2 = Destination file.  
  21. function dropboxUpload  
  22. {  
  23.     #  
  24.     # Code based on DropBox Uploader 0.6 from http://www.andreafabrizi.it/?dropbox_uploader  
  25.     LOGIN_URL="https://www.dropbox.com/login"  
  26.     HOME_URL="https://www.dropbox.com/home"  
  27.     UPLOAD_URL="https://dl-web.dropbox.com/upload"  
  28.     COOKIE_FILE="/tmp/du_cookie_$RANDOM"  
  29.     RESPONSE_FILE="/tmp/du_resp_$RANDOM"  
  30.   
  31.     UPLOAD_FILE=$1  
  32.     DEST_FOLDER=$2  
  33.   
  34.     # Login  
  35.     echo -ne " > Logging in..."  
  36.     curl -s -i -c $COOKIE_FILE -o $RESPONSE_FILE --data "login_email=$DROPBOX_USER&login_password=$DROPBOX_PASS&t=$TOKEN" "$LOGIN_URL"  
  37.     grep "location: /home" $RESPONSE_FILE > /dev/null  
  38.   
  39.     if [ $? -ne 0 ]; then  
  40.         echo -e " Failed!"  
  41.         rm -f "$COOKIE_FILE" "$RESPONSE_FILE"  
  42.         exit 1  
  43.     else  
  44.         echo -e " OK"  
  45.     fi  
  46.   
  47.     # Load home page  
  48.     echo -ne " > Loading Home..."  
  49.     curl -s -i -b "$COOKIE_FILE" -o "$RESPONSE_FILE" "$HOME_URL"  
  50.   
  51.     if [ $? -ne 0 ]; then  
  52.         echo -e " Failed!"  
  53.         rm -f "$COOKIE_FILE" "$RESPONSE_FILE"  
  54.         exit 1  
  55.     else  
  56.         echo -e " OK"  
  57.     fi  
  58.   
  59.     # Get token  
  60.     TOKEN=$(cat "$RESPONSE_FILE" | tr -d '\n' | sed 's/.*<form action="https:\/\/dl-web.dropbox.com\/upload"[^>]*>\s*<input type="hidden" name="t" value="\([a-z 0-9]*\)".*/\1/')  
  61.   
  62.     # Upload file  
  63.     echo -ne " > Uploading '$UPLOAD_FILE' to 'DROPBOX$DEST_FOLDER/'..."  
  64.     curl -s -i -b $COOKIE_FILE -o $RESPONSE_FILE -F "plain=yes" -F "dest=$DEST_FOLDER" -F "t=$TOKEN" -F "file=@$UPLOAD_FILE"  "$UPLOAD_URL"  
  65.     grep "HTTP/1.1 302 FOUND" "$RESPONSE_FILE" > /dev/null  
  66.   
  67.     if [ $? -ne 0 ]; then  
  68.         echo -e " Failed!"  
  69.         rm -f "$COOKIE_FILE" "$RESPONSE_FILE"  
  70.         exit 1  
  71.     else  
  72.         echo -e " OK"  
  73.         rm -f "$COOKIE_FILE" "$RESPONSE_FILE"  
  74.     fi  
  75. }  
  76.   
  77. # Backup files.  
  78. mysqldump -u $MYSQL_USER -h $MYSQL_SERVER -p$MYSQL_PASS --all-databases > "$NOW-Databases.sql"  
  79. tar cfz "$DESTFILE" $BACKUP_SRC "$NOW-Databases.sql"  
  80.   
  81. dropboxUpload "$DESTFILE" "$DROPBOX_DIR"  
  82.   
  83. rm -f "$NOW-Databases.sql" "$DESTFILE"  

代码只需要在几个地方修改,已在上面的代码中注释出来。

直接:

XML/HTML代码
  1. #随便找个地方,存放backup.sh,比如我:  
  2. #cd /home/wwwroot/到这里来放置这个shell script  
  3. vi backup.sh  
  4. #粘贴上代码后  
  5. chmod +x backup.sh  
  6. #因为授予了权限,所以直接运行即可:  
  7. ./backup.sh  
  8. #接着设置定时任务,可以man crontab自己看看具体用法  
  9. $ crontab -e  
  10. # m h  dom mon dow   command  
  11. #这里分别对应minute hour 'day of month' month 'day of week'  
  12. #下面这行,意思就是每月第一天备份  
  13. 0 0 1 * *       /bin/bash /home/wwwroot/backup.sh  

OK,玩网站,就一句话,勤备份,靠别人不如靠自己,要想玩得好,首先要勤劳!

---EOF---
其实类似的软件很多,比如 还有google drive,而且相应的工具也已经有了,当然你甚至可以搞一台VPS来做双机互备,rsync,多方便啊。

pdf to txt

或许很多软件都是专业的转换,但是如果PDF中有图片的话,那些convert pdf to word就不一定能够成功转换了。所以我推荐这款“汉王 PDF OCR”,和传统的OCR一样对PDF进行识别、转换,再输出。因此,即使你是图片,他也能够认得出啦,因为他可以把图片直接OCR出来。

   汉王PDF OCR是汉王OCR 6.0 和尚书七号的升级版,本软件新增打开与识别PDF文件功能,支持文字型PDF的直接转换和图像型PDF的OCR识别:既可以采用OCR的方式,将PDF文件转换为可编辑文档;也可以采用格式转换的方式直接转换PDF文件为文本。
本软件系统应用OCR(Optical Character Recognition)技术,为满足书籍、报刊杂志、报表票据、公文档案等录入需求而设计的软件系统。
目前,许多信息资料需要转化成电子文档以便于各种应用及管理,但因信息数字化处理的方式落后,不但费时费力,而且资金耗费巨大,造成了大量文档资料的积压,因此急需一种快速高效的软件系统来满足这种海量录入需求。本软件系统正是适用于个人、小型图书馆、小型档案馆、小型企业进行大规模文档输入、图书翻印、大量资料电子化的软件系统。
    ●识别字符
    简体字符集:国标GB2312-80的全部一、二级汉字6800多个。
    纯英文字符集。
    简繁字集:除了简体汉字外,还可以混识台湾繁体字5400多个以及香港繁体字和GBK汉字。
    ●识别字体种类
    能识别宋体、仿宋、楷、黑、魏碑、隶书、圆体、行楷等一百多种字体,并支持多种字体混排。
    ●识别字号
    初号 小六号字体。
    ●表格识别
    可以自动判断、拆分、识别和还原各种通用型印刷体表格。

上午尝试了一下,对于一些杂志扫描出来的OCR可以正确识别。精度还挺高。当然。。。纯图片【文章配图】是没有办法导出来了。。

官网:http://www.hanwang.com.cn/

Tags: 汉王, ocr, pdf

何为RBAC

其实真的不想提这个话题,关于这个话题真的是辛酸泪一把。但总得介绍一下吧。

角色访问控制(RBAC)引入了Role的概念,目的是为了隔离User(即动作主体,Subject)与Privilege(权限,表示对Resource的一个操作,即Operation+Resource)。
Role作为一个用户(User)与权限(Privilege)的代理层,解耦了权限和用户的关系,所有的授权应该给予Role而不是直接给 User或Group。Privilege是权限颗粒,由Operation和Resource组成,表示对Resource的一个Operation。 例如,对于新闻的删除操作。Role-Privilege是many-to-many的关系,这就是权限的核心。

基于角色的访问控制方法(RBAC)的显著的两大特征是:1.由于角色/权限之间的变化比角色/用户关系之间的变化相对要慢得多,减小了授权管理的复杂性,降低管理开销。2.灵活地支持企业的安全策略,并对企业的变化有很大的伸缩性。

RBAC基本概念:

RBAC认为权限授权实际上是Who、What、How的问题。在RBAC模型中,who、what、how构成了访问权限三元组,也就是“Who对What(Which)进行How的操作”。

Who:权限的拥用者或主体(如Principal、User、Group、Role、Actor等等)

What:权限针对的对象或资源(Resource、Class)。

How:具体的权限(Privilege,正向授权与负向授权)。

Operator:操作。表明对What的How操作。也就是Privilege+Resource

Role:角色,一定数量的权限的集合。权限分配的单位与载体,目的是隔离User与Privilege的逻辑关系.

Group:用户组,权限分配的单位与载体。权限不考虑分配给特定的用户而给组。组可以包括组(以实现权限的继承),也可以包含用户,组内用户继承组的权限。User与Group是多对多的关系。Group可以层次化,以满足不同层级权限控制的要求。

RBAC的关注点在于Role和User, Permission的关系。称为User assignment(UA)和Permission assignment(PA).关系的左右两边都是Many-to-Many关系。就是user可以有多个role,role可以包括多个user。

凡是用过RDBMS都知道,n:m 的关系需要一个中间表来保存两个表的关系。这UA和PA就相当于中间表。事实上,整个RBAC都是基于关系模型。

Session在RBAC中是比较隐晦的一个元素。标准上说:每个Session是一个映射,一个用户到多个role的映射。当一个用户激活他所 有角色的一个子集的时候,建立一个session。每个Session和单个的user关联,并且每个User可以关联到一或多个Session.

在RBAC系统中,User实际上是在扮演角色(Role),可以用Actor来取代User,这个想法来自于Business Modeling With UML一书Actor-Role模式。考虑到多人可以有相同权限,RBAC引入了Group的概念。Group同样也看作是Actor。而User的概念 就具象到一个人。

这里的Group和GBAC(Group-Based Access Control)中的Group(组)不同。GBAC多用于操作系统中。其中的Group直接和权限相关联,实际上RBAC也借鉴了一些GBAC的概念。

Group和User都和组织机构有关,但不是组织机构。二者在概念上是不同的。组织机构是物理存在的公司结构的抽象模型,包括部门,人,职位等等,而权限模型是对抽象概念描述。组织结构一般用Martin fowler的Party或责任模式来建模。

Party模式中的Person和User的关系,是每个Person可以对应到一个User,但可能不是所有的User都有对应的 Person。Party中的部门Department或组织Organization,都可以对应到Group。反之Group未必对应一个实际的机 构。例如,可以有副经理这个Group,这是多人有相同职责。

引入Group这个概念,除了用来解决多人相同角色问题外,还用以解决组织机构的另一种授权问题:例如,A部门的新闻我希望所有的A部门的人都能看。有了这样一个A部门对应的Group,就可直接授权给这个Group。

Role作为一个用户(User)与权限(Privilege)的代理层,解耦了权限和用户的关系,所有的授权应该给予Role而不是直接给 User或Group。Privilege是权限颗粒,由Operation和Resource组成,表示对Resource的一个Operation。 例如,对于新闻的删除操作。Role-Privilege是many-to-many的关系,这就是权限的核心。

基于角色的访问控制方法(RBAC)的显著的两大特征是:1.由于角色/权限之间的变化比角色/用户关系之间的变化相对要慢得多,减小了授权管理的复杂性,降低管理开销。2.灵活地支持企业的安全策略,并对企业的变化有很大的伸缩性。

本文也是我摘抄来的,原文地址为:http://xinsync.xju.edu.cn/index.php/archives/3693,主要还是想把这个角色权限说明白一些。如果有幸是同事们看到,那真是一大幸事,那些自认为是精英的同事们,你们懂吗?哦,不好意思,又揭你们的短了。

 

Tags: rbac, acl, 权限