小编Chr*_*son的帖子

易于并行化

我经常发现自己编写简单的for循环来对许多文件执行操作,例如:

for i in `find . | grep ".xml$"`; do bzip2 $i; done
Run Code Online (Sandbox Code Playgroud)

看起来有点令人沮丧的是,在我的4核机器上只有一个核心被使用..有一种简单的方法可以为我的shell脚本添加并行性吗?

编辑:为我的问题介绍更多的背景,对不起,我开始时并不是更清楚!

我经常想在合理大小的数据集(通常在100到10,000之间)上运行简单(ish)脚本,例如绘制图形,压缩或解压缩,或运行某些程序.我用来解决这些问题的脚本看起来像上面那样,但可能有不同的命令,甚至是一系列要执行的命令.

例如,刚才我正在运行:

for i in `find . | grep ".xml.bz2$"`; do find_graph -build_graph $i.graph $i; done
Run Code Online (Sandbox Code Playgroud)

所以我的问题绝不是特定于bzip的!(虽然并行bzip确实看起来很酷,但我打算将来使用它).

parallel-processing bash

6
推荐指数
3
解决办法
2047
查看次数

在一系列git提交上运行git-clang-format

我写了一系列git提交,代码格式很糟糕.
在我将它们推送到github之前,我想git-clang-format在每次提交时运行,以便在我的历史记录中获得格式良好的代码.

有一些组合rebasegit-clang-format这将做到这一点?

git formatting clang clang-format

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

在 Rust 中从 Vec 中删除一系列值?

removeon aVec删除由索引给出的单个值,并返回该值。

我想要remove一个索引列表,例如从长度为 8 的 a 中删除索引 1、2 和 5 Vec,并获取这些索引处的值作为另一个Vec. 重复调用remove(a) 成本高昂,并且 (b) 容易出错,因为在remove移动其他索引之后。

因此,如果我从 开始let mut v = vec![2,3,4,5,6,7],并删除索引[1,2,5],我最终会得到一个包含 的新向量vec![3,4,7],而v将是vec![2,5,6]

rust

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

通过Google Play服务中的网页保存云端功能

是否可以从网页(通过我想象的REST)在Google Play服务中创建和加载云端保存?我似乎只能找到C++/Android代码保存游戏的文档.

javascript rest google-play-services google-play-games

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

如何跟踪许多 GitHub 存储库中的问题和 PR

我在许多用户群相当小的 GitHub 存储库(> 10)上工作。我有时会忘记较少使用的存储库的问题。

有没有办法(在 GitHub 中或使用外部工具)在存储库列表中查看所有开放的 PR 和问题?

我知道有一个“通知”页面,但这并不容易找到旧的、开放的问题和 PR。

github

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

压缩少量数据

我有一个程序,我生成比特流,大约80到150位左右,我想压缩,因为我要把它们变成某种ASCII字符串,以便人们可以传输它们.

有没有人知道一个好的,免费的位识别压缩器可能在这样的流上工作?我对"标准选项"的主要问题是这个流应该被视为位而不是字节,否则结构会丢失,并且它们的开销会增加任何增益.

加成:

我想压缩这些流的原因是因为用户将要切割+粘贴它们,可能使用类似base64编码的东西,因此保存一些数据是有帮助的.

下面是一个例子,对于那些希望看到它谁.我将添加格式以便于阅读:

110 110 - This is a 6x6 grid (the maximum is 7x7, so we only need 3 bits!)

000000
011110
010010
010010
011110
000000 - This is one layout grid

000000
000000
001000
000100
000000
000000 - This is the second layout grid
Run Code Online (Sandbox Code Playgroud)

现在我们列出一些作品

010 11111111 - A piece is a 3-bit colour code, then an 8-bit list of 'on / off' bits.
001 10101010 - Another bit!
001 10101010 - Another, identical bit!
Run Code Online (Sandbox Code Playgroud)

我之所以这么说它应该被视为'比特',当被视为比特流(特别是'网格中通常很多0)时,存在明显的压缩选项,当你将其视为字节流时,它会消失.

compression

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

在lodash中将执行_.uniq与_.isEqual相结合

lodash提供了一种_.uniq()从数组中查找唯一元素的方法,但是使用的比较函数是严格相等===,而我想使用_.isEqual(),它满足:

_.isEqual([1, 2], [1, 2])
// true
Run Code Online (Sandbox Code Playgroud)

是否有执行方式_.uniq()_.isEqual(),不写我自己的方法?

lodash

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

在bash循环参数列表中注释

我想评论bash for循环参数列表的部分内容.我想写这样的东西,但我无法打破多行的循环.使用\似乎也不起作用.

for i in
  arg1 arg2     # Handle library
  other1 other2 # Handle binary
  win1 win2     # Special windows things
do .... done;
Run Code Online (Sandbox Code Playgroud)

syntax bash comments loops indentation

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

将Vec与生锈范围进行比较

我想检查一下是否Vec等于[0, 1, 2, ...].我尝试了各种变体:

vec == &(0..vec.len())
Run Code Online (Sandbox Code Playgroud)

但它们似乎都不起作用.我只需要长手写一个循环吗?

rust

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

如何在不引入偏差的情况下生成一个范围内的随机 Rust 整数?

我如何在 Rust 中生成随机骰子?

我知道我可以使用rand::random,但这需要我想生成一个整数类型的值。使用会rand::random<u8>() % 6引入偏差。

random rust

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

从iPhone到Mac?

注意:这与大多数类似问题的方向相反!

我有一个iPhone应用程序,我想在Mac上提供一个演示.将iPhone应用程序重新编译(或重写)到Mac应用程序有多难,假设我打算保持相同的屏幕大小,而不用担心让我的应用程序看起来像"mac-like"?

是否可以在iPhone SDK中分发iPhone模拟器apple提供的应用程序副本?要求人们自己去安装它似乎是一个主要的要求.

iphone macos

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

NODE.js - 如何在其他方法中使用方法

我想在同一个类中的其他方法中使用方法来从db计算一些数据,如下所示,但我只是得到错误

[TypeError: Object #<Query> has no method 'methodMaxLct']"
Run Code Online (Sandbox Code Playgroud)
 exports.UserClass = function() {
 this.methodMaxLct = function(lct, callback) {
   var counting = Math.ceil(Math.pow(1.15, (lct - 1)) * 10) * 10;
   callback(counting);
   this.methodGetData = function(idu, callback) {
     connection = mysql.createConnection(dbconfig);
     connection.query(dataUserResources, [idu], function(err, results, fields) {
       if (err) throw err;
       if (results.length == 0) {
         callback = 0;
       } else {
         for (var i in results) {
           var dataU = results[i];
         }
         dataU.enMax = 30;
         var ap = this.methodMaxLct(dataU.lct, function(answer) {
           dataU.lctMax = …
Run Code Online (Sandbox Code Playgroud)

javascript node.js

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