我正在执行几个选择并希望计算重叠.例:
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部分可以是普通选择或存储过程).
我目前正在使用Microsoft的并发运行时中的异步代理库.我还没有找到一种明显的方法来通过使用窗口消息或其他一些通知UI线程完成工作的方式来表示任务已完成.
我知道我可以将窗口句柄和消息值(WM_xxx)传递给任务,并让任务用于PostMessage()发出UI线程的信号.在我看来,这有点难看,也是错误的根源.如果发生异常,我必须有一个catch处理程序来指示我的UI线程.这很容易被遗忘,并且异常情况可能不会经常运行,因此很难发现它.
该文档讨论了如何将数据移回UI线程.它不使用窗口消息,而是使用轮询技术.当有"中断"方法可用时,我觉得设置定时器以查询任务是否完成是愚蠢的!
这有点奇怪,它没有内置到库中,因为它不是跨平台库.根据我的理解,它被设计为仅在Windows和Windows上运行.
库中是否有可用的功能,还是我必须手动滚动?
我正在编写一个 Qt 应用程序。在第一阶段,我想接收系统范围内的所有按键事件,而不创建任何小部件。
这在 Qt 中是可能的,还是我必须挂钩到底层的窗口系统?(这需要跨平台。)
我试图发现为什么mysqld有时会使cpu和摊位饱和.
我怀疑它与更新索引或其他此类维护有关.我想证明这个假设并考虑避免它的选择.
这是情况.我有几十个表,但根据活动,似乎至少有两个表一直受此影响.让我们把它们Big和Small.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来为这项工作提供较低的线程优先级,和/或临时禁用索引以允许非索引(非阻塞)选择与维护任务同时发生吗?
我正在尝试编写一个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)
但肯定有更好的方法!
在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中调试是由编译系统发现.
那么为什么我不能将它添加为依赖?
出于习惯,我经常为简单的函数内联函数定义,例如这个(人为的例子)
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(链接时间优化)的改进.他们真的有多好?知道最终可执行文件的哪些功能可以安全地内联不会受到影响?
我基本上有这段代码来拦截某些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) 我正在开发需要良好安全性的网络应用。在本设计中,许多用户动作需要用户重新发送密码(否则服务器将不得不至少以临时文本形式将其存储为纯文本)。
很多用户交互都是通过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已正确设置
password_plain=null会话是否过期(并清除DOM值)威胁模型是,攻击者无法物理访问客户端计算机或服务器计算机,并且不能在两者上运行任意代码,而是可以诱使用户在客户端浏览器中访问恶意的其他网页。
javascript变量中的密码安全吗?
我正在尝试制作兼容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)