小编Joe*_*nte的帖子

是否允许包含空格的URL?

是否允许URI(特别是HTTP URL)包含一个或多个空格字符?如果必须对URL 进行编码,这+只是一个常用的约定,还是合法的替代方案?

特别是,有人可以指向一个RFC,表明必须编码带空格的URL 吗?

问题的动机:在对网站进行beta测试时,我注意到有些网址是用空格构建的.Firefox似乎做对了,让我感到惊讶!但我希望能够将开发人员指向RFC,以便他们觉得需要修复这些URL.

html url encoding http

124
推荐指数
8
解决办法
20万
查看次数

从CVS转到Git:$ Id:$等价?

我阅读了一堆关于简单源代码控制工具的问题,而Git似乎是一个合理的选择.我已经启动并运行,到目前为止它运行良好.我喜欢CVS的一个方面是自动增加版本号.

我理解这在分布式存储库中没有多大意义,但作为开发人员,我希望/需要这样的东西.让我解释一下原因:

我用Emacs.我会定期查找第三方软件包的新版Lisp源文件.假设我有一个文件foo.el,根据标题,它是版本1.3; 如果我查看最新版本并看到它是1.143或2.6或其他什么,我知道我已经远远落后了.

如果相反我看到了几个40个字符的哈希值,我不知道哪个是后来的,或者不知道它有多晚.如果我不得不手动检查ChangeLogs以了解我是如何过时的,我会非常讨厌它.

作为一名开发人员,我希望将这种礼貌扩展到使用我的输出的人(也许我在开玩笑说,任何人都是,但让我们暂时搁置一下).我不想记得每次都自己增加该死的号码,或者时间戳或类似的东西.那是一个真正的PITA,我从经验中知道.

那么我有什么替代品?如果我不能得到$ Id:$等价物,我还能提供我想要的东西吗?

我应该提一下,我的期望是最终用户不会安装Git,即使他们这样做,也不会有本地存储库(事实上,我希望不会以这种方式提供它).

git cvs version-control keyword-substitution

121
推荐指数
9
解决办法
7万
查看次数

一个目录中有两个git存储库?

是否可以在一个目录中拥有2个git存储库?我想不会,但我想我会问.基本上,我想检查我的主目录配置文件(例如.emacs),它应该在我工作的所有机器上是通用的,但是有本地文件的第二个存储库(例如.emacs.local),其中包含机器特定的配置.我能想到的唯一方法是将本地配置放在子目录中,并忽略主git存储库中的子目录.还有其他想法吗?

git git-submodules git-subrepo

78
推荐指数
7
解决办法
5万
查看次数

为什么不返回数组引用?

"从Perl子程序返回一个完整的数组效率低下"的问题中,如果不需要它,两个人建议不要进行优化.作为一般规则,优化可以增加复杂性,如果不需要,简单就更好了.但是在这个特定的情况下,返回一个数组而不是数组ref,我没有看到任何增加的复杂性,我认为接口设计的一致性会更重要.因此,我几乎总是这样做:

sub foo
{
   my($result) = [];

   #....build up the result array ref

   $result;
}
Run Code Online (Sandbox Code Playgroud)

是否有理由我不应该这样做,即使是小结果?

arrays perl reference

12
推荐指数
3
解决办法
1万
查看次数

-help选项中的Apache Commons CLI多个参数值名称

我使用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

9
推荐指数
2
解决办法
2万
查看次数

Sublime Text 3中的单个文件的多个视图

在Sublime Text 3(和ST2)中,如果我在多个窗口中打开相同的文件它们没有链接在一起,那么在一个窗口中进行的更改不会反映在另一个窗口中 - 除非我使用"New View into File"打开后续文件,在这种情况下它们是链接的.即使我确实使用此选项来创建新视图,但如果我在打开两个视图时退出,当我重新打开ST3时,文件将不再链接.

有没有办法做到这一点,无论我如何打开文件,如果两个视图指向同一个文件,它们是否链接?或者,我可以在事后手动链接它们(在这种情况下,如果两个视图以不同方式修改会发生什么)?

sublimetext3

9
推荐指数
1
解决办法
700
查看次数

在Java中,为什么readLine()会在封闭的套接字连接上阻塞?

我有一个简单的客户/服务器应用程序.服务器已设置为如果在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()仍然挂起.

java timeout bufferedreader

6
推荐指数
1
解决办法
8964
查看次数

如何在新窗口中打开 Visual Studio Code 工作区

在 Visual Studio Code 中,我可以一键在新窗口中打开工作区吗?我尝试使用扩展,定义以下内容:

"macros": {
    "openWorkspaceNewWindow": [
        "workbench.action.newWindow",
        "workbench.action.openWorkspace"
    ]
}
Run Code Online (Sandbox Code Playgroud)

实际上,它确实打开了一个新窗口,但随后它在调用时忽略了新窗口openWorkspace

我想要做的不是用新打开的工作区替换当前窗口;我想保留当前窗口并打开一个包含工作区的新窗口。

visual-studio-code

6
推荐指数
3
解决办法
3568
查看次数

为什么我的 Perl 函数原型“(&amp;;+)”仍然需要“sub”?

我正在研究 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 …

perl function-prototypes

6
推荐指数
1
解决办法
138
查看次数

Java中的nonProxyHosts属性的有效正则表达式格式是什么?

当使用proxyHost,proxyPortnonProxyHosts在Java属性修改URL连接,什么是通配符的有效用途nonProxyHosts性质?我能做以下任何一项或全部吗?

  1. 显式服务器名称: nonProxyHosts=server.company.com
  2. 子域中的任何服务器: nonProxyHosts=*.local.company.com
  3. 特定服务器的IP地址: nonProxyHosts=192.168.101.110
  4. 子网中的任何服务器: nonProxyHosts=192.168.101.*
  5. 子网中的任何服务器: nonProxyHosts=192.168.101/23

还有其他类型的模式吗?

谢谢!

java regex proxy

5
推荐指数
3
解决办法
8149
查看次数