问题列表 - 第6404页

模板类型的命名约定?

传统上,模板类型的名称只是一个大写字母:

template<class A, class B, class C>
class Foo {}; 
Run Code Online (Sandbox Code Playgroud)

但我犹豫不决,因为它是非描述性的,因此难以阅读.所以,这样的事情会不会更好:

template<class AtomT, class BioT, class ChemT>
class Foo {}; 
Run Code Online (Sandbox Code Playgroud)

我也倾向于认为以下不是一个坏主意:

template<class ATOM, class BIO, class CHEM>
class Foo {}; 
Run Code Online (Sandbox Code Playgroud)

它使它们脱颖而出(而且,它又是大写字母).你怎么看?

c++ templates naming-conventions

24
推荐指数
2
解决办法
1万
查看次数

在默认浏览器中打开URL的安全方法是什么?

基本上我正在尝试在我的.NET应用程序中打开一个URL.这可以通过以下方式轻松实现:

Process.Start("http://www.google.com")
Run Code Online (Sandbox Code Playgroud)

但是在我的情况下,URL可以由外部用户控制,因此我不希望它们通过注入元字符等来在系统中执行命令.

安全的方式是:

  • 阅读注册表,看看默认浏览器是什么
  • New Process()使用默认浏览器的可执行文件创建
  • 提供URL作为参数
  • 开始这个过程

在实现这个之前,我只想确定我不会使这个过于复杂.你怎么看?

我并不热衷于对输入实施过滤,这只是一个肮脏的解决方案

.net security process

2
推荐指数
1
解决办法
187
查看次数

I18N的XML文档

我即将决定如何处理基于XML的UI描述格式的国际化.

格式通常如下所示:

...
<devif>
  <screen id="scr1" title="Settings for this and that">
    <header text="Climate readings"/>
    <rd setp="123" text="Air temperature" unit="°C"/>
    <rd setp="234" text="Humidity" unit="%RH"/>
    <rd setp="345" text="CO2" unit="ppm"/>

    <header text="Settings"/>
    <wr setp="567" text="Air temperature demand" unit="°C"/>
  </screen>
  ...
</devif>
Run Code Online (Sandbox Code Playgroud)

每个文件都包含大量屏幕,最多可包含10,000行,我们的应用程序中有十几个这样的文件.

我仍然可以改变格式以最好地满足我们的需求.那么你将如何翻译呢?

我一直在考虑一些可能的方法来解决这个问题:

  • 每种语言的单独文件,包含英文文本和翻译文本
  • 为每个标记使用ID,并为每个标识使用带有翻译文本的单独文件
  • 将所有翻译放在同一个文件中

第一种解决方案存在的问题是,根据上下文,英文文本可能会被翻译成不同的消息.

第二种解决方案使源文件的可读性降低(尽管不是很多),并且它不能轻松处理属性的转换.

一旦将文件翻译成5-6种语言,第三种解决方案就会使文件变得非常庞大和繁琐.

xml localization internationalization

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

渴望从Rails中的关联加载named_scope

有没有办法从关联中急切加载named_scope?

我有我的文章模型:

class Article < ActiveRecord::Base
  has_many :comments
end
Run Code Online (Sandbox Code Playgroud)

和我的评论模型:

class Comment < ActiveRecord::Base
  belongs_to :article

  named_scope :approved, :conditions => { :approved => true }
  named_scope :unapproved, :conditions => { :approved => false }
end
Run Code Online (Sandbox Code Playgroud)

我可以急切地加载文章的所有评论:

@article = Article.find(params[:id], :include => :comments)
Run Code Online (Sandbox Code Playgroud)

我怎样才能这样做,但仅限于批准的评论?

ruby-on-rails

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

如何在没有模板的情况下从django视图模拟HTTP Post请求

我正在撰写观点,不太热衷于立即编写模板.

但我需要通过提交帖子请求来测试我的程序.

我如何在django视图中模拟HTTP Post

我知道python的urllib2和httplib模块允许很多选项,但我正在寻找优雅地集成到django视图中的东西.

你会创建一个执行post的方法,你会在哪里调用它?

更新:一些答案通过向我的应用程序发送POST来处理测试.如果我想POST到外部服务并处理POST响应,该怎么办?如何在不编写模板的情况下完成.

django unit-testing http

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

C#问题使用blowfish NET:如何从Uint32 []转换为byte []

在C#中,我使用的是Blowfish.NET 2.1.3的BlowfishECB.cs文件(可以在这里找到)

在C++中,它是未知的,但它是相似的.

在C++中,Initialize(blowfish)过程如下:

void cBlowFish::Initialize(BYTE key[], int keybytes)
Run Code Online (Sandbox Code Playgroud)

在C#中,Initialize(河豚)程序是相同的

public void Initialize(byte[] key, int ofs, int len) 
Run Code Online (Sandbox Code Playgroud)

这就是问题:

这是在C++中初始化密钥的方式

DWORD keyArray[2] = {0}; //declaration
...some code
blowfish.Initialize((LPBYTE)keyArray, 8);
Run Code Online (Sandbox Code Playgroud)

如您所见,密钥是两个DWORDS的数组,总共8个字节.

在C#我声明它,但我收到一个错误

BlowfishECB blowfish = new BlowfishECB();
UInt32[] keyarray = new UInt32[2];
..some code
blowfish.Initialize(keyarray, 0, 8);
Run Code Online (Sandbox Code Playgroud)

错误是:

参数'1':无法从'uint []'转换为'byte []'

我究竟做错了什么?

提前致谢!

c# byte blowfish uint32

2
推荐指数
1
解决办法
4573
查看次数

我可以回去编辑SVN签到的评论吗?

我在SVN的评论中犯了一个错误.签到后可以编辑吗?

svn tortoisesvn

58
推荐指数
5
解决办法
4万
查看次数

哪个集合用于存储唯一字符串?

我正在寻找一个集合,Dictionary(OF Key, Value)但我实际上并不需要一个关键和价值.钥匙本身就足够了.所以像Collection(Key).它不应该接受重复的密钥.

我在.NET Framework中查找了几个集合但找不到我想要的东西.目前我一直在滥用Dictionary(OF String, String)和设置价值Nothing.

我要继续滥用词典(OF T,T)吗?

.net collections dictionary

12
推荐指数
1
解决办法
3631
查看次数

在SQLite中设置AUTOINCREMENT的起始值

如何在SQLite中设置AUTOINCREMENT字段的起始值?

sqlite

52
推荐指数
5
解决办法
6万
查看次数

C#:具有大量I/O的多线程性能不佳

我在C#中编写了一个应用程序,它将jpgs从一组目录同时移动到另一组目录(每个固定子目录一个线程).代码看起来像这样:

        string destination = "";
        DirectoryInfo dir = new DirectoryInfo("");
        DirectoryInfo subDirs = dir.GetDirectories();
        foreach (DirectoryInfo d in subDirs)
        {
            FileInfo[] files = subDirs.GetFiles();
            foreach (FileInfo f in files)
            {
                f.MoveTo(destination);
            }
        }
Run Code Online (Sandbox Code Playgroud)

但是,应用程序的性能是可怕的 - 大量的页面错误/秒.每个子目录中的文件数量可能会非常大,所以我认为一个很大的性能损失来自一个上下文切换,它不能同时将所有不同的文件阵列保存在RAM中,这样它就会进入磁盘几乎每一次.

我能想到两种不同的解决方案.第一种是用C或C++重写它,第二种是使用多个进程而不是多线程.

编辑:文件根据时间戳命名,它们移动到的目录基于该名称.因此,它们被移动到的目录将对应于它创建的小时; 例如3-27-2009/10.

我们正在为每个目录创建一个后台工作程序用于线程.

有什么建议?

c# performance multithreading

2
推荐指数
3
解决办法
2412
查看次数