小编Sin*_*ity的帖子

RUN echo命令的Docker参数

作为Dockerfile的一部分,我试图修改一个文本文件(ssh_config),以包含一个在构建时由用户(作为ARG)传递给docker容器的变量.

在我的Dockerfile中我(这不是整个文件):

ARG key_name
RUN echo 'Host geoserver\n\
User user\n\
HostName 38.191.191.111\n\
IdentityFile /root/$key_name' >> /etc/ssh/ssh_config
Run Code Online (Sandbox Code Playgroud)

这会收集参数key_name,然后将一些文本附加到ssh_config文本文件中.

运行如下:

docker build --build-arg key_name=GC -t pyramid .
Run Code Online (Sandbox Code Playgroud)

当我检查已写入的内容时,key_name变量尚未被解析,而是被写为文本(字面意思是$ key_name).显然我希望它被传递给ARG的变量所取代.

我试过使用${key_file}而不仅仅是$key_file,我只是在文本文件中获得相同的文本,但包括花括号.

所以我的问题是,如何在RUN echo语句中正确使用ARG变量?

docker

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

打开图层3缩放地图事件处理程序

我需要在Open Layers 3中处理缩放事件.

以下是我的代码:

map_object = new ol.Map({
target: 'map',
controls: controls_list,
interactions: interactions_list,
overlays: [overlay],
layers: [OSM_raster, WFS_layer],
    view: view
});


map_object.on("Zoom", function() {
  console.log('Zooming...');
});
Run Code Online (Sandbox Code Playgroud)

此代码运行时没有错误并显示一个映射,但没有输出到控制台,表明此功能未触发.

我也尝试过:

map_object.on("drag", function() {
  console.log('Dragging...');
});
Run Code Online (Sandbox Code Playgroud)

这也没有做任何事情.

任何有关如何处理OL3中的地图控制事件的帮助将非常受欢迎(特别是缩放!).注意我已尝试'zoom'以及'zoom'作为on方法的type字段.

javascript openlayers-3

17
推荐指数
2
解决办法
3万
查看次数

使用 papa parse 从远程 csv 文件中获取标题

我只需要从远程 csv 文件中提取标题。

我目前的方法如下:

Papa parse 有一种方法来流式传输数据并单独查看每一行,这很好,我可以使用 parser.abort() 终止流以防止它在第一行之后继续前进,如下所示:

Papa.parse(csv_file_and_path,{header:true, worker:true, 
    download: true,
    step: function(row, parser) 
    {
        //DO MY STUFF HERE
        parser.abort();
    }
});
Run Code Online (Sandbox Code Playgroud)

这工作正常,但因为我使用的是远程文件,它必须下载数据才能读取它。即使代码在解析第一行后将控制权释放回浏览器,在解析找到第一行并为我提供所需的信息后,下载仍会继续很长时间,特别是对于下载可以持续很长时间的大文件在我得到我需要的东西之后的时间。

有没有更有效的方法来做到这一点?我可以阻止 papa parse 下载整个文件吗?

我试过使用

Papa.parse(csv_file,{header:true,
download: true,
preview:1,
complete: function(results){
    //DO MY STUFF HERE
}
});
Run Code Online (Sandbox Code Playgroud)

但这做同样的事情,它下载整个文件,但与第一种方法一样,在解析第一行后将控制权交还给浏览器。

javascript csv papaparse

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

Bootstrap Navbar折叠点<768px

这是Bootstrap 3的旧问题 - >更改导航栏的折叠点,但这里建议的方法:

https://coderwall.com/p/wpjw4w/change-the-bootstrap-navbar-breakpoint

和这里:

Bootstrap 3 Navbar Collapse

不适用于低于768px的折叠,它似乎只能用于扩展折叠点,而不是缩回它.我有一个特殊的情况,我的导航栏有3个按钮,所以它不需要这么早崩溃.我希望它能以420px的速度崩溃.

有没有CSS解决方案?如果没有,有人可以指向我需要更改和下载的引导程序自定义页面中的正确属性吗?这可能是通用断点吗?因为没有什么我能看到的Navbar断点:

http://getbootstrap.com/customize/

根据要求,导航栏的HTML只是:

<nav class="navbar navbar-default navbar-fixed-top">
    <div class="container-fluid">
        <div class="navbar-header">
            <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>
        </div>

        <div class="navbar-collapse collapse" id = "navbar">
            <ul class="nav navbar-nav navbar-left">
                <li class = "navbar_buttons"><a id = "new_route_button"><strong>New Route</strong></a></li>
                <li class="divider-vertical"></li>
                <li class = "navbar_buttons"><a id = "clear_route_button">Clear Route</a></li>
            </ul>
            <ul class="nav navbar-nav navbar-right">    <!--Right justified navbar list--> …
Run Code Online (Sandbox Code Playgroud)

html css twitter-bootstrap

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

Python Popen 挂起,但 Windows cmd 窗口中的相同命令运行良好

我在这里拉我的头发。我正在生成一个需要 Python 反馈的进程。

当我在 cmd 窗口中运行命令时,它运行良好,但是当我尝试通过 Python 运行它时,终端挂起。

p = subprocess.Popen(startcmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
(out, err) = p.communicate()
Run Code Online (Sandbox Code Playgroud)

startcmdPython 控制台中打印的字符串在哪里,如下所示:

"C:/Program Files/GRASS GIS 7.2.1/grass72.bat" --version
Run Code Online (Sandbox Code Playgroud)

如果我将其复制并粘贴到 Windows cmd 中,它会显示版本信息并在大约一秒钟后将控制权返回到命令提示符,但在 Python 中它会冻结。

我应该指出,如果我用startcmd类似"dir"或什至"python --version"这样的东西替换字符串,它工作正常!

附加:我试过shell=True,这有相同的结果。

附加:我尝试将 cmd 和参数作为数组发送,如下面的答案中所建议的那样shell=False,但这也同样挂起。

附加:我已将 GRASS 路径添加到系统路径,因此现在我可以简单地grass72 --version在 cmd 窗口中调用以获取结果,但是这在 Python 中仍然冻结,但在 cmd 中工作正常。

附加:我创建了一个基本的 .bat 文件来测试 .bat 文件是否通过 Python 运行正常,这是我创建的:

@echo off
title Test Batch Script
echo I should …
Run Code Online (Sandbox Code Playgroud)

python cmd

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

在R中使用具有多线程的包

我需要对R应用程序进行多线程处理,因为它需要5分钟才能运行,并且仅使用15%的计算机可用CPU。

一个需要一段时间才能运行的过程的示例是计算包含n层的非常大的栅格堆栈的平均值:

mean = cellStats(raster_layers[[n]], stat='sd', na.rm=TRUE)
Run Code Online (Sandbox Code Playgroud)

使用并行库,我可以创建一个新集群并将函数传递给它:

cl <- makeCluster(8, type = "SOCK")
parLapply(cl, raster_layers[[1]], mean_function)
stopCluster(cl)
Run Code Online (Sandbox Code Playgroud)

均值函数为:

mean_function <- function(raster_object)
{
result = cellStats(raster_object, stat='mean', na.rm=TRUE)
return(result)
}
Run Code Online (Sandbox Code Playgroud)

除了看不到使用cellStats所需的“ raster”包外,此方法可以正常工作。因此无法说出cellStats没有功能 我试图在函数中包括库,但这无济于事。

raster软件包随附了一个集群函数,它可以看到函数cellStats,但是据我所知,集群函数必须返回一个栅格对象,并且必须传递给我一个不够灵活的单个栅格对象,我需要能够传递对象列表并返回一个数字变量... 如果只有并行库可以看到栅格包功能,我可以使用并行库对普通群集进行处理。

那么,有人知道我如何通过R中的多线程将程序包传递给节点吗?或者,也许如何从栅格簇函数返回单个值?

multithreading r

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

禁用 Opera 的 HTML 视频弹出按钮

在 Opera(并且只有 Opera)中,HTML5 视频在顶部带有一个按钮,可让您将视频从网页中弹出。

有没有办法在 javascript、jquery 或 CSS 中禁用它?

这是一个类似的帖子,但没有解释如何在没有用户干预的情况下禁用它,我需要一些程序化的东西:

顶部的 HTML5 视频按钮 - Opera 浏览器

html javascript jquery opera

5
推荐指数
2
解决办法
3954
查看次数

在OpenLayers 3中将功能从一个位置移动到另一个位置

如何将矢量要素从地图上的一个位置移动到另一个位置?

我有以下生成(0.0,0.0)的图标:

var iconFeature = new ol.Feature({
   geometry: new ol.geom.Point([0.0,0.0])
});

var iconStyle = new ol.style.Style({
  image: new ol.style.Icon(({
    anchor: [0.5, 46],
    anchorXUnits: 'fraction',
    anchorYUnits: 'pixels',
    opacity: 0.75,
    src: 'marker-icon.png'
  }))
});

iconFeature.setStyle(iconStyle);
Run Code Online (Sandbox Code Playgroud)

这工作正常,但我现在如何将其移动到另一个位置?

我试过了:

iconFeature.move(x,y);
Run Code Online (Sandbox Code Playgroud)

我也试过了

iconFeature.geometry.move(x,y);
Run Code Online (Sandbox Code Playgroud)

后者说iconFeature.geometry未定义,第一个说icon.move()不是函数.

关于SO的先前答案提出了这些解决方案,但它们似乎对我不起作用.

javascript openlayers-3

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

三.js 通过轨道控制获取相机位置

我正在使用three.js 轨道控件并尝试让天空盒跟随相机的位置。在网上搜索后,我没有找到合适的答案。

我的问题很简单 - 使用轨道控件时如何检索相机的坐标,以下不起作用:

skybox.position.x = camera.position.x;  //Moving skybox with camera
skybox.position.z = camera.position.z;  //Moving skybox with camera
skybox.position.y = camera.position.y;  //Moving skybox with camera
Run Code Online (Sandbox Code Playgroud)

x 和 z 坐标的值不正确。我也试过:

orbit_controls.object.target
Run Code Online (Sandbox Code Playgroud)

相反,但这会导致类似的错误行为,x 和 z 返回不正确的值。

控制机制的一个看似显而易见的要求似乎非常难以做到。

javascript three.js

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

使用OSRM路由多个配置文件-URL中的配置文件实际上有什么作用吗?

有了ORSM,共有3种配置文件,分别用于不同的运输方式,自行车,步行和汽车。这些随OSRM一起提供。

根据1年前的以下帖子,OSRM不支持多个配置文件:

OSM路由(OSRM):是否需要为不同的配置文件复制所有数据?

但是在官方文档中,URL中有一个配置文件参数,用于从运行中的OSRM实例中检索路由:

http://project-osrm.org/docs/v5.6.4/api/#general-options

路径如下所示:

http://router.project-osrm.org/route/v1/driving/

如果没有在网址中进行驾车步行骑行,则不会检索到路线,因此API需要使用其中的一条路线。但是,如果我在服务器上编译汽车的路线,然后在网址中使用/ foot /来检索路线,它仍会检索基于汽车的路线,完全忽略“脚”。

OSRM的任何人都可以解释为什么撤消了多配置文件支持这样有用的功能,而上述URL中的驱动点是,无论如何它都会被忽略,而似乎只是使用附加到正在运行的OSRM实例上的配置文件?

解决多个配置文件问题的方法似乎是为每个配置文件托管路由机器的并行副本并寻址不同的IP,那么,URL中“配置文件”的意义又是什么呢?

osrm

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