小编Mik*_*ley的帖子

SpeechToText并运行ACTION_CHECK_TTS_DATA意图

TextToSpeech完全按照这篇博文中提到的那样实现了集成.在我将它添加到我的程序后,它现在正在干扰我的其他程序intent.

例如:

  1. 项目清单
  2. 用户启动应用
  3. 用户调用加载活动
  4. 用户选择要加载的文件,活动返回fileanme以加载意图
  5. 主要活动开始,并意识到它需要加载一个文件名,所以它开始这样做
  6. 需要检查TTS,以便启动ACTION_CHECK_TTS_DATA意图
  7. 这会再次暂停主要活动,并且加载过程会中断
  8. 当TTS检查返回时,加载从未发生过.

我什么时候需要这个TTS检查?我可以在应用程序启动时执行一次吗?这导致我的应用程序加载缓慢.如果可能的话,我希望在单独的线程中执行此加载.

android text-to-speech

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

在Mathematica中使用f @ expr和expr // f的不同结果

我被玩弄的PrefixPostfix运营商(@//分别),我遇到了以下问题.

鉴于以下代码,他们以相同的方式进行评估:

Hold[MatrixPlot@Sort@data] // FullForm
(* Hold[MatrixPlot[Sort[data]]] *)

Hold[data // Sort // MatrixPlot] // FullForm
(* Hold[MatrixPlot[Sort[data]]] *)
Run Code Online (Sandbox Code Playgroud)

但是,考虑到以下表达式,我会得到不同的结果:

FunctionExpand@Abs'[0]
(* Abs'[0] *)

Abs'[0] // FunctionExpand
(* 0 *)
Run Code Online (Sandbox Code Playgroud)

我不太确定为什么会这样.在几十个其他的代码片断的我有,f@expr,expr // f,和f[expr]所有的评价相同的结果.为什么这一个特定情况会给出这个结果?

wolfram-mathematica

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

在Mathematica Plot中强制x轴与y轴对齐

在Mathematica中,当我有时候绘制东西时,我并不总是让x轴与绘图的确切底部对齐.有什么方法可以强迫它一直这样做吗?

以下是我所说的一个例子:http://i.imgur.com/3lcWd.png

我希望x轴与底部的零刻度标记方式完美对齐,而不是在y轴的中间,就像在该图像中一样.

我能以任何方式完成这项任务吗

plot wolfram-mathematica

5
推荐指数
2
解决办法
3235
查看次数

实体框架不会将元数据嵌入到dll中

我想做什么

我目前有一个项目文件,其中包含一个EF 5模型,其中.edmx配置为将元数据嵌入到输出程序集中.

如果我通过Visual Studio 2012运行本地程序包,则生成的程序集包含正确的资源.通过MSBuild手动运行包也正确地嵌入了程序集中的资源:

msbuild web.csproj /t:Package /p:Configuration=Release
Run Code Online (Sandbox Code Playgroud)

当我手动检查Visual Studio生成的程序集使用dotPeek的MSBuild包步骤时,我可以确认该程序包包含.csdl,.ssdl和.msl资源.

实际问题

我手头上运行.如果我通过手动调节的Visual Studio 2012命令提示符下运行的MSBuild,使用上述完全相同的命令行,然后组装产生,它的Microsoft Windows Server 2012和Visual Studio 2012年构建服务器包含嵌入的资源.

当我通过MSBuild执行自动程序包时,为什么我的EF元数据文件没有被嵌入?

简单的自包含正确的例子

一个SSCCE这表明了解决办法可能会发现在这里.该示例包含重现错误所需的确切步骤readme.txt.

c# msbuild teamcity entity-framework embedded-resource

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

从表面弹出一个球

我目前正在编写像Breakout这样的游戏,我想知道如何才能将球从球面上弹开.

我采用天真的方式将速度旋转了90度,这是:

[vx, vy] -> [-vy, vx]
Run Code Online (Sandbox Code Playgroud)

哪个(不足为奇)没有那么好用.如果我知道球的位置和速度,以及球将击中的点(但是反而会反弹)我怎么能从那个点反弹?

约束:

  • 我正在使用整数数学(无FP在任何地方)
  • 我所有的表面都是简单的平面(垂直,水平或块)
  • 我只想以90度的角度反弹
  • 所有碰撞都是纯粹的弹性(这是突破 - 不需要摩擦等)

我不需要任何特定于语言的代码.如果有人能提供一个小的数学公式来说明如何正确地做到这一点对我来说很好.

谢谢!

collision game-physics

4
推荐指数
2
解决办法
6817
查看次数

如何有效地绘制数千个顶点?

我目前正在编写一个交互式模拟器,它显示了粒子系统的演变.我正在使用Visual Studio在Windows 7 32位上进行开发.

目前,我有一个功能来绘制屏幕上的所有粒子,如下所示:

void Simulator::draw()
{
    glColor4f(255, 255, 255, 0);
    glBegin();
    for (size_t i = 0; i < numParticles; i++)
        glVertex3dv(p[i].pos);
    glEnd();       
}
Run Code Online (Sandbox Code Playgroud)

这非常有效并且全部用于测试,但它的速度非常慢.如果我在屏幕上有200个粒子,没有做任何其他计算(只是重复调用draw()),我得到大约60 fps.但是,如果我使用1000个粒子,它的运行速度只有15 - 20 fps左右.

我的问题是:我怎样才能更快地绘制粒子?我的模拟以相当不错的速度运行,并且在某个点上它实际上被图画阻止(!).

c++ opengl 3d performance

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

用C++编写性能关键的C#代码

我目前正在研究一些性能关键代码,我有一个特殊情况,我喜欢用C#编写整个应用程序,但性能原因意味着C++最终会更快地达到FAR.

我对一些代码的两个不同实现进行了一些基准测试(一个用C#编写,另一个用C++编写),时序显示C++版本快了8倍,两个版本都处于发布模式并启用了所有优化.(实际上,C#具有编译为64位的优点.我忘了在C++时序中启用它)

所以我想,我可以在C#中编写大部分代码库(哪个C#非常容易编写),然后编写性能至关重要的本机版本.我在C#和C++中测试的特定代码片段是花费> 95%处理时间的关键领域之一.

这里编写本机代码的推荐智慧是什么?我从来没有写过调用本机C++的C#应用​​程序,所以我不知道该怎么做.我希望以最小化必须尽可能多地执行本机调用的成本的方式执行此操作.

谢谢!

编辑:下面是我实际尝试的大部分代码.这是一个n体仿真.95-99%的CPU时间将用于Body.Pairwise().

class Body
{
    public double Mass;
    public Vector Position;
    public Vector Velocity;
    public Vector Acceleration;

    // snip

    public void Pairwise(Body b)
    {
        Vector dr = b.Position - this.Position;
        double r2 = dr.LengthSq();
        double r3i = 1 / (r2 * Math.Sqrt(r2));

        Vector da = r3i * dr;
        this.Acceleration += (b.Mass * da);
        b.Acceleration -= (this.Mass * da);
    }

    public void Predict(double dt)
    {
        Velocity += (0.5 * dt) * Acceleration;
        Position += dt * …
Run Code Online (Sandbox Code Playgroud)

c# c++ performance

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

从vim中的寄存器中删除换行符?

我有很多不同的大学名单.我正在尝试通过将线条与某些唯一关键字进行整理来构建同义词表格; 也就是说,在文件中,我将确定哈佛是这里的关键字:

Harvard Business School|
Harvard College|
Harvard School of Divinity|
Run Code Online (Sandbox Code Playgroud)

并将它们粘贴到另一个文件中

Harvard Business School|Harvard College|Harvard School of Divinity|
Run Code Online (Sandbox Code Playgroud)

我一直在这样做,通过搜索光标下的单词,将该单词的行放入寄存器,将寄存器粘贴到另一个文件中,并使用join命令"J"将这些行连接在一起:

[ clear register 'a' ]    
0"ay0
[ move cursor to 'Harvard" and yank lines with keyword into register a ]
:g/\<<CTRL-R><CTRL-W>\>/y A
[ move to other screen and paste ]
"ap
[ join lines ]
JJJJJ
Run Code Online (Sandbox Code Playgroud)

这很好用,但我希望它能够简化.具体来说,我想知道如何从寄存器中删除换行符,这样我就不必在最后一步中使用JJJJ手动加入行.我想搜索光标下包含单词的所有行,将它们复制到'a'寄存器中,从'a'寄存器中删除换行符,然后粘贴'a'寄存器的内容.

有任何想法吗?

编辑:我知道:

  • 如何全局搜索和替换,例如%s/\n // g
  • 如何搜索缓冲区中的'foo'并将其替换为寄存器的内容,例如:%s/foo/a/g
  • 如何搜索寄存器的内容并用缓冲区中的'foo'替换,例如:%s/a/bar/g

我需要知道的是:

  • 如何从寄存器'a'中搜索并用'bar'替换'foo'来注册'b'
  • 如何从寄存器'a'中搜索并用'bar'替换'foo'来注册'a'

regex vim replace vim-registers

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

我可以自动懒惰地评估Mathematica中的函数参数吗?

在Mathematica,我想做一些基本的事情:

f[Rational[a_, b_], Rational[c_, d_]] := {a+c, b+d}
Run Code Online (Sandbox Code Playgroud)

但是,如果我用以下形式的表达式来评估它,我会得到错误的结果:

In: f[Rational[50, 100], Rational[4, 10]]
Out: {3, 7}
(* Expected: 54 / 110 ->  27 / 55 *)
Run Code Online (Sandbox Code Playgroud)

有什么方法可以强迫Mathematica立即停止简化表达式吗?我可以暂时保留我传入的内容,然后让有问题的函数只需调用ReleaseHold [..]就可以传入任何内容.

这个解决方案非常难看,我不想这样做.我知道Mathematica中的一些函数会自动保存传入的内容并因某种原因延迟评估它,我想在此处执行此操作.

简而言之:我怎样才能强迫Mathematica懒惰地评估传递给函数的东西,而不必手动持有它?

wolfram-mathematica lazy-evaluation

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

Runspace忽略自定义PSHostUserInterface

的背景

我正在编写一个以编程方式执行PowerShell脚本的应用程序.此应用程序具有自定义PSHost实现,以允许脚本输出日志记录语句.目前,我看到的行为是某些请求被正确转发到我的自定义PSHost而其他请求被忽略了.

当我开始检查$Host脚本中的变量时,事情变得更加奇怪,这似乎表明我的自定义PSHost甚至没有被使用.

代码

我有一些代码在.NET应用程序中执行PowerShell:

var state = InitialSessionState.CreateDefault();
state.AuthorizationManager = new AuthorizationManager("dummy"); // Disable execution policy

var host = new CustomPsHost(new CustomPsHostUI());

using (var runspace = RunspaceFactory.CreateRunspace(host, state))
{
    runspace.Open();

    using (var powershell = PowerShell.Create())
    {
        powershell.Runspace = runspace;

        var command = new Command(filepath);

        powershell.Invoke(command);
    }
}
Run Code Online (Sandbox Code Playgroud)

实现CustomPsHost非常简单,只包含转发所需的内容PSHostUserInterface:

public class CustomPsHost : PSHost
{
    private readonly PSHostUserInterface _hostUserInterface;

    public CustomPsHost(PSHostUserInterface hostUserInterface)
    {
        _hostUserInterface = hostUserInterface; …
Run Code Online (Sandbox Code Playgroud)

c# powershell runspace

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