小编Kit*_*sto的帖子

如何简化Django 1.7中的迁移?

南方已有类似的问题,但我已经开始使用Django 1.7进行我的项目,而不是使用South.

在开发过程中,已经创建了许多迁移,但是软件尚未完成,并且不存在必须迁移的数据库.因此,我想重置迁移,就像我当前的模型是原始模型并重新创建所有数据库一样.

建议的方法是什么?

编辑:从Django 1.8开始,有一个名为squashmigrations的新命令,它或多或少地解决了这里描述的问题.

django-1.7 django-migrations

91
推荐指数
6
解决办法
9万
查看次数

是否有强大的时间序列数据库系统?

在多个项目中,我们必须存储,汇总,评估简单的测量值.一行通常由时间戳,值和值的一些属性组成.在某些应用程序中,我们希望每秒存储1000个值以及更多值.这些值不仅必须插入,而且还必须以相同的速率删除,因为值的生命周期限制在一年左右(在不同的聚合步骤中,我们不会存储整年的1000/s).

到目前为止,我们已开发出不同的解决方案.一个基于Firebird,一个基于Oracle,另一个基于一些自制存储机制.但这些都不是非常令人满意的解决方案.

两种RDBMS解决方案都无法处理所需的数据流.除此之外,提供值的应用程序(例如设备驱动程序)不能轻易附加到数据库,插入语句很麻烦.最后,虽然强烈需要具有数据的SQL接口,但典型的评估很难在SQL中制定并且执行速度慢.例如,在上个月的所有测量中,每15分钟找到一个带有时间戳的最大值.

自制的解决方案可以处理插入速率,并且具有客户友好的API,但它没有像查询语言那样,并且不能被其他应用程序通过某些标准接口(例如报告)使用.

我梦想中的最佳解决方案是数据库系统:

  • 有一个非常快速插入的API
  • 能够以相同的速度删除/截断值
  • 提供标准SQL接口,具有对典型时间序列数据的特定支持

您是否知道某些数据库接近这些要求,或者您是否会以不同的方式解决问题?

database performance time-series

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

如何在Visual Studio中基于字符串比较设置条件断点?

这是我多年来不时尝试过的,而且从未成功过.我只想根据字符串相等性为Visual C++ 2012设置条件断点.我想测试的变量是

string test;
Run Code Online (Sandbox Code Playgroud)

我试过了

test == "foo"
=> The breakpoint cannot be set. no operator "==" matches these operands

test == string("foo")
=> The breakpoint cannot be set. no operator "==" matches these operands

test.compare("foo") == 0
=> The breakpoint cannot be set. This expression has side effects and will not be evaluated.

strcmp(test.c_str(), "foo") == 0
=> The breakpoint cannot be set. This expression has side effects and will not be evaluated.
Run Code Online (Sandbox Code Playgroud)

c++ breakpoints string-comparison conditional-breakpoint visual-studio-2012

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

这个Ghostscript错误信息是什么意思?

我从Ghostscript调用中收到此错误消息:

Error: /syntaxerror in -file-
Operand stack:

Execution stack:
   %interp_exit   .runexec2   --nostringval--   --nostringval--   --nostringval--     2   %stopped_push   --nostringval--
  --nostringval--   --nostringval--   false   1   %stopped_push   1926   1   3   %oparray_pop   1925   1   3   %oparray_
pop   1909   1   3   %oparray_pop   1803   1   3   %oparray_pop   --nostringval--   %errorexec_pop   .runexec2   --nostr
ingval--   --nostringval--   --nostringval--   2   %stopped_push
Dictionary stack:
   --dict:1169/1684(ro)(G)--   --dict:0/20(G)--   --dict:77/200(L)--
Current allocation mode is local
Current file position is 215
GPL Ghostscript 9.05: Unrecoverable error, exit code 1
Run Code Online (Sandbox Code Playgroud)

这是否意味着输入Postscript文件中存在问题,或者它是否意味着我的通话或安装有问题?

电话是:

ps2pdf book.ps book.pdf
Run Code Online (Sandbox Code Playgroud)

输入文件book.ps存在于当前目录中.

是否有Ghostscript错误消息列表以及它们在某处意味着什么?(在这种情况下,谷歌不是我的朋友.)

ghostscript

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

在静态库之外抛出C++异常?

通常,异常不得传播模块边界,例如Herb Sutters C++编码标准(第62项)中所述.使用不同的编译器或仅编译器设置编译时,这可能会崩溃.

我可以理解例如动态链接库的问题.但我想知道它是否适用于静态库.静态库是上述规则意义上的模块吗?如果使用其他编译器设置(例如对齐)编译库,则程序可能会崩溃,如果从静态库中抛出异常并在应用程序中捕获?

c++ exception static-libraries

9
推荐指数
2
解决办法
2322
查看次数

如何在C++中将UTC日期和时间转换为time_t?

我想将年,月,日等数字中给出的UTC日期和时间转换为time_t.有些系统提供类似mkgmtimetimegm用于此目的的功能,但这不是标准的,在我的Solaris系统上不存在.

到目前为止我找到的唯一解决方案是使用setenv将本地时区设置为UTC,然后调用mktime.但是,这种方法不是线程安全的,慢的,不可移植的,甚至会在我的系统上产生内存泄漏.

我也看到了尝试使用gmtime然后将其添加到结果的方法来确定当前UTC偏移的方法mktime.但据我所知,所有这些方法都有差距.毕竟,从本地时间到UTC的转换并不是唯一的.

您认为什么是最佳解决方案?

c++ time-t

7
推荐指数
2
解决办法
6231
查看次数

是否建议明确地使覆盖函数成为虚拟的?

在C++ 11之前,当在派生类中重写虚函数时,建议将virtual关键字也添加到派生类函数中以使意图清晰.

现在这样的功能被标记为"覆盖",其中包括必须存在虚拟基本功能的概念.因此我现在更喜欢省略虚拟:

class Derived: public Base {
public:
  void Overriden() override;
  // Instead of: virtual void Overriden() override;
};
Run Code Online (Sandbox Code Playgroud)

但是,这会导致MSVC 2012中的IntelliSense错误:'override'修饰符需要一个带有显式"virtual"关键字的虚函数声明

显然编译器会编译类,但错误让我想一想.是否仍有正当理由添加虚拟关键字?

c++ virtual overriding c++11

7
推荐指数
1
解决办法
1544
查看次数

Functor永远不会在C++中抽象化吗?

通常,模板参数可以是抽象类,如下面的程序也显示.但似乎排序中的比较仿函数不能是抽象的.至少以下内容不能用VC++ 11和Oracle Studio 12编译.

#include <vector>
#include <algorithm>


class Functor
{
public:
    virtual bool operator()(int a, int b) const = 0;
};


class MyFunctor: public Functor
{
public:
    virtual bool operator()(int a, int b) const { return true; }
};


int _tmain(int argc, _TCHAR* argv[])
{
    vector<Functor> fv; // template of abstract class is possible
    vector<int> v;
    MyFunctor* mf = new MyFunctor();
    sort(v.begin(), v.end(), *mf);
    Functor* f = new MyFunctor();
    // following line does not compile: 
    // "Cannot have a …
Run Code Online (Sandbox Code Playgroud)

c++ templates functor

6
推荐指数
2
解决办法
490
查看次数

为什么 constexpr 不是自动的?

据我所知, constexpr 可以被视为编译器的提示,以检查是否可以在编译时评估给定的表达式,并在可能的情况下进行评估。

我知道它也对声明为 constexpr 的函数或初始化施加了一些限制,但最终目标是编译时评估,不是吗?

所以我的问题是,为什么我们不能把它留给编译器呢?它显然能够检查前置条件,那么为什么它不对每个表达式进行检查并在可能的情况下在编译时进行评估呢?

关于为什么会这样,我有两个想法,但我还不确定它们是否达到了目的:

a) 在编译期间可能需要太长时间。

b) 由于我的代码可以在不允许 normale 函数的位置使用 constexpr 函数,因此说明符也是声明的一部分。如果编译器自己完成所有事情,则可以使用 C 数组定义中的函数和该函数的一个版本,但在下一版本中可能会出现编译器错误,因为编译时评估的前提条件是不比较满意。

c++ constexpr c++11

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

如何避免VS中unique_ptr检查的性能警告?

这段代码:

    unique_ptr<int> a;
    if (a) {
        cout << "ASSIGNED" << endl;
    }
Run Code Online (Sandbox Code Playgroud)

甚至这段代码:

    unique_ptr<int> a;
    if (static_cast<bool>(a)) {
        cout << "ASSIGNED" << endl;
    }
Run Code Online (Sandbox Code Playgroud)

导致此警告:

warning C4800: 'void (__cdecl *)(std::_Bool_struct<_Ty> &)' : forcing value to bool 'true' or 'false' (performance warning)
with
[
    _Ty=std::unique_ptr<int>
]
Run Code Online (Sandbox Code Playgroud)

在警告级别3的Visual Studio 2012中.在第一次评论之后,我发现只有在打开公共语言运行时支持/ clr时才会发生这种情况.我应该如何避免它?

if (a.get() != nullptr)
Run Code Online (Sandbox Code Playgroud)

应该工作,但我认为这不是unique_ptr的设计方式,是吗?

c++ unique-ptr visual-c++

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