小编The*_*eOx的帖子

优化postgresql查询

我在PostgreSQL 9.1中有2个表 - flight_2012_09_12包含大约500,000行,position_2012_09_12包含大约550万行.我正在运行一个简单的连接查询,它需要很长时间才能完成,尽管表格不小,但我确信在执行过程中会有一些重大收获.

查询是:

SELECT f.departure, f.arrival, 
       p.callsign, p.flightkey, p.time, p.lat, p.lon, p.altitude_ft, p.speed 
FROM position_2012_09_12 AS p 
JOIN flight_2012_09_12 AS f 
     ON p.flightkey = f.flightkey 
WHERE p.lon < 0 
      AND p.time BETWEEN '2012-9-12 0:0:0' AND '2012-9-12 23:0:0'
Run Code Online (Sandbox Code Playgroud)

解释分析的输出是:

Hash Join  (cost=239891.03..470396.82 rows=4790498 width=51) (actual time=29203.830..45777.193 rows=4403717 loops=1)
Hash Cond: (f.flightkey = p.flightkey)
->  Seq Scan on flight_2012_09_12 f  (cost=0.00..1934.31 rows=70631 width=12) (actual time=0.014..220.494 rows=70631 loops=1)
->  Hash  (cost=158415.97..158415.97 rows=3916885 width=43) (actual time=29201.012..29201.012 rows=3950815 loops=1)
     Buckets: 2048  Batches: 512 …
Run Code Online (Sandbox Code Playgroud)

sql postgresql query-optimization

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

将哈希模式应用于openlayers中的多边形

我正在使用Openlayers创建一个由KML文件中的多边形组成的矢量图层,我需要对多边形应用"哈希"模式(对角条纹).我知道Openlayers本身不支持将背景图像添加到矢量图层中的多边形,但我想知道是否有人对如何实现这一点有任何想法?矢量多边形的样式似乎仅限于纯色和不透明度.如果需要,我将扩展OpenLayers以通过手动绘制多边形边界内的哈希线来添加此功能,但我希望有人在我走这条路之前有一个更简单的建议.

javascript polygon openlayers

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

c ++静态库引用另一个库的链接器错误

我对c ++很新,我在调试链接器错误时遇到问题.我正在使用wxDev-c ++和g ++编译器.我创建了一个静态库,我将其链接到一个基本项目.该库最初不包含对外部头文件或库的引用,它只是一些简单的测试函数,将2个双精度数组合在一起并返回值.这与链接到测试项目时工作正常.但是我现在正试图将FTP合并到该库中,现在我正在收到链接器错误.

目前测试功能只是试图访问相同的简单添加功能进行测试,我甚至没有调用FTP功能,因为我只是想让测试项目正确编译.

库代码:

DaFTPLib.h:

#ifndef WAVE_H
#define WAVE_H
#ifdef __BORLANDC__
#pragma hdrstop
#endif

#ifndef WX_PRECOMP
#include <wx/wx.h>
#else
#include <wx/wxprec.h>
#endif

#include <wx/protocol/ftp.h>

namespace Wave
{
    class DaFTP
    {
        public:
        DaFTP(char *url, char *login, char *password);
        ~DaFTP();
        const int Download(char* fileName);
        static const void DownloadNCWD(char *url, char *fileName, char *login, char *password);
        static const void DownloadLAMP();
        static double FuncA(double a, double b);
        static double FuncB(double a, double b);

        private:
        char* url, login, password;
        wxFTP ftp;
    };
} …
Run Code Online (Sandbox Code Playgroud)

c++ linker static-libraries undefined-reference

5
推荐指数
1
解决办法
2769
查看次数

基本的c风格字符串内存分配

我正在使用现有代码开发一个项目,该代码主要使用C++但使用c风格的字符串.请考虑以下事项:

#include <iostream>
int main(int argc, char *argv[])
{
    char* myString = "this is a test";
    myString = "this is a very very very very very very very very very very very long string";
    cout << myString << endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这编译并运行良好,输出为长字符串.

但是我不明白为什么它有效.我的理解是

char* myString 
Run Code Online (Sandbox Code Playgroud)

是指向一个足够大的内存区域的指针,用于保存字符串文字"这是一个测试".如果是这种情况,那我怎么能在同一个位置存储更长的字符串呢?由于尝试将长字符串塞入为较短的字符串留出的空间中,因此我预计它会在执行此操作时崩溃.

显然,对这里发生的事情有一个基本的误解,所以我感谢任何理解这一点的帮助.

c++ memory c-strings

4
推荐指数
2
解决办法
530
查看次数

在Actionscript 3/Flex中,双冒号('::')的含义是什么?

我的任务是更新由外部承包商创建的Flex项目,在Actionscript中是以下块:

CONFIG::FLASH_10_1
{
    //Some code here
}
Run Code Online (Sandbox Code Playgroud)

我之前从未见过这种类型的结构,而且我有一段时间试图在Google上搜索它 - 我发现除了AS3之外几乎所有的编程语言都意味着什么.任何人都可以对此有所了解吗?

apache-flex actionscript-3

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

使用网格数据和1D纹理贴图在opengl中创建等高线图

我在一个规则间隔的网格上有一组X,Y,Z值,我需要使用C++创建一个颜色填充的等高线图.我已经在谷歌上搜索了好几天,而且似乎是在openGL中使用1D纹理贴图可以实现这一点.但是我还没有找到一个如何实际执行此操作的示例,并且我没有在任何地方阅读openGL文档.我的困惑归结为一个核心问题:

我的数据不包含每个像素的X,Y值 - 它是一个规则间隔的网格,在X和Y轴上每4个单位有一个数据,具有正整数Z值.

例如:(0,0,1),(4,0,1),(8,0,2),(0,4,2),(0,8,4),(4,4,3)等

由于轮廓将基于Z值并且数据点之间存在间隙,因此应用一维纹理如何实现轮廓此数据(即如何在网格点之间应用一维纹理内插?)

我最接近找到这个例子的是红茶书的在线版本(http://fly.cc.fer.hr/~unreal/theredbook/chapter09.html),但是我是茶壶假设茶壶模型具有每个像素的数据,因此不需要数据点之间的插值.

如果有人能够阐明我的问题或更好地指出以这种方式使用一维纹理贴图的具体例子,我会永远感激,因为我已经在这个项目上烧了两天而没什么可展示的.

编辑:

下面的代码是我正在使用的,虽然它确实显示了正确位置的点,但没有插值或轮廓发生 - 这些点只显示为点.

//Create a 1D image - for this example it's just a red line
int stripeImageWidth = 32;
GLubyte   stripeImage[3*stripeImageWidth];
for (int j = 0; j < stripeImageWidth; j++) {
    stripeImage[3*j] = j < 2 ? 0 : 255;
    stripeImage[3*j+1] = 255;
    stripeImage[3*j+2] = 255;
}
glDisable(GL_TEXTURE_2D);
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
glTexImage1D(GL_TEXTURE_1D, 0, 3, stripeImageWidth, 0, GL_RGB, GL_UNSIGNED_BYTE, stripeImage);
glTexParameterf(GL_TEXTURE_1D, GL_TEXTURE_WRAP_S, GL_CLAMP);
glTexParameterf(GL_TEXTURE_1D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL);

glTexGeni( GL_S, GL_TEXTURE_GEN_MODE, …
Run Code Online (Sandbox Code Playgroud)

c++ opengl texture-mapping

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

在PostgreSQL中对组内的行进行排序

我有以下查询:

SELECT
  routeid, 
  'SRID=4326;LINESTRING(' || string_agg(lon || ' ' || lat, ',') || ')' AS the_geom
FROM route_table 
WHERE observation_time BETWEEN '2012-09-12 10:00:00' AND '2012-09-12 10:15:00'
GROUP BY routeid HAVING COUNT(lon) > 1 ORDER BY observation_time ASC;
Run Code Online (Sandbox Code Playgroud)

该查询的目的是从route_table(由routeid,observation_time,lat和lon列组成)中提取所有lon / lat值,按routeid对其进行分组,并在每个组中按观察时间对它们进行排序。但是,上面的SQL无效,因为observation_time出现在ORDER BY子句中,而不出现在GROUP BY中。当我将observation_time添加到GROUP BY时,我没有得到正确的结果。

假设这样的数据集:

routeid | observation_time      | lat | lon
---------------------------------------------
    1   | '2012-09-12 01:00:00' | 30  | -75
    1   | '2012-09-12 01:05:00' | 31  | -76
    1   | '2012-09-12 01:10:00' | 31  | -76.5
    2   | '2012-09-12 01:03:00' …
Run Code Online (Sandbox Code Playgroud)

sql postgresql sql-order-by

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

使用os.mkdir vs os.system("mkdir")的好处

简单的问题,我找不到答案:

使用os.mkdir("somedir")over os.system("mkdir somedir")subprocess.call()超出代码可移植性是否有好处?

答案应该适用于Python 2.7.

编辑:有人提出硬编码目录与变量(可能包含用户定义数据)引入了安全问题.我最初的问题是来自系统方法(即幕后发生的事情),但安全问题是一个有效的问题,在考虑完整的答案时应包括在内,以及包含空格的目录名称

python python-2.7

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

在Google的codelabs教程中,Kubernetes pods与Docker容器相对应

这个问题适用于Google CodeLabs上的Kubernetes教程:https://codelabs.developers.google.com/codelabs/cloud-compute-kubernetes/index.html?index = ..%2F..%2Fgcp-next# 15

我是Docker和Kubernetes的新手,对于使用"pods"一词感到困惑,这似乎与自己相矛盾.

从该教程:

Kubernetes pod是一组容器,用于管理和联网.它可以包含一个或多个容器.单个pod中的所有容器将共享相同的网络接口,IP地址,磁盘等.同一pod实例中的所有容器将一起生存和死亡.例如,当您拥有运行应用程序的容器以及定期轮询应用程序容器中的日志/指标的另一个容器时,它尤其有用.

这符合我对Kubernetes豆荚与容器的关系的理解,然后他们继续说:

可选插曲:查看在VM上的Docker容器中运行的pod

如果你ssh到那台机器(通过使用kubectl describe pod | grep节点找到运行pod的节点),你可以使用gcloud compute ssh ssh到机器上.最后,运行sudo docker ps以查看实际的pod

我对以上引用的问题:

  1. ."看看在Docker容器中运行的pod"似乎是倒退的.不应该说"看看在VM上运行的Docker容器"吗?
  2. "...运行sudo docker ps来查看实际的pod "没有意义,因为"docker ps"列出了docker容器,而不是pods.

我离开基地还是教程不正确?

docker google-cloud-platform kubernetes

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

从 C++ 中的大端二进制文件中检索 int 的“正确”方法

我有一个 big-endian 格式的二进制文件,我正在从中检索 2 位和 4 位整数数据。我正在运行的机器是小端的。

有没有人对从已知格式的二进制文件中提取整数数据并即时切换字节序有任何建议或最佳实践?我不确定我当前的解决方案是否正确:

int myInt;

ifstream dataFile(dataFileLocation, ios::in | ios::binary);
dataFile.seekg(99, ios::beg);  //Pull data starting at byte 100;

//For 4-byte value:
char chunk[4];
dataFile.read(chunk, 4);
myInt = (int)(chunk[0] << 24 | chunk[1] << 16 | chunk[2] << 8 | chunk[3]);

//For 2-byte value:
char chunk[2];
dataFile.read(chunk, 4);
myInt = (int)(chunk[0] << 8 | chunk[1]);
Run Code Online (Sandbox Code Playgroud)

这似乎适用于 2 字节数据,但在 4 字节数据上给出了我认为不正确的值。我已经阅读了有关 htonl() 的内容,但从我所读到的内容来看,这并不是实现灵活性的明智之举。

c++ binary int endianness

2
推荐指数
1
解决办法
2910
查看次数

将数组传递给对象方法

我遇到了一个基本的阵列问题,我似乎无法理解.

我有一个类"StaticDisplayLayer",构造函数接受2个参数 - 一个int和一个指向3个无符号短整数的数组的指针:

//constructor definition:
StaticDisplayLayer(int type, unsigned short *displayColor[3]);

//constructor code:
StaticDisplayLayer::StaticDisplayLayer(int type, unsigned short *dColor[3]) : DisplayLayer(type)
{
    displayColor = dColor;
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用以下方法创建该类的实例:

unsigned short layerColor[3] = {(unsigned short)255,(unsigned short)255,(unsigned short)255};
StaticDisplayLayer myLayer(1, &layerColor);
Run Code Online (Sandbox Code Playgroud)

我的理解是&layerColor是指向layerColor数组的指针,但编译器给出了以下错误:

no matching function for call to `StaticDisplayLayer::StaticDisplayLayer(int, short unsigned int (*)[3])'
Candidates are:
   StaticDisplayLayer::StaticDisplayLayer(const StaticDisplayLayer&)
   StaticDisplayLayer::StaticDisplayLayer(GLenum, short unsigned int**)
Run Code Online (Sandbox Code Playgroud)

我知道第二个候选人是我正在尝试使用的那个,但显然我不理解指向数组的指针的概念.如果有人能够阐明如何调用该构造函数和/或解释这一点的任何资源我会很感激 - 到目前为止,我的在线搜索并没有真正发现.

c++ arrays parameter-passing

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