小编Alb*_*ert的帖子

Python:读取png图像的默认/常用方法

我没有在Python中找到一种标准的方式来读取图像.真的没有(因为有这么多自定义内容的函数,我真的很想知道没有读取图像的功能)?或者它是什么?(它应该在MacOSX标准安装和Linux发行版的最新版本中提供.)

如果没有,最常见的lib是什么?

许多搜索结果都提示我使​​用Python Imaging Library.如果这是一个众所周知的Python-lib用于读取图像,为什么它不包含在Python中?

python png image

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

C++静态初始化vs __attribute __((构造函数))

例:

struct Foo { Foo() { printf("foo\n"); } };
static Foo foo;

__attribute__((constructor)) static void _bar() { printf("bar\n"); }
Run Code Online (Sandbox Code Playgroud)

它是确定性的foo还是bar首先印刷的?

(我希望并且期望静态对象的构造函数总是先执行但不确定,并且GCC关于构造函数属性的文档没有说明任何内容.)

c++ gcc static-initialization

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

HTTP:POST请求收到302,重定向请求是否为GET?

我正在读这个,但我并没有从那里得到重定向请求应该具有的请求类型,在什么情况下,即函数(初始请求类型,响应类型) - > redirect-request-type.

在我的特定情况下,我有:

  • 初始请求类型:POST
  • 响应类型:302

谷歌浏览器使用GET进行重定向请求.

在Python库请求中,有以下代码(此处):

# http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.4
if r.status_code is codes.see_other:
    method = 'GET'
else:
    method = self.method
Run Code Online (Sandbox Code Playgroud)

即,在303(codes.see_other)的情况下,redirect-request-type是GET ,在所有其他情况下,它是初始请求类型.即,就我上面的特定情况而言,与Chrome相比,它将是POST.

这可能是错误的,因为我有一个网站,这实际上似乎没有正确的工作(即网站这种方式表现不佳).

什么是正确的方式/功能?

post redirect get http http-status-code-302

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

如何将stdout导入Console.app

之前,我可以从Console.app中的应用程序读取所有stdout/stderr数据.一段时间以来,情况已经不是这样了(尽管NSLog数据仍然存在).我现在在10.8.

从2010年开始有一个类似的问题似乎不再是最新的了.

在SU上,还有一个类似的问题尚未得到解答.

有没有被改变,即stdout不应该再被记录?或者在我的系统中出现了什么问题(从旧的SU问题来看,听起来可能就是这样 - 尽管没有帮助)?

我可以以某种方式改变它吗?

macos stdout

16
推荐指数
1
解决办法
5075
查看次数

OpenID:标识符URL是唯一的吗?标识符之间有什么区别

OpenID规范中,它说:

  • 标识符:

标识符只是一个URL.OpenID身份验证协议的整个流程是关于证明最终用户拥有URL.

  • 声称的标识符:

尽管消费者尚未验证最终用户所拥有的标识符.

  • 已验证的标识符:

最终用户向其所拥有的消费者证明的标识符.

  • 身份提供者:

也称为"IdP"或"服务器".这是消费者联系的OpenID身份验证服务器,用于最终用户拥有声明的标识符的加密证明.最终用户如何向其身份提供商进行身份验证超出了OpenID Authenticait的范围.

  • 标识符URL是唯一的吗?究竟是什么?

  • 如果它不是唯一的,那么是否有任何唯一的消费者可以在同一个OpenID端点URL上的不同用户之间有所不同?

  • IdP和标识符URL之间有什么区别?

在其他地方,我读过"OpenID端点URL"这个术语.

  • OpenID端点URL是否与IdP相同?那么IdP也是一个URL?

我们以Googles OpenID为例.当某个站点要求我进行OpenID登录时,我使用OpenID URL https://www.google.com/accounts/o8/id.那是标识符URL吗?如果是这样,那显然不是唯一的.通常,当我在该网站上的帐户设置中查看我的OpenID登录信息时,它不会显示输入的网址,但它已经以某种方式扩展了它https://www.google.com/accounts/o8/id?id=AltOawk....该URL现在看起来很独特.

  • 现在的目的是https://www.google.com/accounts/o8/id什么?那是OpenID端点URL吗?或者是IdP URL(如果这是不同的)?

  • 那目的是https://www.google.com/accounts/o8/id?id=AltOawk...什么?这真的很独特,对我的 Google帐户来说也一样吗?这个URL是什么标识我?

  • 为什么他们没有使用https://www.google.com/accounts/o8/id?u={google-username}而不是这个神秘的...?id=AltOawk...

  • 如果是Google,标识符的网址是多少?

  • 什么是OpenID端点URL?(什么是IdP URL?)

我问的原因是因为我正在尝试实现自己的OpenID端点.

  • OpenID端点URL是否与标识符URL相同?

在我的OpenID端点实现中,我确实存在这个问题,它在不同用户之间无法区分.消费者网站只是将该OpenID端点上的所有用户都视为相同.当然,它始终是相同的OpenID URL,但Googles OpenID也是如此.

  • 如果最终用户使用此"常规"URL,如何在OpenID端点实现中将其重定向/转发到"具体"/唯一(标识符?)URL?或者,如何区分同一OpenID URL上的不同最终用户?

在我当前的实现中,当我启用一些调试跟踪时,我得到的第一个请求是模式checkid_setup.在规范中,它说我在这里得到了声称的标识符.由于我在消费者网站上输入的内容(我的调试跟踪说的相同),这就是"常规"URL(OpenID端点URL).即,这不是唯一的URL.

  • 我现在必须做重定向吗?规格没有说明任何事情.我在哪里告诉"具体"网址?(在我的例子中,就是URL http://{endpoint-url}?u={endpoint-username}.)

还有术语"OpenID服务器"(URL)和"OpenID委托"(URL).

  • 这些条款如何与上述其他条款相关?与OpenID端点URL完全相同?

  • 什么是"OpenID身份"?与OpenID标识符URL相同?


另请参阅相关问题:OpenID在同一OpenID端点上的不同登录之间有何不同?

(元问题:我是否应该在很多独立的SO问题中将其分开?我担心否则我可能无法得到所有问题的答案.)

openid google-openid

15
推荐指数
1
解决办法
3106
查看次数

Java:自动记忆

我的代码中有一些函数,它们使用memoization很有意义(似乎甚至是强制性的).

我不想单独为每个功能手动实现它.有没有办法(例如在Python中)我可以使用注释或做其他事情,所以我自动在我想要的那些函数上得到它?

python java annotations decorator memoization

15
推荐指数
3
解决办法
3432
查看次数

Python:你定义函数__setattr__的方式不一致?

考虑以下代码:

class Foo1(dict):
    def __getattr__(self, key): return self[key]
    def __setattr__(self, key, value): self[key] = value

class Foo2(dict):
    __getattr__ = dict.__getitem__
    __setattr__ = dict.__setitem__

o1 = Foo1()
o1.x = 42
print(o1, o1.x)

o2 = Foo2()
o2.x = 42
print(o2, o2.x)
Run Code Online (Sandbox Code Playgroud)

我期望相同的输出.但是,使用CPython 2.5,2.6(类似于3.2),我得到:

({'x': 42}, 42)
({}, 42)
Run Code Online (Sandbox Code Playgroud)

使用PyPy 1.5.0,我得到了预期的输出:

({'x': 42}, 42)
({'x': 42}, 42)
Run Code Online (Sandbox Code Playgroud)

哪个是"正确的"输出?(或者根据Python文档应该输出什么?)


是CPython的错误报告.

python setattr getattr

15
推荐指数
1
解决办法
692
查看次数

奇怪的C整数不等式比较结果

#include <limits.h>
#include <stdio.h>
int main() {
    long ival = 0;
    printf("ival: %li, min: %i, max: %i, too big: %i, too small: %i\n",
           ival, INT_MIN, INT_MAX, ival > INT_MAX, ival < INT_MIN);
}
Run Code Online (Sandbox Code Playgroud)

这给出了输出:

ival: 0, min: -2147483648, max: 2147483647, too big: 0, too small: 1
Run Code Online (Sandbox Code Playgroud)

怎么可能?

(我实际上遇到了CPython 2.7.3中的这个问题/错误getargs.c:convertsimple.如果你查找代码,在中case 'i',有一个检查ival < INT_MIN对我来说总是如此.另见参考测试用例源.)


好吧,我现在测试了几个不同的编译器.为x86编译的GCC/Clang都返回预期的(太小:0).当为armv7编译时,意外输出来自Xcode工具链中的Clang.


如果要重现:

这是完全编译命令: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch armv7 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk test-int.c

这是Xcode 4.3.2.

我将结果复制a.out到我的iPhone并执行它.

如果有人对由此生成的汇编程序代码感兴趣:

    .section    __TEXT,__text,regular,pure_instructions
    .section …
Run Code Online (Sandbox Code Playgroud)

c arm

15
推荐指数
1
解决办法
613
查看次数

如何在大数据中进行模糊搜索

我是那个地区的新手,我很想知道最先进的是什么以及我可以在哪里阅读它.

让我们假设我只有一个键/值存储,并且我以某种方式定义了一些距离(key1,key2)(不确定它是否必须是度量,即三角不等式是否必须始终保持).

我想要的主要是一个搜索(键)功能,它返回所有带有键的项目,直到搜索键一定距离.也许距离限制是可配置的.也许这也只是一个懒惰的迭代器.也许还有一个计数限制,一个项目(键,值)在返回集合中有一些概率P,其中P = 1 /距离(键,搜索键)左右(即,完美匹配肯定会是在集合和近似匹配中至少具有高概率).


一个示例应用是MusicBrainz中的指纹匹配.他们使用AcoustId指纹并定义了这个比较功能.他们使用PostgreSQL GIN索引,我猜(虽然我还没有完全理解/读取acoustid服务器代码)GIN部分匹配算法,但我还没有完全理解这是我要求的以及它是如何工作的.


对于文本,到目前为止我发现的是使用一些语音算法来根据发音简化单词.一个例子是在这里.这主要是为了将搜索空间缩小到更小的空间.然而,这有一些限制,例如它在较小的空间中仍然必须是完美的匹配.

但无论如何,我也在寻找更通用的解决方案,如果存在的话.

database indexing search fuzzy-search

15
推荐指数
2
解决办法
9242
查看次数

C++中的纯/ const函数

我正在考虑在我的C++代码中更多地使用pure/const函数.(GCC中的pure/const属性)

但是,我很好奇我应该对它有多严格,哪些可能会破坏.

最明显的情况是调试输出(无论采用何种形式,都可以在cout,某些文件或某些自定义调试类中).我可能会有很多功能,尽管有这种调试输出,但它们没有任何副作用.无论是否进行调试输出,这绝对不会影响我的应用程序的其余部分.

或者我想到的另一种情况是使用一些SmartPointer类,它可能在调试模式下在全局内存中做一些额外的事情.如果我在pure/const函数中使用这样的对象,它确实会有一些轻微的副作用(在某种意义上说某些内存可能会有所不同),但它们不应该有任何真正的副作用(从某种意义上说,行为是在任何方式不同).

类似于互斥和其他东西.我可以想到许多复杂的情况,它有一些副作用(从某种意义上说,某些内存会有所不同,甚至可能会创建一些线程,进行某些文件系统操作等),但没有计算差异(所有这些副作用)很可能被遗漏,我甚至更愿意).

因此,总而言之,我想将函数标记为纯/ const,严格意义上不是纯/ const.一个简单的例子:

int foo(int) __attribute__((const));

int bar(int x) {
   int sum = 0;
   for(int i = 0; i < 100; ++i)
       sum += foo(x);
   return sum;
}

int foo_callcounter = 0;

int main() {
   cout << "bar 42 = " << bar(42) << endl;
   cout << "foo callcounter = " << foo_callcounter << endl;
}

int foo(int x) {
   cout << "DEBUG: foo(" << x << ")" << endl;
   foo_callcounter++;
   return x; …
Run Code Online (Sandbox Code Playgroud)

c++ gcc const g++

14
推荐指数
2
解决办法
3383
查看次数