我正在寻找一个"好数字"算法来确定日期/时间值轴上的标签.我熟悉Paul Heckbert的Nice Numbers算法.
我有一个在X轴上显示时间/日期的图表,用户可以放大并查看较小的时间范围.我正在寻找一种算法,可以选择好的日期显示在刻度线上.
例如:
漂亮的标签刻度不需要对应于第一个可见点,而是接近它.
有人熟悉这样的算法吗?
我试图在Android上使用Java确定性地生成RSA密钥对.我的要求是我无法存储密钥对,它必须在运行时生成,以等同于任何先前/未来的运行.
我的过程就是确定性地为一个随机数生成器播种并传递该生成器来创建密钥.我的代码是:
SecureRandom random=SecureRandom.getInstance("SHA1PRNG");
random.setSeed(1234); //something device specific will be used to set this
KeyPairGenerator keyGen=KeyPairGenerator.getInstance("RSA");
keyGen.initialize(1024, random);
KeyPair pair=keyGen.generateKeyPair();
PublicKey pub=pair.getPublic();
PrivateKey priv=pair.getPrivate();
Run Code Online (Sandbox Code Playgroud)
生成的键与运行不同.但是,SecureRandom数字在运行之间是相同的,甚至在设备之间也是如此.
我错过了什么?我怎样才能重复生成这些密钥?
谢谢
我正在尝试执行存储过程(通过ODBC驱动程序对SQL Server 2005),我收到以下错误:
过程或函数'GetNodeID'需要参数'@ID',这是未提供的.
@ID是我的过程的OUTPUT参数,有一个输入@machine,它被指定并在存储过程中设置为null:
ALTER PROCEDURE [dbo].[GetNodeID]
@machine nvarchar(32) = null,
@ID int OUTPUT
AS
BEGIN
SET NOCOUNT ON;
IF EXISTS(SELECT * FROM Nodes WHERE NodeName=@machine)
BEGIN
SELECT @ID = (SELECT NodeID FROM Nodes WHERE NodeName=@machine)
END
ELSE
BEGIN
INSERT INTO Nodes (NodeName) VALUES (@machine)
SELECT @ID = (SELECT NodeID FROM Nodes WHERE NodeName=@machine)
END
END
Run Code Online (Sandbox Code Playgroud)
以下是我用来设置参数和调用过程的代码:
OdbcCommand Cmd = new OdbcCommand("GetNodeID", _Connection);
Cmd.CommandType = CommandType.StoredProcedure;
Cmd.Parameters.Add("@machine", OdbcType.NVarChar);
Cmd.Parameters["@machine"].Value = Environment.MachineName.ToLower();
Cmd.Parameters.Add("@ID", OdbcType.Int);
Cmd.Parameters["@ID"].Direction = ParameterDirection.Output;
Cmd.ExecuteNonQuery();
_NodeID = …
Run Code Online (Sandbox Code Playgroud) 我有一个SQL Server 2005 .BAK文件(使用维护计划创建),我试图将其还原到SQL Server 2005的另一个实例.
无论我是否使用UI RESTORE DATABASE
,恢复过程似乎停止在99%.如果我使用RESTORE VERIFYONLY FROM DISK='mybackup.bak'
它报告我的备份有效.
有趣的是,在我开始恢复过程后,我的MSSQL\DATA目录中出现了一个43 GB的事务日志文件..BAK文件是60 MB.系统具有足够的可用空间用于此恢复.
我应该尝试其他恢复策略的建议吗?我要让恢复过夜,看看会发生什么.
谢谢
我有一个对象InputFile
,它有数组和对象来保存文件的内容.我也有ABCFile
和XYZFile
,它们都继承InputFile
将读取不同类型的文件,并将它们存储到的投影成员InputFile
.
由于这两个对象的序列化和反序列化与父对象相同,因此我在父对象上实现了标准的XML序列化接口.在反序列化期间,会读取一些参数,Read
调用一个函数(加载文件),然后反序列化完成.
序列化工作得很好,但反序列化(of List<InputFile>
)不起作用,因为反序列化器调用父类存根Read
文件函数而不是ABCFile
或者XYZFile
.
如何让反序列化识别正确使用的对象类型?我List<InputFile>
的文件类型可能会混合在一起.
谢谢
我用来序列化对象的代码:
public class InputFileHolder : IXmlSerializable {
...
public void WriteXml(XmlWriter w) {
XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
ns.Add("", "");
XmlSerializer ifXml = new XmlSerializer(typeof(List<InputFile>));
ifXml.Serialize(w, InputFiles, ns);
//More serialization
}
Run Code Online (Sandbox Code Playgroud)
我自定义序列化List时如何维护对象类型的任何想法?