所以我正在尝试编写一个简单的TCP套接字服务器,向所有连接的客户端广播信息.因此,当用户连接时,它们会被添加到客户端列表中,当流发出关闭事件时,它们将从客户端列表中删除.
这很有效,除了有时我在用户断开连接时发送消息.
我已经试过包装stream.write()在一个try/catch块,但没有运气.似乎错误是无法捕获的.
给出如下所示的电话键盘:
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位数.
我有'订单'型号:
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)
问题是我想把这些字段放在"其他东西"之间
我试图让这个工作:
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) 变化的一个相当基本的问题.鉴于此类:
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事先并不知道初始容量.
我希望有一种更聪明的方式,可能涉及 …
我正在用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) 我想将我的Web应用程序中的错误/信息和警告消息记录到日志中.我最初想将所有这些记录到文本文件中.
但是,我的PHP Web应用程序需要对日志文件的写入权限,如果需要我的Web应用程序当前没有的日志文件轮换,则包含此日志文件的文件夹可能还需要写访问权限.另一种方法是让我将消息记录到MySQL数据库,因为我的Web应用程序已经在使用MySQL数据库来满足其所有数据存储需求.
但是,这让我觉得使用MySQL选项要比文件选项好得多,因为我已经有一个配置文件,其数据库访问信息使用文件系统权限进行保护.如果我现在使用日志文件选项,我需要修改文件和文件夹访问权限,这只会使我的应用程序不那么安全,并且会破坏记录的整个目的.
更新:我在db选项中看到的另一个好处是,不需要使用持久数据库连接重新打开每个网页的数据库连接,这是文件日志记录无法实现的.在文件记录的情况下,我将不得不打开,写入日志文件并关闭每个页面的文件.
它是否正确?我正在使用XAMPP进行开发,并且是LAMP的新手.请告诉我您的日志记录建议.谢谢.
更新:我更倾向于使用log4php将文本文件记录到我的Web服务器上的单独文件夹中,并为我的Apache帐户提供对该文件夹的写访问权限.
假设我有一个完全相同的元素列表列表(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) 我有一个5位整数,我正在使用.Objective-C中是否有一个本机函数可以让我知道哪个位是最左边的?
即我有01001,它将返回8或位置.
谢谢
我已经考虑过如何确保将特定密钥分发给池中的所有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)
在这种情况下,当某些密钥需要存储在所有服务器上以确保可靠性时,常识是什么?
algorithm ×2
c# ×2
php ×2
python ×2
binary ×1
collections ×1
django-forms ×1
intersection ×1
java ×1
keypad ×1
list ×1
logging ×1
memcached ×1
mysql ×1
node.js ×1
nullable ×1
objective-c ×1
properties ×1
reliability ×1
scala ×1
security ×1
sorting ×1
tcp ×1
tdd ×1
unit-testing ×1
xampp ×1