我刚刚从OSX终端切换到iTerm2,我似乎失去了一项功能.在Terminal中,我可以用鼠标滚动less命令的输出,因为我已经安装了MouseTerm.
但是,当我尝试less在iTerm2中滚动输出时,窗口的滚动条会移动.奇怪的是,滚动按预期工作vim.
如何less在iTerm2中使用鼠标滚动输出?
Node.js支持多个进程的最快的非内存键值存储是什么?
我需要存储简单的键值字符串/字符串对(不是文档或JSON,只是字符串).
以下是一些示例(将有数百万个):
我试过了:
LevelDB的解决方法是多级的,它通过HTTP公开单个LevelDB进程.
但那当然需要付出代价; 我需要快速的东西.
是否有任何键值存储:
我只关心阅读.快速的多进程读取是必要的,但不是写入.
我对LevelDB的当前速度感到满意,只是因为它是单进程的事实.
额外细节:
我一直在寻找在Vim中映射一个带有额外参数的新运算符.
例如,我们知道ciw将"切入内部单词"并将使您进入插入模式,我正在寻找的是一个自定义动作来替换c(例如s)iw需要额外参数的动作.
一个简单的例子是:
Given a line in a text file
Run Code Online (Sandbox Code Playgroud)
并执行正常模式(给定光标在第一列)siw*,这将围绕第一个单词,*如下所示:
*Given* a line in a text file
Run Code Online (Sandbox Code Playgroud)
我知道,这是最优秀的surround.vim插件.但我只是在这里给出一个例子,并寻找一个关于如何获得映射以便上述工作的答案.
我试着用打onoremap和opfunc,但似乎无法让他们打我想要的方式.
所以这是运动和运算符挂起映射的组合.
假设我是FakeBook™的朋友小部件的开发者.我为网站所有者提供了一个小部件,可以将这样的个性化消息添加到他们的页面:
你的朋友Michael,Anna和Shirley喜欢这个网页!
span天真地,我创建了一个脚本,将这些信息span放在网站上.但是,ExampleSite的所有者现在可以通过简单的DOM操作访问您朋友的名字!
这是一个很大的隐私/安全问题.
iframe我不希望ExampleSite访问他们朋友的名字.所以相反,我让网站所有者添加小部件iframe:
<iframe src="http://fakebook.com/friends?page=http%3A%2F%2Fexample.org%2F"></iframe>
Run Code Online (Sandbox Code Playgroud)
这样做,因为ExampleSite的所有者无法刮掉内容iframe.然而,整个iframe事情相当丑陋,因为它没有融入网站的样式,而一个span.
在昨天阅读Shadow Dom时,我想知道这是否可以解决这两个问题.这将允许我有一个脚本,创建一个span原始网站无法访问:
var host = document.querySelector('#friends');
var root = host.webkitCreateShadowRoot();
root.textContent = 'Your friends Michael, Anna and Shirley love this webpage!';
Run Code Online (Sandbox Code Playgroud)
但是,Shadow DOM是否会将其内容隐藏在周围的页面中?
这里的假设是除了我的脚本之外没有人可以访问root,但这是正确的吗?
在影子DOM规范毕竟说,它提供的功能封装,但其实我是想相信封装.虽然组件模型用例实际列出了这个用例,但我不确定Shadow DOM是否实现了nesessary confinement属性.
我通过内容协商提供一系列资源.具体而言,任何URL都可以用不同的格式表示,具体取决于客户端的Accept标题.
Facebook的一个例子可以在Facebook上看到:
curl -H "Accept: application/json" http://graph.facebook.com/daft-punk
curl -H "Accept: text/turtle" http://graph.facebook.com/daft-punk
我正在寻找一个基于URL和客户端标题来缓存内容的CDNAccept.
CloudFlare不支持这一点:如果一个客户端要求HTML,那么对该URL的所有后续请求都会收到HTML表示,而不管其首选项如何.其他人有类似的问题.
例如,如果我将CloudFlare置于其上graph.facebook.com(并将其配置为缓存"无扩展"资源,默认情况下不会这样),那么它将表现不正确:
http://graph.facebook.com/daft-punk通过卷曲请求JSON; http://graph.facebook.com/daft-punk通过我的浏览器(因此在HTML中); 将正确的行为将是CloudFlare的再次询问服务器,因为第二个客户端有不同的Accept标题.在此之后,Accept可以从缓存提供具有类似标头的请求.
哪些CDN解决方案支持内容协商,还缓存协商内容?
所以请注意,仅尊重接受是不够的; 协商响应也应该缓存.
PS1:很容易让自己的缓存服务器支持它.例如,对于nginx:
proxy_cache_key "$scheme$host$request_uri$http_accept";
Run Code Online (Sandbox Code Playgroud)
请注意客户端的Accept标头是如何为缓存编制索引的键的一部分.我希望在CDN上.
PS2:不能为不同的表示使用不同的URL.我的应用程序位于Linked Data域中,其中URL在识别中起着重要作用.
我使用的是Windows 7,Java 1.7,Grails 2.1.4,Groovy 2.0.4和Tomcat 7.0.37.
执行我的项目时,我收到以下错误:
Apr 5, 2013 11:08:00 AM org.apache.catalina.loader.WebappClassLoader validateJarFile
INFO: validateJarFile(/software/apache-tomcat-7.0.37/webapps/aaaportal-0.1/WEB-INF/lib/javax.servlet-api-3.0.1.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
Apr 5, 2013 11:08:13 AM org.apache.catalina.loader.WebappClassLoader loadClass
INFO: Illegal access: this web application instance has been stopped already. Could not load org.bouncycastle.jce.provider.JDKKeyPairGenerator$RSABeanInfo. The eventual following stack trace is caused by an error thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access, and …Run Code Online (Sandbox Code Playgroud) RxJS README中的示例似乎表明我们必须订阅源代码.换句话说:我们等待源发送事件.从这个意义上说,来源似乎是基于推送的:来源决定何时创建新项目.
然而,这与迭代器形成对比,严格来说,只需要在请求时创建新项目,即在进行呼叫时next().这是pull-based行为,也称为懒惰生成.
例如,流可以返回所有维基百科页面的素数.这些项目仅在您要求时生成,因为预先生成所有项目都是一项投资,并且可能只有2或3项可能会被阅读.
RxJS是否也有这种基于拉的行为,因此只有在您要求时才生成新项目?
该反压页似乎表明,这是不可能的呢.
将内存流上的答案seekoff与上的答案结合在一起,我实现了内存中的缓冲区,如下所示:
struct membuf : std::streambuf {
membuf(char const* base, size_t size) {
char* p(const_cast<char*>(base));
this->setg(p, p, p + size);
}
};
struct imemstream : virtual membuf, std::istream {
imemstream(char const* base, size_t size) :
membuf(base, size),
std::istream(static_cast<std::streambuf*>(this)) {
}
std::iostream::pos_type seekoff(std::iostream::off_type off,
std::ios_base::seekdir dir,
std::ios_base::openmode which = std::ios_base::in) {
if (dir == std::ios_base::cur) gbump(off);
return gptr() - eback();
}
};
Run Code Online (Sandbox Code Playgroud)
然而,在第一aswer的意见作为解释,我们仍然需要得到seekg/ seekpos工作。那么如何在seekpos这里正确实现呢?
PS:这个问题的方向相同,但是给出了更具体的答案。