小编Jas*_*ker的帖子

如何在Debian上编译DOS程序?

对于我的汇编语言类,我们使用DPMI编写DOS程序.不幸的是,我无法一直访问32位Windows机器.我确实在我使用的每台计算机上安装了一个Debian虚拟机.

我安装了DOSBox和DOSEMU.有什么办法可以在Linux而不是DOS中汇编和编译程序吗?我正在使用nasm,所以我似乎没有任何问题得到它汇编DOS格式.但是,我无法通过编译器使用我的C代码运行它并获得DOS可执行文件(使用gcc或MinGW).

有没有办法做到这一点,或者我几乎要在DOS下安装所有工具?

c assembly debian dos nasm

10
推荐指数
2
解决办法
6173
查看次数

如何在Python中确定打开文件的大小?

有一个文件,我想确保不会超过2 GB(因为它必须在使用ext 2的系统上运行).检查文件大小的好方法是什么,记住我将在两次检查之间写入此文件?特别是,我是否需要担心尚未写入磁盘的缓冲,未刷新的更改?

python linux filesystems file ext2

10
推荐指数
4
解决办法
9238
查看次数

有没有开源病毒?

关于programmers.se的一个问题让我想知道:有没有人发布过开源病毒?当然,我只是想知道病毒的源代码可能是什么样的好奇心.快速谷歌搜索显示有大量的开源防病毒程序,但我没有看到任何开源病毒.

open-source virus

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

可以以某种方式改变变量吗?

所以我有一个看起来像这样的函数:

float function(){
    float x = SomeValue;
    return x / SomeOtherValue;
}
Run Code Online (Sandbox Code Playgroud)

在某些时候,此函数溢出并返回一个非常大的负值.为了尝试准确地追踪这发生的位置,我添加了一个cout语句,以便函数看起来像这样:

float function(){
    float x = SomeValue;
    cout << x;
    return x / SomeOtherValue;
}
Run Code Online (Sandbox Code Playgroud)

它工作了!当然,我通过使用双重完全解决了这个问题.但我很好奇为什么这个功能在我做的时候能正常工作.这是典型的,还是我错过了其他地方的错误?

(如果有任何帮助,浮点数中存储的值只是一个整数值,而不是一个特别大的值.我只是把它放在一个浮点数中以避免转换.)

c++ floating-point cout cpu-registers floating-point-precision

9
推荐指数
1
解决办法
2192
查看次数

使用随机输入测试最佳实践

注意:我提到接下来的几段作为背景.如果您只是想要TL; DR,请随意跳到编号问题,因为它们只是间接与此信息相关.

我正在编写一个python脚本,用POSIX日期(以及其他东西)做一些事情.单元测试这些似乎有点困难,因为可以遇到如此广泛的日期和时间.

当然,尝试测试每一个可能的日期/时间组合是不切实际的,所以我想我会尝试一个随机化输入的单元测试,然后报告测试失败时的输入.从统计学的角度来说,我认为如果我试图考虑所有潜在的问题区域(由于缺少的东西)或测试所有情况(由于纯粹的不可行性),我可以实现更多的测试完整性,假设我运行它足够的时间.

所以这里有几个问题(主要与上述内容间接相关):

  1. 什么类型的代码是随机测试的理想候选者?什么类型的代码不是?
    • 如何确定使用随机输入运行代码的次数?我问这个是因为我想要一个足够大的样本来确定任何错误,但是不想等待一周才能得到我的结果.
    • 这些类型的测试是否非常适合单元测试,还是有其他类型的测试可以很好地适应?
    • 做这种事还有其他最佳做法吗?

相关话题:

language-agnostic unit-testing

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

使用接口将对象从一种类型转换为另一种类型?

假设我有两个具有相同接口的类:

interface ISomeInterface 
{
    int foo{get; set;}
    int bar{get; set;}
}

class SomeClass : ISomeInterface {}

class SomeOtherClass : ISomeInterface {}
Run Code Online (Sandbox Code Playgroud)

假设我有一个表示SomeClass的ISomeInterface实例.有没有一种简单的方法可以将其复制到SomeOtherClass的新实例中而无需手动复制每个成员?

更新: 对于记录,我不是试图将SomeClass的实例强制转换为SomeOtherClass的实例.我想做的是这样的事情:

ISomeInterface sc = new SomeClass() as ISomeInterface;
SomeOtherClass soc = new SomeOtherClass();

soc.foo = sc.foo;
soc.bar = soc.bar;
Run Code Online (Sandbox Code Playgroud)

我只是不想为每个人手动执行此操作,因为这些对象具有许多属性.

.net c# interface copying .net-3.5

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

SQL可移植性问题

我的公司让我为Oracle ORM完成Oracle的后端工作.令我惊讶的是,即使对于简单的东西,RDBMS也会有多么不同.我已经学到了很多关于Oracle和其他RDBMS之间差异的知识.出于纯粹的好奇心,我想了解更多.

在将SQL从一个平台移植到另一个平台方面有哪些常见的"问题"?

请,每个答案只有一个问题.

sql database orm portability rdbms-agnostic

9
推荐指数
1
解决办法
1145
查看次数

成为一个懒惰的开发人员或不成为一个懒惰的开发人员?

我是一个懒惰的开发者吗?是否懒惰使用自动化工具,如代码生成器等?

现在,如果必须的话,我可以创建我需要的所有数据层和实体,但我选择使用CodeSmith来生成我的数据层和实体.我也使用Resharper,我会说它与MSDeploy战斗,在Visual Studio之后首先安装它.如果我不得不,我可以在没有它的情况下进行编码,但不愿意.

从我的观点来看,这两种工具都没有大脑,因为它们可以大幅提高产量.

但这是懒惰吗?我敢肯定那里有纯粹主义者会说你应该知道一切都应该被你知道所做的一切,但是如果你能读完代码并看看发生了什么就好了吗?

我是懒惰还是我只是在手里拿着所有牌?

plugins automation visual-studio

9
推荐指数
4
解决办法
2473
查看次数

可选参数无法删除?

我想要一个尾递归版本List.map,所以我写了自己的.这里是:

let rec list_map f l ?(accum=[])=
  match l with
      head :: tail -> list_map f tail ~accum:(head :: accum)
    | [] -> accum;;
Run Code Online (Sandbox Code Playgroud)

每当我编译这个函数时,我得到:

File "main.ml", line 69, characters 29-31:
Warning X: this optional argument cannot be erased.
Run Code Online (Sandbox Code Playgroud)

教程说这意味着我正在尝试创建一个没有非可选参数的函数.但上面的函数显然采用了非可选参数.

我可能只是在做一些非常愚蠢的事情,但是什么呢?

ocaml compiler-warnings optional-arguments

9
推荐指数
3
解决办法
2631
查看次数

是什么让Oracle更具可扩展性?

Oracle似乎比其他RDBMS具有更高的可扩展性.稍微使用它之后,我可以说它比其他RDBMS更复杂,但我还没有真正看到任何使它比其他RDBMS 更具可扩展性的东西.但话说回来,我还没有真正深入研究它.

Oracle具有哪些功能更具可扩展性?

oracle rdbms scalability

9
推荐指数
1
解决办法
2213
查看次数