我正在使用EC2服务器实例.使用以下方法安装Jenkins:
wget -q -O - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add -
sudo sh -c 'echo deb http://pkg.jenkins-ci.org/debian binary/ > /etc/apt/sources.list.d/jenkins.list'
sudo apt-get update
sudo apt-get install jenkins
Run Code Online (Sandbox Code Playgroud)
但我需要在Jenkins服务器上安装软件,所以在我的EC2实例中我做了
sudo –s –H –u jenkins
Run Code Online (Sandbox Code Playgroud)
进入jenkins服务器.然后我试着去做
sudo cabal install quickcheck
Run Code Online (Sandbox Code Playgroud)
但它促使我提供jenkins密码.我一直在互联网上搜索4小时,没有什么能帮助我获得jenkins服务器的管理权限.
所以我在shell中使用以下命令构建我的项目:
sudo cabal clean
sudo cabal configure
sudo cabal build
sudo cabal install
Run Code Online (Sandbox Code Playgroud)
这是我得到的错误:
Started by timer
Building in workspace /var/lib/jenkins/jobs/Finance/workspace
Checkout:workspace / /var/lib/jenkins/jobs/Finance/workspace - hudson.remoting.LocalChannel@eea6dc
Using strategy: Default
Last Built Revision: Revision b638e2182dece0ef1a40232b1d75fa3ae5c01a5d (origin/master)
Fetching changes from 1 remote Git …Run Code Online (Sandbox Code Playgroud) 我目前正在尝试使用测试驱动开发方法来执行Haskell项目.在Java中,我们可以创建一个包含src和bin文件夹的结构良好的项目,然后有用于使用JUnit进行单元测试的主文件夹和测试文件夹.我只是想知道在Haskell中有一个标准的方法来获得这样的结构吗?一个文件夹,用于源二进制文件夹,在源文件夹中有两个文件夹,一个用于测试一个主源文件夹.
在text_field一个可以执行以下操作来设置required属性.
<%= f.text_field:street,:required => true%>
<input id ="recipe_name"name ="recipe_name"type ="text"required>
但是,text_field_tag如果我这样做,输出html会设置value属性,这是不正确的.
<%= text_field_tag:street,:required => true%>
输出:
<input id ="recipe_name"name ="recipe_name"type ="text"value ="{:required => true}">
是required不是支持text_field_tag?解决它的好方法是什么?
我目前正在尝试了解如何在Haskell中并行编程.我正在关注Simon Peyton Jones和Satnam Singh的论文"Haskell中的并行和并发编程教程".源代码如下:
module Main where
import Control.Parallel
import System.Time
main :: IO ()
main = do
putStrLn "Starting computation....."
t0 <- getClockTime
pseq r1 (return())
t1 <- getClockTime
putStrLn ("sum: " ++ show r1)
putStrLn ("time: " ++ show (secDiff t0 t1) ++ " seconds")
putStrLn "Finish."
r1 :: Int
r1 = parSumFibEuler 38 5300
-- This is the Fibonacci number generator
fib :: Int -> Int
fib 0 = 0
fib 1 = 1
fib n = …Run Code Online (Sandbox Code Playgroud) 所以我的/ config/models看起来像这样.
Person
name Text
Car
name Text
PersonCar
personId PersionId eq
carId CarId eq
UniquePersonCar personId carId
Run Code Online (Sandbox Code Playgroud)
假设数据库中的输入Person "Batman" Person "Superman" Car "SUV" Car "Ford"分别是.
我正在这样做,以便在我的处理程序中将它们链接起来.
runDB $ do
person <- selectFirst [PersonName ==. "Batman"] []
car <- selectFirst [Carname ==. "SUV"] []
let Entity personId _ = case person of
Just info -> infor
Nothing -> error "no such Person"
let Entity carId _ = case car of
Just info -> infor
Nothing -> error "no …Run Code Online (Sandbox Code Playgroud) 对于像这样的数据类型
data Tree = Node String Tree Tree
| Leaf String
Run Code Online (Sandbox Code Playgroud)
和真实的数据一样
my_tree = (Node "first node" (Leaf "leaf") (Node "second node" (Leaf "leaf") (Leaf "leaf")))
Run Code Online (Sandbox Code Playgroud)
如何使用持久性将其存储到数据库中,具体如何执行"OR"部分?
我试过像这样定义模型
share [mkPersist sqlSettings, mkMigrate "migrateAll"] [persistLowerCase|
Tree
value String
leftTree Leaf
rightTree Leaf
deriving Show
Leaf
value String
deriving Show
|]
Run Code Online (Sandbox Code Playgroud)
递归结构将作为json字符串自动存储在一行中的列中,这非常好.但是我们如何或者可以在持久模型中定义"OR"结构?
这篇文章对我正在努力实现的目标提供了丰富的信息.我制作了一个简单的HelloUnix二进制文件.
$ echo 'main = putStrLn "Hello Unix"' > HelloUnix.hs
$ ghc -static --make HelloUnix.hs
Run Code Online (Sandbox Code Playgroud)
哪个创建了一个HelloUnix二进制文件,我希望用这个-static标志将所有内容捆绑在二进制文件中,以便运行二进制文件所需要的只是文件本身.我将二进制文件转移到另一台unix机器,确保该文件具有正确的访问权限chmod.跑二进制但这个错误出现了
bash: ./HelloUnix: cannot execute binary file
Run Code Online (Sandbox Code Playgroud)
关于如何调试这个的任何想法?
编辑:我目前正在尝试开发分布式系统,因此希望将二进制文件分发到目标机器.我需要一种运行二进制文件的方法,无论它运行的是哪台机器,这都是目标.
EDIT2:源机器:
mike@mike-1215B:~/Haskell_Program/SmallApp/HelloUnix$ uname -a
Linux mike-1215B 3.0.0-13-generic #22-Ubuntu SMP Wed Nov 2 13:27:26 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux
mike@mike-1215B:~/Haskell_Program/SmallApp/HelloUnix$ file HelloUnix
HelloUnix: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=0xa44cf0e797cd629e0add59722d51d2b20e00fad8, not stripped
mike@mike-1215B:~/Haskell_Program/SmallApp/HelloUnix$ ldd HelloUnix
linux-vdso.so.1 => (0x00007fff8404f000)
libgmp.so.10 …Run Code Online (Sandbox Code Playgroud) 我目前正在关注Cloud-Haskell教程并坚持下去createTransport.在我看来,我只能在127.0.0.1打开服务器的传输,无法打开客户端连接到服务器的传输.我尝试使用两台机器,curl ifconfig.me用来获取我的IP地址,然而,createTransport不会为我创建一个传输.有任何想法吗?
编辑:当地正在运作.
我的程序与教程完全相同,尝试连接两台机器:
curl ifconfig.me 回报 101.119.27.24
服务器的命令行:
ServerClientServer 101.119.27.24 9000
Run Code Online (Sandbox Code Playgroud)
错误返回:
bind: unsupported operation (Cannot assign rerquested address)
Run Code Online (Sandbox Code Playgroud)
编辑:服务器代码如下:
main :: IO ()
main = do
[host, port] <- getArgs
serverDone <- newEmptyMVar
Right transport <- createTransport host port
Right endpoint <- newEndPoint transport
forkIO $ echoServer endpoint serverDone
putStrLn $ "Echo server started at " ++ show (address endpoint)
readMVar serverDone `onCtrlC` closeTransport transport
Run Code Online (Sandbox Code Playgroud)
的echoServer和onCtrlC功能在另一个模块中定义. …
在"函数编程的工艺"一书中,符号'>.>'将函数连接在一起,与'.'的方向相反.但是当我使用ghci实现它时,它显示错误'>.>'超出范围.为什么?这是一个不再使用的旧记谱法吗?
嗨我现在正试图在前奏中使用elem函数.
data MyType = A Int
| B Int Int
| C Int
| D Int Int
deriving (Show,Eq)
list = [ A _, B _ _ ]
Run Code Online (Sandbox Code Playgroud)
要么
list = [ A Int, B Int Int ]
bool = (A 12) elem list -- use like this to get a Boolean value.
Run Code Online (Sandbox Code Playgroud)
问题是列表,它会(都)有编译错误.有人能告诉我正确的方法来定义列表吗?
关于数据和在我的主代码中导出(Show,Eq)我已经做了所有这些.这个问题的原因是我有一个很大的MyType列表,我想从大清单中选择一两种类型修改它然后把它放回去,我该怎么做?进出口.bigList = [A 3,C 6,A 5,B 5 8,D 5 6]我想只选出数据类型(A Int)和(B Int Int),也许改变两种数据类型的所有值进入0后,修改后放回去,所以我最终得到一个新列表.newBigList = [A 0,C 6,A 0,B 0 0,D 5 6]
谢谢
我想解决一个动态生成的方程式.我在HackageDB中找到了一个很好的库,它可以使用Newton-Raphson方法计算近似根.但是,牛顿函数采用函数(类型签名为Num a => a - > a)作为等式.我的问题是,是否可以将功能附加在一起?例如:(不正确的语法)
join :: (a->a) ->(a->a)->(a->a)
join func1 func2 = func1+func2
For instance:
if func1 = 1+2*X+5*X^2 , func2 = 5 + 4*x + 2*x^3
then func3 = join func1 func2
func3 is `6 + 6*x + 5*x^2 + 2*x^3?
Run Code Online (Sandbox Code Playgroud)
我正在考虑两种方法来做到这一点.因为每个小函数都是动态生成的,所以我必须将函数简化为上面的形式,然后将信息存储在数据类型中,例如:(不正确的语法)
data FuncInfo = Info [Double]
if 1 + 2*x + 3*x^2 ----> Info [1,2,3]
5 + 4*x^3 ----> Info [5,0,0,4]
Run Code Online (Sandbox Code Playgroud)
这样添加两个数据并创建新函数应该很容易.然而,实际上这并不容易,因为动态生成的小函数实际上很难简化(一个小函数可能看起来像这样:) 10 / (1+x)^5.
我想的另一种方法是将函数附加在一起,这样就不需要进行简化,也不需要存储到新的数据类型中,例如:
func1 = 10 / (1+x) ^5
func2 = …Run Code Online (Sandbox Code Playgroud) haskell ×9
persistent ×2
yesod ×2
amazon-ec2 ×1
binary ×1
executable ×1
forms ×1
html ×1
jenkins ×1
linker ×1
notation ×1
operators ×1
syntax ×1
tdd ×1
testing ×1
unit-testing ×1