直到最近,当一个人正在docker-compose up为一堆容器做准备并且一个已启动的容器停止时,所有容器都被停止了.自https://github.com/docker/compose/issues/741以来不再是这种情况了,这对我们来说真的很烦人:我们使用docker-compose来运行selenium测试,这意味着启动应用服务器,启动selenium hub +节点,启动测试驱动程序,然后在测试驱动程序停止时退出.
有没有办法恢复旧的行为?
我正在尝试将一个简单的node.js基于表达的应用程序部署到heroku,这显然是非常基本的:https://devcenter.heroku.com/articles/nodejs
这是我的package.json:
{
"name": "cours-lic3-blois",
"version": "0.0.1",
"private": true,
"scripts": {
"start": "node app"
},
"dependencies": {
"express": "*",
"ejs": "*",
"github-flavored-markdown": "*",
"less-middleware": "*"
},
"engines": {
"node": "0.8.8",
"npm": "1.1.65"
}
}
Run Code Online (Sandbox Code Playgroud)
当我git push heroku master得到以下痕迹时:
-----> Heroku receiving push
-----> Node.js app detected
-----> Resolving engine versions
Using Node.js version: 0.8.8
Using npm version: 1.1.65
-----> Fetching Node.js binaries
-----> Vendoring node into slug
-----> Installing dependencies with npm
npm ERR! Error: …Run Code Online (Sandbox Code Playgroud) 我正在努力解决Haskell中的一个设计问题,我似乎无法以优雅和令人满意的方式解决这个问题.我有一个系统,其核心是基于事件源的概念:系统的状态是由一系列事件应用到初始状态产生的.有不同类型的事件,每种类型通过类型系列与系统的特定组件相关:
class Model a where
data Event a :: *
apply :: Event a -> a -> a
instance Model Foo where
data Event Foo = Foo Int
...
instance Model Bar where
data Event Bar = Bar String
...
Run Code Online (Sandbox Code Playgroud)
目前系统是100%同步和耦合的,每个模型都可以访问所有其他模型的事件,这很快变得一团糟,所以我想通过引入事件总线 来解耦事情Bus Events,这样我应该能够编写类似于
dispatch :: Bus Events -> Consumer (Event Foo) -> Bus Events将某些消费者附加Event Foo到Bus Events假设中,在Event Foo和之间存在某种形式的子类型或包含Events.然后我可以通过确保消费者每个都在自己的线程中运行来添加异步性.
从系统的角度来看,这将允许我确保每个组件可独立包装,从而将依赖性限制为所有事件的子集.Eventstype将在整个应用程序级别定义.这个问题看起来与离散时间的FRP类似,但我似乎无法绕过它...
有没有人已经处理过类似的事情,如果有的话,怎么样?
编辑:
我提出了以下代码,这些代码没有用,Source但受到@ …
我认为一切都在标题中,但我正在寻找:
作为奖励,我会对测试覆盖工具感兴趣......
免责声明:我是一个React新手,所以也许我想做的不是React Way
我正在编写一个React前端,该前端将被部署为由某些云提供商静态地提供服务,例如S3或Google Storage或其他。该前端与生活在云中某个地方(可能在同一提供商中,也许不在同一提供商中)的多个API服务器进行交互。此外,在开发UI或其一部分时,这些服务器的地址可能是本地实例或测试实例。
如何以灵活的方式将API服务器URL注入我的react应用程序中,以便可以使用不同的地址在dev,staging或prod中进行部署?
解决方案:最后我最终使用了建议的解决方案组合:
.env.production和.env.development文件(确切名称)存储变量REACT_APP_API_URI = 'host'process.env.REACT_APP_API_URI请注意,这在一定程度上违背了12 Factor Apps的原理,例如,在版本控制中将env变量存储在文件中,但是它可以完成ATM。
我已经开发了Om/React组件,但是我觉得不能用单元测试来驱动我的开发.我试图设置我的clojurescript项目来对这些组件运行单元测试,到目前为止我已经达到了能够编写单元测试并实例化我的组件的程度.我缺少的是能够确保我的组件对某些事件做出正确反应,例如,onChange以便我可以模拟用户输入.
这是我的测试代码:
(defn simulate-click-event
"From https://github.com/levand/domina/blob/master/test/cljs/domina/test.cljs"
[el]
(let [document (.-document js/window)]
(cond
(.-click el) (.click el)
(.-createEvent document) (let [e (.createEvent document "MouseEvents")]
(.initMouseEvent e "click" true true
js/window 0 0 0 0 0
false false false false 0 nil)
(.dispatchEvent el e))
:default (throw "Unable to simulate click event"))))
(defn simulate-change-event
"From https://github.com/levand/domina/blob/master/test/cljs/domina/test.cljs"
[el]
(let [document (.-document js/window)]
(cond
(.-onChange el) (do (print "firing on change on " el) (.onChange el))
(.-createEvent document) (let [e (.createEvent document …Run Code Online (Sandbox Code Playgroud) 我试图在Haskell中复制这段Idris代码,它通过类型强制执行正确的动作排序:
data DoorState = DoorClosed | DoorOpen
data DoorCmd : Type ->
DoorState ->
DoorState ->
Type where
Open : DoorCmd () DoorClosed DoorOpen
Close : DoorCmd () DoorOpen DoorClosed
RingBell : DoorCmd () DoorClosed DoorClosed
Pure : ty -> DoorCmd ty state state
(>>=) : DoorCmd a state1 state2 ->
(a -> DoorCmd b state2 state3) ->
DoorCmd b state1 state3
Run Code Online (Sandbox Code Playgroud)
由于(>>=)运算符的重载,可以编写如下的monadic代码:
do Ring
Open
Close
Run Code Online (Sandbox Code Playgroud)
但编译器拒绝不正确的转换,如:
do Ring
Open
Ring
Open
Run Code Online (Sandbox Code Playgroud)
我试图在下面的Haskell片段中遵循这种模式:
data DoorState = Closed …Run Code Online (Sandbox Code Playgroud) 在之前的一个问题中,我发现Conor McBride的Kleisli的Outrageous Fortune箭头的存在,同时寻找在Haskell中编码Idris示例的方法.我努力理解McBride的代码并使其在Haskell中编译导致了这个要点:https://gist.github.com/abailly/02dcc04b23d4c607f33dca20021bcd2f
在搜索Hackage时,我发现了这些概念的几种实现,特别是(猜猜是谁?)Edward Kmett和Gabriel Gonzalez.
人们将这些代码投入生产有什么经验?特别是,IRL实际发生了预期的好处(运行时安全性,自我指导使用)吗?如何随着时间的推移维护这种代码并加入新手?
编辑:我更改了标题,以更明确地了解我正在寻找的东西:在野外真实使用索引monad.我有兴趣使用它们,我有几个用例,只是想知道其他人是否已经在"生产"代码中使用过它们.
编辑2:由于到目前为止提供了很好的答案和有用的评论,我再次编辑了该问题的标题和描述,以更准确地反映我期望的答案,例如经验报告.
我注意到这种模式在Haskell库中很常见:
data Foo = Foo { field :: {-# UNPACK #-} !Sometype }
Run Code Online (Sandbox Code Playgroud)
例如,UNPACK一个字段的类型并使其严格.
我理解pragma和注释的效果是什么,但我不明白为什么它如此普遍:我已经在Haskell编程了15年并且很少使用严格注释,而且从不使用UNPACKpragma.
如果这个成语如此有用,为什么不让它变得不那么"难看"呢?
我想跟踪GC花费了多少时间以及收集了多少内存,但不是通过分析GC日志(即分析我从-XX获得的内容:+ PrintGCWhatever).
我发现我可以使用Sun的ManagementFactory来获取一个GarbageCollectorMXBean,它可以给我一些包含内存信息的GCInfo对象,但我不能保证我可以通过这个意思收集所有 GC.
有人知道在代码中这样做的方法吗?