由于ubuntu 12.04默认采用了Unity界面,对于我这种菜鸟来说用起来很是不顺手,所以搜了一下,发现有办法回归gnome界面。

安装

在此记录下供自己以及还不了解这个解决办法的人使用。

  1. 命令行的解决办法:
sudo apt-get install gnome-session-fallback
  1. 去软件中心搜索“gnome-panel”并安装之

设置

下面就是设置了,登出当前用户后进行以下步骤:

  1. 在登录用户界面选用户名右边的配置按钮 gnome设置第一步
  2. 选择“GNOME Classic” gnome设置第二步

现在,输入密码登录看看,是不是已经是熟悉的gnome界面了呢。至此,打完收工。 (o≖◡≖)

下面代码就可以生成1-100区间的随机数:

#include <vector>
#include <algorithms>

std::vector<int> random_numbers;
for (unsigned int i = 0; i < 100; ++i)
    random_numbers.push_back(i + 1);
std::random_shuffle(random_numbers.begin(), random_numbers.end());

在正则表达式里想要匹配多行:

([\s\S]*)

想要匹配到到一定区域内的内容可以考虑非贪婪匹配:

例如想要匹配 “<object name=‘暗黑3’ size=‘12’></object>” 中的name值“暗黑3

要使用表达式“<object name=’(.+?)’” (非贪婪匹配) 而不能使用“<object name=’(.+)’” (贪婪匹配)。因为这个表达式会匹配出这样的结果“暗黑3’ size=‘12”,这并不是我们想要的。


简单描述下贪婪匹配和非贪婪匹配:

例如:针对字符串“LeeeeLeeeeL

贪婪模式:

(L)(\w+) “\w+” 将匹配第一个"L"之后的所有字符。结果:“eeeeLeeeeL” (L)(\w+)(L) “\w+” 将匹配第一个"L"和最后一个"L"之间的所有字符。结果:“eeeeLeeee”

非贪婪模式:

(L)(\w+?) “\w+?” 将尽可能少的匹配第一个"L"之后的字符。结果:“e” (L)(\w+?)(L) “\w+?” 将匹配以第一个"L"开头以第二个"L"结尾的字符。结果:“eee”

首先查看日志文件

[root@ubuntu]# cat /var/log/danted.log

发现里面有这样的记录

May 24 13:57:52 (1337839072) danted[13596]: socks_seteuid(): old: 0, new: 65534
May 24 13:57:52 (1337839072) danted[13596]: socks_reseteuid(): current: 65534, new: 0
May 24 13:57:52 (1337839072) danted[13596]: fixsettings(): setting the libwrap uid to 0 is not recommended
May 24 13:57:52 (1337839072) danted[13596]: symbolfunction(): compiletime configuration error? Failed to open "libc.so": /usr/lib/i386-linux-gnu/libc.so: invalid ELF header

说明程序在找/usr/lib/i386-linux-gnu/libc.so位置的libc.so没找到,所以解决办法就是创建一个链接命令如下:

ln -sf /lib/i386-linux-gnu/libc.so.6 /usr/lib/i386-linux-gnu/libc.so

再启动下服务

service danted start

看看是不是启动成功啦! (o≖◡≖)

因为到现在位置在国内没有搜索到这个问题的解决办法,所以记录在这里。或许能帮到有需要的人。

另外,这里有dante socks server的安装说明: http://wiki.kartbuilding.net/index.php/Dante_Socks_Server

redhat

错误原因

在使用未注册的 RedHat Linux 企业版时。使用yum命令会出现如下提示:

[root@localhost ~]# yum install httpd
Loaded plugins: rhnplugin, security
This system is not registered with RHN.
RHN support will be disabled.
Setting up Install Process
No package httpd available.
Nothing to do

解决方案

而这种情况可以使用CentOS的yum来代替掉系统本身的yum 脚本如下:

#!/bin/sh
rpm -qa | grep yum | xargs rpm -e --nodeps
wget  http://centos.ustc.edu.cn/centos/5/os/i386/CentOS/yum-metadata-parser-1.1.2-3.el5.centos.i386.rpm
wget  http://mirrors.ustc.edu.cn/centos/5/os/i386/CentOS/yum-fastestmirror-1.1.16-21.el5.centos.noarch.rpm
wget  http://mirrors.ustc.edu.cn/centos/5/os/i386/CentOS/yum-3.2.22-39.el5.centos.noarch.rpm
rpm -ivh yum-metadata-parser-1.1.2-3.el5.centos.i386.rpm
rpm -ivh yum-fastestmirror-1.1.16-21.el5.centos.noarch.rpm
rpm -ivh yum-3.2.22-39.el5.centos.noarch.rpm
wget http://docs.linuxtone.org/soft/lemp/CentOS-Base.repo
mv CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo
rm -f yum-metadata-parser-1.1.2-3.el5.centos.i386.rpm
rm -f yum-fastestmirror-1.1.16-21.el5.centos.noarch.rpm
rm -f yum-3.2.22-39.el5.centos.noarch.rpm
rm -f CentOS-Base.repo

将上面的脚本保存为:redhat_use_centos_yum.sh

点击这里直接下载 redhat_use_centos_yum.sh 然后直接运行这个脚本即可。

一键脚本

如果闲麻烦也可以依次输入下面几条指令来下载并执行我已经写好的脚本,同样可以达到目的:

wget http://www.leelib.com/wp-content/uploads/2012/04/redhat_use_centos_yum.sh
chmod 777 redhat_use_centos_yum.sh
sudo ./redhat_use_centos_yum.sh

现在再试试yum命令是否已经没有了 This system is not registered with RHN. 提示,并且可以正常使用了呢! :)

在汇编语言中,我们可以直接使用ROL ROR等指令进行循环左移和循环右移的操作。 但C语言中却没有对应的操作,没办法只能自己实现了。

下面是我最近项目中用到的一个针对WORD类型的循环左移(ROL)实现代码:

uint16_t ROL(int val, int n)
{
    return (val << n) | (val >> (16 - n));
}

针对BYTE类型的循环左移:

uint8_t ROL(int val, int n)
{
    return (val << n) | (val >> (8 - n));
}

针对DWORD类型的循环左移:

uint32_t ROL(int val, int n)
{
    return (val << n) | (val >> (32 - n));
}

android 通过我写的一段Python代码可以让M8用户将联系人导入到Andriod系统中。

操作需要以下步骤:

  1. 先用M8PC工具将M8的联系人导出成XML格式。
  2. 将导出的文件重命名为mycontact.xml,并与m8toAndriod.py放到同一目录下
  3. 运行 python m8toAndriod.py 程序会生成一个名为 mycontact.vcf 的文件
  4. 将 mycontact.vcf 传到Andriod手机中导入

以下为 m8toAndriod.py 的代码:

#!/usr/bin/env python
# coding: utf-8
# 功能:将M8导出的联系人XML转化成Andriod可以导入的vcf文件
# 版本:python 2.6 以上
# 作者:leaker
# 网站:http://www.leelib.com
from xml.etree import ElementTree as ET

# 输出到的mycontact.vcf
out = file("mycontact.vcf", "wb")
root = ET.parse(file("mycontact.xml", "r")).getroot()
print root
for e in root.findall('Person'):
    out.write('BEGIN:VCARDrnVERSION:3.0rn')
    out.write('N:%s;%s;;;rn' % (e.findtext('LastName', '').encode('utf8'), e.findtext('FirstName', '').encode('utf8')))
    out.write('FN:%srn' % (e.findtext('FileAs', '').encode('utf8')))
    # print 'FN:%srn'% (e.findtext('FileAs', '').encode('gb2312'))
    for ee in root.findall('Phone'):
        if ee.findtext('PersonID','') == e.findtext('ID',''):
            primary = ee.get('IsPrimary') == 'true'
            out.write('TEL;TYPE=CELL%s:%srn' % ((';TYPE=PREF' if primary else ''), ee.findtext('Info','')))
    out.write('END:VCARDrn')
out.close()

点击这里下载:m8toAndriod.7z

VS2010

最近因为一些原因开始使用Win7 x64系统。 而使用VS2010的时候发现文件菜单里面竟然没有 最近使用的项目和解决方案 这一项。

于是网上搜索了半天发现是因为Win7系统中 组策略-用户配置-管理模板-开始菜单和任务栏 里面的:

退出系统时清理最近打开文档的历史 不保留最近打开文档的历史

这两项未配置的时候默认是 启用 所以我们只要将这两项设置为 已禁用 就可以了。

希望能帮助到跟我有同样问题的人 :)