我是makefiles的新手.我从"使用GNU make管理项目"一书中学习了makefile创建和其他相关概念.makefile现在准备好了,我需要确保我创建的那个是好的.这是makefile
#Main makefile which does the build
#makedepend flags
DFLAGS =
#Compiler flags
#if mode variable is empty, setting debug build mode
ifeq ($(mode),release)
CFLAGS = -Wall
else
mode = debug
CFLAGS = -g -Wall
endif
CC = g++
PROG = fooexe
#each module will append the source files to here
SRC := main.cpp
#including the description
include bar/module.mk
include foo/module.mk
OBJ := $(patsubst %.cpp, %.o, $(filter %.cpp,$(SRC)))
.PHONY:all
all: information fooexe
information:
ifneq ($(mode),release)
ifneq ($(mode),debug)
@echo "Invalid …Run Code Online (Sandbox Code Playgroud) 我是C#的新手.我需要在某个目录下打开一堆代码文件,并获取包含一些匹配字符串的特定行.这是一个简单的问题,我可以使用流阅读器逐个打开文件,然后逐行解析它们.我想知道是否有更有效的方法来做同样的事情.就像我的印象是Stream阅读器和逐行阅读将是繁重的操作.
有人告诉我,ROUND_HALF_EVEN是最受欢迎的财务数据计算舍入模式.我很想知道这种舍入模式为什么以及如何减少javadoc BigDecimal 1.4.2中所述的累积误差.谢谢,迪恩
我们正在尝试建立一个仅定期插入新记录的事务表.
这个简单的表要求我们不断添加新记录.此表中的事务量预计会非常高,并且可能会定期批量导入事务(> 1000),这可能需要几秒钟才能完成.
然后,我们从这些数据中执行一组select语句,将不同的列分组以返回所需的值.
从我们的初始测试中,我们发现了一个与SQL Server相关的瓶颈,它在INSERTS事务的中间阻塞了我们的SELECT.
下面是一个简单的示例,可用于说明问题.
- 简单的数据库表
create table LOCK_TEST (
LOCK_TEST_ID int identity ,
AMOUNT int);
Run Code Online (Sandbox Code Playgroud)
- 在1个查询窗口中运行此命令
begin tran
insert into LOCK_TEST (AMOUNT) values (1);
WAITFOR DELAY '00:00:15' ---- 15 Second Delay
insert into LOCK_TEST (AMOUNT) values (1);
commit
Run Code Online (Sandbox Code Playgroud)
- 在查询2中并行运行
select SUM(AMOUNT)
from LOCK_TEST;
Run Code Online (Sandbox Code Playgroud)
我希望查询2直接返回,0直到查询1完成,然后显示2.我们永远不希望看到从第二个查询返回1.
我们看到的答案与select语句中的WITH(NOLOCK)有关.但这违反了交易边界,返回的信息可能属于财务性质,我们不希望在查询中看到任何未提交的详细信息.
我的问题似乎是在INSERT方面...
为什么INSERT阻止SELECT语句,即使它没有修改任何现有数据?
奖励积分问题: 这是SQL Server的"功能",还是我们会在其他数据库版本上找到它?
更新 我现在有时间找到一个本地oracle数据库并运行相同的简单测试.这个测试通过我的预期.
即我可以根据需要经常运行查询,并且它将返回null,直到第一个事务提交,然后返回2.
有没有办法让SQL Server像这样工作?还是我们需要迁移到Oracle?
我正在做一些初步的工作,研究DVCS(像Git,Hg,Bazar这样的人)如何在科学编程过程中提供帮助,尤其是研究生.我认为自从我编程了几年以来,我已经处于相当有利的位置,目前正在开始自然科学硕士课程.目标是在一两个月内对此进行简短介绍.
据我所知,除了源控制的明显优势外,DVCS目前还为研究生的日常生活提供了以下改进:
分枝:
这是一个很大的问题.从观察DVCS实践可以看出,廉价分支主要是鼓励对新功能进行实验.科学编程完全是关于实验的.可以创建不同的分支来调整参数或算法.这一点尤其重要,因为大多数科学代码在他们的一生中都没有看到过一次重构(大多数研究生甚至都不知道它是什么),所以去不同分支的能力会给典型的疯狂带来一些方法.快速提交也可能意味着使用提交注释作为实验室笔记本的替代品.计算结果可以标记为特定的提交哈希码,以进行可重复的研究.
推送到服务器:
由于现在大多数科学代码都运行在某种集群上,因此DVCS可以用作某种更高级的Rsync,许多人已经将其用于将"生产"代码推送到HPC集群.这与分支相结合,可轻松运行多个版本的代码而无需离开
论文合作:
需要我多说?具有多个作者的论文与小型开源项目完全相同.当作者都在LaTex中写作时,论文上的协作应该是一个自然的选择,如果用Word之类的东西完成写作会带来额外的复杂性.这是提交评论可能发挥更大作用的地方.
我的问题是,您认为DVCS可以为科学程序员做出什么贡献?我看到很多关于转向社区源代码控制的讨论,但大多数人仍在研究Subversion.从我粗略的笔记来看,听起来DVCS应该是新毕业生的完美工作流程范例.我的想法有缺陷吗?或者科学编码是否仅仅落后于甚至听说过 DVCS工具?
有关:
我想知道为什么Java 5及以上版本在String类中使用静态方法提供了printf样式的格式化程序,如下所示:
public static String format(String format, Object... args)
Run Code Online (Sandbox Code Playgroud)
代替
public String format(Object... args)
Run Code Online (Sandbox Code Playgroud)
这样我们就可以写出"%02d".format(5)让05代替String.format("%02d", 5).
我想如果我可以修改String类,我可以添加:
public String format(Object... args) {
return format(this, args)
}
Run Code Online (Sandbox Code Playgroud)
得到相同的结果.
我发现在C#中,还使用静态方法而不是实例方法.
我想知道为什么他们决定这样做,但我没有得到解释.实例方法trim并substring返回一个新的string实例,所以他们应该做同样的事情format.
此外,该DateFormat课程还使用了这个:
public final String format(Date date)
Run Code Online (Sandbox Code Playgroud)
用于格式化日期.因此,如果我们将DateFormat的实例视为格式化程序,则String的实例也可以用作格式化程序.
有任何想法吗?
我想从ASP.NET中的数据库动态生成表单,最好的方法是什么?我可以使用任何内置功能吗?
我将有数据库表来表示面板及其名称,然后对于每个面板,它包含不同的字段及其类型(组合,文本框等等).
请指教,谢谢.
注意:我必须使用Telerik Ajax控件来生成表单
什么是WPF到WinForms程序员?
WinForms蒸馏是为表单添加控件,并添加事件处理程序.这简单易行,可以快速创建功能GUI.
另一方面,WPF是XAML(?)+ Code(?),这似乎是一种更复杂的方式来制作更漂亮的UI.
关于WPF方面有很多现有的SO问题,但我正在寻找一个关于如何获得它的两句话.我应该专注于学习XAML吗?或者是通过直接访问类和编写代码(如Winforms)编写的真正的WPF?
另外,像我这样的WinForms程序员在使用WPF时会看到什么实际好处呢?3D图形,文本的任意缩放以及应用程序的自定义"皮肤"都不是有效的答案.WPF提供了一个用于跟踪运输订单的应用程序.
我正在使用Bazaar进行版本控制,我很满意.在Bazaar中,源控制中的每个树/项目都称为"分支".
目前我有一个实际应用程序的"主"分支,以及一个'dev'分支,其中包含一些内容,如单元测试,以及用户手册等.这样,应用程序及其相关测试都是版本化的,但是分别.
但是,我怀疑我这样做的方式不是最好的方法.例如,如果我要从'main'分支创建发布分支,那么这些发布分支将与单元测试不同步,除非我以相同的方式分支它们.
目前,为了创建应用程序的快照,我只是从该主分支导出所有文件并将其压缩,因为该分支的树中没有任何内容不属于将被发送给客户端的应用程序.
做我正在做的事情的更好方法是什么?单元测试是否应该进入与应用程序相同的"主"分支,如果是,那么什么是轻松创建"快照"的便捷方式,即相当于"每日构建",其中仅包含将随之分发的文件应用程序?
谢谢大家的答案.很难决定接受谁的答案.我已经解决的解决方案是在主树的'tests'子目录中进行测试; 如果我不想分发测试,我可以在以后轻松删除它.