小编Hen*_*ger的帖子

为什么Maven有这么糟糕的代表?

互联网上有很多关于Maven如何糟糕的话题.我已经使用Maven的一些功能已经有几年了,我认为最重要的好处是依赖管理.

Maven文档不够充分,但通常当我需要完成某些事情时我会弄清楚它然后它可以工作(例如当我实现签署jar时).我不认为Maven是伟大的,但它确实解决了一些问题,没有它将是一个真正的痛苦.

那么,为什么Maven会有如此糟糕的代表,以及Maven在未来会遇到什么问题呢?也许还有更多我不了解的替代方案?(例如,我从未详细看过常春藤.)

注意:这不是导致争论的尝试.这是尝试清除FUD.

java build-automation build-process maven-2

99
推荐指数
21
解决办法
10万
查看次数

了解芹菜任务预取

我刚刚发现了配置选项CELERYD_PREFETCH_MULTIPLIER(docs).默认值为4,但(我相信)我希望预取或尽可能低.我现在把它设置为1,这足够接近我正在寻找的东西,但仍有一些我不明白的东西:

  1. 为什么这个预取是一个好主意?除非消息队列和工作人员之间存在大量延迟(在我的情况下,他们当前在同一主机上运行,​​最糟糕的情况可能最终在同一数据中的不同主机上运行),我真的没有理由看到它.中央).文档仅提到了缺点,但未能解释其优点.

  2. 许多人似乎把它设置为0,期望能够以这种方式关闭预取(在我看来是一个合理的假设).但是,0表示无限预取.为什么有人会想要无限制的预取,这不是完全消除了你首先引入任务队列的并发/异步性吗?

  3. 为什么不能关闭预取?在大多数情况下,关闭性能可能不是一个好主意,但有技术上的原因是不可能的吗?还是只是没有实施?

  4. 有时,此选项已连接到CELERY_ACKS_LATE.例如.Roger Hu写道 «[...]通常[用户]真正想要的是让工人只保留与子进程一样多的任务.但是,如果没有启用延迟确认,这是不可能的[...]»我不明白这两个选项是如何连接的,以及为什么没有另一个选项是不可能的.可以在此处找到关于连接的另一个提及.有人可以解释为什么这两个选项是连接的吗?

python celery celeryd

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

如果不立即重新引发异常回溯,则会隐藏异常回溯

我有一段类似于此的代码:

import sys

def func1():
    func2()

def func2():
    raise Exception('test error')

def main():
    err = None

    try:
        func1()
    except:
        err = sys.exc_info()[1]
        pass

    # some extra processing, involving checking err details (if err is not None)

    # need to re-raise err so caller can do its own handling
    if err:
        raise err

if __name__ == '__main__':
    main()
Run Code Online (Sandbox Code Playgroud)

func2引发异常时,我收到以下回溯:

Traceback (most recent call last):
  File "err_test.py", line 25, in <module>
    main()
  File "err_test.py", line 22, in main
    raise err …
Run Code Online (Sandbox Code Playgroud)

python exception-handling exception try-catch traceback

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

是否有插件允许我自动取消网站上包含的Javascript?

是否有插件,附加组件,Greasemonkey脚本或类似的东西(最糟糕的是,一个易于使用的代理?)自动取消网站上包含的Javascript文件?

我知道例如jsbeautifier.org,但在外部执行此操作不允许我在未明细化的代码中设置断点.

我的典型用例:

  • 分析和学习复杂的网络前端.
  • 调试与现有代码交互的Greasemonkey脚本.

我主要对与Firebug一起使用的解决方案感兴趣,但如果有适用于Chrome或Opera的开发工具的东西,我也想听听它.

javascript firebug minify

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

从Chrome上的Greasemonkey脚本将JS函数注入页面

我有一个Greasemonkey脚本,在Firefox和Opera中运行良好.但是,我很难让它在Chrome中运行.问题是在页面中注入一个可以通过页面中的代码调用的函数.这是我到目前为止所做的事情:

首先,我得到一个帮助引用Firefox 的unsafeWindow.这让我可以使用相同的FF和Opera代码(我认为是Chrome).

var uw = (this.unsafeWindow) ? this.unsafeWindow : window;
Run Code Online (Sandbox Code Playgroud)

接下来,我在页面中注入一个函数.它实际上只是一个非常薄的包装器,除了在GM脚本的上下文中调用相应的函数之外什么都不做:

uw.setConfigOption = function(newValue) {
    setTimeout(setConfigOption, 0, newValue);
}
Run Code Online (Sandbox Code Playgroud)

然后,我的脚本中有相应的功能:

setConfigOption = function(newValue) {
    // do something with it, e.g. store in localStorage
}
Run Code Online (Sandbox Code Playgroud)

最后,我在页面中注入一些HTML,并带有一个调用该函数的链接.

var p = document.createElement('p');
p.innerHTML = '<a href="javascript:setConfigOption(1)">set config option to 1</a>';
document.getElementById('injection-point').appendChild(p);
Run Code Online (Sandbox Code Playgroud)

总结一下:在Firefox中,当用户单击该注入的链接时,它将在unsafeWindow上执行函数调用,然后触发超时,该超时在我的GM脚本的上下文中调用相应的函数,然后执行实际处理.(如果我错了,请纠正我.)

在Chrome中,我只是得到一个"未捕获的ReferenceError:setConfigOption未定义"错误.实际上,在控制台中输入"window.setConfigOption"会产生"未定义".在Firebug和Opera开发人员控制台中,功能就在那里.

也许有另一种方法可以做到这一点,但是我的一些函数是由页面上的Flash对象调用的,我认为这使得我必须在页面上下文中使用函数.

我在Greasemonkey维基上快速浏览了unsafeWindow替代品,但它们看起来都非常难看.我在这里完全走错了轨道还是应该仔细研究这些?

决议:我跟着Max S. 建议,现在可以在Firefox和Chrome中使用.因为我需要对页面可用的函数必须回调常规函数,所以我将整个脚本移动到页面,即它完全包含在他称为"main()"的函数中.

为了使这个hack的额外丑陋更加可以忍受,我至少可以放弃unsafeWindow和wrappedJSObject的使用.

我还没有设法从Greasemonkey wiki中获取内容范围运行器.它应该做同样的事情似乎执行得很好,但是我的函数永远不会<a>被页面中的元素访问,例如.我还没弄清楚为什么会这样.

javascript greasemonkey google-chrome userscripts google-chrome-extension

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

如何在Windows 7上安装Python 2.7.1中的easy_install

我在Windows 7上安装了Python 2.7.1,但我无法安装easy_install.请帮我.

python easy-install

30
推荐指数
4
解决办法
12万
查看次数

占位符不在IE8中显示Bootstrap

我正在为我的项目使用Bootstrap.除Internet Explorer 8及更低版本外,占位符对所有浏览器都显示正常.

是否有任何解决方案可以在IE8中获得占位符支持?

jquery placeholder internet-explorer-8 twitter-bootstrap

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

如何在Heroku上运行时解决celeryd的退出超时问题(错误R12)?

我在Heroku dyno上运行celeryd.当我关闭它并且它先前已处理(甚至已完成)至少一个任务时,它没有正确关闭,我从Heroku收到错误R12(退出超时).

这是我从我的Procfile(通过Django和django-celery)运行celeryd的方式:

celeryd: python manage.py celeryd -E --loglevel=INFO
Run Code Online (Sandbox Code Playgroud)

这是我正在做的触发它:

> heroku ps:scale web=0 celeryd=0 --app myapp
Run Code Online (Sandbox Code Playgroud)

这是我得到的日志输出:

2012-09-07T12:56:31+00:00 heroku[celeryd.1]: State changed from up to down
2012-09-07T12:56:31+00:00 heroku[api]: Scale to celeryd=0, web=1 by mail@mydomain.com
2012-09-07T12:56:32+00:00 heroku[web.1]: State changed from up to down
2012-09-07T12:56:32+00:00 heroku[api]: Scale to web=0 by mail@mydomain.com
2012-09-07T12:56:34+00:00 heroku[celeryd.1]: Stopping all processes with SIGTERM
2012-09-07T12:56:35+00:00 heroku[web.1]: Stopping all processes with SIGTERM
2012-09-07T12:56:37+00:00 heroku[web.1]: Process exited with status 143
2012-09-07T12:56:43+00:00 heroku[celeryd.1]: Error R12 (Exit timeout) -> At …
Run Code Online (Sandbox Code Playgroud)

heroku celery django-celery celeryd

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

C#ref关键字用法

我理解(或者至少我相信我这样做)将类的实例传递给方法ref而不是传递方法意味着什么ref.何时或在什么情况下应该通过类实例refref在类实例中使用关键字时是否有最佳实践?

c#

12
推荐指数
3
解决办法
5965
查看次数

在Django中使用InlineAdmin和post_save信号创建配置文件模型

我创建了一个"配置文件"模型(与用户模型具有一对一的关系),如扩展现有用户模型所述.配置文件模型与另一个模型具有可选的多对一关系:

class Profile(models.Model):
    user = models.OneToOneField(User, primary_key=True)
    account = models.ForeignKey(Account, blank=True, null=True, on_delete=models.SET_NULL)
Run Code Online (Sandbox Code Playgroud)

正如那里记录的那样,我还创建了一个内联管理员:

class ProfileInline(admin.StackedInline):
    model = Profile
    can_delete = False
    verbose_name_plural = 'profiles'
# UserAdmin and unregister()/register() calls omitted, they are straight copies from the Django docs
Run Code Online (Sandbox Code Playgroud)

现在,如果account在创建用户时未在管理员中选择a ,则不会创建配置文件模型.所以我再次连接post_save信号,只需按照文档:

@receiver(post_save, sender=User)
def create_profile_for_new_user(sender, created, instance, **kwargs):
    if created:
        profile = Profile(user=instance)
        profile.save()
Run Code Online (Sandbox Code Playgroud)

只要我没有account在管理员中选择一个,这个工作正常,但如果我这样做,我会得到一个IntegrityError例外,告诉我duplicate key value violates unique constraint "app_profile_user_id_key" DETAIL: Key (user_id)=(15) …

python django django-signals django-models django-admin

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