小编Chr*_* W.的帖子

普通锁定文件中的竞争条件?

这是使用文件系统创建锁的标准方法.例如,visudo使用它:

[ -f ".lock" ] && exit 1
touch .lock
# do something
rm .lock
Run Code Online (Sandbox Code Playgroud)

1)我很困惑,因为有竞争条件,但Linux使用它

2)有没有更好的方法来锁定shell中的文件?

3)或者我必须使用目录吗?

找到解决方案:man lockfile.

linux bash shell mutex locking

15
推荐指数
2
解决办法
7562
查看次数

如何在PHP中检查文件是ASCII还是二进制

是否有一种快速,简单的方法来检查文件是ASCII还是二进制文件?

php

14
推荐指数
2
解决办法
1万
查看次数

无法通过Capybara(v2)与Bootstrap模态进行交互

在Rails应用程序我想测试一个引导模式jQuery的TokenInput场使用水豚用在Rspec的capybara-webkit驱动程序.有问题的部分如下:

click_link 'Create Team Modal'
sleep 1

within('div#modal_popup') do
  fill_in 'input#token-input-team_name', with: 'Fancy team name'
  sleep 1
  fill_in 'input#token-input-team_name', with: '\t'
  sleep 1

  click_button 'Create Team'
end

page.should have_content('Fancy team name')
Run Code Online (Sandbox Code Playgroud)
  • 单击按钮以获取模态
  • 使用团队名称填写TokenInput
  • 模拟Tab键 - 按下以选中它
  • 创建团队
  • 验证页面上显示的名称

这只适用于所有这些sleep 1; 否则Capybara崩溃have_content,最终导致服务器错误,因为团队名称永远无法正确选择.但是,没有 TokenInput字段的其他Bootstrap模式sleep 1在加载之前不需要.

尽管如此,有没有办法摆脱睡眠并让这一切正常进行?Capybara 2取出wait_until(有充分的理由),因为它将在默认的等待时间内等待测试某些东西......但这似乎没有反映在我的上述测试中; 就好像Capybara在进入/退出这个模态时没有参与等待期.有人对此有经验吗?使用Rails 3.2.10,Rspec 2.12,Capybara 2,capybara-webkit 0.14.0,TokenInput 1.6.

ruby-on-rails capybara jquery-tokeninput twitter-bootstrap capybara-webkit

14
推荐指数
2
解决办法
6234
查看次数

GHC/Haskell如何决定从哪个字符编码解码/编码?

似乎GHC在它决定解码的字符编码中至少是不一致的.

考虑一个文件,omatase-shimashita.txt其中包含以下内容,以UTF-8编码:お待たせしました

readFile 似乎正确地读了这个......

Prelude> content <- readFile "/home/chris/Desktop/omatase-shimashita.txt"
Prelude> length content
8
Prelude> putStrLn content
????????
Run Code Online (Sandbox Code Playgroud)

但是,如果我编写一个简单的"echo"服务器,它不会使用默认的UTF-8进行解码.请考虑以下处理传入客户端的代码:

handleClient handle = do
  line <- hGetLine handle
  putStrLn $ "Read following line: " ++ toString line
  handleClient handle
Run Code Online (Sandbox Code Playgroud)

以及相关的客户端代码,明确发送UTF-8:

Data.ByteString.hPutStrLn handle $ Codec.Binary.UTF8.Generic.fromString "????????"
Run Code Online (Sandbox Code Playgroud)

这不是不一致的行为吗?有这种疯狂的方法吗?我打算重写我的应用程序以显式使用ByteString对象并使用显式编码和解码Codec.Binary.UTF8,但是最好知道这里发生了什么......:o /

更新:我在Ubuntu Linux版本10.10上运行,其语言环境为en_US.UTF-8 ...

$ cat /etc/default/locale 
LANG="en_US.UTF-8"
$ echo $LANG 
en_US.UTF-8
Run Code Online (Sandbox Code Playgroud)

haskell character-encoding ghc

12
推荐指数
2
解决办法
3031
查看次数

如何转义字符串以在Scala中的XML/HTML文档中使用?

具体来说,替换字符串中特殊 XML字符的最简单,最惯用的方法是什么.例如,转换<Jack & Jill>为最简单,最惯用的方法是什么&lt;Jack &amp; Jill&gt;.

html xml scala escaping

12
推荐指数
1
解决办法
6381
查看次数

如何确定正在运行的Haskell脚本或应用程序所在的目录?

我有一个Haskell脚本,通过使用该runhaskell实用程序的shebang线运行.例如..

#! /usr/bin/env runhaskell
module Main where
main = do { ... }
Run Code Online (Sandbox Code Playgroud)

现在,我希望能够从脚本本身确定该脚本所在的目录.因此,如果脚本存在/home/me/my-haskell-app/script.hs,我应该能够使用相对或绝对路径从任何地方运行它,它应该知道它位于/home/me/my-haskell-app/目录中.

我认为System.Environment模块中可用的功能可能会有所帮助,但它有点短暂. getProgName似乎没有提供有用的文件路径信息.我发现环境变量_(这是一个下划线)有时会包含脚本的路径,因为它被调用了; 但是,只要通过其他程序或父脚本调用脚本,该环境变量似乎就会失去其值(我需要从另一个父应用程序调用我的Haskell脚本).

同样有用的是我是否可以使用相同的技术或其他方式确定预编译的Haskell可执行文件所在的目录.

haskell path absolute-path

10
推荐指数
3
解决办法
1548
查看次数

如何在Python文档字符串中定义"可调用"参数?

考虑一下filterNot(基本上与之相反filter)的实现:

def filterNot(f, sequence):
    return filter(lambda x: not f(x), sequence)
Run Code Online (Sandbox Code Playgroud)

参数f可以是"函数"或"方法"或lambda- 甚至是类定义的对象__call__.

现在考虑一下这个参数的docstring行:

:param ??? f: Should return True for each element to be abandoned
Run Code Online (Sandbox Code Playgroud)

现在,应该取代什么- 如何在docstring中引用参数类型f.callable是显而易见的选择(如果我发号施令,我会指示:P)但是有没有既定的惯例?

python documentation types docstring function-declaration

10
推荐指数
1
解决办法
2490
查看次数

为什么包默认隐藏?我怎么能"取消隐藏"呢?

我正在运行Ubuntu 10.10,我transformers通过Ubuntu软件包安装了模块libghc6-transformers-dev.出于某种原因,默认情况下隐藏此包:

ghc --make -i./src/ src/fastcgi.hs -o myapp.fcgi

src/MyApp/Webapp.hs:6:7:
    Could not find module `Control.Monad.IO.Class':
      It is a member of the hidden package `transformers-0.2.1.0'.
      Use -v to see a list of the files searched for.
Run Code Online (Sandbox Code Playgroud)

所以,我的第一个问题是,"为什么?".我的第二个问题是,"取消隐藏"该模块的正确方法是什么(无需通过命令行明确指定模块)?这是一个好/坏的想法吗?

注意,我可以通过显式传递包名来获得ghc编译,如下所示:

ghc --make -package transformers -i./src/ src/fastcgi.hs -o myapp.fcgi
Run Code Online (Sandbox Code Playgroud)

haskell packages ghc

9
推荐指数
1
解决办法
2355
查看次数

如何为sbt项目指定自定义目录布局?

如何为sbt基于项目的项目指定自定义目录布局?我一直在看在线sbt资料,但我很难找到这些信息......

我在文档中找到的是默认位置:

  • 基目录中的源
  • 来源src/main/scalasrc/main/java
  • 测试src/test/scalasrc/test/java
  • 在数据文件src/main/resourcessrc/test/resources
  • 非托管jar文件 lib/

如何在build.sbt文件中覆盖这些?

我的项目结构目前如下:

  • 来源: [workspace]/sandbox-scala/src/sbt/myFirst/
  • 图书馆: [workspace]/java-lib/common/lib/

任何帮助赞赏.

build sbt

8
推荐指数
1
解决办法
2506
查看次数

有任何更好的方法将SQL ResultSet转换为Scala列表

有没有更好的方法将ResultSet从SQL查询转换为Scala中的Array/List?
下面显示的天真的方式不是Scala.我想知道如何改进它.

val rs = pstmt.executeQuery()
var nids = List[String]()
while (rs.next()) {
  nids = nids :+ rs.getString(1)
}
rs.close()
Run Code Online (Sandbox Code Playgroud)

scala jdbc

7
推荐指数
2
解决办法
3509
查看次数