小编Jon*_*gel的帖子

从ruby-ncurses中获取256种颜色

我的终端中有256种颜色很好用(测试脚本在这里),但是当我使用ncurses(通过Ruby-ncurses)时它停止工作.打印在该页面上给出的转义序列工作正常,但是当我初始化ncurses'puts'停止工作时,我无法使用我发现的各种ncurses颜色更改/字符串输出函数输出颜色.是什么赋予了?

ruby terminal ncurses 256color

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

如何使用Java的SQL Server Compact Edition(CE)?

我想从Java访问Microsoft SQL Server Compact Edition数据库.我怎样才能做到这一点?我搜索了SQLCE的JDBC驱动程序,但我找不到.

java sql-server jdbc sql-server-ce

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

在集成更改之前,哪些版本控制程序可以强制执行测试的运行和传递?

在我的工作中,我们目前使用Aegis版本控制/ SCM.我们配置它的方式,我们有一堆测试,它强制以下事情是真实的,然后才能集成更改:

  • 必须运行完整的测试集.
  • 所有测试都必须通过.

通过测试驱动开发(TDD),这些似乎是明智的要求.但我还没有听说过任何其他版本控制系统可以做到这一点.(我们目前不打算转换,但我想知道将来如何不使用Aegis.)

我会对任何可以做到这一点的VCS(分布式或非分布式)感兴趣,我也对现有VCS的任何插件/扩展感兴趣.优选地是开源软件.

ETA:好的,似乎通常要做的是拥有VCS +持续集成软件,并且运行测试是作为构建的一部分自动化的,而不是单独的步骤.如果我理解正确,那仍然允许您提交未通过测试的代码,只是您收到通知 - 是吗?有什么东西可以阻止你完全集成/提交它吗?

testing version-control tdd aegis

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

解释或调查基于人工智能(AI)的麻将游戏方法/策略的资源

虽然麻将(实际游戏,而不是麻将solitare)在基本规则和游戏玩法方面相当简单,但设定AI过渡目标以达到某些最终游戏目标似乎相当复杂.

是否有人知道与此主题相关的任何论文,研究或其他材料?

artificial-intelligence mahjong

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

Sql Server Service Broker对话组

有人可以解释服务经纪人中的对话组吗?

目前,我正在使用服务代理将消息从一个SQL服务器发送到另一个SQL服务器.在发送服务器上,我正在尝试关联消息,以便在接收端串行处理它们.根据文档,对话组似乎非常适合这种情况,但在接收服务器上,消息会被分配到与发送消息时指定的对话组不同的对话组.

我在网上搜索,看到这种行为似乎是有意的(http://social.msdn.microsoft.com/forums/en-US/sqlservicebroker/thread/baf48074-6804-43ab-844a-cb28a6dce02b/) ,但后来我对语法的有用性感到困惑(http://msdn.microsoft.com/en-us/library/ms178624.aspx)

WAITFOR( 
  GET CONVERSATION GROUP @conversation_group_id FROM [dbo].[ReceiveQueue]
)
Run Code Online (Sandbox Code Playgroud)

如果会话组没有遇到来自发件人的邮件,并且使用相同会话组ID发送的邮件在接收方没有相同的会话组ID,那么上面代码的重点是什么?

sql-server service-broker

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

捍卫'WAITFOR DELAY'sql注入攻击?

问题

我们需要在我们的java应用程序中防御'WAITFOR DELAY'sql注入攻击.

背景

[这很长.跳到'解决方案?' 以下部分,如果你匆忙]

我们的应用程序主要使用预准备语句和可调用语句(存储过程)来访问数据库.

在一些地方,我们动态构建并执行查询以供选择.在此范例中,我们使用条件对象根据用户输入条件构建查询.例如,如果用户为first_name和last_name指定了值,则查询结果总是如下所示:

SELECT first_name,last_name FROM MEMBER WHERE first_name ='joe' AND last_name='frazier'
Run Code Online (Sandbox Code Playgroud)

(在这个例子中,用户会指定"joe"和"frazier"作为他/她的输入值.如果用户有更多或更少的批评,我们会有更长或更短的查询.我们发现这种方法比使用准备更容易声明,比存储过程更快/更高效.

攻击

漏洞审计报告了sql注入失败.攻击者为'last_name'参数注入'frazier WAITFOR DELAY '00:00:20'值,导致这个sql:

   SELECT first_name,last_name FROM MEMBER WHERE first_name ='joe' AND last_name='frazier' WAITFOR DELAY '00:00:20'
Run Code Online (Sandbox Code Playgroud)

结果:查询成功执行,但执行时间为20秒.攻击者可以占用数据库池中的所有数据库连接,并有效地关闭您的站点.

关于这种'WAITFOR DELAY'攻击的一些观察

  • 我曾经想过,因为我们使用了Statement executeQuery(String),所以我们可以安全地从sql注入.executeQuery(String)不会执行DML或DDL(删除或删除).并且在分号上执行Query(String)choke,因此'Bobby Tables'范例将失败(即用户输入'frazier; DROP TABLE成员'作为参数.参见http://xkcd.com/327/)

  • "WAITFOR"攻击在一个重要方面有所不同:WAITFOR修改现有的"SELECT"命令,而不是单独的命令.

  • 攻击仅适用于生成的查询中的"最后一个参数".即'WAITFOR'必须出现在sql语句的最后

解决方案,廉价黑客还是两者

最明显的解决方案是简单地将"AND 1 = 1"添加到where子句中.

生成的sql立即失败并阻止攻击者:

   SELECT first_name,last_name FROM MEMBER WHERE first_name ='joe' AND last_name='frazier' WAITFOR DELAY '00:00:20' AND 1=1
Run Code Online (Sandbox Code Playgroud)

问题

  • 这是WAITFOR攻击的可行解决方案吗?
  • 它是否可以抵御其他类似的漏洞?
  • 我认为最好的选择是使用准备好的陈述.更多的工作,但不那么脆弱.

sql-server sql-injection jdbc

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

如何找出哪个线程在java中锁定文件?

我正在尝试删除我的程序中的另一个线程之前使用过的文件.

我无法删除该文件,但我不知道如何确定哪个线程可能正在使用该文件.

那么如何找出哪个线程在java中锁定文件?

java multithreading file-locking

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

C++重载变量参数的运算符逗号

是否可以通过重载参数的运算符逗号来为函数构造可变参数?我想看一个如何做的例子......,也许是这样的:

template <typename T> class ArgList {
public:
    ArgList(const T& a);
    ArgList<T>& operator,(const T& a,const T& b);
}
//declaration
void myFunction(ArgList<int> list);

//in use:
myFunction(1,2,3,4);

//or maybe:
myFunction(ArgList<int>(1),2,3,4);
Run Code Online (Sandbox Code Playgroud)

c++ arguments operators variadic comma-operator

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

作为一个新手,如果我想创建一个小的GUI程序,我应该去哪里?

我是一名新手,在BASIC,Python以及所有东西,汇编程序(作为视频游戏ROM黑客的一部分)中写作方面有一点经验.我想创建一个小工具,用于修改特定文件中具有GUI界面的特定点的十六进制值.

我正在寻找的是创建小型GUI程序的能力,我可以将其作为EXE(或者至少是一个独立的目录)进行分发.我并不热衷于.NET语言的想法,因为我不想强迫人们下载庞大的.NET框架包.我目前使用IDLE和Boa Constructor设置Python,应用程序在那里运行.我试过在编译Python应用程序,它依赖于wxWidgets的查找信息,但我发现在搜索结果和信息一直扑朔迷离,或只是完全不知所云.

我的问题是:

  1. python是否适合用于此类项目?
  2. 如果我使用Py2Exe,WxWidgets是否已经包含在内?或者我的用户是否必须以某种方式在他们的机器上安装WxWidgets?我是否正确地想在Py2Exe上只生成一个独立的目录'dist',它有必要的文件供用户双击并运行应用程序?
  3. 如果程序只依赖于Tkinter的GUI内容,那么EXE Py2Exe会产生吗?如果是这样,他们的任何'可视'GUI构建器/ IDE只适用于Tkinter吗?

感谢您的时间,

JBMK

python wxwidgets tkinter py2exe

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

在星型模式中,事实和维度之间的外键约束是否必要?

我第一次接触数据仓库,我想知道是否有必要在事实和维度之间设置外键约束.没有它们有任何重大缺点吗?我目前正在使用关系星型模式.在传统的应用程序中,我习惯使用它们,但我开始怀疑在这种情况下是否需要它们.我目前正在SQL Server 2005环境中工作.

更新:对于那些感兴趣的人,我遇到了一个民意调查问同样的问题.

sql-server database-design data-warehouse

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