Yearly Archives: 2005

sourceOffSite 4.1 并发问题

发现当有多个用户同时连接上sos server的时候,server停止反应。
解决方案:
server端
(1)确认在vss目录下的win32目录下的ssapi.dll版本号是以98.48结束
(2)将
HKEY_CLASSES_ROOTCLSID{783CD4E4-9D54-11CF-B8EE-00608CC9A71F}InprocServer3
2ThreadingModel 的值department,改为both
(3)将实时扫描的anti virus程序设置为排除sos database目录
client端
(4)客户端将最新的windows安全补丁都打上

上帝掷骰子吗——量子史话

这本书真的写的不错,语言很生动,流畅。作者看起来(至少在我这等外行人眼里)对
物理特别是量子这一套东西很了解。看到里面提到两名大名鼎鼎的人物(托马斯·杨和
薛定谔),突然想起一件事,某个有名的主持人写了本书,里面提到中国的华人是如何
的出色,当然不可避免地提到了象杨振宁等,但很不幸,他将上述这两位地地道道的老
外都当成华人呢,原因恐怕是一个姓“杨”,一个姓“薛”,而且后者看起来真的很像一个华人的名字。

另一个感触,里面提到的人太厉害了,成名的时候都才二、三十岁。而且出了这么多的nobel奖,真是了不起。

这本书新浪读书网里有,也可以从google里搜索找到。推荐一下。

龟兔赛跑悖论

先复述一下这个悖论。乌龟与兔子再次赛跑了,这次兔子让乌龟先跑10米,兔子再起
跑,按芝诺的结论是,这样兔子永远追不上乌龟,为什么呢,因为兔子在跑完10米的时
候,乌龟又向前移动了一些距离,不管这个距离有多小,然后兔子又花时间去完成这个
距离,但在同样的时间内,乌龟又向前移动了一点点,这样的结果,是兔子永远也追不
上乌龟。但大家知道,在现实中,跑的快的兔子毫无疑问能追上乌龟了。
芝诺混淆了时间跟“时间段”的概念,元限的时间段累加起来却是一个固定的时间。正
如庄子讲的棰的故事,一尺长的棰子,每天取一半,万世也取不完。庄子讲的是长度,
但跟龟兔赛跑的时间是同样的道理。无限的长度段,累加起来才是一个固定的长度。
今天在新语丝上也看到一个悖论,也是关于时间的。老师在周末的时候告诉学生,
(1)下周会考试;(2)下周考试的时间你永远不可能想到。有学生就根据这2个条件
进行推论。首先,不会是周六。因为如果周一到周五不考试,学生就知道周六考试,这
不符合条件2。其次,那么,既然周六不考试了,就剩余周一到周五了。如果周一到周
四不考试,那么就是周五考,学生也知道了,所以不会是周五。依此类推,也不会是周
四,周三,周二,和周一。结论是下一周不会考试。但下一周老师真在某一个时间考试
了,结果学生谁也没想到。
很有意思的逻辑题。新语丝上的张远山给了一个他的关于考试悖论的想法,却引来很多
网友的不同看法。不过真是很有意思。

PHP和MySQL的License问题

很有意思。事情原委如下,
MySQL的许可分两种,一种是基于GNU开源协议,一种是商用协议。前一种更具体的讲,
MySQL的数据库是基于GPL协议的,但一些client libraries是基于LGPL的。MySQL这不
在Web应用上取得了比较大的成功了,一些商用软件就连接到这些client libraries上
面(这是合法的),从而跟基于GPL的MySQL数据库核心间接连接起来。这样这些商用软
件就不用买MySQL了,损害了MySQL的利益。
所以MySQL在某一天决定将这些LGPL的库也改成GPL了,因为GPL规定使用GPL的软件也必
须以GPL的方式公开出来,这样就可以防止商用软件的上述情况了。
Linux下,有个词叫LAMP,意指LInux+Apache+MySQL+PHP是最佳组合,性能很高配置很
容易。PHP将MySQL的client库就嵌入到它的源码里。PHP从4之后改成APL,而不是GPL。
MySQL的更改库许可的决定,意味着如果PHP继续用MySQL,也必须基于GPL协议。而APL
和GPL是有冲突的。所以PHP只能将MySQL的集成模块从自己包里移出去。
这并不意味着用户不能将PHP和MySQL连在一起,对用户的使用来讲是没有问题的,基于
PHP和MySQL的开发只能基于GPL也是许可的。但对PHP来讲,使用MySQL就和使用其他数
据库,比如Oracle等没有区别了,处在一样的位置上。
类似的情况还危及到MySQL与RedHat等多家开源软件的关系。所以MySQL出于利益的考
虑,在04年又决定给出一个exception,即在得到他们授权的情况下,开源软件是可以
将这些client库集成起来,而不用担心GPL的限制。但PHP 5推出了SQLite,仍没有将
MySQL重新集成起来。
因为PHP是纯免费的东西,PHP公司据亮子讲,也是只买附加产品的,所以他们的分离对
PHP的利益影响不大,而对MySQL,因为它还靠它的商业License挣钱呢,跟PHP分离,对
它的影响就比较大。所以有这种举动,也可以理解。
跟亮子在讨论它们间的License关系,找了几个中文的报道看,都不大正确(中国记者
的水平由此可见,都在乱写一通),而英文的报道相对较少。将英文报道跟英文论坛上
讨论的问题综合起来,写了这个东西,应该是正确的。

远程桌面连接

在连接到503 server时,发现远程无法登录,已经超过最大用户限制。由于503没有带
显示器,只有重启。
503配置了windows 2003 server,2k3除本地外控制台外,只支持2个远程登陆会话。一
般在使用后的时候,就点叉叉关掉远程控制程序,这时连接进入断开状态,但还一直保
留着该会话。应该注销出来才对。
看了一下相关的资料,从组策略(gpedit.msc)里配置了终端服务的断开连接会话在5分
钟后自动注销。这样就好一些了。否则会造成今天这样管理员也登陆不进去的情况。

Visual SourceSafe 6配置以及Tcp/IP扩展

以前整过一次,又给忘掉了,这次记下来,就不会忘了

Visual SourceSafe 6+sourceOffSite 4配置

1. 安装vss 6d,选shared database

2. 安装完毕,从 开始|Micorosft Visual SourceSafe 6.0运行 Visual SourceSafe 6 Admin

3. 在Visual SourceSafe Administrator窗口
3.1 运行Tools | Create Database…
3.2 选定新vss数据库的目录
3.3 单击OK,vss将在该目录下新建一些必要的文件
3.4 选定Admin,运行 Users|Change Password…,修改Admin的密码(默认是空)
3.5 选定Guest,运行Users|Delete User…,删除Guest用户
3.6 运行 Users|Add User…,添加需要访问的多个用户,指定用户名和密码,建议在使用VSS过程中,不要使用Admin用户,这意味着管理员需要为自己指定一个另外的用户名
3.7 在Tools|Options|General里,在Allow multiple checkouts上打勾,允许多人同时checkout同一个文件

4. 安装SourceOffSite 4.0的Server文件。
4.1 打开 开始|SourceOffSite 4 Server |Server Manager
4.2 在General Settings里 将Use secure port前的勾去掉(不需要安全机制)
4.3 在Serial Numbers里增加有效的license
4.4 在Databases tab里增加SourceSafe配置的数据库位置
4.5 在Users里增加SourceSafe全部数据库的全部User名

5. 我的电脑 右键,管理,打开计算机管理窗口,服务。将里面的SourceOffSite 4的服务设置为自动,并重启服务

6. 在客户端安装 SourceOffSite 4.0的Client文件
6.1 启动SourceOffSite 4 Client,在File | Connect to Server…,键入Server的IP地址,和Port (默认是8080),点击Connect
6.2 在随后出现的Login窗口,键入Username, Passwork,选择合适的Database,登陆。

tong_at_集思

SourceOffSite连接不上

配置都没动,怎么发现SourceOffSite client连接不上server了,怎么回事。原来sos
server使用了8080端口,与服务器的原有8080端口冲突,所以后来给sos server分配了
一个16000的端口,确保没被用。重启sos service后解决此问题。
Sos是什么?哦,sos使用了vss的版本控制数据库,在vss的基础上增加了tcp/ip访问的
功能,并且在最新的4.1里,client基本上实现了跨平台,支持mac, linux, win等。原
来的vss client最多只能在LAN内通过ipx连接到server。
sos+vss可以实现cvs提供的大部分功能,而且跟ms的studio可以很紧密的结合。
随便提一下,可以使用nmap -vv -p 1-65535 hostname,来扫描server上哪些ports在
使用,然后可以分配一个没被使用的port给sos。

关于Qt 4

Qt 4计划在05年第二季度晚发行,现在已经有Beta 2版出来供测试,Beta 2也是最后的一个测试版。Qt 4的几个改进:

1. Qt3向Qt4的移植工作(这当然要做的,是Qt4必须要做的,其实对用户来讲,如果不需要专门的移植则更好。不算改进)

2. Qt Designer差不多重写了,增加了对MDI/SDI模式开发的支持,和对定制widget的更好的支持
2.1 新QT Designer里提供了开发几种模式,如Form Editing Mode;Singal and Slot Editing Mode;Buddy Editing Mode,和Tab Order Mode
2.2 对custom widget的支持更好
(但好象提到designer仅做ui,要去掉project editor和coder editor部分)

3. 设计了一个新的painting system
4. 改进的输入方法框架
5. 对XP和Motif风格的改进

6. 增加了一些新类,如Tulip(模板容量类)、Interview(为item提供model/view框架)、Arthur(新的paiting框架)、Scribe(Unicode文本支持),以及MainWindow(更好的基于action的主窗口)
7. 与Qt 3相比,Qt4库分割成几个小库,比如QtCore、QtGui、QtNetwork、QtOpenGL、QtSql、QtXml、Qt3Support等。这样一个Qt程序可以只连接到一个小库,形成的程序也更小。
7.1 默认的Qt包括与QtCore和QtGui的连接,可以通过在.pro文件里添加
Qt -=gui
来去掉跟QtGui的连接

8. 与3相比,#include的格式变成 #include ,而不是以前的#include 了

9. 全面支持using namesapce Qt命名空间

10. QObject和QWidget构造函数的变化。比如QObject的构造不再需要 const char * name了;QWidget不必在构造里指定WFlags了

11. 动态cast,添加了qObject_cast<>()。如
QPushButton * pushButton = qobject_cast (obj);
if (pushButton){

}

12. QPointer的引进,相当于以前的QGuardedPtr

13. 绘画事件。全部的绘画操作都得在paintEvent()中执行。而不象以前那样可以在paintEvent外执行了。

更详细请阅读http://doc.trolltech.com/4.0/qt4-intro.html