小编zsl*_*ton的帖子

Docker与虚拟机有何不同?

我一直在重读Docker文档,试图了解Docker和完整VM之间的区别.它如何设法提供完整的文件系统,隔离的网络环境等,而不是那么重?

为什么将软件部署到Docker映像(如果这是正确的术语)比简单地部署到一致的生产环境更容易?

virtualization containers virtual-machine docker

3523
推荐指数
20
解决办法
70万
查看次数

Colorized grep - 使用突出显示的匹配查看整个文件

我发现它grep--color=always旗帜非常有用.但是,grep只打印带匹配的行(除非您要求上下文行).鉴于它打印的每一行都有一个匹配,突出显示不会增加尽可能多的能力.

我真的很喜欢cat一个文件,看到整个文件突出显示模式匹配.

有什么方法我可以告诉grep打印每一行被读取而不管是否有匹配?我知道我可以编写一个脚本来在文件的每一行上运行grep,但我很好奇这是否可以用标准grep.

bash shell grep colors

486
推荐指数
12
解决办法
19万
查看次数

在Haskell中调度超时

我是Haskell的新手,我正在试图弄清楚如何安排回调从现在开始X秒(并且不久).

在搜索Hoogle和Google时,我发现:

http://www.haskell.org/ghc/docs/latest/html/libraries/base/GHC-Event.html

以及:

http://hackage.haskell.org/packages/archive/base/4.3.1.0/doc/html/System-Event.html

这两个功能都具有"registerTimeout"功能,似乎可以满足我的需求.但是,System.Event似乎不再出现在Haskell和GHC的最新版本中.Event被标记为内部版本.

我可以使用一些用户空间替代品吗?我不想使用用于GLUT的计时功能(除非这是实现我的目标的规定方式),并且System.Timeout似乎不是我想要的; 它旨在最大限度地利用可以采取的时间而不是最小的时间.

谢谢您的意见!

haskell timeout callback

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

DropWizard可以从jar文件外部提供资源吗?

在查看文档时,DropWizard似乎只能提供src/main/resources中的静态内容.我想将我的静态文件保存在jar文件之外的单独目录中.那可能吗?或者大多数人使用nginx/Apache作为他们的静态内容?

static-content dropwizard

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

Rust有Collection特征吗?

我想编写一个库,它是BTreeMap中一些功能的薄包装器.我宁愿不将它与特定的数据结构紧密结合.严格来说,我只需要其功能的一个子集,就像 Java 中的NavigableMap接口一样.我希望找到一个我可以使用的类似特征.我似乎记得在某些时候,标准库中存在类似Map和特征的特征MutableMap,但现在它们似乎不存在了.

是否有一个定义这些的箱子?或者他们最终会被重新添加到std?

collections standard-library traits rust

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

如何在不使用科学记数法的情况下在Lua中打印大量数字?

我正在处理Lua中的时间戳,显示自Epoch以来的微秒数(例如"1247687475123456").

真的希望能够将这个数字印在所有可怕的荣耀中,但Lua坚持用科学记谱法打印它.我已经搜索了有关打印格式化字符串的可用文档,但唯一可用的命令是"以科学记数法打印(%e /%E)"和"如果数字很长(%g),则以科学记数法自动打印" .似乎没有选项以正常形式打印数字.

我意识到我可以编写一个函数来获取原始数字,做一些除以10并在循环中打印数字但这似乎是一个不优雅的麻烦.当然有一些方法可以做到这种内置于语言中的方法吗?

lua scientific-notation

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

"差异"工具的正则表达式的味道似乎缺乏?

我有两个文件,我一直在尝试与diff进行比较.这些文件是自动生成的,并且包含许多行,如下所示:

//!   Generated Date  : Mon, 14, Dec 2009
Run Code Online (Sandbox Code Playgroud)

我希望忽略这些差异,并且已经开始使用"-I REGEX"标志来实现这一点.

但是,"Date"和冒号之间出现的空格数量各不相同,不幸的是,diff使用的正则表达式的味道似乎缺少一些基本的正则表达式实用程序.

例如,我不能为我的生活获得"一个或多个"加号工作.同样处理空格的"\ s"表示.

diff -I '.*Generated Date\s+:.*' ....
Run Code Online (Sandbox Code Playgroud)

diff -I '.*Generated Date +:.*' ....
Run Code Online (Sandbox Code Playgroud)

两者都失败了.

不是继续盲目地尝试,有人可以指出我对正则表达式的diff特定子集的一个很好的参考吗?

谢谢!

=====编辑=======

感谢FalseVinylShrub,我已经确定我应该逃避我的'+'和任何类似的角色.这有点解决了这个问题.差异成功匹配

.*Generated Date \+.*
Run Code Online (Sandbox Code Playgroud)

.*Generated Date  *.*
Run Code Online (Sandbox Code Playgroud)

(请注意,"Date"和"*"之间有两个空格.)

然而,第二个我尝试将':'添加到该表达式,如下所示:

.*Generated Date \+:.*
Run Code Online (Sandbox Code Playgroud)

.*Generated Date \+\:.*
Run Code Online (Sandbox Code Playgroud)

两个版本都无法匹配有问题的字符串,导致diff需要花费更多的时间来运行.有什么想法?

regex diff

11
推荐指数
2
解决办法
2549
查看次数

如何实现类似bash的标签完成?

我正在尝试确定系统如何将字符打印到标准输入 - 也就是说,它如何打印用户可以删除的字符以及如果用户点击"Enter"则认为输入的字符.

我碰巧使用的是C,但如果解决方案依赖于语言,我会非常惊讶.

感谢您的任何见解!:D

printing bash tab-completion

7
推荐指数
2
解决办法
3907
查看次数

在管道命令中从文件内容切换到STDIN?(Linux Shell)

我有一个程序(我没写过),它不是为了从文件中读取命令而设计的.在STDIN上输入命令非常繁琐,所以我希望能够通过在文件中编写命令来重新使用它来自动化它.麻烦的是,如果程序遇到EOF,它会无限循环尝试读取下一个命令,在屏幕上放下无数的菜单选项.

我希望能够做的是通过管道将包含命令的文件包含到程序中,然后使用某种shell魔法让它在文件的EOF中从文件切换到STDIN.

注意:我已经考虑过使用带有' - '的猫作为STDIN.不幸的是(之前我不知道),管道命令等待第一个程序的输出在启动第二个程序之前终止 - 它们不是并行运行的.如果有某种方法让程序与这种管道动作并行运行,那就行了!

有什么想法吗?谢谢你的帮助!

编辑:

我应该注意,我的目标不仅是阻止系统命中命令文件的末尾.我希望能够在文件命中EOF时继续从键盘输入命令.

bash shell file pipe named-pipes

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

什么是同时改变多个结构域的最快惯用方法?

许多库允许您定义实现给定的类型trait以用作回调处理程序.这要求您将在单个数据类型中一起处理事件所需的所有数据混为一谈,这使得借用变得复杂.

例如,mio允许您Handler运行EventLoop时实现并提供结构.考虑这些简单数据类型的示例:

struct A {
  pub b: Option<B>
};

struct B;

struct MyHandlerType {
  pub map: BTreeMap<Token, A>,
  pub pool: Pool<B>
}
Run Code Online (Sandbox Code Playgroud)

您的处理程序具有从Token到类型项的映射A.每个类型的项目A可能已经或可能没有相关的类型值B.在处理程序中,您希望查找A给定的值Token,如果它还没有B值,则从处理程序中获取一个值Pool<B>.

impl Handler for MyHandlerType {
    fn ready(&mut self, event_loop: &mut EventLoop<MyHandlerType>, 
             token: Token, events: EventSet) {
       let a : &mut A = self.map.get_mut(token).unwrap();
       let b : B = a.b.take().or_else(|| self.pool.new()).unwrap();
       // Continue …
Run Code Online (Sandbox Code Playgroud)

struct event-handling rust mio

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