win7完美卸载cygwin


1. 停止cygwin的服务,主要是个sshd服务,通过命令net stop sshd可以停止,还可以在windows服务里找到它右键点击停止服务
2. 删除cygwin的服务目录,另外检查下载windows C盘用户目录下包含cygwin的用户目录,如果有也删除掉,删除创建的快捷方式
3. 在计算机管理->本地用户组下删除cygwin创建的用户
4. 删除安装文件夹,默认是c:/cygwin
5. 删除桌面上的icon,和开始菜单里的启动文件夹
6. 删除环境变量(PATH, CYGWIN)
7. 环境变量PATH里的c:/cygwin/bin; 还有名叫CYGWIN的变量
8. 打开注册表,删除一些内容
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\sshd
HKEY_CURRENT_USER\Software\Cygwin
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Cygwin

以上步骤完成后重启计算机即可。

参考:1 2

Blogger上三种类型的Google+Gadget


如何添加gadget,Blogger官方参考

新推出的这种gadget

  • Google+ Followers


  • Google+1按钮


  • Google+ Circle me

通过添加下面的代码就能生成另外一种gadget
如下图中蓝色框

<!-- Place this tag where you want the badge to render -->
<a href="https://plus.google.com/109340910651529827181?prsrc=3" rel="author" style="display:inline-block;text-decoration:none;color:#333;text-align:center;font:13px/16px arial,sans-serif;white-space:nowrap;"><span style="display:inline-block;font-weight:bold;vertical-align:top;margin-right:5px;margin-top:8px;">Ein Verne</span><span style="display:inline-block;vertical-align:top;margin-right:15px;margin-top:8px;">on</span><img src="https://ssl.gstatic.com/images/icons/gplus-32.png" alt="" style="border:0;width:32px;height:32px;"/></a>

<!-- Place this tag where you want the badge to render. -->
<div class="g-plus" data-width="200" data-height="69" data-href="//plus.google.com/109340910651529827181?rel=author"></div>

<!-- Place this tag after the last badge tag. -->
<script type="text/javascript">
  (function() {
    var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
    po.src = 'https://apis.google.com/js/plusone.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
  })();
</script>

C语言文件操作

实验目的
学习C语言中对文件的操作,熟悉指针
掌握基本查找,排序,删除,调换,改变,添加算法
实验要求
了解课程内容,熟悉文件操作,并能够自己写出函数对文件进行操作
实验内容
一、 几个概念理解:
文件:按一定规则存储在磁盘上的数据集合。
文件名:能唯一标识某个磁盘文件的字符串。形式:盘符:/路径/文件名.扩展名
文本文件:数据以其数字字符的ASCII码形式、一个字节一个字节地存储在磁盘上。
二进制文件:数据以二进制形式在存储在磁盘上。
设备文件:输入/输出设备
标准输入:键盘
标准输出/标准错误输出:显示器
文件型指针:C语言是通过名为FILE的结构型指针来管理文件读写的。FILE *<变量名>
文件的打开和关闭:文件操作先建立文件与文件指针之间的关系,接着进行文件的读与写。建立文件与文件指针之间的联系的过程是文件的打开,终止这种联系就是文件的关闭。

FILE结构:定义在〈stdio.h〉中。形式如下:
typedef struct
{
int _fd;   /*文件代号*/
int _cleft;       /* 文件缓冲区所剩字节数*/
int _mode;     /* 文件使用模式*/
char * nextc;     /* 下一个等待处理的字节地址, 即文件内部指针*/
char * buff;     /*  文件缓冲区首地址  */
}FILE;

二、 主要操作函数
1 文件的打开与关闭:
1.1 打开文件函数fopen()
功能:打开文件
用法:fopen(char* filename,  char* mode);
一般形式:文件指针名=fopen(文件名,使用文件方式);
返回值:文件指针
#include <stdio.h>
FILE *fp;
fp = fopen(char* filename,  char* made);
if(fp == NULL) /*一般在打开文件后判断文件指针为否为空*/
{
exit(0);
}
fclose(fp);
mode种类有:
r:打开只读文件,该文件必须存在。
r+:打开可读写的文件,该文件必须存在。
w :打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。
w+:打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。
a:以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。
a+:以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。
全部十二种打开方式如有兴趣参考附录一

1.2 关闭文件函数fclose()
功能:关闭文件指针
返回值:0表示关闭顺利,非0关闭时出错
在使用完一个文件后应该关闭它,以防止它再被误用。"关闭"就是使文件指针变量不指向该文件,此后不能再通过该指针对其相连的文件进行读写操作,除非再次打开,使该指针变量重新指向该文件。
用fclose函数关闭文件。fclose函数调用的一般形式为: fclose(文件指针);
例如:fclose(fp); 用fclose函数打开文件时所带回的指针赋给了fp,现把该文件关闭。应养成在程序终止上前关闭所有使用的文件的习惯,如果不关闭文件将会丢失数据。fclose函数返回一个值,顺利执行关闭操作返回值为0;如果返回非0值,则表示关闭时有错误。
2 文件的读与写:
对文件的读和写是最常用的文件操作。在C语言中提供了多种文件读写的函数:
使用以上函数都要求包含头文件stdio.h
字符读写函数 :fgetc和fputc
字符串读写函数:fgets和fputs
数据块读写函数:fread和fwrite //这两个函数感兴趣的同学可以深入
格式化读写函数:fscanf和fprinf
1.1 字符读写函数 :fgetc和fputc
函数名:fgetc()
函数说明:fgetc( )函数从输入流的当前位置返回一个字符,并将文件指针指示器移到下一个字符处,如果已到文件尾,函数返回EOF,此时表示本次操作结束,若读写文件完成,则应关闭文件。
函数用法:char fgetc(FILE *stream)
返回值:成功:返回值所得到的字符;失败:返回EOF(-1)。

对于fgetc函数的使用有以下几点说明:
1. 在fgetc函数调用中,读取的文件必须是以读或读写方式打开的。
2. 读取字符的结果也可以不向字符变量赋值
例如:
fgetc(fp);
但是读出的字符不能保存
3. 在文件内部有一个位置指针。用来指向文件的当前读写字节。在文件打开时,该指针总是指向文件的第一个字节。使用fgetc 函数后,该位置指针将向后移动一个字节。 因此可连续多次使用fgetc函数,读取多个字符。应注意文件指针和文件内部的位置指针不是一回事。文件指针是指向整个文件的,须在程序中定义说明,只要不重新赋值,文件指针的值是不变的。文件内部的位置指针用以指示文件内部的当前读写位置,每读写一次,该指针均向后移动,它不需在程序中定义说明,而是由系统自动设置的。
分析工程fgetc

函数名:fputc()
函数说明:fputc()函数完成将字符ch的值写入所指定的流文件的当前位置处,并将文件指针后移一位。fputc()函数的返回值是所写入字符的值,出错时返回EOF。
函数用法:char fputc(char ch,FILE *stream)
返回值:成功:返回值所得到的字符;失败:返回EOF(-1)。

对于putc函数的使用也要说明几点:
1. 被写入的文件可以用写w、读写rw、追加方式打开,
2. 每写入一个字符,文件内部位置指针向后移动一个字节。
3. fputc函数有一个返回值,如写入成功则返回写入的字符,否则返回一个EOF。可用此来判断写符,写入一个文件,再把该文件内容读出显示在屏幕上。
分析工程fputc
1.2 字符串读写函数:fgets和fputs
char *fgets(char *str,int num,FILE *stream)
fgets() 函数从文件流stream中读取至多num-1个字符,并把它们放入str指向的字符数组中,在读入的最后一个字符后加上串结束标志'\0'。读取字符直到遇见回车符或EOF(文件结束符)为止,或读入了所限定的字符数。
int fputs(char *str,FILE *stream)
fputs( )函数将str指向的字符串写入流文件。操作成功时,函数返回0值,失败返回非零值。
参考程序fgets_and_fputs工程
1.3 数据块读写函数:fread和fwrite (参考,有兴趣同学见附录三)
int fwrite(char * buf, unsigned size, unsigned n, FILE *fp); size 每个数据的字节数,n个数据. 成功返回写入字符的个数。
int fread(char *buf, unsigned size, unsigned n, FILE *fp);   成功返回读取字符的个数。把指定格式的数据写入文件, 或读取指定格式的数据
例如:fread(fa,4,5,fp); 其意义是从fp所指的文件中,每次读4个字节(一个实数)送入实数组fa中,连续读5次,即读5个实数到fa中。
1.4 格式化读写函数:fscanf和fprinf

函数名: fscanf()
功能: 从一个流中执行格式化输入
用法: int fscanf(FILE *stream, char *format[,argument...]);
函数说明:fscanf()会自参数stream的文件流中读取字符串, 再根据参数format 字符串来转换并格式化数据。转换后的结构存于对应的参数内。
返回值:成功则返回参数数目, 失败则返回-1

函数名:fprintf()
功能: 传送格式化输出到一个文件中
用法: int fprintf(FILE *stream, char *format[, argument,...]);
返回值:成功时返回转换的字节数,失败时返回一个负数

分析程序ReadFile

3 文件位置的确定与指针管理.
1.5 int  feof(FILE *fp);
文件尾的测试: int feof(FILE *fp); //当前已到达文件尾返回非0, 否则返回0
1.6 int  rewind(FILE *fp);
把文件内部指针重新定位到文件的起始位置
1.7 int  fseek(FILE *fp, long offset, int from);
把文件内部指针定位到指定的位置:     //成功返回0
from 是定位的起始点.
SEEK_SET    0    从文件头开始
SEEK_CUR    1    从文件内部指针当前位置开始
SEEK_END    2   从文件尾开始
offset是以From为起始点的依稀字节数,大于0表示向文件尾方向, 0不移动,
1.8 int  ferror(FILE *fp);
文件操作出错测式
用于对由FP指向的文件最近一次操作进行正确性测试. 出错返回非0,还没返回0
文件的删除
删除文件,原型是int remove(const char *filename); 参数就是要删除的文件名,成功返回0。

更多函数附录二
三、 经验总结.
char ch;
ch = getchar()功能等价于ch = fgetc(stdin)功能等价于scanf("%c",ch)功能等价于fscanf(stdin, "%c",ch)
putchar(ch)功能等价于printf("%c",ch)功能等价于fputc(stdout)功能等价于fprintf(stdout, "%c", ch)
注意:这些函数存在的一些细微的差别。注意它们的返回值的不同。

附录:
附录一:全部文件打开方式
使用文件的方式共有12种,下面给出了它们的符号和意义。
文件使用方式 意义
1. rt只读打开一个文本文件,只允许读数据
2. wt只写打开或建立一个文本文件,只允许写数据
3. at追加打开一个文本文件,并在文件末尾写数据
4. rb只读打开一个二进制文件,只允许读数据
5. wb只写打开或建立一个二进制文件,只允许写数据
6. ab 追加打开一个二进制文件,并在文件末尾写数据
7. rt+ 读写打开一个文本文件,允许读和写
8. wt+ 读写打开或建立一个文本文件,允许读写
9. at+ 读写打开一个文本文件,允许读,或在文件末追加数据
10. rb+ 读写打开一个二进制文件,允许读和写
11. wb+ 读写打开或建立一个二进制文件,允许读和写
12. ab+ 读写打开一个二进制文件,允许读,或在文件末追加数据

1) 文件使用方式由r,w,a,t,b,+六个字符拼成,各字符的含义是:
r(read): 读
w(write): 写
a(append): 追加
t(text): 文本文件,可省略不写
b(banary): 二进制文件
+: 读和写
2) 凡用“r”打开一个文件时,该文件必须已经存在,且只能从该文件读出。
3) 用“w”打开的文件只能向该文件写入。若打开的文件不存在,则以指定的文件名建立该文件,若打开的文件已经存在,则将该文件删去,重建一个新文件。
4) 若要向一个已存在的文件追加新的信息,只能用“a”方式打开文件。但此时该文件必须是存在的,否则将会出错。

附录二:更多函数
更多文件相关函数详解
Rewind()函数:将文件指针重新指向一个流的开头
原型:int rewind(FILE *stream);
其实本函数相当于fseek(fp,0L,SEEK_SET);
例子:一般我们会通过下面的方法来获取文件中字符的个数:
    FILE *fs=fopen("C:\1.txt","r");//创建文件流
    long length=0;//声明文件长度
    fseek(fs,0,SEEK_END);//将文件内部指针放到文件最后面
    length=ftell(fs);//读取文件指针的位置,得到文件字符的个数
    rewind(fs);//将文件指针重置到文件最前面

fseek()函数:把fp的文件读写位置指针移到指定的位置。
int fseek(FILE *fp,long offset,int origin);
origin指的是“起始点”,它有三个常量的值,如下:
起始点对应的数字   代表的文件位置
SEEK_SET 0   文件开头
SEEK_CUR 1   文件当前位置
SEEK_END 2   文件末尾

Ftell()函数:得到流式文件的当前读写位置,其返回值是当前读写位置偏离文件头部的字节数。
原型:long ftell(FILE *fp)

feof()
检测是否已到文件尾,是返回真,否则返回0,其原型是int feof(FILE *stream);

附录三
见参考程序fread_and_fwrite工程
fread(pBuffer,size,count,pFile);
fwrite(pBuffer,size,count,pFile);
要读写一个数据块的话,无论是读还是写,都需要指定一个起始地址,读的话从这个起始地址读,写的话从这个起始地址写,上面函数定义中的第一个参数pBuffer就是用于指定这个起始地址,size读写的字节数,count则指定读写多少个size大小的数据,pFile是文件结构指针。
具体程序参考源程序,以下代码片段
写文件
for(i=0;i<2;i++)
{
scanf("%s %s %f %f",student.name,student.num,&student.score[0], &student.score[1]);
/* 输入一记录*/
fwrite(&student,sizeof(student),1,fp1); /*成块写入文件*/
}
读文件
for (i=0;i<2;i++)
{
fread(&student,sizeof(student),1,fp1); /* 从文件成块读*/
printf("%s %s %7.2f %7.2f\n",student.name, student.num,
student.score[0], student.score[1]); /* 显示到屏幕*/
}

Dennis Ritchie and Steve Jobs


Chinese Version:

丹尼斯.里奇 (Dennis Ritchie) 是 C 语言的共同发明人, 而后者基本上可以说是整个计算机行业的基础. 他也是 UNIX 的共同发明人, 而 UNIX 也是整个计算机行业的基础, 除了 Windows (尽管 Windows 极大得受到了 UNIX 的影响). 苹果的 OS X 是基于 UNIX 的操作系统. 但是, 很多人以为是史蒂夫.乔布斯一个人做了这一切, 所以他是个救世主.
他"借用"他人的想法, 设计和功能, 而当别人这么做的时候他却牢骚满腹. 1996 年, 他说:"我们不知羞耻的窃取伟大的想法. [1]" 2005 年, 他说:"他们无耻的抄袭我们. [2]" 今年, 他说:"我要毁了 Android, 因为它是偷来的. 我不惜为此发动核战. [3]" 而几乎就是紧接着, 他发布了 iOS 5, 而 iOS 5 充满了 Android 中首先出现的功能. 这人就是个混账. 我对于像他这种伪君子毫无耐性可言.

[1] We have always been shameless about stealing great ideas.
[2] They are shamelessly copying us.
[3] I'm going to destroy Android, because it's a stolen product. I'm willing to go thermonuclear war on this.

以下为 11 月 5 日的更新:

因为人们在评论前都不看先前的评论 (糟透了!), 因此我在这里附上我的进一步解释.

1) 我的看法是史蒂夫.乔布斯是个伪君子. 这是本文唯一的重点. 他并非孤身一人达到了他的高度. 他窃取他人 (他也承认这点), 而当别人这么做的时候他就牢骚满腹. 这正是伪君子的定义.

2) 我的看法在史蒂夫.乔布斯死之前很久很久就形成了. 我也不打算就因为他死了这点而停止抱怨. 如果这让我变成一个坏人, 那就这样吧. 只要我们还应当在世间享有言论自由, 我会继续善加利用. 只要人们继续分享他们的神圣的史蒂夫的看法, 我也将继续分享我的反对意见.

3) 不准确的话就变成诽谤了. 但是我所说的一切都直接来自他本人. 他曾说他很乐于偷窃, 而后又怒气冲天, 就因为别人也这么做了.

4) 许多人的回复对我的说法添油加醋. 特别是, 有人说我认为史蒂夫.乔布斯或苹果一文不值或是对世界毫无贡献. 这不对, 我从未如此说过. 参见 1).

5) 我有癌症 (但是我战胜了它), 所以别跟我提他的癌症. 我不会为此痛哭流涕的.

6) 有人说我嫉妒苹果. 我有什么可嫉妒的呢? 搞笑.

7) 我认为苹果的问题是他们施加于他们的顾客, 供应商, 开发者和设备的种种限制. 史蒂夫.乔布斯活在控制或被控制的环境中. 而我生在一个共享和相似共享的环境中. 两者全然不搭.

8) 我认为人们应该汲取他人的想法. 否则世界怎么会变好呢? 自私的保有你的想法的意义在哪儿呢? 除了你自己这样还对谁好处? 狗屁.

From

English Version:

Dennis Ritchie co-invented C which is the basis of basically everything that involves computers. He co-invented UNIX which is the basis of everything computers except Windows (though Windows was very, very extremely influenced by it). Apple's OS X is a UNIX-based platform. But, no, so many people think Steve Jobs did it all alone and that he should be praised as a savior. Not only did he "borrow" ideas, designs, and features from everyone else, he whined if anyone ever did the same. In 1996 he said "We have always been shameless about stealing great ideas." In 2005 he said "They are shamelessly copying us." This year he said "I'm going to destroy Android, because it’s a stolen product. I’m willing to go thermonuclear war on this" and then almost immediately afterward released iOS 5 with a ton of features first introduced in Android. The guy is/was an asshole. I have no patience for a hypocrite like him.

(I wrote this as a response to someone's post containing this picture. I figured I may as well share it here. My opinions on this matter certainly are no secret.)

---------------

EDIT (8:31pm Nov 5): Because people don't read the comments before they post them (naughty, naughty!) I'm posting my clarification here. I'm getting a lot of comments complaining to me while saying exactly the same thing I've already said.


1) My complaint is that Steve Jobs was a hypocrite. That's all I said here about him. He did not get to the point he was without help. He stole plenty from others (and he admitted it) but he complained when other people did the same thing. That is the definition of hypocrisy.

2) I was complaining about Steve Jobs and Apple way, way, way before he died. I'm not going to stop complaining simply because he died. If that makes me a bad person, so be it. For as long as we supposedly have free speech in the world, I'll continue to use it. And as long as people continue to share their Holy Steve opinion, I'll continue to share my opinion of the contrary.

3) It would be libel if it were inaccurate. But everything I said is taken straight from his mouth. He said he was happy to steal and then threw a fit because someone else did it too.

4) Many of your comments are adding words to my post that I didn't say. Particularly, I'm hearing that I said that Steve Jobs or Apple were worthless or didn't add anything to the world. That's not true and I never said it. See also point #1 above.

5) I had cancer too (but beat it) so don't come whining to me about his cancer. You'll get no tears from me.

6) I've heard something about me being jealous of Apple. Why would I be jealous? That's a silly argument.

7) My problem with Apple is the restriction they place on their customers, vendors, developers, and devices. Steve Jobs is in a Control or be controlled environment. I'm in a Share and share-alike environment. These things do not mesh.

8) I do believe people should borrow ideas from everyone else. How else will we have a better world? What is the value of being selfish with your ideas? How will that help anyone except yourself? Bullcrap.

Perl基本输入输出

从STDIN输入
从标准输入设备读取数据是很容易的,我们已经从第一课上就使用<STDIN>操作符了。例如:
$name=<STDIN>;
在数组环境中,可把所有剩余的行作为一列表返回。如:
@name=<STDIN>;
此时,需要读入多行,然后再对各行分别处理。通常做法是:
while($_=<STDIN>){
chop($_);
#处理$_(每一行)
}
上述程序可简化为:
while(<STDIN>){
chop; #等同于chop($_)
处理$_(每一行)
}
因为$_是许多操作符的缺少变量。

从<>输入

读取输入的另一种方法是使用<>。<>是从Perl程序命令行所指定的文件中读取数据。例如有个文件名为pro1的程序:
#!/usr/bin/perl;
while(<>){
print $_;
}
在UNIX环境中运行:
pro1 file1,file2,file3
此时,将依次读入文件file1,file2,file3中的每一行,然后显示输出。

向STDOUT输出

Perl用print和printf向标准输出设备输出。
print操作符使用字串列表作为参数,依次把每个字符串发送给标准输出,在发送时不插入或改变任何字符。如:
print "网上学园"."欢迎您!" #打印"网上学园欢迎您!"
print 1+2,"你好" #打印"3你好"
printf操作符用于格式化输出,在C语言中有相同的功能。它使用一个参数表,第一个参数是格式控制字符串,它定义了如何打印其余参数。例如:

printf "%10s% 8d%8.2f\n",$a,$b,$c
它的打印结果为:10个字符宽度的$a,空格,8个字符宽度的整数$b,8个字符宽度且包含两位小数的浮点数$c,最后换行。
注意:与前面操作符相类似,printf()的括号可以省略。

鼠标详解

看中三款鼠标
Logitech罗技M570无线轨迹球
Rapoo 雷柏 7100P 5G无线鼠标(黑色)
logitech罗技 M705(超长电池无线鼠标升级版)

DPI参数


DPI指鼠标的定位精度,单位是dpi或cpi,指鼠标移动中,每移动一英寸能准确定位的最大信息数。
DPI是dots per inch的缩写,意思是每英寸的像素数。CPI是count per inch的缩写,意思是每英寸的采样率。dpi和cpi都可以用来表示鼠标的分辨率,但是DPI反应的是个静态指标,用在打印机或扫描仪上显得更为合适。由于鼠标移动是个动态的过程,用CPI来表示鼠标的分辨率更为恰当。
当我们把鼠标向左移动一英寸时,400CPI的鼠标会向计算机发出400次“左移”信号,而800CPI的鼠标就发送800次。做个假设,我们把鼠标移动1/800英寸,那么800CPI的鼠标会向计算机传送一次移动信号,而400CPI的鼠标却没有反应,我们必须再移动1/800英寸它才会传送移动信号。

鼠标接口类型

串口

串口就是串行接口,即COM接口。这是最古老的鼠标接口,是一种9针或25针的D型接口,将鼠标接到电脑主机串口上就能使用。其优点是适用范围和机型最多,从古老的没有PS/2接口和USB接口的电脑到现在最新的电脑都能使用,缺点是串口通信的数据传输率太低,中高档鼠标不能发挥其高性能优势,而且不支持热插拔。在最新的BTX主板规范中已经取消了串口,随着BTX规范的普及,串口鼠标也必将逐渐被淘汰。

PS/2

PS/2接口是目前最常见的鼠标接口,最初是IBM公司的专利,俗称“小口”。这是一种鼠标和键盘的专用接口,是一种6针的圆型接口。但鼠标只使用其中的4针传输数据和供电,其余2个为空脚。PS/2接口的传输速率比COM接口稍快一些,而且是ATX主板的标准接口,是目前应用最为广泛的鼠标接口之一,但仍然不能使高档鼠标完全发挥其性能,而且不支持热插拔。在BTX主板规范中,这也是即将被淘汰掉的接口。
需要注意的是,在连接PS/2接口鼠标时不能错误地插入键盘PS/2接口(当然,也不能把PS/2键盘插入鼠标PS/2接口)。一般情况下,符合PC99规范的主板,其鼠标的接口为绿色、键盘的接口为紫色,另外也可以从PS/2接口的相对位置来判断:靠近主板PCB的是键盘接口,其上方的是鼠标接口。

USB


USB是英文Universal Serial Bus的缩写,中文含义是“通用串行总线”。目前常见的USB接口按照版本可分为USB1.1及USB2.0,其最大数据传输率分别是12Mbps和480Mbps,是一种高速的通用接口。这是一种新型的鼠标接口,目前许多新的鼠标产品都采用了USB接口,与前两种接口相比,其优点是非常高的数据传输率,完全能够满足各种鼠标在刷新率和分辨率方面的要求,能够使各种中高档鼠标完全发挥其性能,而且支持热插拔。而且随着BTX规范的普及,这将是今后唯一的鼠标接口。
各种鼠标接口之间也能通过特定的转接头或转接线实现转换,例如USB转PS/2转接头等等。
引用:ZOL

无线/有线


蓝牙


Ubuntu下批量添加用户

今天终于再一次感受到Google 的优势,搜出来的第一篇文章就直接能够实现我的效果,之前一个老师用百毒查半天没有解决。

Ubuntu自带工具批量添加用户


我们知道一般批量建立用户多是通过shell script,由于许多人没有编程基础,所以用网上查找的脚本批量添加用户遇到了很多麻烦,Linux联盟网站上收集了许多这样的脚本,熟练的用户可以去查找,本文主要是借助Ubuntu Linux自带的工具直接批量添加用户,不需要编写shell脚本批量添加用户帐户的方法。
Ubuntu中自带的工具是newusers 和chpasswd,下边我们通过范例配合newusers和chpasswd命令逐步讲解:

第一步我们需要在文本编辑器中按照/etc/passwd的格式录入帐户信息,我们采用gedit编辑器

sudo gedit /root/account.txt

然后在打开的编辑器中输入相应的内容

student001:x:601:601::/home/sutdent001:/bin/bash

student002:x:602:602::/home/sutdent002:/bin/bash

……..以下内容省略

第二步我们使用newusers命令添加用户,(要以ROOT用户登陆)

sudo newusers</root/account.txt

如果执行过程中没有出现错误信息,我们查看passwd文件和home目录应该已经出现了相应的信息。

第三步执行:

sudo pwunconv

将/etc/shadow产生的shadow密码译码,然后写回/etc/passwd,同时删除shadow文件中的密码字段,取消shawdow密码功能

第四步是建立密码表,以支持chpasswd命令,以下是范例:

sudo gedit /root/password.txt

student001: 4dtgdas

sutdent002: df3456d

………以下省略

第五步将密码倒入相应的文件:

sudo chpasswd</root/password.txt

如果执行没有出现错误,那就会在/etc/passwd文件中以明文显示密码。

最后一步是将passwd的明文密码用pwconv命令编译为shadow文件,这样原来passwd文件中的明文密码将会被x取代。

Sudo pwconv

完毕……

我们知道一般批量建立用户多是通过shell script,由于许多人没有编程基础,所以用网上查找的脚本批量添加用户遇到了很多麻烦,Linux联盟网站上收集了许多这样的脚本,熟练的用户可以去查找,本文主要是借助Ubuntu Linux自带的工具直接批量添加用户,不需要编写shell脚本批量添加用户帐户的方法。

引用:1 2

伟大辩手

今天外教的英语课上看了一部片子-- Great Debaters -- 中文译名叫做伟大,也有叫做伟大的辩论家。我们花了两节课的时间观看这部片子,虽然外教可能初衷是让我们学习其中的单词,扩充词汇,而我却记住了其中的一句话 -- An unjust law is no law at all -- 一部不公正的法律就是没有法律。

《伟大辩手》这部电影取材于上世纪30年代发生在美国的真实故事,讲的是德州一所黑人学院辩论队成长的故事。影片中有许多精彩的辩论片段。这里选用的与哈佛的辩论是虚构的,它的故事原型是威利学院辩论队与南加州大学的辩论,威利学院取得了这场辩论的胜利。

《伟大辨手》中最后一场辩论全文(中英对照)
正方一辩(威力大学 詹姆士·法默二世):
  James Farmer: Resolved: Civil 1)disobedience is a moral weapon in the fight for justice. But how can disobedience ever be moral? Well, I guess that depends on one’s definition of the words. Word.
  In 1919, in India, 10,000 people gathered in 2)Amritsar to protest the 3)tyranny of British rule. General Reginald Dyer trapped them in a courtyard and ordered his troops to fire into the crowd for ten minutes. Three hundred and seventy-nine died...men, women, children...shot down in cold blood. Dyer said he had taught them a moral lesson. Gandhi and his followers responded not with violence but with an organized campaign of non-cooperation. Government buildings were occupied. Streets were blocked with people who refused to rise, even when beaten by police. Gandhi was arrested, but the British were soon forced to release him. He called it a moral victory. The definition of moral: Dyer’s lesson or Gandhi’s victory? You choose.
辩题:非暴力(civil disobedience)抵抗是维护正义的道德武器。但是抵抗怎么能是道德的呢?我想,那就要取决于这些词汇的定义了。
1919年,印度一万人在阿密萨集会抗议英国的暴君统治,雷吉诺·戴尔将军将他们困在一个院子里然后让军队往群开枪十分钟,379人死亡。男人,女人,孩子……被残酷杀害。戴尔说他给他们上了一堂道德课。甘地和他的追随者没有用暴力反抗,而是一个组织好的不合作活动:政府大楼被占领,道路被不愿起身的人们所堵死,甚至被警察殴打也坚持着。甘地被逮捕了,但是英国人被迫释放了他。他说这是道德的胜利。
道德的定义:戴尔的课还是甘地的胜利?你来选。
反方一辩(哈佛大学):

  Harvard Debater A: From 1914 to 1918, for every single minute the world was at war, four men laid down their lives. Just think of it. Two hundred and forty brave young men were4)hurled into eternity every hour of every day, of every night, for four long years. Thirty-five thousand hours. Eight million two hundred and eighty one thousand casualties. Two hundred and forty. Two hundred and forty. Two hundred and forty.   
  Here was a 5)slaughter 6)immeasurably greater than what happened at Amritsar. Can there be anything moral about it? Nothing...except that it stopped Germany from 7)enslaving all of Europe.  
  Civil disobedience isn’t moral because it’s non-violent. Fighting for your country with violence can be deeply moral, demanding the greatest sacrifice of all: Life itself. Non-violence is the mask civil disobedience wears to conceal its true face: 8)anarchy.

从1914到1918,世界在战火中的每一分钟,四个人倒下。想想吧,四年内的每一个白天,每一个晚上的每一个小时,240个勇敢的生命都坠入永恒的沉睡。35000小时8,281,000伤亡。240,240,240!这是一个屠杀,比在阿密萨规模大无数倍的屠杀!有何道德可言吗?没有,除了这让德国奴役欧洲的计划完全破产。
非暴力抵抗并非因为是非暴力而成为道德的,为你的国家奋力杀敌可以是非常道德的,这要求最高程度的牺牲:生命。非暴力是消极合作所佩戴的面具,用以遮掩它的真实面目:无政府正义。
正方二辩(威力大学 萨曼莎·布可):

  Samantha Booke: Gandhi believes one must always act with love and respect for one’s opponents, even if they are Harvard debaters. Gandhi also believes that lawbreakers must accept the legal consequences for their actions. Does that sound like anarchy?   
  Civil disobedience is not something for us to fear. It is, after all, an American concept. You see, Gandhi draws his inspiration not from a Hindu 9)scripture, but from 10)Henry David Thoreau, who I believe graduated from Harvard and lived by a pond not too far from here.

甘地相信一个人必须对他的对手充满爱和敬意,即使他们是哈佛的辩手。甘地也相信犯法之人需接受他们行为的后果。这是无政府主义吗?
非暴力抵抗不是我们应该恐惧的东西,不管怎么样它都是源于美国的思想。你看,甘地受到的影响并不来自于印度教经典,而是来自亨利·大卫·梭罗。我相信他是哈佛毕业的,曾经住在离这里不远的小池塘边。
反方二辩(哈佛大学):

  Harvard Debater B: My opponent is right about one thing. Thoreau was a Harvard grad, and, like many of us, a bit self-righteous. He once said, “Any man more right than his neighbors 11)constitutes a majority of one.” Thoreau the idealist could never know that Adolf Hitler would agree with his words. The beauty and the burden of democracy is this: No idea prevails without the support of the majority. The people decide the moral issues of the day, not a majority of one.

对方辩友一件事说对了,梭罗是哈佛毕业生,也像我们大多数人一样,有点自以为是。他说过,“任何比邻居要更正确的人都构成一个人的大多数”,梭罗这个理想主义者可能永不知希特勒会同意他的观点。民主之美及之重是:任何观点都需获大多数通过。人民判断道德问题,而不是一个人的大多数。
正方二辩(威力大学 萨曼莎·布可):

  Samantha: Majorities do not decide what is right or wrong. Your conscience does. So why should a citizen surrender his or her conscience to a legislator? No, we must never, ever kneel down before the tyranny of a majority.

大多数并不决定什么是对或错,你的良心决定这些。为什么一个市民要将他的良知交由立法者支配?不,我们永远不能向一个大多数的暴政屈服。
反方二辩(哈佛大学):

  Harvard Debater B: We can’t decide which laws to obey and which to ignore. If we could...I’d never stop for a red light. My father is one of those men that stands between us and chaos: A police officer. I remember the day his partner, his best friend, was gunned down in the line of duty. Most vividly of all, I remember the expression on my dad’s face. Nothing that erodes the rule of law can be moral, no matter what name we give it.

我们不能决定遵守或无视哪部法律,如果我们可以,红灯我就不停。
我的父亲是一个站在我们和混乱之间的人——一个警察。我还记得那天他的搭档——他最好的朋友因公而被枪杀。最生动的是,我记得我爸爸脸上的表情:任何对法律的侵蚀都是不道德的,不管它们的名字多么花哨!
正方一辩(威力大学 詹姆士·法默二世):

  James: In Texas...they 12)lynch Negroes. My teammates and I saw a man strung up by his neck and set on fire. We drove through a lynch mob, pressed our faces against the floorboard. I looked at my teammates. I saw the fear in their eyes...and worse...the shame.

  What was this Negro’s crime that he should be hung, without trial, in a dark forest filled with fog? Was he a thief? Was he a killer? Or just a Negro? Was he a sharecropper? A preacher? Were his children waiting up for him? And who are we to just lie there and do nothing? No matter what he did, the mob was the criminal. But the law did nothing, just left us wondering: “Why?”

  My opponent says nothing that erodes the rule of law can be moral. But there is no rule of law in the13)Jim Crow South, not when Negroes are denied housing, turned away from schools, hospitals, and not when we are lynched. 14)St. Augustine said, “An unjust law is no law at all,” which means I have a right, even a duty, to resist...with violence or civil disobedience. You should pray I choose the latter.



在德州,人们私刑处死黑人。我的队友和我看到一个男人,在脖子处绑着吊起来,然后被烧死。我们开过一群动私刑的暴民,我们把脸紧紧贴在车子地板上。我看着我的队友,他们眼中我看到了恐惧。更悲哀的是,我看到了羞耻.
那个黑人犯了什么罪,让他没有审判,在一个雾气弥漫的森林中直接被吊死?他是个贼?是个杀人犯?还是只因为他是黑人?他是个佃农?传道者?他的孩子在等着他吗?我们躺着一动不动又成为了什么?不管他做了什么,那群暴民才是罪犯,但是法律什么也没做。
让我们不禁思考对方辩友说:任何对法律的侵蚀都是不道德的。但是在施行种族隔离策略的南方,没有法律;至少在黑人被拒绝居住权的时候,没有法律;在被学校,医院拒收的时候,在我们被私刑处死的时候,没有法律。圣奥古斯丁说:“一个不公正的法律就是没有法律”。这意味着我有权力,甚至责任,去用暴力或者非暴力抵抗来反抗。你们应该庆幸我选择了后者。

七年后,在1942年,詹姆士·法默二世成立了种族平等协会,变成了民权运动的领导人
经历了一生的教书和写作詹姆士·法默一世在1961年逝世,在他死前一天,当时已是律师的萨曼莎·布可
搭上了第一班前往阿拉巴马的自由列车。
亨利·罗进了加州大学,继续进修神学,成了牧师
梅尔文·托森成了世界闻名的诗人,他还是继续和南方佃农工会合作,到了1936年底,工会已有从七个州加入的31000个会员
之后十年,威利大学辩论队所向无敌

参考:1

Perl复杂数据结构-动态语言程序设计7

使用复杂数据结构处理问题

字典数据练习5

#处理字典
open(in,"dict1.txt");
while($Line=<in>)
{
chomp $Line; my %tr=(); #注意这里要使用局部变量以便单独分配内存
($word,$trans)=$Line=~/^(\S+)\=\>(.+)$/g;
@items=$trans=~/([^\;]+)/g;
foreach (@items)
{
$tr{$_}=0;
}
$dict{$word}=\%tr; #值为哈希的哈希
}
close(in);


open(in,"dict2.txt");
while($Line=<in>)
{
chomp $Line;
($word,$trans)=$Line=~/^(\S+)\=\>(.+)$/g;
@items=$trans=~/([^\;]+)/g;
foreach (@items)
{
${$dict{$word}}{$_}=0; #没有的项,perl可以自动创建
}
}
close(in);

#分层遍历输出
foreach $ele (sort keys %dict)
{
print $ele.'=>';
foreach $e (sort keys %{$dict{$ele}})
{
print $e.';';
}
print "\n";
}

Perl——字音对应表的生成。使用了复杂数据结构。语料为transcript.txt

#读取数据
open(in,"transcript.txt");
while($Line=<in>)
{
chomp $Line;
@array=$Line=~/([^\s\>]+)\[([^\]]+)\]/g;
for( $i=0;$i<@array-1;$i++ )
{
if($i%2==0)
{

@tmpChar=$array[$i]=~/(.{2})/g;
@tmpPy=$array[$i+1]=~/(\S+)/g;
for( $j=0;$j<@tmpChar;$j++ )
{
#值为哈希表的哈希表
${$dict{$tmpChar[$j]}}{$tmpPy[$j]}=0;
}
}

}
}
close(in);

#分层遍历输出
foreach $ele (sort keys %dict)
{
print $ele.":\t";
foreach $e (sort keys %{$dict{$ele}})
{
print $e.'; ';
}
print "\n";
}

Perl——历时字频处理任务的答案代码。使用了复杂数据结构。

#用来统计各个词在不同年份中的出现频率,形成词汇的生命曲线
$path="D:\\Documents\\desktop\\lex";
$year=1950;
opendir(DIR,$path);
@files=readdir(DIR);
closedir(DIR);

open(out,">mergedLEXS");
foreach $file (@files)
{
if($file=~/txt$/ )
{
print "is processing $file\n";
$file=~/^(\d+)/;
$year=$1;
$file=$path."\\".$file;
merge($file,$year);
}
}

close(out);

foreach $ele (sort keys %hash)
{
print out $ele."\t";
foreach $e (sort keys %{$hash{$ele}})
{
print out "year".$e.":".${$hash{$ele}}{$e}."\t";
}
print out "\n";
}



sub merge
{
my ($inp,$jahr)=@_;
open(in,"$inp");
while(<in>)
{
chomp;
$_=~/^(\S+)\s+(\S+)/;
${$hash{$1}}{$jahr}=$2;
}
close(in);
}



Gmail查找邮件技巧

Gmail 找邮件:随心所欲,自由自在

据 TNW 报道,Google 宣布 Gmail 搜索功能得到一个提升:你可以在你的邮件中轻松地通过不同选项找到想要的。
通过使用高级搜索操作符,用户可以定义所寻找的邮件大小、日期、发件人、主题等:

“高级搜索操作符是在 Gmail 搜索中提供特殊操作的查询词或符号。这些操作符使你能够快速而准确地找到所需邮件。同时它们也可以用于设置邮件过滤,使你自动地安排收件箱。”

比如,你想找一年前 5M 以上的邮件,你可以输入:size:5m older_than:1y。

常见的搜索操作符包括:

from:寄件人
to:收件人
subject:主题中含某个词
OR:或者,如 from:A OR from:B
-:而不是,如:dinner-movie,意味着包含“dinner”且不包含“movie”的邮件

给所有翻墙与不翻墙的朋友

回顾对Google的封锁

Google透明度报告对昨天中国地区干扰Google服务的情况进行了流量反馈,主要是从下午5点左右开始中国地区访问Google服务大面积出现问题。

来自Cherysun Zhang,Google透明度报告

对谷歌的封锁解除 - 这是一个错误还是测试?

昨日对Google网站进行DNS污染的举措似乎已经解除。封锁的解除应该发生在今天早晨。 因为DNS的机制, 这需要一定时间才能传播到本地ISP的DNS服务器和用户计算机,因此如果你还是不能在中国访问Google,这应该只是时间问题。你可以试图刷新DNS 缓存,之后应该就能访问Google了.

虽然对Google的封锁只进行了12小时, 这应该是中国防火长城决策中对用户影响最广的一个. 到底发生了什么? 以下是一些推测:

1. 这是一个错误么?

对全球第一的搜索引擎 (中国第二) 进行封锁发生在周五晚上。 这个可能是某人不小心按错了按钮, 对错误的域名进行了DNS污染. 他们可能只想封锁 mail.google.com. 如果这是一个错误, 这可能能解释为什么封锁在今早解除了. 这样的话, 至少有一个中国国家防火墙的雇员会被解雇. 但是, 我们有一个理由相信这不是一个错误. 中国政府不仅封锁了 google.com 和其子域名 (比如 mail.google.com, play.google.com, maps.google.com 等),他们还DNS污染了 google.com.hk 和 google-analytics.com. 这不可能是一个错误导致的 - 他们必须添加3个封锁规则. 如果这不是因为错误导致, 这次对Google封锁还可能因为什么?

2. 这是中国政府在测试人民的反应么?

我们之前讨论过中国政府没有对Gmail进行封锁只是因为他们害怕民众对全面封锁Gmail的反应. 但是,他们曾使其访问速度缓慢,不稳定. 在2011年3月, 他们似乎准备全面封锁Gmail,但最终没有这样做. 这次迅速解除对Google的封锁是在在测试人民的反应么?你可以在这里浏览新浪用户对此的反应. 显然,公众对不能访问Google,Gmail表示不满。 许多用户将此归咎于正在进行的全国代表大会.可能中国政府也了解到人们的反应,知道了人们对此决定深感不满?
令人感兴趣的是, 新浪微博没有对搜索关键词"Google"或者“谷歌”进行限制. 而且,他们似乎也没有, 删除最近Google的微博。 这可能是故意的, 因为他们也想观测用户的反应. 可能现在他们具体了解了公众对无法访问Google的反应,并且能作出在未来是否永久封锁Google的决定.

3. 只是中国政府测试"封锁Google"按钮么?

还有一种可能性是中国政府在测试“封锁Google”按钮. 中国政府可能想知道, 如果他们某日决定封锁Google, 他们能立马对其进行完全的封锁么.如果这真的是一个封锁测试, 时间上是恰当的(星期五晚上, 国际金融市场关闭).

无论如何, 现在的情形怎么样?

无论你对过去24小时有怎样的看法, 我们似乎回到了原点. 换句话说, Google没有被完全封锁, 但许多Google服务被单独的审查, 从完全封锁到部分封锁. 特别注意的是, Gmail非常不稳定, 这可能是因为,一个或多个IP地址被封锁.

Source: https://zh.greatfire.org/
Google+

整个推测过程让我想到了这篇文章

给所有不翻墙的朋友

当Youtube被封的时候,我淡定,因为我们有优酷,而且Youtube的英文视频我也看不懂
当Facebook被封的时候,我淡定,因为我们有人人,而且我也没有多少国外朋友
当Google被封的时候,我淡定,因为我们有百度,而且百度更懂中文
当Twitter被封的时候,我淡定,因为我们有微博,而且Twitter远没有微博功能强大
当Wordpress被封的时候,我淡定,因为我们有博客,而且Wordpress的各种插件我不用也罢
当Dropbox被封的时候,我有点不淡定了,因为国内同类服务做的像坨屎
当Gmail被封的时候,我有点不淡定了,因为Gmail几乎没有垃圾广告
当Google Docs被封的时候,我有点不淡定了,因为国内没有在线协作平台
当Picasa被封的时候,我有点不淡定了,因为国内没有在线相册
这时候,我突然想起来Youtube有即时翻译功能,而且里面每天都会产生大量优秀视频
这时候,我突然想起来Facebook有各种有趣应用,甚至可以整合到Outlook里面
这时候,我突然想起来Google有Scholar search,还有各种个性化的服务
这时候,我突然想起来Twiiter各种神奇,甚至可以用来估算龙卷风带来的损失
这时候,我突然想起来Wordpress可以做简易的网站,可以很轻松的定制个性化服务
于是,我想到墙外看看,却发现——我得不到他们 ,我自由获取信息的权利被默默的剥夺了
更加恐怖的是: 全世界都用Twitter,只有我们用微博
我们和他们生活在不同的维度,我们使用的永远是山寨品,甚至还要承担比正品更高的价格
当我们断绝了与外界的联系,无知者无畏将是我们唯一的宿命
比起在各种“异端邪说”中艰难寻找真理,对无知的恐惧更让我胆战心惊
给所有不翻墙的朋友:
你可以说我在墙内得到的信息足够了,翻墙出去完全没有必要
但请记得,终究有一天,你想看看外面的世界,但却发现,由于当初的漠不关心,我们现在已经生活在信息的牢笼中,再也出不去了

重装系统整理必备软件

电脑重装是一件极其麻烦的事情,尤其是Windows下已经积累了很多习惯,一夜恢复到初装的时候我会受不了的。所以把我要用的一些软件写下来,以免那天突然系统坏掉还一时想不起来装过什么。之前整理过一篇安装完Win7要做的几件事情

一、必备软件

Chrome

个人比较倾向于Chrome Dev版本,能够体验到Chrome最新的功能.类似24版本的地址栏直接分享.
这里能找到Chrome所有的版本,我一般选择Dev直接下载了.那句话在我这里就一点都不假了----IE只是用来下载Chrome的。
关于Chrome插件我会再写一篇专门介绍一下我现在在用的插件及脚本. 插入链接这里。

Google拼音输入法

实话来说Google拼音并不是最好的拼音输入法,但就搜狗拼音不能删除个人输入习惯来讲,我就不会再去使用搜狗拼音,不管搜狗词库有多大,输入有多准确那都不是我要的,我要的只是符合我输入习惯的一个拼音输入法,并且不会偷偷摸摸上传我的个人信息、收集我的输入习惯还不让我删除。所以Google拼音输入法就已经足够我使用了,虽然词库会有被屏蔽的危险,但是那至少是安全的。我也愿意相信Google的服务器能够保存我的输入习惯即使这个世界毁灭。
Google拼音输入法有两个版本,一个2.x、一个3.0的,最初的时候用的3.0的,但是发现3.0的英语写作助手并不是经常使用,同时也不实用,后来就一直用着2.x版本的了。

ESET NOD32 Antivirus

这个不解释,杀毒软件。必备。

Microsoft Office(MSDN-我告诉你

这个也不解释,虽然我个人比较倾向在线办公,可是现实总是不允许我全部搬迁到云端的。并且要打开一些文档这个还是少不了的。上面提供的网站是个好地方。

360安全卫士

对于360,我一直不想说什么,不管你叫不叫它流氓,至少在我看来他没有弹窗,没有广告,并且免费给我使用,没有给我带来很大困扰的同时也帮助我解决了不少的困难.在两年前我还不太懂电脑的时候,很多电脑上的术语还是360第一次让我知道了那些概念的意义.虽然后来慢慢知道了360的前身(3721),也经历了3Q大战,我也试图去寻找360的代替品,我用过新加坡的Toolwiz Care,用过魔方(也一直在用),也用过在3Q大战之后出现的种种安全卫士,却没有一款让我满意,以至于重装几次系统之后还是选择了360.我不管其他人怎么想360,360的发展却也饱含着艰辛,我想着如果有一天真的疼讯干掉了360,或者百度干掉了360,你会如何想.至少我还是佩服360那股勇气,敢于向疼讯,向百度发起进攻,暂不论其中最终目的的好坏,这股勇气还是值得佩服的.另外360通过其免费的杀毒软件方式建造起的一片生存环境至少比起疼讯不惜一切手段复制竞争对手,比起百度通过幕后打压个人站长的方式至少要光明的多.所以不管怎样,360还是我的选择之一,无论你怎么看.

WinRAR或者7z

压缩包,不解释

Daemon Tools Lite

装载光盘镜像的,不解释。

TeraCopy

Windows下快速复制,移动文件的加速器,Windows自带的文件复制实在是太烂了,要是拷贝一个大的文件,到最后时刻提醒拷贝失败,我会崩溃的。这个TeraCopy能在一定程度上减少这种错误。当然我听说Win8大大改进了文件复制的机制,貌似等我升级到Win8,我就能放弃使用TeraCopy了,但目前还是先用着吧。iPlaySoft异次元软件有详细的介绍。下载地址可以自行Google之

SumatraPDF

一款很小巧的查看PDF的软件,不过通常情况下,Chrome也能当Adobe Reader啦。

到目前为止,电脑已经基本能够工作了。其他的娱乐类,休闲类用到时自然会想起来。

二、影音类

Picasa

史上最好照片查看工具,照片管理工具,记得当初最早还是我们隔壁研究生大哥告诉我有这款工具的。当时还不知道这个Picasa原来是Google旗下的。

AirPlay 3

很小巧的一个播放器,界面却很美观,并且支持格式多,还是绿色版免安装。

Kmplayer

很强大的视频播放器,不过3.0以后的版本越来越臃肿,我现在用的是国人修改过的Kmplayer Plus版本。貌似这个是在360软件管家中下的,后来重装系统,变成了绿色版的,但是照样能用。

有了上面三个,基本的听歌视频简单图片处理是没什么问题了。。。

三、Google相关

Google Picasa,Google拼音,Google Chrome

上面已经提过

Google Earth

Google提供的在Windows下的软件本来就不算多,Google Earth算是元老级的了,并且Google Earth是所有Google产品中唯一一个全平台支持的软件了,哦对了,还有Chrome。Picasa不久前就已经宣布不支持Linux了。

Google Music Manager

上传音乐到Google Play Music的,还可以用来下载Play Music上面的音乐,我不知道哪天心血来潮,把我的1300+首歌全部下载到了本地硬盘,直接导致我的D盘红了。

Google Drive同步

用来同步Google Drive文档的。

四、其他

Ashampoo Snap 5
截图工具,作为一个截图工具有点大,不过功能全,也值得了。
Ditto
剪贴板扩充,可以保存几天前的剪贴板记录,很方便,并且能够同步剪贴板内容。
CCleaner
清理工具

Chrome启动参数

Chrome可以通过在快捷方式后面加上参数来实现一些特殊的功能,下面是一些命令的简单介绍.除了下面介绍到的一些命令,这里能够找到chromuim所有的启动参数,这里是Debug的命令.
具体详细的设置请看图片,找到Chrome的快捷方式,右击,属性.只需要通过修改目标一栏,在路径后面空格再加上相应的参数即可实现Chrome不同的功能,如下图,即将Chrome的omnibox建议数目变成了10条(默认是5条).

1.方便第三方扩展安装

最新的Chrome V21里想安装不在 Chrome Web Store 里的扩展已经没那么简单了,如果你直接在Chrome里下载扩展的.crx文件,那么浏览器会显示一个黄色的提醒(如上图),告诉你只能安装Chrome Web Store里的应用、扩展和脚本。但如果你点击Learn More链接的话,Google还是会好心的告诉你一个小技巧:将crx文件下载下来,将其中的文件拖拽到Chrome的扩展页面里(在设置的Tools > Extensions里)。

如果你感到不方便,可以在Chrome的启动参数里加这么一条:
--enable-easy-off-store-extension-install
这样就可以方便的安装第三方扩展了。其实现在基本上扩展和应用大家都会在Chrome Web Store里安装,但大量的用户脚本大家还是从第三方网站直接装,如果限制太多,还是很麻烦的。

2.调整Omnibox建议数量

在默认设置下,Chrome仅会显示5个URL建议。如果你需要调整建议数量,只要在Chrome快捷方式的目标后加上特定命令:右键单击Chrome图标,把下列命令添加到到目标栏的最后:
--omnibox-popup-count=your_desirable_suggestions_count
单击“应用”后关闭窗口。现在你可以打开Chrome来试试了。
参考:Chrome100个小技巧

参考:Chromi论坛

3.设置缓存

--User-data-dir=dir
通常情况下Win7系统Chrome User data目录在C盘:
C:\Users\[UserName]\AppData\Local\Google\Chrome\User Data

自定义Win7下Chrome缓存目录
User-data-dir的具体使用方法

4.通过启动参数来修改Chrome User Agent方法

其他常用参数
--single-process 单线程模式
--disable-plugins 禁用插件
--no-sandbox 非沙箱模式
--process-per-tab 每个标签使用单独进程
--process-per-site  每个站点使用单独进程
--in-process-plugins  插件不启动单独进程
--start-maximized   启动就最大化
--first-run  第一次运行
--disable-popup-blocking  禁用弹出拦截
--disable-javascript   禁用javascript
--disable-java   禁用java
--disable-images  禁用图像

disable-hang-monitor
disable-metrics
disable-metrics-reporting
assert-test
renderer-assert-test
crash-test
renderer-crash-test
renderer-startup-dialog
plugin-startup-dialog
testshell-startup-dialog
plugin-launcher
channel
testing-channel
homepage
start-renderers-manually
renderer
renderer-path
plugin
safe-plugins
trusted-plugins
test-sandbox
app
upload-file
dom-automation
plugin-path
js-flags
geoid
lang
debug-children
wait-for-debugger-children
log-filter-prefix
enable-logging
disable-logging
log-level
dump-histograms-on-exit
remote-shell-port
uninstall
omnibox-popup-count
automation-channel
restore-last-session
record-mode
playback-mode
no-events
hide-icons
show-icons
make-default-browser
proxy-server
dns-log-details
dns-prefetch-disable
debug-print
allow-all-activex
disable-dev-tools
always-enable-dev-tools
memory-profile
memory-model
enable-file-cookies
enable-watchdog
message-loop-histogrammer
import
silent-dump-on-dcheck
disable-prompt-on-repost
use-lf-heap
gears-plugin-path
gears-in-renderer
new-http
javascript-debugger-path
enable-p13n

貉之丘: 荒野求生: 如何寻找hosts的可用IP

貉之丘: 荒野求生: 如何寻找hosts的可用IP: hosts文件经常因为这样那样的原因而失效。有的时候的确是IP地址变了,也有的时候是因为伏地魔的封锁列表又更新了。不管是哪种原因,我们都得重新寻找一个可用的IP。 最简单的方法,当然是做伸手党——找别人要。不过这对于IP地址本身是一种风险。知道的人越多,影响就越大,于是食死徒...

Win7登录密码

今天匆忙间修改了Windows的登录密码,想要远程连接什么的,不幸的是改完密码之后我就忘记了刚刚改的密码,紧张了一个下午,不会刚刚重装的系统就又要我重装系统吧.虽然我知道WinPE能够清除Windows密码,但是之前从来没有尝试过,不知道会不会损坏系统文件什么的.心里扑通扑通的....后来Google之,发现貌似方法很容易,不过也不太清楚风险.不过还是记住了方法回来了立马就试了下.因为装了Ubuntu和Windows的双系统,所以按照网上的教程要去访问系统盘 /Windows/System32 路径,在Ubuntu下就可以做到,省去了WinPE.
在我的环境具体步骤见下:
1.启动Ubuntu,访问Windows系统盘/Windows/System32/路径
2.找到路径下的Magnify.exe,把它剪切到其它地方去
3.然后再将同目录下的cmd.exe更名为Magnify.exe
4.重启进入Windows系统,在登录界面上,Win7右下角选中放大镜,确定,此时打开cmd.exe
5.在命令行中输入net user 用户名 需要重置的密码 (net user Administrator 123456)
6.关闭命令行,在密码框中输入你重置的密码就行了.Windows系统就进去啦...

通用情况下:
只要用WinPE,进入电脑,修改cmd文件名字,和上面步骤差不多,就行了。

做完这些后突然发现Windows系统登录密码真的好弱啊...真不知道遇到同样问题重装系统的人看到如此简单就能搞定,他们是怎么想的.也不知道那些在zhidao,论坛下面回答别人告诉别人重装系统的人是怎么想的.

纪念Google首页移除自定义背景


Background images are going away on November 16, 2012
Thank you for using background images. As we build a more streamlined Google Search page for everyone, we’ll no longer be able to support customization with background images. So you will no longer be able to see your background pictures starting November 16, 2012.
Click Remove to stop using a background image now. Your current background image and Picasa web albums will still be available to you.

自此Google首页定格在此

Perl模式匹配-动态语言程序设计6

成语文本
四字成语[成语拼音空格隔离12345代表四声和轻音]
只打印出中文成语
if(/(.+)\[/){
}
或者用替换
s/(.*)\[.*\]/$1/;
s/\[.*\]//;
print "$_\n";

取得文本中拼音表
if(/.*\[(.*)\]/){
    @PY=split(" ",$1);
    foreach (@PY){
        $hash{$_}++;
    }
}
foreach (sort keys %hash){
    print "$_\n";
}


#一句中文本
<Eng>英文翻译
<PY>汉语分词[拼音空格分离]
<Wav>0001Ex.wav
取得拼音表
if(/<PY>(.*)/){
    @Item=$1=~/\S+/;
    foreach(@Item){
         if(/(.+)\[/){
             $hash{$1}++;
         }
    }
}
foreach (sort keys %hash){
    print "$_\n";
}

@Item=$1=~/(\S+)\[/g;
foreach(@Item){
    $hash{$_}++;
}

~/([a-z]+)\d/g;

@pinyins=/[a-z]+[1-5]\d/g;
/(.*)\[.*2\]/or/(.*)\[.*4\]/


if(/<Eng>(.*)/){
    @Item=$1=~/\S+/g;
    foreach(@Item){
        tr/[a-z]/[A-Z]/;
        S/[\.\"\{\}]//g;
        $hash{$_}++;
    }
}

练习9 统计语料中的声调出现情况

练习10 从语料中生成索引为拼音的字典

Ubuntu下常用命令(备份)

常用的命令备份,以免忘记

修改HOST文件
sudo gedit /etc/hosts
然后输入密码

查看磁盘空间

df   -h
df命令是linux系统以磁盘分区为单位查看文件系统,可以加上参数查看磁盘剩余空间信息,
下面是相关命令的解释:
df -hl 查看磁盘剩余空间
df -h 查看每个根路径的分区大小
du -sh [目录名] 返回该目录的大小
du -sm [文件夹] 返回该文件夹总M数
更多功能可以输入一下命令查看:
df --help
du --help

Quote Of The Day