小编Bra*_*pit的帖子

ruby继承vs mixins

在Ruby中,既然你可以包含多个mixin但只扩展一个类,那么看起来mixins比继承更受欢迎.

我的问题:如果你正在编写必须扩展/包含的代码才有用,你为什么要把它变成一个类?换句话说,为什么你不总是把它变成一个模块?

我只能想到你想要一个类的一个原因,那就是你需要实例化这个类.但是,在ActiveRecord :: Base的情况下,您永远不会直接实例化它.所以不应该是一个模块而不是?

ruby inheritance module class mixins

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

什么是Spark中的纱线客户端模式?

Apache Spark最近将版本更新为0.8.1,在该yarn-client模式下可用.我的问题是,纱线客户端模式究竟意味着什么?在文档中它说:

使用yarn-client模式,该应用程序将在本地启动.就像在Local/Mesos/Standalone模式下运行应用程序或spark-shell一样.启动方法也与它们类似,只需确保在需要指定主URL时,使用"yarn-client"代替

"本地推出"是什么意思?在哪里?在Spark集群上?
与纱线独立模式有什么区别?

hadoop-yarn apache-spark

46
推荐指数
6
解决办法
5万
查看次数

maven插件之间的区别(程序集插件,jar插件,阴影插件)

我是maven的初学者,现在我对这些maven插件之间的区别感到困惑.这些都是创建jar文件吗?现在我的问题是

  1. 每个插件中创建的jar之间有什么区别.(程序集插件,jar-plugin,着色插件)

  2. 每个插件的目的.(程序集,jar插件,阴影插件)

  3. 我知道即使没有指定任何这些插件,一旦输入mvn package就会有一个jar输出.没有这些插件的输出jar和带有这些插件的输出jar有什么区别?TIA

java apache plugins jar maven

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

SingletonEhCacheRegionFactory vs EhCacheRegionFactory

这个链接(来自Ehcache的创建者)说当你只有一个Hibernate SessionFactory时你应该使用SingletonEhCacheRegionFactory,当你有多个时,你应该使用EhCacheRegionFactory.

但是当你只有一个SessionFactory时,EhCacheRegionFactory不会是单个实例吗?

那么,SingletonEhCacheRegionFactory有什么好处呢?为什么不一直使用EhCacheRegionFactory,因为它可以用于一个SessionFactory或多个?

仅供参考:我使用的是Ehcache 2.4.2和Hibernate 3.6.5

java hibernate ehcache

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

如果攻击者拥有原始数据和加密数据,他们能否确定密码?

如果攻击者有多个不同的项目(例如:电子邮件地址)并且知道每个项目的加密值,攻击者是否可以更轻松地确定用于加密这些项目的秘密密码?意思是,他们能否在不诉诸蛮力的情况下确定密码?

这个问题可能听起来很奇怪,所以让我提供一个用例:

  1. 用户使用他们的电子邮件地址注册站点
  2. 服务器向该电子邮件地址发送确认URL(例如:https://my.app.com/confirmEmailAddress/bill%40yahoo.com)
  3. 攻击者可以猜出确认URL,因此可以使用其他人的电子邮件地址注册,并"确认"它,而无需登录该人的电子邮件帐户并查看确认URL.这是个问题.
  4. 我们不会通过URL发送电子邮件地址纯文本,而是通过密码密码发送.
  5. (我知道攻击者仍然可以拦截服务器发送的电子邮件,因为电子邮件是纯文本,但在这里请耐心等待.)
  6. 如果攻击者随后注册了多个免费电子邮件帐户并看到多个URL,每个URL都有相应的加密电子邮件地址,攻击者是否可以更轻松地确定用于加密的密码?

替代方案

我可以发送一个随机数或单向哈希的电子邮件地址(加上随机盐).这消除了存储秘密密码短语,但这意味着我需要在数据库中存储该随机数/散列.上面的原始方法不需要存储在数据库中.

我倾向于单向散列存储在数据库中,但我仍然想知道答案:确实有多个未加密的电子邮件地址和它们的加密对应物使得更容易确定密码短语用过的?

encryption cryptography

13
推荐指数
3
解决办法
908
查看次数

月份减去一个(不是因为它基于0)

当我在一个代表1970年1月1日的日期设置月份,然后立即返回月份时,它会被一个人关闭.

import java.util.Date;

@Test
public void monthShouldBeExpectedValue() {
    Calendar calendar = Calendar.getInstance();
    calendar.setTime(new Date(0));

    int expectedMonth = Calendar.JUNE;
    calendar.set(Calendar.MONTH, expectedMonth);
    int actualMonth = calendar.get(Calendar.MONTH);

    assertThat(actualMonth, equalTo(expectedMonth)); // test fails: expected 5 got 6
}
Run Code Online (Sandbox Code Playgroud)

如果我改变这一行

calendar.setTime(new Date(0));
Run Code Online (Sandbox Code Playgroud)

calendar.setTime(new Date());  // use 'today' instead of 1/1/1970
Run Code Online (Sandbox Code Playgroud)

然后测试通过.谁知道为什么?

编辑

日期的印刷版本是:

new Date(0):         Wed Dec 31 19:00:00 EST 1969
date from calendar:  Tue Jul 01 19:00:00 EDT 1969
Run Code Online (Sandbox Code Playgroud)

我正在运行一个旧的JDK:1.6.0_30-b12(64位)

我在东部标准时间.

java date

11
推荐指数
1
解决办法
551
查看次数

使用回调时如何避免循环依赖?

当您使用生产者/消费者关系设计两个类时,如何避免循环依赖?这里ListenerImpl需要对Broadcaster的引用才能注册/取消注册,而Broadcaster需要一个引用回侦听器才能发送消息.此示例使用Java,但它可以应用于任何OO语言.

public interface Listener {
  void callBack(Object arg);
}
public class ListenerImpl implements Listener {
  public ListenerImpl(Broadcaster b) { b.register(this); }
  public void callBack(Object arg) { ... }
  public void shutDown() { b.unregister(this); }
}
public class Broadcaster {
  private final List listeners = new ArrayList();
  public void register(Listener lis) { listeners.add(lis); }
  public void unregister(Listener lis) {listeners.remove(lis); }
  public void broadcast(Object arg) { for (Listener lis : listeners) { lis.callBack(arg); } }
}
Run Code Online (Sandbox Code Playgroud)

oop callback inversion-of-control

9
推荐指数
3
解决办法
2937
查看次数

之后自动释放或释放更好吗?

在很多情况下,人们会分配一个实例,并在将其分配给其他内容后立即释放它,并在内部保留它.

例如,

UIView *view = [[UIView alloc] initWithFrame...];
[self addSubView:view];
[view release];

我听说有人建议我们自动释放而不是立即释放.

所以上面变成了:

UIView *view = [[[UIView alloc] initWithFrame...] autorelease];
[self addSubView:view];

这里的最佳做法是什么?优点和缺点?

iphone memory-management uikit

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

声明对block typedef的前向引用?

在一个头文件中我有类似的东西:

typedef void (^MyBlock)(void);
Run Code Online (Sandbox Code Playgroud)

我需要在另一个头文件中使用相同的引用.

当然,我可以将#import一个头文件放到另一个头文件中,或者在全局预编译头中包含typedef,但是有没有办法转发引用块typedef?

objective-c objective-c-blocks

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

使用 openssl 为本地主机创建 csr

我正在使用 openssl(在 Windows 上)创建一个 csr 以使用(测试试用)证书。我以前从未这样做过,我有一个问题:创建私钥后,您创建一个 csr 文件,并要求您提供个人信息。它要求您做的一件事是通用名称,这意味着域名。我目前只运行本地主机。我正在练习如何创建 https:// 站点。

问题:我可以通过执行 localhost:82 之类的操作来创建有效的 csr 吗?如果没有,我该怎么办?

openssl csr

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

如何反转int的字节顺序?

我很难将此ActionScript代码转换为C#.我不明白我怎么能模仿ByteArray()在C#中做的事情.如果有人可以帮我重新创建这个功能,我会非常感激.

ActionScript(seed是一个uint.):

//Start by reversing the byte order of the seed
var ba:ByteArray = new ByteArray();
ba.endian = Endian.BIG_ENDIAN;
ba.writeInt(seed);
ba.position = 0;
ba.endian = Endian.LITTLE_ENDIAN;
seed = ba.readInt();
Run Code Online (Sandbox Code Playgroud)

c# actionscript bytearray

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