// 把chrome文件的错误输出到错误控制台
javascript.options.showInConsole = true
//禁用 XUL 缓存,使得对窗口和对话框的修改不需要重新加载 XUL 文件
nglayout.debug.disable_xul_cache = true
// 可以在脚本里用dump来输出调试信息到终端,如dump("test")
browser.dom.window.dump.enabled = true
// 严格的脚本错误报告。如果不设置这个,一些脚本错误将不会被输出到错误控制台。
javascript.options.strict = true
// 使错误控制台里显示更多的和安装和更新有关的错误信息
extensions.logging.enabled = true
3.每次修改内容后用ant自动复制文件到firefox扩展目录<?xml version="1.0" encoding="utf-8"?>
<project name="ToMeFirefox" default="复制文件至扩展目录" basedir="../">
<!-- 应用的文件目录 -->
<property name="app" value="app"/>
<!-- 应用在firefox扩展目录下的文件夹名 -->
<!-- 这个扩展目录就是在第1步自定义的profile文件夹下 -->
<property name="extDirName" value="E:\workspace\FirefoxProfiles\extensions\App@since2006.com"/>
<target name="复制文件至扩展目录">
<delete dir="${extDirName}"/>
<mkdir dir="${extDirName}"/>
<copy todir="${extDirName}">
<fileset dir="${app}">
</fileset>
</copy>
</target>
</project>
4.重启firefox测试效果
5.反复重启的话,可以创建个快捷方式在第1步的参数-p后加上Profile的名字每次打开默认使用这个Profile
如:
firefox.exe -p dev -console
很久很久以前就用过Gravatar这个网站的用户个性化头像服务,没有设置头像时默认是一个蓝底白字的G字,多数用户没设置的话看起来非常不和谐,发现StackOverflow的用户头像很有意思,准备趁这次BLOG大翻新时添加这个功能,搜索了一下相关实现其实这个头像就是Gravatar提供的,当用户邮箱没有设置过个性头像时生成各种颜色样式的方块图案,这种图案的名字叫:Identicons。
以前一直用的是老版本google自定义搜索,可自定义的功能很少。最近趁blog用twitter bootstrap重写时顺便将google自定义搜索功能也更新一把,网上的教程比较繁琐,自己折腾了一晚上,找到一个超简单集成的方法。
简单2步即可完成基本整合功能:
1. 通过Google Custom Search element网页自动生成基本的搜索代码。
2. 添加到网页中,做一些自定义修改,上传收工。
俺的整合代码(效果见右侧搜索功能):
<!-- Google Custom Search Element -->
<!-- 注意两个id:cse-search-form 和 cse-search-result -->
<!-- cse-search-form: 搜索框显示的地方 -->
<!-- cse-search-result: 搜索结果显示的地方 -->
<div id="cse-search-form" style="row-fluid"></div>
<div id="cse-search-result" style="row-fluid"></div>
<script src="http://www.google.com/jsapi" type="text/javascript"></script>
<script type="text/javascript">
google.load('search', '1', {
style: google.loader.themes.MINIMALIST
});
google.setOnLoadCallback(function () {
var cse = new google.search.CustomSearchControl();
var drawOpts = new google.search.DrawOptions();
drawOpts.setSearchFormRoot("cse-search-form");
cse.draw('cse-search-result', drawOpts);
}, true);
</script>
更多高级设置可以参考Custom Search Reference
打开网页NOD32立马提示病毒,上网一看说WordPress存在着XSS漏洞,对WordPress不熟悉只好通过升级安装到最新版本搞定这个问题。
接着顺便访问下自己写的Blog,居然同样被挂马了,感到杯具之余正好分析下这马的调用方式。拖下所有文件,查找和首页挂马代码相似的代码:
1. 发现所有目录index.php最开始处都被挂了一段代码,基本能说明挂马操作是程序自动处理的。
2. 内容被PHP base64编码和JS fromCharCode混淆过。
3. 如果访问者是搜索引擎的爬虫,则不执行挂马操作,这样不会让搜索引擎将网站标识为恶意网站(这次知道被挂马,是一个不在这个列表里的搜索引擎提醒的)。
顺便附上相应代码,知己知彼,百战不殆。
JDBC里提供的DatabaseMetaData类提供的方法可以方便的完成这事,但有时候数据库因权限问题自己不能完全控制,用这个类会有问题。
同样用SQL也可以完成这个问题:
-- 列用户所有表:
select name as tn from sysobjects where type='U'
-- 列某个表所有字段及类型,是否允许空等:
select a.colid as id, b.name as tab_name ,
a.name as COLUMN_NAME,
c.name as DATA_TYPE,
a.length as COLUMN_SIZE,
a.prec as length,
a.scale,
case isnull(a.status,0) when 0 then 'NOT NULL' ELSE 'NULL' END AS NULLABLE
from syscolumns a, sysobjects b, systypes c
where a.id = b.id and a.usertype = c.usertype and b.name= 'TargetTable'
order by a.colid