小编dav*_*off的帖子

为什么OAuth v2同时具有访问权限和刷新令牌?

OAuth 2.0协议草案的4.2节指出授权服务器可以返回a access_token(用于向资源验证自己)以及a refresh_token,它纯粹用于创建新的access_token:

https://tools.ietf.org/html/rfc6749#section-4.2

为什么两者都有?为什么不只是做到access_token最后只要refresh_token没有refresh_token

security oauth access-token refresh-token

603
推荐指数
11
解决办法
20万
查看次数

HTML标记上的非标准属性.好事?坏事?你的意见?

HTML(或者只是XHTML?)在标签上的非标准属性方面相对严格.如果它们不是规范的一部分,那么您的代码将被视为不符合规范.

然而,非标准属性对于将元数据传递给Javascript非常有用.例如,如果假设链接显示弹出窗口,则可以在属性中设置弹出窗口的名称:

<a href="#null" class="popup" title="See the Popup!" 
   popup_title="Title for My Popup">click me</a>
Run Code Online (Sandbox Code Playgroud)

或者,您可以将弹出窗口的标题存储在隐藏元素中,例如span:

<style>
    .popup .title { display: none; }
</style>
<a href="#null" title="See the Popup!" class="popup">
    click me
    <span class="title">Title for My Popup</span>
</a>
Run Code Online (Sandbox Code Playgroud)

然而,我应该是一个优选的方法.第一种方法更简洁,我猜测,并没有像搜索引擎和屏幕阅读器一样多.相反,第二种选择使得存储大量数据更容易,因此更加通用.它也符合标准.

我很好奇这个社区的想法是什么.你怎么处理这样的情况?第一种方法的简单性是否超过潜在的缺点(如果有的话)?

html javascript standards

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

我应该返回None还是(None,None)?

我们有一个返回城市/州元组的对象方法,即('Boston', 'MA').在某些有效情况下,没有有效的城市/州返回.在风格上,返回更有意义None,还是(None, None)在这种情况下包含两元素元组?

python coding-style python-3.x

54
推荐指数
5
解决办法
3840
查看次数

在Python守护程序中维护日志记录和/或stdout/stderr

我在Python中创建守护进程的每个配方都涉及两次(对于Unix),然后关闭所有打开的文件描述符.(有关示例,请参阅http://www.jejik.com/articles/2007/02/a_simple_unix_linux_daemon_in_python/).

这很简单,但我似乎有一个问题.在我正在设置的生产机器上,我的守护程序正在中止 - 因为所有打开的文件描述符都已关闭,所以它是静默的.我正在调试当前问题的棘手时间,并且想知道捕获和记录这些错误的正确方法是什么.

设置日志记录的正确方法是什么,以便在守护进程后继续工作?logging.basicConfig()在守护进程后我第二次打电话吗?什么是捕捉到正确的方式stdoutstderr?我对所有文件关闭的细节很模糊.理想情况下,我的主要代码可能只是调用daemon_start(pid_file)和日志记录将继续工作.

python logging fork daemon

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

在设计师和工程师之间平衡HTML/CSS

我有一个开发过程问题.

背景:我在一个规模适中的网站工作,历史上,设计师创建了他们想要的页面和组件的模型/截图,工程团队(包括我自己)将它们变成了html/css.

从代码清洁度的角度来看,这种方法相对较好,并且在编写javascript时有很大帮助.但是,它有助于保持从一个页面/组件到另一个页面/组件的一致性.在一个页面上,标题字体可能是12px而另一页是11px,主要是因为它是一个复杂的网站,有很多要跟踪的(我们已经通过4位设计师循环.)我们只有几个真正的通用样式,它们只有当工程师认出风格时使用 - 而不是在设计师告诉他们的时候.

我们最近的设计师是一个相对强大的HTML/CSS编码器.我们认为我们可能让他在HTML/CSS中创建模型并将代码交给我们进行快速集成.我们希望设计师能够更好地保持他的风格,并且可以为我们节省一些开发时间.

我们发现的是,我们的设计师并不像我们希望的那样优秀,而且他的代码经常略显臃肿,与我们需要做的事情不相容.此外,他的编码风格与工程团队的其他部分根本不同,并且对我们既定的编码实践并没有非常好的评价.

问题:如何实现从设计到工程的交接?我知道我听说过让他们的设计团队完成所有模板编码的公司,但我很好奇它是如何工作的.设计团队是否在这些场景中实际包含了工程团队的成员?

正如我们现在的结构,我们没有机会让我们的设计师编写最终模板并将其检入SVN,即使他是一个熟练的HTML wiz.模板中有太多需要知道我们的代码库和潜在性能问题的知识.

我们如何让这个过程有效?这是个梦想吗?

html css process

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

Python的多处理功能不能很好地使用threading.local?

我有两个进程(参见示例代码),每个进程都尝试访问threading.local对象.我希望下面的代码打印"a"和"b"(按任意顺序).相反,我得到"a"和"a".当我启动整个新进程时,如何优雅而强大地重置threading.local对象?

import threading
import multiprocessing
l = threading.local()
l.x = 'a'
def f():
    print getattr(l, 'x', 'b')
multiprocessing.Process(target=f).start()
f()
Run Code Online (Sandbox Code Playgroud)

编辑:作为参考,当我使用threading.Thread而不是multiprocessing.Process时,它按预期工作.

python multithreading multiprocessing python-multithreading

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

Memcached的LRU实际意味着什么?

Memcached说它使用一个LRU队列进行驱逐(有一些基于平板大小混合的规则.)当他们说最近最少使用时,他们是指最近最少存储或最近读取的?他们的文件似乎含糊不清.

memcached lru

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

使用Tornado和Pika进行异步队列监控

我有一个AMQP服务器(RabbitMQ),我想在Tornado Web服务器上发布和读取.为此,我想我将使用异步amqp python库; 特别是Pika(据称支持龙卷风的变种).

我编写的代码似乎成功地从队列中读取,除了在请求结束时,我得到一个异常(浏览器返回正常):

[E 101219 01:07:35 web:868] Uncaught exception GET / (127.0.0.1)
    HTTPRequest(protocol='http', host='localhost:5000', method='GET', uri='/', version='HTTP/1.1', remote_ip='127.0.0.1', remote_ip='127.0.0.1', body='', headers={'Host': 'localhost:5000', 'Accept-Language': 'en-us,en;q=0.5', 'Accept-Encoding': 'gzip,deflate', 'Keep-Alive': '115', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'User-Agent': 'Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.13) Gecko/20101206 Ubuntu/10.10 (maverick) Firefox/3.6.13', 'Accept-Charset': 'ISO-8859-1,utf-8;q=0.7,*;q=0.7', 'Connection': 'keep-alive', 'Cache-Control': 'max-age=0', 'If-None-Match': '"58f554b64ed24495235171596351069588d0260e"'})
    Traceback (most recent call last):
      File "/home/dave/devel/lib/python2.6/site-packages/tornado/web.py", line 810, in _stack_context
        yield
      File "/home/dave/devel/lib/python2.6/site-packages/tornado/stack_context.py", line 77, in StackContext
        yield
      File "/usr/lib/python2.6/contextlib.py", line …
Run Code Online (Sandbox Code Playgroud)

python asynchronous tornado amqp rabbitmq

8
推荐指数
2
解决办法
5809
查看次数

让SVG在HTML页面中保持它的纵横比

我有下面的HTML.我创建了一个SVG,其视图框为100x100.渲染时(在Chrome中)svg渲染为200px宽(好)但高约500px,文本被推离页面底部.使我的窗口更大或更小没有影响 - SVG相应地增加或缩小高度.

为什么svg没有以任何方式限制高度?有没有办法让它自动保持1:1的宽高比?SVG 内部的内容很好 - 它可以适当缩放.这引起了一些重大问题

<html>
  <head>
    <title>SVG Ahoy</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
  </head>
  <body>
    <div style="width: 200px;">
      <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" 
          preserveAspectRatio="xMinYMin meet" version="1.1"></svg>
      <div>content below</div>
    </div>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

html svg

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

为什么使用属性而不是方法可以提高Python速度的显着提升

我一直在尝试一个模式匹配的类.我的班级看起来像这样:

class Matcher(object):
  def __init__(self, pattern):
    self._re = re.compile(pattern)

  def match(self, value):
    return self._re.match(value)
Run Code Online (Sandbox Code Playgroud)

总而言之,我的脚本需要大约45秒才能运行.作为实验,我将代码更改为:

class Matcher(object):
  def __init__(self, pattern):
    self._re = re.compile(pattern)
    self.match = self._re.match
Run Code Online (Sandbox Code Playgroud)

这个脚本的运行耗时37秒.无论我重复这个过程多少次,我都会看到同样显着的性能提升.通过cProfile运行它显示如下:

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
 46100979   14.356    0.000   14.356    0.000 {method 'match' of '_sre.SRE_Pattern' objects}
 44839409    9.287    0.000   20.031    0.000 matcher.py:266(match)
Run Code Online (Sandbox Code Playgroud)

为什么地球上的匹配方法在运行时增加了9.2秒?最令人沮丧的部分是我试图重新创建一个简单的案例而无法这样做.我在这里错过了什么?我的简单测试用例有一个bug!现在它模仿我所看到的行为:

import re
import sys
import time

class X(object):
  def __init__(self):
    self._re = re.compile('.*a')

  def match(self, value):
    return self._re.match(value)

class Y(object):
  def __init__(self):
    self._re = re.compile('ba')
    self.match = self._re.match …
Run Code Online (Sandbox Code Playgroud)

python regex performance

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