从 openstreetmap 页面上的共享选项卡,我可以将地图视图导出为 HTML,例如:
<iframe width="425" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="https://www.openstreetmap.org/export/embed.html?bbox=6.047544479370118%2C46.23053702499607%2C6.061706542968751%2C46.23821801159735&layer=mapnik" style="border: 1px solid black"></iframe>
<br/><small><a href="https://www.openstreetmap.org/#map=17/46.23438/6.05463">View Larger Map</a></small>
Run Code Online (Sandbox Code Playgroud)
我想将它嵌入到 github 上的 README.md 页面中,例如
环顾四周,最接近iframe在 markdown 中嵌入s 的是git lab guide。随后我尝试了<figure class="video_container">标签,但在 gitlab 或 github 上都看不到它。
# how to find us?
we will be here:
<figure class="video_container">
<iframe width="425" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="https://www.openstreetmap.org/export/embed.html?bbox=6.047544479370118%2C46.23053702499607%2C6.061706542968751%2C46.23821801159735&layer=mapnik" style="border: 1px solid black"></iframe>
</figure>
Run Code Online (Sandbox Code Playgroud)
我是否遗漏了一些东西,或者这更好地留给真正的 HTML 而不是降价可以/应该做什么?
在我们的项目中,我们有一个shell脚本,用于为后续构建过程设置环境变量或运行构建的应用程序.
它包含一个块,用于检查已设置的变量并进行一些调整.
# part of setup.sh
for LIBRARY in "${LIBRARIES_WE_NEED[@]}"
do
echo $LD_LIBRARY_PATH | \grep $LIBRARY > /dev/null
if [ $? -ne 0 ]
then
echo Adding $LIBRARY
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$LIBRARY
else
echo Not adding $LIBRARY
fi
done
Run Code Online (Sandbox Code Playgroud)
即它检查库的路径是否已经存在$LD_LIBRARY_PATH,如果没有,则添加它.(公平地说,这可能是不同的写入(喜欢这里),但假设脚本应该实现的东西,这是非常难做到不调用程序,检查$?,然后要么做一件事或做另一件事).
该.gitlab-ci.yml则包含
before_script:
- yum install -y <various packages>
- source setup.sh
Run Code Online (Sandbox Code Playgroud)
但是$?,当if-statement决定添加路径时,运行器决定停止前脚本的非零时刻$LD_LIBRARY_PATH.现在很高兴gitlab运行器检查$?我的脚本的每一行之后,但是如果这些行.gitlab-ci.yml被认为是原子的,那就太好了.
有没有办法避免在$?源自的脚本中进行中间检查.gitlab-ci.yml?
我目前配置我的zsh选项卡完成:
autoload -U compinit && compinit
zstyle ':completion:*:default' menu select=0
zstyle ':completion:*:default' select-scroll 0
Run Code Online (Sandbox Code Playgroud)
我喜欢这个是:
我不喜欢的:
所以我想将行为改为:
一个关键的方面是在第一个插入提示之前显示歧义列表.否则我已经可以使用了
zstyle ':completion:*:default' menu select=0 yes=0
Run Code Online (Sandbox Code Playgroud) 我正在开发一个用 cmake+ninja 构建的 c++ 项目,在 64 线程计算机上有大约 1200 个构建目标。
有一个翻译单元需要 10 分钟来编译,大多数其他翻译单元都相当快,以至于所有其他目标的构建一起(在所有线程上构建)只需大约 9 分钟。慢速翻译单元与其他单元相当独立,所以它不必被安排得晚,但事实证明,默认情况下是安排得晚,这样一个完整的构建需要我 15 到 20 分钟,而在最后只有一个线程与几乎所有其他目标一起工作。如果先安排慢速翻译单元,阻塞一个线程大约 10 分钟,而所有其他线程在项目的其余部分工作,并且整个项目在 10 分钟内构建,那么构建对我来说会更快。
在 cmake 或 ninja 中有没有办法改变调度的优先级以指出缓慢或“请尽早”的目标而不会弄乱依赖关系?
用grep我可以搜索单词的开头和结尾
grep -e '\<leg\>' <where to search>
Run Code Online (Sandbox Code Playgroud)
这会找到I have a leg.但不会play allegro here。
Ripgrep (0.10.0) 似乎不支持这种写正则表达式的方式。我的问题是:
如何“grep”出现在单词的开头/结尾ripgrep?
我正在尝试编写一个需要释放一些内存的类,所以我已经定义了一个自定义析构函数.这被编译为共享库.但是,当我尝试编译一个基本程序来使用该库时,我找不到定义时通常的"未定义引用"错误.如果我删除析构函数,则不会发生这种情况.
这是一个精简的例子:
头文件:
#ifndef _SKYMAP_H_
#define _SKYMAP_H_
#include <vector>
#include "TCanvas.h"
class BL_Skymap {
public:
BL_Skymap();
~BL_Skymap();
protected:
TCanvas mCanvas;
};
#endif //_BENSLIBRARY_SKYMAP_H_
Run Code Online (Sandbox Code Playgroud)
源文件:
\#include "BL_Skymap.h"
BL_Skymap::BL_Skymap()
{
}
BL_Skymap::~BL_Skymap()
{
}
Run Code Online (Sandbox Code Playgroud)
现在我正在使用的程序就是这样:
\#include "BL_Skymap.h"
int main()
{
BL_Skymap map;
return(0);
}
Run Code Online (Sandbox Code Playgroud)
请注意,我正在使用ROOT分析包(即TCanvas对象).当我编译上面的小程序时,我得到以下错误(Skymap类被编译成libMyLibrary.so):
g++ test.cpp -o test -lMyLibrary `root-config --cflags --glibs`
/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../lib/libMyLibrary.so: undefined reference to 'TCanvas::~TCanvas()'
/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../lib/libMyLibrary.so: undefined reference to 'TCanvas::TCanvas(bool)'
Run Code Online (Sandbox Code Playgroud)
请注意,root包提供了一个实用程序来生成所需的编译器标志,这是root-config --cflags --glibs上面的目的.我在这里错过了什么?
更新:我编写了一个Makefile来执行我的库的编译,它执行以下操作:
g++ -Wall -Wextra -ansi -pedantic --std=c++11 -Isrc -Ihdr -MM -MT 'obj/BL_Skymap.o' src/BL_Skymap.cpp -MF …Run Code Online (Sandbox Code Playgroud) 当使用python与pyroot(一个名为ROOT的CERN数据分析包的python接口)时,我遇到了以下奇怪的行为:
print ROOT.TFile(fname).GetListOfKeys()
Run Code Online (Sandbox Code Playgroud)
输出None而看似语义上等效的代码
f=ROOT.TFile(fname)
print f.GetListOfKeys()
Run Code Online (Sandbox Code Playgroud)
输出预期的<ROOT.THashList object ("THashList") at 0x13f0fa0>.
虽然这不是我在使用ROOT时遇到的第一个错误,但这次我很困惑python允许这个错误发生.
我认为,不知何故,TFile对象的引用计数在第一个示例中出错,并且在实际调用GetListOfKeys之前它被删除.(设置ROOT.TFile.__del__为某些打印命令后,确实会发生这种情况.)
我看到它的方式,在执行ROOT.TFile(fname)之后,但在调用GetListOfKeys()之前,指向TFile对象的指针位于堆栈上.因此,引用计数不应为零,并且在GetListOfKeys()返回之前不应调用析构函数.
谁能解释为什么会发生这种情况?
在一个相关的说明,有没有办法禁止python del隐藏我的对象只是因为引用计数变为零?我尝试了gc.disable(),并没有改变结果.是否有比将对象附加到某些全局定义的只写列表更优雅的解决方案?
我正在将gcc 4.9.2与ccache 3.1.10一起使用。我的shell环境包含GCC_COLORS=auto(从这里,尝试yes和always太)。
作为最低限度的测试,我编译了该main.c文件
int main() {
int a;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
与gcc -c main.c -Wall -o main.o并观察(根据需要)
main.c: In function ‘main’:
main.c:2:7: warning: unused variable ‘a’ [-Wunused-variable]
int a;
^
Run Code Online (Sandbox Code Playgroud)
有main.c:和main.c:2:7:,‘main’:和‘a’粗体的^黑体字绿色,warning:品红色粗体。
与编译ccache的colorisation消失。
注意:ccache gcc -Wall -c main.c -o main.o无色,但ccache gcc -Wall main.c -o main仍保持彩色。
NB2:ccache gcc -Wall -c …
我在 cmake build 目录中,想构建项目,但不知道 cmake 是否使用-G Unix\ Makefile或运行-G Ninja。
现在我知道我可能对此一无所知并使用cmake --build .,但是当我想提供其他选项时,cmake --build . -- SOMETHING我应该知道我是否应该提供 gnumake 或 ninja 选项。
作为可能的解决方案,我发现我可以只检查 aMakefile或build.ninja文件的存在。或者在CMakeCache.txtfor 中使用grep CMAKE_GENERATOR。
编辑:
在一个类似的问题中,这里解释了传递给 cmake with 的值-D可以用cmake -LA -N. 但这并没有列出-G参数。
我想知道是否有更合适的方法(就像cmake -LA -N不是 grepping 变量值一样)。
是否有一个 linter 可以检测被包中的@deprecated装饰器标记为已弃用的函数的使用情况deprecated?
例如在
from deprecated import deprecated
def realfun():
print('Hey there')
@deprecated(reason="this is a test")
def myfun():
realfun()
if __name__ == "__main__":
myfun()
Run Code Online (Sandbox Code Playgroud)
将它作为PYTHONWARNINGS="default::DeprecationWarning" python testfile.pybut pylint、mypy、运行时,我会收到运行时警告,并且flake8似乎(至少我如何运行它们)对调用myfun.