卸载grub2重新装回grub legacy
还是习惯用grub,grub2虽然好用,但是最近安装xen时却频频出现问题。于是果断卸载,重新装回了grub。
步骤很简单:
首先执行:
apt-get --purge remove grub-pc
这时会有让你确认是否删除的提示信息,当然是选择yes
然后删掉原来grub2的所有配置文件,并重建grub目录:
rm -r /boot/grub/
mkdir /boot/grub
重新安装grub, 安装完需要 update-grub 提示 if you want create a menu.lst ? 输入y同意。
apt-get install grub
update-grub
最后可以选择将将grub loader写入物理MBR。(这里注意你是否是单硬盘,是否是多系统,请依据具体情况填写)
grub-install /dev/sda
现在终于可以方便的修改menu.lst了!
是否该自称为程序员
作者: 阮一峰
日期: 2011年10月31日
每年都有无数年轻程序员,加入软件行业。 他们在学校里学过编程,但是对这个行业的现实一无所知。 Patrick McKenzie是美国一家小软件公司的老板,他写了一篇长文,介绍这个行业的一些实际情况。我看了以后很感慨,有些地方很受启发。我选择了一部分,翻译如下。
一、90%的编程工作来自内部软件
(90% of programming jobs are in creating Line of Business software) 计算机专业的学生,可能有一种印象,觉得大部分程序员,都在编写公开出售的软件或者通用软件。 这种看法是不对的。大部分程序员,实际上编写的是不公开的企业内部软件,比如追踪费用的软件、优化装运成本的软件、帮助记账的软件、设计新部件的软件、计算保单价格的软件、识别恶意订单的软件等等。 各种各样的商业公司,开发内部软件,解决它们自己的问题。市场上对程序员的大部分需求来源于此,只有极少数程序员直接编写面向外部顾客的软件。 内部软件的开发,通常非常乏味,令人厌倦。因为它们的技术复杂性低、技术决策非常保守、预算很少、缺乏长远 ...
修改openssh-server 的默认端口号
买来的一个VPS默认的SSH端口号是22,为了安全,防止别人恶意枚举密码,可以自己修改成别的端口号。
1、首先,编辑sshd_config文件$ sudo nano /etc/ssh/sshd_config
将Port 修改成自己定义的端口号,我这里改成了8080
2、重启sshd服务$ sudo service sshd restart
如果没什么错误,就可以使用新的端口连接了
Globus Toolkit 安装与配置
1. 安装前准备工作
准备工作包括软件的准备和环境变量的设置。操作系统选用ubuntu 11.10,Globus Toolkit的安装包为:gt4.0.8-all-source-installer.tar.gz(或者使用适用于ubuntu的gt4.0.8-x86_deb_3.1-installer.tar.gz)下载地址:http://globus.org/toolkit/downloads/,此外还需安装JDK、ANT 下载地址:http://ant.apache.org/bindownload.cgi、JUNIT最新版本。
图1表示了各软件之间的层级关系。
图1 各软件层级关系
图2为GT4的安装流程图。
图2 GT 安装流程图
辅助软件安装完成之后,需要设置系统环境变量。具体方法是修改系统变量配置文件 /etc/profile。
参考:
# /etc/profile: system-wide .profile file for the Bourne bash (sh(1))
# and Bourne compatible bashs (bash(1), ksh(1), a ...
Ubuntu 搭建 Vpn 服务
最近通过优惠券买了一个美国的VPS,虽然配置低了点,但是用来做平时网站的备份,或者临时当作离线下载服务器都是很不错的主意!因为国内周知的原因,访问一些国外的网站很受限制,所以想起了用自己的VPS来搭建一个VPN的想法。具体实现如下:
安装pptpd,这是个VPN服务器端软件sudo apt-get install pptpd
修改文件 /etc/pptpd.confsudo vi /etc/pptpd.conf
找到# TAG: localip一行,在后面添加以下2行:localip 192.168.0.1remoteip 192.168.0.234-238,192.168.0.245
修改文件 /etc/ppp/pptpd-optionssudo vi /etc/ppp/pptpd-options
找到 #ms-dns这行,去掉前面的#号,修改成google提供的DNS server或其他DNS:ms-dns 8.8.8.8ms-dns 8.8.4.4
修改文件 /etc/ppp/chap-secrets,按一行四列添加账号、服务器名、密码和IP限制。服务器名(默认 写pptp ...
Ubuntu下的 VPN 连接
ubuntu的桌面版中,以前使用系统自带的网络管理工具总是连不上VPN , 最近自己试着搭一个VPN,发现可以用命令行连接上VPN。 命令很简单:
apt-get install pptpd
apt-get install pptp-linux
然后执行:
sudo pptpsetup –create test –encrypt –server HOST_NAME –username USER_NAME –password PSW –start
注:
–create是创建的连接名称
–server是vpn的ip地址;
–username是用户名
–password是密码,也可以没这个参数,命令稍后会自动询问。这样可以保证账号安全
–encrypt 是表示需要加密,不必指定加密方式,命令会读取配置文件中的加密方式
–start是表示创建连接完后马上连接
(如果不写这个–start参数要连接刚才定义好的vpn只能用 sudo pon lsavpn,断开用sudo poff)
按对象的某个属性值来排序
需求可以抽象为一个小例子,比如现在一个学生是一个对象,它具有学号这个属性,要求按照学号排序。
首先写一个比较器,很简单:
public class StudentComparer : IComparer
{
//实现按xuehao排序
public int Compare(Student x, Student y)
{
return (x.xuehao.CompareTo(y.xuehao));
}
}
使用也很简单:
List stu = new List();
…………………
stu.Sort(new StudentComparer());
C#使用委托与多线程,解决界面假死
.NET Framework 为我们提供了一个处理控件闪烁的方案-双缓冲,我们可以直接调用它。
首先自己封装一个Windows组件 MyListView.cs,并让它继承自Listview。
在控件中添加打开双缓冲的代码如下:
public MyListView()
{
// 打开控件的双缓冲
SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint, true);
}
使用我们封装的MyListview 实例化一个对象,命名为ImageListView, 执行下面的方法来实现异步数据加载
private void button1_Click(object sender, EventArgs e)
{
Thread ImageThread = new Thread((ThreadStart)(delegate()
{
for (int i = 0; i
北京联通DNS劫持!
2011年8月31日凌晨上网时候访问自己的域名,发现被联通劫持到了http://202.106.33.158/DNS/这个页面!连续试了几次都是如此,太过分了!如截图所示
截图为证
互联网常见Open API文档资源(转载)
所谓的开放API(OpenAPI)是服务型网站常见的一种应用,网站的服务商将自己的网站服务封装成一系列API(Application Programming Interface,应用编程接口)开放出去,供第三方开发者使用,这种行为就叫做开放网站的API,所开放的API就被称作OpenAPI(开放API)。
网站提供开放平台的API后,可以吸引一些第三方的开发人员在该平台上开发商业应用,平台提供商可以获得更多的流量与市场份额,第三方开发者不需要庞大的硬件与技术投资就可以轻松快捷的创业,从而达到双赢的目的,开放API是大平台发展、共享的途径,让开发者开发一个有价值应用,付出的成本更少,成功的机会更多。今天,OpenAPI作为互联网在线服务的发展基础,已经成为越来越多互联网企业发展服务的必然选择。下面我就列举一些常见网站服务的Open API文档资源索引。
SNS类网站API
Facebook - http://developers.facebook.com/
人人网开放平台 - http://dev.renren.com/
51.com开放平台 - http://developers. ...