我想为特定模型的所有集合添加一个方法.假设我想将该方法添加my_complicated_averaging_method到WeatherData集合中:
WeatherData.all.limit(3).my_complicated_averaging_method()
Station.first.weatherdata.my_complicated_averaging_method()
Run Code Online (Sandbox Code Playgroud)
做这个的最好方式是什么?目前,我找到的唯一方法是这样的:
class WeatherData < ActiveRecord::Base
def self.my_complicated_averaging_method
weighted_average = 0
@relation.each do |post|
# do something complicated
# weighted_average =
end
return weighted_average
end
end
Run Code Online (Sandbox Code Playgroud)
这是将方法添加到集合的好方法吗?有没有更好/支持的方式来做到这一点?
我可以配置Vim,以便进行原子写入吗?
默认的Vim行为是:
file.txt到file.txt~file.txt但这会导致一些问题,compass watch例如
我想要的行为如下:
file.txt~file.txt~到file.txt我已经看过了备份,backupcopy和writebackup选择,但我不能让Vim的配置为我想.
我安装了 ubuntu,默认安装了pulseaudio。当pulseaudio运行时,它可以工作:aplay -D hw:2,7 /usr/share/xbmc/sounds/Bursting\ Bubbles/nav.wav
但当没有pulseaudio 守护进程运行时,它就不会。该命令没有给出错误,但我听不到声音。
hw:2,7 是 Nvidia hdmi 设备。
为什么是这样?我想不通。
有没有人知道scipy.stats.norm.pdf()的替代品?我在Google App Engine上托管我的python网站,Google不支持SciPy.
我尝试过这个函数,但是没有返回与scipy相同的结果:
def normpdf(x, mu, sigma):
u = (x-mu)/abs(sigma)
y = (1/(sqrt(2*pi)*abs(sigma)))*exp(-u*u/2)
return y
Run Code Online (Sandbox Code Playgroud)
例如:
print scipy.stats.norm.pdf(20, 20, 10)
print normpdf(20, 20, 10)
print scipy.stats.norm.pdf(15, 20, 10)
print normpdf(15, 20, 10)
print scipy.stats.norm.pdf(10, 20, 10)
print normpdf(10, 20, 10)
Run Code Online (Sandbox Code Playgroud)
返回以下值:
0.0398942280401
0.0398942280401
0.0352065326764
0.0146762663174
0.0241970724519
0.0146762663174
Run Code Online (Sandbox Code Playgroud) 有谁知道在Highcharts中是否可以创建这样的东西:

这是关于顶部的天气图标.我将它们添加为"散点图",这很好,因此可以禁用图像/图形.但我希望他们永远在顶端.例如:y = 20px或其他东西.是否可以使用Highchart执行此操作?我知道将他们的数据设置为"30 celcius"但如果温度上升到30度,那将会弄乱图表.
我有一个程序,可以从内存映射中读取 173 (c) 个数据结构,这些数据结构需要转换为 Go。类型的值作为字符串存储在这些结构中。每秒接收该结构 60 次。
我现在使用反射(FieldByName)来获取对 go struct 字段的引用并设置接收到的数据。但是因为有很多字段(173)并且它们更新了很多,所以这增加了很多开销,并且该函数调用是我的程序中最慢的部分(jay go prof!)。
加快速度的最佳方法是什么?据我所知,我有三个选择:
reflect.Value在映射中并创建一个接收数据的函数,使用绑定到缓存映射的模板结构,填充该结构并返回该模板结构的副本go generate每个接收字段的所有设置器和一个巨大的 switch 语句什么是“最好”的选择?有一个我忽略的选项吗?
我正在尝试为网站设置一种打印服务,以便与(pdf,html,excel)进行通信并发送可打印的文档.我决定去.
我在下面创建了简单的程序.在某些电脑上,它可以在其他电脑上工作(Windows 7)(Windows 8)它不起作用(右).当它不起作用时,作业在打印队列中可见不到一秒钟然后消失.代码不输出任何错误.我在Windows事件日志中找不到任何内容.
我也在c ++中尝试了一个RawPrinter示例,我可以在网上找到但是显示了相同的行为.
有谁知道我做错了什么?:(
package main
import (
"fmt"
"code.google.com/p/brainman/printer"
)
func main() {
defaultPrinterName, _ := printer.Default()
fmt.Println(defaultPrinterName)
p, err := printer.Open(defaultPrinterName)
if err != nil {
fmt.Println("Open failed: %v", err)
}
defer p.Close()
err = p.StartDocument("my document", "RAW")
if err != nil {
fmt.Println("StartDocument failed: %v", err)
}
defer p.EndDocument()
err = p.StartPage()
if err != nil {
fmt.Println("StartPage failed: %v", err)
}
str := "testing 123"
mySlice := []byte(str)
_, err = p.Write(mySlice)
if …Run Code Online (Sandbox Code Playgroud) 我正在尝试更好地理解 go。我为自己创建了一个小练习:将指针切片传递给函数并修改它。
这就是我想出的:
package main
import (
"fmt"
"unsafe"
)
func main() {
var data *[]byte
fillData(data)
fmt.Println((*data)[0:5])
}
func fillData(data *[]byte) {
b := []byte("hello")
fmt.Println(b[0:5])
fmt.Println(string(b[0:5]))
data = (*[]byte)(unsafe.Pointer(&b[0]))
}
Run Code Online (Sandbox Code Playgroud)
但它给出了一个invalid memory address or nil pointer dereference错误。我知道我不会在实际代码中使用这样的东西,但我只是好奇如何传递切片并修改它而不返回它。
go ×3
activerecord ×1
alsa ×1
highcharts ×1
javascript ×1
math ×1
pulseaudio ×1
python ×1
reflection ×1
scipy ×1
vim ×1
winapi ×1
windows-8 ×1