我知道我可以通过新的Date()获取本地时区偏移量.getTimeZoneOffset().但Javascript从哪里获得这些信息?有没有办法可以设置它,以便所有未来的Date对象都有我想要的偏移量?我尝试在Firebug中搜索DOM,但找不到任何东西.
我想要完成的是将纪元时间转换为可读格式,但无论浏览器的操作系统设置如何,它都需要在美国/中部.因为我使用美国/中环,所以它与GMT没有固定的区别.因此,为什么我不能告诉Javascript我实际上在美国/中环?而不是一堆超级讨厌的转换步骤?
我在使用YAML在Perl和Ruby之间交换数据时遇到了麻烦.我有一些看起来像数字的值:数字,如1:16.
Perl的YAML库(Tiny和XS)将其编码为1:16无引号.Ruby的YAML库(Psych)不会将其解释为字符串,而是以某种方式成为Fixnum值4560.我无法弄清楚如何修复任何一方的转换问题.
我的用例的YAML中的每个值都应该是一个对象或字符串.所以,如果存在这样的选项,我可以告诉Perl YAML库引用所有值.或者有没有办法告诉Ruby YAML库将所有值都解释为字符串?有任何想法吗?
改变任何一方的语言在逻辑上都不是一种选择.
Perl的:
use YAML::XS qw(DumpFile);
my $foo={'abc'=>'1:16'};
DumpFile('test.yaml',$foo);
Run Code Online (Sandbox Code Playgroud)
红宝石:
require('yaml')
foo=YAML.load_file('test.yaml')
puts(foo['abc'])
Run Code Online (Sandbox Code Playgroud)
Ruby代码将打印出来4560.其中一条评论了解了你是如何得出4560的1:16,它是1小时16分转换为秒.呃,好的.
拥有具有这种结构的数据:
$input = [ { animal: 'cat', name: 'Rocky', value: 1 },
{ animal: 'cat', name: 'Spot', value: 2 },
{ animal: 'dog', name: 'Spot', value: 3 } ];
Run Code Online (Sandbox Code Playgroud)
需要最快的方法来转换为这种格式:
$output = { animal: [ 'cat', 'dog' ],
name: [ 'Rocky', 'Spot' ],
value: [ 1, 2, 3 ] };
Run Code Online (Sandbox Code Playgroud)
输出的键应该等于输入中每个对象中的每个键。并且输出值应该是具有排序的唯一值的数组。我找到了几种使用嵌套循环的方法,但比我想要的要慢。输入数组有 30,000 个元素,每个对象有 8 个键,我所能做的最好的事情是 Chrome 中的 300 毫秒。想降到 100 毫秒。有没有使用 map 或 reduce 更快的方法?
我正在尝试为我创建的区域路径设置工具提示.我检查了传递给on mousemove事件处理程序的所有参数,我只是得到完整的数据集0,0.就我所见,没有任何东西可以指示数据中的索引."这个"上下文也是svg路径元素.仍然没有用.甚至看了d3.select(this),我也找不到索引.有没有办法确定我的鼠标是哪个数据点?
环顾四周,我发现了对d3.mouse(this)的引用,这给了我x/y坐标,但是如何将它映射回数据集中的数据点呢?
我的目标是使用工具提示来显示与集合中特定数据点相关的一些元数据.
以下是一些要求的代码片段:
var area=d3.svg.area()
.interpolate("monotone")
.x(function(d){
return(scale.x(d.date));
})
.y0(height-padding.bottom)
.y1(function(d){
return(scale.y(d.count));
});
var path=svg.append('path')
.datum(data)
.attr('d',area)
.attr("clip-path", "url(#clip)")
.attr('fill','url(#gradient)')
// .attr('title','path')
.on('mousemove',function(){
console.log(arguments);
console.log(d3.select(this));
console.log(d3.mouse(this));
});
Run Code Online (Sandbox Code Playgroud) 有没有办法将其他变量传递给方法处理程序子例程?我通常不喜欢在子程序范围之外使用全局变量.我有数据库连接和类实例,我希望处理程序可以访问,而不使用全局变量.使用调试到控制台,对于每个处理程序调用,@ _看起来都是空的.
#!/usr/bin/perl
use strict;
use Dancer;
use Data::Dumper;
set('logger' => 'console');
my $somevar = SomeClass->new();
get('/' => sub{
debug(Dumper(@_));
debug($somevar);
return('hello world');
});
Run Code Online (Sandbox Code Playgroud) 我如何创建我的类,以便只有在将某些值传递给构造函数时,实例中才会存在某些方法?
也许更通用的询问方式是:如何向现有类实例添加方法?
有这种结构的数据.将按'c'按升序排列.
[ { 'a' => 1, 'b' => 1, 'c' => 1, 'd' => '?' },
{ 'a' => 1, 'b' => 1, 'c' => 2, 'd' => '?' },
{ 'a' => 1, 'b' => 1, 'c' => 3, 'd' => '?' },
{ 'a' => 1, 'b' => 2, 'c' => 4, 'd' => '?' },
{ 'a' => 1, 'b' => 2, 'c' => 5, 'd' => '?' },
{ 'a' => 2, 'b' => 1, 'c' …Run Code Online (Sandbox Code Playgroud) 我怎样才能将Sinon与CasperJS一起使用?这是我使用的基本测试文件:
var url = 'http://localhost:3000/';
var sinon = require('sinon');
var server = sinon.fakeServer.create();
server.respondWith("GET", "/login",
[200, { "Content-Type": "application/json" },'{"id": 12}']);
casper.test.begin('integration',1,function suite(test){
casper.start(url,function start(){
test.assertHttpStatus(200,'http status is 200');
});
casper.run(function run(){
test.done();
});
});
Run Code Online (Sandbox Code Playgroud)
然后这个脚本被调用如下:
casperjs test integration.js
Run Code Online (Sandbox Code Playgroud)
这是版本信息:
CasperJS version 1.1.0-DEV
at /usr/local/Cellar/casperjs/1/libexec,
using phantomjs version 1.9.1
Run Code Online (Sandbox Code Playgroud)
下一步是填写登录模式并提交,执行ajax查询.我想模仿jQuery的$.ajax方法.问题是我得到这个错误:" CasperError:找不到模块sinon ".但是Sinon是在全局和本地安装的,并且确切地说要求行在节点交互模式下工作正常.
有人可以发布或指出我在与CasperJS一起使用Sinon的例子的方向吗?它没有特别要做ajax嘲笑.任何用法都没问题.
使用Perl的Dancer模块,如果你有一个"any"方法(匹配get/post/put/delete),你怎么能确定浏览器使用哪种实际方法?
#!/usr/bin/perl
use Dancer;
my $instance = someclass->new();
any('/' => sub{
my $method = ???
my $params = params();
return($instance->$method($params));
});
Run Code Online (Sandbox Code Playgroud) 我正在使用Perl Dancer和Template::Toolkit.
我正在尝试创建一个通用例程,该例程将传递模板和HTTP GET/POST参数.
我需要找到一种方法来获取模板中的变量列表,因此我可以从参数中检索它们,或者如果缺少一个或多个,则返回错误.
我可以走一条丑陋的正则路线,但我希望有更好/更清洁的方式.
所有模板都是XML/SOAP,其中包含一些变量.
有任何想法吗?
使用 Perl 脚本连接本地主机上运行的 Java 服务,传递加密的 cookie,并返回解密的数据。当我从命令行运行脚本时,它工作正常。甚至给 apache 用户一个 shell,并以该用户的身份从命令行运行,这也可以正常工作。如果脚本从 apache 作为 CGI 运行,则套接字 new 返回 undef 和 $! 设置为“权限被拒绝”。???
该服务器上运行 CentOS 6.3,并且 IPtables 被禁用。
#!/usr/bin/perl
use strict;
use CGI;
use IO::Socket;
use JSON;
my $cgi = CGI->new();
my $cookie = $cgi->cookie('attESSec') || shift (@ARGV) || undef;
my $data = JSON::false;
if($cookie){
my $socket = IO::Socket::INET->new(
'PeerHost' => '127.0.0.1',
'PeerPort' => '1500',
'Proto' => 'tcp'
);
if($socket){
$socket->send($cookie . "\r\n");
$socket->recv(my $auth,1024);
$socket->close();
chomp($auth);
if($auth){
$data = (split(/\|/,$auth))[5];
}
}
else{ …Run Code Online (Sandbox Code Playgroud) 我正在尝试为子类中的超类泛型方法创建别名,但它似乎不起作用.同一个类中的这个技巧可以工作,但它似乎不适用于超级/子级转换.这是一个真实的基本例子.前两个电话有效.第三次调用会生成有关未定义子例程的错误.我也试过使用SUPER :: cat,但这也不起作用.
package foo;
sub cat{
print("inside foo\n");
}
*bird = \&cat;
package bar;
use base 'foo';
*dog = \&cat;
package main;
foo::cat();
foo::bird();
bar::dog();
Run Code Online (Sandbox Code Playgroud)