小编Kos*_*kov的帖子

用于克隆私有git仓库的Dockerfile

我正在尝试从github克隆私有git存储库.我做了一个像这样的Dockerfile:

FROM ubuntu:12.04

RUN apt-get update
RUN apt-get install -y git
RUN mkdir -p /root/.ssh/
ADD ./id_rsa /root/.ssh/id_rsa
RUN git clone git@github.com:usr/repo.git
Run Code Online (Sandbox Code Playgroud)

我在本地使用这个repo就好了,所以看起来我在Docker里面缺少一些东西.

我可能会遗漏的另一件事是,船坞~人和$HOME船坞人都指向/而不是/root,但我不确定这是否可以相关.

ssh docker

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

如何使zsh前向词行为与bash/emacs相同

zsh forward-word与bash/emacs有点不同,我想改变它.

而不是描述所有差异,让我向您展示bash的一步一步行为.我将光标标记为"^"符号.

foo bar --non-needed-param --needed-param^
Run Code Online (Sandbox Code Playgroud)

MB

foo bar --non-needed-param --needed-^param
Run Code Online (Sandbox Code Playgroud)

MB

foo bar --non-needed-param --^needed-param
Run Code Online (Sandbox Code Playgroud)

MB

foo bar --non-needed-^param --needed-param
Run Code Online (Sandbox Code Playgroud)

MB

foo bar --non-^needed-param --needed-param
Run Code Online (Sandbox Code Playgroud)

MB

foo bar --^non-needed-param --needed-param
Run Code Online (Sandbox Code Playgroud)

MB

foo ^bar --non-needed-param --needed-param
Run Code Online (Sandbox Code Playgroud)

MF

foo bar^ --non-needed-param --needed-param
Run Code Online (Sandbox Code Playgroud)

马里兰州

foo bar^-needed-param --needed-param
Run Code Online (Sandbox Code Playgroud)

马里兰州

foo bar^-param --needed-param
Run Code Online (Sandbox Code Playgroud)

马里兰州

foo bar^ --needed-param
Run Code Online (Sandbox Code Playgroud)

这个算法既可以灵活地移动单词,也可以为我删除部分单词.它也在emacs中,所以我已经习惯了.我也希望在zsh中看到它.谢谢.

zsh zshrc

13
推荐指数
2
解决办法
1895
查看次数

书中的内容(1999)和论文(1996)中的Chris Okasaki - 纯功能数据结构之间的区别是什么

我想阅读Purely Functional Data Structure的工作.我很容易找到论文(可以免费获得,1996年),但看到也有一本书(1999).所以我想知道差异有多大(除了最后两章).

我也找不到合适的方式购买这本书(例如一些易于在Android和Ubuntu上阅读的数字表格,我唯一能找到的是一些只能通过Windows/MacOS软件打开的特殊PDF).

ps:答案发自https://softwareengineering.stackexchange.com/questions/185411/whats-the-difference-in-content-between-chris-okasakis-1996-thesis-and-1999-bo

haskell functional-programming data-structures

12
推荐指数
0
解决办法
599
查看次数

从yesod处理程序返回JSON

我正在尝试从Yesod的处理程序中编写一个最简单的JSON响应,但有一些非常愚蠢的错误(显然).我的处理程序代码如下:

-- HelloYesod/Handler/Echo.hs
module Handler.Echo where

import           Data.Aeson      (object, (.=))
import qualified Data.Aeson      as J
import           Data.Text       (pack)
import           Import
import           Yesod.Core.Json (returnJson)

getEchoR :: String -> Handler RepJson
getEchoR theText = do
  let json = object $ ["data" .= "val"]
  return json
Run Code Online (Sandbox Code Playgroud)

错误是这样的:

Handler/Echo.hs:12:10:
    Couldn't match expected type `RepJson' with actual type `Value'
    In the first argument of `return', namely `json'
    In a stmt of a 'do' block: return json
    In the expression:
      do { let json = object …
Run Code Online (Sandbox Code Playgroud)

api json haskell yesod

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

haskell ADT中的类型安全命名字段

有一个很常见的问题很容易与haskell有关.描述它的代码段是这样的:

data JobDescription = JobOne { n :: Int }
                    | JobTwo
                    | JobThree { n :: Int }
  deriving (Show, Eq)

taskOneWorker :: JobDescription -> IO ()
taskOneWorker t = do
    putStrLn $ "n: " ++ (show $ n t)

main :: IO ()
main = do
  -- this runs ok:
  taskOneWorker (JobOne 10)

  -- this fails at runtime:
  -- taskOneWorker JobTwo

  -- this works, but we didn't want it to:
  -- taskOneWorker (JobThree 10)
Run Code Online (Sandbox Code Playgroud)

我描述了这个问题,这篇文章中可能有解决方案:https://www.fpcomplete.com/user/k_bx/playing-with-datakinds …

haskell

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

与docker共享〜/ .stack

我们的团队正在使用Docker构建我们的Haskell应用程序,为了优化构建时间,我们努力将~/.stack操作系统中的目录与docker容器内的目录共享.最初的实现只是重用OS中的那个,但事实证明这不能很好地工作,它失败并出现如下错误:

The GHC located at /root/.stack/programs/x86_64-linux/ghc-8.0.1/bin/ghc failed to compile a sanity check. Please see:
    http://docs.haskellstack.org/en/stable/install_and_upgrade/
for more information. Exception was:                                                                                                                                                 Running /root/.stack/programs/x86_64-linux/ghc-8.0.1/bin/ghc /tmp/stack-sanity-check48/Main.hs -no-user-package-db in directory /tmp/stack-sanity-check48/ exited with ExitFailure 127

/root/.stack/programs/x86_64-linux/ghc-8.0.1/bin/ghc: line 9: /home/ubuntu/.stack/programs/x86_64-linux/ghc-8.0.1/lib/ghc-8.0.1/bin/ghc: No such file or directory
make: *** [adserver_executables] Error 1
Run Code Online (Sandbox Code Playgroud)

似乎某个地方~/.stack有一个缓存~/.stack,它指明了GHC的绝对路径,当我们在docker中挂载时,它会被挂载/root/.stack而不是/home/<user>/.stack,因此该路径找不到编译器.

我们目前的决定是创建一个单独的目录~/.docker-stack,我们将用于所有基于docker的构建,而不会干扰操作系统级别的目录.这并不理想,因为它将占用更多空间,并且即使在非docker OS级环境中编译它们也需要重新编译包.

是否有更好的方法有人可以建议~/.stack与内部Docker堆栈共享?谢谢.

haskell haskell-stack

7
推荐指数
0
解决办法
182
查看次数

构建 haskell 堆栈测试而不运行

我做了一个非常简单的项目,但测试套件失败了https://github.com/k-bx/noruntests-play

\n\n

现在,当我运行时,stack --test --no-run-tests build我希望它构建项目,但不运行测试。相反,它运行测试:

\n\n
\xe2\x9e\x9c  noruntests-play git:(master) stack --test --no-run-tests build\nnoruntests-play-0.1.0.0: test (suite: test)\n\ntest: error\nCallStack (from HasCallStack):\n  error, called at tests/Tests.hs:4:8 in main:Main\n\nTest suite failure for package noruntests-play-0.1.0.0\n    test:  exited with: ExitFailure 1\nLogs printed to console\n
Run Code Online (Sandbox Code Playgroud)\n\n

我在这里做错了什么?谢谢你!

\n

haskell build-tools command-line-arguments haskell-stack

5
推荐指数
1
解决办法
334
查看次数

CSS:删除滚动创建的填充

我正在尝试构建一个类似于 Apple Mail 的 UI,左侧栏有水平的电子邮件列表,您可以滚动浏览。问题是,当我添加滚动时,它会创建一个额外的填充,而不是呈现在内容之上。

<!doctype html>
<html style="height: 100%;">
<head>
<style>
.scrollable-list-item {
  padding: 1rem;
  border-bottom: 1px solid #cdcdcd;
}
.scrollable-list-item-active {
  background-color: #0069d9;
  color: white;
}
</style>
</head>
<body style="height: 100%; width: 100%; margin: 0">
  <div style="height: 100%; width: 100%; display: flex;">
      <div style="width: 200px; height: 100%; overflow-x: scroll; background-color: #efefef;">
          <div class="scrollable-list-item">scrollable list item</div>
          <div class="scrollable-list-item scrollable-list-item-active">scrollable list item</div>
          <div class="scrollable-list-item">scrollable list item</div>
          <div class="scrollable-list-item">scrollable list item</div>
          <div class="scrollable-list-item">scrollable list item</div>
          <div class="scrollable-list-item">scrollable list item</div>
          <div class="scrollable-list-item">scrollable …
Run Code Online (Sandbox Code Playgroud)

html css

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

如何在Haskell中查找类的源代码(实现)

我正在阅读有关IxSet的http://happstack.com/docs/crashcourse/AcidState.html#ixset的一些文档,我想知道如何查看从Data.IxSet导入的Indexable类型类的源代码.

然后我拿了一个Happstack的存储库,然后看着那里(darcs得到http://patch-tag.com/r/mae/happstack),但这让我更加沮丧.

我看到happstack/happstack-ixset/src/Happstack/Data/IxSet.hs文件,它创建了一个模块Happstack.Data.IxSet,但是我看不到哪个文件创建了一个模块Data.IxSet(并实现了类Indexable) .

haskell happstack

4
推荐指数
1
解决办法
470
查看次数

如何在emacs垂直边框内删除换行符号

我喜欢adaptive-wrap-prefix-mode,只要您克服窗口宽度,它就会自动换行,并在下一行中使用非真实(“软”)压痕很好地格式化文本。

但是,这有一个问题。每当发生这种情况时,emacs都会在其垂直线的两侧绘制一个“换行”符号,而这些符号确实引起我的注意,从而破坏了自动换行的整个目的(不破坏长行代码的视觉缩进) )。

问题是:如何删除左侧和右侧的那些符号?

emacs word-wrap long-lines

4
推荐指数
2
解决办法
641
查看次数

能够从Haskell中的monadic动作获得多态函数

我希望能够编写一个IO动作,它将返回一个多态函数,可以用于不同的值,但似乎我不能.有人可以帮我这样做吗?

f :: a -> Bool
f _ = True

getF :: Int -> (a -> Bool)
getF _ = f

getFIO :: IO (a -> Bool)
getFIO = return f

main :: IO ()
main = do
    -- this works
    print ((f :: Int -> Bool) (10::Int))
    print ((f :: String -> Bool) "asd")

    -- this works
    let f' = getF 10
    print (f' (10::Int))
    print (f' "asd")

    -- this doesn't
    f'' <- getFIO
    print (f'' (10::Int))
    print (f'' …
Run Code Online (Sandbox Code Playgroud)

haskell

3
推荐指数
2
解决办法
88
查看次数