我试图获得相对于浏览器/正文的鼠标单击的绝对位置(顶部和左侧),而不是正文中的任何父元素.
我有一个绑定到身体的监听器,但是e.pageX和e.pageY给了我相对于div的位置.
请注意,我可以利用jQuery和YUI函数.
当前无法正常运行的代码:
//getting the position
function _handleClick(e) {
var data = { absX: e.pageX, absY: e.pageY};
_logClickData(data);
}
//binding the function
var methods = {
init: function () {
$("body").click(_handleClick);
}
};
Run Code Online (Sandbox Code Playgroud) 我有一个java程序,它使用ProcessBuilder来调用unix sort命令.当我在我的IDE(intelliJ)中运行此代码时,只需要大约一秒钟来排序500,000行.当我将它打包到一个可执行的jar中,并从终端运行它需要大约10秒.当我自己从终端运行sort命令时,需要20秒!
为什么性能上的巨大差异以及我可以以相同的性能执行jar的任何方式?环境是OSX 10.6.8和java 1.6.0_26.排序手册页的底部显示"2004年11月5.93排序"
它正在执行的命令是:
sort -t' ' -k5,5f -k4,4f -k1,1n /path/to/imput/file -o /path/to/output/file
Run Code Online (Sandbox Code Playgroud)
请注意,当我从终端运行sort时,我需要手动转义制表符分隔符并使用参数-t$'\t'
而不是实际的选项卡(我可以传递给ProcessBuilder).
看起来ps
一切看起来都一样,除非从IDE运行时,sort命令的TTY值为?而不是ttys000 - 但从这个问题我不认为这应该有所作为.也许BASH让我放慢脚步?我的想法已经不多了,想要缩短20倍的性能差距!
我正在编写一个nodejs应用程序,它将使用emailjs发送html电子邮件.基本上我提供html作为我附加到消息的变量发送.
我不想使用大量的字符串连接来构建这个变量,而是使用express/ejs渲染视图并将内容保存到变量中.
所以不要这样做:
messageHtml = '<html>'+ ....
message.attach({data: messageHtml, alternative: true});
Run Code Online (Sandbox Code Playgroud)
我想做点什么:
messageHtml = render('emailTemplate.ejs', viewArgs);
message.attach({data: messageHtml, alternative: true});
Run Code Online (Sandbox Code Playgroud)
可以这样做,如果是这样,怎么办?!
我使用已签名的授权S3上传,以便用户可以直接从浏览器上传文件到S3绕过我的服务器.这目前有效,但文件名与用户机器上的文件名相同.我想把它作为一个不同的名字保存在S3上.
我发布到亚马逊的formdata看起来像这样:
var formData = new FormData();
formData.append('key', targetPath); // e.g. /path/inside/bucket/myFile.mov
formData.append('AWSAccessKeyId', s3Auth.AWSAccessKeyId); // aws public key
formData.append('acl', s3Auth.acl); // e.g. 'public-read'
formData.append('policy', s3Auth.policy); // s3 policy including ['starts-with', '$key', '/path/inside/bucket/']
formData.append('signature', s3Auth.signature); // base64 sha1 hash of private key and base64 policy JSON
formData.append('success_action_status ', 200); // response code 200 on success
formData.append('file', file.slice()); // e.g. /path/on/user/computer/theirFile.mov
Run Code Online (Sandbox Code Playgroud)
但是,而不是文件结束于:
https://s3.amazonaws.com/mybucket/path/inside/bucket/myFile.mov
它最终成为:
https://s3.amazonaws.com/mybucket/path/inside/bucket/theirFile.mov
请注意它有自己的文件名但我的基本路径.
我希望它也有我指定的文件名.
更新:更新:这一直在工作我只是有其他代码从一个桶复制到另一个桶恢复原始文件名,从而使我困惑.
我有一个存储过程,可以创建并打开一些游标.它会在最后关闭它们,但是如果它出现错误,那些游标就会被打开!然后,当尝试创建游标时后续运行失败,因为名称已存在的游标已存在.
有没有办法可以查询哪些游标存在以及它们是否打开所以我可以关闭它们并取消分配它们?我觉得这比盲目地试图关闭并吞下错误更好.
假设我在mongodb中有一个集合,其对象有一个嵌套数组.我想根据数组的特定元素的值进行排序.这可能吗?
例如(我刚刚做了一个例子),如果我有一组电影类型(动作,喜剧,浪漫)和用户提交的例子,我能否找到按电影日期排序的给定用户提交的所有对象?
例如,我想找到"Aaron"提交示例的所有类型,按照"Aaron"提交的示例年份排序.
它几乎就像需要where where子句一样.
> db.movies.find().pretty();
{
"_id" : ObjectId("4f2f07c1ec2cb81a269362c6"),
"type" : "action",
"examples" : [
{
"title" : "Gladiator",
"year" : 2000,
"submitter" : "Aaron"
},
{
"title" : "Mission Impossiple",
"year" : 1996,
"submitter" : "Bill"
},
{
"title" : "The Terminator",
"year" : 1984,
"submitter" : "Jane"
}
]
}
{
"_id" : ObjectId("4f2f07edaee5d897ea09f511"),
"type" : "comedy",
"examples" : [
{
"title" : "The Hangover",
"year" : 2009,
"submitter" : "Aaron"
},
{
"title" : "Dogma", …
Run Code Online (Sandbox Code Playgroud) 我想回显PATH变量,目标是从Java ProcessBuilder获得与echo $PATH
在终端中运行相同的输出。但是,在执行输出时,实际上是输出$PATH
而不是PATH变量的值。我想知道ProcessBuilder是否在转义$,并且有防止这种情况的技巧吗?
这是我正在谈论的代码示例,它输出字符串“ $ PATH”:
List<String> processBuilderCommand = ImmutableList.of("echo","$PATH");
ProcessBuilder processBuilder = new ProcessBuilder(processBuilderCommand).redirectErrorStream(true);
final Process process = processBuilder.start();
String commandOutput = CharStreams.toString(CharStreams.newReaderSupplier(new InputSupplier<InputStream>() {
@Override
public InputStream getInput() throws IOException {
return process.getInputStream();
}
}, Charset.defaultCharset()));
System.out.println(commandOutput);
Run Code Online (Sandbox Code Playgroud)
一些额外的上下文:
我试图模拟sort
我的单元测试之一找不到的命令。我正在使用此技巧/技巧来更改我的PATH,并检查结果processBuilder.environment()
并确定传递给进程的PATH变量是否足够不允许查找排序(我尝试了空字符串和随机路径)。我想看看shell是否正在做任何有趣的事情并修复我试图破坏的PATH。
我使用PHPStorm开发 PHP Web 应用程序并使用其内置的 PHPUnit 测试运行器。在 IDE 的输出窗口中,它显示输出缓冲区(例如,已回显的任何内容)。
ini_set('display_errors', 'On')
我可以看到使用和出现的错误error_reporting(E_ALL)
。但是,使用的任何输出都error_log()
不会显示(但会在错误日志中显示)。
有没有办法让写入错误日志的任何内容也显示在输出缓冲区中?
我有IE7的开发人员工具栏,当我想以类似于firefox的firebug功能的方式检查页面布局时这很棒.
但是,我正在使用一个网站,打开一个禁用工具栏的新窗口,我无法访问我的开发工具栏按钮!有没有办法强制IE7始终显示工具栏?
当error_log()
从PHPUnit的内部运行不写正常的错误日志文件。我想停止它,以便它写入文件,就像我通过浏览器点击 PHP 一样。
<?php
class exampleTest extends PHPUnit_Framework_TestCase {
public function testSomething() {
error_log('This will not be written to the error log, but I wish it was!');
$this->assertEquals(2, 1+1);
}
}
Run Code Online (Sandbox Code Playgroud)
我目前使用 php 5.5 版,phpunit 3.7 版。这在 osx 和 ubunutu 上都会发生。这在 Windows 7 上不会发生。