我正在尝试创建一个带有2个参数的bash脚本:目录和命令.我需要查看此目录以进行更改,并且当某些内容发生更改时,我需要执行该命令.我真的很喜欢用bash编写脚本而且我不确定我在做什么,所以对我很轻松.我也在Mac上,而不是linux.任何指针或外部资源都会有很大帮助.我知道有很多人在互联网上尝试这一点,似乎没有人能够做到这一点.我真的想模仿SASS的手表功能.
#!/bin/bash
#./watch.sh $PATH $COMMAND
DIR=$1
ls -l $DIR > $DIR/.begin
#this does not work
DIFFERENCE=$(diff .begin .end)
if [ $DIFFERENCE = '\n']; then
#files are same
else
$2
fi
ls -l $DIR > $DIR/.end
Run Code Online (Sandbox Code Playgroud) 与这个问题类似,但我并没有询问承诺如何起作用,我特别想知道:
在返回Promise的东西中包装setTimeout的标准/最佳方法是什么?我在想像Angular的功能,但不是Angular特有的.$timeout
PowerShell 5引入了New-TemporaryFilecmdlet,非常方便.我怎样才能做同样的事情而不是文件创建目录?有New-TemporaryDirectorycmdlet吗?
我已经知道如何更改在Azure网站上运行的Node.js的版本,但是如何查看可以在Azure中使用的可用Node.js版本?
这与此问题类似,但那里的提问者明确地想知道当前正在运行的版本,而不是可用的版本.
我的网络应用程序有一个后台服务,可以收听服务总线.基于文档,看起来运行后台服务的内置方式是实现IHostedService.
所以我有一些看起来像这样的代码:
public class ServiceBusListener : IMessageSource<string>, IHostedService
{
public virtual event ServiceBusMessageHandler<string> OnMessage = delegate { };
public Task StartAsync(CancellationToken cancellationToken)
{
// run the background task...
}
// ... other stuff ...
}
Run Code Online (Sandbox Code Playgroud)
然后注册该服务Startup.cs:
services.AddSingleton<IHostedService, ServiceBusListener>();
Run Code Online (Sandbox Code Playgroud)
一旦我更新到ASP.NET 2.1,我可以使用新的便捷方法:
services.AddHostedService<ServiceBusListener>();
Run Code Online (Sandbox Code Playgroud)
但我相信这两者在功能上是等价的.
复杂性:我的Web应用程序有多个实现IHostedService(特别是服务总线监听器的不同实例).
问题:如何让其他组件获得对特定托管服务实现(我的服务总线监听器)的引用?换句话说,如何将特定实例注入组件?
用例:我的后台服务侦听服务总线消息,然后重新发布消息作为.NET事件(如果您想知道,消费代码处理线程问题).如果事件在后台服务上,则订阅者需要获得对后台服务的引用才能进行订阅.
我尝试过:如果我做了明显的事情,并声明ServiceBusListener作为依赖注入到不同的组件,我的启动代码抛出"无法解析类型的服务"异常.
甚至可以请求特定的实现IHostedService?如果没有,最好的解决方法是什么?介绍我的服务和消费者可以参考的第三个组件?避免IHostedService并手动运行后台服务?
我写了一个简短的bash脚本并将其存储起来files/default/bash.sh.
如何链接它以使其在我的主要默认配方中运行?它需要以sudo身份运行,因为我使用的是ubuntu系统.
Chrome的DevTools网络面板非常适合查看加载不同请求的时间.它会描述每个请求并报告请求的不同部分需要多长时间,包括进行初始TCP连接和SSL握手所花费的时间:

当我第一次看到初始连接和SSL握手所花费的时间时加载页面.如果我立即重新加载页面,我不再看到在初始连接和SSL握手上花费的时间.我认为这是因为Chrome已经保持打开先前请求的TCP连接并重新使用它.这对于正常浏览非常有用,但它使初始页面加载的分析变得困难.
有什么办法可以强制Chrome不重复使用任何现有的TCP/TLS连接并且总是制作新的连接?
如果不是在Chrome中,我可以在操作系统级别做些什么来实现这一目标吗?我在Windows上,如果它有所作为.
在我的Web应用程序中,当用户登录到应用程序时,他们的浏览器会打开一个Websocket到服务器,以便可以将更新下推到浏览器.
它是在Azure应用服务中运行的ASP.NET核心Web应用程序(自托管).我想使用Azure的部署插槽交换功能将代码更新推送到生产中,无需停机部署.
在我完成的有限测试中,看起来在插槽交换后,Websocket连接保持打开到浏览器所连接的原始插槽.(因此,如果浏览器的Websocket连接到插槽A,并且我们交换插槽A和B以便新连接进入插槽B,则Websocket仍将对插槽A上运行的应用程序开放.)
在某些时候,旧的插槽将被脱机,这将强行关闭任何打开的Websockets.我希望尽可能优雅地重新打开Websocket到新插槽,并在插槽交换后尽快重新打开,这样如果我更新与Websocket相关的代码,所有客户端将尽快运行新代码.
这可能如何工作的草图:
有没有更好的方法呢?
如何在旧插槽上运行的代码知道它何时被交换?
是否可以优雅地处理这个问题?或者总会有一堆竞争条件?
websocket azure-web-sites azure-deployment-slots asp.net-core
PropTypes 有助于调试,因为它们会在未满足预期时显示警告。除此之外,他们也很好地表达了如何使用组件的意图。
如果我有一个组件接受一个 prop 的值可以是一个 promise,有什么方法可以使用 PropTypes 来表达它吗?我正在想象一些直接的东西PropTypes.promise,或者使用构建块 PropTypes 来表达“thenable”概念的某种方式。
这是一个高度简化的示例,用于展示我的预期用例:
class SomeComponent extends Component {
static propTypes = {
someDataPromise: PropTypes.object // <-- can I be more expressive here?
}
state = {
isLoading: false
}
async handleSubmit() {
this.setState({ isLoading: true });
const data = await this.props.someDataPromise;
const response = await fetch(`/some/api/endpoint?data=${data}`);
// do something with the response
this.setState({ isLoading: false });
}
render() { /* ... */ }
}
Run Code Online (Sandbox Code Playgroud) 该方案是我有一个ChildCtrl控制器,从继承BaseCtrl下面这种继承方式:
angular.module('my-module', [])
.controller('BaseCtrl', function ($scope, frobnicate) {
console.log('BaseCtrl instantiated');
$scope.foo = frobnicate();
// do a bunch of stuff
})
.controller('ChildCtrl', function ($controller, $scope) {
$controller('BaseCtrl', {
$scope: $scope,
frobnicate: function () {
return 123;
}
});
});
Run Code Online (Sandbox Code Playgroud)
假设BaseCtrl有很多东西,并且已经经过了很好的测试,我想用某些参数测试那个ChildCtrl实例BaseCtrl.我最初的想法是这样的:
describe("ChildCtrl", function () {
var BaseCtrl;
beforeEach(module('my-module'));
beforeEach(module(function($provide) {
BaseCtrl = jasmine.createSpy();
$provide.value('BaseCtrl', BaseCtrl);
}));
it("inherits from BaseCtrl", inject(function ($controller, $rootScope) {
$controller('ChildCtrl', { $scope: $rootScope.$new() });
expect(BaseCtrl).toHaveBeenCalled();
})); …Run Code Online (Sandbox Code Playgroud) 我有一个庞大的遗留代码库,我想引入Content-Security-Policy标题.在短期内真正锁定网站是不可行的(例如,整个地方都有没有自动化测试覆盖的内联脚本),但至少我可以开始禁止访问我知道的内容源当然,目前还没有使用,然后随着时间的推移慢慢减速.
不幸的是,未使用的源列表相当短.这是我第一次尝试Content-Security-Policy价值:
default-src * 'unsafe-eval' 'unsafe-inline'
Run Code Online (Sandbox Code Playgroud)
这破坏了许多事情,例如使用data:scheme获取的图像.环顾四周,我看到了许多您可能想要包含的内容,例如connect-src ws:,未在文档中明确指出的内容.
什么是最大允许Content-Security-Policy标头值,基本上允许网站执行浏览器默认允许执行的所有操作?问另一种方式:我可以介绍什么标题值,绝对不会破坏网站上的任何东西?
如果我可以从我知道不会破坏任何东西的东西开始,然后减去我知道可以安全删除的权限,我会觉得将标题引入遗留站点更为舒服.
为什么在以下最小示例中Etag没有返回标头jqXHR.getAllResponseHeaders()?
运行:( node etag-server.js然后访问http://localhost:8080/)
ETAG-server.js
var fs = require('fs'),
http = require('http');
var webServer = http.createServer(function (request, response) {
response.writeHead(200, {"Content-Type": "text/html"});
response.end(fs.readFileSync('frontend.html'));
});
var apiServer = http.createServer(function (request, response) {
response.writeHead(200, {
'Access-Control-Allow-Origin': 'http://localhost:8080',
'Cache-Control': 'no-cache',
'Content-Type': 'application/json; charset=utf-8',
'Etag': 123,
'Expires': -1,
'Pragma': 'no-cache'
});
response.end(JSON.stringify({ data: [1, 2, 3] }));
});
webServer.listen(8080);
apiServer.listen(8081);
Run Code Online (Sandbox Code Playgroud)
frontend.html
<!DOCTYPE html>
<html>
<head>
<title>Etag header not returned from jQuery.ajax() cross-origin XHR</title>
<script src="//code.jquery.com/jquery-1.10.2.min.js" type="text/javascript"></script>
<script …Run Code Online (Sandbox Code Playgroud) 我正在尝试解决Windows 上ffi Gem中的错误。我需要运行bundle install一些从互联网上获取的项目。问题是bundle install尝试安装ffi版本 1.9.9时会出错。
有什么方法可以告诉我安装ffibundle install版本 1.9.8 吗?也许是一个命令行参数,或者是对or的补充。GemfileGemfile.lock
一个可能的复杂情况是,我正在处理的 Gemfile根本没有列出ffi,因此它必须由依赖项的依赖项之一拉入。
asp.net-core ×2
bash ×2
javascript ×2
node.js ×2
angularjs ×1
azure ×1
bundler ×1
chef-infra ×1
cross-domain ×1
ecmascript-6 ×1
es6-promise ×1
file ×1
inheritance ×1
jasmine ×1
jquery ×1
macos ×1
pinning ×1
powershell ×1
promise ×1
reactjs ×1
ruby ×1
shell ×1
tcp ×1
unit-testing ×1
websocket ×1
windows ×1