问题列表 - 第43752页

带有活动记录的 rails 控制台中的线程在数据库中找不到模型

我正在使用 Rails 3 和 Ruby 1.9。

我在各种 Rails 测试(和控制台)中运行 2 种方法。方法被调用index_casesindex_new_cases方法体如下所示。该index_new_cases方法的内容可能不相关(我正在使用 Sunspot gem 索引 ModelCase 信息),但为了完整性我将其保留在那里。

我有 3 case_numbers。每个case_number匹配ModelCase数据库中的一个(即数据库中有 3ModelCase条记录)。

当我使用这 3 个case_numbersindex_cases方法运行测试时,该index_new_cases方法不会使用该ModelCase.where…方法检索任何案例。但是,如果我删除方法中的“线程”调用index_cases,该index_new_cases函数现在会检索所有 3 个案例并正确索引它们。

谁能向我解释为什么我的线程找不到数据库记录?我的线程实现是错误的吗?谢谢!

  def index_cases(case_numbers)
    threads = []
    case_numbers.each_slice(500) do |slice_of_case_numbers|
      threads << Thread.new(slice_of_case_numbers) do |a_slice|
        index_new_cases(a_slice)
      end
    end
    threads.each {|thr| thr.join}
  end

  def index_new_cases(case_numbers)
    cs = ModelCase.where(case_number: case_numbers).includes(:child_tables)
    puts cs.size # …
Run Code Online (Sandbox Code Playgroud)

ruby multithreading ruby-on-rails thread-safety

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

为什么map(^ 2)xs和map(2 ^)xs在Haskell中都按预期工作?

为什么

map (^2) [1..10]
Run Code Online (Sandbox Code Playgroud)

工作也

map (2^) [1..10]
Run Code Online (Sandbox Code Playgroud)

工作?

我希望它只与其中一个合作,而不是两者兼而有之.

我认为地图将迭代所有元素[1..10]然后再做

[1^2, 2^2, 3^2, ...]
Run Code Online (Sandbox Code Playgroud)

map (^2) [1..10].那么我希望在给出时map (2^) [1..10],它会产生一个sintax错误或其他东西,因为它需要数字在之后^,而不是之前.

haskell functional-programming

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

如何确定使用delayed_jobs gem创建的作业的优先级?

我正在使用delayed_job gem这样:

Delayed::Job.enqueue Note.new(parameter_hash)
Run Code Online (Sandbox Code Playgroud)

这些工作由Heroku工作人员处理.我需要优先考虑一些工作.我知道delayed_job有一个优先级设置,但我不确定如何将它与上述作业创建行一起使用.

我如何把工作放在更高的优先级?

ruby-on-rails delayed-job

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

接近log10 [x ^ k0 + k1]

问候.我正在尝试近似函数

Log10 [x ^ k0 + k1],其中.21 <k0 <21,0 <k1 <~2000,并且x是整数<2 ^ 14.

k0和k1是不变的.出于实际目的,可以假设k0 = 2.12,k1 = 2660.期望的精度是5*10 ^ -4相对误差.

这个函数实际上与Log [x]相同,除了0附近,它有很大的不同.

我已经提出了一个比简单查找表快1.15倍的SIMD实现,但是如果可能的话我想改进它,我认为由于缺乏有效的指令而非常困难.

我的SIMD实现使用16位定点算法来评估三次多项式(我使用最小二乘拟合).多项式对不同的输入范围使用不同的系数.有8个范围,范围i跨越(64)2 ^ i到(64)2 ^(i + 1).这背后的理性是Log [x]的导数随x快速下降,这意味着多项式将更准确地拟合它,因为多项式非常适合于具有超出某个阶的0的导数的函数.

使用单个_mm_shuffle_epi8()可以非常有效地完成SIMD表查找.我使用SSE的float到int转换来获得指数和有效数,用于固定点近似.我还通过软件管道化循环以获得~1.25倍的加速,因此可能不太可能进行进一步的代码优化.

我要问的是,如果在更高的水平上有更高效的近似值?例如:

  1. 可以将此函数分解为具有有限域的函数,如log2((2 ^ x)*significand)= x + log2(有效数字)

因此消除了处理不同范围(表查找)的需要.我认为的主要问题是添加k1术语会杀死我们所知道和喜爱的所有那些不错的日志属性,这使得它无法实现.或者是吗?

  1. 迭代方法?不要这么认为,因为log [x]的牛顿方法已经是一个复杂的表达式

  2. 利用邻近像素的局部性? - 如果8个输入的范围落在相同的近似范围内,那么我可以查找单个系数,而不是查找每个元素的单独系数.因此,我可以将其用作快速常见的情况,并在不使用时使用较慢的通用代码路径.但是对于我的数据,在该属性保持70%的时间之前,范围需要大约2000,这似乎不会使这种方法具有竞争力.

请给我一些意见,特别是如果你是一名应用数学家,即使你说它不能完成.谢谢.

math optimization sse simd approximation

11
推荐指数
1
解决办法
1091
查看次数

IllegalStateException:从第0行col -1获取字段槽失败

这是我的LogCat:

01-15 22:13:08.277: ERROR/AndroidRuntime(28747): java.lang.IllegalStateException: get field slot from row 0 col -1 failed
01-15 22:13:08.277: ERROR/AndroidRuntime(28747):     at android.database.CursorWindow.getLong_native(Native Method)
01-15 22:13:08.277: ERROR/AndroidRuntime(28747):     at android.database.CursorWindow.getLong(CursorWindow.java:414)
01-15 22:13:08.277: ERROR/AndroidRuntime(28747):     at android.database.AbstractWindowedCursor.getLong(AbstractWindowedCursor.java:108)
01-15 22:13:08.277: ERROR/AndroidRuntime(28747):     at android.database.CursorWrapper.getLong(CursorWrapper.java:127)
01-15 22:13:08.277: ERROR/AndroidRuntime(28747):     at com.mohit.geo2do.adapters.TasksAdapter.bindView(TasksAdapter.java:60)
01-15 22:13:08.277: ERROR/AndroidRuntime(28747):     at android.widget.CursorAdapter.getView(CursorAdapter.java:186)
01-15 22:13:08.277: ERROR/AndroidRuntime(28747):     at android.widget.AbsListView.obtainView(AbsListView.java:2818)
01-15 22:13:08.277: ERROR/AndroidRuntime(28747):     at android.widget.ListView.measureHeightOfChildren(ListView.java:1218)
01-15 22:13:08.277: ERROR/AndroidRuntime(28747):     at android.widget.ListView.onMeasure(ListView.java:1131)
01-15 22:13:08.277: ERROR/AndroidRuntime(28747):     at android.view.View.measure(View.java:8039)
01-15 22:13:08.277: ERROR/AndroidRuntime(28747):     at android.widget.RelativeLayout.measureChild(RelativeLayout.java:554)
01-15 22:13:08.277: ERROR/AndroidRuntime(28747):     at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:377)
01-15 22:13:08.277: ERROR/AndroidRuntime(28747):     at android.view.View.measure(View.java:8039) …
Run Code Online (Sandbox Code Playgroud)

java sqlite android cursor

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

rundll32.exe等效于64位DLL

是否有相当于rundll32.exe用于调用64位DLL?

win64 rundll32

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

简单的编译器错误:Perl太新了解如何修复它们

您好我刚刚开始学习Perl.我有这个简单的温度应用程序,但它没有编译,我不明白是什么错误以及如何解决它们?

你能指出我做错了什么以及如何解决它们:

#!/usr/local/bin/perl

use strict;
use warnings;
use constant false >= 0;
use constant true  >= 1;

# Experimentation: Array & Hashes:

my @ar = ("a", "b", "c"); # error here
print $ar, "\n";
print $ar[0], "\n";
print $#ar, "\n";
print "The size of array = $#ar \n";
print "Trying to print $ar[1] within a string: ", $ar[1], " \n";

my %ha  = ( "a" => 1, "b", "c", "d" ); # error here
print $ha, "\n";
print $ha{"a"}, "\n"; …
Run Code Online (Sandbox Code Playgroud)

perl

0
推荐指数
1
解决办法
1751
查看次数

ListBox和ListView之间的区别是什么

WPF的ListBox和ListView有什么区别?我发现他们的属性没有任何显着差异.有不同的典型用途吗?

.net wpf wpf-controls

185
推荐指数
3
解决办法
12万
查看次数

在Ruby中创建一个Expando对象

有没有更好的方法来编写这个Expando类?它的编写方式不起作用.我正在使用Ruby 1.8.7

起始代码来自https://gist.github.com/300462/3fdf51800768f2c7089a53726384350c890bc7c3

class Expando
    def method_missing(method_id, *arguments)
        if match = method_id.id2name.match(/(\w*)(\s*)(=)(\s*)(\.*)/)
              puts match[1].to_sym # think this was supposed to be commented 
              self.class.class_eval{ attr_accessor match[1].to_sym } 
              instance_variable_set("#{match[1]}", match[5])
        else
              super.method_missing(method_id, *arguments)
        end  
    end    
end

person = Expando.new 
person.name = "Michael"
person.surname = "Erasmus"
person.age = 29 
Run Code Online (Sandbox Code Playgroud)

ruby expando

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

将MySQL查询转换为对象的最佳方法

我有一个用户表,其中包含我要在登录用户的mysql查询中访问的一堆列.最终,我希望这些列中的值形成一个User对象.是否有标准函数来执行此操作,或者我是否基本上需要将查询的每个值传递给新的User语句,以便将它们传递给User类的构造函数?

php mysql constructor object

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