小编ski*_*ppy的帖子

我可以使用mSysGit和Cygwin的git吗?

迁移到Windows后,我使用msysgit及其包含的bash shell,这对我来说很有用.但我有问题:我们的ant构建过程不会在那个shell中运行,我想使用Cygwin的xterms而不是Windows命令窗口,因为终端兼容性不足以运行我想要的其他所有内容那个窗口,等等.

我实际上已经在Windows命令shell中坚持使用msysgit,这样我就不必使用单独的窗口来构建,但是这会遇到更多问题:缺少cd- 并且文件完成会让我失望,大多数我想要管道的命令不存在,等等.

所以如果我转而使用Cygwin的git,或者更糟糕的是,在不同的时间使用它们,那么行结尾会咬我吗?Cygwin的git会期待一切,\n并认为它看到了变化,因为mSysGit \r\n在结账时转换成了吗?将Cygwin的git检查出来\n并混淆我的Windows Eclipse,我确信它应该是一切\r\n吗?

windows git cygwin msysgit

8
推荐指数
1
解决办法
7466
查看次数

为什么JavaMail Transport.send()是一个静态方法?

我正在修改我没写过的使用JavaMail的代码,并且在理解为什么JavaMail API的设计方式有点麻烦.我觉得,如果我理解,我可以做得更好.

我们称之为:

transport = session.getTransport("smtp");
transport.connect(hostName, port, user, password);
Run Code Online (Sandbox Code Playgroud)

那么为什么Eclipse会警告我:

transport.send(message, message.getAllRecipients());
Run Code Online (Sandbox Code Playgroud)

是对静态方法的调用?

如果我无法使用该对象发送消息,为什么我会获取Transport对象并提供特定于它的设置?Transport类如何知道用于发送消息的服务器和其他设置?它工作正常,很难相信.如果我为两个不同的服务器实例化了Transport对象,该怎么办?怎么知道使用哪一个?

在写这个问题的过程中,我发现我应该真的在呼唤:

transport.sendMessage(message, message.getAllRecipients());
Run Code Online (Sandbox Code Playgroud)

那么静态Transport.send()方法的目的是什么?这只是糟糕的设计,还是有这样的原因?

java api-design jakarta-mail

8
推荐指数
2
解决办法
8239
查看次数

为什么Moose的构建器采用字符串值?

Moose :: Manual :: Attributes说明:

作为使用子程序引用[默认]的替代方法,您可以为属性提供构建器方法:...这有几个优点.首先,它将一大块代码移动到自己的命名方法,从而提高了可读性和代码组织.

因此,您的属性可以因此定义默认值:

has attr => (
  is => 'ro',
  builder => 'subroutine'
);
sub subroutine {
  # figure out and return default value
}
Run Code Online (Sandbox Code Playgroud)

我不明白为什么这必须与默认分开.难道你不能只是传递对命名子程序的引用吗?

has attr => (
  is => 'ro',
  default => \&subroutine
);
Run Code Online (Sandbox Code Playgroud)

那不是更好的编程实践,因为你保证不会意外地引用一个不存在的子程序吗?您将使用逻辑引用而不是符号引用来引用该方法.

perl moose

7
推荐指数
3
解决办法
703
查看次数

如何计算昼夜平分点/至日时刻?

有哪些算法或公式可用于计算昼夜平分点和至终点?几年前我找到了其中一个并实现了它,但精度并不高:一天中的时间似乎假设在00:00,06:00,12:00和18:00 UTC,具体取决于哪个昼夜平分点或至日计算.维基百科给出了这些计算出的分钟,因此必须有更精确的东西.我最喜欢的编程语言的库也出现在那些硬编码时代,因此我假设他们使用的算法与我实现的相同或类似.

我曾经尝试过使用一个图书馆,它给了我太阳经度,并实现了一个搜索程序,在0度,90度,180度和270度的确切时刻归零; 这可以归结为第二个,但不同意维基百科的时代,所以我认为这种方法有问题.然而,我惊喜地发现迈蒙尼德(中世纪犹太学者)在千禧年之前使用完全相同的想法提出了一种算法.

astronomy equinox

7
推荐指数
2
解决办法
3323
查看次数

substring()应该如何工作?

我不明白为什么Java的[String.substring()方法](http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html#substring (int,%20int%)29)按照它的方式指定.我不能告诉它从编号位置开始并返回指定数量的字符;我必须自己计算结束位置.如果我指定结束位置超出结束位置String,而不是仅为我返回String的其余部分,Java抛出异常.

我习惯于substring()(或substr())接受两个参数的语言:起始位置和长度.这是客观上比Java更好的方式,如果是这样,你能证明吗?您看过的substring()的最佳语言规范是什么,以及何时语言以不同方式做事的好主意?是抛出一个好的设计理念的IndexOutOfBoundsException吗?这一切只是归结为个人偏好吗?

language-agnostic language-design substring substr

7
推荐指数
3
解决办法
2491
查看次数

如何在不浪费空间的情况下复制/克隆git存储库?

我正在做一些工作来跟踪git支持工具中的感知错误,我想复制一个存储库(可能多次)用于实验目的.我希望将硬链接创建到原始存储库对象数据库,以免浪费磁盘空间存储具有相同SHA值的相同对象的多个副本.git clone很好地完成了这个,但不幸的是我似乎无法找到一种方法让git clone给我一个像原始存储库一样的存储库的新副本:

  1. 克隆指向复制的存储库作为其来源,但我希望它与复制的存储库具有相同的来源
  2. 克隆只有一个分支,但我希望它拥有复制的存储库的所有分支

我可以通过使用git clone --mirror来改善其中一些,但这只会创建一个裸存储库,我正在尝试的存储库不是裸的,我试图调试的支持工具不能在裸机上运行库.

我想写一个快速shell循环来使一个新的对象数据库充满原始对象数据库的硬链接,然后从原始.git目录复制其他所有内容,然后进行git checkout,但我担心这是复杂到足以容易出错,而且我不太了解正确执行这种低级手术,并且会构建一个存在细微错误的存储库.理论上,这种方法应该有效吗?

更好的是,有没有办法将选项传递给git clone以使其能够满足我的需求?

有没有办法可以创建一个新的存储库,但告诉它它的对象数据库在另一个目录中,基本上告诉它从原始存储库共享对象数据库?

如果上述方法都不起作用,那么我只剩下一个cp -pr,它将消耗大量空间并且耗时.

git

7
推荐指数
1
解决办法
4000
查看次数

我可以将hprof/jmap转储与VisualVM进行比较吗?

当我尝试用它来配置我们的应用程序时,VisualVM崩溃,但是如果我可以加载jmap内存转储,我已经完成了从我们的应用程序到VisualVM,我可能得到我需要的答案,而不必将VisualVM连接到我们的应用程序,而它是运行.

那么,有没有办法做到这一点?

java profiling visualvm hprof

7
推荐指数
2
解决办法
7188
查看次数

我应该使用什么JavaScript库来解析URL参数?

如何解析JavaScript中的URL参数?(这些都是我通常会调用get参数或CGI参数的参数,但是在这种情况下,页面基本上是提交到自身,而不是服务器,所以没有GET请求并没有绝对的CGI程序.)

我已经在网上看到了一些我可以复制的例程,但我不知道它们有多强大.我已经习惯了其他语言,比如Perl和Java,我可以依赖一个经过严格测试和强大的库,我知道它将处理标准中数以百万计的小边缘情况.我想在这里一样,而不仅仅是剪切和粘贴一个例子.

javascript

7
推荐指数
2
解决办法
7241
查看次数

PBEWithMD5AndTripleDES的密钥大小是多少?

我试图用现有代码中的PBEWithMD5AndTripleDES替换PBEWithMD5AndDES.到目前为止,我使用的是之前使用的相同密码,并收到此异常:

java.security.InvalidKeyException:非法的密钥大小

我在网上查看,看到DES使用64位密钥,而TripleDES使用128位密钥.我不清楚我的密码短语如何用于生成密钥的细节,并且不确定在哪里完全理解这一点.我的密码长度为260个字符.我尝试加倍长度,但我得到了同样的例外.

我从我的密码生成一个PBEKeySpec,有一个8字节的盐和12的迭代计数.我看到有另一个构造函数接受一个keyLength参数,但文档将其描述为"要派生",而我不是明白.我有一个想法,我需要修改迭代计数和/或提供一个keyLength参数,但我不想盲目地这样做而不完全理解我在做什么.

以下是我目前使用的代码的基本概要:

String passphrase = ...
byte[] salt = ...
int iterationCount = 12;
String algorithm = "PBEWithMD5AndTripleDES";
KeySpec keySpec = new PBEKeySpec(passPhrase.toCharArray(), salt, iterationCount);
SecretKey key = SecretKeyFactory.getInstance(algorithm).generateSecret(keySpec);
Cipher cipher = Cipher.getInstance(key.getAlgorithm());
AlgorithmParameterSpec paramSpec = new PBEParameterSpec(salt, iterationCount);
cipher.init(Cipher.ENCRYPT_MODE, key, paramSpec);
byte[] encoded = cipher.doFinal(data);
Run Code Online (Sandbox Code Playgroud)

java encryption cryptography

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

有人可以推荐Delphi的颜色选择器组件吗?

我正在为Delphi寻找一个(最好是免费的)组件,用户可以轻松选择大约100种不同的颜色.

我现在有一个作为DevExpress编辑器的一部分,但它只有大约20种适当的颜色可供选择,还有一堆其他"Windows"颜色,如clHighlight,clBtnFace等.

它适用于普通用户,因此希望避免要求他们手动选择RGB值.

与MS Paint中的颜色选择器类似的东西可能有用,或列出X11/web颜色的东西:

http://en.wikipedia.org/wiki/Web_Colors

所以,如果您有任何建议,请告诉我.

感谢大家的建议

所有的建议都很好,我没有意识到可以调用MS Paint颜色对话框,这就是我所需要的并且是最简单的解决方案.谢谢

delphi components colors picker

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