小编Tha*_*tos的帖子

Mac OS 上的 IP 不要分段

我正在编写一个通过 TCP 传输文件的程序。

我想在 IP 上设置不分段标志

在套接字上,这就是我想要做的:

int val = 1;
setsockopt(sd, IPPROTO_IP, IP_DONTFRAG, &val, sizeof(val));
Run Code Online (Sandbox Code Playgroud)

IP_DONTFRAG在 Mac 操作系统上似乎不可用。我错过了什么吗?或者我忘记正确包含它?

如果有人知道的话先谢谢了

——萨姆

ip tcp objective-c

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

在Python中将元组列表写入文本文件

我有一个格式列表:

("some string", "string symbol", some number)
Run Code Online (Sandbox Code Playgroud)

例如,("Apples", "=", 10).我需要将它们写入输出文件,如下所示:

Apples = 10
Run Code Online (Sandbox Code Playgroud)

我在使用write方法时遇到了麻烦.怎么做到呢?

python tuples

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

加密哈希算法可以用作 PRNG 吗?

可以将 MD5/SHA256/SHA512 等用作 PRNG 吗?例如,给定一个整数种子,是伪代码:

random_number = truncate_to_desired_range(
    sha512( seed.toString() + ',' + i.toString() )
Run Code Online (Sandbox Code Playgroud)

...一个体面的PRNG?(i是一个递增的整数,例如,输出是:

convert(sha512("<seed>,0"))
convert(sha512("<seed>,1"))
convert(sha512("<seed>,2"))
convert(sha512("<seed>,3"))
…
Run Code Online (Sandbox Code Playgroud)

在这个问题的上下文中,“体面”仅指输出的分布:以这种方式使用时,加密哈希函数的输出是否统一?(虽然我认为这取决于散列函数,但所有加密散列也应该具有统一的输出,对吗?)

注意:我承认,与 Mersenne-Twister 相比,由于使用了加密哈希,这将是一个缓慢的 PRNG。我对速度不感兴趣,我对结果的安全不感兴趣——只是分布是正确的。

在我的特定用例中,我正在寻找类似于XKCD 的 geohashing 的东西,因为它很容易由分布式各方实现,他们都会得到相同的答案。Mersenne-Twister 可以被替代,但它在许多目标语言中不太可用。(有些语言完全没有它,有些语言无法访问它的原始 U32 输出,等等。SHA512 要么是内置的,要么很容易获得。)

random hash prng

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

在GtkBuilder XML中的GtkDialog中使用预定义的响应ID?

有没有办法在a中使用预定义的响应(例如GTK_RESPONSE_OK)GtkDialog,而无需对ID进行硬编码?默认情况下,Glade会在那里生成带"0"的XML,并为我提供一个数字条目.虽然我想我可以进入-5,但这似乎打败了一个常数.

Glade XML看起来像这样:

<action-widgets>
  <action-widget response="0">cancel-button</action-widget>
  <action-widget response="0">connect-button</action-widget>
</action-widgets>
Run Code Online (Sandbox Code Playgroud)

甚至文档中的示例:

<action-widgets>
  <action-widget response="3">button_ok</action-widget>
  <action-widget response="-5">button_cancel</action-widget>
</action-widgets>
Run Code Online (Sandbox Code Playgroud)

(这有点搞笑,因为他们使用-5(GTK_RESPONSE_OK)表示" button_cancel"...)

gtk glade

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

由于移动的文件,git合并冲突

到目前为止,我还没有用 git 做这么多。现在,我有以下问题。虽然我做了一些本地修改和提交,但我的同事在新分支中重组了文件和文件夹。然后,我添加了一个远程跟踪分支(反映他的更改)并尝试将我的修改合并到其中。当然,当文件移动到另一个位置时它会失败。我怎样才能继续?'git status' 告诉我这个:

# On branch develop
# You have unmerged paths.
#   (fix conflicts and run "git commit")
#
# Unmerged paths:
#   (use "git add/rm <file>..." as appropriate to mark resolution)
#
#   deleted by us:      src/de/mpicbg/tds/knime/hcstools/prefs/DoubleFieldEditor.java
#   deleted by us:      src/de/mpicbg/tds/knime/hcstools/prefs/HCSToolsPreferencePage.java
#   deleted by us:      src/de/mpicbg/tds/knime/heatmap/HeatMapModel.java
#   deleted by us:      src/de/mpicbg/tds/knime/heatmap/PlateViewer.java
#   deleted by us:      src/de/mpicbg/tds/knime/heatmap/color/LinearGradientTools.java
#   deleted by us:      src/de/mpicbg/tds/knime/heatmap/dialog/PlateAttributeDialog.java
#   deleted by us:      src/de/mpicbg/tds/knime/heatmap/menu/TrellisMenu.java
#   deleted by us:      src/de/mpicbg/tds/knime/heatmap/menu/ViewMenu.java
#   deleted by us: …
Run Code Online (Sandbox Code Playgroud)

git git-merge merge-conflict-resolution

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

在Rust中,"as"是一个运营商吗?

Rust Reference目前as运营商说:

7.2.12.5类型转换表达式

类型转换表达式用二元运算符表示as.

执行as表达式会将左侧的值转换为右侧的类型.

as表达式的一个例子:

fn average(values: &[f64]) -> f64 {
  let sum: f64 = sum(values);
  let size: f64 = len(values) as f64;
  sum / size
}
Run Code Online (Sandbox Code Playgroud)

(另外,因为它是相关的:

7.2.12.8运算符优先级

Rust二元运算符的优先级按如下顺序排列,从强到弱:

as
* / %
+ -
<< >>
Run Code Online (Sandbox Code Playgroud)

)

天真地使用它作为运算符似乎不起作用:

fn main() {
    let x = 100 as u16 << 8;
}
Run Code Online (Sandbox Code Playgroud)

实际上没有编译:

% rustc testing.rs
testing.rs:2:24: 2:25 error: expected type, found `8`
testing.rs:2    let x = 100 as u16 …
Run Code Online (Sandbox Code Playgroud)

grammar binary-operators rust

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

gtk idle_add没有运行?

我有一个双线程应用程序:GUI和一些后台工作.我正在尝试向主线程发送请求以进行GUI更新(移动进度条),但它似乎不起作用.我把它归结为一个非常小的例子:

import pygtk
pygtk.require('2.0')
import glib
import gtk

import threading
import sys
import time

def idle():
    sys.stderr.write('Hello from another world.\n')
    sys.stderr.flush()
    gtk.main_quit()

def another_thread():
    time.sleep(1)
    glib.idle_add(idle)

thread = threading.Thread(target=another_thread)
thread.start()
gtk.main()
Run Code Online (Sandbox Code Playgroud)

我认为,这应该从主/ GUI线程中打印出标准错误,但没有任何反应.并且它也不会退出,因此gtk.main_quit不会被调用.

此外,添加更多的输出以stderr奇怪的行为.如果我将线程的功能更改为:

sys.stderr.write('----\n')
sys.stderr.write('----\n')
sys.stderr.flush()
sys.stderr.write('After.\n')
sys.stderr.flush()
Run Code Online (Sandbox Code Playgroud)

我看到1,有时输出2行.它似乎与主线程进入某种竞争条件gtk.main,但我不知道为什么会这样.

python gtk pygtk

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

独特的置换生成器?

问题:我有一些数字列表,例如[1,1,2]. 我需要生成唯一的排列。排列是[1,1,2],[1,1,2],[1,2,1],[1,2,1],[2,1,1],[2,1,1]。我只需要生成唯一的排列,即[1,1,2],[1,2,1],[2,1,1].

我的尝试:我的第一次尝试是保留一组现有的排列,并为itertools.permutations生成器创建一个过滤器,该过滤器将使用该组过滤掉重复项。但是,出于效率原因,我宁愿不首先生成这些排列。即使对于 12 个数字的小列表,也只有 1% 是唯一的。

我有一个我似乎无法完全弄清楚的想法的开始:我可以在我的列表中创建唯一值的排列,即[1,2],将剩余的数字放在所有不同的地方。

感谢您的帮助,并且要明确的是,我不想过滤掉重复的排列,我只想首先生成唯一的排列。

python algorithm permutation

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

为什么要求AddAssign作为超级特征的特征也要求它是大小的?

我有一个特点,为了实现这个特性,我想要求实现者实现AddAssign; 然而,这样做会导致我的特质似乎需要Sized:

trait Foo: ::std::ops::AddAssign {}

trait Bar: Iterator {}
Run Code Online (Sandbox Code Playgroud)

(操场)

Bar编译好; Foo但是:

error[E0277]: the trait bound `Self: std::marker::Sized` is not satisfied
 --> src/main.rs:1:1
  |
1 | trait Foo: ::std::ops::AddAssign {}
  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Self` does not have a constant size known at compile-time
  |
  = help: the trait `std::marker::Sized` is not implemented for `Self`
  = help: consider adding a `where Self: std::marker::Sized` bound
  = note: required by `std::ops::AddAssign`
Run Code Online (Sandbox Code Playgroud)

如果我添加+ Sized到特质界限,一切都很好,但是......为什么 …

traits type-bounds rust

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

如果string有一个"\ r"即回车符,Python中的json.loads(jsonstring)就会失败

我得到一个JSON字符串,其中有一个"\r"字符,例如"{"data":"foo \r\n bar"}"当我尝试解析它时抛出ValueError.

>>> j="""{"data":"foo \r\n bar"}"""
>>> import json
>>> f=json.loads(j)

Traceback (most recent call last):
  File "<pyshell#2>", line 1, in <module>
    f=json.loads(j)
  File "C:\Python27\lib\json\__init__.py", line 326, in loads
    return _default_decoder.decode(s)
  File "C:\Python27\lib\json\decoder.py", line 366, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "C:\Python27\lib\json\decoder.py", line 382, in raw_decode
    obj, end = self.scan_once(s, idx)
ValueError: Invalid control character at: line 1 column 13 (char 13)
>>> j[13]
'\r'
Run Code Online (Sandbox Code Playgroud)

"\r" 是Python字符串中完全合法的字符.

我该如何解析这个JSON字符串呢

>>> dct …
Run Code Online (Sandbox Code Playgroud)

python parsing json

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