项目中遇到Ext的Grid需要从Server动态获取XML信息, 查看API知需要使用ScriptTagProxy. 但是API只给出Json的解决方案, 对XML没有做描述.
下面给出XML的方案:

js中添加一段代码:

1
2
3
4
5
6
7
8
9
10
11
window.parseXml = function(xml){
    if (window.DOMParser){
        return new DOMParser().parseFromString(xml, 'text/xml');
    }
    if (window.ActiveXObject) {
        var doc = new ActiveXObject('Microsoft.XMLDOM');
        doc.async = 'false';
        doc.loadXML(xml);
        return doc;
    }
};

则服务器返回的信息中格式要处理如下形式:

1
stcCallback1(parseXml('<?xml version="1.0" encoding="UTF-8"?><message success="true"><contact><name><first>Jack</first><last>Slocum</last></name><company>Ext JS</company><email>support@extjs.com</email><state>OH</state><dob>04/15/2007</dob></contact></message>'))

注意和API中Json的区别: 添加了一个parseXml的方法, 同时还多了圆括号内的 '.
注意要把xml中的 ' 和 \ 添加转义符号 \
ext 3.1测试通过

网上有从Outlook批量导出Vcard格式的教程说明,但是关于如何将Vcard格式的联系人批量导入到Outlook的教程几乎没有。我在网上找到了以下这些操作步骤,成功了,在这里分享。

1,把所有Vcards文件放在一个文件夹内。C:\VCARDS(这个路径需要和代码中的路径相同)

2,打开Outlook的VBA编辑器。(ALT + F11 呼出)
3,单击“工具”–>“引用”,勾中“Windows Script Host Object Model ”和“Microsoft Scripting Runtime”

4,单击“插入”–>“模块”,把下列代码粘帖进去。保存名字例如“A”。

5,单击“工具”–>“运行”–>“宏”,运行刚才保存的名字“A”。

6,运行….

Sub OpenSaveVCard()

Dim objWSHShell As IWshRuntimeLibrary.IWshShell
Dim objOL As Outlook.Application
Dim colInsp As Outlook.Inspectors
Dim strVCName As String
Dim fso As Scripting.FileSystemObject
Dim fsDir As Scripting.Folder
Dim fsFile As Scripting.File
Dim vCounter As Integer

Set fso = New Scripting.FileSystemObject
Set fsDir = fso.GetFolder(”C:\vcards”)

For Each fsFile In fsDir.Files

strVCName = “C:\vcards\” & fsFile.Name
Set objOL = CreateObject(”Outlook.Application”)
Set colInsp = objOL.Inspectors
If colInsp.Count = 0 Then
Set objWSHShell = CreateObject(”WScript.Shell”)
objWSHShell.Run strVCName
Set colInsp = objOL.Inspectors
If Err = 0 Then
Do Until colInsp.Count = 1
DoEvents
Loop
colInsp.Item(1).CurrentItem.Save
colInsp.Item(1).Close olDiscard
Set colInsp = Nothing
Set objOL = Nothing
Set objWSHShell = Nothing
End If
End If

Next

End Sub

修改 key 

备注:修改 key Sequence 中的name  使用 鼠标右键 点 剪切 可以清空

1. edit->content Assist - >  add      Alt+/  代码关联

2. Window -> Next Editor -> add    Ctrl+Tab 切换窗口

3. Run/Debug Toggle Line Breakpoint -> add Ctrl+` 在调试的时候 增删断点

4. Source-> Surround with try/catch Block -> Ctrl+Shift+v  增加try catch 框框

5. Source -> Generate Getters and Setters -> Ctrl+Shift+. 增加get set 方法

-----------有用的快捷键-----------

Alt+/ 代码助手完成一些代码的插入(但一般和输入法有冲突,可以修改输入法的热键,也可以暂用Alt+/来代替)

Ctrl+1:光标停在某变量上,按Ctrl+1键,可以提供快速重构方案。选中若干行,按Ctrl+1键可将此段代码放入for、while、if、do或try等代码块中。

双击左括号(小括号、中括号、大括号),将选择括号内的所有内容。

Alt+Enter 显示当前选择资源(工程,or 文件 or文件)的属性

-----------Ctrl系列-----------

Ctrl+K:将光标停留在变量上,按Ctrl+K键可以查找到下一个同样的变量

Ctrl+Shift+K:和Ctrl+K查找的方向相反

Ctrl+E 快速显示当前Editer的下拉列表(如果当前页面没有显示的用黑体表示)

Ctrl+Shift+E 显示管理当前打开的所有的View的管理器(可以选择关闭,激活等操作)

Ctrl+Q 定位到最后编辑的地方

Ctrl+L 定位在某行 (对于程序超过100的人就有福音了)

Ctrl+M 最大化当前的Edit或View (再按则反之)

Ctrl+/ 注释当前行,再按则取消注释

Ctrl+T 快速显示当前类的继承结构

Ctrl+Shift-T: 打开类型(Open type)。如果你不是有意磨洋工,还是忘记通过源码树(source tree)打开的方式吧。

Ctrl+O:在代码中打开类似大纲视图的小窗口

Ctrl+鼠标停留:可以显示类和方法的源码

Ctrl+H:打开搜索窗口

Ctrl+/(小键盘) 折叠当前类中的所有代码

Ctrl+×(小键盘) 展开当前类中的所有代码

-----------Ctrl+Shift 系列-----------

Ctrl+Shift+F 格式化当前代码

Ctrl+Shift+X 把当前选中的文本全部变味小写

Ctrl+Shift+Y 把当前选中的文本全部变为小写

Ctrl+Shift+O:快速地导入import

Ctrl+Shift+R:打开资源 open Resource

-----------F快捷键 系列-----------

F3:打开声明该引用的文件

F4:打开类型层次结构

F5:单步跳入

F6:单步跳过

F7:单步跳出

F8:继续,如果后面没有断点,程序将运行完

-----------行编辑用-----------

Ctrl+D: 删除当前行

Ctrl+Alt+↓ 复制当前行到下一行(复制增加)

Ctrl+Alt+↑ 复制当前行到上一行(复制增加)

Alt+↓ 当前行和下面一行交互位置(特别实用,可以省去先剪切,再粘贴了)

Alt+↑ 当前行和上面一行交互位置(同上)

Shift+Enter 在当前行的下一行插入空行(这时鼠标可以在当前行的任一位置,不一定是最后)

Ctrl+Shift+Enter 在当前行插入空行(原理同上条)

-----------不常用的-----------

Alt+← 前一个编辑的页面

Alt+→ 下一个编辑的页面(当然是针对上面那条来说了)

Ctrl+Shift+S:保存全部

Ctrl+W 关闭当前Editer

Ctrl+Shift+F4 关闭所有打开的Editer

Ctrl+Shift+G: 在workspace中搜索引用

Ctrl+Shift+P 定位到对于的匹配符(譬如{}) (从前面定位后面时,光标要在匹配符里面,后面到前面,则反之)

-----------不明白-----------

Ctrl+J 正向增量查找(按下Ctrl+J后,你所输入的每个字母编辑器都提供快速匹配定位到某个单词,如果没有,则在stutes line中显示没有找到了,查一个单词时,特别实用,这个功能Idea两年前就有了)

Ctrl+Shift+J 反向增量查找(和上条相同,只不过是从后往前查)

显示行号:window->perferences  

Java   中选择Editor在Appearance页面上选择show   line   numbers  

原来只要输“syso”,再按alt+/

Ctrl+1 快速修复(最经典的快捷键,就不用多说了)

Ctrl+D: 删除当前行

Ctrl+Alt+↓ 复制当前行到下一行(复制增加)

Ctrl+Alt+↑ 复制当前行到上一行(复制增加)

Alt+↓ 当前行和下面一行交互位置(特别实用,可以省去先剪切,再粘贴了)

Alt+↑ 当前行和上面一行交互位置(同上)

Alt+← 前一个编辑的页面

Alt+→ 下一个编辑的页面(当然是针对上面那条来说了)

Alt+Enter 显示当前选择资源(工程,or 文件 or文件)的属性

Shift+Enter 在当前行的下一行插入空行(这时鼠标可以在当前行的任一位置,不一定是最后)

Shift+Ctrl+Enter 在当前行插入空行(原理同上条)

Ctrl+Q   定位到最后编辑的地方

Ctrl+L  定位在某行  (对于程序超过100的人就有福音了)

Ctrl+M 最大化当前的Edit或View (再按则反之)

Ctrl+/   注释当前行,再按则取消注释

Ctrl+O   快速显示 OutLine

Ctrl+T   快速显示当前类的继承结构

Ctrl+W  关闭当前Editer

Ctrl+K   参照选中的Word快速定位到下一个

Ctrl+E 快速显示当前Editer的下拉列表(如果当前页面没有显示的用黑体表示)

Ctrl+/(小键盘) 折叠当前类中的所有代码

Ctrl+×(小键盘) 展开当前类中的所有代码

Ctrl+Space 代码助手完成一些代码的插入(但一般和输入法有冲突,可以修改输入法的热键,也可以暂用Alt+/来代替)

Ctrl+Shift+E 显示管理当前打开的所有的View的管理器(可以选择关闭,激活等操作)

Ctrl+J  正向增量查找(按下Ctrl+J后,你所输入的每个字母编辑器都提供快速匹配定位到某个单词,如果没有,则在stutes line中显示没有找到了,查一个单词时,特别实用,这个功能Idea两年前就有了)

Ctrl+Shift+J 反向增量查找(和上条相同,只不过是从后往前查)

Ctrl+Shift+F4 关闭所有打开的Editer

Ctrl+Shift+X   把当前选中的文本全部变味小写

Ctrl+Shift+Y   把当前选中的文本全部变为小写

Ctrl+Shift+F  格式化当前代码

Ctrl+Shift+P 定位到对于的匹配符(譬如{}) (从前面定位后面时,光标要在匹配符里面,后面到前面,则反之)

下面的快捷键是重构里面常用的,本人就自己喜欢且常用的整理一下(注:一般重构的快捷键都是Alt+Shift开头的了)

Alt+Shift+R 重命名 (是我自己最爱用的一个了,尤其是变量和类的Rename,比手工方法能节省很多劳动力)

Alt+Shift+M 抽取方法 (这是重构里面最常用的方法之一了,尤其是对一大堆泥团代码有用)

Alt+Shift+C 修改函数结构(比较实用,有N个函数调用了这个方法,修改一次搞定)

Alt+Shift+L 抽取本地变量( 可以直接把一些魔法数字和字符串抽取成一个变量,尤其是多处调用的时候)

Alt+Shift+F 把Class中的local变量变为field变量 (比较实用的功能)

Alt+Shift+I 合并变量(可能这样说有点不妥Inline)

Alt+Shift+V 移动函数和变量(不怎么常用)

Alt+Shift+Z 重构的后悔药(Undo)

Ctrl+1 快速修复(最经典的快捷键,就不用多说了)

Ctrl+D: 删除当前行

Ctrl+Alt+↓ 复制当前行到下一行(复制增加)

Ctrl+Alt+↑ 复制当前行到上一行(复制增加)

Alt+↓ 当前行和下面一行交互位置(特别实用,可以省去先剪切,再粘贴了)

Alt+↑ 当前行和上面一行交互位置(同上)

Alt+← 前一个编辑的页面

Alt+→ 下一个编辑的页面(当然是针对上面那条来说了)

Alt+Enter 显示当前选择资源(工程,or 文件 or文件)的属性

Shift+Enter 在当前行的下一行插入空行(这时鼠标可以在当前行的任一位置,不一定是最后)

Shift+Ctrl+Enter 在当前行插入空行(原理同上条)

Ctrl+Q 定位到最后编辑的地方

Ctrl+L 定位在某行 (对于程序超过100的人就有福音了)

Ctrl+M 最大化当前的Edit或View (再按则反之)

Ctrl+/ 注释当前行,再按则取消注释

Ctrl+O 快速显示 OutLine

Ctrl+T 快速显示当前类的继承结构

Ctrl+W 关闭当前Editer

Ctrl+K 参照选中的Word快速定位到下一个

Ctrl+E 快速显示当前Editer的下拉列表(如果当前页面没有显示的用黑体表示)

Ctrl+/(小键盘) 折叠当前类中的所有代码

Ctrl+×(小键盘) 展开当前类中的所有代码

Ctrl+Space 代码助手完成一些代码的插入(但一般和输入法有冲突,可以修改输入法的热键,也可以暂用Alt+/来代替)

Ctrl+Shift+E 显示管理当前打开的所有的View的管理器(可以选择关闭,激活等操作)

Ctrl+J 正向增量查找(按下Ctrl+J后,你所输入的每个字母编辑器都提供快速匹配定位到某个单词,如果没有,则在stutes line中显示没有找到了,查一个单词时,特别实用,这个功能Idea两年前就有了)

Ctrl+Shift+J 反向增量查找(和上条相同,只不过是从后往前查)

Ctrl+Shift+F4 关闭所有打开的Editer

Ctrl+Shift+X 把当前选中的文本全部变味小写

Ctrl+Shift+Y 把当前选中的文本全部变为小写

Ctrl+Shift+F 格式化当前代码

Ctrl+Shift+P 定位到对于的匹配符(譬如{}) (从前面定位后面时,光标要在匹配符里面,后面到前面,则反之)

Ctrl+Shift+R 查找文件

Ctrl+Shift+T 查找类

下面的快捷键是重构里面常用的,本人就自己喜欢且常用的整理一下(注:一般重构的快捷键都是Alt+Shift开头的了)

Alt+Shift+R 重命名 (是我自己最爱用的一个了,尤其是变量和类的Rename,比手工方法能节省很多劳动力)

Alt+Shift+M 抽取方法 (这是重构里面最常用的方法之一了,尤其是对一大堆泥团代码有用)

Alt+Shift+C 修改函数结构(比较实用,有N个函数调用了这个方法,修改一次搞定)

Alt+Shift+L 抽取本地变量( 可以直接把一些魔法数字和字符串抽取成一个变量,尤其是多处调用的时候)

Alt+Shift+F 把Class中的local变量变为field变量 (比较实用的功能)

Alt+Shift+I 合并变量(可能这样说有点不妥Inline)

Alt+Shift+V 移动函数和变量(不怎么常用)

Alt+Shift+Z 重构的后悔药(Undo)

FF3.5产生随机数种子的方式是:扫描所有你的临时文件目录和Internet Explorer的缓存目录。。。。。。

一个浏览器的快速启动,竟然依赖另一个浏览器的临时目录。。。。

orz。。。现在Mozilla到了一个很尴尬的地步了,裸体Firefox及其难用,易用性不如上个世纪的IE壳浏览器,Firefox唯一的优点是插件及其丰富(不要过来给科普插件 vs 扩展),但正如当年的WinAMP和IE一样,插件也会逐渐扼杀整个Firefox生态系统。。。。

前提是要安装sqlite3.exe

 

Linux:
for f in ~/.mozilla/firefox/*/*.sqlite; do sqlite3 $f 'VACUUM;';

Windows:
cmd /cfor %f in (*.sqlite) do sqlite3.exe %f "vacuum;"

Powershell和Mac下的压缩方法见原帖。有人节省了50MB的硬盘空间。可观哦。

 

数据库的压缩概念并不是用压缩算法去压缩和解压缩内容,而是清理被标记为删除的无用数据吧,所以根本不需要耗费cpu时间解压缩,而是节约了读取无用数据的cpu和内存.

其实很多用了sqlite的软件都可以这么干。例如Google Gears和Chrome。

 

今天又学到一个最新的优化方法

1. 打开你的Firefox用户配置文件夹,
2. 删除urlclassifier2.sqlite, urlclassifier3.sqlite
3. 新建2个文件夹,名字叫 urlclassifier2.sqlite,urlclassifier3.sqlite。

相信同时使用Firefox和G-mail的网友有很多,那么有没有什么方法让G-mail成为Firefox的默认邮件客户端呢?请往下看:

  1. 在Firefox中打开Gmail.
  2. 在加载Gmail的标签页中,复制如下javascript代码到你的地址栏中,如上图:
    javascript:window.navigator.registerProtocolHandler("mailto","https://mail.google.com/mail/?extsrc=mailto&url=%s","GMail")
    如果你是Google Apps的用户,请使用下面这段代码,不过要将example.com 换成你自己的域名:
    javascript:window.navigator.registerProtocolHandler("mailto","https://mail.google.com/a/example.com/mail/?extsrc=mailto&url=%s","GMail")
  3. Firefox 3 会询问是否将Gmail添加为默认打开mailto的程序. 点击Add Application button
  4. 现在,如果你点击了一个mailto链接(及email链接),Firefox 3会询问你选择哪个程序打开。选择Gmail并勾上"Remember my choice for mailto links",这样以后就不用再选择了。
    如果该方法不适用,请在浏览器地址栏中输入 about:config ,然后查看 network.protocol-handler.external.mailto 的值是否是true.
  5. 如果想要在Firefox 3中取消Gmail打开mailto链接, 进入Tool工具栏, 选择 Options. (Mac用户进入Preferences对话框.) 在 Applications 便签里, 查找 mailto. 在 mailto handlers的列表中, 选择Applications Details, 如下图. 在这里你就可以选择Gmail并将其删除。

批量导出联系人为vfs

outlook中,工具->宏,创建一个新的宏,名称任意,输入:

Sub ExportVcards()
Dim MyContacts As Outlook.MAPIFolder
Dim ContItem As Outlook.ContactItem
Dim FileName As String
Set MyContacts = Application.GetNamespace("MAPI").GetDefaultFolder(olFolderContacts)
'取得默认的联系人文件夹
For Each ContItem In MyContacts.Items '遍历所有联系人
FileName = "c:\Contacts\" & ContItem.FileAs & ".vcf"
ContItem.SaveAs FileName, olVCard
'导出vfs文件
Next
End Sub

注意上面的蓝色部分为输出到的目的文件夹

然后运行,如果失败,请检查c:\Contacts文件夹是否存在(不存在则要先创建),以及outlook中,工具->安全性,是否有权限运行宏。

联系人导出到c:\Contacts后(注意导出后先不要编辑这些文件),把整个文件夹复制到Linux中的一个文件夹。用终端进入,输入:

$cat *.vcf > all.vcf
$gedit all.vcf

另存一下文件,另存的时候把编码改成utf-8就可以了,然后在Evolution中导入另存的文件,我的通讯录好像没有什么信息丢失

© 2010 阿单工作室 Suffusion WordPress theme by Sayontan Sinha