小编Jac*_*ble的帖子

D3中最近邻搜索

我在Javascript中实现了一个二维kd树(在GitHub上查看),我将它用于D3旁边的最近邻搜索.

我了解到D3 中有一个四叉树实现,但也发现API文档很少,谷歌搜索并不富有成效.在可能的情况下,我宁愿使用一个经过良好旅行的图书馆而不是我自己的重新发明的轮子.

如何使用D3的四叉树执行最近邻搜索?最近的邻居,我的意思是:

  • 用二维点填充四叉树
  • 搜索最接近四叉树中不一定存在的新点的四叉树包含点

javascript quadtree nearest-neighbor d3.js

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

如何获得理由CUPS工作被停止?

如何通过CUPS API获取CUPS打印作业失败的原因?

使用CUPS API,我打印了两个无法打印的作业.在CUPS Web界面上,我可以看到它们失败的原因:"不支持的打印数据." 和"无法写入打印数据".

CUPS打印作业错误说明

但是,API似乎不包含这些原因.该cupsGetJobs()方法返回cups_job_s结构,如下所示:

struct cups_job_s {
    time_t completed_time;
    time_t creation_time;
    char *dest;
    char *format;
    int id;
    int priority;
    time_t processing_time;
    int size;
    ipp_jstate_t state;
    char *title;
    char *user;
};
Run Code Online (Sandbox Code Playgroud)

我检查了所有这些字段,其中没有一个包含屏幕截图中显示的错误字符串.

jobs message cups

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

使用lambda getter和setter创建属性

我有这样的事情:

class X():
    def __init__(self):
        self.__name = None

    def _process_value(self, value):
        # do something
        pass

    def get_name(self):
        return self.__name

    def set_name(self, value):
        self.__name = self._process_value(value)

    name = property(get_name, set_name)
Run Code Online (Sandbox Code Playgroud)

我可以替换get_nameset_name使用lambda函数吗?

我试过这个:

name = property(lambda self: self.__name, lambda self, value: self.__name = self.process_value(value))
Run Code Online (Sandbox Code Playgroud)

但编译器不喜欢我的setter函数.

python lambda properties

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

来自资源的Android RandomAccessFile用法

如何使用RandomAccessFileJava 访问Android资源?

这是我希望如何工作(但它没有):

String fileIn = resources.getResourceName(resourceID);
Log.e("fileIn", fileIn);
//BufferedReader buffer = new BufferedReader(new InputStreamReader(fileIn));

RandomAccessFile buffer = null;
try {
  buffer = new RandomAccessFile(fileIn, "r");
} catch (FileNotFoundException e) {
  Log.e("err", ""+e);
}
Run Code Online (Sandbox Code Playgroud)

日志输出:

fileIn(6062): ls3d.gold.paper:raw/wwe_obj
Run Code Online (Sandbox Code Playgroud)

我的控制台中出现以下异常:

11-26 15:06:35.027: ERROR/err(6062): java.io.FileNotFoundException: /ls3d.gold.paper:raw/wwe_obj (No such file or directory)
Run Code Online (Sandbox Code Playgroud)

java android

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

最近邻区域可视化

我正在编写一个使用kd树在二维空间中查找点的应用程序.在开发过程中,能够"看到"每个点周围的最近邻区域会很好.

在附图中,红点是kd树中的点,并且围绕每个点的蓝线限定了最近邻搜索将返回包含点的区域.

图像是这样创建的:

for each point in the space:
  da = distance to nearest neighbor
  db = distance to second-nearest neighbor
  if absolute_value(da - db) < 4:
    draw blue pixel
Run Code Online (Sandbox Code Playgroud)

该算法有两个问题:

  • (更重要的是)我的(相当快的Core i7)计算机速度很慢.
  • (不太重要)它很草率,正如你可以看到蓝线的不同宽度.

什么是一组点的"可视化"?

有哪些好算法可以创建这样的可视化?

分区

algorithm data-visualization kdtree computational-geometry space-partitioning

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

如何在更短的时间内迭代大型 Java 整数列表?

int[] records = job.getTargetSearchIDs();
topology.applyMatcherSearchWeight(records);
int[] mIDs = topology.getMatcherIds();
SystemResponse[] sysResponse = new SystemResponse[mIDs.length];
Map<Integer, SearchCommand> mrCmdsMap = new HashMap<Integer, SearchCommand>();
Run Code Online (Sandbox Code Playgroud)

mID 的长度为 250,记录的长度为 750 万个整数。我希望这个循环在配备 8 核 Intel Xeon X5355 处理器、64 位 Linux (Ubuntu) 和 32 位 Java 的服务器上运行不到 3 秒。

for (long mID : mIDs) {
  List<Integer> recIDsToMatch = new LinkedList<Integer>();
  Matcher matcher = topology.getMatcherById(mID);

  for (long record : records) {
    if (matcher.getRange().isInRange(record))
      recIDsToMatch.add(record);
  }

  if (recIDsToMatch.size() > 0) {
    SearchCommand command = new SearchCommand(job.getMatchParameters(), 
      job.getRequestType(),
      job.getId(),
      job.getMatchParameters().getEngineProperties(), …
Run Code Online (Sandbox Code Playgroud)

java algorithm performance

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

AlertDialog自定义标题有黑色边框

我有一个AlertDialog我使用自定义对话框视图.自定义标题视图的想法似乎很简单,但自定义标题周围有一个黑色边框,我似乎无法摆脱它.顶部,左侧和右侧具有单像素边界,而底侧具有约5像素边界.

用Java创建对话框:

View titleView = inflater.inflate(R.layout.part_list_item, parent, false);
((TextView) titleView.findViewById(R.id.partName)).setText(titleText);
AlertDialog productDialog = new AlertDialog.Builder(getContext())
    .setCustomTitle(titleView)
    .setAdapter(adapter, doNothingClickListener)
    .create();
Run Code Online (Sandbox Code Playgroud)

自定义标题视图布局,part_list_item.xml:

<?xml version="1.0" encoding="utf-8"?>
<TextView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="#ff0000"
    android:id="@+id/partName"
    android:layout_marginLeft="6dip"
    android:textAppearance="?android:attr/textAppearanceLargeInverse"
    />
Run Code Online (Sandbox Code Playgroud)

我所看到的:

截图坏了

我想看到的:

截图已修复

有任何想法吗?

android dialog android-layout android-alertdialog

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

我可以在Redshift中从一个表复制到另一个表

我知道COPY命令可以非常有效地导入大量数据.但是使用INSERT命令将数据从一个表复制到另一个表的速度很慢.有没有更有效的方法将数据从一个表复制到另一个表?或者我应该使用UNLOAD命令将表卸载到S3中,然后从那里将其复制回来?

amazon-redshift

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

如何用Win32检测彩色打印机?

我有两台黑白打印机、两台彩色打印机和一些虚拟打印机(传真、CutePDF Writer 等)。

根据DC_COLORDEVICE查询DeviceCapabilities,只有传真虚拟打印机是黑白的。

根据PLANES查询BITSPIXELGetDeviceCaps所有打印机都有一个平面,只有Fax和CutePDF有1位/像素(黑白)。

根据NUMCOLORS查询GetDeviceCaps,只有传真是黑白的。

我对直接查询驱动程序不感兴趣,所以我还没有尝试过。

如何使用 Win32 准确检测彩色打印机?

c printing winapi

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

err.Error() 应该用于字符串格式化吗?

这种字符串格式工作得很好:

err := foo()
if err != nil {
  fmt.Printf("foo returned '%s' when called\n", err)
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下打电话有什么好处吗err.Error()

fmt.Printf("foo returned '%s" when called\n", err.Error())
Run Code Online (Sandbox Code Playgroud)

error-handling string-formatting go

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