我有各种SVG <g>对象,每个对象都有一个<circle>孩子和一个<text>孩子.我可以使用附加到它的类select()来查找特定<text>对象,然后修改它:
d3.select('text.my-class')
.classed("my-class",false).classed("new-class",true)
.text("Next Stage!")
;
Run Code Online (Sandbox Code Playgroud)
现在我需要修改它的圆形兄弟.圆圈没有特定的识别类(嗯......也许给它一个d3方式这样做?),所以我的第一次尝试是类似jQuery:
d3.select('text.my-class').parent().select('circle')
.attr('style','fill:#f00;')
;
Run Code Online (Sandbox Code Playgroud)
这失败了"父母不是一个功能".
建议使用类似问题的答案(如何选择d3.js中当前元素的父元素)this.parentNode,但要么我使用它错了要么在这里不起作用.我试过这两个:
d3.select('text.my-class').select(parentNode).select('circle')
d3.select('text.my-class').select(this.parentNode).select('circle')
Run Code Online (Sandbox Code Playgroud) 我正在为我的CMS使用嵌套集,但是从MySQL 5.5起我无法移动节点.
抛出以下错误:
重新排序文档时出错:MySQL-DB出错:SQL无效:
SELECT baum2.id AS id,
COUNT(*) AS level
FROM elisabeth_tree AS baum1,
elisabeth_tree AS baum2
WHERE baum2.lft BETWEEN baum1.lft AND baum1.rgt
GROUP BY baum2.lft
ORDER BY ABS(baum2.id - 6);
Run Code Online (Sandbox Code Playgroud)
错误:BIGINT UNSIGNED值超出范围在'( ..lektoren - 6)'
的错误编号:1690baum2id
有没有人解决过这个问题?我已经尝试过铸造一些零件但是没有成功.
在PHP中,我们可以做error_reporting(E_ALL)或error_reporting(E_ALL|E_STRICT)有关于可疑代码的警告.在g ++中,您可以提供-Wall(和其他标志)以获得更多的代码检查.R中有类似的吗?
作为一个具体的例子,我在一些函数中重构了一段代码.在其中一个函数中,我有这一行:
if(nm %in% fields$non_numeric)...
Run Code Online (Sandbox Code Playgroud)
很久以后我意识到我忽略了添加fields参数列表,但是R没有抱怨未定义的变量.
我试图将6天的日内数据绘制为6个图表.Quantmod的实验chart_Series()函数与par()设置一起使用.我已经将数据预加载到bars(XTS对象的向量)中,所以我的代码如下所示:
par(mfrow=c(3,2)) #3 rows, 2 columns
for(d in bars){
print(chart_Series(d, type = "candlesticks") )
}
Run Code Online (Sandbox Code Playgroud)
这有效,但每个图表都有自己不同的y轴刻度.我想设置一个覆盖所有6天的y范围,但找不到办法.我试过这个:
ylim=c(18000,20000)
print(chart_Series(d, type = "candlesticks",ylim=ylim) )
Run Code Online (Sandbox Code Playgroud)
但它失败了"未使用的参数"错误.yrange = ylim也失败了.
我可以使用chartSeries(d,yrange = ylim),它可以工作.但据我所知,我不能在一个显示器中放置多个图表(?).(它可能完全是偏离主题的,但是对于可以绘制漂亮的烛台图表,允许y轴控制并且可以在一个图像上绘制多个图表的替代R包的建议也将非常受欢迎.)
一切都适用于Firefox,但我无法启动chrome.我在linux上,使用php webdriver绑定.
require_once "/usr/local/src/selenium/php-webdriver-bindings-0.9.0/phpwebdriver/WebDriver.php";
putenv("PATH=".getenv("PATH").':'.'/usr/local/src/selenium/chrome_webdriver/'); //Prepare for chrome
$webdriver = new WebDriver("localhost", "4444");
//$webdriver->connect("chrome");
$webdriver->connect("chrome","",array(
'webdriver.chrome.driver'=>'/usr/local/src/selenium/chrome_webdriver/chromedriver',
));
Run Code Online (Sandbox Code Playgroud)
我得到的错误消息是" chromedriver可执行文件的路径必须由webdriver.chrome.driver系统属性设置 ".正如您所看到的,我已经尝试在desiredCapabilities数组中设置它,但那肯定是错误的地方.我可以在selenium日志中看到我的设置正在通过,因为此日志行显示:
INFO - Executing: [new session: {javascriptEnabled=true, webdriver.chrome.driver=/usr/local/src/selenium/chrom..., browserName=chrome, nativeEvents=false, version=}] at URL: /session)
Run Code Online (Sandbox Code Playgroud)
我开始用硒 java -jar selenium-server-standalone-2.21.0.jar
我正在使用Chromium v.18.
我创建了一个指向/ usr/bin/chromium-browser的快捷方式/ usr/bin/google-chrome
我可以手动启动chromedriver,没有任何问题.它说:
port=9515
version=20.0.1133.0
Run Code Online (Sandbox Code Playgroud)
运行或不运行,对selenium给出的错误消息没有任何影响.
更新:相关问题:selenium 2 chrome驱动程序(回答有java,不是php)
我明白了:
Error in paste0(width, on, k) : object 'x' not found
Run Code Online (Sandbox Code Playgroud)
我完全混淆为什么在这条特定的线上抱怨'x'!
on是一个字符,width并且k是数字.x存在(它是此函数的参数).该行和前面的行看起来像:
print(index(x))
stopifnot(length(index(x))>=1)
#str(on);str(k);str(width)
extra=list( paste0(width,on,k) )
Run Code Online (Sandbox Code Playgroud)
但是,当我添加注释掉的行时,甚至更奇怪的是它抱怨:
Error in str(on) : object 'x' not found
Run Code Online (Sandbox Code Playgroud)
触发这个问题的原因是几个调用级别我添加了这一行:
rm(x)
Run Code Online (Sandbox Code Playgroud)
(rm(list=c("x"))给出相同的行为.)
所以,我是期待一个"X找不到"错误.但不是那条线(甚至不是那个功能)!
背景:我发现了一个错误,代码依赖于一个名为的全局变量x,它应该作为参数传递.它在单元测试中工作,在实际代码中失败,因为有问题的变量在实际代码中没有被称为'x'!所以,我决定在完成它后显式删除每个变量,以发现我是否还有这种bug.
(如果上面的代码片段不足以让某人去"Aha,Darren,你仍然没有得到R的工作原理吗?",我会尝试创建一个最小的例子来重现这个问题.)
问题
我有一个系统(使用C++ 11)与不规则事件的生产者:( P例如,它可能是UI事件,或者它可能通过TCP/IP套接字接收金融交易数据等).每个事件都附带一个小数据包.
然后,我有一个数字"工蜂"的:B1,B2,B3,...每一种确实的事件的自己加工P饲料他们.他们的处理可能很快,但可能需要很长时间,这就是为什么计划是在自己的线程中运行每个工蜂.此外,每个工蜂需要每N秒运行一次不同的功能(例如N = 60,但它也可能因工蜂而异).此常规处理应始终与事件处理串行完成,永远不要在不同的线程上完成.
最后,一些工蜂也可能会从其他生产活动(P2,P3等),但如果复杂的事情,我总是可以有P1,P2等喂到中央P,他们的工作是将所有事件发送到工蜂.
问题
这种系统的最佳设计是什么?低延迟和高效率是最佳的主要标准.可靠性也很重要:每个B事件都必须接收每个事件(即使它们是批量生成的,因为它当时很忙),如果一个B事件崩溃,它不应该影响其他事件.
如果重要:假设1-64个工蜂,4-8个硬件线程,事件之间的平均时间为10秒,事件之间的最短时间为0.2秒,典型的常规功能是每秒N=60.但如果理想的设计对任何这些标准都敏感,我想了解如何.
注意:如果工蜂可以保证永远不会抛出异常,那是否会改变最佳设计的选择?(感觉这将是无关的,但我想我会把它提起来.)
注意:蜜蜂可能比硬件线程更多; 假设这是另一个问题.(例如,延迟可能对某些工蜂很重要,并且可能会给他们自己的线程,而其他人可能会被告知共享一个线程.)
想法一:等到事件或超时
每个P都有互斥和条件.当它获得新数据时,它会发出信号.
每个工蜂使用theCondition.wait_until(lock,timeout)这里timeout是下一个需要醒来做定期处理的时间.它检查返回值以查看它是否已发出信号或超时.
这里的缺点似乎是它只是一个信号,没有数据.所以我需要每个B人获得另一个锁,以便对数据队列进行读访问.通常他们都希望同时做到这一点,所以这变得很难看.
我也不清楚如果B需要花费很长时间处理某些事情并在它wait_until再次调用之前错过了几个事件会发生什么.
想法二:每个工人的数据队列
这里每个B都有一个带锁的队列.P获取写锁定,并添加数据项.B获得一个读锁定,以便在准备好时关闭每个项目.B因为有新数据,我仍然需要一些知道醒来的方法.
这里的缺点似乎是P线程需要循环遍历每个B以给它们数据.这会引入延迟,并且也会感到脆弱(例如,如果其中一个工蜂表现不佳).
想法三:期货
这个问题感觉非常适合未来. P创建一个std::promise,然后每个B …
我认为这是一个调度问题,但我对此并不确定!我想要的是找到最佳的非重叠购买决策序列,当我完全了解它们的价值以及将来会出现什么样的机会时.
想象一下,批发商出售我想为自己的商店购买的各种商品.他们可能随时有多个特别优惠; 我会以全价出售,所以他们的折扣是我的利润.
我希望利润最大化,但问题是我一次只能购买一件东西,而不是信贷,更糟糕的是,有交货延迟.好消息是我会在交付后立即出售这些物品,然后我可以再次花钱.因此,所有选择的一条路径可能是:我周一购买100公斤苹果,周二送货.然后我在星期天买了20件尼姑服装.我跳过了几天,正如我周三所知,他们将有一个很大的折扣法拉利.所以我买了其中一个,它是在下周二交付的.等等.
您可以考虑是否复利.该算法归结为在选择今天的特价之一或等待一天之间的每个阶段的决定,因为明天会有更好的事情发生.
让我们抽象一点.购买和交付成为自纪元以来的日子.利润写成卖价除以买入价.即1.00意味着收支平衡,1.10意味着10%的利润,2.0意味着我的钱增加了一倍.
buy delivery profit
1 2 1.10 Apples
1 3 1.15 Viagra
2 3 1.15 Notebooks
3 7 1.30 Nun costumes
4 7 1.28 Priest costumes
6 7 1.09 Oranges
6 8 1.11 Pears
7 9 1.16 Yellow shoes
8 10 1.15 Red shoes
10 15 1.50 Red Ferrari
11 15 1.40 Yellow Ferrari
13 16 1.25 Organic grapes
14 19 1.30 Organic wine
Run Code Online (Sandbox Code Playgroud)
注意:机会仅在购买日存在(例如,如果没有人购买,有机葡萄就会变成葡萄酒!),我会在交货当天卖掉,但是直到第二天才能买到我的下一个商品.因此,我不能在t = 7时出售我的修女服装,并立即在t = 7时购买黄色鞋子.
我希望有一个已知的最佳算法,并且已经有一个R模块,但算法或学术文献也会很好,就像任何其他语言一样.速度很重要,但主要是当数据变大时,所以我想知道它是否是O(n 2),或者其他什么.
顺便说一句,如果有最大可能的传递延迟,最好的算法会改变吗?例如,如果delivery - …
我一直在并行运行两个套接字客户端,收集http流数据(不是Twitter,但类似的东西).数据通过分块编码实现.
其中一个客户端是curl(在命令行上,而不是php-curl),其中http和https工作正常.另一个是我自己的PHP脚本,使用fsockopen和fgets.适用于https,但我有一个特定的问题与http.具体怎么样?只有当流静止60秒时才会发生这种情况.如果只有50秒的安静,它工作正常.我一直在将curl发送和接收的http标头与我的脚本进行比较,并删除了所有差异.我以为我知道有关PHP套接字的所有信息,尤其是分块编码,但是现在是时候吃一些不起眼的馅饼,因为这个让我感到难过.
因此,使用"--trace - --trace-time"运行curl,我看到在60秒静默期后第一个数据包通过:
05:56:57.025023 <= Recv data, 136 bytes (0x88)
0000: 38 32 0d 0a 7b 22 64 61 74 61 66 65 65 64 22 3a 82..{"datafeed":
0010: 22 64 65 6d 6f 2e 31 64 36 2e 31 6d 2e 72 61 6e "demo.1d6.1m.ran
...
0080: 34 22 7d 5d 7d 0a 0d 0a 4"}]}...
Run Code Online (Sandbox Code Playgroud)
对于块的大小,82是十六进制.\ r \n标记块大小行的结尾.块从"{"开始.
在PHP方面,我的循环开始如下:
while(true){
if(feof($fp)){fclose($fp);return "Remote server has closed\n";}
$chunk_info=trim(fgets($fp)); //First line is hex digits giving …Run Code Online (Sandbox Code Playgroud) 我在xts对象中有多个列,我想在第一列中找到一定数量以上的百分比,在第一列或第二列中高于某个数字的百分比,前三列中任何一列中的百分比超过一定数量等
我目前正在手动执行此操作,如下所示:
library(xts)
set.seed(69)
x = xts( cbind( v.1 = runif(20)*100, v.2 = runif(20)*100, v.3 = runif(20)*100, v.4 = runif(20)*100), Sys.Date()-20:1 )
c(
mean( x$v.1 > 50),
mean( x$v.1 > 50 | x$v.2 > 50) ,
mean( x$v.1 > 50 | x$v.2 > 50 | x$v.3 > 50) ,
mean( x$v.1 > 50 | x$v.2 > 50 | x$v.3 > 50 | x$v.4 > 50)
)
Run Code Online (Sandbox Code Playgroud)
这给出了这个示例输出:
[1] 0.50 0.70 0.80 0.95
Run Code Online (Sandbox Code Playgroud)
但现在我要推广到任意数量的列,而不仅仅是v.1对v.4.所以我正在寻找一个像这样的单一函数:
this_is_mean( x, c('v.1','v.2','v.3','v.4'), …Run Code Online (Sandbox Code Playgroud)