我正在建一个网站,我打算发布各种帖子,比如教程、文章等。我打算用 php 来管理它,但是在存储每个帖子的内容时,非常将显示的文本,什么是更好的选择:使用单独的文本文件或将其添加为数据库中的每个条目?
我不明白为什么不直接使用数据库来存储内容,但这是我第一次使用数据库,感觉有点不对。
你在这件事上有什么经验?
我正在尝试编译一个使用GLFW3 的非常简单的OpenGL程序.尽管链接了我认为必要的一切,但我得到了大量未定义的引用.
/usr/local/lib/libglfw3.a(x11_gamma.c.o): In function `_glfwInitGammaRamp':
x11_gamma.c:(.text+0x49): undefined reference to `XRRGetScreenResources'
x11_gamma.c:(.text+0x6a): undefined reference to `XRRGetCrtcGammaSize'
x11_gamma.c:(.text+0x81): undefined reference to `XRRFreeScreenResources'
/usr/local/lib/libglfw3.a(x11_gamma.c.o): In function `_glfwPlatformGetGammaRamp':
x11_gamma.c:(.text+0xce): undefined reference to `XRRGetCrtcGammaSize'
x11_gamma.c:(.text+0xf1): undefined reference to `XRRGetCrtcGamma'
x11_gamma.c:(.text+0x198): undefined reference to `XRRFreeGamma'
/usr/local/lib/libglfw3.a(x11_gamma.c.o): In function `_glfwPlatformSetGammaRamp':
x11_gamma.c:(.text+0x24c): undefined reference to `XRRAllocGamma'
x11_gamma.c:(.text+0x303): undefined reference to `XRRSetCrtcGamma'
x11_gamma.c:(.text+0x30f): undefined reference to `XRRFreeGamma'
/usr/local/lib/libglfw3.a(x11_init.c.o): In function `initExtensions':
x11_init.c:(.text+0x1a67): undefined reference to `XRRQueryExtension'
x11_init.c:(.text+0x1a91): undefined reference to `XRRQueryVersion'
x11_init.c:(.text+0x1b25): undefined reference to `XIQueryVersion' …Run Code Online (Sandbox Code Playgroud) 在开发涉及矩阵运算的小型Python脚本时,我变得越来越困惑,因此我启动了一个shell来玩玩具示例,并在Numpy中更好地理解矩阵索引.
这就是我做的:
>>> import numpy as np
>>> A = np.matrix([1,2,3])
>>> A
matrix([[1, 2, 3]])
>>> A[0]
matrix([[1, 2, 3]])
>>> A[0][0]
matrix([[1, 2, 3]])
>>> A[0][0][0]
matrix([[1, 2, 3]])
>>> A[0][0][0][0]
matrix([[1, 2, 3]])
Run Code Online (Sandbox Code Playgroud)
可以想象,这并没有帮助我更好地理解Numpy中的矩阵索引.这种行为对于我将其描述为"一个自身的数组"的东西是有意义的,但我怀疑在他们正确的思想中的任何人都会选择它作为科学图书馆中矩阵的模型.
那么,我获得的输出的逻辑是什么?为什么矩阵对象的第一个元素本身呢?
PS:我知道如何获得矩阵的第一个条目.我感兴趣的是这个设计决策背后的逻辑.
编辑:我不是问如何访问矩阵元素,或者为什么矩阵行的行为像矩阵.当用单个数字索引时,我要求定义矩阵的行为.这是典型的数组操作,但结果行为与您期望从数组中得到的行为完全不同.我想知道这是如何实现的,以及设计决策背后的逻辑是什么.
如果我做以下事情
double d = 0;
Run Code Online (Sandbox Code Playgroud)
因为0是一个整数文字,它使用32位,而d是一个使用64位的双变量,剩下的32位是用随机垃圾填充的,还是Java正确地提升了文字?
一些奇怪的事情正在发生。
我在 Eclipse 中创建了一个新项目并编码了一段时间。有四个类,其中一个包含一个 main 方法,四个类都在一个包中,我已经准备好进行第一次测试运行。当我按下 Ctrl+F11(运行)时,出现了一条消息,类似于以下内容:
Selection does not contain a main method.
Run Code Online (Sandbox Code Playgroud)
所以我转到运行配置,我发现没有设置主类。当我点击相应的“搜索”按钮以指定主类时,出现的对话框是空的。该对话框运行良好,但没有可供我选择的课程。
这些文件位于项目和硬盘驱动器中的正确位置。运行配置中选择的项目也是正确的。
我尝试在 JRE 之间切换,但没有。重启 Eclipse 或刷新项目也没有用。如果我手动输入类的名称 (Main),它只会告诉我当我尝试运行它时未找到类 Main。我还尝试将课程移动到另一个包。
我在同一台计算机上使用 Eclipse 安装做了几个项目。第一次运行有时会失败,但摆弄运行配置总是很容易修复它。这一次,我似乎注定永远不会运行这个程序。也许这个项目一开始就是个坏主意……
有没有人遇到过这个问题?我是否错过了眼前最愚蠢的事情?
在以JSON文件的形式获得HTTP响应后,如何使用jQuery处理其纯内容?
我以前做过这个,但我现在无法弄清楚.
我正在使用此函数来检索JSON内容.
var json = $.getJSON("test.json",
function(response){
// do stuff
}
);
Run Code Online (Sandbox Code Playgroud)
当然,我可以处理JSON中包含的数据,但我想处理和打印其简单内容,如下所示:
{"name": "Pepe","age" : "20"}
Run Code Online (Sandbox Code Playgroud)
下列
alert(response);
Run Code Online (Sandbox Code Playgroud)
只是给我[对象]
还有这个
alert(jQuery.parseJSON(json));
Run Code Online (Sandbox Code Playgroud)
只是给我null
我似乎无法在任何地方找到答案.我对这一切都很陌生,所以我必须使用错误的搜索术语,因为它看起来像是一件小事.
我有以下问题.
我有一个大的区域,填充了随机数量的不同大小的圆圈.如果在随机位置插入一个新的随机半径圆,我想为它找到一个附近的位置,这样它就不会与任何其他位置重叠.如果圆圈靠近,这是最佳的.
圆圈的数量及其大小是有限的,但是随机的.该区域将非常大(可能是2500x2500),因此这里提出的像素阵列是不可能的.回答相同问题的人提出了一个网格,其中单元格是圆圈的大小.这可以解决我的问题,使用最大圆圈大小的单元格,但我希望圆圈保持尽可能接近,所以它不能完全满足我的需求.
一种非常基本的方法包括检测新圆的放置时的碰撞,并将其从与其碰撞的圆移开.之后,再次检查碰撞并重复该过程.这显然不是很优雅,并且容易出现无限循环(比你想象的更频繁).
PD
一个非常好的事情,但不同的事情,而不是我的主要目标,将重新安排尽可能多的圈子,而不是重新安置一个,好像他们互相"推".我赞成距离超过移动的圈数.也就是说,我希望许多圆圈移动一个小圆而不是远离其原始位置.
谁能告诉我为什么这个计时器只运行一次?
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class TimerTest implements ActionListener{
private Robot r;
private Timer t;
private int i;
public TimerTest(){
i = 0;
try {
r = new Robot();
} catch (AWTException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
t = new Timer(1000, this);
t.setRepeats(true);
t.start();
}
public static void main(String [] args){
new TimerTest();
}
@Override
public void actionPerformed(ActionEvent arg0) {
i++;
System.out.println("Action..." + i);
}
Run Code Online (Sandbox Code Playgroud)
有趣的是,如果我将Timer的延迟减少到仅100,它会按预期工作。甚至更有趣的是,如果我删除了初始化机器人的代码,那么它根本无法工作,则程序会在我运行时立即终止。
我已经在Windows 7和Ubuntu上进行了尝试(尽管在Ubuntu上我完全无法使用机器人,因为出现异常。也许是与权利有关的东西)。
我有两个班,Curve和ChildCurve.ChildCurve继承自Curve.
Curve具有以下私有字段
vector<Point2*>* curvePoints;
Run Code Online (Sandbox Code Playgroud)
以及以下公共方法
vector<Point2*>* getCurvePoints();
Run Code Online (Sandbox Code Playgroud)
ChildCurve有一个修改此字段的方法,如下所示.
vector<Point2*> *pts = this->getCurvePoints();
pts->clear();
Point2 q1 = Point2(1.0, 3.0);
Point2 q2 = Point2(2.0, 4.0);
pts->push_back(&q1);
pts->push_back(&q2);
cout << qvec->at(0)->getX() << ", " << qvec->at(0)->getY() << endl;
Run Code Online (Sandbox Code Playgroud)
此时,将打印正确的值.
后来,从其他一些类中,我尝试检索存储在向量中的点.
vector<Point2*> *curvePoints = curve->getCurvePoints();
for(int i = 0; i < curvePoints->size(); i++){
Point2* p = curvePoints->at(i);
cout << p->getX() << ", " << p->getY() << endl;
}
Run Code Online (Sandbox Code Playgroud)
但所有的点都有垃圾坐标接近0,就像
2.22507e-308, 6.91993e-310
Run Code Online (Sandbox Code Playgroud)
除了我在这里描述的内容之外,我很确定没有任何东西可以触及那个向量.可能有什么不对?这些价值在哪里可能会被破坏?