我有一袋100个土豆。我需要将土豆分成 N 个桶。每个桶里必须有 15 到 60 个土豆。
显然,我需要一个逐步的解决方案才能将其变成代码。
迄今为止我所拥有的最好的方法:
最小桶数:100/60 = 1 (40) => 向上舍入 => 2
最大桶数:100/15 = 6 (10) => 向下舍入 => 6
因此,您最少可以有 2 个桶,最多可以有 6 个桶。现在我们选择一个随机数(因为我只需要一个解决方案,而不是全部)。
我们选择 3。
每桶土豆数:100/3 = 33 (1)
桶数:33, 33, 34。
现在这是棘手的部分。虽然这是原始问题的解决方案,但它对我不起作用,因为我需要数字比这更随机。在这个问题中,条件是 15-60,但这里我们只得到 33-34,这对于我的需要来说太均匀了。
这里的解决方案之一可能是开始从每个桶中添加和减去数字。可能会重复 10 次左右,但我认为一定有更好的方法来做到这一点。
有任何想法吗?
我在Node.js服务器上运行一个Web应用程序,我需要它一直在线,所以我一直在使用.但这是我经过一段时间后得到的:
Error: Connection lost: The server closed the connection.
at Protocol.end (/home/me/private/app/node_modules/mysql/lib/protocol/Protocol.js:73:13)
at Socket.onend (stream.js:79:10)
at Socket.EventEmitter.emit (events.js:117:20)
at _stream_readable.js:910:16
at process._tickCallback (node.js:415:13)
error: Forever detected script exited with code: 8
error: Forever restarting script for 3 time
Run Code Online (Sandbox Code Playgroud)
我还有两台服务器连续运行了大约10天.我在所有服务器上都有一个"keepalive"循环,每5分钟左右进行一次"select 1"mysql查询,但似乎没有任何区别.
有任何想法吗?
编辑1
我的其他服务器给出了类似的错误,我认为这是"连接超时",所以我把这个功能:
function keepalive() {
db.query('select 1', [], function(err, result) {
if(err) return console.log(err);
console.log('Successful keepalive.');
});
}
Run Code Online (Sandbox Code Playgroud)
它修复了我的另外两台服务器.但在我的主服务器上,我仍然得到上面的错误.
这是我如何启动我的主服务器:
var https = require('https');
https.createServer(options, onRequest).listen(8000, 'mydomain.com');
Run Code Online (Sandbox Code Playgroud)
我不确定你有兴趣看到什么代码.基本上,服务器是一个REST API,它需要一直保持高效.它每分钟大约需要2-5个,也许10个请求.
com.amazonaws.services.cloudfront.model.InvalidViewerCertificateException: The certificate that is attached to your distribution doesn't cover the alternate domain name (CNAME) that you're trying to add. For more details, see: https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/CNAMEs.html#alternate-domain-names-requirements (Service: AmazonCloudFront; Status Code: 400; Error Code: InvalidViewerCertificate; Request ID: 8406d8d5-65c3-11e9-afc0-65457a0a2bea)
Run Code Online (Sandbox Code Playgroud)
我错过了什么吗?顶级域的另一个发行版使用相同的证书可以正常工作。
这有效:
<div class="list p-2" />
Run Code Online (Sandbox Code Playgroud)
这不起作用:
<style lang="postcss">
@tailwind base;
@tailwind components;
@tailwind utilities;
@layer components {
.list {
@apply p-2;
}
}
</style>
Run Code Online (Sandbox Code Playgroud)
我查看了 Svelte 的文档,但它解释了使用 SvelteKit 的过程,但我没有使用它。我怎样才能让它发挥作用?
webpack.config.js:
...
module: {
rules: [
{
test: /\.css$/i,
use: ['style-loader', 'css-loader', 'postcss-loader'],
},
Run Code Online (Sandbox Code Playgroud)
tailwind.config.js:
module.exports = {
purge: [
'./*.html',
'./src/**/*.js',
'./src/**/*.svelte'
],
darkMode: false, // or 'media' or 'class'
theme: {
extend: {},
},
variants: {
extend: {},
},
plugins: [],
}
Run Code Online (Sandbox Code Playgroud)
postcss.config.js:
module.exports = {
plugins: [
['tailwindcss'], …Run Code Online (Sandbox Code Playgroud) 让我们假设我有一个在画布上播放的视频,我想对该视频做一些基本分析,如边缘检测,运动检测和一般运动方向.我该如何处理这个问题?你能指出一些关于如何实现它们的简单算法和一般想法的正确方向吗?
我假设这些东西通常不用JS编码,所以我不希望任何开箱即用的东西.
有任何想法吗?
我正在编写一个jquery插件,我在想是否应该移动.js文件中的所有CSS,只是为了让它更容易设置.
我应该这样做吗?这太糟糕了,表现明智吗?
以下是我在文档中看到的内容:
Apps can send notifications to any existing user that has authorized the app. No special or extended permission is required.
Run Code Online (Sandbox Code Playgroud)
好的听起来不错.我正在使用JS SDK,这是我正在尝试做的事情:
FB.api('/me/notifications?access_token=' + window.accessToken + '&href=test&template=test', function(response) {
console.log(response);
});
Run Code Online (Sandbox Code Playgroud)
这就是我得到的:
"(#200) The "manage_notifications" permission is required in order to query the user's notifications."
Run Code Online (Sandbox Code Playgroud)
我尝试用我的应用程序的真实域名替换href参数.使用我的Facebook ID代替"/ me /"也没什么区别.救命!
我已经尝试添加manage_notifications权限(但仍然不起作用......),但我的问题是为什么它在文档中反过来说?
编辑:去PHP:
<?php
include_once('sdk/facebook.php');
$user = $_POST['user'];
$message = $_POST['message'];
$config = array();
$config['appId'] = '609802022365238';
$config['secret'] = '71afdf0dcbb5f00739cfaf4aff4301e7';
$facebook = new Facebook($config);
$facebook->setAccessToken($config['appId'].'|'.$config['secret']);
$href = 'href';
$params = …Run Code Online (Sandbox Code Playgroud) 我只是想找出在 store 操作后是否调用了组件方法,但出现此错误:
expect(jest.fn())[.not].toHaveBeenCalled()
jest.fn() value must be a mock function or spy.
Received:
function: [Function bound mockConstructor]
Run Code Online (Sandbox Code Playgroud)
这是我的单元测试:
describe('MyComponent.spec.js', () => {
let methods = {
setLocation: jest.fn()
// more methods...
}
it('calls setLocation on undo/redo', () => {
let wrapper = mount(MyComponent, {
store,
localVue,
methods
})
store.dispatch('doUndo')
expect(wrapper.vm.setLocation).toHaveBeenCalled()
})
})
Run Code Online (Sandbox Code Playgroud)
不确定这是否是一个好习惯,但我使用的是实际商店和本地 Vue 实例。
我刚刚制作了一个FF插件并制作了一个简单的网站.我想在访问者点击"下载"按钮时安装插件,而不是下载.它在本地工作,但不是在我上传网站时.我检查了mozilla存储库,他们只是链接到xpi文件.
我究竟做错了什么?
我有一个包含10-12k文档的MongoDB数据库,在尝试获取所有文档时遇到的查询速度非常慢,如下所示:
Sales.find()
.where('author').equals(author)
.where('date').gt(startDate.unix()).lt(endDate.unix())
.exec(function(err, results) {
callback();
});
Run Code Online (Sandbox Code Playgroud)
此查询提取大约10.5k文档,执行时需要1000-1300ms.我尝试删除"where"条件 - 它只会使它变慢(获取更多文档?).
问题来自Mongoose,MongoDB,JavaScript还是Node?我以前运行PHP/MySQL数据库,在类似条件下速度提高10-20倍,比如获取10k +行数据.我究竟做错了什么?
编辑
销售架构:
var salesSchema = new Schema({
author: String,
kind: String,
productID: String,
description: String,
date: String,
amount: String,
transactionID: {
type: String,
unique : true
}
});
Run Code Online (Sandbox Code Playgroud)
来自RoboMongo桌面客户端的查询结果:
db.getCollection('sales').find({}).explain()
executionTimeMillis: 46
nReturned: 10359
Run Code Online (Sandbox Code Playgroud)