A's profileXA's DocumentsPhotosBlogListsMore Tools Help

Blog


    5/15/2008

    将带参数BAT文件应用到QQ强制聊天~

    bat文件内容如下:

    cls
    echo off
    echo 如果要修改请用记事本打开本文件
    echo 并且将cd后修改为你的QQ安装目录路径
    echo 盘符改成QQ所在盘符

    cd D:\Program Files\Tencent\qq
    D:
    Timwp.exe tencent://message/?uin=%1
    echo 原创:XA's Documents
    exit

    复制到记事本后存为QXA.bat,然后放到任何一个已经设置环境变量的路径,在cmd下输入QXA QQ号码,即可打开临时会话强制聊天。

    eg.:qxa 12345678

    其中%1表示第一个参数,后面的参数以此类推。exit将会使黑窗口在执行完成后自动关闭,如果把exit换成pause将显示“按任意键继续...”字样并等待按键。

    写这个是因为传美版的QQ有显隐身等强大功能却因为精简过某些组件导致不能正确解析tencent协议,以至于在点击QME那样的网页临时会话按钮时会报错:“tencent://message/?uin=**websitename=qzone.qq.com menu=yes 找不到应用程序”。而使用这个方法可以用一个命令解决问题。

    5/14/2008

    计算机病毒原理实验小记~

    从书上P87开始,用WinHex打开DLL,在0xD0找到50代表PE文件头。接下来是映像文件头,再下面是可选映像头(结束于0X74H)

    if以“打开磁盘”,再打开文件的方式加载DLL,那“Get_data”文字的偏移地址可能和书上不同。因为此时是按磁盘起始位置算的,一个文件内可能有间隔的数据

    if直接打开文件,那“Get_Data”的偏移地址是对的。此时文件内的数据是顺序显示的。

    5/11/2008

    5.10德中同行现场活动有感~(多图无码)

    在出发前一天晚上,本人的内心就灰常的激动,预计会是一次难忘的经历,实际上果然如此~活动的全名叫德中同行文化交流活动,是德国与中国政府合办的,包括很多很多很多很多内容(在此省略1000字),其中就有我此行的目的 - Maximilian Hecker演唱会~先放一张活动地图~

    IMG_0120

    跟我一行的有2个同学,省略姓名样貌特征若干。下午2点多坐261出发,3点半我们到了人民大礼堂。先在人民广场转悠了好大一圈,以人民广场的大牌坊开头。说起人民广场还真算是我来重庆见到的第一个名符其实的广场的地方。

    IMG_0007

    虽然烈日灼人,但是广场里面人满为患,尤其以MM为甚。IMG_0006

    跟以往初中同学的聚会活动一样,与豆友们集合的地点是“广场旗杆下”。广场旗杆下是灰常晒人的,默认偏移到旗杆旁边的德国黑啤店集合。德中同行活动进行的这几天,正宗的黑啤都是不限量供应的!虽然德国的啤酒是世界上最著名的,不过我不喝酒,对我来说也没多大感觉~

    IMG_0009

    这栋看上去像烂房子一样的烂房子,实际上是主会场之一,叫做文艺亭,当时正在进行张一白的摄影作品展,有他本人到场为观众解析《影像重庆》,很多会场是限制人数的,我没能挤进去。。。实际上由于各种有意思的活动实在太多太多太多,而且又都是免费的,只要是要排队才能体验的,我都没去,剩下的我倒是玩了个遍~

    IMG_0015

    中途暂停了一会,因为2个同学同时要求去上厕所。。。我在外面坐等,嗯环境不错,就是凳子晒得发烫。。。

    IMG_0016

    在文艺亭里面还有一项免费学德语活动(为什么前面都说了所有活动都是免费的这里还要加个免费二字呢?这就是中国人的习惯吧),只有每天下午2点才有,再次遗憾错过。。。

    IMG_0019

    再来一张文艺亭,照片中的志愿者MM其实是美女,经过交涉得知是来自川外的(省略交涉内容若干。。。)~

    IMG_0020

    除了文艺亭还有个主会场叫会议厅,像个小鸟巢,由于又没能挤进去,不知道里面在进行什么会议。。。IMG_0060

    演出开始前我们基本上在到处看展览,展览布置和设计,以及展示内容都是经过用心规划的。首先惹眼的是西门子的这块放在入口的太阳能电池板。

    IMG_0024

    在安联保险集团的展区,有体验高尔夫的活动~

    IMG_0025

    在海瑞克公司的展区,有一个灰常酷的模型,这个巨大的机器叫做“双台式盾构机”,这个模型很仿真,实际上它的各个部件是在动的,可惜照片看不出来。请猜想一下这台机器是用来干什么的?(在照片下面公布答案。。。)

    IMG_0031

    答案是,这台机器是用来挖地铁隧道的!在最右端有一个旋转的挖掘头(模型上也是在旋转的),整个机器都可以在特殊的铁轨上面移动。也就是说,它的工作流程是:

    do

    {

    挖;

    前进;

    }while (挖通了 == false)

    可以边挖边前进,边挖边前进,边挖边前进。。。真是一台强大的机器,高科技啊~

    值得一说的是,每个展厅都是由一种特殊的竹子支起来的,看上去很环保,环保且高效正是是本次展览的侧重点之一。

    IMG_0037

    在博世的放映厅有一个黑酷的东西,大家来找茬,看看在哪里?(提示:黑酷是重要线索)

    IMG_0039

    在左上角有一个又黑又酷的空调,这就是黑酷的东西~

    博世一直是我比较敬佩的一个企业,下面有个古董级产品,注意,这是一种家用电器,注意,这不是滚筒洗衣机(工藤新一的日文发音。。。),是博世在1933年生产的世界上第一台带压缩机冰箱!

    IMG_0054

    广场上还有个平面设计展,是一名叫张扬的艺术家创作的,这次展览了他眼中德国与中国的不同,蓝色代表德国,红色代表中国,下面这幅说的就是我。。。但是我依然执着地把它拍了下来~

    IMG_0077

    在巴斯夫公司展厅展示的宝马Mini车~

    IMG_0101

    这是下午4点时的舞台~7点开始的Live show就在这里进行~

    IMG_0109

    整个会场纵览图~在三峡博物馆拍的~这里的地形概述就是:人民大礼堂和三峡博物馆把人民广场夹在了中间~

    IMG_0111

    随后我们去了人民大礼堂内部,门票5元,比较划得来~只放一图~

    IMG_0163

    用膳~IMG_0185

    这是6点40时的现场观众一瞥,到后来以万计数一点不过分,所以本人能占到前排真是相当得意啊,哇咔咔~

    IMG_0203

    7点演出开始,首先是中国的器乐团~

    IMG_0201

    前面一哥们也太高了,而且明显不是音乐爱好者,别人都比较配合现场气氛,就他一SB动也不动表情之木讷仿佛公鸡中的呆若木鸡,以至于后来自觉无趣走了,我也因此能够顺势一下往前挤了好几个,后来前面都陆续有人走,我也一步步来到了MH的跟前~

    IMG_0202

    这是来自柏林的主持人,精通2国语言,说起中文来那腔调像说相声的,说起德语来那腔调像马戏团报幕的~

    IMG_0213

    然后是4LYN乐队,一支来自柏林的新金属乐队,他们在德语国家是非常知名的,在世界杯上给德国队加油唱的就是他们的歌~他们一来就把现场气氛带向了第一个高潮,4LYN的主唱很像GREEN DAY的主唱,从相貌到动作,再到身高。。。周围总是有一群SB,S问这是什么乐队啊,B说他们的名字叫柏林乐队;S举着一个五月天的手势,B们也跟着举起了五月天的手势,SB们一起举着五月天在那里摇摇晃晃;还有若干SB们的事例云云(省略1000字)~4LYN的鼓手今天刚好是32岁生日,现场乐迷在带动下,3,2,1,一起喊了一句“生日快乐”,鼓手马上来了一段Solo,相当精彩~4LYN说,这是他们演出15年来最棒的一次,他们第一次来中国,更是第一次来重庆,就感受到了充分的热情~

    IMG_0232

    接下来是甜蜜的孩子(The Honeys)乐队,不得不说相对于4LYN,这哥们在现场受到了冷落~

    IMG_0256

    然后是一男一女的完全立体声(Stereo Total)乐队,他们的风格覆盖相当广泛,唱的歌比较诙谐~那男的混音的时候说:I like making love with 3 people!太邪恶了。。。

    IMG_0282

    到最后的Maximilian Hecker上场,现场完全已经High 翻,本人早已汗流浃背~

    IMG_0308

    MH演奏吉他,现场适时地安静了下来~

    IMG_0314

    大屏幕上飘起了雪花~意境很完美,音响设备很好,旁边一哥们说这是他看过的live里面声效最好的,很讽刺的是免费的演出声效比收费的还好~

    IMG_0321

    MH键盘耍起~安逸~

    IMG_0343

    MH说了很多的“谢谢”,而且说的很标准,还有“我爱你们”、“晚上好”等等,毕竟MH也不是第一次来中国了。MH唱了为数不多的几首歌~当MH说:I have to say this is the last song。下面全部在喊No,随后又一起喊One More,甚至有喊Encore的。可是天下没有不散的筵席。。。

    IMG_0354

    更多照片以及MH演出的视频录像,请联系本人索取~

    今天的活动到此结束,大家晚安~

    5/6/2008

    《SQL Server 2000 数据库设计权威指南》学习不完全笔记(三)~

    SQL Server 2000中,嵌套触发器选项是一个服务器全局设置,语法是

    sp_configure 'nested triggers',1 | 0 这里1=ON;0=OFF

    如果执行一个级联操作,所有相关表上的触发器都将启动。触发器操作最多嵌套32层。注意:我们有可能建立一个对表进行级联操作的无限循环的触发器。

    而递归触发器选项是一个特定数据库的设置,语法是

    sp_dboption '<dbName>','recursive triggers','TRUE' | 'FALSE'

    这使得触发器在执行与其相关表的修改时重新启动触发器。

    为了说明这2个选项的作用,先建立2个很简单的表

    CREATE TABLE tableA

    {

    field varchar(40) NOT NULL

    }

    CREATE TABLE tableB

    {

    field varchar(40) NOT NULL

    }

    GO

    然后创建2个非常简单触发器,每一个向另一个表插入同样的值。(省略创建触发器和插入的SQL代码N行)当服务器的嵌套触发器设置关闭时,将tableA中插入一行,则被触发的惟一触发器是tableA的触发器。但是当嵌套触发器选项打开,递归触发器选项关闭时,在tableA中执行同样的插入,这一次依次触发tableA和tableB的触发器N次(N=32,因为最多嵌套32层),然后由于超出限制次数报错。错误信息eg.:

    Server: Msg 217,Level 16,State 1,Procedure tableB$afterUpdate$demoNestRescurse,Line 7 Maximum stored procedure,function or trigger nesting level exceeded (limit 32).

    触发器的执行比约束慢得多,并且不是保护数据最好的方法。只有用约束处理不了的时候,才使用触发器。

    5/5/2008

    关于东方标准的笔试~

    有2个问题,当时可能做的不对,现在补充一下。

    第一个是问传递依赖属于第几范式,实在是忘记属于第几了。

    答案是:第一范式就是原子性,字段不可再分割;
    第二范式就是完全依赖,没有部分依赖;
    第三范式就是没有传递依赖。

    参考http://www.yiboit.com/?uid-347-action-viewspace-itemid-1136

    第二个是要把一个前缀表达式写成后缀表达式。

    貌似是属于编译原理的知识。

    参考http://www.chinaaspx.com/archive/other/18887.htm

    《SQL Server 2000 数据库设计权威指南》学习不完全笔记(二)~

    当你有一个该表的更新后触发器,SQL Server将不采用在行内进行更新,而是行被先删除,然后再插入。这样才能在触发器中实现Rollback Transactions,有备份。

    在所有可能的情况下使用惟一性索引,对于系统的性能来说是十分必要的。

    使用2部分组成的名字(eg.:owner.objectName)来访问所有对象。

    如果修改数据如下:

    ALTER FUNCTION album$returnKeysByArtist

    (

    @artistId int

    )

    RETURNS TABLE

    WITH SCHEMABINDING

    AS

    RETURN

    (

    SELECT albumId

    FROM album  ----used to be dbo.album

    WHERE artistId = @artistId

    )

    产生的错误中会有"……Names must be in two-part format and object cannot reference itself."

    是用约束而非触发器的一个重要原因是:查询优化程序可以借此来优化查询。

    如果使用char而非varchar作为LIKE掩码,可能带来填补空格的问题。

    从查询分析器看到的错误信息由几个部分组成:错误编号,eg.:Msg 547;级别,Level 16;状态,State 1;行,Line 1;错误文本。

    在下面的例子中建立了一个触发器,其中有2个类似的检验,对同样的行进行处理,但其中一个在获取多行时失效。

    CREATE TRIGGER artist$afterUpdate$demoMultiRow

    ON artist

    AFTER INSERT,UPDATE --fires after the insert and update has occurred

    AS

    IF NOT EXISTS (

    SELECT *

    FROM INSERTED

    WHERE name IN ('the who','the beatles','jethro tull')

    )

    BEGIN

    SELECT 'Invalid artist validation 1'

    END

     

    IF EXISTS (

    SELECT *

    FROM INSERTED

    WHERE name NOT IN ('the who','the beatles','jethro tull')

    )

    BEGIN

    SELECT 'Invalid artist validation 2'

    END

    GO

    在插入单行数据的时候,2种处理方式都没有问题。但是插入多行的时候,eg.:

    BEGIN TRANSACTION

    INSERT INTO artist (name,defaultF1,catalogNumberMask)

    SELECT 'ROLLING STONES',0,' per cent'

    UNION

    SELECT 'JETHRO TULL',0,' per cent'

    ROLLBACK TRANSACTION  --undo our test rows

    这时只输出了

    Invalid artist validation 2

    第一种处理方式失效了,因为有一行满足条件('jethro tull')(我们有一行INSERTED.name 在测试列表中),所以只返回一行(有一行存在)。这是一个在编写触发器时相当普遍的问题。

    《SQL Server 2000 数据库设计权威指南》学习不完全笔记(一)~

    阅读本书最好有数据库系统原理的一些基础知识,以及SQL Server 2000的入门知识,建议阅读《Beginning SQL Programming》。

    数据转换服务(DTS)可以在OLE DB数据源之间变换和转移数据,也就是说可以实现Excel与SQL Server甚至文本文件数据的批量导入导出,这是一个非常激动人心的功能。更多参阅《Professional SQL Server 2000 DTS》(ISBN 1861004419),这本书在本书封底的SQL Server书系树形图里位于顶端,也就意味着它的难度是很高的。曾经在创新杯决赛里看到清华大学的一个演示,就是把Excel里面的一些表整个复制,然后粘贴到网页中,就可以直接把数据导入到Web后台的SQL Server中,应该就是用DTS实现的。

    关于对象的命名规则,建议使用大写字母划分词的边界。eg.:televisionScheduleItem

    如果加上拥有者,则可以使用拥有4个部分的命名模式:

    [<server>.][<database>.][<owner>.]<objectname>

    在涉及到跨服务器或者跨数据库的数据操作时,这种命名模式非常常用。

    在使用bit数据类型时,每8个bit列的实例占用1个字节,因为,当表中有8个bit列和有1个bit列的宽度一样。它通常用作Boolean型,因为SQL Server没有提供明确的Boolean型。但这样不太理想,因为bit型可以取NULL值。而且bit列不能加索引。

    int型可以取值-231~231-1,大概就是正负20亿之间,占4个字节。int型的一个重要用途是用于存放IP地址,因为一个IP地址刚好是分为4个8位长字节组成的32位整数。

    bigint型取值范围是-263~263-1,占8字节。smallint占2字节。tinyint占1字节。

    当你确认每一行的字符串都具有相同的字符数且每一行都是非NULL的,才应该使用char类型。

    如果你要在字符串中给出Unicode字符串,则需要在串前加一个N,eg.:

    SELECT N'Unicode Value'

    timestamp型(即rowversion)是数据库唯一值,只要修改数据库中任意一行,则会自动改变。

    uniqueidentifier型(唯一标识符),全球唯一确认号码(Globally Unique Identifier,GUID)将会成为Microsoft计算的支柱。GUID根据网卡标识号(如果有的话),当前的日期和时间,取自CPU时钟的惟一数和某些“魔法数字”,这使得它几乎不可能重复。它占用16个字节。不可以将任何二进制数放入一个uniqueidentifier列,因为该值必须符合其生成标准。

    索引分为簇式和非簇式的,簇式按照索引顺序安排物理表中的顺序,非簇式是一种简单地提高存取速度的一种完全不同的结构。索引是使用平衡树结构实现的,也叫B-树。簇式索引适用于:包含有限个不同值得码的集合;范围查询;数据顺序存取;返回大的结果集查询;常常被包括JOIN 或GROUP BY 子句的查询访问的码集。不要再经常改变的列上建立簇式索引,也就是,最好只读。