小编Jak*_*ski的帖子

如何通过http启用匿名读取访问(拉取)但经过身份验证的写入访问(推送)到git存储库?

我希望通过"智能" HTTP提供git存储库,只有我可以推送,但任何人(或任何有帐户的人)都可以克隆/获取.

git-http-backend(1)联机帮助页中,可以找到Apache Web服务器的以下示例配置:

确保启用mod_cgi,mod_alias和mod_env,适当设置GIT_PROJECT_ROOT(或DocumentRoot),并为CGI创建ScriptAlias:

SetEnv GIT_PROJECT_ROOT /var/www/git
SetEnv GIT_HTTP_EXPORT_ALL
ScriptAlias /git/ /usr/libexec/git-core/git-http-backend/
Run Code Online (Sandbox Code Playgroud)

要启用匿名读访问但经过身份验证的写访问,需要使用LocationMatch指令进行授权:

<LocationMatch "^/git/.*/git-receive-pack$">
        AuthType Basic
        AuthName "Git Access"
        Require group committers
        #...
</LocationMatch>
Run Code Online (Sandbox Code Playgroud)

不幸的是,这种配置不起作用.我可以毫无问题地获取/克隆存储库,而不需要验证,但推送失败:

$ git push origin master
error: Cannot access URL http://localhost/git/test.git/, return code 22
fatal: git-http-push failed
Run Code Online (Sandbox Code Playgroud)

检查error.logApache Web服务器没有帮助:

[...] Service not enabled: 'receive-pack'
[...] Request not supported: '/var/www/git/test.git/'

access.log告诉我们,git push第一次使用GET方法上/git/test.git/info/refs?service=git-receive-pack基于查询的URL,这是不包括在LocationMatch指令:

[...] "GET /git/test.git/info/refs?service=git-receive-pack HTTP/1.1" 403 304 "-" "git/1.7.10.4"
[...] "GET /git/test.git/info/refs HTTP/1.1" …

apache git version-control

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

如何与量子谐振子波函数进行数值积分?

如何对无限范围内的一维积分进行数值积分(采用什么数值方法,以及使用什么技巧),其中被积函数中的一个或多个函数是1d量子谐振子波函数.其中我想在谐振子基础上计算某些函数的矩阵元素:

Ñ(X)= N ñ ħ Ñ(X)EXP(-x 2 /2)
其中H Ñ(x)是厄米多项式

V m,n =\int _ { - infinity} ^ {infinity} phi m(x)V(x)phi n(x)dx

同样在存在具有不同宽度的量子谐波波函数的情况下.

问题是波函数phi n(x)具有振荡行为,这对于大n是一个问题,并且来自GSL(GNU Scientific Library)的自适应Gauss-Kronrod积分算法花费很长时间来计算,并且具有大的误差.

numerical physics numerical-analysis numerical-methods numerical-integration

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

投影机 - 使逐项(和占用空间)消失

所以我在一张幻灯片上有两个itemize,在它们下面都有一个图形:

\onslide<1>{
    \begin{itemize}
      ...
    \end{itemize}
}

\onslide<2>{
    \begin{itemize}
      ...
    \end{itemize}
}

\includegraphics[width=5cm]{abc.eps}
Run Code Online (Sandbox Code Playgroud)

所以我想要的是第一个itemize在第一张幻灯片上可见,第二个itemize是不可见的而不占用任何空间.类似地,当我转到下一张幻灯片时,我希望第一个逐项列表不可见,并且在显示第二个逐项时不占用任何空格.我希望图形可见,并保持在两张幻灯片上的相同位置.

这可能吗?

latex overlay space beamer

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

"2列+中间的em-width分隔符"的CSS布局

如何使用HTML + CSS获取以下布局:

|                        |x|                          |
|                        |x|                          |
Run Code Online (Sandbox Code Playgroud)

所有三列(两列和分隔符)都应该接触,即它们的背景颜色必须接触而没有任何间隙.

我创建这样的布局的问题是我希望"分隔符"的宽度以em(即基于字体宽度)测量,而主要内容列则适合包含元素的其余宽度(即约50%) .我希望保留此布局,而不会在字体大小上独立地覆盖左侧或右侧内容列(即,如果我增加或减少字体宽度,则应保留布局).

请注意,此布局位于其他容器内,并且可以在页面中重复这些容器.因此,我无法使用任何绝对定位解决方案.

容器也不应使用固定宽度:将其视为具有width: 100%;width: auto;(或未设置宽度)的容器.

如果可以在缺少左列或右列(即空列)的情况下创建布局,则可以获得奖励积分.

css layout

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

通过平分(搜索)修订历史记录和不可测试的提交(修订版)来查找错误

大多数现代版本控制工具都有一个命令来查找通过二进制搜索(二等分)历史记录引入错误的更改.此类命令可能是内置的,也可能是作为扩展或插件提供的.例子包括Git中的git-bisect,Mercurial中的" hg bisect"(早期可用作hbisect扩展)和Bazar的bzr-bisect插件.

即使存在非线性历史(分支点和合并),挑战在于以自动或半自动方式进行.目标通常是在最少的步骤中找到"坏"修订,或者更详细地找到提交以测试哪个,如果可能的话,将提交的图提交到测试(提交的DAG)的一半.我认为,这个问题很好地解决了.

但是不稳定的提交存在问题,例如,如果某些修订代码甚至没有编译,或者如果它编译它不会启动/运行(或找到与您正在搜索的错误无关的错误).这意味着您现在有三种可能的状态,而不是简单地将提交标记为"好"或"坏".

  • - 这个bug不存在
  • - 越野行为
  • 未知(不可测试) - 不知道是否存在错误

某些版本控制系统(SCM)允许您"跳过"此类提交,通常转到父修订版作为下一个要测试的版本.


问题是:

  • 如果您处理了这种情况,意味着您使用了二分法并偶然发现了不可测试的修订,那么您的经验是什么,这些不可测试的提交的分发?它们是单独发生的(单个不可测试的提交),还是它们出现在范围内(修订版本a..b是不可测试的)?您是否发现自己处于提交后必须跳过提交的情况?

  • 是否有一些材料模型(比如列表/线性历史的简单二等分,甚至用于二等分修改的任意DAG)或算法(可能是启发式),它允许优化跳过不可测试的提交.目标是再次在存在不可测试提交(或不相关的错误)的情况下最小化(平均)测试版本的数量.

  • 您是否使用版本控制系统,或某些附加/扩展/插件用于修订控制系统,或者某些实现此类算法的第三方工具,除了允许通过转到邻居修订简单地"跳过"不可测试的提交?这个VCS或工具是什么?它使用什么算法(如果你知道的话)?

希望这会导致更容易(半)自动发现错误...


添加06-06-2009:
当使用Git的高级功能时,有一种情况是你可以有一个完整的untestable提交分支(或者至少很难测试),即你使用" subtree "merge来连接两个历史单独的项目(例如,使用"子树"合并单独开发的一些驱动程序的完整Linux内核).在提出处理不稳定提交的算法时需要考虑这一点:对于非线性历史,可以存在整个不可稳定提交的分支,并且算法必须考虑拓扑(在某种程度上).

algorithm debugging version-control

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

如何在实际负载下重播从日志到配置文件/基准测试Web应用程序的Web服务器流量?

有没有办法让记录器真正的网络流量到Web服务器,例如从Web服务器日志(Apache),并在实际负载下将此流量重放到配置文件Web应用程序(在Perl中),或者在选择之前比较不同实现的速度非此即彼?

如果重要的话,webapp是用Perl编写的,并在普通的CGI,FastCGI,mod_perl(通过ModPerl :: Registry),PSGI(通过Plack :: App :: WrapCGI)下运行.

转向Pro网站管理员


服务器故障的类似问题:

perl performance web-applications stress-testing

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

使用 mpirun 时如何使分析器(valgrind、perf、pprof)拾取/使用带有调试符号的本地版本库?

编辑: 添加了重要说明,它是关于调试 MPI 应用程序的

系统安装的共享库没有调试符号:

$ readelf -S /usr/lib64/libfftw3.so | grep debug
$
Run Code Online (Sandbox Code Playgroud)

因此,我在我的主目录中编译并安装了我自己的版本,并启用了调试(--with-debug CFLAGS=-g):

$ $ readelf -S ~/lib64/libfftw3.so | grep debug
  [26] .debug_aranges    PROGBITS         0000000000000000  001d3902
  [27] .debug_pubnames   PROGBITS         0000000000000000  001d8552
  [28] .debug_info       PROGBITS         0000000000000000  001ddebd
  [29] .debug_abbrev     PROGBITS         0000000000000000  003e221c
  [30] .debug_line       PROGBITS         0000000000000000  00414306
  [31] .debug_str        PROGBITS         0000000000000000  0044aa23
  [32] .debug_loc        PROGBITS         0000000000000000  004514de
  [33] .debug_ranges     PROGBITS         0000000000000000  0046bc82
Run Code Online (Sandbox Code Playgroud)

我已将 LD_LIBRARY_PATH 和 LD_RUN_PATH 设置为~/lib64首先包含,并ldd program确认应使用本地版本的库:

$ ldd a.out | grep …
Run Code Online (Sandbox Code Playgroud)

linux profiling shared-libraries mpi debug-symbols

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

Fortran 2003绑定到C中的库:如何翻译枚举和#defines?

我正在为C库编写Fortran绑定.

使用枚举翻译定义的常量(在库头中)的最佳实践是什么,例如

typedef enum cufftType_t {
  CUFFT_R2C = 0x2a,     // Real to Complex (interleaved)
  CUFFT_C2R = 0x2c,     // Complex (interleaved) to Real
  CUFFT_C2C = 0x29,     // Complex to Complex, interleaved
  CUFFT_D2Z = 0x6a,     // Double to Double-Complex
  CUFFT_Z2D = 0x6c,     // Double-Complex to Double
  CUFFT_Z2Z = 0x69      // Double-Complex to Double-Complex
} cufftType;
Run Code Online (Sandbox Code Playgroud)

以及如何使用翻译常数#define,例如

#define CUFFT_FORWARD -1 // Forward FFT
#define CUFFT_INVERSE  1 // Inverse FFT
Run Code Online (Sandbox Code Playgroud)

或这些的组合

typedef enum cufftCompatibility_t {
    CUFFT_COMPATIBILITY_NATIVE          = 0x00, …
Run Code Online (Sandbox Code Playgroud)

c fortran fortran90

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

jsfiddle - Chrome 中的网络钓鱼警告

按“运行”后我收到此消息:

即将报告钓鱼网站!Google Chrome 已阻止访问 fiddle.jshell.net。该网站已被报告为网络钓鱼网站。网络钓鱼网站旨在通过伪装成您可能信任的其他网站来诱骗您泄露您的登录名、密码或其他敏感信息。了解更多 返回 高级

这是一个屏幕截图: “即将报告的网络钓鱼网站”Google Chrome 屏幕截图

google-chrome blowfish jsfiddle

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

如何使用ModPerl :: Registry禁用旧版CGI脚本中的默认mod_perl错误页面

我在Perl中有一个CGI脚本,它自己生成HTTP错误页面.我使用以下Apache2配置通过ModPerl :: Registry在mod_perl下运行它:

Alias /perl "/var/www/perl"
<Directory "/var/www/perl">
    SetHandler perl-script
    PerlResponseHandler ModPerl::Registry
    PerlOptions +ParseHeaders
    Options Indexes FollowSymlinks +ExecCGI
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>
Run Code Online (Sandbox Code Playgroud)

一切都很好,除了一个小问题:当标题中打印的HTTP状态不同于200(例如404)时,Apache会将默认的HTML错误文档附加到我自己生成的响应中.

以下面的简单CGI脚本为例:

#!/usr/bin/perl

use strict;
use warnings;

use CGI qw(:standard :escapeHTML -nosticky);
use CGI::Carp qw(fatalsToBrowser);

use Apache2::Const qw(:http :common);

our $cgi = CGI->new();

print $cgi->header(-type=>'text/html', -charset => 'utf-8',
                   -status=> '404 Not Found');
our $mod_perl_version = $ENV{'MOD_PERL'} ? " $ENV{'MOD_PERL'}" : '';
print <<"EOF";
<html>
<head>
<title>die_error_minimal$mod_perl_version 
</head>
<body>
404 error
</body>
</html> …
Run Code Online (Sandbox Code Playgroud)

perl cgi mod-perl mod-perl2 mod-perl-registry

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