我有一个骑在各种尺寸(大尺寸,如100x100)的棋盘上骑行的算法,我想为结果制作动画.每当骑士移动到一个新的方块时,(方形)画布中的相应像素将改变颜色,直到最终整个画布被着色.所得到的电影将可在网页上查看有关该算法的内容.
如果我想要广泛的浏览器支持,动画GIF似乎是最好的方法(尽管欢迎其他建议).使用它的最佳工具或库是什么?我很高兴使用Linux或Mac电脑上免费提供的任何东西.
实际的算法太长了,无法在这里做一个有用的例子(如果你真的好奇的话,请参阅本文),但这是一个8x8板上(无聊)国王之旅的伪代码:
movie = new Movie()
frame = new Frame()
frame.fillRectangle((1,1), 8, 8, BLUE)
for row in [1..8] {
if (row.isOdd()) { colrange = [1..8] } else { colrange = [8..1] }
for col in colrange {
frame.colourPixel(row, col, RED)
movie.addFrame(frame)
}
}
movie.saveAsGIF("tour.gif")
Run Code Online (Sandbox Code Playgroud)
额外信用问题:我们可以利用这部电影的特殊功能来减小文件大小吗?在维基百科的文章表明,我们也许能够做到这一点,如果我们只是改变一些像素-事实上,我们只更改每帧的一个!
我想找到一个表的外键,但可能有多个用户/模式与一个具有相同名称的表.如何找到当前登录用户看到的那个?有没有给它的主人的功能?如果有公共同义词怎么办?
我正在使用WiX为我无法控制的软件安装插件.要安装插件,我必须将目标文件夹放在注册表项中:
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="LocalAppDataFolder">
<Directory Id="APPROOTFOLDER" Name="Foobar Plugin" />
</Directory>
</Directory>
...
<DirectoryRef Id="APPROOTFOLDER">
<Component Id="register" Guid="240C21CC-D53B-45A7-94BD-6833CF1568BE">
<RegistryKey Root="HKCU" Key="Software\ACME\Plugins\FooBar">
<RegistryValue Name="InstallDir" Value="[APPROOTFOLDER]" Type="string"/>
</RegistryKey>
</RegistryKey>
</DirectoryRef>
Run Code Online (Sandbox Code Playgroud)
安装后,注册表项HKCU\Software\ACME\Plugins\FooBar\InstallDir将包含安装目标路径,但尾部为" \".不幸的是,由于某些奇怪的原因,主机应用程序(提供插件架构)因此而崩溃.如果没有斜杠,一切正常!
在WiX中有没有办法摆脱尾随斜线?
我想到的一个解决方案就是.在路径的末尾添加一个" ",但是,这似乎在我的场景中不起作用:( ..
我认为答案是管理员登录,然后检查用户是否有管理员标志,但我也想到了一些其他相关问题.
在与非管理员相同的用户表中设置管理标志(attr_protected)是否更好?或者我应该有一个管理员用户表?
我应该为管理员用户创建单独的rails应用程序吗?这可能是过度的,因为他们都必须访问相同的数据库(更不用说设置可能是一个巨大的痛苦).
还有其他建议吗?现在我只需要保护一两页,所以我甚至将HTTP基本或摘要认证作为一种临时措施(受保护的内容实际上不是私有/重要的).但是......我不知道如何为特定的操作实现HTTP auth,我只看到了如何实现它以防止目录访问.
任何方向和讨论都会很棒.我相信其他Stack Overflow用户将从这次讨论中受益.
谢谢!
假设我有一个运行的程序,它定期将信息添加到.CSV文件中.有没有办法在Excel中打开文件时写入文件?显然,在Excel中重新打开文件之前不会注意到这些更改,但是就像现在一样,我正在捕获IOException,并且如果当前的文件已经打开,我只是启动一个新的.csv文件.
是否有一种简单的方法来更改标题字体大小而不覆盖完全复制ColumnHeaderTemplate?
注意:不确定它是否相关,但我使用提供ColumnHeaderTemplate的应用程序主题(PresentationFramework.Royale).
有没有办法确定在运行时从哪些jar加载哪些类?
我相信我们以前一直都在JAR地狱.我在项目上遇到了很多故障排除ClassNotFoundException和问题NoClassDefFoundError.我想避免在罐子里找到一个类的所有实例,并在代码上使用消除过程导致CNFE找到罪魁祸首.
是否有任何分析或管理工具可以为您提供此类信息?
这个问题非常烦人,因为我们应该在类加载时获得这些信息.必须有一种方法来达到它,或记录并找到它,但我知道什么都不会做到这一点,对吗?
我知道OSGi和版本化的软件包/模块旨在使这个问题成为一个问题......但它似乎不会很快消失.:)
注意:我发现这个问题是我的问题的一个子集,与从版本化的jar加载的类有关.
更新:有点相关,这篇文章解释了在jar中(在当前目录下)或在M2_REPO中搜索类的策略. JarScan,扫描所有子文件夹中的特定类的所有JAR文件
更新2:JBoss Tattletale也有些相关
我有一个jQuery UI可排序列表.可排序项目还附加了单击事件.拖动项目后,有没有办法防止点击事件被触发?
$().ready( function () {
$('#my_sortable').sortable({
update: function() { console.log('update') },
delay: 30
});
$('#my_sortable li').click(function () {
console.log('click');
});
});Run Code Online (Sandbox Code Playgroud)
#my_sortable li {
border: 1px solid black;
display: block;
width: 100px;
height: 100px;
background-color: gray;
}Run Code Online (Sandbox Code Playgroud)
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.1/jquery-ui.min.js"></script>
<ul id="my_sortable">
<li id="item_1">A</li>
<li id="item_2">B</li>
<li id="item_3">C</li>
</ul> Run Code Online (Sandbox Code Playgroud)
在ASP.NET页面中执行response.redirect时,我收到错误:
错误:无法获取
传入的两个变量的值(一个值从查询字符串检索,另一个从viewstate检索)
我从未见过之前的这个错误,所以我做了一些调查,发现建议使用"endResponse"的"False"值,
例如Response.Redirect("mypage.aspx",False)
这个有效.
我的问题是:在response.redirect中对"endResponse"值使用"False"有什么副作用?
即服务器的缓存有什么影响?页面是否在一段时间内保留在内存中?它会影响查看同一页面的不同用户吗?等等
谢谢!
我用C++编写了一个"危险"程序,它从一个堆栈帧到另一个堆栈帧来回跳转.目标是从调用堆栈的最低级别跳转到调用者,执行某些操作,然后再次跳回,每次跳过中间的所有调用.
我这样做是通过手动更改堆栈基地址(设置%ebp)并跳转到标签地址.它完全有效,使用gcc和icc,没有任何堆栈损坏.这一天工作的日子很酷.
现在我正在使用相同的程序并在C中重写它,但它不起作用.具体来说,它不适用于gcc v4.0.1(Mac OS).一旦我跳转到新的堆栈帧(正确设置了堆栈基指针),就会在调用之前执行以下指令fprintf.此处列出的最后一条指令崩溃,解除引用NULL:
lea 0x18b8(%ebx), %eax
mov (%eax), %eax
mov (%eax), %eax
Run Code Online (Sandbox Code Playgroud)
我做了一些调试,我已经想通过%ebx在切换堆栈帧时手动设置寄存器(使用我在离开函数之前观察到的值),我修复了错误.我已经读过这个寄存器处理gcc中的"位置无关代码".
什么是位置无关代码?位置无关代码如何工作?这个寄存器指向什么?