我正在为操作系统开发内核.为了执行它,我决定使用GRUB.目前,我已经连接到GRUB的脚本stage1,stage2,垫文件,这使得它可引导内核本身一起.唯一的问题是,当我运行它时,你必须让GRUB知道内核的位置和手动的大小然后启动它,如下所示:
kernel 200+KERNELSIZE boot
KERNELSIZE是块中内核的大小.这很好,一开始就没问题,但是可以在二进制文件中获取这些值并使GRUB自动启动内核吗?有关如何实现这一目标的任何建议?
使用XmlDocument.Load时,我发现如果文档引用DTD,则会与提供的URI建立连接.有没有办法防止这种情况发生?
我有一个s-expression绑定到Common Lisp中的变量:
(defvar x '(+ a 2))
Run Code Online (Sandbox Code Playgroud)
现在我想创建一个函数,在调用时,它会在定义它的范围内计算表达式.我试过这个:
(let ((a 4))
(lambda () (eval x)))
Run Code Online (Sandbox Code Playgroud)
和
(let ((a 4))
(eval `(lambda () ,x)))
Run Code Online (Sandbox Code Playgroud)
但这两个都会产生问题:EVAL会评估顶层的代码,因此我无法捕获表达式中包含的变量.请注意,我不能将LET表单放在EVAL中.有什么解决方案吗?
编辑:那么如果没有EVAL问题的解决方案,它还能怎样做呢?
编辑:有一个问题,我到底想要做什么.我正在编写一个编译器.我想接受一个s表达式,其中变量在定义表达式的词汇环境中关闭.将它写成宏可能确实更好.
如果我将一个after_save回调添加到ActiveRecord模型,并且在该回调上我使用update_attribute来更改对象,则再次调用回调,因此发生"堆栈溢出"(hehe,无法抗拒).
是否可以避免这种行为,可能在执行期间禁用回调?或者还有另一种方法吗?
谢谢!
出于性能原因,我在自定义视图中绘制UITableViewCell的字符串,该视图覆盖其drawRect方法,使用NSString:drawInRect直接在视图矩形中绘制字符串.这类似于Apple的TableViewSuite示例5-CustomTableViewCell.
但是,当我在单元格上调用setEditing以显示删除按钮时,视图在动画完成后以挤压外观结束.为了演示这一点,请在上面提到的CustomTableViewCell示例上调用setEditing:YES并观察失真.有什么方法可以解决这个问题,还是应该恢复使用UILabels作为我的文本?
我正在编写一个PHP脚本,脚本输出一个简单的文本文件日志来记录它执行的操作.当达到某个文件大小时,如何使用PHP从该文件中删除前几行?
理想情况下,我希望保留前两行(创建日期/时间和空白)并从第3行开始删除并删除X行数.我已经知道了这个filesize()函数,所以我将使用它来检查文件大小.
示例日志文本:
*** LOG FILE CREATED ON 2008-10-18 AT 03:06:29 ***
2008-10-18 @ 03:06:29 CREATED: gallery/thumbs
2008-10-18 @ 03:08:03 RENAMED: gallery/IMG_9423.JPG to gallery/IMG_9423.jpg
2008-10-18 @ 03:08:03 RENAMED: gallery/IMG_9188.JPG to gallery/IMG_9188.jpg
2008-10-18 @ 03:08:03 RENAMED: gallery/IMG_9236.JPG to gallery/IMG_9236.jpg
2008-10-18 @ 03:08:03 RENAMED: gallery/IMG_9228.JPG to gallery/IMG_9228.jpg
2008-10-18 @ 03:08:03 RENAMED: gallery/IMG_3104.JPG to gallery/IMG_3104.jpg
2008-10-18 @ 03:08:03 RENAMED: gallery/First dance02.JPG to gallery/First dance02.jpg
2008-10-18 @ 03:08:03 RENAMED: gallery/BandG02.JPG to gallery/BandG02.jpg
2008-10-18 @ 03:08:03 RENAMED: gallery/official03.JPG to gallery/official03.jpg
2008-10-18 @ 03:08:03 …Run Code Online (Sandbox Code Playgroud) 这不是REBOL特定的问题.你可以用任何语言回答它.
该REBOL语言支持被称为REBOL"方言"领域特定语言的创建说法.我为列表推导创建了这样一种方言,REBOL本身不支持这种方言.
列表推导需要一个好的笛卡尔积算法.
我已经使用元编程来解决这个问题,通过动态创建然后执行一系列嵌套foreach语句.它工作得很漂亮.但是,因为它是动态的,所以代码不是很易读.REBOL不能很好地进行递归.它迅速耗尽堆栈空间和崩溃.因此,递归解决方案是不可能的.
总之,如果可能的话,我想用可读的,非递归的"内联"算法替换我的元编程.解决方案可以使用任何语言,只要我可以在REBOL中重现它.(我可以阅读任何编程语言:C#,C,C++,Perl,Oz,Haskell,Erlang等等.)
我应该强调,这个算法需要支持任意数量的集合才能"加入",因为列表理解可能涉及任意数量的集合.
我开发和维护用JSP和Java编写的小型Intranet Web应用程序.它们运行在Resin Web服务器上,没有Apache之类的专用httpd.
在执行维护之前,我会激活一条非常简单的Ajax消息来敦促用户注销.
我想要的是,在我进行维护时,用户尝试登录该特定应用程序以查看"抱歉,暂时停止服务"页面,而在同一个Web服务器上运行的所有其他Web应用程序照常提供.
在这种情况下,有哪些最佳做法?
尝试使用GCC编译C程序时,我遇到了一个完全不好的错误.这是我正在使用的批处理文件:
echo Now compiling, assembling, and linking the core:
nasm -f aout -o start.o start.asm
gcc -Wall -O -fstrength-reduce -fomit-frame-pointer -finline-functions -nostdinc -fno-builtin -I./include -c -o consoleio.o consoleio.c
gcc -Wall -O -fstrength-reduce -fomit-frame-pointer -finline-functions -nostdinc -fno-builtin -I./include -c -o core.o core.c
gcc -Wall -O -fstrength-reduce -fomit-frame-pointer -finline-functions -nostdinc -fno-builtin -I./include -c -o system.o system.c
ld -T link.ld -o core.bin start.o core.o system.o consoleio.o
echo Done!
concat.py
pause
Run Code Online (Sandbox Code Playgroud)
以下是我在尝试运行此代码时收到的错误消息.所有文件都在同一目录中,是的,PATH变量设置正确:
C:\Simple\core>build.bat
C:\Simple\core>echo Now compiling, assembling, and linking the core:
Now compiling, assembling, …Run Code Online (Sandbox Code Playgroud) 有没有人知道任何notepad ++插件可以保存我正在定期工作的版本?理想情况下,它会使用自动版本号和标题中的日期保存许多版本,并可能将它们存储在压缩存档中以节省空间.
这样的事情是否已经存在,或者说我试图自己编写这样的插件?
谢谢,
卡梅隆
PS它应该是免费软件或(最好)开源.