我的应用程序中有一个奇怪的异常,我想在它发生时记录并包含完整的请求字符串,包括参数.
当我尝试
log.warn("Weird request " + request.getRequestURL());
Run Code Online (Sandbox Code Playgroud)
我得到了请求字符串,但没有包含的参数?和&.
例:
/testRequest.do?param1=1¶m2=2
Run Code Online (Sandbox Code Playgroud)
我只看到了
/testRequest.do
Run Code Online (Sandbox Code Playgroud)
我可以在某个地方找到这整串吗?
跟进来自多核用法,线程,线程池的问题.
线程在生命周期内是否从一个核心移动到另一个核心?
当然.想象一下,您在双核系统上运行了三个线程.向我展示一个公平的时间表,不涉及在核心之间定期移动线程.
这是我第一次访问这个网站,所以我没有足够的代表发表评论.我决定只提出一个新问题,引用我想评论的问题.
选择要移动线程的核心的过程是什么?它是否像调度程序有一个需要处理时间的线程列表,当一个完成时它会放入另一个?
另外,我想知道是否存在线程在核心之间移动的语句的引用.还是仅仅被认为是"普通知识"?
谢谢!
我正在尝试编写一些Doxygen注释块,并且我想要包含示例代码片段.当然,我希望这些例子能够实际编译,这样它们就不会变得陈旧.
我的example.cpp(我包含在.h文件中)如下所示:
#include "stdafx.h"
#include "../types_lib/Time_Limiter.h"
#include <vector>
void tl_demo () {
// scarce will be a gate to control some resource that shouldn't get called
// more than 10 times a second
Time_Limiter scarce (10);
// here's a bunch of requests
std::vector<int> req (500);
for (size_t i=0;i<req.size ();i++) {
scarce.tick ();
// once we get here, we know that we haven't ticked
// more than 10 times in the last second.
// do something interesting with req[i]
}
} …
Run Code Online (Sandbox Code Playgroud) 如何返回给定工作日的下一个日期(可以是0-6号或者周日至周六的名字).
例如,如果今天,在2009年10月16日星期五, 我通过了:
我刚刚看到Java的一个巨大的正则表达式让我想到了一般的正则表达式的可维护性.我相信大多数人 - 除了一些坏蛋perl贩子 - 会同意正则表达式难以维持.
我在考虑如何解决这种情况.到目前为止,我最有希望的想法是使用流畅的界面.举个例子,而不是:
Pattern pattern = Pattern.compile("a*|b{2,5}");
Run Code Online (Sandbox Code Playgroud)
一个人可以写这样的东西
import static util.PatternBuilder.*
Pattern pattern = string("a").anyTimes().or().string("b").times(2,5).compile();
Pattern alternative =
or(
string("a").anyTimes(),
string("b").times(2,5)
)
.compile();
Run Code Online (Sandbox Code Playgroud)
在这个非常简短的例子中,创建正则表达式的常用方法对于任何平庸的有才华的开发人员来说仍然是可读的.但是,请考虑那些填充两行或更多行的怪异表达式,每行包含80个字符.当然,(冗长)流畅的界面需要几行而不是只有两行,但我相信它会更具可读性(因此可维护).
现在我的问题:
你知道正则表达式的任何类似方法吗?
你是否同意这种方法比使用简单的字符串更好?
你会如何设计API?
你会在你的项目中使用这样一个整洁的实用程序吗?
你认为这会很有趣吗?;)
编辑: 想象一下,可能存在比简单构造更高级别的方法,我们都没有来自正则表达式,例如
// matches aaaab@example.com - think of it as reusable expressions
Pattern p = string{"a").anyTimes().string("b@").domain().compile();
Run Code Online (Sandbox Code Playgroud)
编辑 - 评论的简短摘要:
RegexBuddy - 花30欧元让你的代码可读(wtf?!这种产品的纯粹存在证明了我的论文是正确的 - 我们今天所知道的正则表达式是坏事(tm))
Martin Fowler的方法(仍然远非完美)
有趣的是,大多数人都认为正则表达式仍然存在 - 虽然它需要工具来阅读它们,聪明的家伙想办法让它们可维护.虽然我不确定流畅的界面是最好的方法,但我确信有些聪明的工程师 - 我们呢?;) - 应该花一些时间让正则表达式成为过去 - 这已经足够让他们和我们在一起已有50年了,你不觉得吗?
开放的BOUNTY
对于正则表达式的新方法,赏金将被授予最佳想法(无需代码).
编辑 - 一个很好的例子:
这是我正在谈论的那种模式 - 对能够翻译它的第一个人的额外荣誉 …
我有一个功能(简而言之):
my $file = IO::File->new("| some_command >> /dev/null 2>&1")
or die "cannot open some_command for writing: $!\n";
...
undef $file;
Run Code Online (Sandbox Code Playgroud)
现在我甚至都没有写任何东西$file
.目前根本没有其他操作$file
.当我运行该程序时,它无法正常退出.我看到句柄已关闭,但我的程序仍在等待关闭进程.捕获strace
:
close(6) = 0
rt_sigaction(SIGHUP, {SIG_IGN}, {SIG_DFL}, 8) = 0
rt_sigaction(SIGINT, {SIG_IGN}, {SIG_DFL}, 8) = 0
rt_sigaction(SIGQUIT, {SIG_IGN}, {SIG_DFL}, 8) = 0
wait4(16861, ^C <unfinished ...>
Run Code Online (Sandbox Code Playgroud)
如果我打开相同的阅读过程,我不会看到这个问题.
要使程序退出,我该怎么办?
编辑:到目前为止的建议是使用Expect库或通过ctrl + d完成输入流.但是我现在不想以任何方式与该程序进行交互.我希望它现在完全没有任何更多的IO继续完成.那可能吗?
我在WPF中用LINQ-TO-SQL建立了一个非常简单的例子.
我可以像这样得到一个对象(pageItem),我可以更改属性,当我调用SubmitChanges()时,它没有给我任何错误,但它没有保存更改.
MainDataContext db = new MainDataContext();
var pageItem = (from p in db.PageItems
where p.Id == 1
select p).SingleOrDefault();
pageItem.Title = "changed";
db.SubmitChanges();
Run Code Online (Sandbox Code Playgroud)
什么可能导致SubmitChanges不提交更改?
这也不起作用,即使db.ExecuteCommand不起作用,奇怪的是当调试F11没有进入SubmitChanges()或ExecuteCommand()时,为什么我不能介入呢?
using (var db = new MainDataContext())
{
var pageItem = (from p in db.PageItems
where p.Id == 1
select p).SingleOrDefault();
pageItem.Title = "changed";
db.SubmitChanges();
db.ExecuteCommand("INSERT INTO PageItems (Title) VALUES ('this is the title')");
if (pageItem != null)
MainContent.Children.Add(new QuickForm(pageItem));
}
Run Code Online (Sandbox Code Playgroud)
我是一家有点小的创业公司.现在我们正在使用JEDI VCS来满足我们的源代码控制需求,除了它的错误外,这也不算太糟糕.它起作用是因为我们用它来管理"旧的"Delphi项目.
现在,我们正在开发VS 2008和.NET中的东西,当我尝试分支项目并且必须提供Delphi项目文件时,我意识到JEDI与Delphi密切相关.
接着.我认为SVN听起来不错,但我已经使用它大约3年了,我很满意它,所以我不想因为我知道而选择它.
我的老板想要Sourcesafe.在阅读了互联网上的所有"为什么永远不会使用VSS"之后,我认为它看起来很糟糕,并且仍然无法解决当前我们正在分支的问题(因为VSS是分支的地狱).他希望我们使用VSS,因为它可以对SQL数据库进行源代码控制(显然?我从来没有能够让它工作,但听说它需要一些单独的Web开发版本或其他东西.
那么,我们应该使用什么源代码控制(它少于5个程序员)是现代的,便宜/免费的?我怎么能说服我的老板说它不能进行SQL版本控制,或者它不值得呢?
在给定特定字符数时,是否有可能在任何现代SCM中获取完整的提交列表,其修订号和执行此操作的用户?
我想知道哪些开发人员(如果有的话)让无意义的提交失败了.
Disclamer:我知道短提交消息有时也很有用,但是当你第一次尝试教人们使用版本控制时却没有.
我正在尝试编写一个Cocoa应用程序,它允许我查看我在Wii遥控器上按下的按钮.我还希望能够接收Nunchuck数据并设置LED.有谁知道我可以从哪里开始?
哦,是的,我做了一些搜索,但我找不到任何有用的东西.
提前致谢.