我刚刚从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:这个问题的方向相同,但是给出了更具体的答案。