我已经设计了一种实用的编程语言已有5年左右的时间了,它可能不会再发布几年(可能直到我现在和下一次创业公司成功或失败之后).
与此同时,我有两个可能有趣的问题:
1)新编程语言的哪些属性可以吸引您在下一个项目中尝试?
2)新编程语言的哪些属性可能会阻止您在项目中尝试它?(即没有图书馆,...)
为了确保这个问题不是一个哲学辩论(因此被管理员关闭),请描述您自己的工具选择谓词,而不是关于更广泛的人口偏好的理论:)
谢谢!
oop programming-languages functional-programming web-services web-applications
我试图在textarea中显示rails视图文件.视图文件包含一堆HTML,我想要转义它,以便它不会干扰页面html.这是一个例子:
In this view we are going to display the contents of a partial
<textarea>
<%= html_escape render('partial') %>
</textarea>
Run Code Online (Sandbox Code Playgroud)
在partial.html.erb我会
Hello this is partial.html.erb and this is a
<textarea>textarea</textarea> blah blah blah.
Run Code Online (Sandbox Code Playgroud)
问题是:partial.html中的textarea在第一个视图中打破了textarea,因为它不是html_escaped.如何在属性中转义并显示textarea内部分的内容?
我使用.NET 2.0与PlatformTarget x64和x86.我给Math.Exp输入相同的输入数,并且它在任一平台上都返回不同的结果.
MSDN说你不能依赖文字/解析的Double来代表平台之间的相同数字,但我认为我在下面使用Int64BitsToDouble可以避免这个问题,并保证在两个平台上输入相同的Math.Exp.
我的问题是为什么结果不同?我原以为:
我知道我不应该比较15/17位数后的浮点数,但我对这里的不一致感到困惑,看起来在同一硬件上看起来是相同的操作.
任何人都知道引擎盖下发生了什么?
double d = BitConverter.Int64BitsToDouble(-4648784593573222648L); // same as Double.Parse("-0.0068846153846153849") but with no concern about losing digits in conversion
Debug.Assert(d.ToString("G17") == "-0.0068846153846153849"
&& BitConverter.DoubleToInt64Bits(d) == -4648784593573222648L); // true on both 32 & 64 bit
double exp = Math.Exp(d);
Console.WriteLine("{0:G17} = {1}", exp, BitConverter.DoubleToInt64Bits(exp));
// 64-bit: 0.99313902928727449 = 4607120620669726947
// 32-bit: 0.9931390292872746 = 4607120620669726948
Run Code Online (Sandbox Code Playgroud)
在打开或关闭JIT的两个平台上,结果都是一致的.
[编辑]
我对下面的答案并不完全满意,所以这里有一些我搜索的细节.
http://www.manicai.net/comp/debugging/fpudiff/说:
因此32位使用80位FPU寄存器,64位使用128位SSE寄存器.
CLI标准表示,如果硬件支持双精度,则可以用更高的精度表示双精度:
[原理:此设计允许CLI为浮点数选择特定于平台的高性能表示,直到它们被放置在存储位置.例如,它可能能够在硬件寄存器中保留浮点变量,这些变量提供的精度比用户请求的更高.在分区I 69同时,CIL生成器可以通过使用转换指令强制操作遵守特定于语言的表示规则.最终理由]
http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-335.pdf(12.1.3处理浮点数据类型)
我认为这就是这里发生的事情,因为Double的标准15位精度后结果不同.64位Math.Exp结果更精确(它有一个额外的数字)因为内部64位.NET使用的FPU寄存器比32位.NET使用的FPU寄存器更精确.
我正在寻找Java的时态库,即允许存储相同概念的多个历史版本的库.我正在寻找一个具有API的库,可以执行以下操作:
Instant i1 = Instant.valueOf("2010-01-01");
Instant i2 = Instant.valueOf("2010-01-02");
Attribute<String> a = ....
a.setValue(i1, "String as of 2010-01-01");
a.setValue(i2, "String as of 2010-01-02");
Run Code Online (Sandbox Code Playgroud)
您可以在Martin Fowler的文章中找到关于时间问题的讨论
我发现的一个库是JTemporal,这对我来说似乎相当不错,但它并不完整,缺乏对Hibernate持久性的支持.我也想支持时间集,即在精确的时间点定义的集合.JTemporal就是这样做的,但坚持TemporalSet并不容易.
我正在研究基于Fountain Code的文件传输系统.在此系统中,下载数据块,并与xor函数结合使用.我想在块到达时验证它们.
我需要的是加密安全散列函数,它具有以下属性:
哈希(A)^哈希(B)==哈希(A ^ B)
这样的事情存在吗?
注意:数据块必须与xor函数组合,散列可以与您喜欢的任何函数组合,只要它的计算成本相当便宜.
我在这里包含了一个c#.net 4.0应用程序中的directX播放器(answer2).问题是当我尝试初始化对象(即播放器mPlayer = new Player())时会发生以下错误:
混合模式程序集是针对运行时的版本"v1.1.4322"构建的,如果没有其他配置信息,则无法在4.0运行时中加载.
谁知道它可能是什么?
我有一个ASP.NET Web窗体应用程序.有一个带有TextBox的页面,用户在这些页面中输入搜索词,用于查询数据库.
我知道我需要阻止JavaScript注入攻击.我该怎么做呢?
在MVC我会用Html.Encode.它似乎没有在Web窗体中被识别.
谢谢!
我正在使用Zend Framework并使用Zend_Http_Client向第三方API发出POST请求.
$client = new Zend_Http_Client('http://api.com');
$client->setParameterPost(array(
'param1' => 'value'
));
$response = $client->request('POST');
echo $response->getBody();
Run Code Online (Sandbox Code Playgroud)
此API返回XML文档作为其响应.
<?xml version="1.0" ?>
<registration>
<id>12345</id>
</registration>
Run Code Online (Sandbox Code Playgroud)
如何将响应转换为可以使用的内容?