分类存档: 杂记

何谓“尸位素餐”?

何谓“尸位素餐”?
一般机关、企业单位、商店的雇员,凭着人事或其他特殊的关系,只知道每月按期领取薪金,每日吃喝闲坐,而不做任何工作,这种人都可以说是“尸位素餐”。
此外,一般工作能力很差的人,虽然已经尽了自己的能力服务,但事情总是做不好,毫无成绩可言,这种人能够保持职位,不是靠自己的本领,而是借着特殊关系,因此也可以说“尸位素餐”。

李克强:“守土有责,守土负责,守土尽责,这是为官者、领导者的基本伦理。而一些官员、领导掌握着来自民众的公权力,却在其位不谋其政。如果尸位素餐,就不配坐在位置上“。
习近平曾说过,要拎着“乌纱帽”为民干事,为官者“不患无位而患德之不修”,“不患位之不尊,而患德之不崇”。官员领导掌握着公权力,公权力来自民众,权为民所用不是天经地义吗?
官员领导要拎着乌纱帽干事,不要捂着乌纱帽做官,更不能不做事、乱做事,否则民众留你何用?
摘录至《为官尸位素餐,不妨去其位》。

 

php代码中的一些优化技巧

1.尽量静态化:

如果一个方法能被静态,那就声明它为静态的,速度可提高1/4,甚至我测试的时候,这个提高了近三倍。
当然了,这个测试方法需要在十万级以上次执行,效果才明显。
其实静态方法和非静态方法的效率主要区别在内存:静态方法在程序开始时生成内存,实例方法在程序运行中生成内存,所以静态方法可以直接调用,实例方法要先成生实例,通过实例调用方法,静态速度很快,但是多了会占内存。
任何语言都是对内存和磁盘的操作,至于是否面向对象,只是软件层的问题,底层都是一样的,只是实现方法不同。静态内存是连续的,因为是在程序开始时就生成了,而实例申请的是离散的空间,所以当然没有静态方法快。
静态方法始终调用同一块内存,其缺点就是不能自动进行销毁,而是实例化可以销毁。 继续阅读 »

shell批量更改文件系统文件名

批量命名总结:
1、删除所有的 .bak 后缀:
rename 's/\.bak$//' *.bak

2、把 .jpe 文件后缀修改为 .jpg:
rename 's/\.jpe$/\.jpg/' *.jpe

3、把所有文件的文件名改为小写:
rename 'y/A-Z/a-z/' *

4、将 abcd.jpg 重命名为 abcd_efg.jpg:
for var in *.jpg; do mv "$var" "${var%.jpg}_efg.jpg"; done

5、将 abcd_efg.jpg 重命名为 abcd_lmn.jpg:
for var in *.jpg; do mv "$var" "${var%_efg.jpg}_lmn.jpg"; done

6、把文件名中所有小写字母改为大写字母:
for var in `ls`; do mv -f "$var" `echo "$var" |tr a-z A-Z`; done

7、把格式 *_?.jpg 的文件改为 *_0?.jpg:
for var in `ls *_?.jpg`; do mv "$var" `echo "$var" |awk -F '_' '{print $1 "_0" $2}'`; done

8、把文件名的前三个字母变为 vzomik:
for var in `ls`; do mv -f "$var" `echo "$var" |sed 's/^.../vzomik/'`; done

9、把文件名的后四个字母变为 vzomik:
for var in `ls`; do mv -f "$var" `echo "$var" |sed 's/....$/vzomik/'`; done

for循环总结:
1、 for((i=1;i<=10;i++));do echo $(expr $i \* 4);done
2、在shell中常用的是 for i in $(seq 10) 
3、for i in `ls`
4、for i in ${arr[@]}   
5、for i in $* ; do 
6、for File in /proc/sys/net/ipv4/conf/*/accept_redirects; do 
7、for i in f1 f2 f3 ;do 
8、for i in *.txt 
9、for i in $(ls *.txt) 
for in语句与` `和$( )合用,利用` `或$( )的将多行合为一行的缺陷,实际是合为一个字符串数组
============ -_- ==============for num in $(seq 1 100)
10、LIST="rootfs usr data data2" 
for d in $LIST; do 
    用for in语句自动对字符串按空格遍历的特性,对多个目录遍历 
11、for i in {1..10}
12、for i in stringchar {1..10}
13、awk 'BEGIN{for(i=1; i<=10; i++) print i}'
注意:AWK中的for循环写法和C语言一样的

继续阅读 »

PostgrepSQL一些常用操作

$ ./createuser -P -d -a -e admin
Enter password for new role:
Enter it again:
CREATE ROLE admin PASSWORD ‘md5adac7a79de00846615c9e82e44271065′ SUPERUSER CREATEDB CREATEROLE INHERIT LOGIN;
$ ./psql
psql (9.2.1, server 8.2.17)
WARNING: psql version 9.2, server version 8.2.
Some psql features might not work.
Type “help” for help.

pgsql=# \du
List of roles
Role name | Attributes | Member of
———–+———————————–+———–
admin | Superuser, Create role, Create DB |
pgsql | Superuser, Create role, Create DB |

pgsql=# select * from pg_roles;

用户管理:
添加用户:
命令:createuser [-a] [-A] [-d] [-D] [-e] [-P] [-h 主机名] [-p port] 用户名
参数说明:
[-a]:允许创建其他用户,相当于创建一个超级用户;
[-A]:不允许此用户创建其他用户;
[-d]:允许此用户创建数据库;
[-D]:不允许此用户创建数据库;
[-e]:将执行过程显示到Shell上;
[-P]:创建用户时,同时设置密码;
[-h 主机名]:为某个主机上的Postgres创建用户;
[-p port]:与-h参数一同使用,指定主机的端口。
事实上,createuser只是对CREATE USER的封装。
A.不带参数的创建用户
createuser testuser
Shall the new user be allowed to create databases? (y/n) n ——–是否可以创建数据库:否
Shall the new user be allowed to create more new users? (y/n) n ———是否可以创建新用户:否
CREATE USER
注:不带数创建用户时,Postgres会询问此用户的权限,上面的例子创建了一个普通用户; 这等于CREATE USER testuser NOCREATEDB NOCREATEUSER;
B.为指定的主机和端口上创建用户
createuser -h 192.168.1.5 -p 5000 -D -A -e testuser
CREATE USER
注:这个命令为主机192.168.1.5的5000端口创建用户testuser, 此用户不可以创建数据库和其他用户。
C.创建超级用户
createuser -P -d -a -e testuser
Enter password for new user: testuser
Enter it again: testuser
CREATE USER
注:这个命令在本地创建一个超级用户(-a),可以创建数据库(-d), 同时要求设置密码。 这等于CREATE USER testuser PASSWORD ‘testuser’ CREATEDB CREATEUSER;
删除用户:
命令:dropuser [-i] [-h] [-p] [-e] 用户名
参数说明:
[ -i]:删除用户前,要求确认;
[-h 主机名]:删除某个主机上的Postgres用户;
[-p port]:与-h参数一同使用,指定主机的端口;
[-e]:将执行过程显示到Shell上。
事实上,dropuser只是对DROP USER的封装。
A.删除本地的Postgres用户
dropuser testuser
DROP USER
B.删除远程Postgres服务器上的用户
dropuser -h192.168.1.5 -p 5000 -i -e testuser
User “testuser” and any owned databases will be permanently deleted.
Are you sure? (y/n) y
DROP USER
注:此命令删除主机192.168.1.5(-h)的5000端口(-p)的用户testuser,并且需要确认(-i); 这等于DROP USER “testuser”;
创建删除数据库:
A.创建数据库
创建我的第一个数据库sk
postgres是支持SQL标准最高的关系型数据库管理系统,当然,它支持CREATE DATABASE命令创建数据库,在此基础上,还对此命令做了扩展,
增加了许多属性设置。
比如owner、template、ecoding、tablespace等。
那么,利用CREATE DATABASE创建sk数据库语句如下:
CREATE DATABASE sk ENCODING ‘LATIN1′ TEMPLATE template0 OWNER sk TABLESPACE skspace;

另外,postgres还提供的自己的方言来创建数据库createdb,同样支持多个属性设置。
比如–tablespace、–encoding、–owner、–template等。
那么,利用createdb创建sk数据库语句如下:
createdb sk –encoding LATIN1 –template template0 –owner sk –tablespace skspace;

事实上,createdb只是给create database命令做的一个外壳,目的是提高创建语句的便利性。
但作为我个人,还是喜欢使用CREATE DATABASE 命令来创建数据库。
B.删除数据库
删除我刚才创建的数据库sk:
dropdb sk
DROP DATABASE sk

1. 创建数据库
createdb -h ip -U user dbname. (ip 为目标机,本机可不要-h参数; user是登录数据库的角色)
2. 备份数据库
pg_dump -h ip -U user -E utf-8 dbname > mysql.bak(mysql.bak是备份文件名字)
3. 恢复数据库
psql -h ip -U user -d dbname -f mysql.bak
这里只是基本的参数,详细参数信息可用–help查看。

内存双通道技术详解

双通道,就是在北桥芯片级里设计两个内存控制器,这两个内存控制器可相互独立工作,每个控制器控制一个内存通道。

技术简介

作用

在这两个内存通过CPU可分别寻址、读取数据,从而使内存的带宽增加一倍,数据存取速度也相应增加一倍(理论上)。流行的双通道内存构架是由两个64bit DDR内存控制器构筑而成的,其带宽可达128bit。因为双通道体系的两个内存控制器是独立的、具备互补性的智能内存控制器,因此二者能实现彼此间零等待时间,同时运作。两个内存控制器的这种互补“天性”可让有效等待时间缩减50%,从而使内存的带宽翻倍。双通道是一种主板芯片组(Athlon 64集成于CPU中)所采用新技术,与内存本身无关,任何DDR内存都可工作在支持双通道技术的主板上,所以不存在所谓“内存支持双通道”的说法。 继续阅读 »

密码保护:家乡的核桃树

这是一篇受密码保护的文章,您需要提供访问密码: