在我参加的一个周末极客研讨会上,几位讲师赞美了Javascript的优点.我在某种程度上使用过Javascript,但是他们的热情使我想要更接近一点.
我学到了关于Rhino和SpiderMonkey的点点滴滴.我知道服务器端脚本和对本地文件访问的限制(以及原因).
我想知道Javascript是否会将它与perl和python一起作为通用语言?不是b/c存在任何缺乏的语言,而仅仅是为了扩大其覆盖范围的技术人员.
我对未来的预测并不那么感兴趣,因为我关注的是当前的可能性,障碍,以及近期表格中可能使这更成为现实的内容.
你们当中有些人现在可能会以这种方式使用这种语言吗?Shell脚本,本地应用程序等?
如果是这样,您如何解决本地文件访问和其他问题,如数据库?
我迫切需要您在解决Windows-7问题方面的专业知识.
场景:我有一个基于框架的帮助包,设置用于上下文相关的帮助调用.Java应用程序能够通过将表示所需HTML命名锚点的标记传递给名为pophelp的HTML文件来控制帮助包打开的页面.此文件具有javascripting,它从URL末尾读取传递的标记,并将其映射到帮助包中的相应HTML文件并打开它.
问题:上述方案适用于Windows XP,但不再适用于Windows 7.
来自Java应用程序的调用机制: rundll32 url.dll,FileProtocolHandler文件://filepath/pophelp.html?标记
到目前为止的调查结果摘要:似乎url.dll不再允许在Windows 7中使用URL传递参数.参数被剥离.我也尝试使用来自Java的Desktop.getDesktop().browse()进行相同类型的调用,但它似乎也在.html之后删除了所有参数.
示例代码:
适用于Windows XP的原始呼叫 -
运行命令: rundll32 url.dll,FileProtocolHandler文件:// C:\ Program Files\App System\App-Editor-8.0.1\help\pophelp.html?TAG = callsubflow
结果:?TAG =未传递callsubflow.
使用Desktop.getDesktop()的新代码.browse() -
public static void main(String[] args) {
String url = "file:///C:/Program Files/App System/App-Editor-8.0.1/help/pophelp.html?TAG=callsubflow";
try {
if (Desktop.isDesktopSupported()) {
Desktop desktop = Desktop.getDesktop();
if (desktop.isSupported(Desktop.Action.BROWSE)) {
desktop.browse(new URI(url.replace(" ", "%20")));
}
}
} catch (IOException e) {
System.out.println("Unable to open "+url+": "+e.getMessage());
} catch (URISyntaxException e) {
e.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud)
结果: …
虽然许多人都在询问有关在哪里找到好书或教程的问题,但我想采取相反的方法.
我认为自己是一名入门级程序员,准备升级到中级.我在C编写的代码,C++,C#,Perl,Python和Clojure中,VB和Java,所以我不能完全一无所知.
在我看到移动到下一个级别的问题时,我们正在学习如何更好地利用数百个可用的库.
我似乎瘫痪了,除非在书或教程中有一个特定的例子来牵制我,但我经常在各种论坛中阅读,其他程序员试图协助提问.他/她将查看文档或扫描他们喜欢的IDE中的可用类/方法,并且似乎在相对较短的时间内了解正在发生的事情,即使他们之前没有使用该特定库或函数.
我渴望打破不断花费一小时搜索和阅读,搜索和阅读,搜索和阅读的脐带和弦.很多时候没有书或教程,或者如果有的话,讨论掩盖了我的特定需求,或者显示的示例离我的想法的路径太远或信息已过时并使用已弃用的组件或图书馆本身已脱离主流,但仍然完全可用(但没有文档,书籍或教程可以手持).
我的问题是:在没有书籍或教程的情况下,了解新的或不熟悉的图书馆的最佳方法是什么?
我渴望光滑的grok路径,所以我可以开始做我最喜欢的事情 - 编码.
从基本的测试程序...
package main
/*
#include <stdio.h>
static void test() {
printf("hello world");
}
*/
import "C"
func main() {
C.test();
}
Run Code Online (Sandbox Code Playgroud)
我做"cgo hello_cgo.go"并得到:
_cgo_.o
_cgo_defun.c
_cgo_gotypes.go
hello_cgo.cgo1.go
hello_cgo.cgo2.c
Run Code Online (Sandbox Code Playgroud)
我如何从这里编译到exe?
我有一个这样的 xml 文件——
<merge-requests type="array">
<merge-request>
<created-at type="datetime">2013-09-04T11:20:34Z</created-at>
<updated-at type="datetime">2013-09-04T11:20:34Z</updated-at>
<status>Open</status>
<id>116</id>
</merge-request>
<merge-request>
<created-at type="datetime">2013-09-03T22:50:30Z</created-at>
<updated-at type="datetime">2013-09-03T22:50:30Z</updated-at>
<status>Open</status>
<id>115</id>
</merge-request>
</merge-requests>
Run Code Online (Sandbox Code Playgroud)
我希望能够从每个合并请求中提取 ID。
这是我的 gradle 任务:
task parseXml() {
def mergeRequests = (new XmlParser()).parse('merge-requests.xml')
mergeRequests.{'merge-request'}.each{ merge-request ->
println "ID: " + merge-request@id
}
}
Run Code Online (Sandbox Code Playgroud)
这失败了:
Startup failed:
build file 'build.gradle': expecting '}', found '->'
Run Code Online (Sandbox Code Playgroud)
我猜这是因为它找不到标签名称。
这是因为连字符还是我缺少的东西?
我尝试创建和使用变量而不是使用完整的连字符名称,但结果是一样的。