小编Naf*_*Kay的帖子

使用LXML编写XML标头

我目前正在编写一个脚本,将一堆XML文件从各种编码转换为统一的UTF-8.

我首先尝试使用LXML确定编码:

def get_source_encoding(self):
    tree = etree.parse(self.inputfile)
    encoding = tree.docinfo.encoding
    self.inputfile.seek(0)
    return (encoding or '').lower()
Run Code Online (Sandbox Code Playgroud)

如果那是空白的,我尝试从chardet以下方面获取:

def guess_source_encoding(self):
    chunk = self.inputfile.read(1024 * 10)
    self.inputfile.seek(0)
    return chardet.detect(chunk).lower()
Run Code Online (Sandbox Code Playgroud)

然后我codecs用来转换文件的编码:

def convert_encoding(self, source_encoding, input_filename, output_filename):
    chunk_size = 16 * 1024

    with codecs.open(input_filename, "rb", source_encoding) as source:
        with codecs.open(output_filename, "wb", "utf-8") as destination:
            while True:
                chunk = source.read(chunk_size)

                if not chunk:
                    break;

                destination.write(chunk)
Run Code Online (Sandbox Code Playgroud)

最后,我正在尝试重写XML标头.如果最初是XML标头

<?xml version="1.0"?>
Run Code Online (Sandbox Code Playgroud)

要么

<?xml version="1.0" encoding="windows-1255"?>
Run Code Online (Sandbox Code Playgroud)

我想把它变成

<?xml version="1.0" encoding="UTF-8"?>
Run Code Online (Sandbox Code Playgroud)

我目前的代码似乎不起作用:

def edit_header(self, input_filename):
    output_filename = …
Run Code Online (Sandbox Code Playgroud)

python xml lxml elementtree

6
推荐指数
1
解决办法
4280
查看次数

有没有办法在运行时重新映射用户 ID?

我有一个容器,它创建了一个默认用户,其 UID 为 1000。

在我的 Dockerfile 中,我正在创建用户:

RUN groupadd sudo && useradd -G sudo -u 1000 -U ${RUST_USER}
Run Code Online (Sandbox Code Playgroud)

现在,当我运行容器时,除非我当前用户的 UID 正好为 1000,否则卷权限会混乱:

docker run -it --rm naftulikay/circleci-lambda-rust:latest \
    -v $PWD:/home/circleci/project \
    .local/bin/build
Run Code Online (Sandbox Code Playgroud)

在运行时:

error: failed to write /home/circleci/project/Cargo.lock

Caused by:
  failed to open: /home/circleci/project/Cargo.lock

Caused by:
  Permission denied (os error 13)
Exited with code 101
Run Code Online (Sandbox Code Playgroud)

这是因为容器内的用户的 UID 为 1000,容器外的用户的 UID 为 1001。

我想,由于这已经是内核命名空间的所有虚拟映射,因此可以将内部 UID 映射到容器中的外部 UID。

是否有命令行选项允许我根据需要动态重新映射 UID?

docker

6
推荐指数
1
解决办法
2810
查看次数

服务器出错(NotAcceptable):未知

昨天,我构建了一个功能齐全的示例,使用Terraform在Google Cloud Platform中创建网络和GKE集群.整个事情的流浪运行在一个CentOS 7虚拟机,同时安装gcloud,kubectlhelm.我还扩展了示例以使用Helm来安装Spinnaker.

调用GKE集群gke-test-1.在我的文档中,我记录了kubectl设置:

gcloud container clusters get-credentials --region=us-west1 gke-test-1
Run Code Online (Sandbox Code Playgroud)

在此之后,我能够使用各种kubectl命令get nodes,get pods,get services,和get deployments,以及所有其它集群管理命令.我还能够使用Helm安装Tiller并最终部署Spinnaker.

但是,今天,同样的过程对我不起作用.我启动了网络,子网,GKE集群和节点池,每当我尝试使用命令获取各种资源时,我都会得到以下响应:

[vagrant@katyperry vagrant]$ kubectl get nodes
No resources found.
Error from server (NotAcceptable): unknown (get nodes)
[vagrant@katyperry vagrant]$ kubectl get pods
No resources found.
Error from server (NotAcceptable): unknown (get pods)
[vagrant@katyperry vagrant]$ kubectl get services
No resources found.
Error …
Run Code Online (Sandbox Code Playgroud)

kubernetes google-kubernetes-engine kubectl

6
推荐指数
1
解决办法
4770
查看次数

通过 CloudFront 通过签名 URL 上传到 S3?

我有使用 S3 源的 CloudFront。如果可能,我希望能够通过 CloudFront 分配生成用于将值上传到 S3 的签名 URL。

我一直在研究文档,但没有找到任何关于此的内容。我想只要传递查询参数,但情况是这样吗?

不是重复的:我正在使用签名 URL。

amazon-web-services amazon-cloudfront

6
推荐指数
1
解决办法
1665
查看次数

如何在Java中创建Fibonacci序列

我真的很厌倦数学.我的意思是,我真的很喜欢数学.我正在尝试为我将使用的算法制作一个简单的斐波那契序列类.我见过python示例,看起来像这样:

a = 0
b = 1
while b < 10:
    print b
    a, b = b, b+a
Run Code Online (Sandbox Code Playgroud)

问题是我无法用任何其他语言实现这项工作.我想让它在Java中工作,因为我几乎可以将它翻译成我在那里使用的其他语言.这是一般的想法:

    public class FibonacciAlgorithm {

    private Integer a = 0;

    private Integer b = 1;

    public FibonacciAlgorithm() {

    }

    public Integer increment() {
        a = b;
        b = a + b;
        return value;
    }

    public Integer getValue() {
        return b;
    }
}
Run Code Online (Sandbox Code Playgroud)

我最终得到的只是倍增,我可以用乘法来做:(任何人都可以帮助我吗?数学让我感到高兴.

python java

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

Python 中的跨平台音频播放

是否有用于音频播放的跨平台 Python 库?我的目标操作系统是(按重要性排序)Windows、Linux 和 Mac OSX。需要支持的文件格式是(按重要性排序)MP3、OGG、WAV 和 FLAC。这样的事情存在吗?

我尝试了一些可用的 Python 库,例如 Snack、PyMedia、PyGame 等。我无法编译 PyMedia,Snack 不会播放音频,PyGame 也不会播放音频。我使用的是 Linux:Ubuntu 9.10。

python linux windows audio macos

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

限制Java的上传速度?

我想以编程方式限制Java中的上传或下载操作.我会假设我需要做的就是检查上传的速度和插入方式Thread.sleep(),如下所示:

while (file.hasMoreLines()) {
    String line = file.readLine();
    for (int i = 0; i < line.length(); i+=128) {
        outputStream.writeBytes(line.substr(i, i+128).getBytes());
        if (isHittingLimit())
            Thread.sleep(500);
    }
}
Run Code Online (Sandbox Code Playgroud)

上面的代码会起作用吗?如果没有,有更好的方法吗?有没有一个描述这个理论的教程?

java theory network-programming bandwidth-throttling

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

我应该在版本控制中保持我的南迁移吗?

我不确定我是否应该保留它们.我south目前使用的主要原因是为了简化模型的开发变更,尽管我认为它在我投入生产时会派上用场.我应该在我的Git存储库中保留本地开发迁移吗?

django version-control django-south

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

为什么我要使用非关系数据库?

数据库中的最新热点似乎集中在非关系数据库上.为什么?这似乎适得其反.例如,以关系方式表达我的数据对我来说更有意义(Django + SQL中的表示例代码):

class Post(models.Model):
    name = models.CharField()
    created = models.DateTimeField(auto_now_create = True)

class Comment(models.Model):
    text = models.TextField()
    post = models.ForeignKey('Post')
    created = models.DateTimeField(auto_now_create = True)
Run Code Online (Sandbox Code Playgroud)

SQL:

create table post (id int primary key auto_increment,
        name varchar,
        created datetime);

create table comment(id int primary key auto_increment,
        text text,
        post_id int,
        created datetime,
        foreign key post_id references post(id));
Run Code Online (Sandbox Code Playgroud)

SQL的强大之处在于这些信息中可以表示 这么多的方式.当然,存在整个对象关系映射问题,但我将其视为一个特征,而不是一个问题.使用SQL,我可以获取比昨天更早的给定帖子的所有不同注释,将所有这些注释整理在一起,并生成统计信息.可以为非关系数据库做同样的事情吗?

使用非关系数据库(如MongoDB)似乎也会影响性能,因为您会立即获取整个对象图,而不是您最不需要的对象图.

有人可以向我解释使用非关系数据库的好处是什么?

database non-relational-database relational-database

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

EC2用于视频编码

我有一项潜在的工作,需要我用FFMPEG和x264进行一些视频编码。我将有一系列文件,需要对它们进行一次编码,然后才能将实例关闭。由于我不确定x264和FFMPEG的资源利用率,应该获得哪种实例?我在想

高CPU超大型实例

7 GB的内存
20个EC2计算单元(8个虚拟内核,每个虚拟内核具有2.5个EC2计算单元)
1690 GB的实例存储
64位平台
I / O性能:高
API名称:c1.xlarge

或者,或者

集群GPU四重超大型实例

22 GB内存
33.5 EC2计算单元(2个Intel Xeon X5570,四核“ Nehalem”架构)
2个NVIDIA Tesla“ Fermi” M2050 GPU
1690 GB的实例存储
64位平台
I / O性能:很高(10千兆以太网)
API名称:cg1.4xlarge

我应该使用什么?x264 / FFMPEG在更快/更多的CPU上是否表现更好,还是真的使GPU更强大?无论如何,似乎Cluster GPU似乎是性能更高的实例。我该怎么选?

ffmpeg amazon-ec2 video-encoding x264

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