小编Ric*_*nop的帖子

Golang依赖管理最佳实践

在Golang中,我们可以在GitHub上指定开源库作为依赖项.例如:

import "github.com/RichardKnop/somelibrary"
Run Code Online (Sandbox Code Playgroud)

这将尝试根据您的Go版本查找分支,如果我理解正确,则默认为master.

因此无法导入依赖项的特定版本,例如:

import "github.com/RichardKnop/somelibrary#v1.4.8"
Run Code Online (Sandbox Code Playgroud)

在Go中管理依赖关系的最佳实践是什么?

我可以看到两种方法.

I.版本模块

是否为具有重大变化的主要版本创建新模块?

例如,我的Go库可以定义模块v1和v2,那么你可以这样做:

import "github.com/RichardKnop/somelibrary/v1"
Run Code Online (Sandbox Code Playgroud)

要么:

import "github.com/RichardKnop/somelibrary/v2"
Run Code Online (Sandbox Code Playgroud)

根据您的需要.对v1或v2所做的任何更改都不需要破坏任何API或工作功能.

II.分叉

这将使您完全控制Go代码所需的外部依赖项版本.

例如,您可以将github.com/RichardKnop/somelibrary分叉到您自己的GitHub帐户中,然后在您的代码中执行以下操作:

import "github.com/ForkingUser/somelibrary"
Run Code Online (Sandbox Code Playgroud)

然后你必须分叉所有外部依赖,这似乎有点矫枉过正.但是,它可以让您完全控制版本.您可以将叉子保留在您知道正在使用代码的版本中,并且只有在检查新版本的依赖项不会破坏任何内容后才能更新分叉.

思考?

go

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

jQuery ajax()vs get()/ post()

假设我想执行PHP脚本.哪种方式更好?

这个:

$.ajax({
    type: "GET",
    url: "php-script.php",
    dataType: "script"
});
Run Code Online (Sandbox Code Playgroud)

或这个:

$.get("php-script.php", function(data) { });
Run Code Online (Sandbox Code Playgroud)

javascript jquery

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

如何将RGB图像转换为灰度但保留一种颜色?

我正在尝试创建一个类似于罪恶之城或其他电影的效果,除了图像中的所有颜色之外,它们都会删除所有颜色.

我有一个RGB图像,我想转换为灰度,但我想保持一种颜色.

这是我的照片:

替代文字

我想保持红色.其余的应该是灰度的.

这是我的代码输出到目前为止(你可以看到区域是正确的,我不知道为什么它们是白色而不是红色):

替代文字

到目前为止,这是我的代码:

filename = 'roses.jpg';

[cdata,map] = imread( filename );
% convert to RGB if it is indexed image
if ~isempty( map ) 
   cdata = idx2rgb( cdata, map ); 
end

%imtool('roses.jpg');

imWidth = 685;
imHeight = 428;

% RGB ranges of a color we want to keep
redRange = [140 255];
greenRange = [0 40];
blueRange = [0 40];

% RGB values we don't want to convert to grayscale
redToKeep = zeros(imHeight, imWidth);
greenToKeep …
Run Code Online (Sandbox Code Playgroud)

rgb matlab colors image-processing grayscale

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

如何检查命令行中的参数是否已设置?

我可以像这样调用我的脚本:

python D:\myscript.py 60
Run Code Online (Sandbox Code Playgroud)

在剧本中我可以做到:

arg = sys.argv[1]
foo(arg)
Run Code Online (Sandbox Code Playgroud)

但是我如何测试参数是否已在命令行调用中输入?我需要做这样的事情:

if isset(sys.argv[1]):
    foo(sys.argv[1])
else:
    print "You must set argument!!!"
Run Code Online (Sandbox Code Playgroud)

python

35
推荐指数
5
解决办法
6万
查看次数

如何使用zlib压缩缓冲区?

zlib网站上有一个用法示例:http://www.zlib.net/zlib_how.html

但是在示例中,它们正在压缩文件.我想压缩存储在内存缓冲区中的二进制数据.我也不想将压缩缓冲区保存到磁盘.

基本上这是我的缓冲区:

fIplImageHeader->imageData = (char*)imageIn->getFrame();
Run Code Online (Sandbox Code Playgroud)

如何用zlib压缩它?

我会很感激如何做到这一点的代码示例.

c++ zlib

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

如何在点击时选中/取消选中单选按钮?

我希望能够通过单击取消选中一个单选按钮.

因此,如果未选中单选按钮,我想检查它,如果选中它,我想取消选中它.

这不起作用:

$('input[type=radio]:checked').click(function(){
    $(this).attr('checked', false);
});
Run Code Online (Sandbox Code Playgroud)

我现在无法检查单选按钮.

javascript jquery

34
推荐指数
4
解决办法
6万
查看次数

如何在当前日期添加20分钟?

可能重复:
如何向javascript Date对象添加30分钟?

我可以得到这样的当前日期对象:

var currentDate = new Date();
Run Code Online (Sandbox Code Playgroud)

我怎么能加20分钟呢?

var twentyMinutesLater = ?;
Run Code Online (Sandbox Code Playgroud)

javascript datetime

33
推荐指数
5
解决办法
11万
查看次数

$(window).unload在离开网页之前等待AJAX​​调用完成

基本上,一旦用户在我的应用程序中留下网页,我需要使用AJAX调用PHP脚本,这将在网页上花费一些时间到数据库,然后离开页面.

等待AJAX​​请求完成非常重要,因为用户无法访问我的应用程序中的网页,除非他们在前一页上花了一定时间(比方说两分钟).

这是我的jquery代码:

$(document).ready(function() {

    var teid = TEID;
    var startTime = new Date().getTime();

    $(window).unload(function() {
        var timeSpentMilliseconds = new Date().getTime() - startTime;
        var t = timeSpentMilliseconds / 1000 / 60;

        $.ajax({
            type: 'POST',
            url: '/clientarea/utils/record-time',
            data: 'teid=' + teid + '&t=' + t
        });
    });

});
Run Code Online (Sandbox Code Playgroud)

我应该如何更改它以便在离开网页之前等待AJAX​​请求结束?

编辑:

或者更好(更容易)让AJAX请求每分钟重复一次.那可能吗?

javascript ajax jquery

32
推荐指数
3
解决办法
4万
查看次数

如何将全局安装的包导入virtualenv文件夹

所以我有一个名为venv的virtualenv文件夹用于我的python项目.

我可以跑:

venv/bin/pip install -r requirements.txt
Run Code Online (Sandbox Code Playgroud)

除了M2Crypto之外,还安装了项目所需的所有要求.安装它的唯一方法是通过apt-get:

apt-get install python-m2crypto
Run Code Online (Sandbox Code Playgroud)

我怎样才能通过apt将这个软件包添加到venv文件夹中?

python ubuntu virtualenv

32
推荐指数
4
解决办法
3万
查看次数

如何在PHP中验证域名?

是否可以不使用正则表达式?

例如,我想检查一个字符串是否是一个有效的域:

domain-name
abcd
example
Run Code Online (Sandbox Code Playgroud)

是有效的域名.这些当然是无效的:

domaia@name
ab$%cd
Run Code Online (Sandbox Code Playgroud)

等等.所以基本上它应该以字母数字字符开头,然后可能会有更多的alnum字符加上连字符.它也必须以alnum角色结束.

如果不可能,你能建议我采用正则表达式吗?

编辑:

为什么这不起作用?我错误地使用了preg_match吗?

$domain = '@djkal';
$regexp = '/^[a-zA-Z0-9][a-zA-Z0-9\-\_]+[a-zA-Z0-9]$/';
if (false === preg_match($regexp, $domain)) {
    throw new Exception('Domain invalid');
}
Run Code Online (Sandbox Code Playgroud)

php regex domain-name

31
推荐指数
8
解决办法
9万
查看次数