小编Ela*_*ich的帖子

JavaFX的成功案例

有没有人在这里真正使用JavaFX进行实际应用?我对JavaFX的使用做了一个浅薄的搜索,发现几乎没有大量使用情况.

有谁知道实际使用JavaFX的公司?我真的害怕JavaFX(目前是唯一一些开源的RIA平台)无法生存.

更新 此问题给出了JavaFX程序的一些示例(主要是为竞赛编写的代码).但我没有看到那里的商业用户.

javafx

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

用于在gmail中插入数学的Greasemonkey脚本

我希望用gmail简单地传达数学方程式.

有一个名为AsciiMath 的javascript脚本,它应该将类似Tex的方程式转换为标准的mathML.

我认为将这个脚本与GM一起使用会很好.我认为在发送电子邮件之前,此脚本会将您电子邮件中所有类似TeX的公式转换为MathML.因此,使用FF(或安装了MathPlayer的IE)的阅读器将能够轻松读取这些方程式.

理想情况下,我希望以某种方式将原始类似TeX的方程保留在纯文本消息中,以便纯文本电子邮件客户端可以读取它,例如mutt.

显然,这里最薄弱的环节是客户端软件,它很可能不支持MathML.如果我的通讯员使用Firefox和某种网络邮件(这是非常合理的) - 它应该工作.

我的问题是,有可能吗?有人这样做过吗?

您是否看到此方法存在任何技术问题(gmail过滤MathML,客户端无法正确解析它等)?

有更聪明的想法吗?

javascript email gmail latex mathml

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

嵌入式应用程序中的内存管理资源

我应该如何管理关键任务嵌入式应用程序中的内存?

我发现了谷歌的一些文章,但无法确定一个非常有用的实用指南.

DO-178b者禁用动态内存分配,但你将如何管理内存呢?提前预先分配所有内容并发送指向需要分配的每个函数的指针?在堆栈上分配它?使用全局静态分配器(但它与动态分配非常相似)?

例如,答案可以是常规答案,对资源的引用或对良好的开源嵌入式系统的引用.

澄清:这里的问题不在于内存管理是否适用于嵌入式系统.但是什么是嵌入式系统的优秀设计,以最大限度地提高可靠性.

我不明白为什么静态预分配缓冲池,并动态地获取和删除它,与动态分配内存不同.

c embedded malloc memory-management do178-b

7
推荐指数
2
解决办法
2841
查看次数

为什么scala的TreeSet返回SortedSet

是否有一个原因,对象TreeSet.apply方法返回SortedSet,而不是TreeSet

以下代码不会在scala 2.7中编译

val t:TreeSet[Int] = TreeSet(1,2,3)
Run Code Online (Sandbox Code Playgroud)

scala treeset

7
推荐指数
2
解决办法
1213
查看次数

在实时环境中使用C++预分配内存

我有一个获取n字节输入缓冲区的函数,需要一个n字节的辅助缓冲区来处理给定的输入缓冲区.

(我知道vector在运行时分配内存,假设我正在使用一个使用静态预分配内存的向量.想象一下这不是一个STL向量.)

通常的做法是

void processData(vector<T> &vec) {
    vector<T> &aux = new vector<T>(vec.size()); //dynamically allocate memory
    // process data
}
//usage:
processData(v)
Run Code Online (Sandbox Code Playgroud)

由于我在一个实时环境中工作,我希望提前预先分配我需要的所有内存.

缓冲区在启动时仅分配一次.我希望每当我分配一个向量时,我都会自动为我的processData函数分配辅助缓冲区.

我可以用模板功能做类似的事情

static void _processData(vector<T> &vec,vector<T> &aux) {
     // process data
}
template<size_t sz>
void processData(vector<T> &vec) {
    static aux_buffer[sz];
    vector aux(vec.size(),aux_buffer); // use aux_buffer for the vector
    _processData(vec,aux);
}
// usage:
processData<V_MAX_SIZE>(v);
Run Code Online (Sandbox Code Playgroud)

然而,使用模板工作并不是很有趣(现在让我们重新编译所有内容,因为我更改了注释!),并且它强制我在使用此功能时进行一些簿记.

这个问题有没有更好的设计?

c++ memory-management real-time

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

OpenGL:加载纹理会改变当前颜色

我注意到,当我加载纹理时,它可能会改变当前的绘图颜色,具体取决于纹理的颜色.例如在执行之后

glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, info.biWidth,
    info.biHeight, 0, GL_RGB, GL_UNSIGNED_BYTE,bitmap);
glTexParameterf(GL_TEXTURE_2D,
    GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameterf(GL_TEXTURE_2D,
    GL_TEXTURE_MAG_FILTER, GL_LINEAR);
Run Code Online (Sandbox Code Playgroud)

绘制到屏幕上的所有连续多边形将具有一种颜色,具体取决于加载的纹理图像.

那是标准吗?我没有发现记录这种行为.

opengl textures

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

面试问题:在内存中替换两个数组的位置

给定两个连续的数组,AB.他们看起来像

int AandB[] = {a1,a2,...,am,b1,b2,...,bn};
Run Code Online (Sandbox Code Playgroud)

您需要编写一个程序来切换数组的顺序AB在内存中,以便B之前出现A.在我们的例子中,AandB应该成为

int AandB[] = {b1,b2,...,bn,a1,...,am};
Run Code Online (Sandbox Code Playgroud)

最有效的方法是什么?

arrays

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

从集合中获取任意元素

在许多算法中,您应该迭代一组元素,而该集合不为空.

由于您可以在迭代时更改集合,因此通常会将一个元素从集合中拉出,然后执行迭代,可能会在集合中添加或删除元素.这是一个典型的Java代码.

Set<Integer> possibleFactors = Sets.newHashSet(2,3,4,5,6,7,8,100);
while (!possibleFactors.isEmpty()) {
    int factor = possibleFactors.iterator().next();
    for (int i=1;i<10;i++) possibleFactors.remove(i*factor);
}
Run Code Online (Sandbox Code Playgroud)

编辑:如评论中所述,我会举一个更好的例子.我正在迭代用户选择的文件,我通过检查每个项目的权限来过滤它们.但是,作为优化,如果用户没有某个目录的权限,我将从该集中删除其中的所有文件.

Set<Path> input = Sets.newHashSet(userSelectedPaths);
while (!input.isEmpty()) {
    Path path = input.iterator.next();
    input.remove(path);
    if (!expensivePermissionCheck(path)) {
        input.removeAll(path.getFiles());
    } else {
        processPath(path);
    }
}
Run Code Online (Sandbox Code Playgroud)

然而,循环中的第一行看起来很奇怪.它创建了一个多余的Iterable对象,当我想要的是一组中的任意元素时,我不关心它的顺序.

除了性能,它看起来有点怪异,而且可读性较差.

还有更好的选择吗?也许完全不同的结构?

编辑:也许更好的表述是"如何从一组中弹出任意元素?"

java

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

是否有理由在擦除删除习语之外使用`remove`?

就算法而言,从连续数组中移除一组元素可以在两个部分中有效地完成.

  1. 将所有不要删除的元素移动到数组的前面.
  2. 将数组标记为较小.

这可以C++用擦除 - 移除习语来完成.

vector<T> v; // v = {0,1,2,3,0,0,7};
vector<T>::iterator it = remove(v.begin(),v.end(),e);
// move all elements not to be deleted to the front
// Yes, remove is not the brightest name for that.
// Especially as list::remove really remove elements from the list.
// now v = {1,2,3,7,?,?,?} results marked in question marks
// are implementation dependent.
v.erase(it,v.end());
// get rid of the elements marked as question marks.
// v = {1,2,3,7}
Run Code Online (Sandbox Code Playgroud)

现在,问号中元素的内容是未知的.我们唯一可以做的就是摆脱它们(通过覆盖它们,或者删除它们).

有 …

c++ stl

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

java中的iterable <Integer>的Collections.max函数

Java Collections.max仅采用可排序对象的集合.但是,由于集合不一定排序,我认为没有任何理由不为可迭代类型实现相同的max函数.

Iterable<T extends Comparable<? super T>>在java的标准库中有最大的方法吗?

java collections max standard-library

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