小编Rob*_*ell的帖子

通过修改我的DNS记录,如何将"test.mydomain.com"解析为XXX.XXX.XXX.XXX:8080?

首先,这是一个编程问题,因为我正在尝试设置一个与生产服务器一起运行的测试/ 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

这可能吗?如果是这样,怎么样?

dns

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

构建托管/ SAAS应用程序时,如果允许客户进行自定义,您如何管理多个版本?

让我们假设您正在构建一个Calculator应用程序.您将允许客户使用自己的徽标和CSS样式表自定义此计算器.客户将其域名指向您的托管计算器,该应用程序将为每个客户提供正确的主题.例如:

  • www.AcmeCalculator.com将提供带有Acme徽标的计算器,以及他们创造的平淡企业风格.
  • www.HellzCalc.com将通过一些Hell's Angels骑车标志和他们创造的黑色血红色主题来为计算器提供服务.

你已经推出了计算器1.0,并且每个人都已经编写了他们的样式来处理这个版本.

下个月你准备发布计算器1.1,它增加了一个新功能,让我们说"科学模式",它要求你添加一些新的UI - 在这个例子中的HTML - 组件.这意味着如果您推出1.1,您将打破一些客户的风格.

我提出的最佳解决方案是保持应用程序的多个版本运行.例如:

  • www.AcmeCalculator.com解析为您的应用服务器,该服务器检查Acme当前所使用的版本,并转发至www.AcmeCalculator.com/1.0
  • www.HellzCalc.com解析为您的应用服务器,它注意到它们在新的1.1版本上运行,因为他们更新了他们的CSS以处理新版本并点击了"完成升级"按钮或其他任何内容,所以他们得到了重定向到" www.HellzCalc.com/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.

我确定此类问题已经出现过,我想看看其他人是如何解决的.也许甚至有一个"最佳实践".

versioning saas hosted-app release-management

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

如何配置我的 project.clj 以便 Leiningen 在非标准目录结构下找到我的源代码?

看起来 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添加到类路径才能正确构建和运行。

clojure leiningen

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

如何在我的方法输入参数上放置验证约束?

以下是实现此目标的典型方法:

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)

java validation annotations design-by-contract contract

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

CouchDB附件中使用的"revpos"值是多少?

这是一个例子:

   "_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)

couchdb

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

从Clojure函数中捕获打印到*out*的惯用方法是什么?

例如,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或邮件列表中找不到它.

stdout clojure

5
推荐指数
2
解决办法
872
查看次数

Java中的Object []到Class []

是否有任何内置的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数组并返回一个包含每个元素类型的数组?

java

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

如何在CouchDB中列出文档的修订号?

我知道我可以通过检索文档的特定修订版

http://localhost:5984/mydb/626b345059c2a54fbe8b8009ba87a409?rev=2-3696048776
Run Code Online (Sandbox Code Playgroud)

但这假设我知道修订号2-3696048776.如何列出文档626b345059c2a54fbe8b8009ba87a409的所有可用修订版?

revision couchdb revisions

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

管理大型Haskell记录的更好方法是什么?

用字母替换字段名称,我有这样的情况:

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)

haskell records

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

你怎么能"参数化"Clojure Contrib的测试?

双方的JunitTestNG的循环遍历的输入参数集合,对他们的运行测试的机制.在Junit中,这是通过参数化注释支持的,而TestNG则使用@DataProvider.

如何使用test-is库编写数据驱动的测试?我尝试使用列表解析来遍历输入参数集合,但因为deftest是一个宏它的期待条款.

testing clojure test-is clojure-contrib

3
推荐指数
1
解决办法
551
查看次数