是否允许URI(特别是HTTP URL)包含一个或多个空格字符?如果必须对URL 进行编码,这+
只是一个常用的约定,还是合法的替代方案?
特别是,有人可以指向一个RFC,表明必须编码带空格的URL 吗?
问题的动机:在对网站进行beta测试时,我注意到有些网址是用空格构建的.Firefox似乎做对了,让我感到惊讶!但我希望能够将开发人员指向RFC,以便他们觉得需要修复这些URL.
我阅读了一堆关于简单源代码控制工具的问题,而Git似乎是一个合理的选择.我已经启动并运行,到目前为止它运行良好.我喜欢CVS的一个方面是自动增加版本号.
我理解这在分布式存储库中没有多大意义,但作为开发人员,我希望/需要这样的东西.让我解释一下原因:
我用Emacs.我会定期查找第三方软件包的新版Lisp源文件.假设我有一个文件foo.el,根据标题,它是版本1.3; 如果我查看最新版本并看到它是1.143或2.6或其他什么,我知道我已经远远落后了.
如果相反我看到了几个40个字符的哈希值,我不知道哪个是后来的,或者不知道它有多晚.如果我不得不手动检查ChangeLogs以了解我是如何过时的,我会非常讨厌它.
作为一名开发人员,我希望将这种礼貌扩展到使用我的输出的人(也许我在开玩笑说,任何人都是,但让我们暂时搁置一下).我不想记得每次都自己增加该死的号码,或者时间戳或类似的东西.那是一个真正的PITA,我从经验中知道.
那么我有什么替代品?如果我不能得到$ Id:$等价物,我还能提供我想要的东西吗?
我应该提一下,我的期望是最终用户不会安装Git,即使他们这样做,也不会有本地存储库(事实上,我希望不会以这种方式提供它).
是否可以在一个目录中拥有2个git存储库?我想不会,但我想我会问.基本上,我想检查我的主目录配置文件(例如.emacs),它应该在我工作的所有机器上是通用的,但是有本地文件的第二个存储库(例如.emacs.local),其中包含机器特定的配置.我能想到的唯一方法是将本地配置放在子目录中,并忽略主git存储库中的子目录.还有其他想法吗?
在"从Perl子程序返回一个完整的数组效率低下"的问题中,如果不需要它,两个人建议不要进行优化.作为一般规则,优化可以增加复杂性,如果不需要,简单就更好了.但是在这个特定的情况下,返回一个数组而不是数组ref,我没有看到任何增加的复杂性,我认为接口设计的一致性会更重要.因此,我几乎总是这样做:
sub foo
{
my($result) = [];
#....build up the result array ref
$result;
}
Run Code Online (Sandbox Code Playgroud)
是否有理由我不应该这样做,即使是小结果?
我使用Apache Commons CLI来解析命令行参数.
我正在寻找一种在帮助中显示多个参数值名称的方法.以下是选项"startimport"的一个参数的示例:
Option startimport = OptionBuilder
.withArgName("environment")
.hasArg()
.withDescription(
"Description")
.create("startimport");
Run Code Online (Sandbox Code Playgroud)
当我使用-help打印出来:
-startimport <environment> Description
Run Code Online (Sandbox Code Playgroud)
那很好.但是,如果我想使用两个参数呢?
Option startimport = OptionBuilder
.withArgName("firstArg secondArg")
.hasArgs(2)
.withDescription("Description")
.create("startimport ");
Run Code Online (Sandbox Code Playgroud)
解析这两个参数不是问题,但我想在"-help"中输出以下内容:
startimport <firstArg> <secondArg> Description
Run Code Online (Sandbox Code Playgroud)
但目前我会得到:
startimport <firstArg secondArg> Description
Run Code Online (Sandbox Code Playgroud)
这个问题有适当的解决方案吗?
java command-line arguments command-line-interface apache-commons-cli
在Sublime Text 3(和ST2)中,如果我在多个窗口中打开相同的文件它们没有链接在一起,那么在一个窗口中进行的更改不会反映在另一个窗口中 - 除非我使用"New View into File"打开后续文件,在这种情况下它们是链接的.即使我确实使用此选项来创建新视图,但如果我在打开两个视图时退出,当我重新打开ST3时,文件将不再链接.
有没有办法做到这一点,无论我如何打开文件,如果两个视图指向同一个文件,它们是否链接?或者,我可以在事后手动链接它们(在这种情况下,如果两个视图以不同方式修改会发生什么)?
我有一个简单的客户/服务器应用程序.服务器已设置为如果在N秒内没有数据进入,则发生超时并关闭套接字连接.我通过Socket.setSoTimeout()来做到这一点.如果客户端挂起,一切正常.如果客户端死了(例如我用Ctrl-C杀死它),那么readLine()永远不会超时.
这是服务器代码,如果这有所不同:
public void run()
{
PrintWriter out = null;
BufferedReader in = null;
try {
sock.setSoTimeout(10000);
out = new PrintWriter(sock.getOutputStream(), true);
in = new BufferedReader(new InputStreamReader(sock.getInputStream()));
String input;
while ((input = in.readLine()) != null) {
Run Code Online (Sandbox Code Playgroud)
我已经尝试将一个信号处理程序放入客户端,将ABEND消息发送到服务器,但这不起作用(我怀疑套接字在发送ABEND之前关闭,但我还没有花时间试图计算那个).
有没有办法定期唤醒并检查套接字状态,看它是否关闭?或者(更好的是)如果套接字关闭,没有readLine()挂起?我应该使用某种无缓冲的读卡器吗?是否存在支持类似readLine机制的无缓冲读卡器?
我在Linux上使用Java 6.
编辑:我在闲置期间自己杀了客户; 此时已发送和接收所有数据.我已经验证(通过ps)客户端程序不再运行; Java进程确实被杀死了.使用netstat我可以看到套接字在两端都是关闭的,但readLine()仍然挂起.
在 Visual Studio Code 中,我可以一键在新窗口中打开工作区吗?我尝试使用宏扩展,定义以下内容:
"macros": {
"openWorkspaceNewWindow": [
"workbench.action.newWindow",
"workbench.action.openWorkspace"
]
}
Run Code Online (Sandbox Code Playgroud)
实际上,它确实打开了一个新窗口,但随后它在调用时忽略了新窗口openWorkspace
。
我想要做的不是用新打开的工作区替换当前窗口;我想保留当前窗口并打开一个包含工作区的新窗口。
我正在研究 Perl 原型来了解更多关于它们的信息;我知道它们不像大多数其他语言那样工作。我不想让他们这么做。我特别希望获得一个包装函数来使用裸块作为代码参考,我认为这两个部分暗示了这一点perlsub
:
因为此功能的主要目的是让您定义像内置函数一样工作的子例程
我理解这意味着你可以删除括号,并且
& 需要一个匿名子例程,如果作为第一个参数传递,则不需要 sub 关键字或后续的逗号。
我还想将其他参数传递给包装函数(而不是 coderef)。这些都是语法糖,但这就是我所追求的。
我有以下我认为可行的代码:
#!/usr/bin/env perl
use strict;
use warnings;
use 5.014;
sub with_some_context (&;+)
{
my($coderef, $context) = @_;
{
local %ENV = %ENV;
foreach my $key (keys %$context) {
$ENV{$key} = $context->{$key};
}
$coderef->();
}
}
with_some_context {
foreach my $key (@ARGV) {
say("$key: ", (defined $ENV{$key} ? $ENV{$key} : "<undef>"));
}
} => { shift(@ARGV) => 10 };
Run Code Online (Sandbox Code Playgroud)
目的是{ shift(@ARGV) => 10 }
hashref 是函数的第二个参数with_some_context …
当使用proxyHost
,proxyPort
并nonProxyHosts
在Java属性修改URL
连接,什么是通配符的有效用途nonProxyHosts
性质?我能做以下任何一项或全部吗?
nonProxyHosts=server.company.com
nonProxyHosts=*.local.company.com
nonProxyHosts=192.168.101.110
nonProxyHosts=192.168.101.*
nonProxyHosts=192.168.101/23
还有其他类型的模式吗?
谢谢!