我没有在Python中找到一种标准的方式来读取图像.真的没有(因为有这么多自定义内容的函数,我真的很想知道没有读取图像的功能)?或者它是什么?(它应该在MacOSX标准安装和Linux发行版的最新版本中提供.)
如果没有,最常见的lib是什么?
许多搜索结果都提示我使用Python Imaging Library.如果这是一个众所周知的Python-lib用于读取图像,为什么它不包含在Python中?
例:
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关于构造函数属性的文档没有说明任何内容.)
我正在读这个,但我并没有从那里得到重定向请求应该具有的请求类型,在什么情况下,即函数(初始请求类型,响应类型) - > redirect-request-type.
在我的特定情况下,我有:
谷歌浏览器使用GET进行重定向请求.
# 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.
这可能是错误的,因为我有一个网站,这实际上似乎没有正确的工作(即网站这种方式表现不佳).
什么是正确的方式/功能?
之前,我可以从Console.app中的应用程序读取所有stdout/stderr数据.一段时间以来,情况已经不是这样了(尽管NSLog数据仍然存在).我现在在10.8.
在SU上,还有一个类似的问题尚未得到解答.
有没有被改变,即stdout不应该再被记录?或者在我的系统中出现了什么问题(从旧的SU问题来看,听起来可能就是这样 - 尽管没有帮助)?
我可以以某种方式改变它吗?
在OpenID规范中,它说:
- 标识符:
标识符只是一个URL.OpenID身份验证协议的整个流程是关于证明最终用户拥有URL.
- 声称的标识符:
尽管消费者尚未验证最终用户所拥有的标识符.
- 已验证的标识符:
最终用户向其所拥有的消费者证明的标识符.
- 身份提供者:
也称为"IdP"或"服务器".这是消费者联系的OpenID身份验证服务器,用于最终用户拥有声明的标识符的加密证明.最终用户如何向其身份提供商进行身份验证超出了OpenID Authenticait的范围.
标识符URL是唯一的吗?究竟是什么?
如果它不是唯一的,那么是否有任何唯一的消费者可以在同一个OpenID端点URL上的不同用户之间有所不同?
IdP和标识符URL之间有什么区别?
在其他地方,我读过"OpenID端点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端点实现中,我确实存在这个问题,它在不同用户之间无法区分.消费者网站只是将该OpenID端点上的所有用户都视为相同.当然,它始终是相同的OpenID URL,但Googles OpenID也是如此.
在我当前的实现中,当我启用一些调试跟踪时,我得到的第一个请求是模式checkid_setup.在规范中,它说我在这里得到了声称的标识符.由于我在消费者网站上输入的内容(我的调试跟踪说的相同),这就是"常规"URL(OpenID端点URL).即,这不是唯一的URL.
http://{endpoint-url}?u={endpoint-username}
.)还有术语"OpenID服务器"(URL)和"OpenID委托"(URL).
这些条款如何与上述其他条款相关?与OpenID端点URL完全相同?
什么是"OpenID身份"?与OpenID标识符URL相同?
另请参阅相关问题:OpenID在同一OpenID端点上的不同登录之间有何不同?
(元问题:我是否应该在很多独立的SO问题中将其分开?我担心否则我可能无法得到所有问题的答案.)
我的代码中有一些函数,它们使用memoization很有意义(似乎甚至是强制性的).
我不想单独为每个功能手动实现它.有没有办法(例如在Python中)我可以使用注释或做其他事情,所以我自动在我想要的那些函数上得到它?
考虑以下代码:
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的错误报告.
#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) 我是那个地区的新手,我很想知道最先进的是什么以及我可以在哪里阅读它.
让我们假设我只有一个键/值存储,并且我以某种方式定义了一些距离(key1,key2)(不确定它是否必须是度量,即三角不等式是否必须始终保持).
我想要的主要是一个搜索(键)功能,它返回所有带有键的项目,直到搜索键一定距离.也许距离限制是可配置的.也许这也只是一个懒惰的迭代器.也许还有一个计数限制,一个项目(键,值)在返回集合中有一些概率P,其中P = 1 /距离(键,搜索键)左右(即,完美匹配肯定会是在集合和近似匹配中至少具有高概率).
一个示例应用是MusicBrainz中的指纹匹配.他们使用AcoustId指纹并定义了这个比较功能.他们使用PostgreSQL GIN索引,我猜(虽然我还没有完全理解/读取acoustid服务器代码)GIN部分匹配算法,但我还没有完全理解这是我要求的以及它是如何工作的.
对于文本,到目前为止我发现的是使用一些语音算法来根据发音简化单词.一个例子是在这里.这主要是为了将搜索空间缩小到更小的空间.然而,这有一些限制,例如它在较小的空间中仍然必须是完美的匹配.
但无论如何,我也在寻找更通用的解决方案,如果存在的话.
我正在考虑在我的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)