小编Fel*_*fer的帖子

如何使用命令行工具进行DEFLATE来提取git对象?

我正在寻找DEFLATE算法的命令行包装器.

我有一个使用DEFLATE压缩的文件(git blob),我想解压缩它.gzip命令似乎没有直接使用DEFLATE算法的选项,而不是gzip格式.

理想情况下,我正在寻找可以做到这一点的标准Unix/Linux工具.

编辑:这是我尝试使用gzip解决我的问题时得到的输出:

$ cat .git/objects/c0/fb67ab3fda7909000da003f4b2ce50a53f43e7 | gunzip

gzip: stdin: not in gzip format
Run Code Online (Sandbox Code Playgroud)

git blob deflate

75
推荐指数
12
解决办法
5万
查看次数

在Mac OS X中创建目录硬链接

如何在Mac OS X中创建指向目录的硬链接?

此功能已添加到Mac OS X v10.5(Leopard)的文件系统中(用于时间机器),但我找不到有关从命令行实际使用它的任何信息.

macos hardlink

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

通过IMAP查找Gmail网址ID

我最喜欢的Gmail功能之一就是可以将网址添加到某些邮件,例如:

https://mail.google.com/mail/#all/124c8f386d41fd3a

我想做的是编写一个脚本,通过IMAP访问我的Gmail帐户,并创建一个HTML页面,其中包含上述链接,我感兴趣的每条消息.

但是,似乎无法从IMAP信封或UUID属性中找到"124c8f386d41fd3a"ID.我发现的所有message-id和uuids都有不同的格式,不能用于生成有关我收件箱的有效链接.

有人知道如何在IMAP中找到这些url-ID吗?

- FelixGeisendörfer又名the_undefined

PS:我使用的是Ruby,之前的尝试包括:

imap.fetch(message_id, "UID")
imap.fetch(message_id, "ENVELOPE")
imap.fetch(message_id, ...)
Run Code Online (Sandbox Code Playgroud)

我在ruby imap docs中尝试了为FetchData列出的所有属性

gmail imap

26
推荐指数
4
解决办法
8565
查看次数

Typescript 将未知类型转换为接口类型

我想编写一个函数asA,它接受类型参数unknown并将其作为特定接口类型返回A,或者如果参数与接口类型不匹配则抛出错误A

该解决方案应该是稳健的。即,如果向我的接口类型添加一个新字段A,编译器应该抱怨我的函数缺少对新字段的检查,直到我修复它。

下面是此类函数的示例asA,但它不起作用。编译器说:

元素隐式具有“any”类型,因为类型“a”的表达式不能用于索引类型“{}”。类型“{}”上不存在属性“a”。(7053)

interface A {
    a: string
}

function asA(data:unknown): A {
    if (typeof data === 'object' && data !== null) {
        if ('a' in data && typeof data['a'] === 'string') {
            return data;
        }
    }
    throw new Error('data is not an A');

}

let data:unknown = JSON.parse('{"a": "yes"}');
let a = asA(data);
Run Code Online (Sandbox Code Playgroud)

如何编写asA如上所述的函数?

我可以使用类型转换,例如(data as any)['a'],只要将新字段添加到 时不会出现静默失败A

typescript

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

棘手的postgresql查询优化(具有排序的不同行聚合)

我有一个事件表,它具有与这个人工表非常相似的模式和数据分布,可以在本地轻松生成:

CREATE TABLE events AS
WITH args AS (
    SELECT
        300 AS scale_factor, -- feel free to reduce this to speed up local testing
        1000 AS pa_count,
        1 AS l_count_min,
        29 AS l_count_rand,
        10 AS c_count,
        10 AS pr_count,
        3 AS r_count,
        '10 days'::interval AS time_range -- edit 2017-05-02: the real data set has years worth of data here, but the query time ranges stay small (a couple days)
)

SELECT
    p.c_id,
    'ABC'||lpad(p.pa_id::text, 13, '0') AS pa_id,
    'abcdefgh-'||((random()*(SELECT pr_count-1 FROM …
Run Code Online (Sandbox Code Playgroud)

sql postgresql optimization performance

14
推荐指数
1
解决办法
889
查看次数

找到S3 Bucket Owner

如果我的AWS账户中有一个我具有读/写访问权限的按钮,有没有办法获得所有者的CanonicalUser ID?

除非您是所有者,否则读取ACL策略似乎是不可能的:/.

owner amazon-s3 bucket amazon-web-services

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

没有vhook的ffmpeg水印?

由于vhook子系统已从最新版本的FFMPEG中删除,如何在视频中添加水印?

我需要能够覆盖具有背景透明度的PNG.

watermark ffmpeg

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

GIN索引是否具有O(N ^ 2)复杂度的数组重叠运算符?

我在我的GIN索引上使用&&数组运算符时遇到问题。基本上我有一个查询,看起来像这样:

SELECT *
FROM example
WHERE keys && ARRAY[1,2,3,...]
Run Code Online (Sandbox Code Playgroud)

这对于数组文字中的少量数组元素(N)来说效果很好,但是随着N变得更大,看起来复杂度为O(N ^ 2),它会变慢。

但是,通过研究文档描述的GIN数据结构,似乎其性能可能为O(N)。实际上,可以将查询计划器强制为O(N)计划,如下所示:

SELECT DISTINCT ON (example.id) *
FROM unnest(ARRAY[1,2,3,...]) key
JOIN example ON keys && ARRAY[key]
Run Code Online (Sandbox Code Playgroud)

为了更好地说明这一点,我创建了一个jupyter笔记本,用于填充示例表,显示两个查询的查询计划,最重要的是对它们进行基准测试并绘制时间与数组大小(N)的关系图。

https://github.com/felixge/pg-slow-gin/blob/master/pg-slow-gin.ipynb

查询性能

请帮助我理解是什么原因导致查询1的O(N ^ 2)性能,以及查询2是否是解决此问题的最佳方法。

感谢FelixGeisendörfer

PS:我使用的是Postgres 10,但也验证了Postgres 11存在此问题。

我也将这个问题发布在了postgres性能邮件列表上,但不幸的是没有得到任何答案。

sql postgresql indexing

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

最快的Sha1功能(Linux,最多2GB文件)

是否有任何linux命令行实现在大文件(<2GB)上生成sha1的效果非常好?

我玩过'openssl sha1'并且需要几分钟才能获得2GB文件的sha1:/.

hash performance cryptography sha1 file

4
推荐指数
2
解决办法
5919
查看次数