小编pan*_*niq的帖子

如何通知在不同进程中完成的SQLite数据库更改过程?

假设我有两个或更多处理SQLite数据库的进程 - 一个"播放器"进程和许多"编辑器"进程.

"播放器"进程读取数据库并更新视图 - 在我的情况下,根据存储在数据库中的事件,它将是混合到声卡的波形.

"编辑器"进程是该数据库的任何编辑器:它不断地更改数据库.

现在我希望播放器快速反映编辑更改.

我知道SQLite提供了钩子来跟踪同一进程中的数据库更改,但似乎没有关于如何使用多个进程执行此操作的信息.

我可以不断地轮询数据库,比较记录和触发事件,但这似乎效率很低,特别是当数据库增长到很大的时候.

我正在考虑使用日志表和触发器,但我想知道是否有一个更简单的方法.

python sqlite notifications

10
推荐指数
2
解决办法
9248
查看次数

找到连接立方体积的两个面的线

想象一下N3分辨率的体积立方体,其中充满了遮挡体素.立方体可以完全填满,或包含弯曲的"隧道",或墙壁 - 或只是一些流浪的体素; 我们现在选择边界立方体的六个面中的任意两个,并尝试找到连接这两个面的线而不击中其中的任何体素.如果存在这样的线条,则面部可以看到彼此,否则,它们将完全被遮挡.

我的问题是:是否存在O(n)(或更好)算法以快速辨别是否可以绘制这样的线?线的确切参数无关紧要.

algorithm 3d cube voxel

10
推荐指数
1
解决办法
386
查看次数

是否有一个Python库,允许构建用户界面而无需编写太多代码?

几年以来,我正在用Python编写编辑前端,我厌倦了每次都对窗口或对话框的每个UI细节进行微观管理.

是否有一种技术允许我指定GTK + Glade设计的界面与SQLite数据库的表和记录之间的关系来完成所有中间人的工作?它应该让我免于手动编写事件处理程序,输入评估程序和查看更新的工作.

有问题的技术只是示例,但我希望尽可能坚持使用Python.

python sqlite gtk user-interface glade

7
推荐指数
1
解决办法
1503
查看次数

将矩形定义为两个点或原点/大小?

这个问题在我的职业生涯中曾多次出现,并将我和我的同事分成两个阵营.我认为这可能是最好的回答在这个网站上,一劳永逸.

几乎所有的图形UI库都实现了一个Rectangle结构,但它们的工作方式通常分为两个可能的选项:

  1. 矩形定义为同一坐标系内的两个2D点,​​通常命名为p0和p1,或者定义为单个分量,如x0,y0,x1,y1.
  2. 矩形定义为2D原点和大小矢量,通常命名为位置和大小,或者单独指定x,y,宽度,高度.

现在,假设我要写一个UI库,我应该选择哪两个?

更新:问题涉及实施,而不是界面.当然矩形的界面可以很好地支持这两种方法,但是如何将数据存储在矩形中?

c c++ oop

7
推荐指数
1
解决办法
2865
查看次数

类似IDL的解析器将文档定义转换为强大的类?

我正在寻找一个类似IDL(或其他)的转换器,它将类似DOM或JSON的文档定义转换为类

  • 可以在同一个应用程序中从C++和Python访问
  • 将文档属性公开为整数,浮点数,字符串,二进制blob和复合:array,string dict(都是可嵌套的)(基本上是JSON类型的特征集)
  • 允许跟踪更改以刷新编辑UI的视图
  • 提供更改历史记录以启用撤消/重做操作
  • 可以序列化到JSON(也可以是某种二进制格式)
  • 允许在磁盘上保留大型数据块,部分仅按需加载
  • 提供非阻塞线程安全读/写访问,以与实时线程交换数据
  • 允许不同进程(甚至在不同机器上)的多个编辑器查看和修改文档

到目前为止最接近的是Blender 2.5 DNA/RNA系统,但它不能作为一个单独的库提供,并且记录严重.

我最重要的是要确保这样的lib还不存在,所以我知道当我开始设计和编写这样的东西时,我的时间不会浪费.它应该为编写编辑UI组件提供了一个很好的基础.

c++ python data-binding serialization json

6
推荐指数
1
解决办法
798
查看次数