小编dre*_*ves的帖子

您的电子邮件客户端允许您以编程方式添加自定义标头

我正在研究一个反垃圾邮件项目(centmail),其中涉及让发件人使用客户端插件添加自定义标题(以及签名,但该部分更容易).一般问题是向外发邮件添加电子邮件标头,其中标头字段的内容是针对每封邮件动态确定的.

令人惊讶的是,这在Pine/Alpine中似乎不可能.Pine允许您为外发邮件指定过滤器脚本,但只有主体而不是标头才能通过它.您当然可以在Pine设置中定义自定义标题,但我认为无法动态更改它们的内容.

我很高兴听到如何在其他电子邮件客户端(Thunderbird,Outlook,Evolution,Mutt等)中执行此操作.当然,如果我对Pine有误.

email email-client email-integration sendmail email-spam

12
推荐指数
4
解决办法
4724
查看次数

Rot13代表数字

编辑:现在是http://messymatters.com/sealedbids上的主要动态博客文章

rot13的想法是模糊文本,例如防止剧透.它并不意味着加密安全,而只是确保只有那些确定要阅读它的人才能阅读它.

对于涉及密封投标的申请,我想对数字做类似的事情.粗略地说,我想向某人发送我的号码并相信他们选择他们自己的号码,不受我的影响,但是当他们准备好时他们应该能够透露我的(纯粹是客户端).他们不应要求我或任何第三方提供进一步的意见.

(已添加:请注意收件人信任不作弊的假设.)

它并不像rot13那么简单,因为某些数字,比如1和2,会经常发生,你可能会记得34.2确实是1.

这是我正在寻找的具体内容:

功能密封(),将实数映射到实数(或字符串).它应该具有确定性-封口(7)每次不应映射到相同的事情.但相应的函数unseal()应该是确定性的 - unseal(seal(x))应该等于所有x的x.我不希望密封或开封调用任何web服务甚至获得系统时间(因为我不想假设同步时钟).(补充:可以假设所有出价都低于某个最高出价,每个人都知道,比如一百万.)

完整性检查:

> seal(7)
482.2382   # some random-seeming number or string.
> seal(7)
71.9217    # a completely different random-seeming number or string.
> unseal(seal(7))
7          # we always recover the original number by unsealing.
Run Code Online (Sandbox Code Playgroud)

language-agnostic encryption math function

12
推荐指数
2
解决办法
3845
查看次数

Mathematica中的可选命名参数

使用可选的命名参数定义函数的最佳/规范方法是什么?为了使混凝土,让我们创建一个函数foo与命名的参数a,bc,其默认为1,2,3,分别.为了比较,这是一个foo带位置参数的版本:

foo[a_:1, b_:2, c_:3] := bar[a,b,c]
Run Code Online (Sandbox Code Playgroud)

以下是命名参数版本的示例输入和输出foo:

foo[]                  --> bar[1,2,3]
foo[b->7]              --> bar[1,7,3]
foo[a->6, b->7, c->8]  --> bar[6,7,8]
Run Code Online (Sandbox Code Playgroud)

当然,在命名参数之前使用位置参数也很容易.

wolfram-mathematica function named-parameters

12
推荐指数
2
解决办法
2274
查看次数

Bash相当于Tcsh的ESC-p从你目前输入的内容开始跳转到命令

我最近做了从tcsh到bash的长期过期.我唯一想念的是tcsh的ESC+ p功能:开始键入一个命令,然后点击ESC+ p(我实际上找到了等效的ctrl- [p更容易键入],它跳转到历史记录中最新的命令,从你的开始打字到目前为止.

也许最好的答案就是习惯于抨击Ctrl+ r但是到目前为止我并不喜欢它.我经常开始输入一个命令然后发生在我之前我发过它.有了tcsh的功能,我就可以用ESC+ p+ Enter重新发布它.这是如此之快,我通常永远不会使用向上箭头超过2个命令.

我发现它特别好的一个例子:长命令通常以点开头,因为它们是形式

./myprogram.pl -lots -of -args -and -switches
Run Code Online (Sandbox Code Playgroud)

在tcsh中我会发出这样的命令,然后可能是ls,less,tail,whatever,然后重新发出long命令,4个键:dot,escape,p,enter.

我怎么能在Bash中做到这一点?或者,为了使其具体化,bash中最少的击键次数是"重复以点开头的最后一个命令"?它可以匹配或击败tcsh的4吗?

bash shell keyboard-shortcuts tcsh

12
推荐指数
2
解决办法
8475
查看次数

Python正则表达式将字符串中的非ascii字符转换为最接近的ascii等价物

我正在寻找简单的Python函数,它接受一个字符串并返回一个类似的字符串,但所有非ascii字符转换为它们最接近的ascii等价物.例如,应该删除变音符号等.我想象必须有一个非常规范的方法来做这个并且有很多相关的stackoverflow问题,但我找不到一个简单的答案所以它似乎值得一个单独的问题.

输入/输出示例:

"Étienne" -> "Etienne"
Run Code Online (Sandbox Code Playgroud)

python regex ascii character-encoding special-characters

12
推荐指数
2
解决办法
6261
查看次数

在没有X11的机器上将绘图导出为Mathematica中的图像(即,不涉及前端)

请考虑以下带有内核命令行界面的对话框:

$ math
Mathematica 6.0 for Linux x86 (32-bit)

In[1]:= p = Plot[x^2, {x,-1,1}]
Out[1]= -Graphics-

In[2]:= Export["foo.png", p]
Out[2]= foo.png
Run Code Online (Sandbox Code Playgroud)

这在一台机器上工作正常$Version = 6.0 for Linux x86 (32-bit) (June 2, 2008)但在$Version = 7.0 for Linux x86 (64-bit) (November 11, 2008)具有以下错误的机器上失败:

Export::nofe: A front end is not available; export of PNG 
requires a front end.
Run Code Online (Sandbox Code Playgroud)

我可以想到任何其他图像格式的类似错误.

所以问题是,我怎样才能获得Mathematica内核,没有前端,导出图像?为什么它在Mathematica 6.0中顺利运行?如果以上示例适用于版本7,请告诉我们!

PS:版本7引入了该功能,UsingFrontEnd但失败了

Developer`UseFrontEnd::nofestart: 
Unable to launch a front end. Proceeding without a front end.
Run Code Online (Sandbox Code Playgroud)

大概是因为机器上没有安装X11.

附录

事实证明,在这方面版本6和版本7之间没有区别.相反,在版本为6的机器上,前端正在静默调用.正如这个问题的答案所表明的那样,另一台机器的问题是没有X服务器,因此无法调用前端.

wolfram-mathematica export image-processing

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

Mathematica中的错误:正则表达式应用于非常长的字符串

在下面的代码中,如果字符串s被追加为10或2万个字符,则Mathematica内核会出错.

s = "This is the first line.
MAGIC_STRING
Everything after this line should get removed.
12345678901234567890123456789012345678901234567890123456789012345678901234567890
12345678901234567890123456789012345678901234567890123456789012345678901234567890
12345678901234567890123456789012345678901234567890123456789012345678901234567890
12345678901234567890123456789012345678901234567890123456789012345678901234567890
12345678901234567890123456789012345678901234567890123456789012345678901234567890
...";

s = StringReplace[s, RegularExpression@"(^|\\n)[^\\n]*MAGIC_STRING(.|\\n)*"->""]
Run Code Online (Sandbox Code Playgroud)

我认为这主要是Mathematica的错,我已经提交了一份错误报告,如果得到回复,我会在这里跟进.但我也想知道我是否以愚蠢/低效的方式做这件事.即使不是,也应该赞赏解决Mathematica错误的想法.

regex string wolfram-mathematica

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

带有默认值的PHP赋值

有什么更好的方法来执行以下操作,不会调用f()两次?

$x = f() ? f() : 'default';
Run Code Online (Sandbox Code Playgroud)

php default-value variable-assignment

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

强力调用一个片状API:使用Net :: HTTP进行适当的错误处理

我把它一起作为一种表面上看起来很健壮的方式来调用一个不稳定的web服务,它会给出超时和偶尔的名称解析或套接字错误等等.我想我会把它放在这里以防它有用,或者更有可能被告知更好的方法来做到这一点.

require 'net/http'

retries = 5
begin
  url = URI.parse('http://api.flakywebservice.com')
  http = Net::HTTP.new(url.host, url.port)
  http.read_timeout = 600  # be very patient
  res = nil
  http.start{|http|
    req = Net::HTTP::Post.new(url.path)
    req.set_form_data(params)  # send a hash of the POST parameters
    res = http.request(req)
  }
rescue Exception   # should really list all the possible http exceptions
  sleep 3
  retry if (retries -= 1) > 0
end

# finally, do something with res.body, like JSON.parse(res.body)
Run Code Online (Sandbox Code Playgroud)

这个问题的核心是:在打电话给这样的网络服务时,我应该寻找所有例外情况?这是尝试收集所有这些,但似乎必须有一个比这更好的方法:http: //tammersaleh.com/posts/rescuing-net-http-exceptions

ruby api web-services http

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

Python中的reducelist:比如reduce,但给出了中间结果列表

你知道reducePython中的方便功能.例如,您可以使用它来总结这样的列表(假装没有内置总和):

reduce(lambda x,y: x+y, [1,2,3,4], 0)
Run Code Online (Sandbox Code Playgroud)

返回(((0 + 1)+2)+3)+4 = 10.

现在如果我想要一个中间总和列表怎么办?在这种情况下,[1,3,6,10].

这是一个丑陋的解决方案.还有更多的pythonic吗?

def reducelist(f, l, x): 
  out = [x]
  prev = x
  for i in l:
    prev = f(prev, i)
    out.append(prev)
  return out
Run Code Online (Sandbox Code Playgroud)

python reduce functional-programming list

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