如何快速建立Subversion服务器,并且在项目中使用起来,这是大家最关心的问题,与CVS相比,Subversion有更多的选择,也更加的容易,几个命令就可以建立一套服务器环境,可以使用起来,这里配套有动画教程。
本文是使用Subversion最快速的教程,在最短的时间里帮助您建立起一套可用的服务器环境,只需略加调整就可以应用到实际项目当中。
本教程分为以下几个部门,不仅仅是快速入门,最后我们还有一些高级功能的说明,为了说明简单,教程是在windows下使用的方式,以方便资源有限的项目使用,对于UNIX环境下,区别并不大。

软件下载

服务器和客户端安装

建立版本库(Repository)

配置用户和权限

运行独立服务器

初始化导入阅读全文
一般的情况下我们都是使用IE或者Navigator浏览器来访问一个WEB服务器,用来浏览页面查看信息或者提交一些数据等等。所访问的这些页面有的仅仅是一些普通的页面,有的需要用户登录后方可使用,或者需要认证以及是一些通过加密方式传输,例如HTTPS。目前我们使用的浏览器处理这些情况都不会构成问题。不过你可能在某些时候需要通过程序来访问这样的一些页面,比如从别人的网页中“偷”一些数据;利用某些站点提供的页面来完成某种功能,例如说我们想知道某个手机号码的归属地而我们自己又没有这样的数据,因此只好借助其他公司已有的网站来完成这个功能,这个时候我们需要向网页提交手机号码并从返回的页面中解析出我们想要的数据来。如果对方仅仅是一个很简单的页面,那我们的程序会很简单,本文也就没有必要大张旗鼓的在这里浪费口舌。但是考虑到一些服务授权的问题,很多公司提供的页面往往并不是可以通过一个简单的URL就可以访问的,而必须经过注册然后登录后方可使用提供服务的页面,这个时候就涉及到COOKIE问题的处理。我们知道目前流行的***页技术例如ASP、JSP无不是通过COOKIE来处理会话信息的。为了使我们的程序能使用别人所提供的服务页面,就要求程序首先登录后再访问服务页面,这过程就需要自行处理cookie,想想当你用 java.net.HttpURLConnection来完成这些功能时是多么恐怖的事情啊!况且这仅仅是我们所说的顽固的WEB服务器中的一个很常见的 “顽固”!再有如通过HTTP来上传文件呢?不需要头疼,这些问题有了“它”就很容易解决了!

我们不可能列举所有可能的顽固,我们会针对几种最常见的问题进行处理。当然了,正如前面说到的,如果我们自己使用 java.net.HttpURLConnection来搞定这些问题是很恐怖的事情,因此在开始之前我们先要介绍一下一个开放源码的项目,这个项目就是 Apache开源组织中的httpclient,它隶属于Jakarta的commons项目,目前的版本是2.0RC2。commons下本来已经有一个net的子项目,但是又把httpclient单独提出来,可见http服务器的访问绝非易事。

Commons-httpclient项目就是专门设计来简化HTTP客户端与服务器进行各种通讯编程。通过它可以让原来很头疼的事情现在轻松的解决,例如你不再管是HTTP或者HTTPS的通讯方式,告诉它你想使用HTTPS方式,剩下的事情交给 httpclient替你完成。本文会针对我们在编写HTTP客户端程序时经常碰到的几个问题进行分别介绍如何使用httpclient来解决它们,为了让读者更快的熟悉这个项目我们最开始先给出一个简单的例子来读取一个网页的内容,然后循序渐进解决掉前进中的所形侍狻:阅读全文
一个usb系统,其控制芯片的程序是C写的,现在想加入温度传感器,已有现成的汇编代码(伟纳ME300A+产品提供)


          TEMPL   DATA  26H
          TEMPH   DATA  27H

          FLAG1 EQU 38H  ;是否有ds18b20
          DATE_LINE EQU P3.6 ;接到ds18b20数据线引脚
;**************************************************
          ORG 0000H
MAIN:     MOV SP,#30H
START:    CALL RESET
          SETB P3.2
          CALL RESET
          JNB FLAG1,MAIN
          MOV A,#0CCH         ; 跳过ROM匹配
          CALL WRITE
          MOV A,#044H         ; 发出温度转换命令
          CALL WRITE
          CALL RESET
          MOV A,#0CCH         ; 跳过ROM匹配
          CALL WRITE
          MOV A,#0BEH         ; 发出读温度命令
          CALL WRITE
          CALL READ           ; 将读出的温度数据保存到26H/27H
          ;CALL CONVTEMP
          ;CALL DISPBCD
          ;CALL DISP1
          JMP MAIN
;*************************************************
RESET:  SETB DATE_LINE
        NOP
        CLR DATE_LINE
        MOV R0,#0D6H           ;主机发出延时642微秒的复位低脉冲
        MOV R1,#03H
TSR1:   DJNZ R0,$
        MOV R0,#0D6H
        DJNZ R1,TSR1
        SETB DATE_LINE        ;然后拉高数据线
        NOP
        NOP
        NOP
        MOV R0,#4AH
TSR2:   JNB DATE_LINE,TSR3   ;等待DS18B20回应
        DJNZ R0,TSR2
        JMP TSR4             ; 延时
TSR3:   SETB FLAG1           ; 置标志位,表示DS1820存在
        JMP TSR5
TSR4:   CLR FLAG1            ; 清标志位,表示DS1820不存在
        JMP TSR7
TSR5:   MOV R0,#06BH
TSR6:   DJNZ R0,$            ; 时序要求延时一段时间
TSR7:   SETB DATE_LINE
        RET
;********************************************************************
WRITE:  MOV R2,#8            ;一共8位数据
        CLR CY
WR1:
        CLR DATE_LINE        ;开始写入DS18B20总线要处于复位(低)状态
        MOV R3,#10
        DJNZ R3,$            ;总线复位保持16微妙以上
        RRC A                ;把一个字节DATA 分成8个BIT环移给C
        MOV DATE_LINE,C      ;写入一个BIT
        MOV R3,#2EH
        DJNZ R3,$            ;等待46微妙
        SETB DATE_LINE       ;重新释放总线
        NOP
        DJNZ R2,WR1          ;写入下一个BIT
        SETB DATE_LINE
        RET
;******************************************************
READ:    MOV R4,#2            ; 将温度高位和低位从DS18B20中读出
         MOV R1,#26H          ; 存入26H 27H
RE00:    MOV R2,#8
RE01:    CLR CY
         SETB DATE_LINE
         NOP
         NOP
         CLR DATE_LINE        ;读前总线保持为低
         NOP
         NOP
         NOP
         SETB DATE_LINE       ;开始读总线释放
         MOV R3,#18           ;延时18微妙
         DJNZ R3,$
         MOV C,DATE_LINE      ;从DS18B20总线读得一个BIT
         MOV R3,#46
         DJNZ R3,$            ;等待46微妙
         RRC A                ;把读得的位值环移给A
         DJNZ R2,RE01         ;读下一个BIT
         MOV @R1,A
         INC R1
         DJNZ R4,RE00
         RET

            END
阅读全文
    两年来的投资使我经历了股市的牛熊更迭,基市的跌宕起伏,可以说这样的经历对于每个投资者来说既是不幸的,又是幸运的。说它是不幸的,因为多数的投资者都没躲过这场劫难;说它是幸运的,因为以前投资者可能要十年八年才能获得经验的机会,现在两年就呈现给了你!关键看你有没有吸取教训,总结和反思经验教训!

经验之一:贪婪者死!
    虽说人都是受利益驱动的,大家投资也好、理财也好目的都是为了钱,也可以说为了生活的更好,钱固然很重要,但钱不是生活得好的唯一标准,好的生活还需要许多其他的东西来充实!人如果把追求金钱作为唯一的目标,那么就会形同槁木,或者因过度追求金钱,贪恋与金钱而自我毁灭!只有你的贪婪有限,能够正视投资、理财,正视金钱,你才能保持良好心态,纵横于基金的王国!理性客观地作出自己的判断!阅读全文
http://www.phpchina.com/html/68/n-34068.html
         很多程序员在干了两三年后,会有一阵子的迷惘,他们在想,我这样子的算是优秀的程序员吗?这日子一天一天的过,每天不断的重复,也不知道干了些什么。其实当你有这个迷惘的时候,证明你最少是一个熟手了,不是刚毕业那会,急着工作,什么都不会,凡事现学,那时候想不到这个问题。当你做了两三年,公司里的项目基本都对你不陌生了,你也算是这个公司的老人了,对于写代码完成任务,非常容易了。这个时候人很容易感到厌倦,弄来弄去还是这点东西,没劲啊。这个时候特想知道别人是怎么过来的,别人每天都在干吗。我是不是要学点新的东西了呢。阅读全文
以PHP同事突然问我这个问题,呵呵,记录一下:
方法一:    如果曾经的数据都不需要的话,可以直接清空所有数据,并将自增字段恢复从1开始计数
    truncate table 表名

方法二:   dbcc checkident ('table_name', reseed, new_reseed_value)   当前值设置为   new_reseed_value。如果自创建表后没有将行插入该表,则在执行   DBCC   CHECKIDENT   后插入的第一行将使用   new_reseed_value   作为标识。否则,下一个插入的行将使用   new_reseed_value   +   1。如果   new_reseed_value   的值小于标识列中的最大值,以后引用该表时将产生   2627   号错误信息。

方法二 不会清空已有数据,操作比较灵活,不仅可以将自增值归零,也适用于删除大量连续行后,重新设置自增值并插入新的数据;或从新的值开始,当然不能和已有的冲突。
转载来源:http://www.160km.com/bear/?p=103
javascript对文字进行编码涉及3个函数:escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent

1、  传递参数时需要使用encodeURIComponent,这样组合的url才不会被#等特殊字符截断。天空

例如:<script language=”javascript”>document.write(’<a href=”http://www.160km.com/?logout&aid=7& u=’+encodeURIComponent(”http://www.160km.com/bruce42″)+’”>退出</a& gt;’);</script>

2、  进行url跳转时可以整体使用encodeURI

例如:Location.href=encodeURI(”http://www.160km.com/do/s?word=小福&ct=21″);

3、  js使用数据时可以使用escape

例如:搜藏中history纪录。

4、  escape对0-255以外的unicode值进行编码时输出%u****格式,其它情况下escape,encodeURI,encodeURIComponent编码结果相同。

最多使用的应为encodeURIComponent,它是将中文、韩文等特殊字符转换成utf-8格式的url编码,所以如果给后台传递参数需要使用encodeURIComponent时需要后台解码对utf-8支持(form中的编码方式和当前页面编码方式相同)

escape不编码字符有69个:*,+,-,.,/,@,_,0-9,a-z,A-Z

encodeURI不编码字符有82个:!,#,$,&,’,(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z

encodeURIComponent不编码字符有71个:!, ‘,(,),*,-,.,_,~,0-9,a-z,A-Z
最近,手机费用暴涨,我得查查短信为何这么多,进入移动网站,得到一个短信清单如下:

短信费                  81.05
彩信费                 1.80
GPRS流量费          273.33
本地基本话费        1.99
国内长途费           28.03
必选套餐费          20.00
福娃音乐计划套餐费  6.00
费用合计             412.20 
短信总记录数      1114              
免费短信记录数   300

重点查短信:
发送时间    通信类型    对方号码    基本通话费

11月01日00:00:33    普通短信    861377489428*    0.00 
11月01日00:01:16    普通短信    861358196226*    0.00 
11月01日00:04:53    普通短信    861377489428*    0.00 
11月01日00:08:03    普通短信    861386815989*    0.00
通过editplus按住:alt+鼠标选取出号码,丢如Linux,通过命令:cat mobile.txt|sort > mobile_number
cat mobile.txt |sort |uniq -c 

短信条数  短信号码
65 861350110466*
44 861365766558*
94 861377489428*
10 861381000687*
239 861386815989*

两个大头,共发短信552:

[xiangdong2@101/udp mobile]$ cat sort_mobile_number.txt &#124;grep 861358196226*&#124;wc
    313     313    4695      这是**的
[xiangdong2@101/udp mobile]$ cat sort_mobile_number.txt &#124;grep 861386815989*&#124;wc
    239     239    3585      这个是**点的


得到完美的结论。。。呵呵呵!
去掉重复的QQ号码,(一个号码一行):

cat qqyellow.txt |sort|uniq -c
1.Linux下关闭和开启防火墙
  
1) 重启后生效
开启: chkconfig iptables on
关闭: chkconfig iptables off


2) 即时生效,重启后失效
开启: service iptables start
关闭: service iptables stop


需要说明的是对于Linux下的其它服务都可以用以上命令执行开启和关闭操作。

在开启了防火墙时,做如下设置,开启相关端口,
修改/etc/sysconfig/iptables 文件,添加以下内容:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT 字串6
[root@101/udp socket_interface]# /sbin/iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination        

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination        

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination


2.查看防火墙:
iptables -L
1.下载程序:
去这个网站下载:http://www.it-adv.net/index.php?action=downloads,然后:LINUX X86/32版全新发布fetion20080910048-linux.tar.gz,下载地址:
                 http://www.it-adv.net/fetion/download/fetion20080910048-linux.tar.gz
如果是64位的请下载:LINUX X86/64版全新发布fetion20080910047-lin64.tar.gz
下载地址:
http://www.it-adv.net/fetion/download/fetion20080910047-lin64.tar.gz

2.下载链接库库:
LINUX X86/32支持库下载:解压到同级目录,以LD_LIBRARY_PATH=. ./fetion的形式运行
下载地址:
  http://www.it-adv.net/fetion/library32.rar
解压到:/home/xiangdong2/sms/library32

如果是64位的请下载:
LINUX X86/64支持库下载:解压到同级目录,以LD_LIBRARY_PATH=. ./fetion的形式运行
http://www.it-adv.net/fetion/library64_linux.tar.gz

export LD_LIBRARY_PATH=/home/xiangdong2/sms/library32  //这一步很重要,添加链接库到环境变量LD_LIBRARY_PATH中
tar xzf fetion200XXXXXXXX-linux.tar.gz

cd install #注:自动解到install目录
./fetion -u xxxxxxxx #运行即可 -u 后面为您的飞信账号,如:
./fetion -u 660157287
请输入密码:
登陆... 服务器返回数据中无法定位sipc-proxy
这个问题我也不清楚,呵呵!

你也可以把:/home/xiangdong2/sms/library32  的所有的东西放到fetion的目录里面,然后直接运行:

LD_LIBRARY_PATH=. ./fetion -u 660157287 -p ****密码****

LD_LIBRARY_PATH=. ./fetion -u 13811461081 -p ****密码****


点击在新窗口中浏览此图片


web飞信:
http://www.websafeguard.cn/webfetion/


资料:
telnet 221.176.31.36 8080
把那两个lib文件cp到lib目录下:直接运行:./fetion
netstat -ntp:
正确应该是:
tcp        0      0 10.1.27.61:33684        221.176.31.36:8080      ESTABLISHED 968/fetion  

Debug:
LD_LIBRARY_PATH=. ./fetion -u 13811461081 -p 001002 -d
在当前目下生成:13811461081_debug.log 类似文件名称!

FreeBSD:

FreeBSD的支持库直接从ports安装揪可以: cd /usr/ports/devel/ace && make install clean
下载:FreeBSD最新程序:freebsd 版飞信 20081128
地址:http://www.it-adv.net/fetion/fetion_freebsd_20081128.tar.gz
如下:
下载cacti 插件.
cacti 页面导入插件
将应用程序解压到/data/monitor/目录
将支持库直接解压到/data/monitor/目录

cp lib*so* /usr/lib/
ln -s /usr/lib/libcrypto.so.0.9.7a /usr/lib/libcrypto.so.4
ln -s /usr/lib/libssl.so.0.9.7a /usr/lib/libssl.so.4

以下配置为linux 配置。freebsd 中没有配置也一样可以运行
设定lib库配置文件
#vi /etc/ld.so.conf
#增加一条
/usr/lib/
#保存退出后,执行
#ldconfig

先编译麻烦:
pkg_add -r ace
站长提供的是在:freebsd7.0开发的一个二进制文件,6.2的容易出现问题啊。。!














**rvinzhou(周*飞) 14:28:27
波波  请教个问题  你晓得一个php请求  在服务器上占用多少内存  这个有办法查的吗

jackxiang(向东) 14:30:23
$a = memory_get_usage(); Bytes为单位。

也就是当时 PHP 脚本使用的内存(不含 memory_get_usage() 函数本身占用的内存)
由下面的例子可以看出,要想减少内存的占用,可以使用 PHP unset() 函数把不再需要使用的变量删除(下面就是测试真的销毁了没)。类似的还有:PHP mysql_free_result() 函数,可以清空不再需要的查询数据库得到的结果集,这样也能得到更多可用内存。
PHP memory_get_usage()还可以有个参数,$real_usage,其值为布尔值。默认为 FALSE,表示得到的内存使用量不包括该函数(PHP 内存管理器)占用的内存;当设置为 TRUE 时,得到的内存为不包括该函数(PHP 内存管理器)占用的内存。
所以在实际编程中,可以用PHP memory_get_usage()比较各个方法占用内存的高低,来选择使用哪种占用内存小的方法。


<?php
for ( $i = 1; $i < 100; $i++ ) {
$str = str_repeat('01234567', $i);
$a = memory_get_usage();
unset($str);
echo $str;
$b = memory_get_usage();
echo "\n<br />".$i.': '.($b - $a).' Bytes.';
}
?>




<br />10: 0 Bytes.
<br />11: 0 Bytes.
<br />12: 0 Bytes.
<br />13: 0 Bytes.
<br />14: 0 Bytes.
<br />15: 0 Bytes.
<br />16: 0 Bytes.
<br />17: -148 Bytes.
<br />18: -156 Bytes.
<br />19: -164 Bytes.
<br />20: -172 Bytes.
<br />21: -180 Bytes

阅读全文
第一种方法:$varname=null
第二种方法:unset($varname)
代码:
<?php
$a = array(
    'a' => 'a',
    'b' => 'b'
);
$b = array(
    'a' => 'a',
    'b' => 'b'
);
$a['b'] = null;
unset($b['b']);
print('<pre>');
print_r($a);
print('<br />');
print_r($b);
print('</pre>');
?>

结果:
Array
(
    [a] => a
    =>
)
Array
(
    [a] => a
)
访问世纪流年BLOG站时看到的一段文字,对设计模式的解释很风趣,能够让人很快的了解其含义,学到了不少东西,以下是文章的内容:

对设计模式很有意思的诠释,呵呵,原作者不详。
我来添加一句:世纪流年就是现在thinkPHP的原作者,我读大学的时候找他要到过前世纪流年BLOG站的模板!

阅读全文
前言:

在新年的第一天,Bo-blog发布2.1.0正式版的日子里,我把使用了快两年的Bo-blog转成了WordPress!
写这篇文章的时候,我的分类终于多了一个wordpress!阅读全文

# cat stream


#! /bin/bash

# Write by Neil.xu qq:37391319 email: xurongzhong@gmail.com

# 2008-8-19 we need to monitor streams of LTS channels, so write this script

typeset in in_old dif_in dif_in1 dif_out1
typeset out out_old dif_out

in_old=$(cat /proc/net/dev | grep eth0 | sed 's=^.*:==' | awk '{ print $1 }' )
out_old=$(cat /proc/net/dev | grep eth0 | sed 's=^.*:==' | awk '{ print $9 }')

while true
do
         sleep 1
         in=$(cat /proc/net/dev | grep eth0 | sed 's=^.*:==' | awk '{ print $1 }')
         out=$(cat /proc/net/dev | grep eth0 | sed 's=^.*:==' | awk '{ print $9 }')
         dif_in=$((in-in_old))
         dif_in1=$((dif_in * 8 / 1024 / 1024 ))
         dif_out=$((out-out_old))
         echo " IN: ${dif_in} bytes OUT: ${dif_out} bytes "
         dif_out1=$((dif_out * 8 / 1024 / 1024 ))
         echo "IN: ${dif_in1} mbps OUT: ${dif_out1} mbps"
         in_old=${in}
         out_old=${out}
done
startkde :可以成功.请教: 为什么startx不能起? gnome-session   &
分页: 245/326 第一页 上页 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 下页 最后页 [ 显示模式: 摘要 | 列表 ]