问题列表 - 第27414页

node.js中无法捕获的错误

所以我正在尝试编写一个简单的TCP套接字服务器,向所有连接的客户端广播信息.因此,当用户连接时,它们会被添加到客户端列表中,当流发出关闭事件时,它们将从客户端列表中删除.

这很有效,除了有时我在用户断开连接时发送消息.

我已经试过包装stream.write()在一个try/catch块,但没有运气.似乎错误是无法捕获的.

error-handling tcp node.js

11
推荐指数
2
解决办法
4961
查看次数

使用电话键盘生成10位数字

给出如下所示的电话键盘:

1 2 3
4 5 6
7 8 9
  0
Run Code Online (Sandbox Code Playgroud)

从1开始可以形成多少个不同的10位数字?约束是从1位数到下一位数的运动类似于国际象棋游戏中骑士的运动.

例如.如果我们在1那么下一个数字可以是6或8如果我们在6那么下一个数字可以是1,7或0.

允许重复数字 - 1616161616是有效数字.

有多项式时间算法可以解决这个问题吗?问题要求我们只计算10位数字,而不一定列出数字.

编辑:我尝试将其建模为图形,每个数字都有2或3位数作为其邻居.然后我使用DFS导航到10个节点的深度,然后在每次达到10的深度时增加数字的数量.这显然不是多项式时间.假设每个数字只有2个邻居,则需要至少2 ^ 10次迭代.

这里的变量是位数.我采取了例如.10位数字.它也可以是n位数.

algorithm dynamic-programming keypad

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

如何在Django ModelForm中订购字段?

我有'订单'型号:

class Order(models.Model):
     date_time=models.DateTimeField()
     # other stuff
Run Code Online (Sandbox Code Playgroud)

我正在使用Django ModelForm类来呈现表单,但我想分别显示日期和时间小部件.我想出了这个:

class Form(forms.ModelForm): 
    class Meta:
        model = Order
        exclude = ('date_time',)
        date = forms.DateField()
        time = forms.TimeField()
Run Code Online (Sandbox Code Playgroud)

问题是我想把这些字段放在"其他东西"之间

python sorting django-forms

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

Scala解析器组合器:如何解析"if(x)",如果x可以包含")"

我试图让这个工作:

def emptyCond: Parser[Cond] = ("if" ~ "(") ~> regularStr <~ ")" ^^ { case s => Cond("",Nil,Nil) }
Run Code Online (Sandbox Code Playgroud)

其中regularStr被定义为接受许多东西,包括")".当然,我希望这是一个可接受的输入:if(foo()).但对于任何if(x),它将")"作为regularStr的一部分,因此这个解析器永远不会成功.

我错过了什么?

编辑:

regularStr不是正则表达式.它定义如下:

  def regularStr = rep(ident | numericLit | decimalLit | stringLit | stmtSymbol) ^^ { case s => s.mkString(" ") }
Run Code Online (Sandbox Code Playgroud)

符号是:

  val stmtSymbol = "*" | "&" | "." | "::" | "(" | ")" | "*" | ">=" | "<=" | "=" | 
               "<" | ">" | …
Run Code Online (Sandbox Code Playgroud)

scala parser-combinators

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

用于将具有非null值的多个属性收集到集合中的简明C#代码?

变化的一个相当基本的问题.鉴于此类:

public class X
{
    public T A;
    public T B;
    public T C;
    ...

    // (other fields, properties, and methods are not of interest here)
}
Run Code Online (Sandbox Code Playgroud)

我要寻找一个简洁的方式来编码,将返回所有的方法A,B,C,...这不是一个枚举集合空.(假设将这些字段声明为数组不是一种选择.)

public IEnumerable<T> GetAllNonNullABCs(this X x)
{
    // ?
}
Run Code Online (Sandbox Code Playgroud)

这种方法的明显实现是:

public IEnumerable<T> GetAllNonNullABCs(this X x)
{
    var resultSet = new List<T>();

    if (x.A != null) resultSet.Add(x.A);
    if (x.B != null) resultSet.Add(x.B);
    if (x.C != null) resultSet.Add(x.C);
    ...

    return resultSet;
}
Run Code Online (Sandbox Code Playgroud)

特别困扰我的是代码看起来冗长而重复,而且我List事先并不知道初始容量.

我希望有一种更聪明的方式,可能涉及 …

c# collections nullable properties

2
推荐指数
1
解决办法
315
查看次数

使用测试驱动开发实现堆栈

我正在用TDD做我的第一步.问题是(可能每个人都以TDD开头),当我开始在我的项目中工作时,我从来不知道要做什么样的单元测试.

让我们假设我想用以下方法编写一个Stack类(我选择它,因为它是一个简单的例子):

Stack<T>
 - Push(element : T)
 - Pop() : T
 - Peek() : T
 - Count : int
 - IsEmpty : boolean
Run Code Online (Sandbox Code Playgroud)

你怎么会这样?我从来没有理解这个想法是为Stack类的每个方法测试一些极端情况,还是从类中做一些"用例"开始,比如添加10个元素并删除它们.这个想法是什么?要使使用Stack的代码尽可能接近我在实际代码中使用的代码?或者只是简单地"添加一个元素"单元测试,我测试IsEmpty和Count是否通过添加该元素进行了测试?

我该如何开始呢?

编辑

这是我粗略测试的实现:

    [TestMethod]
    public void PushTests() {
        StackZ<string> stackz = new StackZ<string>();

        for (int i = 0; i < 5; ++i) {
            int oldSize = stackz.Size;
            stackz.Push(i.ToString());
            int newSize = stackz.Size;
            Assert.AreEqual(oldSize + 1, newSize);
            Assert.IsFalse(stackz.IsEmpty);
        }
    }

    [TestMethod, ExpectedException(typeof(InvalidOperationException))]
    public void PeekTestsWhenEmpty() {
        StackZ<double> stackz = new StackZ<double>();
        stackz.Peek();
    }

    [TestMethod]
    public void PeekTestsWhenNotEmpty() …
Run Code Online (Sandbox Code Playgroud)

c# java tdd unit-testing

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

DB记录是否比我的PHP Web应用程序的文件记录更安全?

我想将我的Web应用程序中的错误/信息和警告消息记录到日志中.我最初想将所有这些记录到文本文件中.

但是,我的PHP Web应用程序需要对日志文件的写入权限,如果需要我的Web应用程序当前没有的日志文件轮换,则包含此日志文件的文件夹可能还需要写访问权限.另一种方法是让我将消息记录到MySQL数据库,因为我的Web应用程序已经在使用MySQL数据库来满足其所有数据存储需求.

但是,这让我觉得使用MySQL选项要比文件选项好得多,因为我已经有一个配置文件,其数据库访问信息使用文件系统权限进行保护.如果我现在使用日志文件选项,我需要修改文件和文件夹访问权限,这只会使我的应用程序不那么安全,并且会破坏记录的整个目的.

更新:我在db选项中看到的另一个好处是,不需要使用持久数据库连接重新打开每个网页的数据库连接,这是文件日志记录无法实现的.在文件记录的情况下,我将不得不打开,写入日志文件并关闭每个页面的文件.

它是否正确?我正在使用XAMPP进行开发,并且是LAMP的新手.请告诉我您的日志记录建议.谢谢.

更新:我更倾向于使用log4php将文本文件记录到我的Web服务器上的单独文件夹中,并为我的Apache帐户提供对该文件夹的写访问权限.

php mysql security xampp logging

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

取python中任意数量的列表的交集

假设我有一个完全相同的元素列表列表(int在本例中我将使用s)

[range(100)[::4], range(100)[::3], range(100)[::2], range(100)[::1]]
Run Code Online (Sandbox Code Playgroud)

采用这些列表的交集是一种很好的和/或有效的方法(所以你会获得每个列表中的每个元素)?对于以下示例:

[0, 12, 24, 36, 48, 60, 72, 84, 96]
Run Code Online (Sandbox Code Playgroud)

python algorithm intersection list

4
推荐指数
1
解决办法
935
查看次数

获得最左边的位置

我有一个5位整数,我正在使用.Objective-C中是否有一个本机函数可以让我知道哪个位是最左边的?

即我有01001,它将返回8或位置.

谢谢

binary bit-manipulation objective-c

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

强制memcached写入池中的所有服务器

我已经考虑过如何确保将特定密钥分发给池中的所有memcached服务器.

我当前未经测试的解决方案是创建另一个memcached实例,如下所示:

$cluster[] = array('host' => '192.168.1.1', 'port' => '11211', 'weight' => 50);

$this->tempMemcached = new Memcached;
$this->tempMemcached->addServers($cluster);

foreach ($this->cluster() as $cluster) {    

    $this->tempMemcached->setByKey($cluster, $key, $value, $this->compress, $expireTime);

}

$this->tempMemcache->close();
Run Code Online (Sandbox Code Playgroud)

在这种情况下,当某些密钥需要存储在所有服务器上以确保可靠性时,常识是什么?

php memcached reliability

4
推荐指数
1
解决办法
2735
查看次数