小编Ole*_*leg的帖子

Linux - 仅安装redis-cli

我有一台安装了Redis的Linux服务器,我想通过本地Linux机器的命令行连接它.

是否可以redis-cli只安装(没有redis-server和其他工具)?

如果我只是将redis-cli文件复制到本地计算机并运行它,我有以下错误:

./redis-cli: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.14' not found (required by ./redis-cli)
Run Code Online (Sandbox Code Playgroud)

linux redis

152
推荐指数
12
解决办法
16万
查看次数

Node实际创建了多少个线程?

在阅读关于Node的线程性质的这个很好的答案后,我开始使用UV_THREADPOOL_SIZE系统变量来改变线程池的大小,我发现了一些有趣的东西:

当我设置

process.env.UV_THREADPOOL_SIZE = 10;
Run Code Online (Sandbox Code Playgroud)

我的Node进程中有15个线程(我认为它应该是10 + 1主节点线程= 11).

看看我的剧本:

process.env.UV_THREADPOOL_SIZE = 10;

//init thread pool by calling `readFile` function
require('fs').readFile(__filename, 'utf8', function(err, content) {});

//make node not exiting
setInterval(function() {}, 1000);
Run Code Online (Sandbox Code Playgroud)

运行后我输入:

ps -Lef | grep test.js | grep -v grep
Run Code Online (Sandbox Code Playgroud)

并获得以下结果:

olegssh   4869  4301  4869  0   15 16:38 pts/0    00:00:00 /home/olegssh/node/bin/node test.js
olegssh   4869  4301  4870  0   15 16:38 pts/0    00:00:00 /home/olegssh/node/bin/node test.js
olegssh   4869  4301  4871  0   15 16:38 pts/0    00:00:00 …
Run Code Online (Sandbox Code Playgroud)

multithreading threadpool node.js libuv

22
推荐指数
1
解决办法
3677
查看次数

我可以在Chrome扩展程序的不同部分之间共享代码吗?

比方说,我有一个功能:

var rand = function(n) {
    return Math.floor(Math.random() * n);
}
Run Code Online (Sandbox Code Playgroud)

我可以在没有copypaste的内容脚本和后台脚本中使用此功能吗?

谢谢.

javascript code-reuse google-chrome google-chrome-extension

12
推荐指数
1
解决办法
1743
查看次数

将大量响应放入缓存存储时,"DOMException:未找到条目"

我在缓存存储中存储视频时遇到问题.如果视频尺寸较小,它可以正常工作,但如果它的大小约为100MB,我会收到此错误:

DOMException: Entry was not found.

我使用以下代码:

fetch(videoUrl).then(function(res) {
  var responseToCache = res.clone();
  caches.open('videos').then(function(cache) {
    var request = new Request('https://example.com/video.mp4');
    cache.put(request, responseToCache).catch(function(err) {
      console.log(err); //this is where the error is thrown
    });
  });
});
Run Code Online (Sandbox Code Playgroud)

我可以存储多个总大小> = 100 MB的小文件.

我想这是Chrome浏览器的限制,但我在Internet上找不到任何引用.

有没有办法避免这种限制?

编辑:

我可以存储的最大视频大小是64MB.如果大小超过该大小,则会发生错误.

编辑2:

该错误仅在Chrome中出现.Firefox没有这样的限制.我在Firefox中尝试了大小> = 350MB的视频和OK.

javascript html5 offline offline-caching service-worker

10
推荐指数
1
解决办法
1518
查看次数

在Sublime Text 3中保存文件时运行shell脚本

我只是好奇,当我在Linux上的Sublime Text 3中按CTRL + S时,是否可以自动运行shell脚本.例如,在修改SASS时生成CSS可能很有用.

谢谢.

linux shell sublimetext3

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

为什么Express/Connect会在每个请求中生成新的CSRF令牌?

据我所知,有两种方法可以防止CSRF攻击:1)每个会话的令牌,以及2)每个请求的令牌

1)在第一种情况下,当用户的会话初始化时,仅生成一次CSRF令牌.因此,用户只能同时使用一个有效令牌.

2)在第二种情况下,在每个请求上生成新的CSRF令牌,之后旧的CSRF令牌变为无效.利用vunerability更加困难,因为即使攻击者窃取了一个令牌(通过XSS),也会在用户进入下一页时过期.但另一方面,这种方法使得webapp不太可用.这是来自security.stackexchange.com的一个很好的报价:

例如,如果他们点击"后退"按钮并使用新值提交表单,则提交将失败,并且可能会遇到一些恶意错误消息.如果他们尝试在第二个选项卡中打开资源,他们会发现会话在一个或两个选项卡中随机中断

在分析Node.js Express框架(基于Connect)时,我注意到每个请求都会生成一个新的CSRF令牌,但旧的令牌 不会变为无效.

我的问题是:在每个请求上提供新的CSRF令牌而不是使旧的无效的原因是什么?为什么不在每个会话中生成一个令牌?

谢谢你,对不起我的英文!

security csrf node.js express

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

在JavaScript中限制对'style'属性的访问

我开始开发一个小的JavaScript库,我想只通过我的API来设置HTML元素的样式(因为出于某种原因,我需要完全控制样式).

所以我想让style属性不可访问(我的API将通过我的style别名访问它- 不是一个理想的解决方案,但对于像jQuery这样的其他库它会做到这一点).

如果我写这个(灵感来自这个主题):

var box = document.getElementById('someElementId');
Object.defineProperty(box, 'style', {
    get: function() {
        throw 'you cant access style property';
    }
});
box.style.color = 'red';
Run Code Online (Sandbox Code Playgroud)

box仅适用于元素.

是否可以对Webkit,Firefox和IE9 +中的所有(现有和未来)元素执行此操作?

我也试过这个:

Object.defineProperty(HTMLElement, 'style', {...
Run Code Online (Sandbox Code Playgroud)

但没有运气.

任何帮助将不胜感激!

编辑

正如@Teemu建议我可以写HTMLElement.prototype而不是HTMLElement,它在FF和IE中工作正常,但在Chrome中则不行.它看起来像Chrome的bug.可悲的是...

Edit2 - 为什么我需要它

我想开发的库的主要目标是允许编写样式,如:

element.setWidth('parent.width / 2 - 10');
Run Code Online (Sandbox Code Playgroud)

在这种情况下element,宽度应该在每次改变宽度时作出反应parent.
但由于onresize事件仅适用于window对象(本文似乎已过时),因此我可以"监听"修改.style.width属性的唯一方法是执行我自己的样式化API.
我想限制(或至少显示警告)直接style修改,因为它会破坏元素的行为.

javascript dom prototype ecmascript-5

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

经常"无法为推送通知包生成ICNS文件"错误

我一直在

无法为推送通知包生成ICNS文件

错误通过电子邮件发送给我,因为我在我的网站上设置了Safari推送通知.他们的笔记本电脑以及我尝试过的任何其他笔记本都能正常工作,而且我已经阅读并重新阅读了如何制作推送包的说明,我看起来有效......

阅读Apple的文档,它说这个错误的原因是

您的iconset可能包含格式错误的PNG

但是我已经检查过它们都很好,没有透明度,而且它们再次在我的笔记本电脑上运行......到底是什么?有没有其他人经历过这个或找到了解决方法?有人知道推送包测试工具吗?

safari macos push-notification apple-push-notifications safari-push-notifications

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

为什么自动增量模式在 MongoDB 中扩展时不好?

我试图理解为什么自动增量模式在缩放时不好

\n\n

我也读过这篇文章。里面有这样一句话:

\n\n
    \n
  • 相反,您需要使用正确的 UUID 方法来确保您不会遇到竞争条件,并且 ID 在集群中确实是唯一的。
  • \n
\n\n

我正在尝试找出_id分片重复情况的确切情况。

\n\n

还有一个问题:非主键自增怎么样?安全吗?

\n\n

非常感谢!

\n

scalability auto-increment mongodb

4
推荐指数
1
解决办法
1620
查看次数

确保Linux上只有一个正在运行的PHP进程

我有一个 php 脚本每分钟从 cron 运行一次。但有时它的工作时间会超过1分钟。我的问题是:确保现在只有一个进程正在运行的最佳方法是什么?

我使用这段代码:

$output = shell_exec('ps aux | grep some_script.php | grep -v grep');   //get all processes containing "some_script.php" and exclude current grep process
$trimmed = rtrim($output, PHP_EOL); //trim newline symbol in the end
$processes = explode(PHP_EOL, $trimmed);    //get the array of lines (i.e. processes)
$procCnt = count($processes);   //get number of lines
if ($procCnt > 2) {
  echo "busy\n";
  exit();       //exit if number of processes more than 2 (see explaination below)
}
Run Code Online (Sandbox Code Playgroud)

如果有一个 some_script 进程从 cron 运行,shell_exec …

php linux cron

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