存档

‘IT技术’ 分类的存档

ubuntu的一些基础命令

2011年10月26日 没有评论

华大基因培训,临时组装了一台ubuntu server,发现一些原来常用的命令都忘记了。
1、加载u盘
先用
sudo fdisk -l
查看所有的存储设备,假设你发现u盘的设备名称是sdb,如果u盘只有一个分区,在下面能看到sdb1分区。
mkdir ~/usbdisk
mount /dev/sdb1 ~/usbdisk

之后就可以在usbdisk文件夹下操作u盘内容了。
2、更改MAC地址
先用ifconfig看下想更改那块网卡的MAc,假设网卡名是eth0。
先停用网卡
sudo ifconfig eth0 down
在更改地址
sudo ifconfig eth0 hw mac address
sudo ifconfig eth0 up
实在不行,重启下网卡
sudo /etc/init.d/networking restart
3、有关DHCP
$ sudo dhclient -r //release ip 释放IP
$ sudo dhclient //获取IP

auto eth0
iface eth0 inet dhcp
4、有关权限
查看用户所属的组:
groups 用户名
id 用户名
将用户加入组
addgroup 用户名 组名

给组添加权限

chgrp 用户组 文件或文件夹
给用户添加权限
chown 用户名 要改变的文件名
5、chmod详解
通过chmod命令更改文件权限
方式一:字符方式
chmod u+x 文件名 把指定文件的执行权限赋予当前用户
chmod u-x 功能相反
chmod u=rwx 所有权限赋予当前用户
方式二:数字方式
r=4 w=2 x=1
chmod 644 文件名,把文件的权限变为rw-r-r-
chmod -R 文件夹名 ,把目录包括目录中所有文件都更改权限

sudo chmod 600 ××× (只有所有者有读和写的权限)
sudo chmod 644 ××× (所有者有读和写的权限,组用户只有读的权限)
sudo chmod 700 ××× (只有所有者有读和写以及执行的权限)
sudo chmod 666 ××× (每个人都有读和写的权限)
sudo chmod 777 ××× (每个人都有读和写以及执行的权限)

分类: IT技术 标签:

ubuntu的安全

2010年10月9日 没有评论

一下是一些应该检查的方面,出自这里
1.Accounts检查

# less /etc/passwd

# grep :0: /etc/passwd

注意新的用户,和UID,GID是0的用户.

2.Log检查

注意“entered promiscuous mode”

3.Processes检查

# ps -aux

注意UID是0的

# lsof -p 可疑的进程号

察看该进程所打开端口和文件

4.Files检查

# find / -uid 0 –perm -4000 –print

# find / -size +10000k –print

# find / -name “…“ –print

# find / -name “.. “ –print

# find / -name “. “ –print

# find / -name “ “ –print

注意SUID文件,可疑大于10M,...,..,.和空格文件

5.Rpm检查

# rpm –Va

输出格式:

S – File size differs

M – Mode differs (permissions)

5 – MD5 sum differs

D – Device number mismatch

L – readLink path mismatch

U – user ownership differs

G – group ownership differs

T – modification time differs

注意和这些相关的 /sbin, /bin, /usr/sbin, and /usr/bin

平时养成安装第三方文件时check MD5的习惯,呵呵,要不太恐怖了

运行的时候会出很多5或者missing的提示,如果不是上面及格目录的,不用太注意

6.Network检查

# ip link | grep PROMISC

正常网卡不该在promisc模式,当然安全server除外,否则可能是有人入侵在sniffer

# lsof –i

# netstat –nap

察看不正常打开的TCP/UDP端口,嘿嘿,需要平时注意,比较,好像我没这样用心过:)

# arp –a

这个更恐怖了,难道叫人document所有的MAC地址先

7.Schedule检查

注意root和UID是0的schedule

# crontab –u root –l

# cat /etc/crontab

# ls /etc/cron.*
下面是一些常见检查命令,更详细见这里
具体说来, 对系统进行安全检查有以下几个方法:
-who,查看谁登陆到系统中;
-w,查看谁登陆到系统中,且在做什么操作;
-last,显示系统曾经被登陆的用户和TTYS;
-history,显示系统过去被运行的命令;
-netstat,可以查看现在的网络状态;
-top,动态实时察看系统的进程
-finger,查看所有的登陆用户。这个需要额外安装。
-netstat -rn 列出网卡状态及路由信息等。
- hostname 列出系统网络名称。
- uname -a 列出系统ID 号,系统名称,OS版本等信息。
- mount 列出已加载的逻辑卷及其加载位置。
- df -k 列出已加载的逻辑卷及其大小信息。

分类: IT技术 标签: , ,

puTTy链接ubuntu10.04LTS乱码解决

2010年10月9日 没有评论

这里putty的版本是0.60,操作系统是winxp English Version。下载最新版本putty
打开putty,在左侧appearance在font setting里面点击change按钮font选择新宋体,script选择GB2312。然后点击translation,在右侧received data assumed to be in which character set:的下面,选择成utf-8。操作完成后,点击session,输入ip地址、端口,用户名及密码。在save session里面为你的session起一个名字,点击保存,下次使用的时候,load该条session即可。

分类: IT技术 标签: ,

unbuntu server10.04 LTS从无到有

2010年10月8日 没有评论

本文描述如何从无到有的配置一台服务器,在这之前,你需要有一个公网的ip,需要申请一个域名,然后把域名的A记录指向你的公网ip,然后……。
首先,要有一台能够安装unbuntu server10.04 LTS的计算机,我有一台1u的刀片服务器。
其次,安装上LAMP,这文章很多,如果是全新安装,安装的时候就选择lamp和ssh即可。
再次,就是配置,如果你在安装的时候没有输入服务器的名称,或者简单的输入了一个,那么可以通过这里更改服务器的名称,一般就是域名部分。
sudo vi /etc/hostname
按照如下格式输入:
127.0.0.1 localhost
127.0.1.1 original.domain original
这部分参考这里。当然,你也可以输入你实际计算机的ip地址。这条命令重启后生效。

设置完服务器的名字,我们在apache中绑定域名,在服务器上的/etc/apache2/sites-available目录下,新建一个文件default,文件的内容为:

DocumentRoot /var/www
#这里是注释—上面是你网站实际放置的目录,下面的 www.xx.com 是你申请下来的域名
ServerName www.xx.com

重启下apache,设置就会生效,如果出现下面的错误:

apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1 for ServerName

上面的ip地址有可能不是127.0.0.1,可能是安装服务器时一开始设定的ip,没关系,解决办法相同,如下:

sudo vi /etc/apache2/apache2.conf,在文件最后加上ServerName 127.0.0.1
如果不行,使用命令:
sudo vi /etc/apache2/httpd.conf在里面输入ServerName localhost,注意,这个文件可能是空的,没关系。
最后重新启动apache
命令是sudo /etc/init.d/apache start or restart,参考了这里,还有这里
配置完成,把你申请的域名的A记录指向到这里,就OK了。下面要考虑的,是安全问题了。

分类: IT技术 标签: , ,

ubuntu学习之常用命令

2010年9月30日 没有评论

以下所有操作均在unbuntu server 10.04-i386下测试通过,不过我认为在其他版本,均可通过。

1、安装curl—来自这里

假设你已经安装好了lamp,则在终端里输入:

sudo apt-get install curl libcurl3 libcurl3-dev php5-curl

安装完成后,重新启动Apache:

sudo /etc/init.d/apache2 restart

更为详细的参考见这里
2、使用rar
安装

sudo apt-get install rar unrar

使用

rar x FileName.rar

可以在终端里输入rar来获得帮助,x命令是保持原来文件结构解压缩,e则是一股脑的把所有文件加压到一个目录里。
3、文件权限
查看文件和文件夹的权限:

ls -l

以下是数字与ls输出的对应关系:

-rw——- (600) — 只有属主有读写权限。
-rw-r–r– (644) — 只有属主有读写权限;而属组用户和其他用户只有读权限。
-rwx—— (700) — 只有属主有读、写、执行权限。
-rwxr-xr-x (755) — 属主有读、写、执行权限;而属组用户和其他用户只有读、执行权限。
-rwx–x–x (711) — 属主有读、写、执行权限;而属组用户和其他用户只有执行权限。
-rw-rw-rw- (666) — 所有用户都有文件读、写权限。这种做法不可取。
-rwxrwxrwx (777) — 所有用户都有读、写、执行权限。更不可取的做法。

最常用的就是数字设定法,如:

sudo chmod 755 ownlinux

设定ownlinux文件夹的权限是775,也就是属主有读、写、执行权限;而属组用户和其他用户只有读、执行权限。这里需要注意的是,所有的设定针对文件所有者而言,如果为别的用户设定,需要更详细的命令,详细可以参考这里这里
4、用户管理
增加用户

sudo adduser 用户名

删除用户

sudo deluser 用户名

修改当前用户的密码

passwd

修改用户密码 

sudo passwd 用户名

增加用户到admin组,让其有sudo权限

sudo usermod -G admin -a 用户名

切换到其他帐号(需要该用户的密码)

su 用户名

切换到root帐号

sudo -s
sudo -i
sudo su

5、乱码
PDF 文件乱码

sudo apt-get install xpdf-chinese-simplified xpdf-chinese-traditional poppler-data

Flash中文乱码

sudo gedit /etc/fonts/conf.d/49-sansserif.conf

将倒数第四行 sans-serif
改为 sans
保存即可,重启firefox
unzip 中文文件名乱码

sudo apt-get install p7zip-full

export LANG=zh_CN.GBK #临时在控制台修改环境为zh_CN.GBK,然后解压缩即可
更详细的设置在这里
6、文件操作
安装PDF打印机
sudo apt-get install cups-pdf
#打印生成的pdf文件在 ~/PDF 文件夹里面
7、apache的一些基本操作
重启apache

sudo /etc/init.d/apache2 restart

停止apache
sudo /etc/init.d/apache2 stop
在apache2中,使用文件来配置apache,他们分别是apache2.conf、charset 、httpd.conf、port.conf、conf.d。他们都可以使用如下命令进行配置:
sudo nano /etc/apache2/apache2.conf

sudo vi /etc/apache2/apache2.conf
这些文件详细的配置办法在这里。其中apache2.conf是主配置文件,

分类: IT技术 标签: , , ,

会费公平分摊计算工具

2010年7月12日 没有评论

王建硕的博客看到一个很好的分账表格工具,用excell做的,用于解决几个人一起出去,不同收费项目由不同的人付账,如何分摊的问题。很优秀的一个小工具,虽然简单,但是解决了本来很复杂的问题。本着学习的精神,把小工具下载下来研究了一番,很有收获。然后我利用所学的东西,做了一个会费分摊的工具。:)

    问题描述

总和和单位几位爱好羽毛球的同事玩,时间久了,因为每次支付的钱不多,不可能次次分账,而且也不方便。大家就提议凑一笔钱用于支付水费、场地费、球费等支出,于是我们几个人每个人拿了100元,权作会费,统一购买球票和羽毛球。玩了几次之后发现,有些同事往往缴了会费就玩了一次,有的次次去,这样对那些偶尔才玩一次的同事就不公平。为了体现公平,让多玩的多分摊会费,少玩的少分摊,当某人缴纳的会费用光之后,自动提示该会员充值。我用excell做了这个会费公平分摊的计算工具。用了一段时间,感觉还行,希望大家多多提意见。

    用法:

先在“软件设定”表格里输入场地费的单价,比如我们羽毛球场地费是每小时15元,然后在第一个表格内输入会员姓名以及每次玩的时间,玩的小时数,每次的花销,我们的花销是买水、买羽毛球及有时会有的车费,在第一个表姓名下面,输入0表示此人没有参加此次活动,输入1表示这次此人参加本次活动,输入2表示带了一个人参加本次活动,加上自己是2个人,3表示带了2个人参加活动,加上自己是3个人,以此类推。输入好之后,在第二个表格支出明细里,在“缴纳会费”一行,输入缴纳会费的累加值,比如某人第一次缴纳100元,当会费用完之后,他又缴纳100元,则该人下的缴纳会费单元格内就应该输入200元。输入好之后,软件就可以用了,当某人的会费被花光,在第二个表格里,该人下面的单元格会变成红色,并标志处该人欠多少会费。

点击这里下载。分账工具下载地址点这里

分类: IT技术 标签: , ,

售后培训页面的建立方法

2010年7月5日 2 条评论

讲课,不可避免的学生向你要ppt和各种资料,用U盘copy?病毒很危险,怎么办呢?这个东西又不能随意分发。最近新学了php,讲课的时候灵光一闪,想到了解决思路。

建立一个页面,学院输入姓名后转到下载页面,然后再用文件记录到访日志,学员姓名用遍历数组的方法确认。这个主意导致我讲课突然中断,和各位学员面面相觑。

最近我总有这样的毛病,正讲课呢,脑子里就突然出现了另外一件事情的解决办法,大概因为这节课讲的东西我太过熟悉了吧。

言归正传,说说这个培训售后服务是如何写好的,这也算是我学习php的一个学习作品吧。您可以先到www.wangyutang.com/sh/体验下先。
首先,建立登陆界面,很简单,就是一个带form的php文档,代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<html>
<title>王玉堂培训售后服务网</title>
<body>
<center>
  <h1>王玉堂培训"售后服务网"</h1>
  <p>
  	<h3>输入姓名后,就可以下载教师在课堂上的所有课件及资料</h3>
  	<br>姓名必须和通讯录上的一致方可下载<br>
  <form action="sh.php" method="post">
   <table>
      <tr>
       <td>学员姓名</td>
      <td><input type="text" name="name"></td>
     </tr>
      <tr>
       <td><input type="submit" value="登陆"></td>
       <td><input type="reset" value="重置"></td>
      </tr>
    </table>
   </form>
 
</center>
 
<p>
<center>Copyright &copy Wang Yutang 2007, 2008, 2009, 2010<center>
</body>

登陆后的post的提交页面叫做sh.php,这个页面首先用数组存入学员的姓名,然后使用for循环遍历数组,当提交的学院姓名与数组中的某个学员姓名一致的时候,给出下载地址,并打开日志文件aa.txt讲登陆的学员姓名记录下来。下载地址本来计划使用header跳转的,可最近没时间研究。以后再说。如果数组遍历后,没有一致的学员姓名,则给出提示。这个本来用一个if语句来写,但是我觉得if语句太长了怕以后看不懂,就在一致的时候给一个变量赋值,然后再判断这个变量是否得到了该值,没有得到,则给出出错提示。
看代码,我已经给出了详细的解释。我之所以没用数据库,是因为用到数据库更为麻烦,还不如如此。我之所以用for循环来进行数组遍历,只是我习惯用for循环,不晓得和foreach之间的效率差别,这不是我考虑的问题了,我只是要实现我的目的。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
<?php  
$name = $_POST["name"];
define("GREETING","很高兴与您共同度过5天时间,祝您工作顺利,万事如意,有事情可以随时拨打售后电话或者发送email。地址是:");
define("email","king@gmail.com");
define("mobilephone","137XXXXXXXX");
//访问日志,访问文件是1log.txt,2log.txt是输入错误学员姓名的记录。
$filename = '1log.txt';
$filenameall = '2log.txt';
//2010.6.26日班名单,共计19人。
$a = array("张三","李四");
$num = count($a);
if ($name)
{ 
for ($i=0;$i<$num;$i++)
{
    if ($a[$i]==$name)
   {
?>
<center>
	<center><h1>中国XXXX<br>国家XXX<br>XXXX售后服务网</h1><br>2010年6月26日-2010年6月30日</center>
<?php
      echo "<h1>" . "欢迎:" . $name . "</h1" . "<p>";
	    echo "<center>" . constant("GREETING") . "<p>" . constant("email") . "<br>" . constant("mobilephone") . "</center>";
	    echo "下载地址“
	   //用判断是否输入正确学员姓名,
              $good = "1";
	 //写入日志文件,查看都谁下载了课件。   
	if (is_writable($filename)) {
 
    if (!$handle = fopen($filename, 'a')) {
         //echo "无法打开日志文件 ($filename)";
         exit;
    }
 
    // Write $somecontent to our opened file.
    if (fwrite($handle, "$name\n") === FALSE) {
        //echo "无法写入日志 ($filename)";
        exit;
    }
 
    //echo "成功将 ($name) 写入日志文件 ($filename)";
 
    fclose($handle);
   exit;
	} else {
    exit;
    //echo "无法记录到日志文件: $filename ,日志文件不可写!";
	}
?>
</center>
<?php	 }
}
}
 
if ($good <> "1")
{
	echo "您输入了错误的姓名,或者您并非我班学员!";
	echo "<a href=\"index.htm\">重新登录</a>";
	echo "<br>";
// 把输入错误的也记录到日志文件。
	if (is_writable($filenameall)) {
    if (!$handle = fopen($filenameall, 'a')) {
         echo "无法打开日志文件 ($filenameall)";
         exit;
    }
 
    // Write $somecontent to our opened file.
    if (fwrite($handle, "$name\n") === FALSE) {
        echo "无法写入日志 ($filenameall)";
        exit;
    }
    echo "成功将 ($name) 写入日志文件 ($filenameall)";
 
    fclose($handle);
   exit;
	} else { 
    exit;
    echo "无法记录到日志文件: $filename ,日志文件不可写!";   
	}
}
 
include("footer.php");    	
 
?>

简单吧,php真的很简单,至少上手比较容易。以后会改正下载方式,隐藏下载地址。这个程序总计花了我5个多小时的时间。前期调试wamp半天,后来调试cookie半天,本来想让用户反复登录,判断用户是否登录,如登录自动跳转,没太弄明白,而且要把登录页面也改成php的,为了节省时间,就没弄。以后把第二个培训班的名单也登陆上。

在记录趣事一件。前几天看荷兰和巴西的比赛,这是我世界杯开赛以来我看的第一场足球赛,虽然我是个十足的伪球迷,而且最近忙的一直很累,但是还是贪心的想看一场完整的世界杯比赛。这场球看得精彩,开场十分钟,巴西就用一个精准的直塞搞定荷兰一个球,我想,我不太相信荷兰不进球,罗比的脚法我还是蛮信任的,就这样看到半场打平,半场后我就有点迷迷糊糊,后来听见欢呼声又进了一个球,此时我已睡意沉沉,不知觉间进了梦乡,待我凌晨3点醒来,揉揉眼睛,奇迹出现了,场上居然变成了0:0,我当时的感觉那真是千头万绪,看了半天我没整明白这到底是怎么回事,难道不算了?这个世界好神奇,呵呵,当我有这种想法的时候,我看到了屏幕右上角的时间,又看到了对阵双方,我才想起来,都第二场了。呵呵。当时我真是懵(这个词我念了N年的糟了)了,想起我们神奇的国度,以为南非也和谐了。呵呵。现在想起来我都得儿呵呵笑一笑。

分类: IT技术 标签: ,

python及web开发框架不适合编程初学者

2010年4月18日 2 条评论

听了一个报告后,我就一直想做一个食品感官评价网站,周末就是我处理这些残思杂念的时候。我对于编程完全是门外汉,可前端时间无意之间看了一些python的资料,也大致看了python的语法,觉得的确很简单,加上其快捷的开发,我一直跃跃欲试的想学习这个,自己独立用python做一个站点,在网站结构设计完成后,这个周一,虽然还有别的工作,也禁不住诱惑,详细了解了一下python以及一些web开发的框架。

就像python吸引我的原因是快捷一样,我也想找一个最简单的webframe,这样一点学习一边实践,大约就可以把网站做出来了。首先,我比较了一下一些流行的web框架。以下就是我从自己的初学者的特点,对几种框架中对于初学者,我来说,最难理解的部分。

    Django

在中文社区,Django是最火的一个框架。我看了Django step by step和网上的一些资料,花了一上午的时间学习django,发现他的优势也是他的劣势。
首先是比如url处理,他都综合在url.py里面,那些繁琐的正则表达式的确不是普通的初学者容易掌握的。比如像下面的文件:

urlpatterns = patterns(”,
(r’^admin/’, include(‘django.contrib.admin.urls.admin’)),

(r’^jobs/$’, ‘djproject.jobs.views.index’),
(r’^jobs/(?P\d+)/$’, ‘djproject.jobs.views.detail’),
)

前面用这则表达式确定传入变量,从而决定响应,对于编程初学者来说,的确不适合。而且,要根据项目的变化,随时import各种模块,对于刚刚学习编程的人来说,的确不适合。

另外,Django 里面同样难以理解的是调用模板时变量的传递,render,HttpResponseRedirect 还是 redirect都让我难以理解模板的参数是如何传递进去的。

最后,就是django的版本问题,大概所有开源软件都有这个毛病,版本过多,导致一些语法、属性的修改,让人无所适从。

    karrigell

同样本着快捷的思路,找到了同样获得很多赞美之词的karrigell ,这个用了比django更少的时间研究,但是问题于django类似,只是karrigell 处理url的方式比django更友好一些,但是仍然有很多问题。

为此,我回头又重新了了一下python的文档,这次我看的是英文的,因为我发现经过中文翻译后,有很多语句难以理解(大概不是人家翻译的问题),同样看了一下午,我发现,如果你想学会开发web网站的语言,对于初学者而言,绝对不该学习python,抛开中文资料贫乏,很多文章大同小异不说,python属于那些基础语言的顶端,它的很多优势,来源于创造者对原来高级语言的改进,而如果不彻底理解像C一样的语言,很难理解python语法结构。所以,从某种程度上来讲,python的确不适合编程的初学者。网络上那些对python的赞美之词,绝大多数来自那些有经验的程序员,这恰恰太高了编程初学者的门槛。

但是,无可厚非,从语法的简洁程度上来说,python是我不用看文档就能够大致了解的语言,但仅限于此,你很难真正的利用python做点什么。比如当我要实现一个程序的时候,我总习惯的用vb的方式实现,而这种方式根本不适合python。

所以,我说,python不适合编程的初学者。python只是看上去很美。

以下我是这个周么学习python的django框架的一些总结:
运行django自带的服务器的命令:

python manage.py runserver

这个命令要在你建立好的项目下运行,建立项目和app的命令如下:

django-admin.py startproject your_project’s name

建立app:

python manage.py startapp your_app’s name

django 安装完成后,和安装python后一样,最好将目录加入到path路径中,dango的路径是

site-packages/django/bin

调用你建立项目下的python shell:

python manage.py shell

当做好数据连接的准备工作后,要运行上述命令,然后运行下面的命令验证配置是否ok。

>>> from django.db import connnection
>>> cursor = connection.cursor()

运行后没有出错提示,证明配置正确。
建立好modeles后,要运行如下命令:

python manage.py validate

验证配置的正确与否。
正确后,运行
python manage.py sqlall app’s name
,把CREATE TABLE语句显示到屏幕上,用
python manage.py syncdb
,把你的模型同步到数据库 。

分类: IT技术 标签: ,

学习软件的非一般思路

2010年1月30日 8 条评论

刚刚读本翻译过来的书,句子里面充满了否定之否定代表肯定的句子,在把自己弄糊涂之前,我决定写一篇博客。当然,万事皆有因。

书是《Fundamentals of Biostatistics生物统计学基础》和《爱上统计学》我之所以看这本书,是想在统计软件应用上能够更熟练。然而这两本书里面基本上没有一点软件的影子。这正是今天我要说的事情。

学习软件的非一般思路。之所以这么说,是因为我熟悉的所有软件我基本上没有学过,我是指那种拿着教程学习的那种。我的书里也没有一本什么指南,什么教程,什么十天之类的。我这样是从我一次亲生经历得来的经验。

刚上大学的时候,我对计算机非常感兴趣,当然,只是一般的那种感兴趣。但是我始终不得其法,无论硬件和软件。但是幸好我我似乎有良好的沟通和语言理解能力,靠这个我居然找到了一份教《汇编语言》的工作。说实话,在开始教之前,我对汇编的理解仅仅是那几个晦涩难懂的符号。不过这件事情给我的另外一个经验就是,非到炉火纯青,不要轻为人师,这是后话。

于是我只能一边理解一边进行教学,虽然最后我英明的被人解雇(其实解雇也是我自己太不认真备课所致,这又给了我一个更深刻的教训。)但是我竟然神奇的发现,我对计算机硬件和软件都有了一个本质的认识。无论是硬件接口还是软件编程,虽然至今我还没有一个优秀的软件拿得出手,但是我依然敢这样讲。嗯,脸大。

由此我想起一个问题,软件在编写之前,尤其是应用软件,肯定做过详细的调查,嗯,那句专业的该叫做“需求分析”。

而你用软件,哪怕是写程序,也是为了解决自己的需求,更别提你要用word处理你的表格了。

所以,没有必要拿着那些什么指导的书读来读去,决定学习一个软件之前,花一点时间在哪一方面基础的书籍上,比如学习word前,学习一些排版方面的知识,即使浅尝辄止,也受益匪浅。剩下要做的,只是概念转换,比如格式叫做样式等等。

软件是拿来用的,尤其应用软件。这样做还有一个好处,你不会被软件限制住。但那些教程书籍并非无用,你可以当做字典来翻翻,不过网络大概是最好的一本字典。

站着说话不腰疼,也许对你最难的那些书籍是基础方面的书籍,而且那基础还恰好能够切合你的需求?我也为此苦恼过,不过我发现,花一点时间广泛的读一些书籍的目录和介绍,或者叫introduction,慢慢你就会贝海寻珍的发现一些意想不到的好书,你知道,所谓好书每个人都不一样,不同人的知识结构决定了他判断书好坏的一个标准。只要一本书没有概念性错误,哪怕抄袭的,从知识上讲,也没有所谓不好的书。但是中文书有个通病,对科学的历史往往忽略不谈,或者浮光掠影,但总有些蛛丝马迹。

我写完了如何学习软件,也写了如何探得那些与软件与你的需求切合的书籍,但这不是全部,还有最后一步就是转换概念。

就像不同的统计软件都能达到你的统计效果,但是软件界面千差万别一样。你要做的就是熟练的转换那些由基础转换出来的概念。比如用SPSS做描述统计descriptive statistics的时候,要选择analyze→Descriptive Statistics→Frequencies,而在SAS或者Excell里面就要选择另外的菜单和按钮一样。就像对于不懂日文的我,可以熟练使用winxp日本版一样。

所以,如果你想把一个软件学得透彻,我建议你按照这样的顺序:

了解软件的一般介绍→查阅此方面的基础书籍→把同类的软件哪来进行概念比较→熟练使用。

也许会比你拿着教程学得慢点,但是收获的比拿着教程多得多。我觉得,我没有浪费时间。

当然,对于更聪明的人来讲,把软件安装,然后看着help就学会了。

分类: IT技术 标签:

做研究应该用的几个Firefox插件

2009年11月10日 4 条评论

到现在我也没有搞清楚,到底add-ones是不是应该翻译成插件。不深究了,今天分享一些坐研究应该用的插件,至少让你的网络浏览更舒服更快捷,你可以直接点击插件名称进行安装。
Zotero

Zotero 是一个在线文献管理插件,大概也是被国人介绍较多的一个插件了,因为我使用NE进行文献管理,因此这款插件用的不多。但个人感觉还是很好用的,尤其是那些不用文献管理软件的人。

ISI Web of Knowledge

大名鼎鼎的ISI Web of Knowledge,用着很方便,我尤其喜欢文献索引图的功能,虽然还不是很全面,但是能很清楚的说明研究的进展和研究方向的沿革。

Biobar

这年头,搞什么不搞点生物多显得没水平,这个插件就是利用生物数据的一把利器,同时还有一个Biofox,我觉得不如Biobar好用,当然,你都可以下载试用。

autopage
很显然,这不是一个有关科研的插件,但是它有个好处是能让你减少点击次数,尤其你在海量文献里寻找你需要的东西的时候。

Pubmed Autopager
针对ISI开发的一个插件,不仅具有上面的功能,而且当你点击期刊名称的时候,给出期刊的影响因子,

分类: IT技术 标签: ,