小编Sam*_*amy的帖子

理解python 2.7和3.5+中的struct.pack

我试图理解;并解决,为什么会发生以下情况:

$ python
>>> import struct
>>> list(struct.pack('hh', *(50,50)))
['2', '\x00', '2', '\x00']
>>> exit()
$ python3
>>> import struct
>>> list(struct.pack('hh', *(50, 50)))
[50, 0, 50, 0]
Run Code Online (Sandbox Code Playgroud)

我知道这hh代表 2 条短裤。我知道这struct.pack是将两个整数(shorts)转换为c style struct. 但是为什么 2.7 中的输出与 3.5 有如此大的不同呢?

不幸的是,我python 2.7现在在这个项目上被困住了,我需要输出类似于来自python 3.5

回应 Some Programmer Dude 的评论

$ python
>>> import struct
>>> a = list(struct.pack('hh', *(50, 50)))
>>> [int(_) for _ in a]
Traceback (most recent call last):
  File "<stdin>", line …
Run Code Online (Sandbox Code Playgroud)

struct python-2.7 python-3.x

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

CloudFormation Magic 从账户 ID 列表生成 ARN 列表

在我的模板中,我将CommaDelimitedList帐户 ID 作为参数传递。

我希望做一些Fn::Join和/或Fn::Sub魔法来转换列表如下:

 "Accounts" : {
     "Type" : "CommaDelimitedList",
     "Default" : "12222234,23333334,1122143234,..."
}

To be used in the template as a list `root` ARN's as :
 [
   "arn:aws:iam::12222234:root"
   "arn:aws:iam::23333334:root"
   "arn:aws:iam::1122143234:root"
 ]
Run Code Online (Sandbox Code Playgroud)

现在我正在传递完整的 ARN,所以它正在工作,但它很笨拙。然而事实证明,CFN 内置函数很难做到这一点。

任何人都有这样的代码?

aws-cloudformation

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

找到Cloudera Manager HDFS配置文件

我已经通过Cloudera Manager安装了一个集群,现在我需要手动启动集群.

我一直在使用以下命令:

$ sudo -u hdfs hadoop namenode / datanode / jobtracker
Run Code Online (Sandbox Code Playgroud)

但随后dfs.name.dir就成立了/tmp.我似乎无法找到cloudera经理在哪里有HDFS配置文件.在那些/usr/lib/hadoop-02*/conf似乎是最小的.他们错过了dfs.name.dir我正在寻找的东西.顺便说一下,我在RHLE 6系统上.懒惰,我虽然可以复制cloudera经理的HDFS配置文件,所以我不必手动创建它们,将它们复制到6个节点:)

谢谢

hadoop cloudera cloudera-manager

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

在 Ansible 任务中运行 bash 命令

我正在将 a 移植Makefile到一系列 Ansible 任务中。make 文件中有这两行代码,当涉及到 ansible 时,它​​们让我感到困扰:

SERVERS := shell mysql "select hostname from servers"
EASY_INSTALL := wget https://bootstrap.pypa.io/ez_setup.py -O - | python
Run Code Online (Sandbox Code Playgroud)

首先,将动态vars用于 SERVERS 的值的适当 Ansible 方法是什么?服务器的价值将取决于环境,即阶段、生产等。

其次,我不想安装 python-setuptools 包,aptitude因为我过去除了问题之外什么都没有。那么如何wget使用 Ansible运行shell 命令呢?

python mysql ansible ansible-playbook

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

如何重构Django站点以便它可以扩展

根据以下Stack Overflow问题:Django会扩展吗?Django非常适合每天/每月预期成千上万用户的网络应用程序,但要实现这一目标,您必须拥有正确的设计.

现在我的方案如下:

我刚刚加入一家初创公司担任技术主管/首席开发人员,虽然我有两年的Django经验,但我从来没有将它用作大型应用程序.最新的大型应用程序我参与了使用Zope,并依靠SQL Server来处理缓存等(在我看来可怕的做法).鉴于这家创业公司现在只有6个月后才有大约20,000名用户,并且考虑到他们在雇用我的同时也聘请了营销专家,我可以预期(或者至少希望预期)增长机会.许多现有的Django代码都需要重构; 即使用静态html表单而不是ModelForm等.

我的问题是:当我重构这个应用程序时,我应该遵循哪些设计模式才能正确完成,这样我们可以扩展到每月100,000到500,000个用户?我应该注意哪些gottchas?在模型设计方面,什么是可扩展的模型设计?在数据库支持方面,什么样的数据库设置可以帮助我实现这种可扩展性?在负载平衡方面,哪种架构适合负载均衡?

我假设使用Django开箱即用,不会实现这一点,我不想发现自己处于某种情况,我需要请求聘请可扩展性专家...我也想知道什么是一些负载我可以用来测量当前性能/可扩展性的测试技术/工具?我只和他们待了几天,所以我还不确定产品环境,所以如果我觉得我需要改变产品环境,有什么好的选择(云解决方案),那个适当但实惠吗?

编辑:他们似乎也在使用Ajax,这让我很担心.假设我不能说服他们改变它,那些可以使用并且仍然可扩展的一些优秀的Ajax技术库(我知道django-dajax/dajaxice)是什么.

谢谢,

山姆

django ajax scalability load-balancing

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

一些JQuery代码快捷方式

我最近写了很多JQuery代码似乎重复了一遍,我想知道是否有以下快捷方式:

1)按名称选择多个元素,即

$("input[type=text][name=one][name=two][name=three]").live(); <-- is that correct syntax
Run Code Online (Sandbox Code Playgroud)

2)多个实时绑定,即

$("input[type=text]").live('blur and click',function(){});
Run Code Online (Sandbox Code Playgroud)

谢谢

编辑:

我也有这个用例,我想在多个元素上翻转显示,我在这个论坛上发现了这个,但我还没有测试过它.这是我的impl,我欢迎对策略的反馈

$("#btn_account_edit").live('click',function(){
    flip_display_on_off(
        $("#btn_account_edit_cancel, #btn_account_save, #account_edit_form"),
        $("#btn_account_edit, #account_edit_static"),
        false,true);
});
$("#btn_account_edit_cancel").live('click',function(){
    flip_display_on_off(
        $("#btn_account_edit_cancel, #btn_account_save, #account_edit_form"),
        $("#btn_account_edit, #account_edit_static"),
        true,false);
});
Run Code Online (Sandbox Code Playgroud)

   

function flip_display_on_off($element_set1,$element_set2,flip1,flip2) {
    var display1 = 'block' ? if flip1 : 'none';
    var display2 = 'none' ? if flip2 : 'block';
    for (i =0; i < element_set1.length; i++) {
        $element_set1[i].css('display',display1);
    }
    for (i =0; i < element_set2.length; i++) {
        $element_set2[i].css('display',display2);
     } 
}
Run Code Online (Sandbox Code Playgroud)

第二编辑: …

jquery

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

算法和复杂性书

所有,

我是一名中级python开发人员,拥有Web Technologies的硕士学位,虽然我认为自己是一个不错的程序员,但我总是遇到与算法复杂性相关的问题.

有人建议一本好书来解释如何推导算法的O表示法,以及可以使用哪些常见的复杂算法解决方案?

我目前正在阅读"鲍勃叔叔"清洁编码器:专业程序员的行为准则(值得一读,我强烈推荐),并在其中专门用一章解释如何在工作之外花费20个小时一周改进你的工艺是成为更好的程序员的唯一途径.所以我认为我会从算法复杂性开始,然后转向Big Table和Closure.

python algorithm complexity-theory

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

恢复已保存的TensorFlow模型以评估测试集

我看过一些关于恢复模型和导出图表的文档页面的帖子,但我想我错过了一些东西.TFGoogle

我使用此Gist中的代码来保存模型以及定义模型的此utils文件

现在我想恢复它并运行以前看不见的测试数据,如下所示:

def evaluate(X_data, y_data):
    num_examples = len(X_data)
    total_accuracy = 0
    total_loss = 0
    sess = tf.get_default_session()
    acc_steps = len(X_data) // BATCH_SIZE
    for i in range(acc_steps):
        batch_x, batch_y = next_batch(X_val, Y_val, BATCH_SIZE)

        loss, accuracy = sess.run([loss_value, acc], feed_dict={
                images_placeholder: batch_x,
                labels_placeholder: batch_y,
                keep_prob: 0.5
                })
        total_accuracy += (accuracy * len(batch_x))
        total_loss += (loss * len(batch_x))
    return (total_accuracy / num_examples, total_loss / num_examples)

## re-execute the code that defines the …
Run Code Online (Sandbox Code Playgroud)

conv-neural-network tensorflow

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

Python/Django和阿拉伯文档搜索应用程序

我在硕士学位日的信息检索方面有一些背景知识.现在我想把它用于构建一个用阿拉伯语书写的书的文档搜索应用程序.

我的主要工具是Django和PostgreSQL或MySQL,具体取决于此处发布的建议.

我在美国用Django开发了5年,但从未需要国际化或任何Unicode支持.所以我的问题是,我该如何处理阿拉伯语单词.

这是我的过程:

1)我有一些.html文件,其中包含阿拉伯语单词.我将构建一个解析器/ tokenizer/stemmer并存储到数据库

2)当用户输入一个单词进行搜索时,我会阻止它,并将其与我的数据库进行比较.

我需要帮助的是,如下:

1)词干/单词/行应该作为阿拉伯语单词存储在数据库中还是作为python unicode字符串存储

2)如果我将它们存储为阿拉伯语单词,那么更好,PostgreSQL或MySQL以及如何支持阿拉伯语.

3)如果我将它们存储为unicode字符串,django admin会将它们显示为阿拉伯语单词.因为如果是这样,那就足够了.此外,管理员可以支持阿拉伯语吗?即如果我想改变数据库中的某些内容,可以通过管理员完成.

4)如何让Django ORM支持存储解析器将吐出的阿拉伯语单词?

python django unicode information-retrieval arabic

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

跨多个 AWS 账户的一个 IAM 角色

出于安全原因,我们有一个预生产版和一个正式版 AWS 账户。我们现在开始使用 IAM 角色通过 django-storage / boto 进行 S3 访问 js/css 文件。

虽然这在每个帐户的基础上都可以正常工作,但现在 QA 实例需要访问产品帐户上的一个 S3 存储桶的需求增加了。

有没有一种方法可以让一个 IAM 角色可以授予对 pre-prod 和 prod S3 存储桶的访问权限?正如我所写的,这似乎是不可能的,但它从来没有心去问!

django amazon-s3 amazon-web-services

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

在numpy中实现零均值和单位方差

我得到了一个函数的定义,并要求实现如下:

# Problem 1 - Apply zero mean and zero variance scale to the image features
def normalize(data):
    pass
Run Code Online (Sandbox Code Playgroud)

然后提供单元测试使用numpy它将断言我的实现成功

编辑

不是我的单元测试,而是由课程讲师分配.

np.testing.assert_array_almost_equal(
    normalize(np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])),
    np.array([-0.4, -0.3, -0.2, -0.099, 0.0, 0.099, 0.199, 0.3, 0.4, 0.5]),
    decimal=3)
Run Code Online (Sandbox Code Playgroud)

我的解决方案是

def normalize(data):
    return ((data - data.mean()) / data.max() - data.min())
Run Code Online (Sandbox Code Playgroud)

但是我的理解肯定存在差距,因为我得到了

AssertionError: 
Arrays are not almost equal to 3 decimals

(mismatch 100.0%)
 x: array([-1.45, -1.35, -1.25, -1.15, -1.05, -0.95, -0.85, -0.75, …
Run Code Online (Sandbox Code Playgroud)

python numpy machine-learning normalization

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

检查python列表的最佳和有效方法

上周我在接受采访时被问到这个问题,我没有答案(反正的答案).比如你有一个列表A,其中包含以下元素[1,3,5,7,9,10]然后你有列表B,它有以下元素:[3,4,5,6,7],并且您想知道列表B中的哪些元素在列表A中.我的答案是:

for item in listA:
    for item1 in listB:
        if item1 == item:
            put item1 in some third list
Run Code Online (Sandbox Code Playgroud)

但我知道这很糟糕,因为说listA是一百万个元素,而listB是十万个,这个解决方案只是垃圾.

没有迭代两个列表,实现这样的事情的最佳方法是什么?

python performance

0
推荐指数
1
解决办法
280
查看次数