当我通过Ajax将JSON字符串发布到Django时,它将其转换为无效的JSON格式.具体来说,如果我查看Firebug中的帖子数据,我发送:
info {'mid':1,'sid':27,'name':'aa','desc':'Enter info' }
Run Code Online (Sandbox Code Playgroud)
然而,当我在django请求中访问它时,我看到:
u'{\'mid\':1,\'sid\':27,\'name\':\'aa\',\'desc\':\'Enter Info\'}
Run Code Online (Sandbox Code Playgroud)
当我尝试使用json.loads解析它时,它会因无效的JSON消息而死亡.
我发帖是:
data.info = "{'mid':1,'sid':27,'name':'aa','desc':'Enter info' }";
$.ajax({url: cmdAjaxAddress,
type: "POST",
data: data,
success: function(txt) {
result = txt;
},
async: false });
Run Code Online (Sandbox Code Playgroud)
我正在阅读django中的POST,如下所示:
if request.is_ajax() and request.method == 'POST':
infoJson = request.POST['info']
info = json.loads(infoJson);
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激.
我想执行按@Test特定顺序注释的测试方法.
例如:
public class MyTest {
@Test public void test1(){}
@Test public void test2(){}
}
Run Code Online (Sandbox Code Playgroud)
我希望确保test1()在test2()每次运行之前运行MyTest,但我找不到像这样的注释@Test(order=xx).
我认为这对JUnit来说非常重要,如果JUnit的作者不想要订单功能,为什么?
问题是如何在C中获得动态分配的2D数组的长度?我认为下面的代码应该获得行数,但事实并非如此.
char** lines;
/* memory allocation and data manipulation */
int length; //the number of rows
length = sizeof(lines)/sizeof(char*);
Run Code Online (Sandbox Code Playgroud)
有什么想法吗?
我有一个国际象棋变种引擎,与正常的国际象棋一起玩自杀国际象棋和输家国际象棋.随着时间的推移,我可能会为我的引擎添加更多变种.该引擎完全用C++实现,并正确使用OOP.我的问题与这种变型引擎的设计有关.
最初这个项目最初只是一个自杀式引擎,而且随着时间的推移,我添加了其他风味.为了添加新的变体,我首先尝试在C++中使用多态.例如,MoveGenerator抽象类有两个子类SuicideMoveGenerator,NormalMoveGenerator并且根据用户选择的游戏类型,工厂将实例化正确的子类.但我发现这要慢得多 - 显然是因为实例化包含虚函数的类并在紧密循环中调用虚函数都是非常低效的.
但后来我发现使用带有模板特化的C++模板来分离不同变体的逻辑,并最大限度地重用代码.这似乎也很合乎逻辑,因为动态链接在上下文中并不是必需的,因为一旦你选择了游戏类型,你基本上坚持它直到游戏结束.C++模板专业化提供了这种 - 静态多态性.模板参数是SUICIDE或LOSERS或NORMAL.
enum GameType { LOSERS, NORMAL, SUICIDE };
Run Code Online (Sandbox Code Playgroud)
因此,一旦用户选择游戏类型,就会实例化适当的游戏对象,并且从那里调用的所有内容都将被适当地模板化.例如,如果用户选择自杀象棋,让我们说:
ComputerPlayer<SUICIDE>
Run Code Online (Sandbox Code Playgroud)
对象被实例化,并且该实例化基本上静态地链接到整个控制流.函数in ComputerPlayer<SUICIDE>将使用MoveGenerator<SUICIDE>,Board<SUICIDE>等等,而相应的函数NORMAL将适当地工作.
总的来说,这让我在开始时实例化正确的模板化专业课程,在任何if地方都没有任何其他条件,整个过程完美无瑕.最好的是没有性能损失!
然而,这种方法的主要缺点是使用模板会使您的代码更难阅读.如果处理不当,模板专业化也会导致严重错误.
我想知道其他变种引擎作者通常做什么来分离逻辑(好的代码重用)?我发现C++模板编程非常合适,但如果有更好的东西,我会很高兴拥抱.特别是,我检查了Dr. HG Muller的Fairymax引擎,但它使用配置文件来定义游戏规则.我不想那样做,因为我的许多变种都有不同的扩展,并且通过使它成为配置文件级别的通用,引擎可能不会变强.另一个受欢迎的引擎Sjeng到处乱七八糟,if我个人觉得这不是一个好的设计.
任何新的设计见解都非常有用.
我厌倦了GUI的闪烁和每一个可能的控制,数百万篇关于双缓冲的文章,ControlStyle标志等甚至都不起作用; 看看这个例子:
在阅读了这个问题,其他关于SO,以及网上的很多文章我认为有2个选项,编写自己的控件,或使用winforms的替代品.所以我的问题是:什么是可以在Windows上轻松与C#和.NET一起使用的好选择,甚至可能在Linux和Mac上使用(但这不是必需的)?然而,如果我错过了所有那些混乱的东西,我会很高兴,如果你纠正我.
一个重要的事情,尽管闪烁和其他问题很烦人,但它们并不能阻止工作完成,因此替代优先事项是完全正常运行,否则,最好坚持使用古代的winforms.
我只是希望测试整数上的溢出,例如在C中(好吧,如果它刚好超过整数最大值).当我查看PHP是否实际上正在执行我告诉它的操作时,它似乎因某些原因而失败.以下是我对问题的测试:
define('INT_MAX', 0x7FFFFFFF);
print "In decimal: " . hexdec(INT_MAX) . "<br/>";
print "In decimal: " . hexdec(0x7FFFFFFE) . "<br/>"; //Under int_max
print "In hex: " . dechex(hexdec(INT_MAX)) . "<br/>";
print "Float: " . ((bool)is_float(INT_MAX)?'true':'false') . "<br/>";
Run Code Online (Sandbox Code Playgroud)
结果是:
小数:142929835591
十进制:142929835590
十六进制:47483647
浮点数:false
正如我在手册中看到的那样,如果被推翻它将会浮动,但它似乎没有并且显然更高.我是疯了还是在这里遗漏了什么,或者在PHP中使用十六进制时我真的需要知道一些奇怪的问题吗?
我试图模拟控制器的会话哈希,如下所示:
it "finds using the session[:company_id]" do
session.should_receive(:[]).with(:company_id).and_return 100
Company.should_receive(:find).with(100)
get 'show'
end
Run Code Online (Sandbox Code Playgroud)
当我打电话给'show'时,它说:
received :[] with unexpected arguments
expected: (:company_id)
got: ("flash")
Run Code Online (Sandbox Code Playgroud)
控制器代码如下所示:
def show
company_id = session[:company_id]
@company = Company.find params[company_id]
end
Run Code Online (Sandbox Code Playgroud)
我也只是尝试过设置
it "finds using the session[:company_id]" do
session[:company_id]= 100
Company.should_receive(:find).with(100)
get 'show'
end
Run Code Online (Sandbox Code Playgroud)
但后来得到一个问题:
expected: (100)
got: (nil)
Run Code Online (Sandbox Code Playgroud)
有人有想法吗?
.container
{
position: absolute;
bottom: 0px;
height: 25px;
left: 200px;
padding-right: 5px;
background-color: black;
overflow: hidden;
}
.child
{
position: relative;
float: left;
height: 100%;
width: 95px;
background-color: #99CCFF;
margin-left: 5px;
}
Run Code Online (Sandbox Code Playgroud)
我当浏览器窗口的大小小于允许所有子项无需包装时我希望有一个滚动条,而不是子元素包装的默认机制.
我无法控制子元素的数量,因此我无法在容器上设置宽度.如何防止子元素的包装?
这是我的短装配程序:
; This code has been generated by the 7Basic
; compiler <http://launchpad.net/7basic>
extern printf
; Initialized data
SECTION .data
f_0 dd 5.5
printf_f: db "%f",10,0
SECTION .text
; Code
global main
main:
push ebp
mov ebp,esp
push dword [f_0]
push printf_f
call printf
add esp,8
mov esp,ebp
pop ebp
mov eax,0
ret
Run Code Online (Sandbox Code Playgroud)
该程序应该做的是打印5.5,但它打印:
-4101885043414705786563701568963176764603483495211119243453355953219830430011006780068899468997203661787555969981250050126586203424320244681571103387315766489883301796219461838644670607029711305942610787622864198879363376953745160639821663444829839767678538571371627347101810056161000273217639447052410683392.000000
我究竟做错了什么?代码将两个参数推送到printf()然后调用它.没什么复杂的.
更新:我认为我修复了这个问题还为时过早.我已经更新了代码.
.net ×1
assembly ×1
c ×1
c# ×1
c++ ×1
chess ×1
css-float ×1
django ×1
hex ×1
html ×1
java ×1
javascript ×1
json ×1
junit ×1
junit4 ×1
overflow ×1
php ×1
pointers ×1
printf ×1
python ×1
rspec ×1
rspec2 ×1
size ×1
templates ×1
unicode ×1
unit-testing ×1
windows ×1
winforms ×1
word-wrap ×1
x86 ×1
x87 ×1