小编Ser*_*rge的帖子

如何估计GIF文件的大小?

我们正在建立一个在线视频编辑服务.其中一项功能允许用户将视频中的短段导出为动画gif.Imgur 每个上传的动画gif 的文件大小限制为2Mb.

Gif文件大小取决于帧数,颜色深度和图像内容本身:坚固的平面颜色导致非常轻量级的gif,而一些随机颜色电视噪声动画将非常沉重.

首先,我将每个视频帧导出为最终GIF帧大小的PNG(固定,384x216).

然后,为了最大化gif质量,我进行了几次gif渲染尝试,参数略有不同 - 不同的帧数和gif调色板中的颜色数.在保持文件大小限制的情况下具有最佳质量的渲染会上传到Imgur.

每个渲染需要时间和CPU资源 - 我希望优化.

问题:根据实际图像估算最佳渲染设置的最佳方法是什么,尽可能接近文件大小限制,并至少将渲染尝试次数降至2-3?

compression performance image gif animated-gif

9
推荐指数
2
解决办法
5557
查看次数

如何在布尔数组中找到模式组?

给定一个布尔值的2D数组,我想找到包含至少2列和至少2行的所有模式.问题与图中的派系有些接近.

在下面的示例中,绿色单元格表示"真实"位,灰色表示"假".模式1包含cols 1,3,4和5以及行1和2.模式2仅包含第2列和第4列以及第2,3,4行.

例

这背后的商业理念是在各种社交网络用户群之间找到相似性模式.在现实世界中,行数最多可达3E7,列数最多可达300.

除了蛮力匹配之外,无法找到解决方案.

请告知问题的正确名称,以便我可以阅读更多内容,或建议优雅的解决方案.

arrays algorithm clique pattern-matching np

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

如何加快通过Amazon SES发送邮件的速度?

发送50万封电子邮件需要太长时间:6到8小时.配额允许每秒90封电子邮件.从具有良好性能的专用服务器发送,因此内存/连接不应成为问题.一次使用50封电子邮件批次.

在批处理中尝试了不同数量的电子邮件:超过50个导致CURL错误:似乎亚马逊没有对某些线程做出响应.即使每批50个批次和批次之间的1200毫秒暂停,每个邮件也会出现几次打嗝.

因此,平均50个批次从4到6秒完成+ 1.2秒暂停 - 相当长的每天50万邮件.

请建议如何调整邮件,使其速度接近90邮件/秒.

php curl amazon-web-services amazon-ses

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

为什么PHP substr()会改变ASCII回车字节?

我打算使用一个长字符串来操作大量的位标志,将结果字符串保存在Redis中.然而,偶然发现了一个php bug(?).包含00001101读取位的字节substr()返回意外值:

$bin = 0b00001101;  // 13 - ASCII Carriage return
$c = substr($bin, 0, 1);    // read this character
printf("Expectation: 00001101, reality: %08b\n", $c); // 00000001
Run Code Online (Sandbox Code Playgroud)

Ideone

substr()二元安全的假设是错误的吗?还试过mb_substr(),将编码设置为8bit完全相同的结果.

php binary-data substr

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

preg_replace 使用 /e 修饰符进行代码评估

我正在寻找 eval() 的替代方法来执行字符串变量中包含的代码,并注意到了preg_replacewith/e修饰符。然而,代码的计算方式非常奇怪。

例如,echo()在 php 5.3.6 中会导致错误:

<?php
$code = 'echo( \'Hello, world!\'.PHP_EOL)';
preg_replace('/(.*)/e', $code, '' );
?>
Run Code Online (Sandbox Code Playgroud)

错误信息:

解析错误:语法错误,/Users/.../test.php(4) 中出现意外的 T_ECHO:正则表达式代码在线

致命错误:preg_replace():无法评估代码:
echo('Hello, world!'.PHP_EOL) in /Users/.../test.php on line 4

print()工作时,并输出一个Hello, world! :

<?php
$code = 'print( \'Hello, world!\'.PHP_EOL)';
preg_replace('/(.*)/e', $code, '' );
?>
Run Code Online (Sandbox Code Playgroud)

另外,似乎在几行代码中,只执行了第一行:

<?php
$t=1;
$code = '$t++;$t++;';
preg_replace('/(.*)/e', $code, '' );
echo $t;
?>
Run Code Online (Sandbox Code Playgroud)

输出2,而不是3

问题:PCRE 中的代码评估是否preg_replace()记录在某处?在 php.net 上找不到

php pcre preg-replace echo

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

如何在bash脚本中使用远程命令结果分配局部变量?

我正在编写一个脚本来恢复一组服务器上的主从复制.在bash语法中丢失,试图分配一个局部变量,其结果是远程运行命令替换为本地值:

function doRemote() {
    ssh s1.domain.com   <<ENDSSH
        mysql -u root -pXXX --execute="DROP DATABASE db; CREATE DATABASE db;"
        mysql -u root -pXXX --database=db < $WORKDIR$FILENAME
        sudo rm -rf /var/log/mysql/db-bin.*
        mysql -u root -pXXX --execute="FLUSH LOGS;"
        CURRENT_LOG=`mysql -u root -pXXX --execute="SHOW MASTER STATUS" -AN | awk '{print $1}'`
        CURRENT_POS=`mysql -u root -pXXX --execute="SHOW MASTER STATUS" -AN | awk '{print $2}'`
        # ...
ENDSSH
}
Run Code Online (Sandbox Code Playgroud)

分配CURRENT_*变量的两行是问题:mysql -u...命令在本地执行,而不是远程会话.

请建议如何远程运行,使用远程mysql命令的结果分配本地变量.

ssh bash shell

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

如何通过MultiIndex和值对Pandas DataFrame进行排序?

样本数据:

mdf = pd.DataFrame([[1,2,50],[1,2,20],
                [1,5,10],[2,8,80],
                [2,5,65],[2,8,10]
               ], columns=['src','dst','n']); mdf

    src dst n
0   1   2   50
1   1   2   20
2   1   5   10
3   2   8   80
4   2   5   65
5   2   8   10
Run Code Online (Sandbox Code Playgroud)

groupby() 给出了两个级别的多索引:

test = mdf.groupby(['src','dst'])['n'].agg(['sum','count']); test

        sum count
src dst 
1   2   70  2
    5   10  1
2   5   65  1
    8   90  2
Run Code Online (Sandbox Code Playgroud)

问题:如何按src升序然后sum降序排序此DataFrame ?

我是熊猫的初学者,了解sort_index()和sort_values(),但是在此任务中,我似乎同时需要两者。

在每个“ src”排序下的预期结果由“ sum”确定:

        sum count
src dst 
1   2   70 …
Run Code Online (Sandbox Code Playgroud)

python pandas pandas-groupby

5
推荐指数
3
解决办法
2213
查看次数

图像分类迁移学习需要负例吗?

任务是确定图像属于 3 个类中的哪一个,或者不属于。

我收到了一个现成的模型。具有 ImageNet 权重的 EfficientNet B4 已应用迁移学习来识别 4 个类别:3 个目标类别和第 4 个“无”。后者接受了不包含任何目标对象的随机图像示例的训练。

问题是这是否是正确的方法——是否需要第四堂课?

我的直觉是 net 应该只在 3 个目标类上进行训练。如果输出概率保持在某个阈值(90%?)以下,图像应被视为不包含任何目标对象。我对吗?

classification neural-network keras tensorflow efficientnet

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

为什么我的 Google Apps 脚本权限在几天后被撤销?

我在 Google Apps Script 的帮助下制作了一个在 Google 电子表格上运行的简单 Telegram 机器人。它在工作表中进行查找,并可选择将上传的文件保存到我的 Google Drive。

以前它是附加到电子表格的脚本。后来谷歌建议在谷歌云控制台中创建一个应用程序并将脚本分配给该应用程序ID,因此所有API调用都是负责任的。

脚本应用程序未经验证并在“发布状态:测试”模式下运行。我只需要它来访问我的帐户数据。

我授予脚本的权限(访问表格、云端硬盘)会在大约 2-3 天后在没有任何通知的情况下自动撤销,并且机器人停止工作。直到我重新访问 Shpreadsheet,打开 Extensions - Apps Script,运行任何函数并再次请求授权。然后机器人再工作几天。

如何使我授予的权限永久化?


我(再次)授予我的应用程序的权限: 我的帐户中的应用程序设置

电子表格应用程序的更新菜单: Google 电子表格菜单栏

web-applications google-sheets google-apps-script google-oauth google-cloud-platform

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

使用nginx记录已解析的请求

如何为nginx设置自定义日志格式,以便解析请求并将其部分分开记录?

我们提供图片文件来计算邮件打开.图片的网址各不相同,但遵循以下规则:

http://www.server.com/counter/XXXXX/YYYYY/dailymail.gif
Run Code Online (Sandbox Code Playgroud)

XXXXX - 电子邮件广告系列的ID; YYYYY - 收件人ID.

有一个单独的/counter位置日志,我想给出一个类似的格式

XXXXX   YYYYY    DATETIME
Run Code Online (Sandbox Code Playgroud)

位置部分看起来像

    location    ~* ^counter/([0-9]+)/([^/]+)/dailymail\.gif$ {
        access_log /var/log/mailopened.log
        alias /var/www/site.com/1x1.gif?cid=$1&uid=$2&type=daily;
    }
Run Code Online (Sandbox Code Playgroud)

所以我在变量$ 1和$ 2中有值.如何在日志格式中使用它们?

logging rewrite nginx

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

AS3:如何循环这个属性?喜欢(var s in this)

类有一个方法可以从给定的Object更新其实例属性.

出于某种原因,this在ActionScript 3中循环遍历失败属性.

我尝试过类似的东西:

class myThing() {
    public var A:String;
    public var B:String;
    public var C:String;
    ...
    public function bindToObject( obj:Object){
        for( var s in this){
            if( obj.hasOwnProperty(s)) this[s] = obj[s];
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这样循环永远不会执行,好像this根本没有属性.

请建议将对象属性复制到我的类的实例的智能方法.

actionscript-3

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