我工作的质量检查经理告诉我,我的桌面应用程序中存在一个错误,因为当应该是"操作员ID"时,登录提示为"操作员ID".她的论点是"Id"指弗洛伊德的"通灵器具"的自我部分,并且在语义上不正确.
现在我是一名肛门工程师(AE),我当然不得不去查找Id vs ID和我的粗略调查(google),看起来ID似乎与弗洛伊德的自我一样常用.
所以我的理由是,Id是"标识符"的缩短版本,并且比ID更正确或至少更常用,这通常表示两个单词的缩写.
我可以改变用户界面,但后来我不会把我的职业作为一个AE,所以我想知道是否有任何最佳实践或参考资料可用于支持我的论点?请记住,这个问题与用户界面有关,而不是源代码,其中缩写和套管是哲学的完整不同分支.
有没有办法合并XCode 4.2 Storyboard文件?
我正在与一个iPhone项目上的另一个开发人员合作,我将所有更改合并到一个故事板文件的尝试都遇到了失败,之后Xcode不再能够加载故事板.因此,我必须做一个svn还原,然后重做我的修改.
我正在尝试使用不同浏览器中使用日期选择器的最简单方案.我怀疑我做的事情非常简单,但是经过大量的搜索,我仍然没有找到解决方案.下面是一些代表我正在尝试的示例代码.
如果我使用Chrome(v12.0.742.122)并从选择器中选择日期,例如13/08/2011,即使我已明确指定格式为'dd/mm /,jQuery验证逻辑也不允许页面提交YY".
如果我将格式更改为'dd/M/yy'并选择类似13/Aug/2011的日期,则可以在Chrome中使用,但之后不会在IE中提交(v8.0.7600.16385).在FireFox(v3.6.18)中,两种格式都有效.
我需要哪些验证脚本才能支持Chrome中'dd/mm/yy'的日期格式?
<html>
<head>
<link rel="stylesheet" type="text/css" href="jquery-ui.css" />
<script type="text/javascript" src="jquery-1.4.4.js"></script>
<script type="text/javascript" src="jquery.validate.js"></script>
<script type="text/javascript" src="jquery.validate.unobtrusive.js"></script>
<script type="text/javascript" src="jquery-ui.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$('.date').datepicker({ dateFormat: 'dd/mm/yy' });
$.validator.addMethod("dateRule", function(value, element) {
return true;
},
"Error message");
});
</script>
</head>
<body>
<form>
Date: <input type="text" name="myDate" class="date dateRule" />
<input type="submit" />
</form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud) jquery jquery-ui datepicker jquery-validate unobtrusive-validation
有没有人获得实践经验或参考实施符合PCI DSS安全标准的密钥管理方案的方案?
鉴于符合PCI DSS的公司数量,但显然有很多实现,但试图找到它们的细节是很困难的.当它归结为存储私有数据时,讨论通常会停止使用哪种加密算法.在此之后,通常会有关于正确存储私钥的声明,但没有讨论实际的方法,或者定期更改密钥或为应用程序提供密钥等.
具体而言,我对PCI DSS标准第3.5和3.6节的要求感兴趣.
3.5.2以尽可能少的位置和形式安全地存储加密密钥.
3.6.a验证用于加密持卡人数据的密钥是否存在密钥管理程序.注意:密钥管理的众多行业标准可从包括NIST在内的各种资源获得,可在http://csrc.nist.gov上找到.
3.6.4确认密钥管理程序的实施至少每年要求定期更改密钥.
我已经看过NIST Cryptographic出版物,正如PCI DSS要求文件所暗示的那样,但除了最近的加密密钥管理研讨会的注释之外,似乎没有太多真正可实现的方案或标准.
至于我想要做的事情不是:
所有这些都是有效的问题,但在这种情况下不是答案.我的要求的细节是一个不同的SO问题.Net设计模式,用于存储和检索敏感的每个用户数据,但这一切都归结为密钥管理,因此这个更精确的问题.
我喜欢使用UML图来描述我的软件.在大多数情况下,这些图表仅供我自己使用,我将它们用于更多涉及的代码,交互等部分,我将从中受益于将来能够回顾它们.
我发现自己做了一些不同的方法是绘制线程图.线程本质上倾向于弹出更复杂的代码片段并跟踪它们通常是我的设计文档的主要目的.
在过去,我在序列图中使用了一个符号来显示新线程的创建,但回顾一些图表,这有时在对象的生命周期(序列图所针对的)和线程的生命周期之间是模糊的.是否有更好的方法将线程合并到UML中?
如何在Haskell中使用正则表达式提取字符串?
let x = "xyz abc" =~ "(\\w+) \\w+" :: String
Run Code Online (Sandbox Code Playgroud)
这不是事件得到匹配
let x = "xyz abc" =~ "(.*) .*" :: String
Run Code Online (Sandbox Code Playgroud)
这样做,但x最终为"xyz abc",我如何只提取第一个正则表达式组,使x为"xyz"?
我不断检查字符串字段以检查它们是否为空或空白.
if(myString == null || myString.Trim().Length == 0)
{
throw new ArgumentException("Blank strings cannot be handled.");
}
Run Code Online (Sandbox Code Playgroud)
为了节省自己的一些输入,可以为String类创建一个具有相同效果的扩展方法吗?我理解如何为类实例添加扩展方法,但是如何向类添加静态扩展方法呢?
if(String.IsNullOrBlank(myString))
{
throw new ArgumentException("Blank strings cannot be handled.");
}
Run Code Online (Sandbox Code Playgroud) 我正在使用一个库,要求我提供一个实现此接口的对象:
public interface IConsole {
TextWriter StandardInput { get; }
TextReader StandardOutput { get; }
TextReader StandardError { get; }
}
Run Code Online (Sandbox Code Playgroud)
然后,对象的读者将被库使用:
IConsole console = new MyConsole();
int readBytes = console.StandardOutput.Read(buffer, 0, buffer.Length);
Run Code Online (Sandbox Code Playgroud)
通常,实现IConsole的类具有来自外部进程的StandardOutput流.在这种情况下,console.StandardOutput.Read通过阻塞来调用,直到有一些数据写入StandardOutput流.
我要做的是创建一个测试IConsole实现,它使用MemoryStreams和echo在StandardInput上显示的任何内容返回到StandardInput.我试过了:
MemoryStream echoOutStream = new MemoryStream();
StandardOutput = new StreamReader(echoOutStream);
Run Code Online (Sandbox Code Playgroud)
但问题是console.StandardOutput.Read将返回0而不是阻塞,直到有一些数据.无论如何,如果没有可用数据或者我可以使用的内存流有什么不同,我可以得到一个MemoryStream来阻止吗?
昨天我问过在Windows 2003上生成的GUID是否可以安全地用作会话ID?结合本文的答案GUID是全局唯一的,但GUID的子字符串不会促使我考虑替换当前使用GUID作为cookie中的会话ID的机制.
因为进行这项改变需要做一些工作,所以我决定在我的Vista PC上运行一个快速GUID测试,以查看一系列GUID是否显然是确定性的(我担心的是,如果攻击者能够获得一系列的我的服务器生成的GUID,他们将能够生成新的匹配的GUID).
在Raymond Chen的文章中(引用了1998年非常旧的规范UUID和GUID ),GUID由以下内容组成:
如果我生成10个GUID,前15个ASCII字符(不包括' - ')是时间戳,接下来的12个ASCII字符是计算机标识符,接下来的3.5个ASCII字符是随机的,最后1.5个字符是固定的.
使用.Net System.Guid.NewGuid()在我的Vista PC上获取10个GUID:
b4e95ead-3619-4dc2-9102-cf7ab0efd927
a45ee719-decd-46b2-8355-7becbe406f74
9af68d75-35a0-4907-b6ab-f15e33acfe96
bed88fa3-3209-4a19-97dd-85d5428ea5f4
123cb39b-8d81-41c6-8894-f1257a8f7606
e2b1f6b1-5791-4a18-80a9-5dc668574ecb
c52aa660-2629-4659-bb83-5583081e5a1c
76eda32d-ceda-412e-8ade-30c47416e954
cbc4d45e-7281-40d2-9f90-00539b04fe98
be36524c-267c-4791-bc9e-3c20b29d7615
Run Code Online (Sandbox Code Playgroud)
快速视觉检查中唯一可辨别的模式是第13个ASCII字符始终为4.
我再次想知道,依靠System.Guid来生成伪随机会话ID是否足以保护一个Web应用程序,其中破解会话ID最多价值数千美元?
更新:我现在计划使用以下方法生成会话ID,而不是使用GUID.我正在将384位随机数转换为0x00字节字符串,以便它适合在HTTP cookie中使用.
RNGCryptoServiceProvider rngProvider = new RNGCryptoServiceProvider();
byte[] myKey = new byte[48];
rngProvider.GetBytes(myKey);
string sessionID = null;
myKey.ToList().ForEach(b => sessionID += b.ToString("x2"));
Console.WriteLine(sessionID);
Run Code Online (Sandbox Code Playgroud) 我正在尝试将一些数据从MySQL插入SQL Server.我已经将MySQL表作为SQL插入语句转储到文本文件中.我可以将它插入到SQL Server中,但是回车符插入为\ r \n而不是作为控制序列.如何替换MySQL插入语句中的\ r \n字符串,以便它们最终在SQL Server中作为回车符结束?
c# ×2
security ×2
.net ×1
cryptography ×1
datepicker ×1
guid ×1
haskell ×1
insert ×1
jquery ×1
jquery-ui ×1
memorystream ×1
merge ×1
mysql ×1
pci-dss ×1
random ×1
regex ×1
sql-server ×1
stream ×1
uml ×1
xcode4.2 ×1