小编buk*_*zor的帖子

JSON指定"任何UNICODE字符"?

也许这只是我对unicode的不熟悉,所以如果我弄错了,请纠正我.

看看http://json.org/,规范说一个字符串可以包含"任何UNICODE字符",但这让我很困惑.

  • JSON是一种通信格式正确吗?在它的核心,一切都必须转化为字节.
  • 相比之下,UNICODE是一种逻辑格式,必须进行编码才能传输它,对吧?

那他们的意思是什么?

unicode encoding json

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

Ubigraph的免费替代品

我正在尝试使用Ubigraph及其xml-rpc接口生成大型图形可视化.然而,Ubigraph的xmlRPC服务器不够快,无法处理我的python代码生成的调用率,并冻结.我已经尝试了网站上列出的所有性能提示无济于事.直接包装器在Ubigraph的免费版本中不可用,因此我的问题是:Ubigraph中是否有任何Free(如语音)替代品?

python visualization graph

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

剥去一个冗长的python正则表达式

我有一个详细的python正则表达式字符串(有很多空格和注释),我想转换为"正常"样式(导出到javascript).特别是,我需要这个非常可靠.如果有任何明显正确的方法来做到这一点,那就是我想要的.例如,一个天真的实现会破坏正则表达式r' \# # A literal hash character',这是不行的.

这样做的最好方法是强制python re模块给我一个非正规表示我的正则表达式,但我没有看到这样做的方法.

python regex

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

crossObserver 只触发一次

我正在尝试使用新的 Intersection Observer API,但我只能触发一次它的事件。我相信我使用它是正确的,因为我几乎是逐字逐句地使用MDN 示例

https://jsfiddle.net/bukzor/epuwztn0/106/

function startObserver() {
  // Almost verbatim from MDN docs:
  //   https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API
  let options = {
    root: document.querySelector('#svg'),
    rootMargin: '0px',
    threshold: 0.50,
  }

  let observer = new IntersectionObserver(onIntersection, options);

  let target = document.querySelector('circle');
  observer.observe(target);
}

function onIntersection(entries, observer) {
  // Simply log all intersectiono entries.
  console.log(observer)
  console.log("intersections:")
  entries.forEach(function(entry) {
    console.log(entry)
    // This code is just a wild guess, but it still won't fire a second time.
    observer.observe(entry.target)
  })
}
Run Code Online (Sandbox Code Playgroud)

当我运行它时,我在控制台中只有一个条目,而没有其他条目。它提到的零大小矩形,isVisible: false似乎是其他症状,但我一直无法找到原因。 …

javascript dom intersection-observer

7
推荐指数
0
解决办法
2377
查看次数

sqlite元组比较

试着和这个问题做同样的事情,但这次是在sqlite中.在我当前的应用程序中,我需要能够执行此类查询:

SELECT First, Last, Score
FROM mytable
WHERE
    ('John',  'Jordan',  5) <= (First, Last, Score )
    AND (First, Last, Score) <= ('Mike',  'Taylor',  50) 
ORDER BY First, Last, Score
LIMIT 1
Run Code Online (Sandbox Code Playgroud)

并得到('Liz', 'Jordan', 2)这个数据的答案:

+-------+---------+-------+
| First | Last    | Score |
+-------+---------+-------+
| Liz   | Jordan  |     2 |
| John  | Jordan  |     2 |
| Liz   | Lemon   |    10 |
| Mike  | Taylor  |   100 |
| John  | Jackson | …
Run Code Online (Sandbox Code Playgroud)

sql sqlite row-value-expression

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

Haskell:自动解糖语法

在Haskell中是否有任何函数,在给定Haskell语法输入的情况下,返回一个等效表达式,并扩展所有语法糖?

例如,在Clojure中,我可以传递'a给读者,它将返回(quote a),这有助于我了解这'只是quote函数的含糖形式.

haskell clojure

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

python的基础元类:纯粹的python模拟?

我真的不明白基础元类是如何工作的(又名type).有没有人知道它的功能的纯python模拟?

python文档经常为C级代码执行此操作,这些代码很难用英语完全描述(例如,请参阅解释__getattribute__),但不适用于type.

我知道怎么开始.由于定义type使用类型的子类的行为有点像说"类型工作方式类型工作",我定义了一个鸭类型元类.它有些功能,但还不够.

class MetaClassDuck(object):
    @classmethod
    def __new__(self, mcs, name, bases, attrs):
        """Create a new class object."""
        newcls = super(MetaClassDuck, self).__new__(mcs)
        newcls.__dict__.update(attrs)
        newcls.__name__ = name
        newcls.__bases__ = bases
        return newcls

    def __call__(cls, *args, **kwargs):
        """Calling a class results in an object instance."""
        ###########################################################
        # Fill in the blank:
        # I don't see a way to implement this without type.__new__
        ###########################################################
        return newobj

class MyClass(object):
    __metaclass__ = MetaClassDuck

    one = 1
    _two …
Run Code Online (Sandbox Code Playgroud)

python metaclass

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

tox下的测试不一定使用已安装的代码

tox网站上列出的第一个功能是"使用不同的Python版本和解释器正确检查您的软件包安装".这让我觉得,如果我搞砸了我的setup.py,测试将无法通过,我会被警告我的setup.py已经坏了.

事实并非如此.事实上,如果您遵循将模块或包放在与tox.ini相同的目录中的通常模式,则代码将从本地目录(aka {toxinidir})导入.这意味着你可以让你的setup.py绝对没有任何东西,tox会告诉你它的罚款.那时,在你推到pypi并尝试使用之前,很容易就不会注意到这个问题.这是我想要防止的问题.

主要问题是在测试期间空字符串出现在sys.path上.Python将此解释为当前工作目录并从那里导入.

有没有办法配置tox,以便在测试期间不使用本地目录?

目前我的解决方法是cd {envtmpdir} && coverage run && mv .coverage {toxinidir},但这显然是一个丑陋的黑客.

在这里,我提供了两个版本的代码:

我的目标是找到一个避免上述问题的tox配置,并且足够合理,建议在所有项目中使用.

python tox

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

taint-mode perl:通过 system() 运行外部程序时保留 suid

我正在尝试向旧脚本添加一项功能。该脚本是 suid,并使用 perl -T(污点模式:man perlsec),以提高安全性。我需要添加的功能是用Python实现的。

问题是我无法说服 perlsec 保留 suid 权限,无论我如何清理环境和命令行。

这很令人沮丧,因为它保留了其他二进制文件(例如 /bin/id)的 suid。/usr/bin/perl 是否有未记录的特殊情况?这似乎不太可能。

有谁知道如何进行这项工作?(按原样:我们没有资源来重新构建整个事情。)


解决方案:(根据@gbacon)

# use the -p option to bash
system('/bin/bash', '-p', '-c', '/usr/bin/id -un');

# or set real user and group ids
$< = $>;
$( = $);
system('/usr/bin/python', '-c', 'import os; os.system("/usr/bin/id -un")');
Run Code Online (Sandbox Code Playgroud)

这给出了期望的结果!


这是我的脚本的精简版本,它仍然显示了我的问题。

#!/usr/bin/perl -T
## This is an SUID script: man perlsec
%ENV = ( "PATH" => "" );

##### PERLSEC HELPERS #####
sub tainted (@) {
    # Prevent …
Run Code Online (Sandbox Code Playgroud)

bash perl suid taint suexec

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

bash:评论一条长管道

我发现在bash脚本中创建长流水线非常强大,但我看到的主要缺点是似乎没有办法插入注释.

例如,是否有一种向此脚本添加注释的好方法?

#find all my VNC sessions
ls -t $HOME/.vnc/*.pid                  \
    | xargs -n1                         \
    | sed 's|\.pid$||; s|^.*\.vnc/||g'  \
    | xargs -P50 --replace vncconfig -display {} -get desktop \
    | grep "($USER)"                    \
    | awk '{print $1}'                  \
    | xargs -n1 xdpyinfo -display       \
    | egrep "^name|dimensions|depths"
Run Code Online (Sandbox Code Playgroud)

bash comments pipeline sh

5
推荐指数
2
解决办法
1025
查看次数