小编xoe*_*bus的帖子

在Heroku上限制REST请求

为了避免滥用,我想在Rails应用程序中为REST API添加速率限制.在对此进行一些研究后,看起来最好的做法是将此职责移到Web服务器而不是在应用程序本身中检查这一点.不幸的是,我无法在我的情况下完成,因为我在Heroku上托管应用程序,因此无法控制Web服务器设置.

在这种情况下应该采取什么措施来阻止滥用API?

rest ruby-on-rails heroku rate-limiting

10
推荐指数
1
解决办法
2287
查看次数

iPhone项目依赖管理

有没有人找到一个可靠,通用的解决方案来管理iPhone项目的依赖关系?我希望将我的iPhone应用程序拆分为可重用的组件,然后将它们分成需要它们的项目.我想我正在寻找一个Maven式的工作流程,但是对于Xcode/iPhone项目.到目前为止,我尝试了很多方面,例如:

  1. 我创建了一个Maven插件的iPhone应用程序,它能够自动应用的建筑和签署,但我一直觉得我对抗Maven来得到这个工作,这是完全相当混乱.除非没有其他选择,否则我宁愿不使用它.

  2. 我也尝试使用静态库打包代码重新使用,但问题是我还想在我的项目中包含可重用的XIB和图像,这些不能包含在静态库中以进行重新分发.它们非常适合代码,但我希望有一个系统能够完成所有事情,而不是针对不同类型的依赖关系使用不同的依赖关系管理系统.

  3. 目前我已经决定使用版本控制系统为我做依赖.在这种情况下,当我签出项目时,我正在使用SVN外部代码将依赖项加载到工作区中.

有没有人对我能做什么有任何想法?

更新

我现在正在使用CocoaPods来执行此任务.

iphone xcode build-process dependency-management

7
推荐指数
1
解决办法
2209
查看次数

从Instruments中的UI Automation访问UIWebView内容

UIWebView我的应用程序中有一个内部链接,当单击时会导致在应用程序中执行不同的操作.我希望能够通过自动化测试对其进行测试,以便将其添加到持续集成构建中.然而,该文件是相当少UIAWebView,我已经试过无济于事得到这个工作.

有没有人有任何成功与内部链接进行交互,UIWebView所以你可以检查他们的行为是否正确?

iphone automation instruments uiwebview

6
推荐指数
1
解决办法
2064
查看次数

在Vim中使用Ctags跳转到Ruby bang方法

我在使用Exhuberant Ctags跳转到Ruby bang方法时遇到了问题.我搜索了其他有类似问题的人,但我找不到任何东西.可以使用以下小型Ruby类显示问题的示例:

class Hello
  def start
    method!
  end

  def method
    # Blah
  end

  def method!
    # Blah
  end
end
Run Code Online (Sandbox Code Playgroud)

如果ctags -R .是在这个文件运行生成的tags文件包含以下两行表明这两种方法都在代发现:

method  test.rb /^  def method$/;"  f   class:Hello
method! test.rb /^  def method!$/;" f   class:Hello
Run Code Online (Sandbox Code Playgroud)

但是,如果我将光标放在第method!3行的调用上并按下,^]则光标会跳转到method定义而不是正确的爆炸版本.好像感叹号没有包含在搜索的标识符中.

有没有办法解决这个问题,所以正确的方法是跳到?

ruby vim ctags

6
推荐指数
1
解决办法
719
查看次数

Go中的OpenPGP错误:"加密:请求的哈希函数不可用"

我正在使用open的openpgp包来制作一个简单的程序来加密短消息和ASCII装甲.我目前的代码是:

package main

import (
    "code.google.com/p/go.crypto/openpgp"
    "code.google.com/p/go.crypto/openpgp/armor"
    "fmt"
    "log"
    "os"
)

func main() {
    to, err := openpgp.NewEntity("John Smith", "comment", "john@example.com", nil)
    if err != nil {
        log.Fatal(err)
    }

    from, err := openpgp.NewEntity("John Smith", "comment", "john@example.com", nil)
    if err != nil {
        log.Fatal(err)
    }

    recipients := []*openpgp.Entity{to}

    armorer, err := armor.Encode(os.Stdout, "PGP MESSAGE", nil)
    if err != nil {
        log.Fatal(err)
    }

    defer armorer.Close()

    encrypter, err := openpgp.Encrypt(armorer, recipients, from, nil, nil)
    if err != nil {
        log.Fatal(err)
    } …
Run Code Online (Sandbox Code Playgroud)

hash cryptography gnupg go openpgp

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

Bazel 执行路径的惯用检索

我正在制定我的第一个自定义 Bazel 规则。这些规则允许运行bats命令行测试。

我已经在下面逐字包含了规则定义。到目前为止我对它非常满意,但有一个部分感觉非常丑陋且不标准。如果规则用户向规则添加二进制依赖项,那么我确保二进制文件出现在规则上,PATH以便可以对其进行测试。目前,我通过创建二进制路径列表,然后将它们附加到$PWD脚本内扩展的完整执行路径来实现此目的。这感觉很糟糕并且容易出错。

有没有更惯用的方法来做到这一点?我不相信我可以访问规则中的执行路径,因为它直到执行阶段才创建。

感谢您的帮助!

BATS_REPOSITORY_BUILD_FILE = """
package(default_visibility = [ "//visibility:public" ])
sh_binary(
  name = "bats",
  srcs = ["libexec/bats"],
  data = [
    "libexec/bats-exec-suite",
    "libexec/bats-exec-test",
    "libexec/bats-format-tap-stream",
    "libexec/bats-preprocess",
  ],
)
"""

def bats_repositories(version="v0.4.0"):
    native.new_git_repository(
      name = "bats",
      remote = "https://github.com/sstephenson/bats",
      tag = version,
      build_file_content = BATS_REPOSITORY_BUILD_FILE
    )

BASH_TEMPLATE = """
#!/usr/bin/env bash
set -e
export TMPDIR="$TEST_TMPDIR"
export PATH="{bats_bins_path}":$PATH
"{bats}" "{test_paths}"
"""

def _dirname(path):
  prefix, _, _ = path.rpartition("/")
  return prefix.rstrip("/")

def _bats_test_impl(ctx):
  runfiles = …
Run Code Online (Sandbox Code Playgroud)

bazel

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