我在一个敏捷的小型开发团队工作,该团队是一家大型非敏捷思维公司的一部分.目前,我们实践Scrum,偶尔也会超出我们的冲刺承诺.
我的问题是,当你超过你的冲刺承诺时,你如何处理烧毁图表?我可以想到两个选择:
我的团队的最终解决方案是业务清晰,为开发人员增加真正价值的解决方案.到目前为止,这些解决方案都没有完美解决.
如果单击JList上的选定索引,我希望它取消选择.换句话说,点击索引实际上切换了他们的选择.看起来不支持,所以我试过了
list.addMouseListener(new MouseAdapter()
{
public void mousePressed(MouseEvent evt)
{
java.awt.Point point = evt.getPoint();
int index = list.locationToIndex(point);
if (list.isSelectedIndex(index))
list.removeSelectionInterval(index, index);
}
});
Run Code Online (Sandbox Code Playgroud)
这里的问题是在 JList已经对鼠标事件起作用之后调用它,因此它取消选择所有内容.然后,我尝试删除所有JList的MouseListeners,添加我自己的,然后添加所有默认侦听器.这不起作用,因为在我取消选择后,JList会重新选择索引.无论如何,我最终想出的是
MouseListener[] mls = list.getMouseListeners();
for (MouseListener ml : mls)
list.removeMouseListener(ml);
list.addMouseListener(new MouseAdapter()
{
public void mousePressed(MouseEvent evt)
{
java.awt.Point point = evt.getPoint();
final int index = list.locationToIndex(point);
if (list.isSelectedIndex(index))
SwingUtilities.invokeLater(new Runnable()
{
public void run()
{
list.removeSelectionInterval(index, index);
}
});
}
});
for (MouseListener ml : mls)
list.addMouseListener(ml);
Run Code Online (Sandbox Code Playgroud)
......那很有效.但我不喜欢它.有没有更好的办法?
我需要在另一个应用程序关闭文件时生成一个事件.
不幸的是,ReadDirectoryChangesW不报告close事件.我可以(通过TTimer)轮询由ReadDirectoryChangesW报告为修改的任何文件,等待它被关闭(使用CreateFile来检测它).
但是,我更喜欢的是一个完全由事件驱动的解决方案.
有没有办法挂钩系统调用并检测所有文件关闭事件?我只是想知道刚刚关闭的任何文件的路径和名称.
问题
我收集了日本一座山的数码照片.然而,这座山常常被云雾遮挡.
我可以使用哪些技术来检测图像中的山峰是否可见?我目前正在使用带有Imager模块的Perl ,但对替代品开放.
所有图像都是从完全相同的位置拍摄的 - 这些是一些样本.
样本图像http://www.freeimagehosting.net/uploads/7304a6e191.jpg
我天真的解决方案
我开始采用山锥的几个水平像素样本,并将亮度值与天空中的其他样本进行比较.这适用于区分好图像1和坏图像2.
然而在秋天,它下雪了,山比天空更明亮,就像图像3一样,我的简单亮度测试开始失败.
图4是边缘情况的示例.我认为这是一个很好的形象,因为有些山峰清晰可见.
更新1
谢谢你们的建议 - 我很高兴你们都高估了我的能力.
根据答案,我开始尝试使用ImageMagick边缘检测变换,这使我能够分析更简单的图像.
convert sample.jpg -edge 1 edge.jpg
Run Code Online (Sandbox Code Playgroud)
边缘检测样本http://www.freeimagehosting.net/uploads/caa9018d84.jpg
我认为我应该使用某种掩蔽来摆脱树木和大部分云层.
一旦我有了蒙面图像,将相似度与"好"图像进行比较的最佳方法是什么?我猜这个" 比较 "命令适合这份工作吗?如何从中获取数字"相似性"值?
更新2
我想我可能会卷入某个地方.
我通过在良好的图像上执行边缘检测来制作我的"内核"图像(下图中的顶部).然后我把山的轮廓周围的所有"噪音"涂黑了,然后将它裁剪掉.
然后我使用以下代码:
use Image::Magick;
# Edge detect the test image
my $test_image = Image::Magick->new;
$test_image->Read($ARGV[0]);
$test_image->Quantize(colorspace=>'gray');
$test_image->Edge(radius => 1);
# Load the kernel
my $kernel_image = Image::Magick->new;
$kernel_image->Read('kernel-crop.jpg');
# Convolve and show the result
$kernel_image->Convolve(coefficients => [$test_image->GetPixels()]);
$kernel_image->Display();
Run Code Online (Sandbox Code Playgroud)
我为各种样本图像运行了这个,我得到如下结果(每个样本下面都显示了卷积图像):
(对不起 - 上次不同的样本图片!)
alt text http://www.freeimagehosting.net/uploads/f9a5a34980.jpg …
我有一个简单的PHP应用程序打印'你好世界'.当我从命令行运行它需要6秒.这是正常的吗?在"hello world"打印之前需要1秒,然后是5秒之后.
我在Windows Server 2008 R2上运行PHP版本5.2.12.这可能是一个安装问题,还是典型的?我手动安装了PHP,然后添加了运行Drupal所需的任何组件.我记得添加的唯一PHP插件是MDB2,CGI也支持.
我习惯于从命令行运行的Lua项目,数百行代码将在一秒钟内运行.
我从命令行运行了一些单元测试,而且只有少数单元测试它们非常慢.我从Netbeans运行它们,测试仍然很慢.
我正好运行:
C:\temp>copy con test.php
<?php
print('hello, world');
^Z
1 file(s) copied.
C:\temp>test.php
hello, world
Run Code Online (Sandbox Code Playgroud) 有没有办法在您的应用程序中设置/更新settings.bundle中的值.我很好地阅读从偏好到NSUserDefaults的值,但是想知道你是否可以在应用程序中设置值.
我有一个网络应用程序,我正在制作iPhone客户端,并考虑在settings.bundle中包含用户帐户详细信息.如果用户仅通过Apple Application Preferences屏幕更新值,那么这很好,但是如果用户在Web应用程序中更新了这些值,该怎么办呢.我想从网上下载值,然后从应用程序中"更新"settings.bundle中的值.
我猜这是不可能的,也许我需要创建自己的"应用程序内"设置屏幕?但是我想先跟你们一起检查......
为了防止有人轻易抓取我的数据,我将来自我服务的数据缓存为加密文件(基本上是复制保护).
但是,为了做到这一点,我必须将加密密钥存储在.NET程序集中,以便能够加密和解密这些文件.
知道像Red Gate的.NET Reflector这样的工具可以直接拉出我的钥匙,我觉得这不是一种非常安全的方式......有没有最好的做法呢?
如果我使用memcache将user_x的数据加载到内存中,这些数据将保持多长时间?
如果用户每年只登录一次,则内存中不需要此数据.
或者我是以错误的方式看待这个?
我在xmldataprovider工作,我们有配置值"source"这个值可能是本地文件或url像
c:\ data\test.xml --absolute data\test.xml --relative
或url http:\ mysite\test.xml
我如何在代码中确定所有这些情况我正在工作c#
声明为staticC和C++之间的任何函数之外的变量之间是否存在任何差异.我读到这static意味着文件范围和变量将无法在文件外部访问.我还读到在C中,全局变量是static.那么这是否意味着C中的全局变量无法在另一个文件中访问?