我对SVG动画有一个相当有趣的问题.
我正在使用拉斐尔沿着圆形路径制作动画
obj = canvas.circle(x, y, size);
path = canvas.circlePath(x, y, radius);
path = canvas.path(path); //generate path from path value string
obj.animateAlong(path, rate, false);
Run Code Online (Sandbox Code Playgroud)
circlePath方法是我自己创建的方法,用于生成SVG路径表示法中的圆路径:
Raphael.fn.circlePath = function(x , y, r) {
var s = "M" + x + "," + (y-r) + "A"+r+","+r+",0,1,1,"+(x-0.1)+","+(y-r)+" z";
return s;
}
Run Code Online (Sandbox Code Playgroud)
到目前为止,这么好 - 一切正常.我的对象(obj)沿圆形路径动画.
但:
仅当我在与路径本身相同的X,Y坐标处创建对象时,动画才有效.
如果我从任何其他坐标开始动画(例如,沿着路径的一半),对象在正确半径的圆圈中动画,但是它从对象X,Y坐标开始动画,而不是沿着路径开始动画,因为它以视觉方式显示.
理想情况下,我希望能够停止/启动动画 - 重启时会出现同样的问题.当我停止然后重新启动动画时,它会从停止的X,Y开始以圆圈为动画.
UPDATE
我创建了一个演示此问题的页面:http: //infinity.heroku.com/star_systems/48eff2552eeec9fe56cb9420a2e0fc9a1d3d73fb/demo
单击"开始"以开始动画.当您停止并重新开始动画时,它将从正确尺寸的圆圈中的当前圆形坐标继续.
我想要实现以下目标:
选择我拥有的所有记录,其中所有权是我创建的对象或我管理的用户创建的对象,其中用户管理可以是管理用户的用户层次结构
所有权显然是直截了当的,可以通过与所有者对应的简单ID来处理.用户管理的层次结构让我有点难以在不通过大量ID列表的情况下执行(显然,您可以找到每个被管理的用户并使用IN子句或类似内容列出由这些用户创建的每个对象).
理想情况下,这一切都发生在单个查询中,因此可能发生正常的分页和条件.
我当时认为可能有一些数学要做到这一点 - 拥有可以某种方式进行哈希处理的ID,以确定它们是否归命令链中的任何人所有.
对这类事情的任何引用?
我错过了一些明显的东西吗
使用MongoDB如果有所作为,但很高兴考虑其他数据库的灵感.
更新: 创建了一个包含1,000,000条记录的MongoDB集合,以获得有关查询上IN子句的可管理数量参数的确切内容的一些可靠数据.当我得到一些具体信息时会报告.
分析:
使用ruby-mongo-driver和ruby基准lib.
MongoDB Collection包含1039944条记录
记录定义为:
{
first_name: String,
last_name: String,
email: String,
phone: String,
company: String,
owner: BSON::ObjectId
}
Run Code Online (Sandbox Code Playgroud)
随机生成所有字段的值.
Owner字段有一个索引.
使用以下条件运行查询:
conditions = {"owner" => { "$in" => id_list }}
opts = {skip: rand, limit: 100}
Run Code Online (Sandbox Code Playgroud)
结果:
# 10201 ids
# user system total real
# 0: 0.240000 0.000000 0.240000 ( 0.265148)
# 1: 0.240000 0.010000 0.250000 ( 0.265757)
# 2: 0.240000 0.000000 0.240000 ( 0.267149)
# …Run Code Online (Sandbox Code Playgroud) 当我们运行我们的规范时,我们会不断看到如下警告:
Object#id将被弃用; 使用Object#object_id
有问题的代码是访问ActiveRecord模型的id(显然,这是表中的属性,而不是Ruby VM中的对象实例ID).
有谁知道如何关闭这些特定的警告或以某种方式避免它们?
有谁知道disqus是如何工作的?
它管理博客上的评论,但评论都在第三方网站上进行.看起来像是整洁地使用跨站点通信.
我创建了一个Rails 3的异步版本,我想与WebSocket实现集成.
我正在使用EventMachine,Ruby 1.9,Fibers和各种em-flavored库,这些都是由邪恶的Ilya Grigorik记录的.
我一直在将em-websocket视为WebSocket连接的处理程序,但不确定将其连接到Rails应用程序的最佳方法.
理想情况下,这将与具有Express和Socket.io的node.js类似地工作 - 应检测传入连接并将其分派到WebSocket处理程序或常规rails堆栈,如HTTP标头等所示.
TL; DR
当我将一些代码转换为OTP应用程序时,我正在努力解决OTP开发模型.
我本质上是一个网络爬虫,我只是不知道在哪里放置实际工作的代码.
我有一个主管,开始我的工人:
-behaviour(supervisor).
-define(CHILD(I, Type), {I, {I, start_link, []}, permanent, 5000, Type, [I]}).
init(_Args) ->
Children = [
?CHILD(crawler, worker)
],
RestartStrategy = {one_for_one, 0, 1},
{ok, {RestartStrategy, Children}}.
Run Code Online (Sandbox Code Playgroud)
在此设计中,Crawler Worker负责执行实际工作:
-behaviour(gen_server).
start_link() ->
gen_server:start_link(?MODULE, [], []).
init([]) ->
inets:start(),
httpc:set_options([{verbose_mode,true}]),
% gen_server:cast(?MODULE, crawl),
% ok = do_crawl(),
{ok, #state{}}.
do_crawl() ->
% crawl!
ok.
handle_cast(crawl}, State) ->
ok = do_crawl(),
{noreply, State};
Run Code Online (Sandbox Code Playgroud)
do_crawl产生了大量的进程和请求,用于处理通过http进行爬网的工作.
问题,最终是:实际抓取应该在哪里发生?从上面可以看出,我一直在尝试不同的触发实际工作的方法,但仍然缺少一些对于整合事物的方式至关重要的概念.
注意:为简洁起见,省略了一些OTP管道 - 管道就在那里,系统全部挂在一起
我正在使用示例Netty HTTP客户端代码,以便在并发的线程环境中发出http请求.
但是,我的系统在相当低的吞吐量下完全中断(有一些例外).
在几乎伪代码中:
ClientBootstrap bootstrap = new ClientBootstrap(new NioClientSocketChannelFactory())
bootstrap.setPipelineFactory(new HttpClientPipelineFactory());
ChannelFuture future = bootstrap.connect(new InetSocketAddress(host, port));
Channel channel = future.awaitUninterruptibly().getChannel();
HttpRequest request = new DefaultHttpRequest();
channel.write(request);
Run Code Online (Sandbox Code Playgroud)
在示例中,为了发出请求,我创建了一个ClientBootstrap,并从那里(通过一些箍)一个Channel来编写HTTPRequest.
这一切都有效,也很好.
但是,在同时发生的情况下,每个请求是否应该通过相同的环节?我认为这对我来说正在破坏的是什么.我应该以完全不同的方式重用连接或构建我的客户端吗?
另外:我在Clojure中这样做,如果这有任何区别的话.
我正在寻找对Haskell Web框架中当前最新技术的洞察力.
我认为对于一个好的框架是必要的:
该框架不一定需要是一个完整的MVC堆栈,一个优雅的DSL用于路由和处理请求(想想Sinatra)绰绰有余.
我找到的一些选项:
我喜欢Haskell世界的经验深度,以便做出明智的决定,所以任何帮助都会受到赞赏.
我有一系列嵌套的可排序元素,表现出z-index的一些奇怪行为.
基本上,在某些情况下,元素会被拖动到父容器中.它仅在父元素已排序后出现.
看起来后面的问题只是在列表中的元素上.所以我可以拖动到"更高"的可排序,但拖动到"更低"可排序,拖动元素突然落后.
细节:
给定可排序列表A A中的 每个元素依次包含连接可排序列表B(如在每个A中的B列表中都连接)
在对A中的元素进行排序之后,从此列表中的可排序对象拖动的元素现在位于其他A元素之后.
我通过CSS和Jquery玩各种z-index选项无济于事.
我正在使用rbenv和各种红宝石的最新流浪汉.
我正在使用不再使用宝石的最新流浪汉.当我执行vagrant命令时,我看到以下错误:
rbenv: vagrant: command not found
Run Code Online (Sandbox Code Playgroud)
我已经从所有红宝石环境中移除了旧的流浪宝石,但每次"cd"时,流浪的垫片都会被重新生成,这意味着流浪者停止工作直到我手动填充垫片:
rm /home/{user}/.rbenv/shims/vagrant
Run Code Online (Sandbox Code Playgroud)
有没有办法强制rbenv停止这种行为?
rbenv插件正在使用":
javascript ×2
jquery ×2
ajax ×1
architecture ×1
asynchronous ×1
clojure ×1
concurrency ×1
database ×1
erlang ×1
erlang-otp ×1
eventmachine ×1
frameworks ×1
haskell ×1
http ×1
java ×1
jquery-ui ×1
mongodb ×1
netty ×1
rack ×1
raphael ×1
rbenv ×1
rspec ×1
ruby ×1
svg ×1
vagrant ×1
warnings ×1
websocket ×1
xss ×1