小编Mec*_*ail的帖子

网站API的黄金标准是什么?Twitter,Flickr,Facebook等

似乎今天有两类API用于网站.

  1. 允许网站功能扩展的API,如Facebook,Myspace等.这些API似乎非常多样化.

  2. API允许与Twitter,Flickr等现有网站功能进行交互.这些API都声称是基于REST的,但实际上只是"HTTP上的数据".

如果您正在创建允许功能扩展和外部交互的网站,那么您将使用哪些现有API作为参考模型?

rest api-design asp.net-web-api

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

什么是导致MD5碰撞的最短字符串?

直到什么字符串长度可以使用MD5作为哈希而不必担心发生冲突的可能性?

这可能是通过为特定字符集中的每个可能字符串生成MD5哈希值来计算的,增加长度,直到第二次出现哈希(冲突).没有碰撞的字符串的最大可能长度将比碰撞对中的最长字符小一个字符.

这已经针对MD5,SHA1等进行了测试吗?

math md5 cryptography hash-collision

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

Django Admin:仅为一个模型字段使用自定义小部件

我的模型中有一个DateTimeField字段.我想将它显示为Django管理站点中的复选框小部件.为此,我创建了一个自定义表单小部件.但是,我不知道如何将此自定义窗口小部件用于此字段.

Django文档解释了如何使用自定义窗口小部件的所有特定类型的字段:

class StopAdmin(admin.ModelAdmin):
    formfield_overrides = {
        models.DateTimeField: {'widget': ApproveStopWidget }
    }
Run Code Online (Sandbox Code Playgroud)

但这并不够精细.我想只为一个字段更改它.

python django django-forms django-admin django-widget

58
推荐指数
4
解决办法
4万
查看次数

BigDecimal乘以零

我正在使用BigDecimal进行简单的乘法运算,并且在乘以零时我发现了一些奇怪的行为(在这个用例中乘以零是正确的).

基本数学告诉我,任何乘以零的数字都将等于零(参见:零产品属性乘法属性)

但是,以下代码将始终失败并出现相同的错误:

assertEquals(new BigDecimal(0), new BigDecimal(22.3).multiply(new BigDecimal(0)));
Run Code Online (Sandbox Code Playgroud)
java.lang.AssertionError: 
Expected :0
Actual   :0E-48
Run Code Online (Sandbox Code Playgroud)

这是BigDecimal的不准确,还是我在某处遗漏了数学的一些利基分支?

注意:在IntelliJ 11中运行的JDK 1.6.0_27

java rounding-error bigdecimal numerical-analysis

58
推荐指数
3
解决办法
4377
查看次数

为什么使用带有泛型的Collections.emptySet()可以在赋值中工作但不能用作方法参数?

所以,我有一个像这样的构造函数的类:

public FilterList(Set<Integer> labels) {
    ...
}
Run Code Online (Sandbox Code Playgroud)

我想FilterList用空集构造一个新对象.按照Joshua Bloch在他的"Effective Java"一书中的建议,我不想为空集创建一个新对象; 我会Collections.emptySet()改用:

FilterList emptyList = new FilterList(Collections.emptySet());
Run Code Online (Sandbox Code Playgroud)

这给了我一个错误,抱怨java.util.Set<java.lang.Object>不是java.util.Set<java.lang.Integer>.好的,这个怎么样:

FilterList emptyList = new FilterList((Set<Integer>)Collections.emptySet());
Run Code Online (Sandbox Code Playgroud)

这也给了我一个错误!好的,这个怎么样:

Set<Integer> empty = Collections.emptySet();
FilterList emptyList = new FilterList(empty);
Run Code Online (Sandbox Code Playgroud)

嘿,它有效!但为什么?毕竟,Java没有类型推断,这就是为什么你,如果你得到一个unchecked转换警告Set<Integer> foo = new TreeSet()代替Set<Integer> foo = new TreeSet<Integer>().但Set<Integer> empty = Collections.emptySet();工作甚至没有警告.这是为什么?

java generics collections type-inference

54
推荐指数
4
解决办法
5万
查看次数

在Python中,"<>"是什么意思?

我正在尝试在Python 3.3中使用一个旧库(可追溯到2003年!).当我导入它时,Python会抛出一个错误,因为<>源文件中有迹象,例如:

if (cnum < 1000 and nnum <> 1000 and ntext[-1] <> "s":
    ...
Run Code Online (Sandbox Code Playgroud)

我想这是一个现在被遗弃的语言标志.

究竟是什么意思,我应该用哪个(更近期的)标志替换它?

python syntax operators python-2.x

53
推荐指数
4
解决办法
4万
查看次数

为什么要限制密码的长度?

我刚刚注册了一个网站来购买一些商品,当我试图输入我的(相当安全的)密码时,我被告知它太长了,我应该输入5到10个字符之间的密码!有什么意义呢?谁做出这样的决定?当然,理想的密码将是一个非常漫长而复杂的密码?为什么人们会坚持试图限制您可以使用哪种类型的密码?

您是否必须实施登录网站?登录是出于安全目的(例如购买商品).您对用户密码有什么(如果有)限制?你的决定是什么原因?

database security passwords web-applications

50
推荐指数
2
解决办法
3651
查看次数

两条消息具有相同MD5摘要和相同SHA1摘要的可能性有多大?

给定两个不同的消息,A和B(可能是20-80个字符的文本,如果大小完全重要),A的MD5摘要与B的MD5摘要相同 A的SHA1摘要的概率是多少?与B的SHA1摘要相同?那是:

(MD5(A) == MD5(B)) && (SHA1(A) == SHA1(B))
Run Code Online (Sandbox Code Playgroud)

假设没有恶意意图,即没有选择消息以找到冲突.我只是想知道这种情况发生的可能性.

我认为机会是"天文数字低",但我不确定如何验证这一点.

更多信息:可能消息池的大小受到限制,但是很大(几亿).生日悖论的情况正是我所担心的.

math md5 sha1 digest hash-collision

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

Monkey-patch Python类

我有一个班级,位于一个单独的模块中,我无法改变.

from module import MyClass

class ReplaceClass(object)
  ...

MyClass = ReplaceClass
Run Code Online (Sandbox Code Playgroud)

除了这个文件之外,这不会改变MyClass.但是,如果我要添加这样的方法

def bar():
   print 123

MyClass.foo = bar
Run Code Online (Sandbox Code Playgroud)

这将工作,foo方法将在其他地方可用.

如何完全替换课程?

python monkeypatching

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

?? Null Coalescing Operator - >合并是什么意思?

我很想撒谎并说英语是我的第二语言,但事实是我只是不知道'合并'是什么意思.我知道??C#中的"做什么",但这个名字对我来说没有意义.

我查了一下这个词,我理解它是'join'的同义词.'Null Join Operator'仍然没有意义.

有人可以开导我吗?

c# terminology coalesce null-coalescing-operator

44
推荐指数
4
解决办法
4472
查看次数