问题列表 - 第4707页

如何在不使用select的情况下检查(查看)Perl中的管道数据的STDIN?

我正在尝试处理没有参数和管道数据传递给Perl脚本的可能性.我假设如果没有参数,则输入通过STDIN进行管道传输.但是,如果用户没有提供任何参数并且没有将任何内容传递给脚本,它将尝试获取键盘输入.我的目标是提供错误消息.

不幸的是,select()不能移植到某些非POSIX系统.还有另一种方法可以实现最大的可移植性吗?

perl stdin cross-platform pipe perl-select

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

基类可以确定派生类是否覆盖了虚拟成员吗?

这是我班级的简化版本:

public abstract class Task
{
    private static object LockObject = new object();

    protected virtual void UpdateSharedData() { }
    protected virtual void UpdateNonSharedData() { }

    public void Method()
    {
       lock(LockObject)
       {
          UpdateSharedData();
       }
       UpdateNonSharedData();
    }
}
Run Code Online (Sandbox Code Playgroud)

我试图隐藏派生类的锁定代码.但是如果派生类重写UpdateSharedData,我只想获取锁; 如果没有,我不希望该方法阻止并等待在更新共享数据之前更新共享数据的所有其他正在运行的实例.

所以对于Method来说(看似)显而易见的事情是检查并查看当前实例的UpdateSharedData实现是否覆盖了基类的实现.我很确定如果不使用反射这是不可能的,并且可能不希望这样做.

我已经想到了一些解决方法,但它们都很尴尬:

  • 添加派生类的构造函数设置的受保护bool属性,并检查该属性以查看是否需要锁定.这样做在隐藏派生类中的锁定代码方面做得非常糟糕.
  • 使UpdateSharedData方法成为委托属性,让任何派生类在其构造函数中将属性设置为私有方法,并且只有在委托不为空时才获取锁.那更好,但它仍然很糟糕.

c# reflection inheritance overriding

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

CUDA编译器(nvcc)宏

是否有我可以使用的CUDA的#define编译器(nvcc)宏?(如_WIN32 for Windows等.)

我需要这个头文件代码,这在nvcc和VC++编译器之间是常见的.我知道我可以继续定义我自己的并将其作为参数传递给nvcc编译器(-D),但是如果已经定义了它会很好.

c++ macros cuda nvcc c-preprocessor

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

Rails - 流量控制问题,还有更好的方法吗?

我试图根据角色和"帖子"控制器锁定一些控制器,无论他们是否分配了任何权限.这似乎有效,但我想知道是否有一个干净的方法来处理这个问题.这就是我在应用程序控制器中所拥有的,我称之为前置过滤器...

if controller_name == 'users' || 'accounts'
  unless @current_user.master? || @current_user.power?
    render :template => "layouts/no_content"
  end
elsif controller_name == 'posts'
  unless @current_user.permissions.count > 0
    render :template => "layouts/no_content"
  end
end
Run Code Online (Sandbox Code Playgroud)

提前致谢.

ruby ruby-on-rails

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

jQuery Validator,以编程方式显示错误

我可以这样做:

validator.showErrors({ "nameOfField" : "ErrorMessage" });
Run Code Online (Sandbox Code Playgroud)

这工作正常,但如果我尝试做这样的事情:

var propertyName = "nameOfField";
var errorMessage = "ErrorMessage";
validator.showErrors({ propertyName : errorMessage });
Run Code Online (Sandbox Code Playgroud)

它会抛出'element is undefined'错误.

javascript jquery

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

使一个全局变量可以访问类中的每个函数

我有一个名为全局范围的变量${SYSTEM},其中SYSTEM是一个已定义的常量.我有很多类需要访问这个变量的函数,我发现global ${SYSTEM};每次都声明这很烦人.

我尝试声明一个类变量:public ${SYSTEM} = $GLOBALS[SYSTEM];但是这会导致语法错误很奇怪,因为我有另一个以这种方式声明类变量的类,似乎工作正常.我唯一能想到的是这个常数没有得到认可.

我已经设法用一个构造函数来解决这个问题,但我正在寻找一个更简单的解决方案.


编辑 全局$ {SYSTEM}变量是一个包含许多其他子数组的数组.不幸的是,似乎没有办法绕过使用构造函数...

php variables global class function

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

你写过的最不值得的单元测试?

在SO博客和播客上,Joel和Jeff一直在讨论,经常被忽略的时候,单元测试一个特定的功能根本不值得努力.单元测试一个简单特征的时间是如此复杂,不可预测或不切实际,以至于测试成本不能反映特征的价值.在乔尔的情况下,呼吁建立一个复杂的图像比较的例子来简单地确定压缩质量,如果他们决定编写测试.

在遇到这种情况的情况下,您遇到了哪些情况?我能想到的常见领域是GUI,页面布局,音频测试(例如,确保发出声音警告的测试)等.

我正在寻找恐怖故事和实际的现实世界的例子,而不是猜测(就像我刚才所做的那样).如果你或者任何不得不写下"不可能"测试的人继续编写它,那么奖励积分.

unit-testing

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

限制Hibernate查询中的输出

我在grails中有一个hibernate查询

 Book.findAllByRating(4)
Run Code Online (Sandbox Code Playgroud)

在上面的查询中,我只想要5个输出.如何将输出限制为5?

grails groovy frameworks hibernate grails-orm

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

意外的多线程结果

我编写了几个Java类 - SingleThreadedCompute并且MultithreadedCompute- 以证明事实(或者我一直认为是事实!)如果你在一个核心机器上并行化以计算为中心(无I/O)任务,那么你就不会获得加速.事实上,我的理解是并行化这些任务实际上会减慢速度,因为现在你必须处理上下文切换开销.好吧,我运行了类,并行版本出乎意料地运行得更快:单线程版本在我的机器上一直运行超过7秒,并且多线程版本在我的机器上一直运行超过6秒.谁能解释一下这是怎么回事?

如果有人想要查看或尝试自己,这是类.

public final class SingleThreadedCompute {
    private static final long _1B = 1000000000L; // one billion

    public static void main(String[] args) {
        long startMs = System.currentTimeMillis();

        long total = 0;
        for (long i = 0; i < _1B; i++) { total += i; }
        System.out.println("total=" + total);

        long elapsedMs = System.currentTimeMillis() - startMs;
        System.out.println("Elapsed time: " + elapsedMs + " ms");
    }
}
Run Code Online (Sandbox Code Playgroud)

这是多线程版本:

public final class MultithreadedCompute {
    private static final long …
Run Code Online (Sandbox Code Playgroud)

java concurrency multithreading

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

将3D点投影到2D屏幕坐标

根据3D Programming for Windows(Charles Petzold)第7章中的信息,我试图编写一个辅助函数,将Point3D投影到包含相应屏幕坐标(x,y)的标准2D点:

public Point Point3DToScreen2D(Point3D point3D,Viewport3D viewPort )
{
    double screenX = 0d, screenY = 0d;

    // Camera is defined in XAML as:
    //        <Viewport3D.Camera>
    //             <PerspectiveCamera Position="0,0,800" LookDirection="0,0,-1" />
    //        </Viewport3D.Camera>

    PerspectiveCamera cam = viewPort.Camera as PerspectiveCamera;

    // Translate input point using camera position
    double inputX = point3D.X - cam.Position.X;
    double inputY = point3D.Y - cam.Position.Y;
    double inputZ = point3D.Z - cam.Position.Z;

    double aspectRatio = viewPort.ActualWidth / viewPort.ActualHeight;

    // Apply projection to X and …
Run Code Online (Sandbox Code Playgroud)

c# math 3d wpf

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