小编Pec*_*eck的帖子

Vim在Ex模式下注册使用

可能有2个问题合二为一.我想知道如何在Ex模式下引用寄存器.

例如,我正在编辑一个文件,我想保存文件,并附加一个时间戳(或者只是真正的日期戳).

我知道我可以使用以下命令将寄存器设置为shell命令输出的值:

:let @a = system("date +\"%Y-%m-%d\"")
Run Code Online (Sandbox Code Playgroud)

有没有取消引用该寄存器并将其值插入Ex命令?就像是:

:w testfile.<value of "a register>
Run Code Online (Sandbox Code Playgroud)

复制到系统剪贴板并粘贴会很不错,但是在将来以其他命令为基础以更通用/更方式的方式执行它会很好.

vim scripting vim-registers

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

在Plug.Router中,init函数有什么意义?

试图了解Plug,特别是Plug.Router.从文档(http://hexdocs.pm/plug/Plug.Router.html).从规范插件有一个init函数,在初始化时调用以传入选项,但那些似乎在定义的路由中不可用.

没有可用选项的原因是什么,是否有允许它的模式?

elixir

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

Postgres,table1左连接table2,table1中每个ID只有1行

好的,所以标题有点复杂.这基本上是一个最大的每组类型的问题,但我不能为我的生活弄明白.

我有一个表user_stats:

------------------+---------+---------------------------------------------------------
 id               | bigint  | not null default nextval('user_stats_id_seq'::regclass)
 user_id          | bigint  | not null
 datestamp        | integer | not null
 post_count       | integer | 
 friends_count    | integer | 
 favourites_count | integer |  
Indexes:
    "user_stats_pk" PRIMARY KEY, btree (id)
    "user_stats_datestamp_index" btree (datestamp)
    "user_stats_user_id_index" btree (user_id)
Foreign-key constraints:
    "user_user_stats_fk" FOREIGN KEY (user_id) REFERENCES user_info(id)
Run Code Online (Sandbox Code Playgroud)

我想通过最新的日期戳获取每个id的统计数据.这是一个很大的表,在41m行的附近,所以我创建了一个user_id的临时表,last_date使用:

CREATE TEMP TABLE id_max_date AS
    (SELECT user_id, MAX(datestamp) AS date FROM user_stats GROUP BY user_id);
Run Code Online (Sandbox Code Playgroud)

问题是,日期戳不是唯一的,因为一天内可以有超过1个统计更新(应该是一个真正的时间戳,但设计这个的人是一个白痴,而且目前还有太多数据要回溯).因此,当我执行JOIN时,一些ID有多行:

SELECT user_stats.user_id, user_stats.datestamp, user_stats.post_count,
       user_stats.friends_count, user_stats.favorites_count
  FROM id_max_date …
Run Code Online (Sandbox Code Playgroud)

sql postgresql greatest-n-per-group

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

MongoDB,为集合中的每个 user_id 返回最近的文档

寻找与 Postgres 的 Distinct On 类似的功能。

有一组文档 {user_id, current_status, date},其中状态只是文本,日期是日期。仍处于将我的头围绕 mongo 并了解做事的最佳方式的早期阶段。

mapreduce 会是这里最好的解决方案,map 发出所有信息,reduce 保留最新的记录,还是有一个内置的解决方案而不拉出先生?

mapreduce mongodb

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

Rails缓存,继续存储过期值

我在我们的一个仪表板系统上有一个很长的数据库查询,我想缓存,因为结果不需要实时准确,但可以从缓存中提供"足够接近"的值.

我想在没有用户等待的情况下这样做.我正在寻找使用类似的东西

Rails.cache.write('my_val', 'val', :expires_in => 60.minutes)
Run Code Online (Sandbox Code Playgroud)

存储此值,但我不相信它提供了我想要的确切功能.我想打个电话

 Rails.fetch('my_val') { create a background task to update my_val; return expired my_val}
Run Code Online (Sandbox Code Playgroud)

似乎my_val在缓存过期后会从缓存中删除.有没有办法访问这个过期的值或可能启用此功能的另一种内置机制?

谢谢.

ruby caching ruby-on-rails

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

使用 bootstrap-sass 的颜色变量

在我最新的 rails 项目中开始使用 sass,特别是 bootstrap-sass gem 来获得所有 twitter bootstrappy 的优点。

是否可以引用已经定义的变量?供应商/assets/stylesheets/bootstrap/_variables.scss文件包含颜色声明。

$blue: #049cdb !default;
$blueDark: #0064cd !default;
$green: #46a546 !default;
$red: #9d261d !default;
Run Code Online (Sandbox Code Playgroud)

我是否需要在我的基本application.css.scss文件的顶部重新定义这些,或者我可以导入/引用变量文件吗?我尝试了几种这样的方法:

$bodyBackground: $black;
@import 'bootstrap'
Run Code Online (Sandbox Code Playgroud)

但是, undefined variable 出错了$black

ruby-on-rails sass twitter-bootstrap

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

Python Lambda与Or

阅读文档似乎这可能是不可能的,但似乎很多人已经能够将更复杂的功能击败到pythons lambda函数中.

我正在利用scapy库来创建数据包.特别是这个问题是关于ConditionalField,它带有一个字段和一个比较函数,如果比较为真,该字段只被添加到数据包,但我需要进行2次比较.

只有一个检查的示例,这适用:

ConditionalField(XShortField("chksum",None),lambda pkt:pkt.chksumpresent==1)
Run Code Online (Sandbox Code Playgroud)

我想要的是:

ConditionalField(XShortField("chksum",None),lambda pkt:pkt.chksumpresent==1 or (lamba pkt:pkt.special == 1))
Run Code Online (Sandbox Code Playgroud)

这没有给出预期的结果.有没有办法做到这一点?

python lambda

3
推荐指数
2
解决办法
817
查看次数

猴子(也许?)在我的Rails应用程序中修补宝石

我对这个术语100%肯定,对于rails世界来说仍然相对较新,所以请原谅,如果我与猴子补丁相距太远,那么在这种情况下可能不适用.

我正在使用一个延长缩短网址的宝石LongURL.默认情况下,gem使用longurl.org,但我们每天推送几十万个网址,并认为每个人都可以在内部提供该服务.我只需要更改2个常量来指向我自己的url.

module LongURL
  ShortURLMatchRegexp = /http:\/\/[\/\-_.a-z0-9]+/im

  # Urls for longurl
  EndPoint        = URI.parse("http://api.longurl.org/v1/expand")
  ServiceEndPoint = URI.parse("http://api.longurl.org/v1/services")
end
Run Code Online (Sandbox Code Playgroud)

看起来似乎没有这么小的变化值得分叉,什么是好的,轨道惯用的?,做这样的小改动的方法?

谢谢

ruby gem patch ruby-on-rails

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