小编Rat*_*lle的帖子

如何查找PDF是横向还是纵向

是否有工具来确定PDF是横向还是纵向?

我目前看过pdfboxItext,但似乎我找不到它.请告诉他们是否支持这一点.

使用Origami提取PDF页面信息提供了pdf页面在某种程度上具有旋转的信息.这是Origami报道的内容:

{:Parent=>#<PDF::Reader::Reference:0x872349c @id=8, @gen=0>, :Type=>:Page, 
 :Contents=>#<PDF::Reader::Reference:0x8722f24 @id=4, @gen=0>, :Resources=># <PDF::Reader::Reference:0x870dbd8 @id=2, @gen=0>, 
:MediaBox=>[0, 0, 612, 792], :Rotate=>270}
Run Code Online (Sandbox Code Playgroud)

旋转:270

"轮换"究竟意味着什么?

pdf pdf-generation itext pdfbox

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

Bitfield Torrent 的混乱

我对bittorrent中的位字段消息有点困惑。我已经注意到下面问题形式的混乱。

  1. 可选与必需

握手序列完成后立即发送的位字段

我假设这是强制性的,即握手后必须遵循位字段消息。正确的?

  1. 什么时候需要位域?

位域消息只能在握手序列完成后、发送任何其他消息之前立即发送

假设我清楚地阅读了此消息,尽管它是可选消息。对等方仍然可以在任何消息(如请求、choke、uncoke 等)之前广播位字段消息。正确的 ?

  1. 第一个字节的高位对应片索引0

如果我是正确的,位字段代表状态,即对等方是否拥有给定的块。

假设我的位域是[1,1,1,1,1,1,1,1,1,1 ..]. 我确定对等点丢失了第 10 块,如果位字段看起来像这样,[1,1,0,1,1,1,1,1,1,1 ..]则对等点丢失了第 3 块。那么第一个字节的高位对应的片索引0意味着什么。

  1. 备用钻头

末尾的备用位设置为零

这是什么意思 ?我的意思是,如果末尾有一个位为 0,并不意味着同行将其作为缺失的部分。为什么使用备用位。

  1. 最重要的是位字段的用途是什么。

我对此的预感是,位字段可以更轻松地找到合适的对等点,以了解对等点可用的信息,但我对此是否正确?

@Encombe

这是我的位字段有效负载的样子

\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE

bittorrent bit-fields

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

要求Capistrano在链接(符号链接)文件之前运行任务

我一直在尝试编写一个capistrano脚本,我将我的应用程序目录(support/config/#{rails_env})中的配置文件复制到shared directorycapistrano中的(共享/配置)

rails_env => 'staging'

因此,当capistrano运行时,first time它会将文件从support/config/#{rails_env}目录复制到共享/配置目录,但是需要在文件通过capistrano链接之前运行它,即在此之前完成

set :linked_files, %w{config/api_config.yml}

这样链接的任务不会失败(因为它需要任务所需的文件存在于共享目录中)

这是我的Capfile(没什么好看的,因为大多数东西都是我的capistrno)

set :application, 'custom-api'
set :repo_url, ''

# ask :branch, proc { `git rev-parse --abbrev-ref HEAD`.chomp }
set :rails_env, 'staging' 
set :deploy_to, '/var/apps/staging/custom-api'
set :scm, :git

set :format, :pretty
set :log_level, :debug
set :rvm_type, :user   # Defaults to: :auto
set :rvm_ruby_version, 'ruby-1.9.3@484@custom-api'  
#set :rvm_custom_path, '~/.myveryownrvm'  # only needed if not detected
# set :pty, true
set :linked_files, %w{config/mongoid.yml config/api_config.yml}
set :linked_dirs, …
Run Code Online (Sandbox Code Playgroud)

capistrano ruby-on-rails-3 capistrano3

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

是他们在 HTTParty 中使用 500 代码创建虚拟响应的一种方法

这是我的 HTTParty 代码

      response = HTTParty.post(api_url,body: form_data,timeout: 5)
      rescue Timeout::Error
      ## create dummy response with 500 error code
      response = HTTParty::Response.new()
      ensure
       response
Run Code Online (Sandbox Code Playgroud)

我要做的就是确保如果 HTTParty 无法连接给定的网站,则创建一个虚拟响应主体对象

但是当我尝试创建一个像这样的虚拟响应对象时

     ## response = HTTParty::Response.new(Rack::Request.new(api_url),Rack::Response.new('TimeOut Error',500),'TimeOutError')
Run Code Online (Sandbox Code Playgroud)

但这不起作用,因为我的响应对象没有响应 to_hash

任何人都可以提出更好的方法来完成相同的任务

ruby httparty

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

BigQuery 是否有一个 api 来返回导出表的校验和

我正在寻找是否存在一种方法可以获取可以从 google bigquery 导出的文件(或表)的校验和。

假设我导出(或下载)了一个daily-record-2018-07-10从 bigquery调用的文件的示例 ,是否有一种方式 bigquery 可以为我们提供一些checksum(例如sha1md5等),以便我们可以在开始处理这些文件之前预先计算这些校验和

这样做的原因是为了确保我们在下载(或导出)表时不会丢失任何信息。我们确实在网络上丢失了一些信息,然后我们可以预先计算校验和并再次尝试导出表。

checksum google-bigquery

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

在红宝石中被"采取"关键字?

直截了当的问题.我有这样的查询:

@issue_books = current_user.issue_books
@already_issues =  @issue_books.taken(params[:id])
Run Code Online (Sandbox Code Playgroud)

takennamed_scope 在哪里定义如下:

scope :taken, lambda { |book_id| where(returned: false).where(book_id: book_id)  }
Run Code Online (Sandbox Code Playgroud)

现在每次我运行此查询:

@issue_books.taken(params[:id]) 
Run Code Online (Sandbox Code Playgroud)

我收到一个ArgumentError: wrong number of arguments (1 for 0)错误.

如果我重命名taken为其他东西taken_books,似乎一切正常.

所以我的问题是:takenruby中的关键字是什么?如果没有人可以解释这种行为?

ruby lambda named-scope ruby-on-rails

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

普罗米修斯自定义注册表不起作用

我还在学习普罗米修斯,所以也许我不确定这个问题是否正确。

我所需要的只是一个自定义注册表,我只能在其中收集我的指标。由于我学习普罗米修斯我真的不违约感兴趣的度量提供普罗米修斯即所有外出指标,如go_gc_duration_secondsgo_gc_duration_seconds_countgo_threadspromhttp_metric_handler_requests_in_flight

package main

import (
    "fmt"
    "log"
    "math/rand"
    "net/http"
    "sync"
    "time"

    "github.com/prometheus/client_golang/prometheus"
    "github.com/prometheus/client_golang/prometheus/promhttp"
)

var Types = [2]string{"Random", "Simple"}

type Queue struct {
    mutex sync.Mutex
    jobs  []Job
}

func (q *Queue) Add(job Job) {
    q.mutex.Lock()
    q.jobs = append(q.jobs, job)
    q.mutex.Unlock()
}

func (q *Queue) Dequeue() Job {
    q.mutex.Lock()
    job := q.jobs[0]
    q.jobs = q.jobs[1:]
    q.mutex.Unlock()
    return job
}

type Job struct {
    message string
    Type    string
}

func (j *Job) Run() …
Run Code Online (Sandbox Code Playgroud)

go prometheus

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

TCP数据包的旅程和每一跳中的更改(IP地址和端口发生)

我试图了解Hop期间IP数据包发生了什么样的结构变化.

请允许我以示例解释我的问题.

traceroute -w 1 google.com

traceroute to google.com (216.58.199.174), 64 hops max, 52 byte packets
 1  192.168.0.1 (192.168.0.1)  1.055 ms  0.857 ms  0.822 ms
 2  10.0.0.1 (10.0.0.1)  2.038 ms  1.477 ms  1.540 ms
 3  * * *
 4  114.79.130.1.dvois.com (114.79.130.1)  3.091 ms  2.076 ms  2.329 ms
 5  10.241.1.6 (10.241.1.6)  3.245 ms  3.102 ms  3.358 ms
 6  10.240.254.140 (10.240.254.140)  4.388 ms  2.149 ms  2.319 ms
 7  10.240.254.1 (10.240.254.1)  3.067 ms  3.336 ms  2.852 ms
 8  10.241.1.1 (10.241.1.1)  2.542 ms  2.339 …
Run Code Online (Sandbox Code Playgroud)

networking routing mac-address ipv4 tcp-ip

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

无法理解为什么释放内存会引发错误

我正在读Dangling Pointer并发现这是一个好习惯,以防止自己悬挂指针错误.

free(ptr); // free the ptr
ptr = NULL; 
Run Code Online (Sandbox Code Playgroud)

现在我决定用一个示例vanilla C代码来测试它.

情况1

char *ptr = malloc(10);
... 
...
free(ptr); 
ptr=NULL;
// Just to check what happen if I call free more than I once
free(ptr)
ptr=NULL;
Run Code Online (Sandbox Code Playgroud)

一切正常.直到我决定将它free和指针NULL赋值包装在一个function我命名的中safefree

void safefree(char *pp) {
  free(pp);
  pp = NULL;
}
Run Code Online (Sandbox Code Playgroud)

CASE_2

现在,当我运行上面的方法超过1(像这样)

safefree(ptr);

safefree(ptr);
Run Code Online (Sandbox Code Playgroud)

我收到以下错误.

malloc: *** error for object 0x7fd98f402910: pointer being freed was not allocated
*** set a breakpoint in malloc_error_break to debug
Run Code Online (Sandbox Code Playgroud)

我碰巧理解了错误(释放的指针没有被分配)但是我无法理解为什么它在 …

c malloc free pointers

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

了解 Bittorrent Tracker 请求

我正在阅读 Bittorrent 请求参数,需要发送该参数来在此处公布URL

问题一:

  • 左参数:

左:该客户端仍需要下载的字节数(以十进制 ASCII 表示)。说明:下载 100% 完成并获取 torrent 中包含的所有文件所需的字节数。

BEEP-3 也表示

该对等点仍需要下载的字节数,以十进制 ascii 编码。请注意,这不能根据下载的数据和文件长度来计算,因为它可能是简历,并且某些下载的数据有可能未通过完整性检查,必须重新下载。

现在,如果我开始下载种子或任何时候我应该给左边什么可能的值。

问题2:

在阅读规范时,我发现客户端应该多久查询一次公告才能获取对等点的更新列表。

对此有何评论

我在跟踪器响应中interval找到了这个答案。min interval

bittorrent

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