小编Ada*_*ode的帖子

有Google Voice API吗?

Google Voice是否有API(正式或非正式)?我想有一个API来处理语音邮件,发送/接收短信,发起呼叫等.

什么是Android客户端使用?内部的东西?有人记录过吗?

google-voice

170
推荐指数
4
解决办法
10万
查看次数

为什么使用JIT与编译到机器代码时Java更快?

我听说Java必须使用JIT才能快速.与解释相比,这是完全合理的,但为什么不能有人制作生成快速Java代码的提前编译器?我知道gcj,但我认为它的输出通常不比Hotspot快.

是否有关于语言的事情使这个困难?我认为这取决于这些事情:

  • 反射
  • 类加载

我错过了什么?如果我避免使用这些功能,是否可以将Java代码编译一次到本机机器代码并完成?

java jit

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

如何在linux上捕获原始HID输入?

我想要完成的简短版本:我有一个脚踏板(INFINITY-IN-USB-1,如果有任何兴趣),它是作为通用HID设备实现的,我希望它表现为控制和alt Linux上的密钥.我正在寻找X级别的东西,即不仅仅是单个程序.

更长的版本:我通过调用dll RegisterRawInputDevices和GetRawInputData并在隐藏的窗口中监听输入,在Windows XP中使用此设置.所有这些都是通过相当简单的Autohotkey脚本完成的(如果有人有兴趣可以在这里发布).关键是,不需要任何额外的驱动程序等; 只需要本机Windows dll.

我希望这个设置在linux上工作(更具体地说是Ubuntu下的Gnome,但我偶尔会使用其他发行版/窗口管理器,所以我很感激X级别的解决方案).这个脚踏板不会将自己注册为键盘甚至操纵杆,而是作为具有UsagePage 12,用法3的HID设备.我注意到最新的Ubuntu可以检测并使用Microsoft Natural Keyboard上的收藏夹键,它也可以注册为HID设备*.我使用与使用脚踏板相同的方法在Windows上使用这些键(即没有捆绑软件).所以我认为这个踏板的东西也适用于linux,但问题是如何?

[我是Linux上较低级别的新手,所以请慷慨地提供引言或教程的链接.)

*对于那些不知情的人,Microsoft Natural Keyboard会同时注册为常规键盘和通用HID设备.如果没有某些应用程序(例如捆绑的应用程序)知道如何解释HID输入,常规键将起作用,但是最喜欢的键和特殊功能键是无用的.


为了澄清,linux并没有将踏板压力视为输入.它确实识别USB设备,但xev没有为踏板按下输出.我已经看到有人在WINE下成功使用踏板进行转录软件的报道,但这必须以Windows的方式工作,并没有给出我想要的东西(这使得踏板看起来像所有原生linux应用程序的键盘).我想知道是否需要一些低级linux键盘驱动程序?


这里有更多信息:如果我在终端发出这个

cat /dev/usb/hiddev0
Run Code Online (Sandbox Code Playgroud)

(dev/usb/hiddev0是我的踏板),我得到与我的踏板按下相对应的原始代码.那是一个开始.我知道那些原始代码意味着什么:二进制,0001,0010,0100分别对应每个踏板,踏板按压的组合发送那些二进制数的组合,以及释放任何踏板仍然被按下的踏板触发输入(如果全部踏板向上,0000发送).

如何让X听取dev/usb/hiddev0并将原始代码翻译成可能是一个特殊的键码,以便我可以用xmodmap或其他东西映射它们?

linux hid hid-device

31
推荐指数
3
解决办法
8万
查看次数

共享库如何在混合64位/ 32位系统中工作?

早上好,

在64位RedHat盒子上,我们必须编译并运行一个32位应用程序.同时我设法编译了所需的gcc版本(4.0.3)和所有需要的32位运行时库,并将LD_LIBRARY_PATH设置为指向32位版本,但现在在剩余的构建过程中,需要执行一个小的java程序,作为64位程序安装在/ usr/bin中,现在首先找到32位版本的libgcc_s.so.

通常,如果我将LD_LIBRARY_PATH设置为32位版本,我会破坏64位程序,反之亦然.

它应该如何工作?我确信我不是第一个遇到这个问题的人.它通常如何解决?

此致,斯特凡

linux 64-bit shared-libraries

16
推荐指数
2
解决办法
2万
查看次数

Java int division令我困惑

我正在做非常简单的int划分,我得到奇怪的结果.

此代码2按预期打印:

public static void main(String[] args) {
    int i = 200;
    int hundNum = i / 100;
    System.out.println(hundNum);
}
Run Code Online (Sandbox Code Playgroud)

此代码打印1期望:

public static void main(String[] args) {
    int i = 0200;
    int hundNum = i / 100;
    System.out.println(hundNum);
}
Run Code Online (Sandbox Code Playgroud)

这里发生了什么?

(Windows XP Pro,在Eclipse 3.4.1中运行的Java 1.6)

java int division octal

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

多线程A*用Java或Lisp或C#搜索

有没有一种很好的方法来进行多线程A*搜索?单线程是相当容易的,如(例如)人工智能:现代方法中所给出的,但我没有遇到过一个好的多线程版本.

假设一个理智的语言,如Java或C#或Lisp,我们有线程池和工作块,当然还有垃圾收集.

search multithreading artificial-intelligence a-star

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

如何在真实硬件上测试自制的Nintendo娱乐系统软件?

几年前,我将一个NES游戏作为一个类项目实现,用6502程序集编写.我只在NES仿真器上运行它,但我希望它能在真正的硬件上运行.有没有开发板可以做到这一点?我理解它有点棘手,有mapper芯片等,但我愿意限制只是一个普通的映射器(比如说MMC3).

hardware homebrew 6502 nintendo

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

等待分离的线程在C++中完成

我怎么能等待分离的线程在C++中完成?

我不关心退出状态,我只是想知道线程是否已经完成.

我正在尝试围绕异步的第三方工具提供同步包装器.问题是涉及回调的奇怪的竞争状态崩溃.进展如下:

  1. 我打电话给第三方,并注册一个回调
  2. 当第三方完成时,它通知我使用回调 - 在一个分离的线程中,我没有真正的控制权.
  3. 我希望(1)中的线程等到(2)被调用.

我想在一个提供阻塞调用的机制中包装它.到目前为止,我有:

class Wait {
  public:
  void callback() {
    pthread_mutex_lock(&m_mutex);
    m_done = true;
    pthread_cond_broadcast(&m_cond);
    pthread_mutex_unlock(&m_mutex);
  }

  void wait() {
    pthread_mutex_lock(&m_mutex);
    while (!m_done) {
      pthread_cond_wait(&m_cond, &m_mutex);
    }
    pthread_mutex_unlock(&m_mutex);
  }

  private:
  pthread_mutex_t m_mutex;
  pthread_cond_t  m_cond;
  bool            m_done;
};

// elsewhere...
Wait waiter;
thirdparty_utility(&waiter);
waiter.wait();
Run Code Online (Sandbox Code Playgroud)

据我所知,这应该有效,而且通常会有效,但有时它会崩溃.至于我可以从corefile中确定,我对这个问题的猜测是这样的:

  1. 当回调广播m_done的结束时,等待线程唤醒
  2. 等待线程现在在这里完成,Wait被破坏.Wait的所有成员都被销毁,包括互斥锁和cond.
  3. 回调线程尝试从广播点继续,但现在使用已释放的内存,这会导致内存损坏.
  4. 当回调线程试图返回时(高于我糟糕的回调方法的级别),程序崩溃(通常使用SIGSEGV,但我已经看过几次SIGILL).

我尝试了很多不同的机制来尝试解决这个问题,但没有一个能解决问题.我仍然偶尔看到崩溃.

编辑:更多细节:

这是大规模多线程应用程序的一部分,因此创建静态等待是不切实际的.

我运行了一个测试,在堆上创建Wait,并故意泄漏内存(即Wait对象永远不会被释放),这导致没有崩溃.所以我确定这是等待太快解除分配的问题.

我也尝试过sleep(5)在解锁后进行测试wait,并且也没有发生崩溃.我讨厌依靠这样的kludge.

编辑:ThirdParty详细信息:

我一开始并不认为这是相关的,但我想的越多,我认为这就是真正的问题:

我提到的第三方的东西,以及为什么我无法控制线程:这是使用CORBA.

因此,CORBA可能会比我预期的更长时间地保持对对象的引用.

c++ multithreading corba pthreads

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

在Linux中从C连接到Matlab引擎

我试图从Linux上的C程序(Matlab r2009a,Ubuntu 9.10)以编程方式调用Matlab引擎.

我有自己的代码(适用于Windows),但是现在我只是想让Matlab"engdemo.c"程序在Linux上运行.我已经设法编译并链接它(在-l<lib>gcc命令行中包含大约15个开关之后),甚至通过一些ldconfig magic解决了所有运行时动态链接.

但是,当程序运行时,我只是得到"无法启动MATLAB引擎"错误消息并且程序结束,没有指示它失败的原因.

有人做过这项工作吗?我忘了做什么?

ps我最初在SuperUser上问过这个,因为我认为它与配置有关,但是我看到其他Matlab引擎相关的?在这里,所以我想我会试一试.

c linux matlab matlab-engine engopen

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

gigapixel图像的自描述文件格式?

在医学成像中,似乎存在两种存储巨大的千兆像素图像的方式:

  1. 使用大量JPEG图像(打包成文件或单独打印)并制作一些奇怪的索引格式来描述其中的内容.以某种其他格式处理一些元数据.

  2. 使用TIFF的图块和多图像支持将图像干净地存储为单个文件,并提供缩放采样版本以实现缩放速度.然后滥用各种TIFF标签以非标准方式存储元数据.此外,存储具有重叠边界的切片,必须稍后单独翻译.

在这两种情况下,读者必须充分了解格式,以了解如何绘制内容和阅读元数据.

有没有更好的方法来存储这些图像?TIFF(或BigTIFF)仍然是正确的格式吗?XMP是否解决了元数据问题?

主要问题是:

  • 以允许快速随机访问(平铺)的方式存储图像
  • 存储下采样图像以进行快速缩放(金字塔)
  • 处理瓷砖重叠或稀疏的情况(扫描仪通常通过在2D中的幻灯片上移动相机并仅捕获有图像的位置来工作)
  • 存储重要的元数据,包括相关图像,如幻灯片的标签和缩略图
  • 支持有损存储

人们使用什么样的(希望是非专有的)格式来存储大型航空照片或地图?这些图像具有相似的属性.

tiff tiles image

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

mprotect是否刷新ARM Linux上的指令缓存?

我正在ARM Linux上编写一个JIT,它执行一个包含自修改代码的指令集.指令集没有任何缓存刷新指令(在这方面类似于x86).

如果我向页面写出一些代码,然后mprotect在该页面上调用,那是否足以使指令缓存无效?或者我还需要cacheflush在这些页面上使用系统调用吗?

linux jit arm mprotect self-modifying

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

使用Qt制作几乎原生的Windows应用程序?

我喜欢Qt是跨平台的,但是我想创建一个可以调用某些特定于Windows的.dll的应用程序.有点像谷歌Chrome浏览器与Windows Vista/7上的玻璃一样(我知道Chrome不是使用Qt框架编写的,只是认为它是一个很好的例子).

我怎么能在Qt中这样做?这可行吗?

c++ windows dll qt cross-platform

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