小编spr*_*aff的帖子

SQL选择union中的多个项目

我正在执行几个选择并希望计算重叠.例:

SELECT id FROM foo WHERE ...
SELECT id FROM bar WHERE ...
SELECT id FROM baz WHERE ...
Run Code Online (Sandbox Code Playgroud)

分别调用这些查询a,b和c.假设给出(1,2,3,4,5),b给出(1,3,5),c给出(4,5,6).我想结合这些并计算多重性.对于上面的例子,我正在寻找的结果是

id | multiplicity
-----------------
1  | 2
2  | 1
3  | 2
4  | 2
5  | 3
6  | 1
Run Code Online (Sandbox Code Playgroud)

如何在一个查询中在MySQL5中执行此操作?(a,b和c部分可以是普通选择或存储过程).

mysql sql union mysql5

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

异步代理和窗口消息

我目前正在使用Microsoft的并发运行时中的异步代理库.我还没有找到一种明显的方法来通过使用窗口消息或其他一些通知UI线程完成工作的方式来表示任务已完成.

我知道我可以将窗口句柄和消息值(WM_xxx)传递给任务,并让任务用于PostMessage()发出UI线程的信号.在我看来,这有点难看,也是错误的根源.如果发生异常,我必须有一个catch处理程序来指示我的UI线程.这很容易被遗忘,并且异常情况可能不会经常运行,因此很难发现它.

该文档讨论了如何将数据移回UI线程.它不使用窗口消息,而是使用轮询技术.当有"中断"方法可用时,我觉得设置定时器以查询任务是否完成是愚蠢的!

这有点奇怪,它没有内置到库中,因为它不是跨平台库.根据我的理解,它被设计为仅在Windows和Windows上运行.

库中是否有可用的功能,还是我必须手动滚动?

c++ visual-studio-2010 concurrency-runtime

5
推荐指数
1
解决办法
333
查看次数

Qt:当我的应用程序没有焦点时接收键盘事件

我正在编写一个 Qt 应用程序。在第一阶段,我想接收系统范围内的所有按键事件,而不创建任何小部件

这在 Qt 中是可能的,还是我必须挂钩到底层的窗口系统?(这需要跨平台。)

qt

5
推荐指数
0
解决办法
1503
查看次数

诊断并避免MySQL cpu峰值

我试图发现为什么mysqld有时会使cpu和摊位饱和.

我怀疑它与更新索引或其他此类维护有关.我想证明这个假设并考虑避免它的选择.

这是情况.我有几十个表,但根据活动,似乎至少有两个表一直受此影响.让我们把它们BigSmall.Big包含总共1Mb的大约6,000行(所以不是那么大)并且Small有几十行,每行大约50个字节.Big有一个外键Small(InnoDB,删除级联,不为null).

有两种情况似乎会引发问题:a)修改Big.small_id值,或b)添加行Small.

我会直觉地期望a)非常快,O(log(size of Big))并且b)几乎是即时的,因为它Small是如此之小并且没有任何Big对它的引用发生了变化.

在每种情况下,后续的SELECT都需要二十个gigacycles(!); 之后的那个根本没有时间.还有其他表具有这两个表的外键,但是所有表都相当小,我认为它们不对这个峰值负责.

如何找出MySQL正在更新哪些索引以及每个索引需要多长时间?

或者,如果它没有更新索引,我怎么能找出其他的东西需要这么长时间?

最后,我可以设置mysqld来为这项工作提供较低的线程优先级,和/或临时禁用索引以允许非索引(非阻塞)选择与维护任务同时发生吗?

mysql

5
推荐指数
1
解决办法
3705
查看次数

启动后将pid映射到qdbus服务号码

我正在尝试编写一个bash脚本,它将启动一个程序(konsole)并向其发送dbus消息.这是我的实验

konsole &
echo pid is $!
ps aux | grep konsole
qdbus | grep konsole
Run Code Online (Sandbox Code Playgroud)

这输出

pid is 2726
me    2726  0.0  0.4  45404  9952 pts/0    S+   14:59   0:00 konsole
 org.kde.konsole-2729
Run Code Online (Sandbox Code Playgroud)

qdbus服务名称始终是,org.kde.konsole-{pid+epsilon}但epsilon部分是不可预测的.

在我的bash脚本中,如何获取我刚刚生成的特定konsole实例的确切qdbus服务名称?


这是一个讨厌,黑客的解决方案

qdbus | grep konsole | sed 's/[^0-9]//g' > /tmp/before
konsole &
sleep 1
qdbus | grep konsole | sed 's/[^0-9]//g' > /tmp/after

N=`sort /tmp/before /tmp/after | uniq -u`
Run Code Online (Sandbox Code Playgroud)

但肯定有更好的方法!

bash pid dbus qdbus

5
推荐指数
1
解决办法
532
查看次数

CMake找不到IMPORTED库

foo/CMakeLists.txt基于这个这个,我有以下

SET (EXTERNAL_LIB_ROOT "../../external_libs/")

ADD_LIBRARY (avcodec-debug STATIC IMPORTED)

SET_PROPERTY (
    TARGET avcodec-debug PROPERTY IMPORTED_LOCATION
    ${EXTERNAL_LIB_ROOT}/libavcodec-0.8.10.a)
Run Code Online (Sandbox Code Playgroud)

bar/CMakeLists.txt我有这样的:

# old way uses system libraries
#TARGET_LINK_LIBRARIES (bar avformat avcodec avutil)

# new way uses local debug builds
TARGET_LINK_LIBRARIES (bar avformat avcodec-debug avutil)
Run Code Online (Sandbox Code Playgroud)

当我跑步时,make我得到了

/usr/bin/ld: cannot find -lavcodec-debug
Run Code Online (Sandbox Code Playgroud)

如果我恢复到老样子,建设,触摸foo/CMakeLists.txt和重建,CMake的的配置输出指示avcodec中调试由编译系统发现.

那么为什么我不能将它添加为依赖?

cmake

5
推荐指数
2
解决办法
3831
查看次数

gcc 5.1中的链接时间优化是否足以放弃内联简单函数?

出于习惯,我经常为简单的函数内联函数定义,例如这个(人为的例子)

class PositiveInteger
{
private:
    long long unsigned m_i;
public:
    PositiveInteger (int i);
};

inline PositiveInteger :: PositiveInteger (int i)
: m_i (i)
{
    if (i < 0)
        throw "oops";
}
Run Code Online (Sandbox Code Playgroud)

我一般喜欢分离界面文件和实现文件,但是,这是我习惯于那些我脑子里的声音告诉我的热门可能会受到很多打击的功能.

我知道这个建议是"简介第一"并且我同意但是如果我事先知道编译器会生成相同的最终目标代码,无论是否在编译或链接时内联这些函数,我都可以避免一大堆分析工作.(另外,我相信注入的性能分析代码本身会导致时序的变化,从而影响非常简单的函数的效果,例如上面的那个.)

GCC 5.1刚刚发布了广告LTO(链接时间优化)的改进.他们真的有多好?知道最终可执行文件的哪些功能可以安全地内联不会受到影响?

c++ gcc

5
推荐指数
1
解决办法
394
查看次数

为什么我的 Qt eventFilter 没有拾取 QTreeWidget 上的鼠标事件?

我基本上有这段代码来拦截某些QTreeWidget事件。

MyWidget :: MyWidget ()
{
     m_tree = new QTreeWidget ();
     // ...
     m_tree -> installEventFilter (this);
}

bool MyWidget :: eventFilter (QObject * obj, QEvent * e)
{
    if (m_tree != obj)
        return QWidget :: eventFilter (obj, e);

    qDebug () << e -> type ();

    switch (e -> type ())
    {
        case QEvent :: MouseButtonPress:
        case QEvent :: MouseButtonRelease:
        case QEvent :: MouseMove:
        case QEvent :: Leave:
            qDebug () << "GOT EM";
            break;
    };

    // ...
 } …
Run Code Online (Sandbox Code Playgroud)

c++ qt qtreewidget qt-events qmouseevent

5
推荐指数
1
解决办法
1990
查看次数

在Javascript变量中存储密码有哪些安全隐患?

我正在开发需要良好安全性的网络应用。在本设计中,许多用户动作需要用户重新发送密码(否则服务器将不得不至少以临时文本形式将其存储为纯文本)。

很多用户交互都是通过AJAX请求进行的。我不想让用户为每个用户重新输入密码,而是要这样做:

var password_plain = document .getElementById ("password") .value;

ajax ("/login.php", {password: password_plain, username: ...});

// later

ajax ("/api.php", {password: password_plain, action: ...});
Run Code Online (Sandbox Code Playgroud)

例如,出于争论的目的,假设设计总体上是明智的

  • 服务器不会存储或泄漏纯文本密码,

  • SSL已正确设置

  • 客户端Javascript会定期检查我们是否仍在登录,并设置password_plain=null会话是否过期(并清除DOM值)
  • 服务器本身是安全的

威胁模型是,攻击者无法物理访问客户端计算机或服务器计算机,并且不能在两者上运行任意代码,而是可以诱使用户在客户端浏览器中访问恶意的其他网页。

javascript变量中的密码安全吗?

javascript security

5
推荐指数
2
解决办法
3074
查看次数

为什么我的自定义jQuery`change`事件被触发两次?

我正在尝试制作兼容jQuery的复合HTML输入.

此示例中,select更改时,将alert调用两次.为什么?

给定一个简单的容器节点:

<span id="x"></span>
Run Code Online (Sandbox Code Playgroud)

这是一个完全有效的演示:

function el (type) {
    return document .createElement (type);
}

function opt (sel, value) {
    let node = el ('option');
    node .value = value;
    node .appendChild (document .createTextNode (value));
    sel .appendChild (node);
}

let x = document .getElementById ('x');
let a = el ('select');
let b = el ('select');

x .appendChild (a);
x .appendChild (b);

opt (a, 'a_1');
opt (a, 'a_2');
opt (b, 'b_1');
opt (b, 'b_2'); …
Run Code Online (Sandbox Code Playgroud)

javascript jquery

5
推荐指数
1
解决办法
67
查看次数