我是node.js的新手,我发现随着项目规模的扩大,将项目分成多个文件非常复杂.我有一个大文件,之前作为多人HTML5游戏的文件服务器和Socket.IO服务器.理想情况下,我想分离文件服务器,socket.IO逻辑(从网络读取信息并将其写入带有时间戳的缓冲区,然后将其发送给所有其他播放器)和游戏逻辑.
使用socket.io中的第一个示例来演示我的问题,通常有两个文件.app.js是服务器index.html并发送到客户端.
app.js:
var app = require('http').createServer(handler)
, io = require('socket.io').listen(app)
, fs = require('fs')
app.listen(80);
function handler (req, res) {
fs.readFile(__dirname + '/index.html',
function (err, data) {
if (err) {
res.writeHead(500);
return res.end('Error loading index.html');
}
res.writeHead(200);
res.end(data);
});
}
io.sockets.on('connection', function (socket) {
socket.emit('news', { hello: 'world' });
socket.on('my other event', function (data) {
console.log(data);
});
});
Run Code Online (Sandbox Code Playgroud)
index.html的:
<script src="/socket.io/socket.io.js"></script>
<script>
var socket = io.connect('http://localhost');
socket.on('news', function (data) {
console.log(data);
socket.emit('my other event', { …Run Code Online (Sandbox Code Playgroud) 我看过很多与这个问题非常相似的问题,所以我一开始就犹豫不决.但没有任何建议解决我的问题,我似乎无法弄清楚自己的错误.
对于我为一个客户制作的项目,他们希望能够将客户的报价(使用在线表单生成)转换为PDF.很简单.由于整个项目都是PHP,我使用了以下简单的过程:
直到他们更换服务器一直有效.新服务器有防火墙.
首先,PDF转换步骤返回一个防火墙页面,说明服务器无法建立出站连接.要解决此问题,我直接提供HTML文件而不是链接到它(/var/www/mysite/temp/18382.html而不是www.example.com/temp/18382.html).这转换了HTML,但防火墙阻止了CSS和图像的加载
我可以通过简单地将它直接嵌入到站点而不是链接到它(使用<style>标签)来克服CSS ,但这不适用于图像
我先尝试使用相对链接.我换<img src="http://www.example.com/temp/image.jpg" />了<img src="./image.jpg" />.这没用.
接下来我尝试了,<img src="file:///var/www/mysite/temp/image.jpg" />但这也行不通
我读围绕并通过WkHTMLtoPDF手册看看,我试图像几个不同的命令行参数--enable-local-file-access,--enable /var/www/mysite/temp/以及--images但似乎没有任何解决它
每当我尝试在 Macnpm --version或node --versionMac 上运行时,都会收到以下错误:
$> node --version
dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.63.dylib
Referenced from: /usr/local/bin/node
Reason: image not found
Abort trap: 6
Run Code Online (Sandbox Code Playgroud)
我发现这篇有用的 SO 帖子建议链接适当的版本,并通过以下方式解决了我的问题:
$> brew switch icu4c 63.1
Cleaning /usr/local/Cellar/icu4c/64.2
Cleaning /usr/local/Cellar/icu4c/63.1
Opt link created for /usr/local/Cellar/icu4c/63.1
Run Code Online (Sandbox Code Playgroud)
但是这样做之后,PHP停止工作:
$> tail /usr/local/var/log/php-fpm.log
Reason: image not found
dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.64.dylib
Referenced from: /usr/local/opt/php/sbin/php-fpm
Reason: image not found
dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.64.dylib
Referenced from: /usr/local/opt/php/sbin/php-fpm
Reason: image not found …Run Code Online (Sandbox Code Playgroud) 我决定尝试一个新项目的WebPack,我今天正在开发,我从源图中得到了非常奇怪的行为.我在文档中找不到任何相关内容,在浏览StackOverflow时也无法找到其他任何人遇到此问题.
我目前正在查看由Vue-CLI的WebPack模板生成的HelloWorld应用程序- 没有对代码,构建环境或任何内容进行任何更改.
我安装了所有东西并像这样运行:
vue init webpack test && cd test && npm install && npm run dev
Run Code Online (Sandbox Code Playgroud)
查看我的源图,我看到以下内容:
这是一个热点.为什么有三个版本HelloWorld.vue和App.vue?更糟糕的是,每个版本的代码版本略有不同,并且没有一个版本与原始源代码匹配.将HellowWorld.vue在根目录下坐着不匹配原始来源,但它是什么的做的,而不是那里./src/components的文件夹?最后,为什么没有第四个App.vue拥有它的原始来源?
据我所知,这可能与WebPack加载器有关.但是,我从来没有遇到任何其他捆绑包的这类问题.以下是使用Browserify Vue-CLI模板执行完全相同步骤的示例:
没有webpack://架构,只有每个文件的一个副本,文件实际上包含原始源代码(对于源映射很重要),没有意外(webpack)/buildin或(webpack)-hot-middleware没有.子目录,....只是源代码.
我有一个250 MB的CSV文件,我需要阅读~7000行和~9000列.每行代表一个图像,每列是一个像素(灰度值0-255)
我从一个简单的开始,np.loadtxt("data/training_nohead.csv",delimiter=",")但这给了我一个内存错误.我认为这很奇怪,因为我正在运行64位Python,安装了8个内存,并且在仅使用大约512 MB后就死了.
我从那以后尝试了其他几种策略,包括:
import fileinput 并一次读取一行,将它们附加到数组中np.fromstring 读完整个文件后np.genfromtext每种方法都给了我相同的结果.MemoryError大约512 MB.想知道是否有一些特殊的512MB,我创建了一个简单的测试程序,它填满了内存,直到python崩溃:
str = " " * 511000000 # Start at 511 MB
while 1:
str = str + " " * 1000 # Add 1 KB at a time
Run Code Online (Sandbox Code Playgroud)
这样做直到大约1演出才崩溃.我也是,只是为了好玩,试过:( str = " " * 2048000000填2场演出) - 这顺便跑了.填写RAM,从不抱怨.所以问题不在于我可以分配的RAM总量,而是似乎是我可以分配内存的TIMES数量......
在我发现这篇文章之前,我无聊地google'd:Python大文件上的内存不足(numpy)
我完全复制了答案中的代码:
def iter_loadtxt(filename, delimiter=',', skiprows=0, dtype=float):
def iter_func():
with open(filename, 'r') as infile:
for _ in range(skiprows):
next(infile)
for line in infile:
line = …Run Code Online (Sandbox Code Playgroud) 我花了一些时间试图追踪特定Laravel bug的根本原因,因为原来的GitHub问题在没有解决的情况下被关闭了.
经过一段时间的实验后,我发现会话正在重新生成,因为laravel_sessioncookie已设置为null.尽可能地跟踪这回,我发现index.php- Laravel之前曾加载-的价值$_COOKIE是腐败有时...
我有90%的时间打电话给我的应用程序,我的cookie看起来像这样:
array:7 [
"__unam" => "bc7c68-14f8d12a5ef-43097c02-213"
"__utma" => "152883115.857409601.1438038184.1440538193.1440976773.14"
"__utmc" => "152883115"
"__utmz" => "152883115.1435960225.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)"
"PHPSESSID" => "k8qvmt8ccbhcqepbn7mib8kra6"
"XSRF-TOKEN" => "eyJpdiI6IlJGd2M1WHlRcnhpeGtobFZpVlZaWmc9PSIsInZhbHVlIjoiMXhFSnlHeTZKbkc5NWxYcFwvNkNUTkNXeVpROWIweGJkczhIXC9LVStNMVlvSjFoRmttTXlLeTVOS01JM0wrN2FCdjVvQzM2RHNwRjJQcGlTNWZyelM2QT09IiwibWFjIjoiZDdjMzk1Zjg0YWUzYjhlNzUyYmQ4NzAwNTFhZWIwNDM1MDQyYmMwZjZkODllMTVlMGMxNTVjZjBmNTlmMTlkNiJ9"
"laravel_session" => "eyJpdiI6InV4YmFFTzJxTTdrVGlPdjVQZkszS1E9PSIsInZhbHVlIjoieGdsYzJTYTlqY3k4MzFIR2l6b2ZSaFwvK1RmdGg1UUhYR2dkdVpmNVVvcHoyMm5yRUpMUWRGRjVZd3ZUXC81OXl1QnpBRnR3a05kNXp1MEFoV2pLTmpIdz09IiwibWFjIjoiOThjMTU1MTE0ZTRjM2E2MGEzNGQ0MTcwODNhZmNlODMyZjM0MGViMjdmZjliMWZhNjE2M2Q0YzFlNWQxZDZiYyJ9"
]
Run Code Online (Sandbox Code Playgroud)
但是,有10%的时间,它看起来像这样:
array:7 [
"__unam" => "bc7c68-14f8d12a5ef-43097c02-213"
"__utma" => "152883115.857409601.1438038184.1440538193.1440976773.14"
"__utmc" => "152883115"
"__utmz" => "152883115.1435960225.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)"
"PHPSESSID" => "k8qvmt8ccbhcqepbn7mib8kra6"
"XSRF-TOKEN" => "eyJpdiI6IlJGd2M1WHlRcnhpeGtobFZpVlZaWmc9PSIsInZhbHVlIjoiMXhFSnlHeTZKbkc5NWxYcFwvNkNUTkNXeVpROWIweGJkczhIXC9LVStNMVlvSjFoRmttTXlLeTVOS01JM0wrN2FCdjVvQzM2RHNwRjJQcGlTNWZyelM2QT09IiwibWFjIjoiZDdjMzk1Zjg0YWUzYjhlNzUyYmQ4NzAwNTFhZWIwNDM1MDQyYmMwZjZkODllMTVlMGMxNTVjZjBmNTlmMTlkNiJ9"
"laravel_session" => "eyJpdiI6InV4YmFFTzJxTTdrVGlPdjVQZkszS1E9PSIsInZhbHVlIjoieGdsYzJTYTlqY3k4MzFIR2l6b2ZSaFwvK1RmdGg1UUhYR2dkdVpmNVVvcHoyMm5yRUpMUWRGRjVZd3Z"
]
Run Code Online (Sandbox Code Playgroud)
使用Web代理(Charles)监控网络流量,问题不在我的最后 - 正在发送完整的cookie字符串,但服务器只看到部分消息(laravel_session cookie被切断)
每次出现问题时,它都会在完全相同的位置被切断:cookie字符串开始后的678个字节(原始HTTP请求文本中有1435个字节).奇怪的是,请求主体的传输没有任何损害,这是在原始HTTP请求中的cookie字符串之后,因此不是TCP连接失败的问题.
PATCH …Run Code Online (Sandbox Code Playgroud) 我只是将以下“最小”重现案例放在一起(最少用引号引起来,因为我想确保pylint不会抛出其他错误、警告、提示或建议——这意味着有一些样板文件):
pylint_error.py :
"""
Docstring
"""
import numpy as np
def main():
"""
Main entrypoint
"""
test = np.array([1])
print(test.shape[0])
if __name__ == "__main__":
main()
Run Code Online (Sandbox Code Playgroud)
当我运行pylint此代码 ( pylint pylint_error.py) 时,我得到以下输出:
$> pylint pylint_error.py
************* Module pylint_error
pylint_error.py:13:10: E1136: Value 'test.shape' is unsubscriptable (unsubscriptable-object)
------------------------------------------------------------------
Your code has been rated at 1.67/10 (previous run: 1.67/10, +0.00)
Run Code Online (Sandbox Code Playgroud)
它声称它test.shape是不可下标的,即使它很明显是。当我运行代码时,它工作得很好:
$> python pylint_error.py
1
Run Code Online (Sandbox Code Playgroud)
那么是什么导致pylint了困惑,我该如何解决呢?
一些补充说明:
np.arange(1)在错误消失时声明测试np.zeros(1),np.zeros((1)),np.ones(1) …我是 C++ 的新手,我一直在一个又一个头痛,所以如果这非常简单并且我就是那么愚蠢,请原谅我......
我有一个最终应该在 Linux 中编译和运行的项目。不幸的是,在我的 C++ 开发环境出现很多问题(仍未解决)之后,我放弃了在 Linux 中进行开发的尝试,转而使用了 Windows Visual Studio 2017。我的希望是让我的代码在 Windows 中运行,然后,因为 C++ 应该是一个可移植语言,它应该只需要在 Linux 中进行最少的更改即可工作。
一天左右,Visual Studio 似乎在工作。我可以编写代码,点击“编译”,然后就像魔法一样运行。我把几个类放在一起构建了一个有向无环图,使用了哈希表的标准库,然后我尝试创建了一个套接字......
Windows 和 Linux 使用不同的套接字库(<sys/socket.h>vs <winsock.h>),所以我需要某种方法来抽象差异,我更喜欢一个完善的标准。在谷歌上搜索我发现Boost 库似乎符合我的需求......那是一切都变得糟糕的时候。
因为这个项目将在各种平台和 IDE 上开发(有些人使用 Windows + Visual Studio,有些人使用 Mac + Eclipse,其他人使用 Linux + VIM),所以我选择将它作为一个 CMake 项目。经过几个小时的阅读、学习和研究,似乎 CMake 应该给我我想要的东西(方便且可重复的跨平台构建,几乎没有或没有依赖性问题)
我的源代码(直接来自Windows 上的Boost 入门指南)如下:
CMakeProject2.cpp
#include <boost/lambda/lambda.hpp>
#include <iostream>
#include <iterator>
#include <algorithm>
int main()
{
using namespace …Run Code Online (Sandbox Code Playgroud) 请不要害怕使用任何技术术语或低级别的解释.我非常精通计算机体系结构和低级编程语言,可以理解任何优化或内存管理技术,以及复杂的结构(类,成员变量等).
我主要关注的是基于Web的应用程序.我经常使用PHP,而且我一直在快速学习CSS.然而,Javascript目前是我的瓶颈.我知道足够的Javascript来做任何sans框架(DOM操作,AJAX查询等).我也知道我可以让我的代码运行得更快,针对特定情况进行优化,并且我可以通过手动编码所有内容来缩小代码的总体大小(不包括外部脚本).然而,为了便于其他程序员阅读和编码速度,我试图学习至少一个Javascript框架.
在阅读了许多框架的文档并查看了一些教程后,我更喜欢jQuery.它允许在一行中使用非常强大的迭代代码,并且它具有很小的全局变量命名空间冲突的可能性.从我所知道的,声明的唯一全局变量是$变量,其他所有变量都发生在这个名称空间内,如果你想要并排使用两个框架,甚至还有方法可以访问没有这个变量的命名空间.它还有一个非常小的文件包含(24千字节gzip),这意味着更少的服务器负载.
我的问题是创建jQuery插件的好方法是什么?如果我开始在jQuery的编码网站,我应该如何去了解它的最佳的互操作性和设计?我想确保我的代码可以运行沿侧任何其他jQuery的无干扰,有可能构建插件关我的代码,我尽量少用jQuery的命名空间,这样我不偷,可能被另一个使用的变量脚本.
我正在为http://digitaleditor.com/做一些工作,我遇到了一些令人困惑的事情.
网页底部有一个水平滚动条,但我一直无法弄清楚原因.使用谷歌Chrome的开发人员工具,我发现整个页面上只有3个项目超过960像素宽.前两个是html和body,第二个是#hpages,然而第二个只有970像素宽(html并且body每个宽1263像素).此外,有一个非常明显的CSS规则扩展#hpages到970像素:
#hpages ul { width:970px; float:right; }
Run Code Online (Sandbox Code Playgroud)
我找不到拉伸这些html或body元素的规则.我尝试运行以下脚本来查看是否有任何我只是忽略的元素可能会拉伸页面:
javascript:widest=null;$("body *").each(function(){if(widest==null)widest=this;else if($(this).width()>$(widest).width())widest=this;});alert(widest.id);
Run Code Online (Sandbox Code Playgroud)
这返回#hpages,意味着身体中没有超过970像素宽的项目(即使身体被拉伸到1263像素).
没有影响body元素宽度或元素宽度的CSS规则html.
老实说,对于拉伸页面的内容感到遗憾,我不知道如何弄明白.在这一点上,我最后的办法是系统地从页面中删除项目,直到它被解决.我想知道是否有人知道更好的选择.