Archive for the ‘东东博客’ Category

Ubuntu下配置Lantern Server图例

星期一, 9 12 月, 2013

照着Lantern部署Server的方法折腾Ubuntu下无界面服务运行方式,虽然取到refresh_token参数,但实际以服务方式运行时总是提示认证失败,这里把操作过程记录成截图,供大家参考。编译Lantern需要先安装jdk和apache maven,参见上一篇“Linux下编译Lantern的准备”。

1. 首先进入主文件夹,点“编辑->首选项”进入文件管理首选项,钩上“显示隐藏和备份文件”,这样才能看到.lantern等隐藏目录:

(更多…)

Linux下编译Lantern的准备

星期二, 3 12 月, 2013

编译Lantern需要安装JDK和maven,安装JDK的方法参见上一篇文章:Ubuntu配置Lantern方法

下面是我安装maven的脚本,仅供参考:

[bash]
#!/bin/bash

cd /opt
mvnver=apache-maven-3.1.1
wget http://www.bizdirusa.com/mirrors/apache/maven/maven-3/3.1.1/binaries/$mvnver-bin.tar.gz
tar -zxvf $mvnver-bin.tar.gz

rm -f $mvnver-bin.tar.gz
rm -fr apache-maven
ln -s $mvnver apache-maven

echo “export M2_HOME=/opt/apache-maven” >> /etc/profile
echo ‘export PATH=$PATH:$M2_HOME/bin’ >> /etc/profile
source /etc/profile
mvn -v
[/bash]

Ubuntu配置Lantern方法

星期二, 3 12 月, 2013

Ubuntu桌面版可以到这里下载:http://www.ubuntu.com/download/zh-CN

Lantern是谷歌的开源程序,官方主页是:https://getlantern.org/#zh_CN,开源主页是:https://github.com/getlantern/lantern/wiki

1. 下载JDK1.7
这里 下载JDK1.7 Linux rpm版本

2. 安装alien,使用alien把rpm包转换为deb包
sudo apt-get install alien

3. 转换并安装JDK1.7
sudo alien jdk-7u45-linux-x64.rpm
sudo dpkg -i jdk-7u45-linux-x64.deb

(更多…)

VMWare虚拟机压缩

星期四, 21 11 月, 2013

参考来源:http://www.ha97.com/773.html

步骤:

1. 在虚拟机里,打开我的电脑,右击盘符选属性,切换到工具标签,点磁盘碎片整理完成操作,对其它分区也一样的处理。

2. 在虚拟机里,打开控制面版,双击打开VMWare Tools,切换到压缩标签,钩选需要压缩的分区进行压缩

3. 关闭虚拟机,运行VMWare程序或Player,选择对应的虚拟机进入编辑界面,选择硬盘,对VMWare磁盘进行碎片整理

4. 关闭虚拟机和VMWare程序,在主机里,打开我的电脑,右击虚拟机所在的分区选属性,切换到工具标签,点磁盘碎片整理完成操作。

我只用前两步能把一个用了比较长时间的虚拟机压缩掉大于60%的空间。

VPS上搭建CVS服务器方法

星期二, 19 11 月, 2013

有了自建的Xen VPS并成功通过Dropbox自动备份后,对于程序员来说更关心的是代码版本管理。之前也用Dropbox打包后备份,但这个方法无法回滚。

网上找到CVS Server在CentOS 6的部署办法,这里把脚本总结一下:

[bash]
#!/bin/bash
#
#没有安装cvs server时先安装一下
yum -y install cvs
#
#新建cvs组和cvsroot用户
groupadd cvs
useradd -g cvs cvsroot
#
#设置cvsroot用户的密码并改cvsroot目录的权限
passwd cvsroot
chmod 775 /home/cvsroot
#
#生成cvspserver配置文件,目录指向/home/cvsroot,用pserver方式访问
cat >/etc/xinetd.d/cvspserver<<EOF
# default: off
# description: The CVS service can record the history of your source \
#              files. CVS stores all the versions of a file in a single \
#              file in a clever way that only stores the differences \
#              between versions.
service cvspserver
{
disable                 = no
port                    = 2401
socket_type             = stream
protocol                = tcp
wait                    = no
user                    = root
passenv                 = PATH
server                  = /usr/bin/cvs
env                     = HOME=/home/cvsroot
server_args             = -f –allow-root=/home/cvsroot pserver
}
EOF
#
#使用cvsroot用户执行cvs的初始化,会在/home/cvsroot下生成CVSROOT目录
runuser -l cvsroot -c “cvs -d /home/cvsroot init”
#
#启动服务
/etc/rc.d/init.d/xinetd restart
#
#防火墙要开通TCP2401端口
iptables -A INPUT -p tcp –dport 2401 -j ACCEPT
service iptables save
service iptables restart
#
#下面的脚本要切换到cvsroot用户来执行
#如果su切换因需要密码而失败,需要手切换到并逐一执行
su cvsroot
cd ~/CVSROOT
touch passwd writers readers
chmod 770 passwd writers readers
#
#往后都是注释脚本,根据需要执行
#这是添加新用户脚本,使用perl代替Apache的htpasswd命令来生成密码,因这我的空间是LNMP
#add users, password do not support ‘@’ character
#echo -e “newuser:`perl -le ‘print crypt(“newpassword”,”salt”)’`:cvsroot” >> passwd
#
#add read-write users
#echo newuser >> writers
#
#add readonly users
#echo newuser >> readers
#
#下面的脚本是客户端的一些主要用法,可以用“cvs –help login”等来看命令格式
#login command
#cvs -d :pserver:newuser@host:/home/cvsroot login
#
#logout command
#cvs -d :pserver:newuser@host:/home/cvsroot logout
#
#checkout|update command
#cvs -d :pserver:newuser@host:/home/cvsroot checkout|update Test
[/bash]

渐渐的右上角上的两小伙长大了

星期二, 29 10 月, 2013

转眼间儿子和他的堂哥都在上大班了,刚给儿子起了个英文名叫“Skye”,天空的意思,因为他的名字里有个“天”字。

长大的孩子比较难以驾驭了。

为了锻炼他的自控力,他妈妈给他报了钢琴班,每天晚上都要陪他去琴房练琴,苦了他也累了大人,晚上做梦在背琴谱。识谱能力较差,都不知道还该不该让他坚持了,由他选吧。

后来给他报跆拳道,跟小区的小伙伴一起去,可积极了,晚上做梦都在练踢腿,算是给他强身健体吧,往后还打算带他去跑步。

他现在的特征是玩得很High,学得不啥的,一坐到钢琴旁边就老弄肚子不舒服,下了钢琴就像脱缰野马,做事拖拉。。。

折腾,继续折腾

星期二, 15 10 月, 2013

最早被墙的域名是lordong.net,后来是lordong.pw,最后发现lordong.pw指向的IP也被墙了,好在买的Virpus XEN VPN提供两个IP,还有一个暂时还活着,都不知道是哪根神经触动了贵党的G点,空间有效期还剩半年,就拿来当翻墙用吧。

前阵子发现Virpus的洛杉矶机房又有XEN 512M的主机卖了,双IP半年付是3.6刀/月,考虑到在兲朝你随时都可能触到贵党的G点,那么买空间就不能按年买,贵党“打一枪换一炮”的理论还是值得学习的。

买好空间,把网站迁移过去,反正域名已经被墙了,再买还是会被墙,索性就回到起点用起lordong.net域名吧,不过改用https来访问了,正在申请StartSSL的免费证书。

我打算持有lordong.net域名到天亮的时候,其它临时域名就用过一年就甩了吧。

给XP安装Nexus 7的驱动

星期四, 10 10 月, 2013

拿到Nexus 7二代,接上Windows XP系统,不认,从华硕和谷歌官网下最新驱动,发现压缩包大小一样,随便挑一个解压,更新驱动,还是不认。

N7接到Windows 7上直接认出来,还ROOT成功了。

今天在Google上搜索“nexus 7 xp 驱动”关键字,总算找到解决办法,驱动安装成功。

步骤:
1. 下载安装Windows Media Player 11,中英文版无所谓。
2. 接上N7,提示安装N7驱动,找到之前N7驱动的解压位置,安装Android驱动成功。
3. 进入设备管理器,双击打开N7的Android设备项,进入详情可以看到USB\VID_XXXX&PID_XXXX&MI_00字样,抄下两处XXXX的内容。
4. 打开c:\windows\inf\wpdmtp.inf文件,在[Generic.NTx86]和[Generic.NTamd64]各加一行:
%GenericMTP.DeviceDesc%=MTP, USB\VID_XXXX&PID_XXXX&MI_00
两处XXXX分别替换成上一步抄到的内容(我的N7显示MI_01,但我设成MI_00也通过),保存。
5. 重连N7,提示安装MTP驱动,找到之前N7驱动的解压位置,安装MTP驱动成功。
6. N7上进入系统,XP上将显示Nexus 7移动盘。

疑似本博的IP也被墙了

星期一, 23 9 月, 2013

C:\>tracert lordong.pw

Tracing route to lordong.pw [198.167.136.171]
over a maximum of 30 hops:

  1     2 ms     2 ms     2 ms  192.168.6.16
  2    <1 ms    <1 ms    <1 ms  192.168.3.1
  3    <1 ms    <1 ms    <1 ms  220.248.*.*
  4     5 ms     2 ms     2 ms  112.64.252.73
  5     2 ms     3 ms     3 ms  139.226.193.25
  6    30 ms    31 ms    31 ms  219.158.97.121
  7    33 ms    35 ms    35 ms  219.158.101.34
  8     *        *        *     Request timed out.

通过ip138.com查到219.158.* IP是北京联通的,再试了电信ADSL也打不开,由此怀疑本博的IP也在域名被墙半个月后沦陷,贵裆G点真TMD多呀。。

不管它了,老子该写博的还是继续写,这博文里大多是自己技术上的积累,本来希望可以给他人在处理问题上带来些经验呢,结果贵裆这么一来反而让知识流离于墙外。

C#使用Attribute时的多语言化

星期一, 23 9 月, 2013

通常在C#中我们用PropertyGrid来实验属性页功能,然后定义一个类,把对象实例传给PropertyGrid的SelectedObject属性。

然后在属性类中定义各个属性之前我们加各个Attribute调用来实现属性页上内容,如下代码:
[DisplayNameAttribute(“XXX Name”)]
[DescriptionAttribute(“XXX Description”)]
[CategoryAttribute(“YYY”)]
public string Name { get {…} set{…} }

现在需要实现多语言化,但在Attribute后的括号里不能使用Resources.XXX之类的内容来实现,因为那里需要常量。

解决办法是派生这些Attribute类,重载一些函数实现:

1. DisplayNameAttribute类我们重载public virtual string DisplayName { get; }属性

2. DescriptionAttribute类我们重载public virtual string Description { get; }属性

3. CategoryAttribute类我们重载protected virtual string GetLocalizedString(string value);方法

(更多…)