假设我有两个或更多处理SQLite数据库的进程 - 一个"播放器"进程和许多"编辑器"进程.
"播放器"进程读取数据库并更新视图 - 在我的情况下,根据存储在数据库中的事件,它将是混合到声卡的波形.
"编辑器"进程是该数据库的任何编辑器:它不断地更改数据库.
现在我希望播放器快速反映编辑更改.
我知道SQLite提供了钩子来跟踪同一进程中的数据库更改,但似乎没有关于如何使用多个进程执行此操作的信息.
我可以不断地轮询数据库,比较记录和触发事件,但这似乎效率很低,特别是当数据库增长到很大的时候.
我正在考虑使用日志表和触发器,但我想知道是否有一个更简单的方法.
想象一下N3分辨率的体积立方体,其中充满了遮挡体素.立方体可以完全填满,或包含弯曲的"隧道",或墙壁 - 或只是一些流浪的体素; 我们现在选择边界立方体的六个面中的任意两个,并尝试找到连接这两个面的线而不击中其中的任何体素.如果存在这样的线条,则面部可以看到彼此,否则,它们将完全被遮挡.
我的问题是:是否存在O(n)(或更好)算法以快速辨别是否可以绘制这样的线?线的确切参数无关紧要.
几年以来,我正在用Python编写编辑前端,我厌倦了每次都对窗口或对话框的每个UI细节进行微观管理.
是否有一种技术允许我指定GTK + Glade设计的界面与SQLite数据库的表和记录之间的关系来完成所有中间人的工作?它应该让我免于手动编写事件处理程序,输入评估程序和查看更新的工作.
有问题的技术只是示例,但我希望尽可能坚持使用Python.
这个问题在我的职业生涯中曾多次出现,并将我和我的同事分成两个阵营.我认为这可能是最好的回答在这个网站上,一劳永逸.
几乎所有的图形UI库都实现了一个Rectangle结构,但它们的工作方式通常分为两个可能的选项:
现在,假设我要写一个UI库,我应该选择哪两个?
更新:问题涉及实施,而不是界面.当然矩形的界面可以很好地支持这两种方法,但是如何将数据存储在矩形中?
我正在寻找一个类似IDL(或其他)的转换器,它将类似DOM或JSON的文档定义转换为类
到目前为止最接近的是Blender 2.5 DNA/RNA系统,但它不能作为一个单独的库提供,并且记录严重.
我最重要的是要确保这样的lib还不存在,所以我知道当我开始设计和编写这样的东西时,我的时间不会浪费.它应该为编写编辑UI组件提供了一个很好的基础.