小编Har*_*wEm的帖子

JQuery函数的持久性

我正在尝试为HTML设置一个点击回调,导致另一个节点变得可见.在此过程中,我惊讶地发现以下两个陈述不相同:

$("#title").click($("#content").toggle);
$("#title").click(function() {
    $("#content").toggle();
}
Run Code Online (Sandbox Code Playgroud)

当最后点击该元素时,第一个语句最终会导致TypeError,并显示"未定义不是函数"的消息,我推测这表明我分配给onclick回调的任何内容最终都是未定义的,并且某种程度上没有坚持记忆.

解决方法很简单(只使用第二种形式的语句),但我真正想要理解的是为什么将toggle函数作为对象传递最终被调用时不起作用.我可以看到两者在语义上是不同的:第一个$("#content")在绑定事件时执行调用而另一个在事件发生时执行它,但我不明白为什么这应该重要.

如果它与答案相关,则所讨论的代码位于函数内部(可能在用户点击任何内容时返回).

javascript jquery

10
推荐指数
2
解决办法
898
查看次数

按周期序列号对项目进行排序

我正在开发一种算法来重新排序传输中的数据包.每个数据包在[0,256]中都有一个相关的序列号.第一个数据包的序列号可以取这些值中的任何一个,之后下一个数据包采用下一个值,下一个数据包采用该值之后的值,依此类推(在255之后滚动).

数据包的序列号按正确顺序显示如下,其中"n"是第一个数据包的序列号:

n,n + 1,n + 2,...,254,255,0,1,2,...,254,255,0,1,2,...,254,255,0,1, ...

每个数据包在到达目的地时都会得到一个时间戳,它们都大致按顺序到达.(我没有确切的数字,但是根据到达时间戳排序的数据包列表,可以肯定地说,数据包永远不会超过其序列号所指示的列表中的位置五个点.)

鉴于电信的普及及其对计算机科学发展的历史重要性,我觉得我不可能成为第一个处理这类问题的人.那么我的问题是:

  1. 在给定循环变化的密钥的情况下,是否存在一种众所周知的算法来重新排序近似有序的序列,例如上述序列?

  2. 这个算法的变体是否能够容忍大块缺失的物品?让我们假设这些块可以是任何长度.我特别担心256个或更多遗失物品的大块.

我对第一个算法有一些想法,但对第二个没有.然而,在我投入工时来验证我的算法是否正确之前,我想确保贝尔实验室(或其他任何地方)的某个人在三十年前还没有完成这项工作.

language-agnostic sorting algorithm telecommunication

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

Pyparsing是否支持上下文敏感的语法?

如果我的术语不正确,请原谅我; 或许只是用"正确"的词来形容我想要的东西足以让我自己找到答案.

我正在研究ODL(对象描述语言)的解析器,这是一种神秘的语言,据我所知现在只能由NASA PDS(行星数据系统使用;它是NASA如何向公众提供数据).幸运的是,PDS最终转向XML,但我仍然需要编写一个软件,用于在截止日期之前完成的任务.

ODL以如下方式定义对象:

OBJECT              = TABLE
  ROWS              = 128
  ROW_BYTES         = 512 
END_OBJECT          = TABLE
Run Code Online (Sandbox Code Playgroud)

我正在尝试编写一个解析器pyparsing,我一直很好,直到我进入上面的构造.

我必须创建一些能够确保OBJECT行的右手值与END_OBJECT的RHV相同的规则.但我似乎无法将其纳入pyparsing规则.我可以确保两者都是语法上有效的值,但我不能采取额外的步骤并确保值相同.

  1. 我的直觉是正确的,这是一个上下文敏感的语法吗?这是我应该用来描述这个问题的短语吗?
  2. 无论这种语法在理论意义上是什么,都pyparsing能够处理这种结构吗?
  3. 如果pyparsing无法处理它,是否有另一个Python工具能够这样做?怎么样ply(lex/ 的Python实现yacc)?

python parsing ply pyparsing

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

通过Python子进程的SSH密码

我正在编写一个GUI程序,以生成和监视SSH隧道,该组用户过于胆怯而无法使用命令行。

不幸的是,所讨论的服务器非常严格。通过RSA SecurID令牌进行的两因素身份验证是打开SSH连接的唯一官方认可的方法。不允许使用无密码的RSA公钥/私钥身份验证。

因此,我的程序有必要从文本输入框中读取密码,并将其发送给子SSH进程。不幸的是,ssh我们竭尽全力确保密码仅来自真实的键盘。

我强烈不希望使用第三方模块。我知道paramiko和pexpect(它们都是对类似问题的可能解决方案),但是试图向我的用户解释如何从源代码安装Python模块实在令人头疼。

因此:如何使用标准python subprocess模块将密码发送到ssh子进程?有什么方法可以欺骗子进程,使我认为我正在使用TTY?是否可以使用SSH_ASKPASS读取我的程序?

os也允许使用其他标准库模块(例如,该模块的低级命令)。

python ssh

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