显然,我刚刚开始接触 Grails。我已经创建了我的域类和控制器,将我自己的逻辑添加到控制器中,并且一切正常 - 只要没有出现问题。
我的自定义控制器操作如下所示:
def create = {
try
{
// Get the parameters.
def uid=params["uid"]
def pwd=params["pwd"]
if (!uid || !pwd)
{
throw new Exception('User ID and password are required')
}
/* other code */
}
catch (Exception ex)
{
println ex.getMessage()
}
}
Run Code Online (Sandbox Code Playgroud)
我的代码(/* other code */)运行良好。然而,当抛出异常时,错误消息将打印到控制台,并且浏览器会抛出 404 错误。显然,这不是要走的路。
这样做的正确方法是什么?
TIA,
约翰
试图确定什么是"最"负责延迟 - 我的视频从我的编码器到我的服务器,并在我的浏览器中返回到播放器.
我现在和我喜欢的球员在12秒左右.它在我的播放器中缓冲吗?在FMLE的出路缓冲?
我问的原因是我觉得我已经用下面概述的小测试场景消除了其他罪魁祸首.而且,所有其他方面相同,交换其他参与者会产生最大的延迟差异.一把减少到4秒.但是不能低于那个.
消除其他罪魁祸首:
-信号不好?不,在本地运行它. - 编解码器?,不,将FMLE设置为VP6或H.264会产生相同的延迟. - 从FMLE中推出太多数据?不,50kbs或1000kbs产生12秒-Framerate设置为激烈?不,5-29.97 fps会改变运动质量,但延迟时间大约为12秒.
我正在开发一个基于FMS的小型Web演示文件包,因此延迟最多只能降到一秒.我见过类似的包几乎没有延迟.这是我的测试设置:
-Camera连接到Windows XP机器-Flash Media Live Encoder 3.0.1 -FLash Media Server 3.51 -Video Player - Adobe Flash Media Server生产力工具中的示例动态流媒体播放器(有点像Adobe的ActionScript 3.0动态流类的参考实现)
如果我将视频从距离我大约30英里的服务器上反弹,结果几乎相同.
我用CDN和他们提供的播放器进行了测试,我能做的最好的是4秒.
有没有人有我能测试的真正快速的球员?
我已经使用了Boost图库,但其余的并不多.我经常在这里看到使用Boost部分的建议(比如Boost的各种智能指针).显然Boost很好用.它也很大或多样化.有没有人知道常见问题解答或体面的最佳实践文档,以帮助知识渊博的C++程序员更好地利用Boost?
我有一个模板功能:
template<typename T>
void foo(const T& value) { bar(value); x = -1; }
Run Code Online (Sandbox Code Playgroud)
我想专门针对一组类型:
template<>
void foo<char>(const char& value) { bar(value); x = 0; }
template<>
void foo<unsigned char>(const unsigned char& value) { bar(value); x = 1; }
Run Code Online (Sandbox Code Playgroud)
它工作正常.当我编译这个:
template<>
void foo<char*>(const char*& value) { bar(value); x = 2; }
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:
error C2912: explicit specialization; 'void foo(const char *&)' is not a specialization of a function template
Run Code Online (Sandbox Code Playgroud)
是否可以专门使用char*指针类型参数而不用typedef?
我有一个NSScrollView(myScrollView)包装的NSView(myView).使用放大/缩小按钮,用户可以改变myView的比例.如果用户当前滚动到myView中的特定位置,我希望在缩放发生后将该部分视图保留在屏幕上.
我有代码看起来像这样:
// preserve current position in scrollview
NSRect oldVisibleRect = [[myScrollView contentView] documentVisibleRect];
NSPoint oldCenter = NSPointFromCGPoint(CGPointMake(oldVisibleRect.origin.x + (oldVisibleRect.size.width / 2.0),
oldVisibleRect.origin.y + (oldVisibleRect.size.height / 2.0)));
// adjust my zoom
++displayZoom;
[self scaleUnitSquareToSize:NSSizeFromCGSize(CGSizeMake(0.5, 0.5))];
[self calculateBounds]; // make sure my frame & bounds are at least as big as the visible content view
[self display];
// Adjust scroll view to keep the same position.
NSRect newVisibleRect = [[myScrollView contentView] documentVisibleRect];
NSPoint newOffset = NSPointFromCGPoint(CGPointMake((oldCenter.x * 0.5) - (newVisibleRect.size.width / …Run Code Online (Sandbox Code Playgroud) 我无法找到合理的方法将另一个进程的内存转储到文件中.
经过广泛的搜索,我已经能够在CodeProject找到一篇很好的文章,它有*我想要的大部分功能: 执行另一个进程内存的十六进制转储.这在解决权限问题方面做得很好,并奠定了良好的基础.
但是,使用此实用程序,我已经看到即使是一个小的进程,例如干净的Notepad.exe或Calc.exe实例,也可以生成大小超过24MB的转储文件,而根据TaskManager,进程本身在内存中运行不到20KB .
这篇文章让我相信,也许它也会将内容转储到共享内存中,可能还有DLL空间等.例如,Calc.exe转储将包含来自Kernel32.dll的方法名称(以及可能是内存)的部分:
²³´µKERNEL32.dll ActivateActCtx AddAtomA AddAtomW AddConsoleAliasA AddConsoleAliasW AddLocalAlternateComputerNameA AddLocalAlternateComputerNameW AddRefActCtx AddVectoredExceptionHandler AllocConsole AllocateUserPhysicalPages AreFileApisANSI AssignProcessToJobObject AttachConsole BackupRead BackupSeek BackupWrite BaseCheckAppcompatCache BaseCleanupAppcompatCache
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来转储不会导致这种开销的另一个进程的内存,或者可能是对解决此问题的链接文章代码的改进?我想获得实际属于进程本身的内存.我可以转储DLL中实际使用的函数的内存空间,但似乎没有必要转储多个DLL的*whole*内容来获取进程的运行内存.
我正在寻找一种方法来获得30-60KB的30KB进程,而不是30MB进程的30KB进程.或者至少比目前更接近.
提前感谢您的建议和指导,非常感谢.
注意:这适用于控制台实用程序,因此像CodeProject文章中的GUI元素并不重要.
我不希望使用兼容的文本呈现,但我不想使用
Application.SetCompatibleTextRenderingDefault(false);
Run Code Online (Sandbox Code Playgroud)
当然,我认为我所要做的就是将每个标签的UseCompatibleTextRendering属性设置为false.但是,如果UseCompatibleTextRendering设置为true,则表单设计器显然只生成用于设置属性的代码.
我认为没问题,这必定意味着默认情况下UseCompatibleTextRendering被初始化为false.然而,当我启动我的表格时,我看到丑陋的CompatibleTextRendering.所以,一个问题:
1)为什么地球上不是设计师添加代码UseCompatibleTextRendering当我把它设置为false,这是当我把它设置为true,如果默认是真的吗?
所有,
想要对此有所了解.最近,我在设计/开发时越来越多地成为"纯粹的"DI/IOC原则的订户.其中一部分(很大一部分)涉及确保我的类之间几乎没有耦合,并且它们的依赖关系是通过构造函数解决的(当然还有其他方法来管理它,但你明白了).
我的基本前提是扩展方法违反了DI/IOC的原则.
我创建了以下扩展方法,以确保插入到数据库表中的字符串被截断为正确的大小:
public static class StringExtensions
{
public static string TruncateToSize(this string input, int maxLength)
{
int lengthToUse = maxLength;
if (input.Length < maxLength)
{
lengthToUse = input.Length;
}
return input.Substring(0, lengthToUse);
}
}
Run Code Online (Sandbox Code Playgroud)
然后我可以从另一个类中调用我的字符串,如下所示:
string myString = "myValue.TruncateThisPartPlease.";
myString.TruncateToSize(8);
Run Code Online (Sandbox Code Playgroud)
不使用扩展方法对此进行公平的翻译将是:
string myString = "myValue.TruncateThisPartPlease.";
StaticStringUtil.TruncateToSize(myString, 8);
Run Code Online (Sandbox Code Playgroud)
使用上述任一示例的任何类都无法独立于包含TruncateToSize方法的类(除了TypeMock)进行测试.如果我没有使用扩展方法,并且我不想创建静态依赖项,它看起来更像:
string myString = "myValue.TruncateThisPartPlease.";
_stringUtil.TruncateToSize(myString, 8);
Run Code Online (Sandbox Code Playgroud)
在最后一个示例中,_stringUtil依赖项将通过构造函数解析,并且可以测试该类,而不依赖于实际的TruncateToSize方法的类(可以很容易地模拟).
从我的角度来看,前两个示例依赖于静态依赖(一个显式,一个隐藏),而第二个反转依赖性并提供减少的耦合和更好的可测试性.
那么扩展方法的使用是否与DI/IOC原则相冲突?如果您是IOC方法的订阅者,您是否避免使用扩展方法?
extension-methods dependencies inversion-of-control testability c#-3.0
我知道如何实现它们,但我不知道的是,是否逐像素地应用变换,还是有另一种方式影响整个图像,使用单个调用等?
AFAIK Get.Set Pixel非常慢.我不确定他们是否这样做过.
因此,如果将灰度/去饱和滤波器作为一个简单的情况,那么如何编写呢?