小编Tri*_*tan的帖子

装饰器与python web开发中的类

我注意到Python Web框架处理请求处理的三种主要方式:装饰器,带有单个请求方法的控制器类,以及带有GET/POST方法的请求类.

我很好奇这三种方法的优点.这些方法中有哪些主要优点或缺点?为了解决问题,这里有三个例子.

瓶子使用装饰器:

@route('/')
def index():
    return 'Hello World!'
Run Code Online (Sandbox Code Playgroud)

Pylons使用控制器类:

class HelloController(BaseController):
    def index(self):
        return 'Hello World'
Run Code Online (Sandbox Code Playgroud)

Tornado使用请求处理程序类和类型的方法:

 class MainHandler(tornado.web.RequestHandler):
    def get(self):
        self.write("Hello, world")
Run Code Online (Sandbox Code Playgroud)

哪种风格是最佳做法?

python django pylons tornado bottle

10
推荐指数
1
解决办法
1778
查看次数

在R中禁用GUI,图形设备

是否有一种简单的方法来转换R中的所有GUI元素并仅从OSX上的命令行运行它?

我试图在我的OSX机器上复制远程linux终端的行为.因此plot()应该只保存一个文件,CRAN镜像选择之类的东西应该是文本,而不是Tk接口.我无法找到设置此行为的位置.

r

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

F#类型提供程序和数据处理

在上一个问题(使用静态类型语言中的异构数据)中,我询问了F#如何处理数据分析中的标准任务,例如操作无类型的CSV文件.动态语言擅长于基本任务

data = load('income.csv')
data.log_income = log(income)
Run Code Online (Sandbox Code Playgroud)

在F#中,最优雅的方法似乎是问号(?)运算符.不幸的是,在这个过程中我们失去了静态类型,仍然需要在这里和那里进行类型注释.

F#最令人兴奋的未来特征之一是类型提供商.在类型安全性损失最小的情况下,CSV类型提供程序可以通过动态检查文件来提供类型.

但数据分析通常并不止于此.我们经常通过一系列操作来转换数据并创建新的数据集.我的问题是,如果我们主要操纵数据,类型提供商可以提供帮助吗?例如:

open CSV // Type provider
let data = CSV(file='income.csv') // Type provider magic (syntax?)
let log_income = log(data.income) // works!
Run Code Online (Sandbox Code Playgroud)

这可以工作,但会污染全局命名空间.考虑添加列而不是创建新变量通常更为自然.有办法吗?

let data.logIncome = log(data.income) // won't work, sadly.
Run Code Online (Sandbox Code Playgroud)

当目标是创建新的派生数据集或清理数据集时,类型提供程序是否可以避免使用(?)运算符?

也许是这样的:

let newdata = colBind data {logIncome = log(data.income)}  // ugly, does it work?
Run Code Online (Sandbox Code Playgroud)

其他想法?

f# type-providers

9
推荐指数
1
解决办法
1262
查看次数

C++性能分析(谷歌cpu性能工具)到底测量的是什么?

我试图开始使用Google Perf Tools来分析一些CPU密集型应用程序.这是一个统计计算,使用`ofstream'将每个步骤转储到文件中.我不是C++专家,所以我遇到麻烦找到瓶颈.我的第一次传球给出结果:

Total: 857 samples
     357  41.7%  41.7%      357  41.7% _write$UNIX2003
     134  15.6%  57.3%      134  15.6% _exp$fenv_access_off
     109  12.7%  70.0%      276  32.2% scythe::dnorm
     103  12.0%  82.0%      103  12.0% _log$fenv_access_off
      58   6.8%  88.8%       58   6.8% scythe::const_matrix_forward_iterator::operator*
      37   4.3%  93.1%       37   4.3% scythe::matrix_forward_iterator::operator*
      15   1.8%  94.9%       47   5.5% std::transform
      13   1.5%  96.4%      486  56.7% SliceStep::DoStep
      10   1.2%  97.5%       10   1.2% 0x0002726c
       5   0.6%  98.1%        5   0.6% 0x000271c7
       5   0.6%  98.7%        5   0.6% _write$NOCANCEL$UNIX2003

这是令人惊讶的,因为所有真正的计算都发生在SliceStep :: DoStep中."_write $ UNIX2003"(我在哪里可以找到它是什么?)似乎来自编写输出文件.现在,让我感到困惑的是,如果我注释掉所有outfile << "text" …

c++ profiling gperftools

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

搜索中的重要数据结构

我有兴趣教自己不同的数据结构,我目前对此知之甚少.我的计划是实现一些关键结构,以便了解它们的工作原理.我正在寻找有关重要数据结构的建议.

我主要关注与搜索应用程序相关的数据结构(例如Google/Lucene)以及延迟计算和预计算之间的一般权衡.我也对分布式数据结构感兴趣 - 数据结构可以扩展到数百/数千台服务器 - 以及概率数据结构 - 数据结构有助于找到一个近似的答案但不需要总是正确的.

维基百科有一个数据结构列表.我目前正在考虑:

  • 哈希表
  • B + - 树
  • R-树
  • KD树
  • 基树
  • 布隆过滤器

有更好的选择吗?

最后,在像F#这样的语言中实现这些结构是否存在任何(主要)问题?

.net search f# data-structures

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

嵌入F#interactive

有没有一种简单的方法可以将F#interactive(fsi.exe)终端嵌入到应用程序中?更一般地说,是否有fsi.exe可用于调整的代码等?

f#

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

通过转换器在Javascript中实现运算符重载

对于我们中的一些人来说,使用Javascript的一个问题是缺少运算符重载.这使得编写数字库变得尴尬.例如,我们可能想写一些类似的东西:

var a = new BigInteger(5);
var b = new BigInteger(10);
var c = a + b;
Run Code Online (Sandbox Code Playgroud)

一种可能的解决方案是使用运算符重载到Javascript来转换语言.虽然可行 - 通过函数调用和类型检查替换运算符 - 但似乎共识似乎是在不破坏性能的情况下这是不可能的.由于这个原因,CoffeeScript拒绝了这个想法:

https://github.com/jashkenas/coffee-script/issues/846

但真的没有聪明的解决方案吗?

例如,可能有可能从紧密循环中提升类型检查或使用一些其他管道,现代JS编译器可以在类型为数字时优化掉添加的内容.

想法?

javascript coffeescript

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

使用TypeScript从基类中的静态方法实例化子类

作为TypeScript的新手,在实例化子类类型的基类中实现静态工厂的最佳方法是什么.例如,考虑findAll基础模型类中的方法:

class BaseModel {
  static data: {}[];
  static findAll() {
    return this.data.map((x) => new this(x));
  }
  constructor(readonly attributes) {
  }
}

class Model extends BaseModel {
  static data = [{id: 1}, {id: 2}];
  constructor(attributes) {
    super(attributes);
  }
}

const a = Model.findAll();  // This is BaseModel[] not Model[]
Run Code Online (Sandbox Code Playgroud)

这返回BaseModel[]而不是Model[].

typescript

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

使用Web Inspector检查AJAX HTTP请求

有没有一种简单的方法来检查使用WebKit的Web Inspector通过jquery ajax调用发出的HTTP GET/POST/OPTIONS/HEAD等请求?我正在制作响应,我正在寻找一种简单的方法来监控来回的流量.

ajax jquery http web-inspector

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

为什么我需要在JavaScript中转义'/'字符?

究竟需要在javascript字符串中进行转义.或者,更具体地说,为什么

var snaphtml = '<script src="http://seadragon.com/embed/lxe.js?width=auto&height=400px"></script>';
Run Code Online (Sandbox Code Playgroud)

给出语法错误?逃避决赛<\/script>似乎修复了语法错误,但这对我作为javascript初学者没有意义.

javascript

6
推荐指数
1
解决办法
3728
查看次数