小编Mar*_*bst的帖子

在git中打印给定提交的提交消息

我需要一个管道命令来打印一个给定提交的提交消息 - 仅此而已.

git commit-message

213
推荐指数
6
解决办法
10万
查看次数

iOS设备方向忽略方向锁定

我想查询iPhone当前的方向.使用

[UIDevice currentDevice].orientation
Run Code Online (Sandbox Code Playgroud)

只要设备没有方向锁定,就可以正常工作.但是,如果它被锁定,它始终以锁定方向响应,而不是以设备的实际方向响应.

是否有高级方法来获取实际的设备方向?

iphone objective-c orientation ios

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

你能以多快的速度进行线性搜索?

我正在寻找优化这种线性搜索:

static int
linear (const int *arr, int n, int key)
{
        int i = 0;
        while (i < n) {
                if (arr [i] >= key)
                        break;
                ++i;
        }
        return i;
}
Run Code Online (Sandbox Code Playgroud)

数组已排序,函数应返回大于或等于键的第一个元素的索引.它们的数组不大(低于200个元素),并且会为大量搜索准备一次.如果需要,可以在第n个之后将数组元素初始化为适当的数组,如果这样可以加快搜索速度.

不,不允许二进制搜索,只能进行线性搜索.

编辑:我在博客文章中总结有关此主题的所有知识.

c optimization search simd linear-search

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

Lisp在Python中的"一些"?

我有一个字符串列表和一个过滤器列表(也是字符串,被解释为正则表达式).我想要一个列表,列出我的字符串列表中至少有一个过滤器接受的所有元素.理想情况下,我会写

[s for s in strings if some (lambda f: re.match (f, s), filters)]
Run Code Online (Sandbox Code Playgroud)

其中一些被定义为

def some (pred, list):
    for x in list:
        res = pred (x)
        if res:
            return res
    return False
Run Code Online (Sandbox Code Playgroud)

有类似的东西已经在Python中可用,还是有更惯用的方法来做到这一点?

lisp python

13
推荐指数
2
解决办法
4563
查看次数

阻止MFMailComposeViewController缩放动画GIF

我将动画GIF附加到要与MFMailComposeViewController一起发送的电子邮件中.如果GIF的大小足够大,MFMailComposeViewController将询问用户是否要将其调整为较小的大小.不幸的是,动画将不会保留在已调整大小的图像中.

我如何禁止MFMailComposeViewController调整图像大小或使其保留动画?

cocoa-touch animated-gif ios4 ios mfmailcomposeviewcontroller

6
推荐指数
1
解决办法
459
查看次数

向不同地区的SNS发出CloudWatch警报

我正在尝试通过位于其他区域的CloudWatch警报通知SNS主题。原因是我想要SMS警报,而该警报在我的服务所在的地区不可用。如果输入订阅的ARN并将更改保存在控制台中,则会收到“保存警报时出错。请重试。” 重试无济于事。在本地区域使用主题确实有效,但这不是我所需要的。

有没有办法通知其他地区的主题?如果没有,还有其他简单的方法可以实现我的目标吗?

amazon-web-services amazon-sns amazon-cloudwatch

6
推荐指数
1
解决办法
1422
查看次数

如何从命令行使用jarjar?

我无法从命令行使用jarjar将简单的Scala程序与scala运行时库结合起来.

jarjar正确检测依赖:

$ java -jar ~/Desktop/saug/jarjar-1.0.jar find jar BCT.jar scala-library.jar
/home/schani/Work/scala/bct/BCT.jar -> /home/schani/Work/scala/bct/scala-library.jar
Run Code Online (Sandbox Code Playgroud)

但是,将它们组合起来并不起作用:

$ CLASSPATH=./scala-library.jar java -jar ~/Desktop/saug/jarjar-1.0.jar process rules.jjl BCT.jar BCTS.jar
Run Code Online (Sandbox Code Playgroud)

我得到的jar文件仍然依赖于scala-library.jar.我是否添加CLASSPATH变量没有任何区别.我的rules.jjl文件如下所示:

keep BCT
Run Code Online (Sandbox Code Playgroud)

该怎么办?

java scala jar jarjar

5
推荐指数
1
解决办法
5987
查看次数

Mypy中的计算类型

旁白:这个问题的标题并不理想。我想做的事情可以通过计算类型来实现,也可以通过其他方式来实现。

我正在编写一些代码来验证,有时将动态类型的JSON数据转换为静态Python类型。以下是一些功能:

def from_str(x: Any) -> str:
    assert isinstance(x, str)
    return x


def from_int(x: Any) -> int:
    assert isinstance(x, int)
    return x

def from_list(f: Callable[[Any], T], x: Any) -> List[T]:
    assert isinstance(x, list)
    return [f(y) for y in x]
Run Code Online (Sandbox Code Playgroud)

这些工作很棒。我还希望能够将它们组合以转换联合类型。理想的是这样的:

union = from_union([from_str, from_int], json)
Run Code Online (Sandbox Code Playgroud)

问题是如何键入from_union函数。我的第一种方法是:

def from_union(fs: Iterable[Callable[[Any], T]], x: Any) -> T:
    for f in fs:
        try:
            return f(x)
        except AssertionError:
            pass
    assert False
Run Code Online (Sandbox Code Playgroud)

从技术上讲这是正确的。如果我们替换Union[str,int]T上述表达式键入正确的,因为from_str,由于返回的str也返回Union[str,int](类型的任何值str …

python python-3.x mypy

5
推荐指数
1
解决办法
147
查看次数

TypeScript 中 undefined 的协方差

下面的代码显然输入错误,但我不能在上面犯 TypeScript 错误。我打开了strictstrictNullChecks并且strictFunctionTypes很好地衡量了,但 TS 仍然坚定不移地相信这段代码很好而且很花哨。

abstract class A {
    // You can pass an undefined to any A
    public abstract foo(_x: number | undefined);
}

class B extends A {
    // B is an A, but it prohibits passing in an undefined.
    // Note that if we did `x: string`, TS would flag it as
    // an error.
    public foo(x: number) {
        if (x === undefined) {
            throw new Error("Type error!");
        }
    }
} …
Run Code Online (Sandbox Code Playgroud)

undefined typechecking typescript

5
推荐指数
1
解决办法
51
查看次数

具有大对齐的Win32内存分配

我需要分配具有大对齐的内存(兆字节)的大区域(也可能在兆字节范围内).VirtualAlloc系列函数似乎没有提供执行此操作的选项.

我在Linux上为实现这一点而做的是mmap一个更大的区域 - 足够大以保证在其中包含具有所需对齐的足够大的区域 - 然后在大区域的开始和结束处对区域进行munmap不需要.

举个例子,假设我需要4兆字节,在1兆字节的边界上对齐(即在最低的20位中具有零的区域的起点).我想要5兆字节.假设我得到区域0x44ff000-0x49ff000.在该区域内包含区域0x4500000-0x4900000,该区域在1兆字节边界上对齐.然后我将munmap 0x44ff000-0x4500000和0x4900000-0x49ff000.

我可以在Win32上做类似的事情吗?如果我将VirtualProtect与PAGE_NOACCESS一起使用,是否会释放内存?有更好的解决方案吗?

winapi memory-management memory-alignment virtual-memory

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

用Codable解码JSON时有没有?

使用Swift 3 JSONSerialization,如果您的数据模型的一部分是完全动态的,您可以随时保留反序列化数据,Any并让消费者处理它.

有了Swift 4 Codable,我想这样做:

struct Foo : Codable {
    let bar: Any;
}
Run Code Online (Sandbox Code Playgroud)

但我明白了

JSONPlayground.playground:4:9: note: cannot automatically synthesize 'Decodable' because 'Any' does not conform to 'Decodable'
    let bar: Any;
        ^
Run Code Online (Sandbox Code Playgroud)

如果我能够实现自己的那个,那就不会是世界末日Decodable,但这需要Decoder支持解码Any,据我所知,它不会.例如:

extension Foo {
    init(from decoder: Decoder) throws {
        let container = try decoder.singleValueContainer()
        let result = try container.decode(AnyClass.self)
    }
}
Run Code Online (Sandbox Code Playgroud)

error: JSONPlayground.playground:4:36: error: cannot invoke 'decode' with an argument list of type '(AnyClass.Protocol)'
        let result …
Run Code Online (Sandbox Code Playgroud)

json swift swift4

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

在Lambda函数中获取Cognito用户池标识

我有一个Lambda函数处理由API网关触发的POST请求.后者设置为通过Cognito用户池授权程序进行授权.授权工作 - 如果我传递用户的ID令牌,则处理请求,如果我不能获得401.

但是,我无法在Lambda函数中获得授权用户的身份.所有文档都让我相信它应该在上下文中,但事实并非如此.我也无法在那里映射它.更重要的是,似乎没有办法为给定ID标记的用户查询用户池.

我需要一个身份池才能完成此任务吗?如果是这样,那怎么办?为什么API网关不会自动传递用户的身份?

amazon-web-services amazon-cognito

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