我在Windows上遇到了Hudson的问题.
每当我更新Hudson或插件时,我都可以选择在没有作业运行时重新启动.
如果我单击此按钮,Hudson会挂起并且不会重新启动.我已经尝试重新启动Hudson服务,但这没有用,所以最终不得不重启盒子让Hudson重新上线.
我刚刚更新到最新版本,但没有点击重启按钮,现在它已经消失了.
有没有正确的方法在Windows上重启Hudson?
干杯
汤姆
我来自计算机科学.背景,但我现在正在做基因组学.
我的项目包括许多生物信息学,通常涉及:比对序列,比较序列之间的重叠等,以及各种基因组注释特征,来自不同类别的生物样本,时间过程数据,微阵列,高通量测序("下一步 -生成"排序,虽然它实际上是当前这一代"的数据,这种东西.
这种分析的工作流程与我在计算机科学研究期间所经历的完全不同:没有UML和精心设计的对象闪耀着崇高的优雅,没有版本管理,没有适当的文档(通常没有文档),没有软件工程在所有.
相反,每个人在这个领域所做的就是一个接一个地删除一个Perl脚本或AWK -one-liner,通常是一次性使用.
我认为原因是输入数据和格式变化如此之快,问题需要尽快回答(截止日期!),似乎没有时间进行项目组织.
一个例子来说明这一点:假设你想写一个光线跟踪器.您可能会首先在软件工程中投入大量精力.然后编程,最后以一些高度优化的形式.因为您将使用不同的输入数据无数次使用光线跟踪器,并且会在未来几年内对源代码进行更改.因此,从头开始编写严格的光线跟踪器时,良好的软件工程是至关重要的.但是想象一下你想写一个光线跟踪器,你已经知道你将使用它来光线跟踪一张单张图片.而那张照片是在方格地板上的反射球体.在这种情况下,你会以某种方式一起破解它.生物信息学就像后一种情况一样.
您最终会得到具有不同格式的相同信息的整个目录树,直到您达到下一步所需的一种特定格式,以及名称为"tmp_SNP_cancer_34521_unique_IDs_not_Chimp.csv"的十几个文件,其中您没有任何想法一天后,为什么你创建了这个文件,它究竟是什么.
有一段时间我使用MySQL帮助了,但现在生成新数据和更改格式的速度使得无法进行适当的数据库设计.
我知道有一篇出版物处理这些问题(Noble,WS(2009,July).组织计算生物学项目的快速指南.PLoS Comput Biol 5(7),e1000424 +).作者总结了很好的目标:
核心指导原则很简单:不熟悉您的项目的人应该能够查看您的计算机文件并详细了解您的工作和原因.
嗯,这也是我想要的!但我已经遵循了与作者相同的做法,我觉得这绝对是不够的.
记录您在Bash中发出的每一个命令,对它的确切原因进行评论,等等,只是单调乏味且容易出错.工作流程中的步骤太精细了.即使你这样做,弄清楚每个文件的用途,以及在什么时候特定的工作流程被中断,以及出于什么原因,以及你继续在哪里,仍然是一项非常繁琐的工作.
(我不是在Taverna意义上使用"工作流程"一词;工作流程我只是指为实现特定目标而选择执行的步骤,命令和程序).
您如何组织生物信息学项目?
我有一个表存储一个时间点的值:
CREATE TABLE values
(
value DECIMAL,
datetime DATETIME
)
Run Code Online (Sandbox Code Playgroud)
每天可能有很多值,某一天也可能只有一个值.现在我想获得给定时间段(例如一个月)中每天最接近给定时间的值.如果有当天的记录,我只想每天获得一个值,如果没有记录,我只想获得没有值.我的数据库是PostgreSQL.我非常坚持这一点.我可以在时间跨度中获取所有值,并以编程方式为每一天选择最接近的值,但这意味着从数据库中提取大量数据,因为一天可能有很多值.
(更新)
为了使它更具抽象性:我有任意精度的数据(可能是一分钟,可能是两小时或两天),我想将它转换为一天的固定精度,具有一天的特定时间.
(第二次更新)
假设期望的时间是16:00,这是来自接受的答案的查询以及正确的postgresql类型转换:
SELECT datetime, value FROM values, (
SELECT DATE(datetime) AS date, MIN(ABS(EXTRACT(EPOCH FROM TIME '16:00' - CAST(datetime AS TIME)))) AS timediff
FROM values
GROUP BY DATE(datetime)
) AS besttimes
WHERE
CAST(values.datetime AS TIME) BETWEEN TIME '16:00' - CAST(besttimes.timediff::text || ' seconds' AS INTERVAL)
AND TIME '16:00' + CAST(besttimes.timediff::text || ' seconds' AS INTERVAL)
AND DATE(values.datetime) = besttimes.date
Run Code Online (Sandbox Code Playgroud) 我不知道我们可以用自定义异常做什么,我们用内置异常做什么.这似乎是一个天真的问题,但我真的不知道这一点.你怎么看?
我想在两个标签的标签面板主体内放一些锚点.但我的锚点不可见.代码如下
<g:TabLayoutPanel ui:field="lhsTabPanel" barUnit="PX" barHeight="60">
<g:tab>
<g:header>Analysis</g:header>
<g:FlowPanel>
<g:Anchor ui:field='personalInformation'>Personal Information</g:Anchor>
</g:FlowPanel>
</g:tab>
<g:tab>
<g:header>Comparison</g:header>
<g:FlowPanel ui:field="comparisonContent"/>
</g:tab>
</g:TabLayoutPanel>
Run Code Online (Sandbox Code Playgroud)
个人信息选项卡不可见
我在我的app委托applicationDidFinishLaunching方法中有这个:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if([defaults objectForKey:@"AcceptTC"] == nil){
NSDictionary *appDefaults = [NSDictionary dictionaryWithObject:@"NO" forKey:@"AcceptTC"];
[defaults registerDefaults:appDefaults];
}
Run Code Online (Sandbox Code Playgroud)
我在RootViewController viewDidLoad方法中有这个:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if(![defaults boolForKey:@"AcceptTC"]){
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Notice" message:@"By using this application you agree to be bound by the Terms and Conditions as stated within this application." delegate:self cancelButtonTitle:@"No Deal" otherButtonTitles:@"I Understand",nil];
[alert show];
[alert release];
}
Run Code Online (Sandbox Code Playgroud)
和我的警报视图委托这样做:
if(buttonIndex == 0){
exit(0);
}
else{
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:@"YES" …Run Code Online (Sandbox Code Playgroud) 我有一个阵列var words = []//lots of different words in it.我有一个Math.floor(Math.random()*words.length)从数组中选择一个随机字.这是在循环中运行的,该循环运行随机次数(2到200次).我想确保在该循环运行期间不会多次选择随机数.你会怎么建议这样做?
我想画一个序列图在哪里
A -> B.run()
B.run() -> B.m1()
B.m1() -> B.m2()
Run Code Online (Sandbox Code Playgroud)
到目前为止,我已经想出了这些.
http://i51.tinypic.com/eja5bl.jpg http://i52.tinypic.com/1449s3.jpg
但是在这里我不能清楚地提到B.m2()由B.m1()调用而不是它看起来像B.run()串行调用B.m1()和B.m2().
-------------编辑----------------
这就是我目前绘制的内容http://i55.tinypic.com/21276kk.jpg
http://i55.tinypic.com/21276kk.jpg 我现在的图表好吗?我想要的是这个.(呼叫流程)
SpiritAdapter -> SpiritEngine::run(spirit:string, method:string, args[])
SpiritEngine::run(spirit:string, method:string, args[]) -> SpiritEngine::executeLogic(spirit:string, method:string, args[])
SpiritEngine::executeLogic(spirit:string, method:string, args[]) -> SpiritEngine::spirit(spirit:string, method:string, args[])
SpiritEngine::spirit(spirit:string, method:string, args[]) -> new SpiritAbstractor
SpiritEngine::executeLogic(spirit:string, method:string, args[]) -> SpiritAbstractor::method(args)
SpiritEngine::run(spirit:string, method:string, args[]) -> SpiritEngine::storeXDO()
Run Code Online (Sandbox Code Playgroud) 假设,在调试会话中,我有一个地址,不幸的是它指向一些垃圾.我想检查周围的记忆,看看附近有什么.正如所料,发生以下错误:
(gdb) x/64 $t5
0x842da7ac: Cannot access memory at address 0x842da7ac
Run Code Online (Sandbox Code Playgroud)
所以,问题是:有没有办法读取一系列地址,其中一些无效?
(更准确地说,我怎么知道上面的例子$t5+n中某些人的有效地址0 < n <= 64?)