小编cYr*_*rus的帖子

Git在日志中显示所有分支(但不是stashes)

我有一个Git别名扩展为:

git log --graph --oneline --all --decorate
Run Code Online (Sandbox Code Playgroud)

根据man git log有几个可疑的选择:--not--branches; 但我不能让它正常工作.

我应该如何编辑以隐藏藏匿处?


仅供参考:根据已接受的问题评论,我的.gitconfig别名现在看起来像这样:

[alias]
    l = log --branches --remotes --tags --graph --oneline --decorate --notes HEAD
Run Code Online (Sandbox Code Playgroud)

git git-stash git-log

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

自动化从谷歌浏览器生成HAR文件

基本上我需要的是一种自动化以下操作结果的方法:

  1. 打开一个新标签;

  2. 在开发人员工具中打开"网络"选项卡;

  3. 加载URL;

  4. 选择"全部保存为HAR".

通常,建议的解决方案涉及使用PhantomJS,browsermob-proxypcap2har ; 那些不适合我的情况,因为我需要使用SPDY流量.

我试图深入研究谷歌Chrome扩展API,事实上我设法自动完成了一些任务,但对于生成HAR文件的问题仍然没有运气.现在这种方法特别有前景,但我仍然无法弄清楚如何使用它.

换句话说,我需要像这个实验在谷歌的家伙.请注意以下事项:

我们使用Chrome的远程调试界面与自定义客户端启动手机上的浏览器,清除其缓存和其他状态,启动网页加载,并接收Chrome开发人员工具消息以确定页面加载时间和其他性能指标.

有任何想法吗?


对于好奇,我最终得到了一个N​​ode.js模块,可以自动进行这种测试:chrome-har-capturer.这也使我有机会深入了解远程调试协议并为通用Chrome自动化编写更低级别的Node.js接口:chrome-remote-interface.

automation google-chrome spdy har

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

CSS最小化设置失败

看一下我写的官方网站上的快速入门:

less.html

<!DOCTYPE html>
<html>
  <head>
    <link rel="stylesheet/less" type="text/css" href="style.less" />
    <script src="less-1.1.3.min.js" type="text/javascript"></script>
  </head>
  <body>
    <h1>foo</h1>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

style.less

@color: red;

h1 {
  color: @color;
}
Run Code Online (Sandbox Code Playgroud)

在本地,我得到的是(来自谷歌Chrome控制台):

XMLHttpRequest cannot load file:///home/cyrus/test/style.less. Cross origin requests are only supported for HTTP.
Uncaught Error: NETWORK_ERR: XMLHttpRequest Exception 101
    r
    o
    n
    d.refresh
    (anonymous function)
    (anonymous function)

解决方法:

这个答案显示了克服这个问题的方法:

$ google-chrome -allow-file-access-from-files
Run Code Online (Sandbox Code Playgroud)

html javascript css google-chrome less

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

预期"警告:未使用的变量"但在C++中没有生成任何内容

测试代码:

struct X {
    X (int x) {}
};

int main() {
    X x1(0);     // nothing!
    X x2 = 0;    // warning: unused variable
    X x3 = X(0); // warning: unused variable
}
Run Code Online (Sandbox Code Playgroud)

为什么没有生成警告x1

笔记:

  • 我正在编译-Wall选项.

  • GCC和Clang都产生相同的输出.

  • 这3行生成相同的汇编指令(asm("nop")为清楚起见放置一些):

    nop                      
    lea    -0x8(%rbp),%rdi   
    mov    $0x0,%esi         
    callq  400600 <X::X(int)>
    nop                      
    lea    -0x10(%rbp),%rdi  
    mov    $0x0,%esi         
    callq  400600 <X::X(int)>
    nop                      
    lea    -0x18(%rbp),%rdi  
    mov    $0x0,%esi         
    callq  400600 <X::X(int)>
    nop
    
    Run Code Online (Sandbox Code Playgroud)
  • 原始类型(例如,typedef int X)不会发生这种情况.

  • 如果原因涉及构造函数中可能存在副作用的事实,则问题变为:为什么我会得到另外两个警告?


编辑:

  • 这不是IMO 这个问题的重复,因为在这种情况下构造函数 …

c++ compiler-warnings

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

了解Linux perf报告输出

虽然我可以直观地得到大部分结果,但我很难完全理解perf report命令的输出,特别是对于调用图有什么关系,所以我写了一个愚蠢的测试,一劳永逸地解决了我的这个问题.

愚蠢的考验

我编写了以下内容:

gcc -Wall -pedantic -lm perf-test.c -o perf-test
Run Code Online (Sandbox Code Playgroud)

没有积极的优化来避免内联等.

#include <math.h>

#define N 10000000UL

#define USELESSNESS(n)                          \
    do {                                        \
        unsigned long i;                        \
        double x = 42;                          \
        for (i = 0; i < (n); i++) x = sin(x);   \
    } while (0)

void baz()
{
    USELESSNESS(N);
}

void bar()
{
    USELESSNESS(2 * N);
    baz();
}

void foo()
{
    USELESSNESS(3 * N);
    bar();
    baz();
}

int main()
{
    foo();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

平面剖析

perf …
Run Code Online (Sandbox Code Playgroud)

c linux perf

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

如何将SIMD int向量转换为在GCC中浮动?

我正在为一个项目使用GCC SIMD向量扩展,一切都很好但是转换,它们只是重置向量的所有组件.

手动状态:

可以从一种向量类型转换为另一种向量类型,前提是它们具有相同的大小(实际上,您也可以将向量转换为相同大小的其他数据类型).

这是一个简单的例子:

#include <stdio.h>

typedef int int4 __attribute__ (( vector_size( sizeof( int ) * 4 ) ));
typedef float float4 __attribute__ (( vector_size( sizeof( float ) * 4 ) ));

int main()
{
    int4 i = { 1 , 2 , 3 , 4 };
    float4 f = { 0.1 , 0.2 , 0.3 , 0.4 };

    printf( "%i %i %i %i\n" , i[0] , i[1] , i[2] , i[3] );
    printf( "%f %f %f …
Run Code Online (Sandbox Code Playgroud)

c gcc simd vectorization

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

与Jetty SPDY"Hello服务器"

我正在尝试使用Jetty在SPDY服务器上设置最小的HTTP ,以进行测试.我正在研究这段代码:

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.eclipse.jetty.server.Connector;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.spdy.http.HTTPSPDYServerConnector;
import org.eclipse.jetty.util.ssl.SslContextFactory;

import org.eclipse.jetty.server.Request;
import org.eclipse.jetty.server.handler.AbstractHandler;

public class MySPDYHelloServer {
    public static void main(String[] args) throws Exception {
        Server server = new Server();

        SslContextFactory sslFactory = new SslContextFactory();
        sslFactory.setKeyStorePath("dummy_keystore.jks");
        sslFactory.setKeyStorePassword("password");
        sslFactory.setProtocol("TLSv1");

        Connector connector = new HTTPSPDYServerConnector(sslFactory);
        connector.setPort(8443);
        server.addConnector(connector);

        server.setHandler( new AbstractHandler(){
            public void handle(String target, Request baseRequest,
                    HttpServletRequest request, HttpServletResponse response)
                    throws IOException, ServletException {
                response.setContentType("text/html;charset=utf-8");
                response.setStatus(HttpServletResponse.SC_OK);
                baseRequest.setHandled(true);
                response.getWriter().println("<h1>Hello World</h1>");
            }
        } …
Run Code Online (Sandbox Code Playgroud)

java jetty spdy

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

浏览器退出时不会退出PHP脚本

如果客户端关闭浏览器(因此连接到服务器),为什么这个虚拟脚本会继续运行事件?

while ( true )
{
    sleep( 1 );
    file_put_contents( '/tmp/foo' , "I'm alive ".getmypid()."\n" , FILE_APPEND );
}

根据这个,我意外.另外这个例子似乎并没有工作.

而使用非零参数的set_time_limit什么都不做.

我想澄清一下.

php termination

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

使用CMake add_custom_command为另一个目标生成源

我尝试了这个虚拟的例子:

的CMakeLists.txt

cmake_minimum_required( VERSION 2.8 )
project( testcmake )

add_custom_command(
  OUTPUT testcmake.h
  COMMAND xxd -i testcmake.txt testcmake.h
  DEPENDS testcmake.txt
)

add_executable( testcmake testcmake.c testcmake.h )
Run Code Online (Sandbox Code Playgroud)

testcmake.c

#include <stdio.h>
#include "testcmake.h"

int main()
{
    int i;

    for ( i = 0 ; i < testcmake_txt_len ; i++ )
    {
        fputc( testcmake_txt[ i ] , stdout );
    }
}
Run Code Online (Sandbox Code Playgroud)

testcmake.txt

foo
bar
baz
Run Code Online (Sandbox Code Playgroud)

问题

它失败了:

[...]
xxd: testcmake.txt: No such file or directory
[...]
Run Code Online (Sandbox Code Playgroud)

添加WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}使一切正常但我不希望我的自定义命令的输出出现在我的源目录中,我希望所有中间文件保留在CMake构建目录中,就像任何非自定义规则一样.

cmake

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

PHP解包的意外行为()

测试

$x = sprintf( "foo\x00bar\x00baz" );
$y = unpack( 'afoo/abar/abaz' , $x );
print_r( $y );
Run Code Online (Sandbox Code Playgroud)
$x = sprintf( "foo\x00bar\x00baz" );
$y = unpack( 'a*foo/a*bar/a*baz' , $x );
print_r( $y );
Run Code Online (Sandbox Code Playgroud)

结果

Array
(
    [foo] => f
    [bar] => o
    [baz] => o
)
Array
(
    [foo] => foobarbaz
    [bar] => 
    [baz] => 
)

请注意,NULL字节始终存在,您可以使用它进行检查hexdump.

预期结果

Array
(
    [foo] => foo
    [bar] => bar
    [baz] => baz
)

笔记

我知道我可以explode用来达到类似的效果.我不是要求替代方案,我只是想了解a格式字符背后的逻辑(正如文档所说的那样"NUL-padded string").

"NULL"值在哪里参与了所有这些?

php unpack

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