首先,这是一个编程问题,因为我正在尝试设置一个与生产服务器一起运行的测试/ QA服务器.
第二,是的,我应该在Serverfault上发布这个,但我尝试使用三个不同的OpenID提供程序登录,每次我收到一个错误,说这个提供程序在Beta中不受支持(即使图标就在那里).要发布问题,您必须登录.
哇,好的.
目前我有一条A记录,@ host指向我的服务器IP,比方说111.11.11.11.然后我有一个CNAME记录,其中www主机指向我的A记录中的@.
问题是我在111.11.11.11:8080上运行了不同的Web服务器.我想制作另一个CNAME,以便测试主机指向类似@:8080的东西
总结一下:
www.mydomain.com应解决为111.11.11.11
test.mydomain.com应解析为111.11.11.11:8080
这可能吗?如果是这样,怎么样?
让我们假设您正在构建一个Calculator应用程序.您将允许客户使用自己的徽标和CSS样式表自定义此计算器.客户将其域名指向您的托管计算器,该应用程序将为每个客户提供正确的主题.例如:
你已经推出了计算器1.0,并且每个人都已经编写了他们的样式来处理这个版本.
下个月你准备发布计算器1.1,它增加了一个新功能,让我们说"科学模式",它要求你添加一些新的UI - 在这个例子中的HTML - 组件.这意味着如果您推出1.1,您将打破一些客户的风格.
我提出的最佳解决方案是保持应用程序的多个版本运行.例如:
这个系统的一个问题是,你将不可避免地拥有从不投资升级的懒惰客户.你将会巧妙地运行200个版本,尝试修复每个版本中的错误,基本上是疯了.
一种解决方案是使用每月托管费的一部分来雇用"UI迁移团队",该团队将是一组设计师,他们唯一的工作就是不断地将客户端放在运行最旧版本的队列中并调整他们的CSS并验证他们在最新版本上运行.这将允许您同时仅支持X版本,其中X是您在UI迁移团队中投入多少资金的函数,添加资源以加速或减慢它们.
同样的想法适用于数据库更改:计算器1.0和1.1在数据库1.0上运行,但计算器1.2在数据库1.1等上运行.您可以添加具有版本名称的模式,并使用类似的"数据迁移团队"来移动数据架构1.0到架构1.1,最后在没有(app)客户端时删除架构1.0.
我确定此类问题已经出现过,我想看看其他人是如何解决的.也许甚至有一个"最佳实践".
看起来 Leiningen 的编译任务会在/src目录下寻找立即启动的源包。我在项目中同时使用 Java 和 Clojure,因此我的/src目录如下所示:
/src/java/myapp
/src/clojure/myapp
Run Code Online (Sandbox Code Playgroud)
现在 Leiningen 正在寻找/src/myapp ,但在编译过程中失败了。
相关的是,我想知道如何手动将目录添加到 Leiningen 的编译和repl任务的类路径中。例如,Enlive 的deftemplate函数将在类路径中搜索命名模板文件。我的项目需要将/templates添加到类路径才能正确构建和运行。
以下是实现此目标的典型方法:
public void myContractualMethod(final String x, final Set<String> y) {
if ((x == null) || (x.isEmpty())) {
throw new IllegalArgumentException("x cannot be null or empty");
}
if (y == null) {
throw new IllegalArgumentException("y cannot be null");
}
// Now I can actually start writing purposeful
// code to accomplish the goal of this method
Run Code Online (Sandbox Code Playgroud)
我认为这个解决方案很难看.您的方法很快就会填充样板代码来检查有效的输入参数契约,从而模糊了方法的核心.
这是我想要的:
public void myContractualMethod(@NotNull @NotEmpty final String x, @NotNull final Set<String> y) {
// Now I have a clean method body that isn't obscured …Run Code Online (Sandbox Code Playgroud) 这是一个例子:
"_attachments": {
"002-imgsq.jpg": {
"stub": true,
"content_type": "image/jpeg",
"length": 80074,
"revpos": 3
},
"016-imgsq.jpg": {
"stub": true,
"content_type": "image/jpeg",
"length": 100095,
"revpos": 4
},
"MASTER_img-square.jpg": {
"stub": true,
"content_type": "image/jpeg",
"length": 70611,
"revpos": 2
}
}
Run Code Online (Sandbox Code Playgroud) 例如,prxml函数将XML打印到*out*.我想将此输出捕获为String.以下是REPL的典型用法:
user> (prxml [:p "Test"])
<p>Test</p>nil
Run Code Online (Sandbox Code Playgroud)
我反而喜欢这样做:
(def xml (capture-out (prxml [:p "Test"])))
Run Code Online (Sandbox Code Playgroud)
我编写了捕获功能,但我怀疑它存在,只有我在API或邮件列表中找不到它.
是否有任何内置的Java6方法(可能在lang或反射?)执行:
private Class[] getTypes(final Object[] objects) {
final Class[] types = new Class[objects.length];
for (int i = 0; i < objects.length; i++) {
types[i] = objects[i].getClass();
}
return types;
}
Run Code Online (Sandbox Code Playgroud)
它接受一个Object数组并返回一个包含每个元素类型的数组?
我知道我可以通过检索文档的特定修订版
http://localhost:5984/mydb/626b345059c2a54fbe8b8009ba87a409?rev=2-3696048776
Run Code Online (Sandbox Code Playgroud)
但这假设我知道修订号2-3696048776.如何列出文档626b345059c2a54fbe8b8009ba87a409的所有可用修订版?
用字母替换字段名称,我有这样的情况:
data Foo = Foo { a :: Maybe ...
, b :: [...]
, c :: Maybe ...
, ... for a lot more fields ...
} deriving (Show, Eq, Ord)
instance Writer Foo where
write x = maybeWrite a ++
listWrite b ++
maybeWrite c ++
... for a lot more fields ...
parser = permute (Foo
<$?> (Nothing, Just `liftM` aParser)
<|?> ([], bParser)
<|?> (Nothing, Just `liftM` cParser)
... for a lot more fields ...
-- …Run Code Online (Sandbox Code Playgroud) clojure ×3
couchdb ×2
java ×2
annotations ×1
contract ×1
dns ×1
haskell ×1
hosted-app ×1
leiningen ×1
records ×1
revision ×1
revisions ×1
saas ×1
stdout ×1
test-is ×1
testing ×1
validation ×1
versioning ×1