在Java构建系统中对包依赖性实施限制的可能性有哪些?例如,myapp.server.bl.Customer不应该允许类引用myapp.client.ui.customlayout包.我对基于Ant或IDE的解决方案感兴趣.
我想在构建中收到一条错误消息,指出违反了(自定义)程序包依赖关系规则并且构建已中止.我还想在Ant脚本或IDE项目文件之外的列表中维护依赖项,最好是在文本文件中.
(我不知道Maven,但我在这里读到它对模块依赖管理有更好的支持)
我工作的IT部门正在尝试迁移到100%虚拟化服务器,所有数据都存储在SAN上.他们尚未完成,但该计划最终还要求将现有的物理SQL Server计算机移动到虚拟服务器.
几个月前,我参加了Heroes Happen Here发布活动,在一个SQL Server会话中,发言者顺便提到,这对于生产系统来说不是一个好主意.
所以我正在寻找一些东西:
有没有办法用automake在每个文件的基础上设置标志?
特别是,如果我有一个c ++项目并想用-WAll编译所有文件,除了我要禁用特定警告的文件,我该怎么办?
我尝试过类似的东西:
CXXFLAGS = -WAll ...
bin_PROGRAMS = test
test_SOURCES = main.cpp utility.cpp
utility_o_CXXFLAGS = $(CXXFLAGS) -Wno-unused-value
Run Code Online (Sandbox Code Playgroud)
但它不起作用.
编辑:删除了对automake手册的引用,这实际上是误导(感谢Douglas Leeder).
我想从我的应用程序创建Code39编码的条形码.
我知道我可以使用字体,但我不想这样做,因为我必须在服务器上注册字体,而且我有一些非常不好的经历.
在提出这个问题之后我提出的一个例子就是答案
这是我过去花了几个小时研究的问题.在我看来,这应该是现代RDBMS解决方案应该解决的问题,但到目前为止,我还没有发现任何真正解决我认为在具有数据库后端的任何Web或Windows应用程序中非常普遍的需求.
我说的是动态排序.在我的幻想世界中,它应该像以下一样简单:
ORDER BY @sortCol1, @sortCol2
Run Code Online (Sandbox Code Playgroud)
这是遍布Internet 的新手SQL和存储过程开发人员给出的典型示例."为什么这不可能?" 他们问.总是有人最终会向他们讲述存储过程的编译性质,一般的执行计划,以及为什么不能将参数直接放入ORDER BY子句的各种其他原因.
我知道你们中有些人已经在想:"让客户进行排序." 当然,这会从数据库中卸载工作.然而,在我们的案例中,我们的数据库服务器甚至没有在99%的时间里出汗,它们甚至还没有多核,或者每6个月发生一次对系统架构的任何其他改进.仅仅因为这个原因,让我们的数据库处理排序不会有问题.另外,数据库非常好擅长排序.它们已针对它进行了优化,并且已经有多年时间才能做到正确,这样做的语言非常灵活,直观且简单,而且最重要的是,任何初学SQL编写者都知道如何去做,更重要的是他们知道如何编辑它,进行更改,进行维护等等.当您的数据库远非被征税而您只想简化(并缩短!)开发时间时,这似乎是一个明显的选择.
然后是网络问题.我已经使用了JavaScript来对HTML表进行客户端排序,但是它们不可避免地对我的需求不够灵活,而且,因为我的数据库没有过度征税而且可以非常容易地进行排序,我很难证明重写或滚动我自己的JavaScript分拣机所需的时间.服务器端排序通常也是如此,尽管它已经比JavaScript更受欢迎了.我不是特别喜欢DataSet的开销的人,所以起诉我.
但这又说明了这是不可能的 - 或者更确切地说,不容易.在先前的系统中,我已经完成了一种令人难以置信的黑客方式来获得动态排序.它不漂亮,不直观,简单或灵活,初学者SQL编写器会在几秒钟内丢失.这已经不仅仅是一个"解决方案",而是一个"复杂化".
以下示例并不意味着公开任何类型的最佳实践或良好的编码风格或任何内容,也不表示我作为T-SQL程序员的能力.他们就是这样,我完全承认他们是混乱,糟糕的形式,只是简单的黑客.
我们将一个整数值作为参数传递给存储过程(让我们调用参数只是"排序"),然后从中确定一堆其他变量.例如......让我们说sort是1(或默认值):
DECLARE @sortCol1 AS varchar(20)
DECLARE @sortCol2 AS varchar(20)
DECLARE @dir1 AS varchar(20)
DECLARE @dir2 AS varchar(20)
DECLARE @col1 AS varchar(20)
DECLARE @col2 AS varchar(20)
SET @col1 = 'storagedatetime';
SET @col2 = 'vehicleid';
IF @sort = 1 -- Default sort.
BEGIN
SET @sortCol1 = @col1;
SET @dir1 = 'asc';
SET @sortCol2 = @col2; …Run Code Online (Sandbox Code Playgroud) 不知道是否有人知道,或有指向好的文档,讨论,可可的低层次的实现细节"performSelectorOnMainThread:"方法.
我最好的猜测,我认为可能非常接近,是它使用马赫端口或它们之上的抽象来提供线程内通信,将选择器信息作为mach消息的一部分传递.
对?错误?谢谢!
更新09:39 AMPST
感谢Evan DiBiase和Mecki的答案,但澄清一下:我理解运行循环中会发生什么,但我正在寻找答案的是; " 其中在方法得到排队?如何被选择器信息获取传递到队列?" 寻找超过Apple的文档信息:我读过他们
更新14:21PST
Chris Hanson在评论中提出了一个很好的观点:我的目标不是学习底层机制,以便在我自己的代码中利用它们.相反,我只是对更好地概念性地理解另一个线程执行代码的过程感兴趣.正如我所说的,我自己的研究使我相信,它的花费马赫通讯的优势,为IPC线程之间传递信息的选择,但我专门找了混凝土上发生了什么信息,所以我可以肯定我的理解事情正确.谢谢!
更新03/06/09
我已经开启了这个问题的赏金,因为我真的希望看到它得到回答,但如果你想收集请确保你阅读所有内容,包括所有当前提出的答案,对这些答案的评论和我原来的问题,以及我上面发布的更新文本.我正在寻找所用机制的最低级细节performSelectorOnMainThread:,正如我前面提到的,我怀疑它与Mach端口有关,但我真的很想知道.除非我能确认给出的答案是正确的,否则不会颁发赏金.感谢大家!
我有一个winforms应用程序,问题与线程有关.因为我调用'MyCustomCode()来创建一个新线程,并调用方法'SomeMethod()'然后访问MessageBox.Show(...).
问题与线程有关,因为新创建的线程正在尝试访问在另一个线程上创建的控件.
我收到错误:
跨线程操作无效:控制'TestForm'从其创建的线程以外的线程访问.
public TestForm()
{
InitializeComponent();
// custom code
//
MyCustomCode();
}
public void SomeMethod()
{
// ***** This causes an error ****
MessageBox.Show(this,
ex.Message,
"Error",
MessageBoxButtons.OK,
MessageBoxIcon.Error
);
}
private void InitializeAutoUpdater()
{
// Seperate thread is spun to keep polling for updates
ThreadStart ts = new ThreadStart(SomeMethod);
pollThread = new Thread(ts);
pollThread.Start();
}
Run Code Online (Sandbox Code Playgroud)
更新
如果你看一下这个例子http://www.codeproject.com/KB/cs/vanillaupdaterblock.aspx,CheckAndUpdate方法正在调用MessageBox.Show(..),这就是我的问题所在.我本以为代码很好用!
有趣的是,这个代码在星期五工作得很好???
我们有一台运行SQL Server 2005的Windows机器,我们需要能够从Linux机器上运行一些数据库查询.有哪些建议的方法可以做到这一点?理想情况下,我们需要一个类似于Windows上的sqlcmd的命令行实用程序.