小编mik*_*vis的帖子

来自virtualenv的Ansible命令?

这看起来应该很简单:

tasks:
- name: install python packages
  pip: name=${item} virtualenv=~/buildbot-env
  with_items: [ buildbot ]
- name: create buildbot master
  command: buildbot create-master ~/buildbot creates=~/buildbot/buildbot.tac
Run Code Online (Sandbox Code Playgroud)

但是,除非首先获取virtualenv的激活脚本,否则该命令将不会成功,并且似乎没有在Ansible命令模块中执行此操作.

我已尝试在各种.profile,.bashrc,.bash_login等中获取激活脚本,但没有运气.或者,有shell命令,但它看起来像一个尴尬的黑客:

- name: create buildbot master
  shell: source ~/buildbot-env/bin/activate && \
         buildbot create-master ~/buildbot \
         creates=~/buildbot/buildbot.tac executable=/bin/bash
Run Code Online (Sandbox Code Playgroud)

有没有更好的办法?

virtualenv ansible

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

在Python中,当它是一个一次性的命名元组时,如何调用超类?

因此,我有一个用于串行API的大量消息Payload类,每个类都有许多不可变字段,一个解析方法和一些共享的方法.我构造它的方式是每个都将从字段行为的namedtuple继承,并从父类接收公共方法.但是,我在构造函数方面遇到了一些困难:

class Payload:
    def test(self):
        print("bar")

class DifferentialSpeed(Payload, namedtuple('DifferentialSpeed_', 
    'left_speed right_speed left_accel right_accel')):
    __slots__ = ()
    def __init__(self, **kwargs):
        super(DifferentialSpeed, self).__init__(**kwargs)
        # TODO: Field verification
        print("foo")

    @classmethod
    def parse(self, raw):
        # Dummy for now
        return self(left_speed = 0.0, right_speed = 0.1,
                    left_accel = 0.2, right_accel = 0.3)

    def __str__(self):
        return "Left Speed: %fm/s\nRight Speed: %fm/s\n"\
            "Left Acceleration: %fm/s^2\nRight Acceleration: %fm/s^2" % (
            self.left_speed, self.right_speed, self.left_accel, self.right_accel)


payload = DifferentialSpeed.parse('dummy')
print(payload)
Run Code Online (Sandbox Code Playgroud)

这有效,但我得到以下警告:

DeprecationWarning: object.__init__() takes no parameters
  super(DifferentialSpeed, self).__init__(**kwargs)
Run Code Online (Sandbox Code Playgroud)

如果我**kwargs …

inheritance multiple-inheritance super namedtuple python-3.x

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

我可以在不指定剪辑路径ID的情况下在SVG中应用剪辑吗?

在我的标记中,我有一个像这样的块:

<svg width="0" height="0" style="display:none" id="dummy-wedge">
 <g class="dummy" transform="translate(100, 100)">
    <defs>
      <clipPath id="clip1">
        <polygon id="clip1Shape" points="-100,-100 0,-100 0,0 -100,-20" />        
      </clipPath>
    </defs>
    <circle id="" cx="0" cy="0" r="52" fill-opacity="0" 
                  stroke="#ffffff" stroke-opacity="0.6" stroke-width="50" 
                  pointer-events="visiblePainted" clip-path="url(#clip1)" />
  </g>
</svg>
Run Code Online (Sandbox Code Playgroud)

我想要做的是获取该块并将其克隆到不同的svg根元素中以创建一堆楔形,每个楔形具有不同的位置和剪辑段.这部分很酷,但令人沮丧的是每个克隆的clipPath元素都需要接收一个新的ID,然后必须将其插入到匹配元素的clip-path属性中.

我知道,如果所有的弧是相同的长度,我可以有一个共同的剪辑,并使用旋转变换,但他们并不一定是相同的长度.

是否可以使用拓扑关系声明剪辑多边形而不是通过显式命名它?或者,是否有更好的方法在使用路径之外定义这样的弧?

谢谢.

svg clone clipping

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

如何在 WebGL 中将视频帧转换为 GL 纹理?

我对能够将glfx.js 中的过滤器应用于实时视频很感兴趣。我已成功按我的意愿导入和处理帧,但该方法效率低下。在我的页面设置中,我这样做:

var fbCanvas = document.getElementById('framebuffer');
var fb = fbCanvas.getContext('2d');
var video = document.getElementById('video');
var output = fx.canvas();
Run Code Online (Sandbox Code Playgroud)

然后,在 25hz(视频的播放速率),我这样做:

fb.drawImage(video, 0, 0);
var frame = output.texture(fbCanvas);
output.draw(frame).hueSaturation(-0.5, 0).update();
Run Code Online (Sandbox Code Playgroud)

但我希望能够做到这一点:

var frame = output.texture(video);
output.draw(frame).hueSaturation(-0.5, 0).update();
Run Code Online (Sandbox Code Playgroud)

对 output.texture 的调用只是 gl.texImage2D 的一个包装器,它似乎只接受图像或画布——而不是视频元素。

我的问题是,通过对隐藏画布执行额外的 drawImage 对性能有多大影响?将视频帧放入 GL 纹理以便我可以实时在它们上运行 GL 着色器的最快方法是什么?

谢谢。

html canvas webgl html5-video

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

如何从lwIP的mem_malloc获取可用内存?

我在嵌入式设备上使用lwIP,我觉得我可能会遇到一些与内存耗尽有关的错误.我知道当内存分配失败时,mem_malloc函数本身将返回null,但有没有办法在任意时间点粗略评估可用内存?能够直接监视它,确定哪些使用模式正在泄漏内存将会很棒.

谢谢.

embedded malloc memory-leaks lwip

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

如何在C中分解unix时间

这看起来似乎任何人都不应该要做的,但我正在一个内核模块上的嵌入式系统(的OpenWRT),其中似乎time.h 包括timespectime_t类型,以及clock_gettimegmtime功能,但包括localtime,ctime,time或者,或者,批判性地,tm类型.

当我尝试将返回指针从gmtime强制转换为我自己的struct时,我得到了一个段错误.

所以我想我会满足于从两种方式解决这个问题 - 想弄清楚如何访问这个缺失的类型,或者如何推出我自己的方法来分解unix时间戳.

c linux time.h unix-timestamp

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

在节点0.5.10-pre下抑制了CoffeeScript编译器错误

当我的脚本由于任何原因无法解析时,我从编译器获得了一个堆栈跟踪,根本没有深入了解我的脚本中问题所在的位置:

mpurvis@citadel:~/coffee$ coffee -c Test.coffee

/usr/local/lib/node_modules/coffee-script/lib/command.js:15
    return process.binding('stdio').writeError(line + '\n');
                   ^
Error: No such module
    at /usr/local/lib/node_modules/coffee-script/lib/command.js:15:20
    at /usr/local/lib/node_modules/coffee-script/lib/command.js:167:7
    at /usr/local/lib/node_modules/coffee-script/lib/command.js:115:26
    at [object Object].<anonymous> (fs.js:108:5)
    at [object Object].emit (events.js:64:17)
    at afterRead (fs.js:1074:12)
    at Object.wrapper [as oncomplete] (fs.js:246:17)
Run Code Online (Sandbox Code Playgroud)

现在,它只是一个玩具脚本来尝试系统,所以我通常可以尝试直到它再次工作,但这在任何大小的文件中都是不可能的.是否有一些技巧我没有看到错误发生的行?

谢谢!

coffeescript

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