junstyle 发布的文章

Chrome商店改版了

Chrome商店改版了,改成了很低调的颜色,没有以前的蓝色好看,有点学苹果的感觉,扩展的详细页面用户体验不好,现在想看到详细的内容和评论还得点几下鼠标,不知道为什么要改成这样,就是为了和chrome浏览器一致?本来它就不是集成在浏览器里面的。

[转]详解SQL Server的两个存储过程:sp_MSforeachtable/sp_MSforeachdb

1.简介:
作为DBA会经常需要检查所有的数据库或用户表,比如:检查所有数据库的容量;看看指定数据库所有用户表的容量,所有表的记录数...,我们一般处理这样的问题都是用游标分别处理处理,比如:在数据库检索效率非常慢时,我们想检查数据库所有的用户表,我们就必须通过写游标来达到要求;如果我们用sp_MSforeachtable就可以非常方便的达到相同的目的:EXEC sp_MSforeachtable @command1="print '?' DBCC CHECKTABLE ('?')"
系统存储过程sp_MSforeachtable和sp_MSforeachdb,是微软提供的两个不公开的存储过程,从mssql6.5开始。存放在SQL Server的MASTER数据库中。可以用来对某个数据库的所有表或某个SQL服务器上的所有数据库进行管理,后面将对此进行详细介绍。

- 阅读剩余部分 -

[转]SQL Server 跨库复制表数据的解决办法

跨库复制表数据,有很多种方法,最常见的是写程序来批量导入数据了,但是这种方法并不是最优方法,今天就用到了一个很犀利的方法,可以完美在 Sql Server 2005 和 Sql Server 2008 中执行!
格式如下:

insert into tableA
SELECT * FROM
OPENDATASOURCE('SQLOLEDB', 'Data Source=127.0.0.1;User ID=sa;Password=sasasa').databaseName.dbo.tableB

- 阅读剩余部分 -

fsockopen返回gzip内容无法gzdecode解压的问题

#1.返回头Transfer-Encoding: chunked表明是chunked的传输编码
这个意思是,服务器分批把http body返回给你,比如http body如下
2 --表示下一个chunked的长度为2,这个数字是16进制,不是10进制
ab -- 长度为2的串
3 -- 同上
abc -- 长度为3的串
1 -- 同上
a -- 长度为1的串
0 -- 长度为0,这个是结束标识

所以最终的http body应该是ababca ,长度标识是不需要的。

- 阅读剩余部分 -

IIS7和Apache上Wordpress重写规则

IIS7

<rewrite>
<rules>
<rule name="Main Rule" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="index.php" />
</rule>
</rules>
</rewrite>

Apache

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

php中flush()在iis7下无效的解决方法

在一个比较费时的操作中,想把操作记录在浏览器上实时显示出来,用到了flush(),把缓冲中的内容发送到浏览器。但在iis7里面用fastcgi模式配置的php怎么都实现不了,结果总是一起显示出来。

[code language="php"]
for ($i=10; $i>0; $i--)
{
echo $i.'<br />';
@ob_flush();
flush();
sleep(1);
}
[/code]

- 阅读剩余部分 -

applicationHost.config 64位系统下的编辑问题

装的win7 x64,发现用editplus打开applicationHost.config总是提示文件不存在,用vs打开也是说不存在,觉得好奇怪哦,最后google发现,这个文件原来是64位的,用32位的软件打不开,很简单,用系统自带的notepad 记事本程序打开就可以了。

PHP线程安全与非线程安全的区别

Windows版的PHP从版本5.2.1开始有Thread Safe(线程安全)和None Thread Safe(NTS,非线程安全)之分,这两者不同在于何处?到底应该用哪种?这里做一个简单的介绍。

从2000年10月20日发布的第一个Windows版的PHP3.0.17开始的都是线程安全的版本,这是由于与Linux/Unix系统是采用多进程的工作方式不同的是Windows系统是采用多线程的工作方式。如果在IIS下以CGI方式运行PHP会非常慢,这是由于CGI模式是建立在多进程的基础之上的,而非多线程。一般我们会把PHP配置成以ISAPI的方式来运行,ISAPI是多线程的方式,这样就快多了。但存在一个问题,很多常用的PHP扩展是以Linux/Unix的多进程思想来开发的,这些扩展在ISAPI的方式运行时就会出错搞垮IIS。因此在IIS下CGI模式才是 PHP运行的最安全方式,但CGI模式对于每个HTTP请求都需要重新加载和卸载整个PHP环境,其消耗是巨大的。

为了兼顾IIS下PHP的效率和安全,微软给出了FastCGI的解决方案。FastCGI可以让PHP的进程重复利用而不是每一个新的请求就重开一个进程。同时FastCGI也可以允许几个进程同时执行。这样既解决了CGI进程模式消耗太大的问题,又利用上了CGI进程模式不存在线程安全问题的优势。

因此,如果是使用ISAPI的方式来运行PHP就必须用Thread Safe(线程安全)的版本;而用FastCGI模式运行PHP的话就没有必要用线程安全检查了,用None Thread Safe(NTS,非线程安全)的版本能够更好的提高效率。

TS是线程安全(Thread Safe ),一般Apache模块、IIS的ISAPI需要使用。
NTS是无线程安全的(Non Thread Safe ),因为php-cgi不需要。
此外还分VC6和VC9,vc6是给Apache用的,vc9是给IIS用的。VC9需要安装 c++2008运行库。

Firefox和chrome的Media Player Plugin不触发PlayStateChange的解决办法

在网页里面插入了下面的播放器代码:

[code language="html"]
<OBJECT style="float:right;" id="MediaPlayer" width="192" height="216" CLASSID="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6" type="application/x-oleobject">
<PARAM NAME="URL" VALUE="mms://211.89.225.104/cnr001">
<PARAM NAME="SendPlayStateChangeEvents" VALUE="True">
<PARAM NAME="AutoStart" VALUE="False">
<PARAM name="uiMode" value="mini">
<PARAM name="PlayCount" value="1">
<EMBED TYPE="application/x-mplayer2" CLSID={6BF52A52-394A-11D3-B153-00C04F79FAA6} SRC="mms://211.89.225.104/cnr001" ID="MediaPlayer" NAME="MediaPlayer" WIDTH=200 HEIGHT=50 VOLUME=-1 RATE=1.0></EMBED>
</OBJECT>[/code]

chrome里面怎么都不会触发playStateChange事件,找了很久的资料,原来要这样才能捕获这个事件:

function OnDSPlayStateChangeEvt(state){
//这个参数state你就可以用了,就是页面中的播放器的状态
//handler
}

OnDSPlayStateChangeEvt没有用到播放器的ID什么的,不知道放两个播放器会是一种什么情况。还有一些其它的事件和这个类同OnDSPlayStateChangeEvt,把红色的换成其它事件的名字就行了。很诡异的调用。