小编Ori*_*rds的帖子

是否有用于备份数据库中数据的rake任务?

是否有用于备份数据库中数据的rake任务?

我已经备份了我的架构,但我想备份数据.这是一个小型的MySQL数据库.

ruby mysql database rake ruby-on-rails

5
推荐指数
1
解决办法
1709
查看次数

如果我在写入变量时锁定,在读取时是否还需要锁定,如果读取是原子的?

我有一个代码如下的类

private readonly object m_lock = new object();

private IClient m_client
private object m_context;
Run Code Online (Sandbox Code Playgroud)

设置客户端和上下文时,我按如下方式锁定

lock(m_lock)
{
    m_client = theClientFromSomewhere;
    m_context = contextObject;
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,如果我只需要m_client自己解决,这样做是否安全?

var localClient = m_client;

Debug.Assert(localClient != null);
localClient.DoStuff();
Run Code Online (Sandbox Code Playgroud)

m_client读取(在分配时localClient)保证是原子的,因此这应该在单个CPU上正常工作.

我可以(也在理论上)制作m_client变量volatile,然后通过防止其他CPU的无序读取,这在多个cpu中是安全的,但问题是,写入时锁定是否可以安全地读取不稳定?

写入"刷新"CPU缓存时是否锁定,以便在读取时不会出现乱序?

c# multithreading locking volatile

5
推荐指数
1
解决办法
740
查看次数

如何以编程方式检测是否已安装Windows 8.1更新

我想从C#应用程序中检测是否安装了最新的Windows 8.1更新(KB 2919355)

我无法在Microsoft的任何网站上或通过google找到任何表明如何执行此操作的内容。

谢谢!

c# windows-8.1

5
推荐指数
1
解决办法
2227
查看次数

EntLib缓存应用程序块的替代方案?

我正在开发一个Windows客户端应用程序,并希望缓存一些数据.这是一个非常简单的场景,基本上只是将一些数据保存在内存中,以便应用程序可以避免在网络连接中断时崩溃.

我可以推出自己的缓存解决方案,或使用EntLib缓存块,但在提交之前我正在寻找更多的替代方案.
问题是,我所做的所有搜索都显示:

  • entlib块(我已经知道了)
  • ASP.NET缓存(我不能使用)
  • 速度(分布式,需要Windows服务才能连接)
  • NCache(也分布式,类似于速度)

当然还有其他一些内存缓存库吗?

谢谢

.net client caching

4
推荐指数
1
解决办法
1285
查看次数

Android Java更新证书和Android KeyStore中的私钥

我有一个使用HTTPS客户端证书进行身份验证的系统,但根据以下过程生成证书本身:

  1. 客户端设备生成证书(包括公钥和私钥)
  2. 客户端设备将公钥发送到签署公钥的服务器,并将其作为签名证书返回
  3. 客户端以安全的方式存储证书,然后将其用作HTTPS客户端证书

我们有这个系统在iOS上工作,我正在尝试移植到android,但遇到了很多问题,因为Android的文档记录不清,安全API混乱.

我的代码大致如下:

生成证书

keyStore = KeyStore.getInstance(ANDROID_KEYSTORE);
keyStore.load(null);

Date startDate = new Date();
Date endDate = new Date(startDate.getTime() + FORTY_YEARS_IN_MILLISECONDS);

KeyPairGeneratorSpec spec = new KeyPairGeneratorSpec.Builder(context)
        .setAlias(alias)
        .setKeySize(2048)
        .setKeyType(KeyProperties.KEY_ALGORITHM_RSA)
        .setSubject(new X500Principal("CN=" + alias))
        .setSerialNumber(BigInteger.TEN)
        .setStartDate(startDate)
        .setEndDate(endDate)
        .build();

KeyPairGenerator generator = KeyPairGenerator.getInstance(KeyProperties.KEY_ALGORITHM_RSA, ANDROID_KEYSTORE);
generator.initialize(spec);
KeyPair keyPair = generator.generateKeyPair(); // this will put a certificate and key pair in the keyStore.
dumpKeyStore(keyStore);

byte[] entireKey = keyPair.getPublic().getEncoded();
// chop off first 24 bytes; the java key pair generator puts an object …
Run Code Online (Sandbox Code Playgroud)

java android keystore

4
推荐指数
2
解决办法
3889
查看次数

swift实际上对结构有什么影响?

Swift编程的普遍共识(截至2018年5月,Swift 4.1,Xcode 9.3)是结构应该是首选,除非您的逻辑明确要求对象的共享引用.

我们知道,结构的一个问题是它们是按值传递的,因此在将结构传递给函数或从函数返回时会产生一个副本.如果你有一个大的结构(比如说有12个属性),那么这种复制可能会变得昂贵.

这通常由人们说,swift编译器和/或LLVM可以删除副本(即传递对结构的引用,而不是复制它),并且只有在实际改变结构时才需要复制.

这一切都很好,但它总是在理论上被谈到 - "作为优化,LLVM 可以忽略副本"和类似的东西.

我的问题是,任何人都可以告诉我们什么实际发生了什么?编译器是否真的忽略了副本,或者它只是一天可能存在的理论上的未来优化?(例如,C#编译器理论上也可以删除struct副本,但它实际上从未实现过,并且Microsoft建议您不要对大于16字节的事物使用结构[1])

如果swift确实存在elide结构副本,那么是否以及何时执行此操作会有一些解释或启发式吗?

注意:我在谈论用户定义的结构,而不是像数组和字典这样的stdlib内置

[1] https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/choosing-between-class-and-struct

swift swift-structs

4
推荐指数
1
解决办法
105
查看次数

单表继承查找问题

我有以下3个rails类,它们都存储在一个表中,使用rails的单表继承.

class Template < ActiveRecord::Base
class ThingTemplate < Template
class StockThingTemplate < ThingTemplate
Run Code Online (Sandbox Code Playgroud)

如果我有一个StockThingTemplateID,150那么我应该在逻辑上能够做到这一点:

ThingTemplate.find(150)
=> #returns me the StockThingTemplate
Run Code Online (Sandbox Code Playgroud)

而事实上这个工程,有时

当它工作时,它会生成以下SQL查询:

SELECT * FROM templates WHERE (templates.`id` = 159) AND ( (templates.`type` = 'ThingTemplate') OR (templates.`type` = 'StockThingTemplate' ) )
Run Code Online (Sandbox Code Playgroud)

如果它不起作用,它会生成以下SQL查询:

SELECT * FROM templates WHERE (templates.`id` = 159) AND ( (templates.`type` = 'ThingTemplate') )
Run Code Online (Sandbox Code Playgroud)

sql正在做它应该做的事情,但问题是,为什么它一次生成一组SQL,另一次生成另一组.它的字面意思完全相同.

笔记:

  • 我在轨道上1.2
  • 我已经require 'stock_thing_template'在不同的地方尝试过了.它要么没有效果,要么引起其他问题

ruby inheritance ruby-on-rails

3
推荐指数
1
解决办法
635
查看次数

如何让Windows Powershell Get-ItemProperty只显示我想要的属性?

使用PowerShell时,有时我只想显示文件的名称或全名.
从我可以收集到的,这样做的方法是使用Get-ItemProperty(别名gp)和传递-n fullname,例如

PS C:\Dev> gp . -n fullname
Run Code Online (Sandbox Code Playgroud)

值得注意的是我要在更长的脚本与结合使用该foreachwhere,等

然后Powershell显示全名,但它还显示了一堆其他内容,如下所示:

PSPath       : Microsoft.PowerShell.Core\FileSystem::C:\Dev
PSParentPath : Microsoft.PowerShell.Core\FileSystem::C:\
PSChildName  : Dev
PSDrive      : C
PSProvider   : Microsoft.PowerShell.Core\FileSystem
fullname     : C:\Dev
Run Code Online (Sandbox Code Playgroud)

我的问题是,如何让powershell 只显示我想要的属性(fullname),而不是将所有其他东西都显示出来.是Get-ItemProperty即使这样做的正确方法?

更新:

如果我这样做:

ls -r | ?{ $_.fullname -match "foo" }
Run Code Online (Sandbox Code Playgroud)

这给了我一系列列表,每个目录一个,显示每个目录中的所有'foo'文件.我想要做的是巩固这些多个列表成一个单一的名单,并没有显示Mode,LastWriteTime,Length或任何其他不相关的东西.如果Get-ItemProperty不是展示这些东西的正确方法,那是什么?

powershell

3
推荐指数
1
解决办法
5万
查看次数

如何在C++/CLI中为返回值添加属性?

在C#中,您可以使用属性修饰函数返回值,如下所示:

[return: MarshalAs(UnmanagedType.IUnknown)]
object LoadStuff();
Run Code Online (Sandbox Code Playgroud)

我的问题是,如何在C++/CLI中执行此操作?我有这个:

[return: MarshalAs(UnmanagedType::IUnknown)]
Object^ LoadStuff();
Run Code Online (Sandbox Code Playgroud)

但编译器出错了'return' : unknown attribute qualifier.

是否有一种我无法找到的替代语法?

c# attributes c++-cli

3
推荐指数
1
解决办法
678
查看次数

如何在swift中轻松复制不可变结构,仅改变某些字段[如kotlin数据类复制方法]?

我有一个像这样的swift结构:

struct LogicalState {
  let a: String?
  let b: Bool
  let c: Int
}
Run Code Online (Sandbox Code Playgroud)

以及这种状态的可变实例.注意状态中的属性都是let,所以struct本身是不可变的.

var _state: LogicalState
Run Code Online (Sandbox Code Playgroud)

我想要做的是强制执行一种模式,允许更新状态,但所有更新必须是原子的 - 我不想简单地使a,b和c变为可变,因为这将允许a和b独立更改.我需要控制更新并应用验证(例如,要强制执行,如果更改a,您还必须同时更改b)

我可以通过简单地覆盖整个结构来做到这一点

_state = LogicalState(a: "newA", b: false, c: _state.c)
Run Code Online (Sandbox Code Playgroud)

但是,正如您所看到的,必须为不改变的属性显式引用旧状态(_state.c)是烦人且有问题的,尤其是当您有更多属性时.我的真实世界的例子有10个.

在kotlin中,他们有"数据类",它们公开了一个"复制"方法,它允许你只改变你想要的参数.如果swift支持这样的东西,语法将如下所示

func copy(a: String? = self.a, b:Bool = self.b, c:Int = self.c) ...
Run Code Online (Sandbox Code Playgroud)

问题是,= self.aswift中不存在语法,我不确定我有哪些其他选项?

如何解决这个问题的任何解决方案将非常感激

swift swift-structs

3
推荐指数
1
解决办法
440
查看次数