小编cge*_*nco的帖子

`binding.pry`用于javascript控制台?

在Ruby中,我可以binding.pry在我的代码中的任何位置键入,在执行时,我的控制台将进入REPL,我可以访问所有局部变量,可以进行更改,并执行任意代码.

例:

# foo.rb
require 'pry'
n = 5
binding.pry
puts "your number is #{n}"
Run Code Online (Sandbox Code Playgroud)

当我运行它:

$ ruby foo.rb

From: /Users/cgenco/Desktop/foo.rb @ line 4 :

    1: # foo.rb
    2: require 'pry'
    3: n = 5
 => 4: binding.pry
    5: puts "your  number is #{n}"

[1] pry(main)> n = 100
=> 100
[2] pry(main)> exit
your number is 100
Run Code Online (Sandbox Code Playgroud)

这是一个令人难以置信的调试工具,特别是对于需要复杂设置的情况:我可以binding.pry在现场键入我需要更多代码,弄乱,找出需要编写的代码,然后将抛光的代码添加到实际的源代码中.

在浏览器控制台中是否有像jy这样的工具?

javascript ruby read-eval-print-loop pry

24
推荐指数
2
解决办法
9664
查看次数

为什么我的宝石需要这么长时间才能加载?

我正在开发我的第一个名为t_time_tracker的宝石(哇哦!).一切都在发展中很好; 我尽可能地尽量减少执行时间,尽可能减少执行时间:

t_time_tracker[master*]% time ruby -Ilib ./bin/t_time_tracker 
You're not working on anything
0.07s user 0.03s system 67% cpu 0.141 total
Run Code Online (Sandbox Code Playgroud)

(这是我的应用程序的"hello world" - 没有参数调用它只打印出"你没有做任何事情")

大约十分之一秒,使用我的CPU的67% - 很酷,我可以忍受.感觉相当瞬间.让我们构建它:

$ gem build t_time_tracker.gemspec
$ gem install ./t_time_tracker-0.0.0.gem
Run Code Online (Sandbox Code Playgroud)

并使用已安装的二进制文件执行完全相同的操作:

$ time t_time_tracker
You're not working on anything
t_time_tracker  0.42s user 0.06s system 93% cpu 0.513 total
Run Code Online (Sandbox Code Playgroud)

半秒钟?!那个是从哪里来的?!让我们添加一些调试输出,并从开发二进制文件中包含系统gem,以查看瓶颈所在:

t_time_tracker[master*]% time ruby ./bin/t_time_tracker  
(starting binary)
(require 'time' and 'optparse')
0.041432
(before `require 't_time_tracker')
0.497135
(after `require 't_time_tracker')
(Gem.loaded_specs.keys = t_time_tracker)
(initializing TTimeTracker class) …
Run Code Online (Sandbox Code Playgroud)

ruby rubygems

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

如何自动删除旧的Google App Engine版本实例?

我正在尝试使用更具成本效益的方式来部署我的Rails应用程序,并通过Ruby Starter项目来了解Google Cloud Platform.

几乎是完美的,并且在价格方面肯定具有竞争力,但我无法弄清楚如何在重新部署后自动删除旧部署的版本实例.

即:假设我有一个版本的每个实例运行:

计算引擎 - > VM实例

然后我对我的应用进行了更改并重新部署:

$ gcloud preview app deploy app.yaml worker.yaml --promote
Run Code Online (Sandbox Code Playgroud)

所以现在我已经部署了每个实例的两个版本(因为Google智能地在它们之间切换,我假设):

计算引擎 - > VM实例增加了一倍

但现在呢?这些实例是否会自行关闭?到目前为止,我发现摆脱它们的最好方法是从教程的删除项目页面:

删除应用版本

您可以在" 版本"页面中找到应用版本列表.要删除非默认版本,请选中复选框,然后单击" 删除".

AppEngine上/版本

Google App Engine上的每个人都只是手动删除其应用的旧部署吗?

google-app-engine ruby-on-rails docker

8
推荐指数
4
解决办法
4577
查看次数

如何加速Google Cloud Platform上的Rails Docker部署?

我正在尝试使用更具成本效益的方式来部署我的Rails应用程序,并通过Ruby Starter项目来了解Google Cloud Platform.

几乎是完美的,而且在价格方面肯定具有竞争力,但部署速度非常慢.

当我从示例Bookshelf应用程序运行部署命令时:

$ gcloud preview app deploy app.yaml worker.yaml --promote
Run Code Online (Sandbox Code Playgroud)

我可以gae-builder-vmCompute Engine/VM Instances页面上看到一个新实例,我得到熟悉的Docker构建输出 - 这需要大约十分钟才能完成.

但是,如果我立即重新部署,我会得到一个新的gae-builder-vm旋转,它完成相同的十分钟构建过程,从第一次构建映像时没有明显的缓存.

在这两种情况下,第二个模块(worker.yaml)都会被缓存并且非常快速地进行:

Building and pushing image for module [worker]
---------------------------------------- DOCKER BUILD OUTPUT ----------------------------------------
Step 0 : FROM gcr.io/google_appengine/ruby
---> 3e8b286df835
Step 1 : RUN rbenv install -s 2.2.3 &&     rbenv global 2.2.3 &&     gem install -q --no-rdoc --no-ri bundler --version 1.10.6 &&     gem …
Run Code Online (Sandbox Code Playgroud)

google-app-engine ruby-on-rails docker dockerfile

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

使用 maskedmerge 覆盖具有透明度的圆形视频

我有一个来自 Snap Spectacles (1088x1088) 的方形视频,我想将其叠加在放大和模糊的自身上。

示例输入框:

原始快照眼镜视频帧

生成放大和模糊的背景:

生成放大和模糊的背景

期望的输出:

期望的输出

我想我可以用ffmpeg 的 maskedmerge来做到这一点,但我很难找到例子。

一个 maskedmerge 的例子,它合并两个相同大小的视频并动态删除一个绿屏,另一个合并具有透明度的视频

这是我能得到的最接近的:

ffmpeg -i background.jpg -vf "movie=input.jpg[inner];[in][inner] overlay=#{offset}:0 [out]" -c:a copy output.jpg

在此处输入图片说明

tl; dr:给定前两帧,我如何生成第三帧(作为视频)?

ffmpeg snapchat

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