我正在编写一个新的守护进程,它将在Debian Linux上托管.
我发现/ var/log只有root权限,因此我的守护进程无法在那里写日志文件.
但是,如果它在那里写入,它似乎将获得自动日志轮换,并且也可以像用户期望的那样工作.
守护进程编写/ var/log中出现的日志条目的推荐方法是什么,而不必以root身份运行?
守护程序是一个Web服务器,因此日志流量将类似于Apache.
如果我在Common Lisp映像中托管长时间运行的应用程序(如Web服务器),我应该使用什么策略来管理垃圾收集器?
我假设,默认情况下,垃圾收集器有权花很长时间来整理堆,有时我无法预测.这可能会以我不想要的方式影响特定的浏览器请求.
Common Lisp中有一个方法来控制它吗?也许通过鼓励它以"小而常"的方式工作?
我有一个项目表,每个项目都有一个与之相关的日期.如果我将日期与一个项目关联,如何使用SQL查询数据库以获取表格中的"上一个"和"后续"项目?
不可能简单地添加(或减去)一个值,因为日期之间没有规则的间隙.
一个可能的应用是相册或博客Web应用程序中的"上一个/下一个"链接,其中底层数据位于SQL表中.
我认为有两种可能的情况:
首先,每个日期都是唯一的:
样本数据:
1,3,8,19,67,45
Run Code Online (Sandbox Code Playgroud)
当提供8作为参数时,哪些查询(或查询)将给出3和19?(或第3,8,19行).请注意,并不总是要返回三行 - 在序列的末尾会丢失一行.
其次,如果有一个单独的唯一键来对元素进行排序,那么返回集合"周围"日期的查询是什么?预期的订单是按日期然后是关键.
样本数据:
(key:date) 1:1,2:3,3:8,4:8,5:19,10:19,11:67,15:45,16:8
Run Code Online (Sandbox Code Playgroud)
对'8'的查询返回集合:
2:3,3:8,4:8,16:8,5:19
Run Code Online (Sandbox Code Playgroud)
或者什么查询生成表:
key date prev-key next-key
1 1 null 2
2 3 1 3
3 8 2 4
4 8 3 16
5 19 16 10
10 19 5 11
11 67 10 15
15 45 11 null
16 8 4 5
Run Code Online (Sandbox Code Playgroud)
表顺序并不重要 - 只是next-key和prev-key字段.
TheSoftwareJedi和Cade Roux都有适用于我昨晚发布的数据集的解决方案.对于第二个问题,这两个数据集似乎都失败了:
(key:date) 1:1,2:3,3:8,4:8,5:19,10:19,11:67,15:45,16:8
Run Code Online (Sandbox Code Playgroud)
预期的顺序是按日期然后键,所以一个预期的结果可能是:
2:3,3:8,4:8,16:8,5:19
Run Code Online (Sandbox Code Playgroud)
另一个:
key date prev-key next-key
1 1 null 2
2 3 1 …Run Code Online (Sandbox Code Playgroud) 使用Visual Studio 2008及其C/C++编译器,如何创建仅依赖于其他Windows DLL的Win32 DLL,并且不依赖于Microsoft C运行时?
我有一些C代码,我想放在一个完全计算的DLL中,几乎不使用C库函数.
对于它确实使用的那些(例如memcpy),我很乐意重新编写代码以使用Win32 API等价物(例如CopyMemory).
这个问题包含了一些关于如何为数字或多选字段等数据设计数据库历史/修订方案的优秀报道.
但是,对于大型文本字段的讨论并不多,如博客/问答/维基/文档类型系统中常见的那样.
那么,在基于数据库的编辑系统中存储文本字段历史记录的良好做法是什么?将它存储在数据库中甚至是个好主意吗?
使用Common Lisp编写的Web服务器生成RSS的最佳库是什么?
在当前部署的Web服务器中,其性能的典型限制是什么?
我相信一个有意义的答案将是100,1,000,10,000,10,000或1,000,000请求/秒之一,但今天这是真的吗?5年前哪个是真的?我们可能在5年内期待哪一个?(即,带宽,磁盘性能,CPU性能等趋势如何影响答案)
如果它是重要的,则应考虑HTTP over TCP是访问协议的事实.应该假设操作系统,服务器语言和文件系统效果是最佳的.
假设磁盘包含许多静态服务的小型唯一文件.我打算消除内存缓存的影响,并且CPU时间主要用于组装网络/协议信息.这些假设旨在将答案偏向"最坏情况"估计,其中请求需要一些带宽,一些CPU时间和磁盘访问.
我只是在寻找精确到一个数量级左右的东西.
在 Common Lisp 中,函数(跟踪名称)可用于查看有关函数调用的输出。
如果我的函数是用局部作用域声明的,我如何描述它以进行跟踪?
例如,如何跟踪栏,如下:
(defun foo (x)
(labels ((bar (y) (format t "bar: ~a~&" y)))
(bar x)))
Run Code Online (Sandbox Code Playgroud) 我有一些lisp初始化代码:
(eval-when (:compile-toplevel :load-toplevel :execute)
(require 'asdf))
(eval-when (:compile-toplevel :load-toplevel :execute)
(push #p"c\:\\lisp\\clsql-4.0.4\\" asdf:*central-registry*))
Run Code Online (Sandbox Code Playgroud)
为什么这个版本会编译,而这个版本:
(eval-when (:compile-toplevel :load-toplevel :execute)
(require 'asdf)
(push #p"c\:\\lisp\\clsql-4.0.4\\" asdf:*central-registry*))
Run Code Online (Sandbox Code Playgroud)
在第3行的编译文件中产生错误,asdf是一个无法识别的包?
我正在使用ccl,并且(require'asdf)被记录为引入ASDF的内置版本.
如果我有两张桌子:
Actor:
ID | Name
1 : Patrick
3 : Emma
7 : Vanessa
Singer:
ID | Name
4 : Will
5 : Madonna
13 : Emma
Run Code Online (Sandbox Code Playgroud)
我可以从SQL查询生成以下表,其中包含每个记录来自的表名吗?
ID | Career | Name
1 : Actor : Patrick
3 : Actor : Emma
4 : Singer : Will
5 : Singer : Madonna
7 : Actor : Emma
13 : Singer : Emma
Run Code Online (Sandbox Code Playgroud)
我假设ID列项在两个表中是唯一的,但不是名称.
我正在解析二进制文件格式.它以一种自然适合c#的uint类型的方式使用四个字节对整数进行编码.
实现此功能的最多C#/惯用方法是什么:
uint ReadUint(byte[] buffer);
Run Code Online (Sandbox Code Playgroud)
假设缓冲区包含4个元素.完整的答案可能会考虑文件中由小/大端假设引起的一些常见字节排序,并记录它选择解析的一个或多个.
我有一个人和机器应该能够读取的URL资源:
http://example.com/foo-collection/foo001
区分人类浏览器和计算机,返回HTML或特定于域的XML响应的最佳方法是什么?
(1)请求中的Accept类型字段?
(2)额外的URL?例如:
http://example.com/foo-collection/foo001 - >返回HTML
http://example.com/foo-collection/foo001?xml - >返回,呃,XML
我不希望让读取资源的机器解析HTML(或XHTML).像googlebot这样的机器应该会收到HTML回复.
假设我控制机器读取器是合理的.