小编Nat*_*ray的帖子

为什么XOR是组合哈希的默认方式?

假设您有两个哈希H(A)并且H(B)您想要将它们组合在一起.我已经读到了将两个哈希值组合在一起的好方法XOR,例如XOR( H(A), H(B) ).

我发现的最佳解释在这里简要介绍了这些哈希函数指南:

对具有大致随机分布的两个数字进行异或,导致另一个数字仍具有大致随机分布*,但现在取决于这两个值.
...
*在两个数字相结合的每个比特,一个输出0,如果两个比特相等,否则为1.换句话说,在组合的50%,1将输出.因此,如果两个输入位各有大约50-50的机会为0或1,那么输出位也是如此.

你能解释为什么XOR应该是组合散列函数(而不是OR或AND等)的默认操作的直觉和/或数学吗?

hash cryptography bit-manipulation probability xor

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

如何将第三方框架导入Xcode Playground?

如何将第三方框架导入Xcode Playground?

斯威夫特游乐场显然有一个框架,导入机制,因为我们可以导入Cocoa,SpriteKit以及在OSX游乐场,XCPlayground(XCPlayground似乎来自iOS的缺失,奇怪)

我真正想做的是隐藏我操场上的代码,并能够展示一个最小的例子.有关如何将框架加载到Swift游乐场的任何想法?

也可以看看:

(这个问题不同,因为请求是在Playground中使用框架而不是简单的常规swift文件)

macos xcode ios swift xcode6

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

MYSQL:LOAD DATA INFILE后显示跳过的记录?

在MySQL我用过LOAD DATA LOCAL INFILE哪个工作正常.最后我得到一条消息:

Records: 460377  Deleted: 0  Skipped: 145280  Warnings: 0
Run Code Online (Sandbox Code Playgroud)

如何查看跳过的记录的行号?SHOW warnings不起作用:

mysql> show warnings;
Empty set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)

mysql sql load-data-infile

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

在C中通过一次操作交换两位?

假设我有一个包含六个未知值的字节:

???1?0??
Run Code Online (Sandbox Code Playgroud)

我想交换第2和第4位(改变任何?值):

???0?1??
Run Code Online (Sandbox Code Playgroud)

但是如何在C 中的一次操作中执行此操作

我在微控制器上每秒执行此操作数千次,因此性能是首要任务.

可以"切换"这些位.即使这与交换位不同,切换也可以用于我的目的.

c bit-manipulation arduino bit

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

Cocoa接口的惯用,优雅,开源示例?

问候,我正在学习Cocoa和Objective-C.我已经完成了"全部"教程,我对ObjC语言非常熟悉.我现在正在寻找的是学习Cocoa习语,并看到在漂亮的Cocoa应用程序中使用的真实代码.

似乎严肃的应用程序(iTunes等)不仅仅是放入IB元素.他们通过代码做了很多事情来调整它们看起来不错.(示例:iTunes播放列表抽屉.如何获得该样式?)

以下是我发现的开源友好UI的一些示例:

有关具有优秀Cocoa用户界面的开源应用程序的任何其他建议?

cocoa objective-c

11
推荐指数
1
解决办法
3200
查看次数

vim中的类似XCode的自动完成(没有标签)?

问候.我已经使用vim多年了,我最近开始玩XCode.我非常喜欢XCode的一个原因是它会在没有我打击的情况下自动完成单词.<TAB>

例如,在下图中我只需要打字NSSObj,其余部分自动填写,无需特殊按键.

替代文字

我想在vim中重现这种效果.

要清楚,这个问题不是关于如何在vim中使用tab/omni-completion工作.我已经完成了tab/omni完成工作,这不是问题.问题是:当我打字时,有没有人知道如何让vim自动完成?

vim xcode autocomplete

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

Erlang:如何访问CLI标志(参数)作为应用程序环境变量?

如何在Erlang中访问命令行标志(参数)作为环境变量.(作为标志,而不是ARGV)例如:

RabbitMQ cli看起来像:

erl \
...
-sasl errlog_type error \
-sasl sasl_error_logger '{file,"'${RABBITMQ_SASL_LOGS}'"}' \
... # more stuff here
Run Code Online (Sandbox Code Playgroud)

如果sasl.erl你看到你看到线:

get_sasl_error_logger() ->
   case application:get_env(sasl, sasl_error_logger) of
% ... etc
Run Code Online (Sandbox Code Playgroud)

通过一些未知的魔法,sasl_error_logger变量变成了一个erlang元组!我试过在我自己的erlang中复制它application,但我似乎只能通过init:get_argument它来访问这些值,它将值作为字符串返回.

如何通过命令行传递值并能够以erlang术语轻松访问它们?

更新同样对于任何人来说,以"常规"方式使用环境变量os:getenv("THE_VAR")

erlang command-line arguments environment-variables

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

iPhone上的Musical符号.对示例代码的任何建议?

我正在写一个iPhone应用程序,我想显示一些简单的乐谱(只是一个或两个和弦).

这个问题是要求以最快捷的方式提出建议.例如:

  1. 有没有iphone或Objective-C库这样做我错过了?
  2. 我可以看一下野外开源Objective-C软件的例子吗?它不一定是iPhone特定的.
  3. 如果没有任何Objective-C代码可以做到这一点,任何人都知道其他语言的任何音乐符号渲染软件?

iphone objective-c notation

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

如何以编程方式创建PowerPoint演示文稿.在Linux上.免费.

我想免费使用代码(任何语言,C首选)创建PowerPoint(不是Javascript/HTML/PDF/Keynote/.mov).

(我已经看到了这个SO问题,它引用了如何创建它们C#)

这甚至可能吗?如何编写构成PowerPoint文件的原始位?这样做有什么好的库吗?

更新二进制格式的Microsoft参考页面在此处.

c linux powerpoint automation

6
推荐指数
2
解决办法
6371
查看次数

vim + iterm:如何使用鼠标除外选择除外?

好的,有一个非常具体的设置问题.我正在使用Mac OS X,iTerm和vim.我真的很喜欢用我的鼠标在正常模式下点击标签,在正常模式下滚动等(例如我已经在iTerm/vim中使用了鼠标).

但是,我不喜欢使用视觉模式进行选择.我只是想使用OS X选择而不是 vim的视觉选择.下一个逻辑步骤?禁用选项中的视觉选择mouse:

set mouse=nicr

这个问题是,当我尝试选择(使用鼠标)时vim拦截鼠标点击并且根本不允许我选择!

有谁知道如何处理这个问题?如果一个人知道正确的字符/控制代码(我显然不知道),它就像是可以解决的.

目标:在vim中使用鼠标除"选择"之外的所有内容.让iTerm/OS做出选择.

vim mouse configuration user-interface iterm

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

如何在Erlang中刷新io缓冲区?

你如何在Erlang中刷新io缓冲区?

对于实例:

io:format("hello") 要么 io:format(user, "hello")

这篇文章似乎表明没有干净的解决方案.

有没有比那篇文章更好的解决方案?

erlang buffer input flush

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

在Emacs viper模式下禁用ESC为meta?

我是一个长期的vim用户,试图切换到emacs.

我正在使用viper-modeemacs,我一直在键入ESC(退出插入模式),然后键入一个键(比方说j).我打字很快,经常同时打它们.Emacs然后认为我正在击中META-j并运行一个我不打算的功能.

我喜欢使用选项作为元,并且当我在毒蛇时,不关心ESC曾经是元.

任何人都有关于如何在毒蛇模式下完全禁用ESC为meta的建议?

这是我尝试过的一些相关选项.这些都没有解决问题.

(setq viper-no-multiple-ESC t)                                                                                   
(setq viper-translate-all-ESC-keysequences t)                                                                        
(setq viper-fast-keyseq-timeout 0)
Run Code Online (Sandbox Code Playgroud)

vim emacs escaping viper viper-mode

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