文章归档

QOS设置解决VPN联网慢

之前在usassh.com买了个账户,里面有提供vpn功能。具体用来做什么,你懂的。 今天打开了ubuntu12.04,想拿pptp的vpn配合,但是路由的qos设置导致pptp速度。 我用的路由是tomato,设置qos端口为1723和1701的端口等级未关闭,即可不对vpn进行qos限制。 另外,还有一个好方法,就是在路由器上面直接连接vpn,这样qos限制就不会针对这个vpn进行任何限制了。 路由连接vpn设置具体参考这里

Android 编程之交互功能对话框

之前说,我买了一本书,不知道你们知不知道,今天看到第三章第十二结,前面都是textview和activity切换,今天看到AlertDialog窗口,发现有些不一样,就写出来记录一下。 首先定义一个Button,然后点击Button弹出对话框。详细编码不在叙述。 //定义Button private Button mButton1 //获取Button界面按钮 mbutton1=(Button)findViewById(……) //设置点击事件 mButton1.setOnClickListener(new Button.OnClickListener(){ public void onClick(View v) { //在这里添加对话框显示代码 } }); //对话框显示代码 new AlertDialog.Builder(Ex03_12Activity.this) .setTitle(R.string.app_about) .setMessage(R.string.app_about_msg) .setPositiveButton( R.string.str_ok,new DialogInterface.OnClickListener(){ public void onClick(DialogInterface dialoginterface,int i){ //在这里设计当对话框按钮单击之后要运行的事件 } }) .show(); 可能有些人不明白,下面是完整的点击按钮弹出对话框的完整模板,只需要在相应位置添加你自己的代码或者修改一些东西: mButton1.setOnClickListener(new Button.OnClickListener(){ public void onClick(View v) { // TODO Auto-generated method stub new AlertDialog.Builder(Ex03_12Activity.this) .setTitle(R.string.app_about) .setMessage(R.string.app_about_msg) .setPositiveButton(R.string.str_ok,new DialogInterface.OnClickListener(){ …

>>Read more

Archlinux安装配置指南

之前给自己安装过Archlinux,由于麻烦,就没有写教程,昨天升级到Gnome3.2的时候,黑屏了,无奈,我只好冲撞,直接上gnome3.2了,这下要记录一下,整过配置过程,以备日后使用。 参考资料: http://my.oschina.net/u/188134/blog/32912 安装过程不再重复,参考过程点击这里查看 安装好系统后,接下来开始配置系统。 1、更新系统,安装Gnome环境 pacman -Syu pacman-db-upgrade pacman -Syu gnome pacman -Syu gnome-extra (可选,因为我不用一些不必要的东西) 2、安装显卡驱动,安装GDM登陆器 pacman -S xorg-xinit xorg-server #ATI显卡 pacman -S xf86-video-ati #Nvidia显卡 pacman -S xf86-video-nouveau nouveau-dri #登陆器 pacman -S gdm 3、修改登陆启动 vi /etc/inittab #改动1: ## Only one of the following two lines can be uncommented! # Boot to console #id:3:initdefault: # …

>>Read more

研发组阳朔之旅

一下子,又过去了一个月,看看自己这段时间,又没有些日记了,好歹再这里记录一下上周发生的事情。 这段时间,本来要写一些centos的配置文章的,但是期间装了archlinux,发现太多需要配置了,但是租房这里的烂网络,让我没有心情去写日志呀,现在坐等ubuntu11.10正式版吧,还有我这显示器太小了,才15寸,谁要是能够赞助,那就先谢谢哈(玩笑) 上周的这个时候,我已经在广西阳朔的某个旅馆住着了,为啥呀?因为我们研发组组织去阳朔旅游了,周末时间哦。 那里吃的都是鱼,可惜没照照片呀,大家都饿了,没记得拍照就吃完了,那里还有一个特色饮食,叫做扭扭摞,怎么说,我也说不明白,以后有哪位想去的,记得阳朔陈大姐的店(很好找,那鱼获得CCTV某个金奖的哦。) 我们首先在那里租车骑了,因为一路上都是旅游景点,我们只选其中一些去看。先来张骑车照吧。 我们先去了图腾古道,啥样子,都是野人的样子,根据里面的导游介绍,是广西某个地方的一个部落,人太少,连少数民族都没分到名字,出去之后,听带我们的当地导游说,其实都是越南边境过来的越南野人。 图腾古道的蛇,是被迫拉过去,一张照片十块钱呀。还好,据说桂林乐满地一张二三十。 游完了图腾古道,我们要去遇龙潭,其实这个是当地导游给我们的一套票,两个景点一起。在去遇龙潭的路上,经过了蝴蝶泉与遇龙河,留点痕迹吧。 因为是一个潭里面,拍的照片也不是很好,所以没拍几张。 游完遇龙潭,我们就去午餐,去到一个叫做凤溪水寨的地方吃午饭,两条竹筏上面弄个小屋,飘在池边,要不是饿了,估计那池的味道都不怎么让人想吃饭了。 下午,就去了遇龙河漂游,,对,你没看错,是漂游,不是漂流,我们还在上面打水仗了。 结束了遇龙河漂流,我们回旅馆修整,都湿了吗,晚上还到当地有名的西街逛了一下,酒吧好多,可惜我都没去,我们同队了,晚上Dota上瘾了,一起到网吧开战了。。。 第二天的行程,去了漓江精华游,半小时,在漓江上面竹筏艇,我都没知道什么是什么景点的时候,发现已经结束回来了,晕死哦。 这张,就是在竹筏艇上拍的,感觉后面山的风景还不错,远离城市,有点像电视剧里面的景象了。都是山呀。 记得人名币20元上面的风景吗?就是在漓江这附近拍的,没错,我也去拍了一下。 不知道你们看出来没有,有二十元人名币的,记得拿出来对一下哦。 最近家里(出租屋)网络真的不好,是用无线路由当作客户端,连接到学校 CMCC-EDU 接入点的,也就是移动校园无线宽带,距离太远,信号也不是很好,所以有人看PPS的时候,我们这边上网就困难,这就是为什么,我不大像折腾linux的缘故了,现在坐等ubuntu11.10,然后配置好之后,用它来学习吧,没网络,arch什么精简发行版,都是浮云呀。

CentOS配置Tripwire笔记——数据完整性监测

之前两天,在虚拟机上装上了Tripwire,现在该对它进行一翻配置了,不然怎么用呀。本来就是要用来监测硬盘数据的。   一、配置Tripwire 修改文本格式配置文件: vi /etc/tripwire/twcfg.txt 找到这一个行 LOOSEDIRECTORYCHECKING =false 将false的值变为true(不监测所属目录的数据完整性) LOOSEDIRECTORYCHECKING =true 找到这一行 REPORTLEVEL =3 将3变为4(改变监测结果报告的等级) REPORTLEVEL =4 从文本配置文件建立加密格式配置文件,中途需要输入“site keyfile”口令 twadmin –create-cfgfile -S /etc/tripwire/site.key /etc/tripwire/twcfg.txt 为不留安全隐患,删除文本格式的配置文件 rm -f /etc/tripwire/twcfg.txt 恢复文本格式的Tripwire配置文件,可通过执行以下命令: twadmin –print-cfgfile > /etc/tripwire/twcfg.txt   二、Policy文件的配置 Tripwire的数据库是基于Policy文件建立的。但默认的Policy文件并没有有效的依照我们的需要建立数据完整性监测规则,所以这里通过一段Perl脚本来让数据监测实际满足于我们的需要。 建立用于建立Policy文件的Perl脚本 vi /etc/tripwire/twpolmake.pl 在脚本内输入一下内容后保存: #!/usr/bin/perl # Tripwire Policy File customize tool # —————————————————————- # Copyright (C) 2003 Hiroaki …

>>Read more

CentOS安装Tripwire笔记——数据完整性监测

好久不写技术文章了,因为我折腾少了。今天开始,每天要弄点有关linux的东西。 恩,今天就是从CentOS下手了。 当服务器遭到黑客攻击时,在多数情况下,黑客可能对系统文件等等一些重要的文件进行修改。对此,我们用Tripwire建立数据完整性监测系统。虽然 它不能抵御黑客攻击以及黑客对一些重要文件的修改,但是可以监测文件是否被修改过以及哪些文件被修改过,从而在被攻击后有的放矢的策划出解决办法。 Tripwire的原理是Tripwire被安装、配置后,将当前的系统数据状态建立成数据库,随着文件的添加、删除和修改等等变化,通过系统数据现状与 不断更新的数据库进行比较,来判定哪些文件被添加、删除和修改过。正因为初始的数据库是在Tripwire本体被安装、配置后建立的原因,我们务必应该在 服务器开放前,或者说操作系统刚被安装后用Tripwire构建数据完整性监测系统。 参考资料: http://linuxguest.blog.51cto.com/195664/200403 http://www.centospub.com/make/tripwire.html 本文只说如何安装,不包括配置。  一、下载 登录centos服务器(我假设在虚拟机里面练习滴)。 wget http://sourceforge.net/settings/mirror_choices?projectname=tripwire&filename=tripwire-src/tripwire-2.4.2.1-src/tripwire-2.4.2.1-src.tar.bz2 该网址可能被墙,无法访问,自行解决了哈。 接下来解压了 tar -jxvf tripwire-2.4.2.1-src.tar.bz2 得到文件夹tripwire-2.4.2.1,我们进入这个文件夹了哦,进行配置了哦 cd tripwire-2.4.2.1./configure –sysconfdir=/etc/tripwire  提示一下等错误: (configure: error: C++ preprocessor “/lib/cpp” fails sanity check) 原来缺少编译库,由于系统是全新安装,所以没有装这些。接下来装这些吧: yum install glibc-headers gcc-c++ gcc./configure –sysconfdir=/etc/tripwire 当最后没有错误提示的时候 make && make install install的时候, 需要确认协议,输入accept,需要输入 site keyfile 密码,loca keyfile 密码,自己输入就好,要记住的哦。 到此,你已经对tripwire安装完毕。 之前按照另一种安装方式 ./install/install.sh …

>>Read more

模块化编写代码

在公司,很多编程都需要与代码挂钩,很多都是业务逻辑的实现。这两天需要给很多功能的同一个控件添加模糊查询。需要添加一段函数代码。 这里先放上我自己写的代码。 procedure TCT_DDZY_LZXDJLXX.InputCZXX(); var data : ZYJ_CZXZ.TCZData; begin if (czlistbox.ItemIndex<0) and (czlistbox.Items.Count>0) then begin czlistbox.ItemIndex := 0; end; if czlistbox.ItemIndex<0 then begin Exit; end; czPanel.Visible := False; data := ZYJ_CZXZ.TCZData(czlistbox.Items.Objects[czlistbox.ItemIndex]); DataSetBrokerXX_DDZY_LZXDJLB.DataSet.Edit; DataSetBrokerXX_DDZY_LZXDJLB.DataSet.FieldByName(‘BDZGUID’).AsString :=data.czid; DataSetBrokerXX_DDZY_LZXDJLB.DataSet.FieldByName(‘BDZ’).AsString :=data.czbm; DataSetBrokerXX_DDZY_LZXDJLB.DataSet.Post; end; 下面看看模块化函数的编写方法。 procedure TCT_DDZY_LZXDJLXX.InputCZXX(); var ds : TDataSet; data : ZYJ_CZXZ.TCZData; begin ds := DataSetBrokerXX_DDZY_LZXDJLB.DataSet; if (czlistbox.ItemIndex<0) and …

>>Read more

UDP命令行局域网聊天程序——windows版

翻了翻邮件,把以前TCP/IP课程的作业,一个命令行的聊天程序翻出来,准备改写,看看在linux下试试。主要是给自己磨磨刀。不多说,贴程序,自己看吧 下面是服务端程序:server.cpp   #include “stdafx.h” //预设环境 #include “winsock2.h” //包含网络处理函数头文件 #pragma comment(lib,”Ws2_32.lib”) //包含静态链接库 int main(int argc, char* argv[]) //主函数开始 { WSADATA server; //定义服务结构体 WSAStartup(MAKEWORD(2,2),&server); //初始化网络环境 SOCKET serversock=socket(AF_INET,SOCK_DGRAM,IPPROTO_IP); //创建socket套接口 SOCKADDR_IN local; //定义地址结构 memset(&local,0,sizeof(local)); //地址结构清零 local.sin_addr.s_addr=INADDR_ANY; //定义地址结构的IP local.sin_family=AF_INET; //定义地址结构类型 local.sin_port=htons(8000); //定义地址结构的端口 SOCKADDR_IN client; //定义服务结构体 int len=sizeof(client); //定义客户结构体 int ret=1; //定义出错函数 bind(serversock,(SOCKADDR*)&local,sizeof(local)); //绑定套接口 char buf[512]={0}; //定义接收地址空间 while(ret!=0) //循环接收 { …

>>Read more

数据库操作时指定空数据显示信息

整理了一下办公电脑的桌面,发现一个文本文件,里面是一条select语句,忽然想起前些天副组长说的复习SQL语句时的要求,他是随便找了一个表,然后看到里面有日期,提出如下要求: 要求输出这个表的时候,如果日期为空,要求输入一个指定的日期,如果不为空,则输出原来的日期。 说明这个函数,下面构造一个小表吧: 表名 :“T” , 字段一:“BH”,编号 字段二:“RQ”,日期 按照上面要求,使用的函数是 isnull ,然后得到的select语句是: select BH,isnull(RQ, ’2010-1-21 13:05:00′) from T; 但是这样还是出错,因为是日期型记录日期字段,所以还要有固定的格式,使用格式转换函数to_data,所以得到的SQL语句是: select BH,isnull(RQ, to_data(’2010-1-21 13:05:00′,’yyyy-MM-dd HH:mi:ss’)) from T; 这样,就能正确执行了,而且也符合要求,但是企业设计,使用的是Oracle数据库,使用的函数并不是isnull,在Oracle里相对应的函数是nvl,如下: select BH,nvl(RQ, to_data(’2010-1-21 13:05:00′,’yyyy-MM-dd HH:mi:ss’)) from T; 大体解决这个要求的思路就是这样子,由于这里网络原因,这几天没法连上数据库再测试一遍,如有错误,请提出,共同探讨。

GTK编程:弹出消息窗口

前段时间用 GTK 库写了个 ubuntu 的图形界面,《Gappproxy Ubuntu 客户端 2.0.2 版》,第一版的时候,没有任何提示信息,在这个版本添加了提示信息。 提示信息的代码一直放在桌面,今天整理了一下,才想起要发到博客上来,如果哪位需要支持提示信息,可根据这段代码修改添加到的你 GTK 图形程序中。 //标准的main()函数入口 int main( int argc, char *argv[]) { GtkWidget *dialog;//声明一个对话框 gtk_init(&argc, &argv);//初始化GTK //使用gtk_message_dialog_new()函数新建一个消息对话框 dialog = gtk_message_dialog_new(NULL, //没有父窗口 GTK_DIALOG_DESTROY_WITH_PARENT, //跟随父窗口关闭 GTK_MESSAGE_WARNING, //显示警告图标 GTK_BUTTONS_OK, //显示OK按钮 _(“在迷茫中追逐……n在追逐中迷茫……”)); //提示信息的内容 gtk_window_set_title(GTK_WINDOW(dialog), _(“人生寂寞啊”));//对话框的标题 gtk_dialog_run(GTK_DIALOG(dialog));//运行对话框 gtk_widget_destroy(dialog);//删除对话框 gtk_main();//主函数循环,等待消息 return 0; }//==============main函数结束==================== 好了,代码贴上了,继续整理系统文件。