小编Jon*_*art的帖子

连续分配看似不起作用

我正在研究FIR滤波器,特别是延迟线.x_delayed被初始化为全零.

type slv32_array is array(natural range <>) of std_logic_vector(31 downto 0);
...
signal x_delayed : slv32_array(0 to NTAPS-1) := (others => (others => '0'));
Run Code Online (Sandbox Code Playgroud)

这不起作用:

x_delayed(0) <= x;             -- Continuous assignment

DELAYS : process(samp_clk)
begin
    if rising_edge(samp_clk) then
        for i in 1 to NTAPS-1 loop
            x_delayed(i) <= x_delayed(i-1);
        end loop;
    end if; -- rising_edge(samp_clk)
end process;
Run Code Online (Sandbox Code Playgroud)

模拟


但这样做:

DELAYS : process(samp_clk)
begin
    if rising_edge(samp_clk) then
        x_delayed(0) <= x;           -- Registering input
        for i in 1 to NTAPS-1 loop
            x_delayed(i) …
Run Code Online (Sandbox Code Playgroud)

vhdl

9
推荐指数
1
解决办法
2010
查看次数

检测器何时关闭命名管道(FIFO)

有没有办法让作者知道读者已经关闭了命名管道(或退出)的末尾而没有写入它?

我需要知道这一点,因为我写入管道的初始数据是不同的; 读者期望在其余数据到来之前有一个初始标题.

目前,当我write()失败时,我会发现这一点EPIPE.然后我设置了一个标志,上面写着"下次发送标题".但是,在我写任何东西之前,读者可以关闭并重新打开管道.在这种情况下,我从来没有意识到他做了什么,也没有发送他期待的标题.

是否存在任何类型的异步事件类型可能对此有帮助?我没有看到任何信号被发送.

请注意,我没有包含任何语言标记,因为这个问题应该被视为与语言无关.我的代码是Python,但答案应该适用于C或任何其他具有系统调用级绑定的语言.

linux named-pipes

9
推荐指数
1
解决办法
1657
查看次数

卷曲:传输关闭,剩余未完成的读取数据

我遇到了大卷毛问题.

我明白了

  • nread <= 0,服务器关闭连接,bailing
  • 传输关闭,剩余未完成的读数据

并且内容部分传递

    GET /stats/?stats_breakdown=track__track&campaign=&search_criteria=2&period=0&date_month=11&date_day=03&date_year=2015&start_date_month=11&start_date_day=03&start_date_year=2015&end_date_month=12&end_date_day=31&end_date_year=2014 HTTP/1.1
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13
Host: domain.com
Accept: */*
Cookie: sessionid=xxg4gglsm7o3b224wihqz8od19wl31h1; csrftoken=JBpLxNtgAVvDEw2wNqvBnRmzDJIjxL6C
Cache-Control: no-cache
Connection: Keep-Alive
Keep-Alive: 600
Accept-Language: en-us
X-CSRFToken: SeN9bHryRK8FWLTLJIs5c6u9AZ47a8pR
Content-Type: application/x-www-form-urlencoded
Origin: https://domain.com
Referer: https://domain.com

* additional stuff not fine transfer.c:1037: 0 0
* additional stuff not fine transfer.c:1037: 0 0
* additional stuff not fine transfer.c:1037: 0 0
* additional stuff not fine transfer.c:1037: 0 0
* additional stuff not …
Run Code Online (Sandbox Code Playgroud)

php curl

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

Python控制台默认十六进制显示

我在Python控制台中做了很多工作,其中大部分是指地址,我更喜欢用十六进制来看.

因此a = 0xBADF00D,当我只是进入Python> a控制台查看其值时,我更喜欢用python来0xBADF00D代替而不是195948557.

我知道我可以输入'0x%X' % a以十六进制看到它,但我正在寻找某种python控制台选项让它自动执行此操作.有什么事情存在吗?谢谢!

python

8
推荐指数
2
解决办法
4266
查看次数

切片索引限制为0x7FFFFFFF

我正在使用Python(2.7.4)中的切片:

class Foo():
    def __getitem__(self, key):
        # Single value
        if isinstance(key, (int,long)):
            return key

        # Slice
        if isinstance(key, slice):
            print 'key.start = 0x{0:X}   key.stop = 0x{1:X}'.format(key.start, key.stop)
            length = key.stop - key.start
            return str(length)
Run Code Online (Sandbox Code Playgroud)

一切似乎按预期工作:

>>> f = Foo()
>>>
>>> f[42]
42
>>>
>>> f[20:30]
key.start = 0x14   key.stop = 0x1E
'10'
Run Code Online (Sandbox Code Playgroud)

除了切片索引似乎限制为0x7FFFFFFF:

>>> f[0xFEDCBA98 : 0xFFFFFFFF]
key.start = 0x7FFFFFFF   key.stop = 0x7FFFFFFF
'0'
>>> f[0x80000000:0x90000000]
key.start = 0x7FFFFFFF   key.stop = 0x7FFFFFFF
'0'
Run Code Online (Sandbox Code Playgroud)

为什么切片索引不会long与常规int值进行相同的整数提升?这有什么解决方法吗?

python python-2.7 python-internals

8
推荐指数
2
解决办法
337
查看次数

如何使用动态强制转换检测到指针的删除

如图所示在这里,人们可以使用dynamic_cast来检测已删除的指针:

#include <iostream>

using namespace std;

class A
{
public:
   A() {}
   virtual ~A() {}
};

class B : public A
{
public:
   B() {}
};

int main()
{
   B* pB =  new B;

   cout << "dynamic_cast<B*>( pB) ";
   cout << ( dynamic_cast<B*>(pB) ? "worked" : "failed") << endl;  

   cout << "dynamic_cast<B*>( (A*)pB) ";
   cout << ( dynamic_cast<B*>( (A*)pB) ? "worked" : "failed") << endl;  

   delete pB; 

   cout << "dynamic_cast<B*>( pB) ";
   cout << ( dynamic_cast<B*>(pB) …
Run Code Online (Sandbox Code Playgroud)

c++ dynamic-cast vtable

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

Gitlab Ldap身份验证设置

当前环境:

  • Gitlab服务器: Centos 6.5
  • Active Directory: Windows Server 2008 R2

任何人都可以在Gitlab 7.1.1中检查Ldap身份验证的这些虚构设置吗?

gitlab_rails['ldap_enabled'] = true
gitlab_rails['ldap_host'] = 'myserver.dom.com.net'
gitlab_rails['ldap_port'] = 389
gitlab_rails['ldap_uid'] = 'sAMAccountName'
gitlab_rails['ldap_method'] = 'plain' # 'ssl' or 'plain'
gitlab_rails['ldap_bind_dn'] = 'OU=Users,DC=dom,DC=com,DC=net'
gitlab_rails['ldap_password'] = '????'
gitlab_rails['ldap_allow_username_or_email_login'] = true
gitlab_rails['ldap_base'] = 'DC=dom,DC=com,DC=net'
Run Code Online (Sandbox Code Playgroud)

哪个ldap_bind_dn必须设置为Gitlab工作(用户帐户等效)?

为了让Gitlab工作,必须设置哪个ldap_password

我遵循了以下建议:@metaDiego和@heinglandreas.两者都在正确的道路上.所以我在行中修改了我的设置:

gitlab_rails['ldap_bind_dn'] = 'CN=the_allowed_user_for_access_ldap,OU=Users,DC=dom,DC=com,DC=net'
gitlab_rails['ldap_password'] = 'the_password_of_allowed_user'
Run Code Online (Sandbox Code Playgroud)

所述ldap_bind_dn可以根据AD结构和目前的水平,其中所允许的用户位于不同而不同.

我的公司AD不允许匿名Ldap查询.因此添加这些参数是强制性的.

在域管理员中搜索帮助以获取这些参数.

来自Github的gitlabhq的有用文章

如果gitlab_rails['ldap_allow_username_or_email_login'] = true,登录用户可以使用电子邮件格式,也可以只使用域用户.

Gitlab身份验证表单

authentication ldap gitlab

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

如何对整个项目(包括内部包)运行“go vet”?

我想运行go vet我的整个 Go 项目。该项目遵循标准 Go 项目布局,并具有许多“内部”包。

project
|- go.mod
|- main.go
|- internal
|  |- package1
|  |- foo/pack
|  |- bar/pack
|- vendor
   |- github.com
      |- foo
         | bar
Run Code Online (Sandbox Code Playgroud)

如何运行go vet所有代码?理想情况下,这只是我的代码并排除vendor目录。

这是不起作用的:

  • go vet- 仅涵盖顶层main.go

go

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

为什么在64位架构上对齐是16字节?

(gdb) disas foo
Dump of assembler code for function foo:
0x00000000004004a8 <foo+0>: push   %rbp
0x00000000004004a9 <foo+1>: mov    %rsp,%rbp
0x00000000004004ac <foo+4>: mov    0x13c(%rip),%eax        # 0x4005ee <__dso_handle+30>
0x00000000004004b2 <foo+10>:    mov    %eax,-0x10(%rbp)
0x00000000004004b5 <foo+13>:    lea    -0x10(%rbp),%rax
0x00000000004004b9 <foo+17>:    add    $0x18,%rax
0x00000000004004bd <foo+21>:    mov    %rax,%rdx
0x00000000004004c0 <foo+24>:    mov    $0x400498,%eax
0x00000000004004c5 <foo+29>:    mov    %eax,(%rdx)
0x00000000004004c7 <foo+31>:    leaveq 
0x00000000004004c8 <foo+32>:    retq   
(gdb) l foo
8   void foo() {
9       char overme[4] = "WOW";
10      *(int*)(overme+24) = (int)bad;
11  }
Run Code Online (Sandbox Code Playgroud)

为什么不只是8个字节?

c x86-64 alignment

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

使用 Python 编辑 MP4 元数据

我需要在 Linux 上的 python 代码中为文件提供属性(元数据),特别是 Ubuntu。

具体来说,我需要在 MP4 文件上设置作者、标题、专辑等。

python

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