小编She*_*jie的帖子

vim配置打开.conf文件的语法

我的python项目下有一个名为"logging.conf"的配置文件,该文件如下所示:

[formatters]
keys: console, logging

[formatter_console]
format: %(asctime)s | %(message)s

[formatter_logging]
format: %(message)s

etc etc etc
Run Code Online (Sandbox Code Playgroud)

试过:syntax on,什么也没发生,.conf文件看起来很简单.无论如何我可以打开一些语法来使.conf文件更加丰富多彩和可读性?

vim

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

傀儡继承VS木偶组成

我最近刚刚来到了傀儡遗产.围绕它的一些问题:

  1. 使用傀儡继承是一种好习惯吗?一些有经验的傀儡同事告诉我,傀儡中的遗传不是很好,我不太相信.

  2. 来自OO世界,我真的想在封面下理解,傀儡继承是如何运作的,如何压倒一切也是如此.

puppet

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

python-sphinx:如何显示linux命令代码片段

使用sphinx,我知道你可以通过以下方式显示一段python代码片段或ruby代码片段:

.. code-block:: ruby.
  ${your ruby code goes here} 
Run Code Online (Sandbox Code Playgroud)

如何显示linux命令的代码片段或仅显示与任何语言无关的某些控制台命令?我不在乎它们是否在语法上没有正确突出显示,我只是希望它们在doc中显示为除普通文本之外的一段代码.例如.

ls -lsa . 
make file
Run Code Online (Sandbox Code Playgroud)

python-sphinx

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

如何调整风暴中的并行性提示

"并行性提示"在风暴中用于并行运行的风暴拓扑.我知道有工作流程,执行者和任务等概念.使并行性提示尽可能大有意义,以便尽可能地并行化拓扑?

我的问题是如何为我的风暴拓扑找到一个完美的并行性提示数.它取决于我的风暴群集的规模,还是更像拓扑/作业特定设置,它从一种拓扑到另一种不同?还是取决于两者?

parallel-processing apache-storm

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

PyDev for Eclipse - 解决Python依赖项(未解析的导入)

我使用PyDev for Eclipse作为我的IDE并使用pip作为我的包管理工具,运行virtualenv.

每次我想在项目中使用/包含一些新库或新依赖项时,我都会将它们添加到pip-requires文件中.依赖关系安装在我的虚拟环境中,运行后没有问题pip install -r pip-requires.

我的环境:

  • Ubuntu 12.04
  • PyDev for Eclipse 2.7.1.2012100913
  • Python 2.7.3
  • Eclipse indigo

更新:我的Pydev设置:

在此输入图像描述

问题:

  • eclipse/pydev对我虚拟环境中添加的新库一无所知.我不得不手动将.egg源文件夹手动添加到eclipse项目的PYTHONPATH中,以便解决所有未解决的导入,这非常烦人!可以更容易地解决python依赖关系吗?

更新:

  • 我发现如果我使用虚拟环境Env/bin/python作为解释器,如屏幕截图所示,某些基本模块在eclipse中无法解决,例如.import copy, import json我应该使用默认值/usr/bin/python作为解释器,只需将虚拟环境添加site-package到PYTHONPATH中吗?这样我就可以解决标准python库(例如json)和我自己的项目依赖项?

python java eclipse-plugin pydev m2eclipse

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

Java 7 API设计最佳实践 - 返回Array或返回Collection

我知道在通用出来之前就会问这个问题.在Array强制执行返回类型的情况下,Array确实胜出了一些,它更加类型安全.

但是现在,使用最新的JDK 7,每次我设计这种类型的API时:

public String[] getElements(String type)
vs
public List<String> getElements(String type)
Run Code Online (Sandbox Code Playgroud)

我总是在努力想出一些很好的理由来回归一个阵列或者其他方式.在选择String []或List作为API的返回类型时,最佳做法是什么?或者它是马的课程.

我脑子里没有特殊情况,我更希望找到一个通用的利弊比较.

java collections

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

python相当于java guava前提条件

python是否与java Preconditions库有任何等价物.例如

在java中,你可以检查这样的参数:

public void dummymethod(Cat a, Dog b) {
   Preconditions.checkNotNull(a, "a can not be null.");
   Preconditions.checkNotNull(b, "b can not be null.");
   /**
   your logic
   **/   
}
Run Code Online (Sandbox Code Playgroud)

如果a或b为null,Java会抛出Runtime Exception,python如何,python的最佳实践是什么?

python

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

python中的文件对象是可迭代的

我有一个文件"test.txt":

this is 1st line
this is 2nd line
this is 3rd line
Run Code Online (Sandbox Code Playgroud)

以下代码

lines = open("test.txt", 'r')
for line in lines:
    print "loop 1:"+line
for line in lines:
    print "loop 2:"+line
Run Code Online (Sandbox Code Playgroud)

只打印:

loop 1:this is 1st line

loop 1:this is 2nd line

loop 1:this is 3rd line
Run Code Online (Sandbox Code Playgroud)

它根本不打印loop2.

两个问题:

  1. open()返回的文件对象是可迭代的吗?这就是为什么它可以用于for循环?

  2. 为什么loop2根本没有印刷?

python iterable

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

当logrotate旋转日志文件时,log4j fileappender不会切换到新文件

语境:

我想使用log4j将审计相关的日志写入特定的日志文件,比方说audit.log.我不想使用syslogappender(基于udp),因为我不想容忍数据丢失.另外,当文件达到一定大小时,我使用logrotate来旋转audit.log.

问题:

我遇到的是,当logrotate将文件audit.log旋转到audit.log.1时,log4j继续写入audit.log.1而不是写入audit.log.

可能的方法:

  1. 我知道除了使用logrotate之外我可以使用rollingfileappender进行日志轮换,所以当scrollfileappender滚动文件时,它会毫无困难地切换到新文件.但我不能使用rollingfileappender的原因是我想使用logrotate的post旋转功能在旋转发生后触发一些脚本,而滚动文件无法提供.

  2. 我能想到的另一种绝望的方法是自己编写一个log4j自定义appender来关闭日志文件(audit.log.1)并在检测到文件被旋转时打开新文件(audit.log).

  3. 我从未使用ExternallyRolledFileAppender,但是如果可以使用logrotate post rotate将信号发送到ExternallyRolledFileAppender并使log4j知道文件被旋转,并开始写入新文件?

题:

只是想知道是否有一些像已经发明/写的那样的追加者?或者我还有其他选择来解决这个问题吗?

log4j logrotate rollingfileappender fileappender log-rotation

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

nmap表示端口已关闭,而nestat表示正在收听

这是Ubuntu 12.04 env.我在盒子上的端口8020上运行TCP服务:

我的问题是:

为什么端口8020在nmap中没有被发现作为开放端口,而nestat说它正在监听?

如果我跑

netstat -tuplen

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       User           Inode       PID/Program name
tcp        0      0 127.0.0.1:9001          0.0.0.0:*               LISTEN      0          10564       1917/python    
tcp        0      0 127.0.0.1:8020          0.0.0.0:*               LISTEN      117        29259       4448/java       
Run Code Online (Sandbox Code Playgroud)

但如果我跑

nmap -v -sT 127.0.0.1

Starting Nmap 5.21 ( http://nmap.org ) at 2012-08-10 08:51 PDT
Initiating Connect Scan at 08:51
Scanning localhost (127.0.0.1) [1000 ports]
Discovered open port 53/tcp on 127.0.0.1
Discovered open port 22/tcp on 127.0.0.1 …
Run Code Online (Sandbox Code Playgroud)

linux port netcat nmap

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