我在Ruby(1.9)中编写了一个爬虫程序,它从很多随机站点中消耗了大量的HTML.
当试图提取链接时,我决定使用.scan(/href="(.*?)"/i)
而不是nokogiri/hpricot(主要加速).问题是我现在收到很多" invalid byte sequence in UTF-8
"错误.
根据我的理解,该net/http
库没有任何特定于编码的选项,并且所引入的内容基本上没有正确标记.
实际使用传入数据的最佳方法是什么?我尝试.encode
使用替换和无效选项集,但到目前为止没有成功...
在Jenkins项目中设置"包含区域"时,帮助文本提到:
如果设置,并且Jenkins设置为轮询更改,则在确定是否需要触发构建时,Jenkins将忽略此列表中不存在的任何文件和/或文件夹.每个包含使用正则表达式模式匹配,并且必须用新行分隔.
当您需要检出整个资源以进行构建时,这非常有用,但只希望在子集发生更改时进行构建.
/trunk/myapp/c/library1/.*
/trunk/myapp/c/library2/.*如果检出/ trunk/myapp,则只有在c/library1和c/library2子树发生更改时才会进行构建.如果还指定了排除区域,则当文件位于包含列表中而不在排除列表中时,不会忽略该文件.
我仍然不太清楚这个"资源"应该是什么.
我们假设我查看了存储库的一部分:https://svn.mydomain.com/repos/projects/myfancyproject/trunk
我们还假设我将其检出一个名为"theproject"的文件夹
现在,让我们假设我只希望在repo的"documents/cat-pictures /"文件夹中发生更改时触发构建.
我应该投入:
或者甚至:数字1到5带有"theproject /"前缀
?
我将围绕一个服务实现一个简单的REST API包装器,并希望将Ruby与Sinatra一起用于此任务.
想法是让用户使用双腿OAuth(2.0)验证/签署请求.
我应该尝试使用像warden和addtional oauth 2.0 addon(例如warden-oauth2)这样的身份验证框架,还是应该使用像rack-oauth2-server这样的基于机架的解决方案.基于机架的方法似乎依赖于MongoDB,这是好的,但我宁愿最小化依赖性.
干杯,
马克
我想使用rvm(或rbenv/chruby)来从我的Jenkins作业中选择不同的ruby版本.默认情况下,Jenkins将使用/ bin/sh,它在Ubuntu上是破折号.
为了改变这个,我可以补充一下
#!/bin/bash -l
Run Code Online (Sandbox Code Playgroud)
到处都是每个shell执行函数的顶部.看到这很烦人的工作,我希望能够将其设置在中心位置.
使用"Shell可执行文件"配置设置,我可以让它运行bash,添加像'-l'这样的参数但是会失败
"/ bin/bash -l"-xe /tmp/hudson5660076222778817826.sh致命:命令执行失败java.io.IOException:无法运行程序"/ bin/bash -l"(在目录"/ home/jenkins/jobs/workspace中)/rvm-test"):error = 2,没有这样的文件或目录
我尝试使用jenkins的rvm插件,但这甚至不安装在当前的发行版本上.
有任何想法吗?:)
我想知道与使用标签和挂钩相比,黄瓜背景中是否存在支持或反对的好论据.
在测试开始之前登录用户可以像这样:
Background:
Given that I am logged in
Scenario: Lorem ipsum sit amet dolor
[...]
Run Code Online (Sandbox Code Playgroud)
或者像这样:
@login
Scenario: Lorem ipsum sit amet dolor
[...]
Run Code Online (Sandbox Code Playgroud)
+
before(@login) do
visit('/admin/login/testuser')
end
Run Code Online (Sandbox Code Playgroud)
任何想法何时支持另一个?
我有一个包含该类的div元素的集合media-gallery-item
.
我想选择元素编号x.
只选择所有项目时,我得到5个结果
$x("//div[@id='content-area']//div[@class='media-gallery-item']")
Run Code Online (Sandbox Code Playgroud)
现在我希望能够选择项目编号2,但我无法弄清楚如何将两者正确组合:
$x("//div[@id='content-area']//div[@class='media-gallery-item'][2]")
$x("//div[@id='content-area']//div[@class='media-gallery-item'
and position() = 2]")
Run Code Online (Sandbox Code Playgroud)
我知道这些并没有多大意义,因为它不是一个实际的AND
,但更像是:"首先按照这个过滤,然后选择第二个匹配".这样做的目的是继续选择事物(例如在第二个元素中,获取元素的href
属性a
)
我正在做一些与大学相关的Diffie Hellmann练习,并尝试使用红宝石.可悲的是,ruby似乎无法处理大型指数:
警告:在**b中,b可能太大
NaN
[...]
它有什么办法吗?(例如,一个特殊的数学课或那条线上的东西?)
ps这里是有问题的代码:
generator = 7789
prime = 1017473
alice_secret = 415492
bob_secret = 725193
puts from_alice_to_bob = (generator**alice_secret) % prime
puts from_bob_to_alice = (generator**bob_secret) % prime
puts bobs_key_calculation = (from_alice_to_bob**bob_secret) % prime
puts alices_key_calculation = (from_bob_to_alice**alice_secret) % prime
Run Code Online (Sandbox Code Playgroud) 我和Jenkins以及私人Github回购有一个小问题.要查看私人仓库,通常需要以下两种方法之一:
部署密钥是为这种交互而制定的.问题是部署密钥必须在项目中是唯一的,所以我每次都必须使用不同的密钥.这意味着我必须为每个额外的仓库为Jenkins用户添加另一个密钥到ssh-agent.
这也意味着默认情况下,代理会尝试所有可用的密钥,并且可能会在使用错误的密钥进行一些错误尝试后删除连接.
Jenkins git插件似乎不允许将其指向SSH密钥.Jenkins在结账前不允许任何命令行交互,所以我不能使用任何bash技巧来设置正确的密钥.
到目前为止,唯一的解决方案似乎是:
还有其他建议吗?
我目前正在玩couchdb.
我正在尝试将一些博客数据从redis(键值存储)迁移到couchdb(键值存储).
看来我可能从不同的博客引擎中迁移了这些数据(每个人都有一个爱好:)),似乎有一些编码snafus.
我正在使用CouchREST从ruby访问CouchDB,我得到了这个:
<JSON::GeneratorError: source sequence is illegal/malformed>
Run Code Online (Sandbox Code Playgroud)
问题似乎是对象的body_html部分:
<Post:0x00000000e9ee18 @body_html="[.....]Wie Sie bereits wissen, m\xF6chte EUserv k\xFCnftig seine [...]
Run Code Online (Sandbox Code Playgroud)
这些应该是变形金刚("möchte"和"künftig").
任何想法如何摆脱这些问题?我在插入之前尝试使用ruby 1.9编码功能或iconv进行了一些转换,但还没有运气:(
如果我尝试使用ruby 1.9的.encode()方法将这些东西转换为ISO-8859-1,则会发生这种情况(不同的文本,相同的问题):
#<Encoding::UndefinedConversionError: "\xC6\x92" from UTF-8 to ISO-8859-1>
Run Code Online (Sandbox Code Playgroud)