增加 Shell Extension 实现的高级右键菜单支持
修正其他 bug
Use Shell Extension to implement context menu shortcut
Fix other bugs
Download:
https://code.google.com/p/fhash/downloads/list
http://sourceforge.net/projects/fhash/files/1.8/
增加 Shell Extension 实现的高级右键菜单支持
修正其他 bug
Use Shell Extension to implement context menu shortcut
Fix other bugs
Download:
https://code.google.com/p/fhash/downloads/list
http://sourceforge.net/projects/fhash/files/1.8/
What’s New in JSMinNpp 1.13:
Download links:
https://jstoolnpp.googlecode.com/files/JSMinNPP.1.13.uni.zip
http://sourceforge.net/projects/jsminnpp/files/Uni/JSMinNPP.1.13.uni.zip/download
What’s New:
1.12
Fix a bug in JSON Viewer.
Update JsonPP.
Fix “unexpect space” of JSLint.
Add an option to keep indent in empty line.
Fix “finally” bug.
Change project site to http://sunjw.us/jsminnpp/
Download links:
https://jstoolnpp.googlecode.com/files/JSMinNPP.1.12.uni.zip
http://sourceforge.net/projects/jsminnpp/files/Uni/JSMinNPP.1.12.uni.zip/download
What’s New 1.11
Move to Google Code.
Add a Json Viewer.
Change classes inheritance hierarchy to build a smaller binary file.
Download from here and try.
Although the source code repository has been moved to Google Code, downloading is still from SouceForge.net.
Sooner or later, it will be on GitHub
仔细想了一下,编程解决猜图画,难度比较大。但是可以解决根据已单词长度和候选字母,在字典中寻找符合这两个条件的单词作为候选,之后再由人肉方式得到最终答案。
首先需要准备字典,如果使用标准的字典序,在搜索时需要根据长度过滤单词。其实没有必要每次搜索的时候做,重新对单词进行排序,先按照长度比较大小,只有当长度相同时才按照字典序比较大小。之后就可以将单词整理成按照长度分隔的字典。
搜索时,参考拼写检查算法,将候选字母按照字母顺序排序成列表,将单词依次取出后,也把单词变形,将单词内的字母按照字母顺序排列。看单词的字母表是不是候选字母表的子集,如果是子集,者加入候选单词表。
之前囧哥曾经写过一个日志,讨论一个问题,就是在c/c++里面这个代码的结果
x = 1; x = x++;
执行后,x是2。这个结论还是比较显而易见的,不过编译器到底是怎么处理这段代码的呢?
我用 Fedora 15 自带的 gcc -S -O0 将 .c 编译成 .s 文件,来看看究竟编译器干了什么。
int x = 13; // 为了看汇编更方便,赋值13 x = x++;
被翻译成如下的汇编代码:
movl $13, -4(%rbp) ;x=13 addl $1, -4(%rbp) ;x++ movl $0, %eax popq %rbp
从汇编码来看,gcc 是这样理解x = x++的:
x = x; // 被优化掉了 x++;
也就是对于 int 这种 trivial 类型,= 的优先级高于后置++。 先赋值,再做后置++。
我们再来试几个代码:
第一组
int x=13; int y; y = x++;
翻译结果:
movl $13, -4(%rbp) ;x=13 movl -4(%rbp), %eax ;eax=x movl %eax, -8(%rbp) ;y=eax addl $1, -4(%rbp) ;x++ movl $0, %eax popq %rbp
————————————————–
第二组
int x=13; int y; x = y = x++;
翻译结果:
movl $13, -4(%rbp) ;x=13 movl -4(%rbp), %eax ;eax=x movl %eax, -8(%rbp) ;y=eax movl -8(%rbp), %eax ;eax=y movl %eax, -4(%rbp) ;x=y addl $1, -4(%rbp) ;x++ movl $0, %eax popq %rbp
————————————————–
第三组
int x=13; int y; y = ++x;
翻译结果:
movl $13, -4(%rbp) ;x=13 addl $1, -4(%rbp) ;++x movl -4(%rbp), %eax ;eax=x movl %eax, -8(%rbp) ;y=eax movl $0, %eax popq %rbp
————————————————–
从各个例子中可以看出,gcc 对于 int 这种 trivial 类型,认为 = 优先级高于后置++,低于前置++。
赋值先于后置++,后于前置++。
即使复杂点的例子x=((x++)+(y++)),相当于:
x=x+y;
x++;
y++;
JSMinNpp 1.9 released.
What’s New in1.9 (since 1.8)
Fixed “one more indent in ({…})”.
Fixed “A space at the end of file”.
Fixed other bugs in formatting algorithm.
Some minor changes.
Download it from: http://jsminnpp.sourceforge.net/
JSMinNpp 1.8 released today.
What’s New in 1.8 (since 1.7.1):
Leave empty {} alone.
Added a shortcut for formatting (Ctrl+Alt+M).
Added an option to keep comments at top of codes.
Fixed bugs.
Download it from: http://jsminnpp.sourceforge.net/
最近有幸参与一些 Catia 的二次开发,在这个方面的文档很少是很令人头疼的一件事。
首先入门的时候,比较大的问题就是怎么样能添加一个工具栏到 Catia 界面里。许多教程(例如这个)都会介绍到使用 Addin 为 Catia 添加一个工具栏,但是如果你完全照着做 99% 是不会成功的(剩下的 1% 可能是你电脑出错了:))。其中主要的一个步骤是在添加 Component 的时候,选择一个 TIE mode,教程上说是选择安装路径中的 CATIPrtWksAddin,如果你也是这样选择的,虽然后面的步骤都是对的,编译也完成了,运行后你不会看到这个工具栏在之前步骤建立的Workbench中视看不到这个工具栏的,它其实在 Part Design 工作空间中。如果现在刚才建立的 Workbench 中使用,在一进入这个对话框的时候,在当前工作目录下有一个 CATIAddinWorkbenchAddin 1,直接选择 Implement 这个接口就可以了。
因为在建立 Workbench 的时候,就已经建立了这个接口,Workbench 运行的时候,会载入一个实现的接口,并且运行里面的函数来建立菜单和工具栏。而你如果选择 CATIPrtWksAddin,Workbench 载入时并不知道应该用哪个实现类。
向导之后会为你建立好框架,你需要做的就和大多数教程一样,实现 CreateToolbars() 和 CreateCommands() 即可。
如果不想将建立的过程封装起来,也可以不建立 Addin,直接在 Workbench 的 Headers.h 和 Workshop.h 中编写代码。在 CATAddinWorkbenchCmdHeader 1 中会有一个默认的实现名称,例如 MacImplementHeader(CATAddinWorkbenchCmdHeader),使用 CATAddinWorkbenchCmdHeader 可以直接在 Headers.h 中使用和实现 CreateCommands() 时类似的方法建立按钮与命令之间的连接,在 Workshop.h 中也可以使用实现 CreateToolbars() 的方法来建立工具栏和菜单项。
1 下划线部分会由于你所建立的 Workbench 的不同而变化