小编roc*_*eys的帖子

我什么时候应该在python中使用uuid.uuid1()和uuid.uuid4()?

我从文档中了解了两者之间的差异.

uuid1():
从主机ID,序列号和当前时间生成UUID

uuid4():
生成随机UUID.

因此uuid1使用机器/序列/时间信息来生成UUID.使用每个的利弊是什么?

我知道uuid1()可以有隐私问题,因为它基于机器信息.我想知道在选择其中一个时是否更加微妙.我uuid4()现在就用,因为它是一个完全随机的UUID.但我想知道我是否应该用它uuid1来减少碰撞的风险.

基本上,我正在寻找人们关于使用一个与另一个的最佳实践的提示.谢谢!

python uuid

197
推荐指数
6
解决办法
9万
查看次数

我如何逐行分析Python代码?

我一直在使用cProfile来分析我的代码,它一直很好用.我还使用gprof2dot.py来显示结果(使其更清晰).

但是,cProfile(以及到目前为止我见过的大多数其他Python分析器)似乎只在函数调用级别进行分析.当从不同的地方调用某些函数时,这会引起混淆 - 我不知道呼叫#1或呼叫#2是否占用了大部分时间.当所讨论的函数深度为六级时,这会变得更糟,从其他七个地方调用.

如何进行逐行分析?

而不是这个:

function #12, total time: 2.0s
Run Code Online (Sandbox Code Playgroud)

我想看到这样的事情:

function #12 (called from somefile.py:102) 0.5s
function #12 (called from main.py:12) 1.5s
Run Code Online (Sandbox Code Playgroud)

cProfile确实显示了总共有多少时间"转移"到父级,但是当你有一堆层和互连的调用时,这种连接又会丢失.

理想情况下,我希望有一个GUI来解析数据,然后向我显示我的源文件,每个行的总时间.像这样的东西:

main.py:

a = 1 # 0.0s
result = func(a) # 0.4s
c = 1000 # 0.0s
result = func(c) # 5.0s
Run Code Online (Sandbox Code Playgroud)

然后我就可以点击第二个"func(c)"调用来查看该调用中占用的时间,与"func(a)"调用分开.

那有意义吗?是否有任何分析库收集此类信息?我错过了一些很棒的工具吗?

python profiling line-by-line

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

有没有办法证明 - 使用CSS对齐浮动HTML元素?

本质上,我试图实现"text-align:justify"的影响,但是使用浮动块元素.我有很多块我想证明 - 对齐.

IE浏览器.每条线的水平间距不同,以确保每条线的长度相同.(非粗糙的右边缘).

有没有办法用CSS做到这一点?如果没有,是否有合适的JS库来实现这一目标?或者这是不可行的?

css alignment justify css-float

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

如何在Firefox中调试错误的SVG解析?(即错误控制台中的"意外值X解析Y属性")

摘要:

我想看到更详细的XML/SVG解析错误消息.我想知道错误发生在哪里.我怎样才能做到这一点?

背景:

我在Firefox中使用一些复杂的javascript生成的SVG.正如我正在开发的那样,有时在搜索大的时候我会看到Firefox错误控制台(或firebug)中的错误"意外的值NaN解析y属性".这很清楚.但是,没有行号,Firebug中没有显示代码 - 基本上无法追踪此错误发生的位置.

使用简单的JS,这是一个跟踪坏代码的问题.然而,随着我的JS变得越来越复杂,我真的需要能够看到数百个潜在行中的哪一行导致了这一点.

理想情况下,我希望看到此解析错误的方式与我看到JS错误或HTML错误的方式相同:

Unexpected value NaN parsing y attribute.
Line 103:    svgElement.setAttribute('x', some_bad_js_variable);
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?即使知道哪个SVG元素受到影响也会有所帮助,除了"某处出现错误"之外的任何内容.谢谢!

firefox svg parsing

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

当搜索文本包含感叹号(!),&符号(&)等时,IMAP"搜索标题"命令失败

我通过python访问GMail的IMAP接口.我运行这样的命令:

UID SEARCH HEADER Message-ID "abcdef@abc.com"
Run Code Online (Sandbox Code Playgroud)

成功(返回匹配消息的1个UID,如果不存在则返回0).但是,如果搜索文本包含某些字符(例如&或!),则会在该点截断搜索文本.这意味着:

UID SEARCH HEADER Message-ID "!abcdef@abc.com"
Run Code Online (Sandbox Code Playgroud)

被对待是一样的

UID SEARCH HEADER Message-ID ""
Run Code Online (Sandbox Code Playgroud)

也:

UID SEARCH HEADER Message-ID "abc!def@abc.com"
Run Code Online (Sandbox Code Playgroud)

被视为:

UID SEARCH HEADER Message-ID "abc"
Run Code Online (Sandbox Code Playgroud)

我已经完成了IMAP语言规范,而且从ABNF语言规范来看,这些字符似乎应该是有效的.为什么gmail会在"!"处截断这些搜索短语 和"&"字符?有办法逃脱他们吗?(我试过了!,作为一个编码严重的字符串失败了).是否有RFC或doc显示真正应该接受的内容?这是gmail的imap实现中的错误吗?

我也试过文字格式,结果相同:

UID SEARCH HEADER Message-ID {15}
abc!def@abc.com
Run Code Online (Sandbox Code Playgroud)

仍被视为:

UID SEARCH HEADER Message-ID {3}
abc
Run Code Online (Sandbox Code Playgroud)

谢谢!

IMAP RFC3501搜索命令:http ://tools.ietf.org/html/rfc3501#section-6.4.4 正式语法:http://tools.ietf.org/html/rfc3501#section-9

search gmail imap

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

在javascript中从.NET/Razor解析本地化数字的最佳方法是什么?

我有一个.NET应用程序,允许用户选择自己的语言和文化(日期/数字格式).他们的文化背景存储在Thread.CurrentThread.CurrentCulture(也是 Thread.CurrentThread.CurrentUICulture,但这是一个单独的问题).

当我通过Razor打印var时,它以本地化格式显示:

<span>@bignum</span> (renders as "123.456" or "123,456")
Run Code Online (Sandbox Code Playgroud)

但是,我还需要将一些.NET变量传递给Javascript:

var js_bignum = @bignum;
Run Code Online (Sandbox Code Playgroud)

问题是在这种情况下Javascript不理解这些数字的本地化版本,因此它失败,因为上面的语句变为:

var js_bignum = 123,456;
Run Code Online (Sandbox Code Playgroud)

这可能是因为用户的浏览器文化设置与用户的webapp文化设置不同.无论如何,这是我们需要能够处理的情况.

那么最简单的处理方法是什么?我可以创建自己的Javascript ConvertToStandardNumberFormat(),从.NET获取字符串值并返回"标准"数字格式,但这似乎有点像黑客.有没有办法强制.NET/razor呈现非本地化的格式编号?

var js_bignum = @price.ToUnlocalizedFormat();  (Is there something like this?)
Run Code Online (Sandbox Code Playgroud)

我只是想弄清楚这种情况的最佳实践是什么.

谢谢!

.net javascript localization numbers

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

何时重用 docker-compose 即时卷与重新创建?

我有一个这样的 docker-compose.yml:

version: '2'
services:
  app:
    build: .
    volumes:
      - /usr/src/app
Run Code Online (Sandbox Code Playgroud)

如果我这样做docker-compose up,那么我对 /usr/src/app 所做的任何更改都会在运行中保持不变。可以control+C然后docker-compose up,内容还在。

但如果我这样做docker-compose run app ls -la /usr/src/app,那么路径总是空的。

我的目标是,我希望该卷 1) 自动为我自动创建,2) 特定于这个 docker-compose 项目(因为我会有很多其他项目),并且 3) 在 docker-compose up 中持续存在/运行/等。

我认为解决这个问题的一种方法是使用命名卷,它会自动提取我的 docker-compose 项目的名称。

但是对于动态容器,这是预期的行为吗?它们会自动持续存在docker-compose up,并为每个docker-compose run?

另外,是否有任何文档明确了动态容器的生命周期?

谢谢!

volumes docker-compose

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