小编Rég*_* B.的帖子

自动完成命令行参数

在bash中,mplayer和imagemagick的"convert"等可执行文件在其命令行参数上具有很酷的自动完成功能.例如,如果我输入

mplayer <tab><tab>
Run Code Online (Sandbox Code Playgroud)

在我的一个视频文件夹中,然后mplayer将列出位于该文件夹中的所有媒体文件,并且仅列出媒体文件.

同样,如果我输入

convert -<tab><tab>
Run Code Online (Sandbox Code Playgroud)

然后我将看到转换脚本的所有可能选项,这很棒.

我的问题是如何使用bash,ruby或python脚本实现类似的功能?

command-line autocomplete command-line-arguments

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

Celery任务在1970年具有time_start属性

检查当前运行的Celery任务会发现一个奇怪的time_start时间戳:

>> celery.app.control.inspect().active()
{u'celery@worker.hostname': [{u'acknowledged': True,
   u'args': u'(...,)',
   u'delivery_info': {u'exchange': u'celery',
    u'priority': 0,
    u'redelivered': None,
    u'routing_key': u'celery'},
   u'hostname': u'celery@worker.hostname',
   u'id': u'3d92fdfd-524e-4ba1-98cb-cf83af2ad8e9',
   u'kwargs': u'{}',
   u'name': u'task_name',
   u'time_start': 9636801.218162088,
   u'worker_pid': 7931}]}
Run Code Online (Sandbox Code Playgroud)

time_start属性将任务追溯到1970年(那是在创建Celery,Python之前,我没有自定义的DeLorean):

>> from datetime import datetime
>> datetime.fromtimestamp(9636801.218162088)
datetime.datetime(1970, 4, 22, 13, 53, 21, 218162)
Run Code Online (Sandbox Code Playgroud)

我是否误解了这个time_task属性?我的Celery应用程序配置错误了吗?

我在Linux上使用带有Django应用程序和Redis后端的Celery 3.1.4.

任务由执行的工作程序运行,如下所示:

./manage.py celery worker --loglevel=INFO --soft-time-limit=600 --logfile=/tmp/w1.log --pidfile=/tmp/w1.pid -n 'w1.%%h'
Run Code Online (Sandbox Code Playgroud)

python django redis celery celery-task

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

开发基本的DNS服务器(在C#中)

我正在为自己的目的开发一个非常基本的DNS服务器.我理解它的方式,DNS服务器接收包含所请求域名的UDP数据包,并以某种标准格式返回相应的IP.

有一个标准库用于从/向二进制格式读/写UDP数据包.但是,在哪里可以找到用于序列化/反序列化DNS请求/响应的C#库?

c# dns udp

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

在docker-compose 3中扩展服务

我为docker-compose 3创建了一个使用许多环境变量的服务:

version: "3"

services:
  myservice:
    build:
      context: ./myservice
    command: ./something
    environment:
      VAR1: "val1"
      VAR2: "val2"
      VAR3: "val3"
Run Code Online (Sandbox Code Playgroud)

现在我想添加一个使用相同环境变量值的服务,除了VAL1,并且具有不同的命令:

myotherservice:
    build:
      context: ./myservice
    command: ./somethingelse
    environment:
      VAR1: "val1-bis"
      VAR2: "val2"
      VAR3: "val3"
Run Code Online (Sandbox Code Playgroud)

有没有办法避免docker-compose.yml文件中的环境变量重复?在docker-compose 2中,可以使用extends关键字,但在docker-compose 3中不再是这种情况.

编辑:2017年10月,扩展字段被添加到docker-compose 3.4语法:https://docs.docker.com/compose/compose-file/#extension-fields这是正确的方法:

version: "3"
x-env:
  &default-env
  VAR1: "val1"
  VAR2: "val2"
  VAR3: "val3"
services:
  myservice:
    build:
      context: ./myservice
    command: ./something
    environment: *default-env
myotherservice:
    build:
      context: ./myservice
    command: ./somethingelse
    environment:
      << : *default-env
      VAR1: "val1-bis"
Run Code Online (Sandbox Code Playgroud)

docker docker-compose

16
推荐指数
3
解决办法
6749
查看次数

Ruby on Rails 3 + Apache2 + Phusion Passenger:Bundler :: GemNotFound异常

我正在尝试使用Phusion Passenger在Apache2服务器上部署Rails应用程序.虽然一切都在本地运行良好,但我在部署时遇到臭名昭着的"Bundler :: GemNotFound"错误:

Could not find abstract-1.0.0 in any of the sources (Bundler::GemNotFound)
Run Code Online (Sandbox Code Playgroud)

我的所有宝石都安装在我的本地主文件夹中.因此,我的Apache2配置文件中的乘客配置行如下:

LoadModule passenger_module /home/regis/.gem/gems/passenger-3.0.7/ext/apache2/mod_passenger.so
PassengerRoot /home/regis/.gem/gems/passenger-3.0.7
PassengerRuby /usr/bin/ruby1.8
Run Code Online (Sandbox Code Playgroud)

我知道您需要更多信息来分析手头的问题,但我不知道如何进一步诊断这个问题.

ruby ruby-on-rails apache2 passenger bundler

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

让'git grep'在vim中有效地工作

Fugitive.vim允许我运行git grep命令; 不幸的是,结果没有存储在quickfix-list中,所以我需要:cw在a之后运行:Ggrep才能拥有一个易于解析的结果列表.

我想键入:Ggr "def my_function"而不是:

:Ggrep "def my_function"
:cw
Run Code Online (Sandbox Code Playgroud)

如何:Ggr在.vimrc文件中定义此命令?

编辑

一旦:Ggr定义了命令,我就可以映射到git grep光标下的单词,这真的很棒:

nnoremap <C-F> :Ggr <cword><CR>
Run Code Online (Sandbox Code Playgroud)

git vim vim-fugitive

11
推荐指数
2
解决办法
2839
查看次数

在Django模型中拥有自定义实例属性的正确方法是什么?

我想为Django模型的实例添加自定义属性.这些属性不应存储在数据库中.在任何其他类中,属性将仅由__init__方法初始化.

我已经可以看到三种不同的方法,而且没有一种方法是完全令人满意的.我想知道是否有更好/更多的pythonic/djangoist方法呢?

  1. 覆盖__init__方法:语法是有点令人费解,但它的作品.

    from django.db.models import Model
    
    class Foo(Model):
      def __init__(self, *args, **kwargs):
         super(Model, self).__init__(*args, **kwargs)
         self.bar = 1
    
    Run Code Online (Sandbox Code Playgroud)
  2. 使用Django post_init信号:这需要类定义之外的类代码,这是不可读的.

    from django.dispatch import receiver
    from django.db.models.signals import post_init
    @receiver(post_init, sender=Foo)
        def user_init(sender, instance, *args, **kwargs):
          instance.bar = 1
    
    Run Code Online (Sandbox Code Playgroud)
  3. 使用实例方法而不是属性:引发一般异常,因为默认行为有点令人不安.

    class Foo(Model):
      def bar(self):
        try:
          return self.bar
        except:
          self.bar = 1
        return self.bar
    
    Run Code Online (Sandbox Code Playgroud)

在这三个选择中,第一个看起来对我来说是最差的.你怎么看?还有其他选择

python django django-models

8
推荐指数
2
解决办法
3204
查看次数

如何过滤中文(仅限中文)

我想将一些包含标点符号和全角符号的文本转换为纯中文文本.

maybe_re = re.compile("xxxxxxxxxxxxxxxxx") #TODO
print "".join(maybe_re.findall("??,?????????.??????"))

# I want out
?????????????
Run Code Online (Sandbox Code Playgroud)

python

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

Clang链接器不会查看LD_LIBRARY_PATH

我正在尝试使用clang(3.0)构建和链接基于C++,cmake的项目.此项目链接到安装在自定义目录/ my/dir /中的多个库.该目录包含在LD_LIBRARY_PATH和LIBRARY_PATH环境变量中.项目使用g ++构建和链接.

由cmake生成并执行的链接命令如下所示:

/usr/bin/clang++ -O3 stuff.cpp.o -o stuff -rdynamic -lmylib
Run Code Online (Sandbox Code Playgroud)

ld然后抱怨以下消息:

/usr/bin/ld: cannot find -lmylib
Run Code Online (Sandbox Code Playgroud)

每当我手动添加时,上面的链接命令运行正常-L/my/dir/.有没有指定-L标志链接的方法?

c++ cmake clang ld

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

MongoDb:$按$排序

我正在使用运算符运行 mongodbfind查询$in

collection.find({name: {$in: [name1, name2, ...]}})
Run Code Online (Sandbox Code Playgroud)

我希望结果按照与我的名称 array: 相同的顺序排序[name1, name2, ...]。我该如何实现这一目标?

注意:我通过 pymongo 访问 MongoDb,但我认为这并不重要。

编辑:由于不可能在 MongoDb 中本地实现这一点,所以我最终使用了典型的 Python 解决方案:

names = [name1, name2, ...]
results = list(collection.find({"name": {"$in": names}}))
results.sort(key=lambda x: names.index(x["name"]))
Run Code Online (Sandbox Code Playgroud)

python sorting mongodb pymongo

7
推荐指数
2
解决办法
1936
查看次数