Browsed by
Category: 计算机技术

hg小技巧

hg小技巧

比起大名鼎鼎的git,mercurial/hg相对来说默默无闻一些,不过我们一直使用hg,而且感觉还不错,与git相比该有的都有,不该有的都没有。除了clearcase,hg是我非常喜欢的版本管理工具。

hg在branch管理上相比clearcase还是有很大差距,在日常工作中,需要采取一些变通方式。例如以下一些场景:

只显示active的分支

加上参数“-a”即可,完整命令如下:

hg branches -a

如果不想每次都带上参数,默认就只显示active的分支,可以修改hgrc文件,加入以下内容:

[alias]
branches = branches -a

关闭分支

实际上我们希望有“删除分支”的功能。在平时工作中,多半有这样的场景:为了查某个问题需要修改代码,为了不影响开发分支或者主线分支,通常都会创建一个临时分支,加入一些打印、调试、定位代码甚至变更处理逻辑等代码。问题定位后,这些代码不需要merge进主线,分支也没有存在意义,最好就删除了事。遗憾的是hg不提供删除分支的功能,因此我们采用“关闭分支”的处理方式:

hg commit --close-branch -m "finish debug, useless now"
访问onedrive

访问onedrive

一个好端端的网站,被莫名其妙地干掉了。经网友介绍,还好只是DNS污染。网友推荐使用DNSCrypt解决这个污染问题。不过有个更简单点的方法,直接将onedrive的IP地址写入hosts即可。

修改C:\Windows\System32\drivers\etc\hosts文件,增加以下两行记录:

134.170.108.26 onedrive.live.com
134.170.108.152 skyapi.onedrive.live.com

只有在天朝才会明目张胆出现这种不要脸的事吧?

SSLv3漏洞

SSLv3漏洞

这次是Google发现的一个漏洞,而且又是一个很严重的漏洞。现在暂时还没有补丁解决,但是可以关闭apache的SSLv3来屏蔽这个漏洞。修改方法如下(Debian7.x环境):

修改/etc/apache2/mods-enabled/ssl.conf文件, 找到SSLProtocol所在行,去掉SSLv3即可

SSLProtocol all -SSLv2 -SSLv3

最后当然需要重新启动apache。

windows7开始菜单项整理

windows7开始菜单项整理

最近安装和试用了一些软件(例如qq输入法),卸载之后在【开始】菜单中留下了一些垃圾文件夹,看着很不爽。于是打算删之。一试之下才发现与XP系统有很大差异。【开始】菜单实际上分布在两个不同的地方:系统【开始】目录以及用户自己的【开始】目录。

比如我的用户名是yxh,那么如果需要整理开始菜单栏,则可能需要修改以下两个目录:

C:\ProgramData\Microsoft\Windows\Start Menu
C:\Users\yxh\AppData\Roaming\Microsoft\Windows\Start Menu
windows7系统下实现单无线网卡共享热点

windows7系统下实现单无线网卡共享热点

平时工作时除了笔记本电脑,还有就是旁边放ipad mini辅助。ipad mini有个很大的问题,wifi信号实在太弱了!同样一个桌面,笔记本、手机都可以收到无线信号,可是ipad mini就是不行,常常断网,十分烦恼。

于是在网络上搜了一下,结合几位网文的建议,在windows7系统下启动虚拟无线网卡供ipad mini上网。注意,网络上其他一些文章建立在计算机有两块物理网卡的情况下,而我的电脑里只有一个可以work的无线网卡,因此需要采用虚拟无线网卡方式。

以下命令都必须以管理员身份运行。

创建虚拟网卡,并设置ssid和访问密码:

netsh wlan set hostednetwork mode=allow ssid=think-yxh key=123456

启动虚拟无线网卡:

netsh wlan start hostednetwork

然后在网络管理中,选择物理网卡,修改“共享”属性,允许其他网络设备访问,并选择上述创建的虚拟网卡即可。

下面是一些常用的命令用于修改虚拟网卡的属性:

停止网卡: netsh wlan stop hostednetwork
修改访问密码: netsh wlan set hostednetwork key=1234
修改SSID: netsh wlan set hostednetwork ssid=work2
删除虚拟网卡:netsh wlan set hostednetwork mode=
重新开启虚拟网卡: netsh wlan set hostednetwork mode=allow

电脑重启后,虚拟网卡没有运行,需要手工启动,有些不方便。可以创建任务,让电脑在启动时或者用户登录时重新启动虚拟网卡即可。

点击菜单“启动 – 所有程序 – 附件 – 系统工具”,运行“任务计划程序”。创建一个基本任务即可。需要注意:

(1)只需要运行命令:netsh wlan start hostednetwork

(2)必须设置任务“使用最高权限运行”。

mercurial: no username supplied (see “hg help config”)

mercurial: no username supplied (see “hg help config”)

在Ubuntu中使用mercurial命令行提交修改(hg commit)时,出现上述错误提示。出问题的原因大约是当前linux用户与mercurial中的用户不一致。修改方式比较简单:

修改本地库.hg/hgrc文件,根据实际用户信息加入以下配置即可:

[ui]
username=yxh <yxh@myvoipapp.com>
editor=vim

上述示例中,同时指定默认的编辑器采用vim。

Mercurial的分支操作

Mercurial的分支操作

subversion是个很不错的集中式版本管理工具,我们一直在使用。可是缺乏分支功能的确也感觉十分不方便,尤其是我们的版本区分LTS、Stable以及Dev等各种情况时尤其如此。

Git据说是个很不错的分布式管理工具,不过感觉和svn差别太大,十分不适应。因此选择了mercurial,各项操作类似于svn,同时也具备brach等分布式版本管理的特点。

在mercurial中使用branch开发非常方便,下面是几条简单的命令:

$hg branch mss_lts <--创建mss_lts分支
$hg commit
$hg push --new-branch  <-- 提交新branch到库中
$hg branches <-- 查看分支
$hg update default <-- 切换回主分支
$hg merge mss_lts <--将mss_lts分支的修改merge回主分支
MariaDB初步

MariaDB初步

基本上与mysql数据库是完全兼容的,各项命令以及库的名字都与mysql相同。当然目前还没有深度应用,不知道在库、api等方面是否完全兼容。

启动数据库:

service mysql start

修改root用户密码:

mysqladmin -u root password "xxxx"

将数据库加入自动启动列表:

chkconfig --add mysql            <-- Redhat/CentOS/openSUSe
或者 update-rc.d mysql defaults   <-- Debian/Ubuntu

访问数据库:

mysql -u root -p
Ubuntu环境搭建email系统

Ubuntu环境搭建email系统

网上的一些文档大部分是基于其他linux的版本,因此对比之下配置比较复杂,让人望而却步。而Ubuntu则已经将一些基本的配置都打包好了,只需要稍做修改即可。

以下配置基于Ubuntu10.04,全部从官方软件中心下载安装。采用Postfix+Dovecot搭建邮件系统。请先切换到root用户安装和配置。

step1: 安装Postfix

apt-get install postfix

安装时,会提示选择类型。一般选择”internet site”,输入网站域名即可。安装后,先不要着急配置postfix,我们在后续dovecot安装成功后,大部分配置会自动完成。

step2: 安装dovecot

一般网文介绍是直接安装dovecot,实际上Ubuntu提供了与postfix配合的dovecot包,因此请按以下方式安装:

apt-get install dovecot-common dovecot-postfix

安装时,系统会自动根据dovecot的要求,对postfix进行配置。

step3:配置postfix

配置文件为:/etc/postfix/main.cf。如果不对email进行限制的话,其实已经不用再配置了。下面我们修改该配置文件,增加一些额外的控制,例如用户邮件大小等:

mailbox_size_limit = 20000000 <--限定邮件账户不超过20M字节
message_size_limit = 200000  <-- 每封邮件不超过20K字节
myhostname = mail.xxxx.com
mydomain = xxxx.com

step4: 配置dovecot

一般也不需要配置,但是在使用gmail托管时,ssl/tls似乎没起作用,因此稍作修改采用普通访问方式即可。注意,此时dovecot的配置文件是/etc/dovecot/conf.d/01-dovecot-postfix.conf

listen = *  
disable_plaintext_auth = no

缺省情况下,dovecot没有被配置为自启动,因此我们需要手工添加:

update-rc.d dovecot start 99 0 1 2 3 4 5 6 .

其他

email用户账户就是当前Ubuntu的用户。建议对email用户单独处理,并设置在mail组内,设置单独的用户目录等,如下所示,创建一个名为support的用户:

mkdir /home/mail-users
useradd -m -d /home/mail-users/support -g mail support 
passwd support

Debian系統的差異:

如果需要支持pop3的話,需要安裝以下軟件:

apt-get install dovecot-pop3d
Debian6中文乱码问题

Debian6中文乱码问题

最近安装最新的Debian6.06 Gnome版本,遇到一个奇怪的问题:选择中文安装,完成安装后重新进入系统,界面全是小方块,中文显示乱码。

经研究后发现,居然是没有安装中文字体,这是个多么奇怪的bug,选择了中文界面安装居然不安装中文字体!

解决方法也简单,安装中文字体即可:

apt-get install ttf-wqy-zenhei ttf-wqy-microhei