小编bnj*_*jmn的帖子

登录Java和一般:最佳实践?

有时当我看到我的日志代码时,我想知道我是否做得对.可能没有明确的答案,但我有以下问题:

图书馆课程

我有几个库类可能会记录一些INFO消息.致命错误报告为例外.目前我的类中有一个静态记录器实例,类名作为日志名称.(Log4j的:Logger.getLogger(MyClass.class))

这是正确的方法吗?也许这个库类的用户不希望我的实现发送任何消息,或者想要将它们重定向到特定于应用程序的日志.我应该允许用户从"外部世界"设置记录器吗?你如何处理这种情况?

一般日志

在某些应用程序中,我的类可能希望将日志消息写入未由类名称标识的特定日志.(即:) HTTP Request log这样做的最佳方法是什么?想到一个查找服务......

java logging log4j

64
推荐指数
6
解决办法
5万
查看次数

使用maven将多个资源目录复制到独立目标目录

Maven的资源插件:

此目标要求您配置要复制的资源,并指定outputDirectory.

basedir使用maven 将两个(或更多)外部资源目录复制到构建输出目录中(请参阅blahuggh).

${basedir}/ 
  - pom.xml
  - blah/
  - uggh/
  - src/
    - main/..
    - test/..
  - target/
    - classes/..
    - blah/
    - uggh/
Run Code Online (Sandbox Code Playgroud)

例如,给定上面的目录结构copy blahuggh使用maven到目标目录.复制一个或另一个很容易,但插件只接受一个outputDirectory.如果将target目录和两个目录指定为资源,则会复制每个目录的内容,target但不会复制目录本身.

插件的额外使用会覆盖初始.此外,我已经尝试指定整个basedir,只包括所需的目录.这不会复制任何东西.

以下是复制单个目录的示例:

  <plugin>
    <artifactId>maven-resources-plugin</artifactId>
    <version>2.6</version>
    <executions>
      <execution>
        <id>copy-resources</id>
        <phase>validate</phase>
        <goals>
          <goal>copy-resources</goal>
        </goals>
        <configuration>
          <outputDirectory>${basedir}/target/blah</outputDirectory>
          <resources>
            <resource>
                <directory>blah</directory>
                <filtering>true</filtering>
            </resource>
          </resources>
        </configuration>
      </execution>
    </executions>
  </plugin>
Run Code Online (Sandbox Code Playgroud)

java maven

47
推荐指数
4
解决办法
8万
查看次数

R knitr Markdown:For循环中的输出图

我想创建一个自动编织器报告,它将为我的数据帧中的每个数字字段生成直方图.我的目标是在不必指定实际字段的情况下执行此操作(此数据集包含超过70个,我还想重用该脚本).

我尝试过几种不同的方法:

  • 将绘图保存到对象,p然后p在循环 后调用
    • 这只绘制了最终的情节
  • 创建一个绘图数组PLOTS <- NULL,并在循环中附加绘图PLOTS <- append(PLOTS, p)
    • 从循环中访问这些图并不起作用
  • 甚至尝试将每个.png文件保存到文件中,但不必处理保存然后重新访问每个文件的开销

我担心情节设备的复杂性正在逃避我.

如何将循环内的每个绘图输出到报告中?目前,我能做到的最好的是输出最终绘图,将其保存到对象并在循环外调用该对象.

knitr在RStudio中使用R markdown chunk :

```{r plotNumeric, echo=TRUE, fig.height=3}
suppressPackageStartupMessages(library(ggplot2))
FIELDS <- names(df)[sapply(df, class)=="numeric"]
for (field in  FIELDS){
  qplot(df[,field], main=field)  
}
```
Run Code Online (Sandbox Code Playgroud)

从这一点来说,我希望进一步定制这些图.

r ggplot2 rstudio knitr

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

将**kwargs传递给Django Form

我正在尝试构建自定义django表单以更改应用程序的用户名和用户电子邮件.这就是为什么我需要将会话中的用户详细信息传递给表单以检查记录的用户是否存在.我这样做:

在views.py中

personal_info_form = PersonalInfoForm(prefix='personal_info',
                                      user_details=user_details)
Run Code Online (Sandbox Code Playgroud)

user_details字典在哪里:

'user_details': [{'username': u'username', 
                  'registration_date': datetime.date(2009, 10, 22), 
                  'id': 13, 'email': u'user@mail.com'}]}
Run Code Online (Sandbox Code Playgroud)

在forms.py中,我有以下代码:

class PersonalInfoForm(forms.Form):

    def __init__(self, *args, **kwargs):
        user_details = kwargs.pop('user_details', None)
        super(PersonalInfoForm, self).__init__( *args, **kwargs)

    username = forms.CharField(required=True, initial=user_details[0]['username'])
    email = forms.EmailField(required=True)
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

name 'user_details' is not defined
Run Code Online (Sandbox Code Playgroud)

我试着访问它self.user_details,只有user_details和它给了我同样的错误

django django-forms

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

gradle在Intellij中不起作用 - 与JAVA_HOME有关

  • 我可以从命令行运行gradle来查看它的版本.
  • 我可以在IntelliJ(版本10.0或版本10.2)中运行,编译和调试grails应用程序
  • 我安装了IntelliJ Gradle插件.

每当我尝试使用Intellij中的gradle做任何事情时,我都会收到如下错误:

Executing command: "tasks"
Failed to connect to gradle process for command 'tasks'

ERROR: JAVA_HOME is set to an invalid directory: C:\Program Files (x86)\JetBrains\IntelliJ IDEA 10.0\jre

Please set the JAVA_HOME variable in your environment to match the
location of your Java installation.
Run Code Online (Sandbox Code Playgroud)

但是在我的环境中,我已经JAVA_HOME在不同的目录中设置了正确的JDK.此外,当我查看IntelliJ项目时,它还会在正确的JDK位置显示JDK.我找不到任何试图将JDK指向Intellij JRE位置的东西.

有什么想法吗?

intellij-idea gradle

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

Nginx配置将站点直接传递给带有上下文的tomcat webapp

tl;博士版

如何设置nginxexample.com本地运行的tomcatwebapp 的反向代理http://127.0.0.1:8080/blah/而不打破pageContext


Tomcat安装程序

存在一个tomcat 7 webapp,blah部署了一个.war文件并且坐在里面/var/lib/tomcat7/webapps/blah/.

tomcat在本地运行,可访问http://127.0.0.1:8080.多个webapps正在运行,可以在以下位置访问:

  • http://127.0.0.1:8080/blah/
  • http://127.0.0.1:8080/foo/
  • http://127.0.0.1:8080/bar/

端口8080被防火墙外部阻止.

Nginx设置

nginx作为网守在服务器上运行.一个站点可以访问上面提到的所有本地tomcat webapps.这适用于example.com:

server {
listen  80; 
server_name example.com;
root /var/lib/tomcat/webapps/ROOT/;

  location / { 
    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-Server $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_pass http://127.0.0.1:8080/;
  }
}
Run Code Online (Sandbox Code Playgroud)

问题:如何配置其他站点blah直接访问?

/etc/nginx/sites-enabled/另一个站点文件下设置路由http://blah.comhttp://127.0.0.1:8080/blah/但有问题.

server {
  listen  80; 
  server_name blah.com …
Run Code Online (Sandbox Code Playgroud)

nginx tomcat7

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

numpy负索引a [: - 0]

我想使用数组切片来修剪我的数组,即

a_trimmed = a[trim_left:-trim_right]
Run Code Online (Sandbox Code Playgroud)

这很好,除非trim_right是0,我得到a[trim_left:0],这是一个空数组.

我想我能做到

a[trim_left:a.shape[0]-trim_right]
Run Code Online (Sandbox Code Playgroud)

但它更丑陋.表达这种最简洁的方法是什么?

python numpy

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

使用scipys generic_filter实现"峰度过滤器"

我有一个5000*5000numpy数组,我想要计算大小为25的窗口的Kurtosis.我尝试将scipys自己的kurtosis功能放入generic_filter发现中,ndimage.filters如下所示:

import numpy as np

from scipy.stats import kurtosis
from scipy.ndimage.filters import generic_filter

mat = np.random.random_sample((5000, 5000))

kurtosis_filter = generic_filter(mat, kurtosis, size=25, mode='reflect') 
Run Code Online (Sandbox Code Playgroud)

这永远不会结束,我不确定它会给出正确的答案.所以我的第一个问题是,这是否是使用generic_filterscipy函数的正确方法.如果它恰好是正确的,那么它对我来说太慢了.所以我的下一个问题是,如果有更快的方法来实现这一目标?例如,考虑标准偏差,您可以简单地执行以下操作:

usual_mean = uniform_filter(mat, size=25, mode='reflect')
mean_of_squared = uniform_filter(np.multiply(mat,mat), size=25, mode='reflect')
standard_deviation = (mean_of_squared - np.multiply(usual_mean,usual_mean))**.5
Run Code Online (Sandbox Code Playgroud)

这是非常快速的,简单来自$\sigma ^ 2 = E [(X - \mu)^ 2] = E [X ^ 2] - (E [X])^ 2 $的事实.

python filtering numpy scipy sliding-window

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

EC2 EBS快照作为增量备份

我了解AWS快照可以创建EBS卷的增量备份.只要从同一卷生成快照,AWS是否会自动处理增量部分(即仅存储已更改的部分)?

我不清楚,因为他们没有列出快照的实际大小或允许你在S3中查看它们(据我所知).除了创建它们的卷之外,没有任何指示快照是相关的.是否可以将任何快照(包括第一个)视为原始AMI的增量?我很想知道它们是如何实际实现的,或者第一个快照是存储在我的个人S3帐户中的完全独立的图像.

amazon-ebs amazon-web-services

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

是否可以使用独立的jython jar作为EXE创建一个python vitualenv?

我知道jython可以用作virtualenv的python解释器.简单如下:

 virtualenv -p /usr/local/bin/jython jython-env --no-site-packages
Run Code Online (Sandbox Code Playgroud)

假设我根本不想安装jython,而是使用独立的jar作为vitualenv的python解释器.这可能吗?

运用

  • Ubuntu 12.04
  • Java OpenJDK 1.6
  • Jython Standalone 2.5.3 jar

jython virtualenv

5
推荐指数
0
解决办法
597
查看次数