我有一个显示图像的webview,如下面的代码所示.该套装还有一个DGT64@2x.png,尺寸为128x128,可在iPhone4上使用.DGT64@2x.png永远不会显示.有没有办法显示/或取决于它是iPhone还是iPhone4?
<img src="DGT64.png" width="64" height="64" align="left" style="padding:2px;"/>
Run Code Online (Sandbox Code Playgroud) 不久之前,我在一个用户可以购买门票的网络应用程序上工作.由于我们客户的流程的运作方式,您购买后实际获得的是一个带有票号的URL.
这些是在中东购买房产的门票,每张门票的价值可能在300万美元左右.显然抛出顺序整数本来是个坏主意.我们使用GUID,因为它们基本上是不可知的,但我的问题是:它们足够安全吗?
据我所知,GUIDs .NET产生的是完全伪随机的(除了一些非变量位).但是,我不知道使用什么算法来生成它们.
MSDN文档告诉我们Random
快速且不安全,并且RNGCryptoServiceProvider
速度慢且安全.也就是说,假设有人可以投入足够的努力来预测结果Random
,但不是RNGCryptoServiceProvider
.
如果您看到足够长的GUID序列,是否可以预测期货?如果是这样,你需要看多少?
[在我们的特殊情况下,之后会进行身体安全检查 - 您必须出示用于购买机票的护照 - 所以如果有人猜到别人的GUID 就不会太糟糕,所以我们没有出汗当时.使用GUID作为数据库密钥的便利性使其成为一种有用的数据类型.]
编辑:
所以答案是"不够".
使用下面的0xA3的答案,并跟随他链接的问题的链接,以下代码将生成一个加密随机GUID,该GUID由RFC 4122的第4.4节有效:
static Guid MakeCryptoGuid()
{
// Get 16 cryptographically random bytes
RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();
byte[] data = new byte[16];
rng.GetBytes(data);
// Mark it as a version 4 GUID
data[7] = (byte)((data[7] | (byte)0x40) & (byte)0x4f);
data[8] = (byte)((data[8] | (byte)0x80) & (byte)0xbf);
return new Guid(data);
}
Run Code Online (Sandbox Code Playgroud)
这比GUID产生的速度慢得多 …
我想将地址转换为long/lat.
有没有办法在不使用JavaScript的情况下执行此操作?因为在我的情况下,由于转换是在后台,所以不需要显示任何内容.
我只是for...in
在Javascript中尝试了这个语句.
这没有错误:
var images = document.getElementsByTagName('img');
for(x in images){
document.write(images[x]) + " ");
}
Run Code Online (Sandbox Code Playgroud)
但是,这样做应该是它应该但在FF错误控制台中出错.
for(x in images){
images[x].style.visibility="visible";
}
Run Code Online (Sandbox Code Playgroud)
这让我非常好奇发生了什么事.
这样做:
for(x in images){
document.write(x);
}
Run Code Online (Sandbox Code Playgroud)
......给了我这个:
01234567891011121314151617lengthitemnamedItem
Run Code Online (Sandbox Code Playgroud)
最后有什么?我假设这使得document.images
/ document.getElementsByTagName('img')
数组不适合与for...in
语句一起使用,因为最后x的值不对应于图像?也许for
循环更好?
我使用MSVS 2010和MSVC++ E 2010在C++中构建我的应用程序,我注意到很多朋友(在他们的PC上测试我的应用程序)没有在他们的计算机上安装Microsoft C++运行时库.我已经开始在我的应用程序中包含Microsoft C++可再发行组件包,但这似乎没有必要.我是否可以将库包含在我的可执行文件目录中?我知道其中一个库是msvcr100.dll,但还有其他我需要包含的吗?或者redistro是我最好的选择吗?
我正在使用SwingWorkers来使我的GUI响应.但是我无法理解以下内容:当用户按下按钮时,我想从GUI调用远程方法.我有按钮的动作内部(问题的提示的简称):
//in action of button
SwingWorker worker = new SwingWorker<boolean,Void>(){
@Override
public boolean doInBackground(){
return call_remote_method_here();
}
};
worker.execute();
//some other code
Run Code Online (Sandbox Code Playgroud)
我的问题是虽然gui似乎响应,但对远程方法的实际调用是顺序的而不是并发的.我在网络跟踪中注意到它,并认为该方法是阻塞的.但后来我在踪迹中看到SwingWorkers似乎在顺序运行.从
log 2010-09-06 16:58:22,962 [ SwingWorker-pool-4-thread-1 ] DEBUG - >第一个远程方法调用
我得到了响应,然后第二个swingworker运行
2010-09-06 16:58:23,227 [ SwingWorker-pool-4-thread-1 ] DEBUG - >第二个远程方法调用
为什么会这样?我认为这是随机交错,但我注意到2个实例具有相同的名称?摇摆工人是否合并?这是随机行为吗?不是我看到2个并发呼叫?如果他们被重用,我有什么可以做并发呼叫而不是并行的吗?
谢谢
我有一个带有日期时间字段的模型,我想显示今天当天查看次数最多的条目.
我想我可能尝试像dt_published__date那样从datetime字段中提取日期,但显然它不起作用.
popular = Entry.objects.filter(type='A', is_public=True).order_by('-dt_published__date', '-views', '-dt_written', 'headline')[0:5]
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
使用ReSharper,我偶尔会获得快速修复建议,以便为LINQ操作导入命名空间.因此,在全新的类中给出以下代码:
linqToSqlDataContext.Customers.Count();
Run Code Online (Sandbox Code Playgroud)
我得到一个快速修复下拉如下:
我应该选择哪个,它们之间有什么区别?
我最近开始在我的.NET 4.0应用程序中使用Entity Framework 4.0,并对与池化相关的一些事情感到好奇.
据我所知,连接池由ADO.NET数据提供程序管理,在我的情况下是MS SQL服务器.当您实例化新的实体context(ObjectContext
)时,这是否适用,即无参数new MyDatabaseModelEntities()
?
a)为应用程序创建全局实体上下文(即一个静态实例)或b)使用using
块为每个给定操作/方法创建和公开实体上下文有哪些优点和缺点.
我应该了解的某些场景的任何其他建议,最佳实践或常用方法?
.net ×2
c# ×2
ado.net ×1
arrays ×1
c++ ×1
concurrency ×1
cryptography ×1
database ×1
datetime ×1
django ×1
google-maps ×1
guid ×1
image ×1
iphone ×1
java ×1
javascript ×1
linq ×1
ms-word ×1
pdf ×1
runtime ×1
sql ×1
swingworker ×1
uiwebview ×1