小编Edw*_*ler的帖子

如何将JavaScript forEach循环/函数转换为CoffeeScript

背景:我正在尝试将使用带有D3.js数据可视化库的Crossfilter库的一些JavaScript代码转换为CoffeeScript.

将JavaScript forEach循环/函数转换为CoffeeScript的最佳方法是什么?

这是JavaScript代码:

// A little coercion, since the CSV is untyped.
flights.forEach(function(d, i) {
    d.index = i;
    d.date = parseDate(d.date);
    d.delay = +d.delay;
    d.distance = +d.distance;
});
Run Code Online (Sandbox Code Playgroud)

CoffeeScript可以在循环中执行内联函数吗?现在我猜我需要把它分解成一个函数和循环:

coerce = (d) ->
     d.index    = 1
     d.date     = parseDate(d.date)
     d.delay    = +d.delay
     d.distance = +d.distance

coerce(flights) for d in flights
Run Code Online (Sandbox Code Playgroud)

javascript foreach coffeescript d3.js crossfilter

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

无法使ActionMailer通过SMTP与MS Exchange一起使用

这是我的简单测试程序(使用ActionMailer 3.0.8,Ruby 1.9.2p180 Mac OS X):

require 'rubygems'
require 'action_mailer'

ActionMailer::Base.delivery_method = :smtp

ActionMailer::Base.smtp_settings = {
    :address => "my_exchange_server",
    :port => 25,
    :domain => 'my_domain.org',
    :authentication => :login,
    :user_name => 'my_user',
    :password => 'my_password',
    :enable_starttls_auto => false
}

ActionMailer::Base.raise_delivery_errors = true
ActionMailer::Base.perform_deliveries = true
ActionMailer::Base.default :from => 'from_email@my_company.com'

m = ActionMailer::Base.mail :to => 'to_email@my_company.com', :subject => 'this is a test', :body => 'this is a test'
m.deliver
Run Code Online (Sandbox Code Playgroud)

尝试各种身份验证类型我收到以下错误:

:普通错误:

smtp.rb:966:in `check_auth_response': 504 5.7.4 Unrecognized authentication type. (Net::SMTPAuthenticationError)
Run Code Online (Sandbox Code Playgroud)

:登录错误:

smtp.rb:972:in `check_auth_continue': …
Run Code Online (Sandbox Code Playgroud)

ruby email exchange-server smtp ruby-on-rails-3

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

如何从Elixir通过ODBC选择数据?

我找不到任何文档或示例.到目前为止,我可以成功连接,但我不知道选择和返回数据的语法.

:odbc.start()
{:ok, conn} = :odbc.connect('DSN=mydsn;UID=myuid;PWD=mypwd', [])
:odbc.execute_stmt(conn, 'select count(*) from mytable')
:odbc.stop()
Run Code Online (Sandbox Code Playgroud)

**(UndefinedFunctionError)未定义函数:: odbc.execute_stmt/2(odbc):odbc.execute_stmt(#PID <0.85.0>,'从mytable中选择计数(*)')


2015年10月6日更新

我发现了怎么做.我相信我找不到有关Elixir的任何文档,因为Elixir只是对Erlang库进行了传递.

在任何情况下,它是sql_queryselect_count:

{:selected, colNames, rows} = :odbc.sql_query(conn, 'select count(*) from mytable')
Run Code Online (Sandbox Code Playgroud)

{:已选中,['COUNT'],[{'182'}]}

{:ok, count} = :odbc.select_count(conn, 'select * from mytable')
Run Code Online (Sandbox Code Playgroud)

{:好的,182}


2015年10月7日更新

这是我的最终代码,我认为这更加惯用:

:odbc.start()
case :odbc.connect('DSN=mydsn;UID=#{System.get_env("MY_UID")};PWD=#{System.get_env("MY_PASSWORD")}', []) do
  {:ok, conn} ->
    case :odbc.sql_query(conn, 'select count(*) from mytable') do
      {:selected, _colNames, [{count}]} -> IO.puts "count = #{count}"
      {:error, err} -> {:error, err}
    end
  {:error, err} -> {:error, err} 
end
:odbc.stop()
Run Code Online (Sandbox Code Playgroud)

odbc elixir

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

D3.js中具有自动文本大小的可缩放圆形包装

我正在尝试合并Mike的两个例子:Zoomable Circle Packing + Automatic Text Sizing.

它最初显示在顶层时有效.但是,如果放大到下一级别,字体的大小不正确.

我不确定是否需要修改变换,或修改计算字体大小的部分.

这是我的代码:http://codepen.io/anon/pen/GJWqrL

var circleFill = function(d) {
    if (d['color']) {
        return d.color;
    } else {
        return d.children ? color(d.depth) : '#FFF';
    }
}

var calculateTextFontSize = function(d) {
    return Math.min(2 * d.r, (2 * d.r - 8) / this.getComputedTextLength() * 11) + "px";
}

var margin = 20,
    diameter = 960;

var color = d3.scale.linear()
    .domain([-1, 18])
    .range(["hsl(0,0%,100%)", "hsl(228,30%,40%)"])
    .interpolate(d3.interpolateHcl);

var pack = d3.layout.pack()
    .padding(2)
    .size([diameter - margin, …
Run Code Online (Sandbox Code Playgroud)

javascript data-visualization d3.js circle-pack

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

Elixir的日期范围?

Elixir是否支持日期范围?例如,在Elixir中可以使用这样的Ruby代码吗?

require 'date'

d1 = Date::civil 2015, 1, 1
d2 = Date::civil 2015, 1, 7

(d1..d2).each {|d| puts d }
Run Code Online (Sandbox Code Playgroud)

输出:

2015-01-01
2015-01-02
2015-01-03
2015-01-04
2015-01-05
2015-01-06
2015-01-07

elixir

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

如何从Elixir中的元组中提取列表中的整数?

我正在尝试从Elixir中的ODBC数据库中获取计数.我可以看到我的结果回来了,但是,我不知道如何提取价值.

{:ok, conn} = :odbc.connect('DSN=mydsn;UID=myuid;PWD=mypwd', [])
{:selected, _colNames, rows} = :odbc.sql_query(conn, 'select count(*) from mytable')
Run Code Online (Sandbox Code Playgroud)

{:已选中,['COUNT'],[{'182'}]}

如何以整数形式获得182?

我得到的最接近的是获得内部元组:

hd(rows)
Run Code Online (Sandbox Code Playgroud)

{ '182'}

elixir

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

Pandas DataFrame 的条件计算列

我在 Pandas DataFrame 中有一个计算列,需要根据条件进行分配。例如:

if(data['column_a'] == 0):
    data['column_c'] = 0
else:
    data['column_c'] = data['column_b']
Run Code Online (Sandbox Code Playgroud)

但是,这会返回错误:

ValueError:系列的真值不明确。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()。

我有一种感觉,这与必须以矩阵样式完成的事实有关。将代码更改为三元语句也不起作用:

data['column_c'] = 0 if data['column_a'] == 0 else data['column_b']
Run Code Online (Sandbox Code Playgroud)

有谁知道实现这一目标的正确方法?将 apply 与 lambda 一起使用?我可以通过循环进行迭代,但我宁愿保持这种首选的 Pandas 方式。

python dataframe pandas

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

在 Go 中测试 lambda 处理程序时如何模拟 AWS Lambda 上下文?

我有一个用 Go 编写的 S3 触发的 AWS Lambda。我已经能够成功测试所有辅助代码,但是,我一直在尝试测试 lambda 处理程序。

这是我的处理程序的签名:

func HandleRequest(ctx context.Context, s3Event events.S3Event)
Run Code Online (Sandbox Code Playgroud)

这是测试代码:

package main

import (
  "context"
  "encoding/json"
  "testing"

  "github.com/aws/aws-lambda-go/events"
  "github.com/stretchr/testify/assert"
)

func TestHandleRequest(t *testing.T) {
  // 1. read JSON from file
  inputJSON, err := readJSONFromFile("./testdata/s3-event.json")
  if err != nil {
    t.Errorf("could not open test file. details: %v", err)
  }

  // 2. de-serialize into Go object
  var inputEvent events.S3Event
  if err := json.Unmarshal(inputJSON, &inputEvent); err != nil {
    t.Errorf("could not unmarshal event. details: %v", err)
  } …
Run Code Online (Sandbox Code Playgroud)

go amazon-web-services aws-lambda

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

如何在Rails 3中的cookie中存储登录用户名?

我想将登录用户名存储在cookie中,该cookie将在2周左右到期.我还希望登录视图填充cookie中的用户名.没有"记住我"复选框或任何必要的身份验证代码.

基于下面的答案,这是我工作的伪代码:

# encoding: utf-8
class SessionsController < ApplicationController
  skip_before_filter :authorize

  def new
    params[:username] = cookies[:username] unless cookies[:username].nil?
  end

  def create
    if user
      cookies[:username] = {:value => params[:username].downcase, :expires => 2.weeks.from_now }
    end
  end

end
Run Code Online (Sandbox Code Playgroud)

为清楚起见,省略了大部分代码.

cookies login ruby-on-rails ruby-on-rails-3

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

如何从 Python 蛋中的子模块导入函数?

我有一个我编写的自定义 Python 蛋,我无法从外部加载子模块(或嵌套模块)。我已经能够很好地加载一个根级模块。

这是混淆的结构:

我的蛋/
    我的蛋/
        __init__.py(空文件)
        module_one.py
        我的子目录\
            __init__.py(空文件)
            module_two.py
    设置文件

导入 module_one 有效:

from my_egg import module_one
Run Code Online (Sandbox Code Playgroud)

但我似乎无法导入 module_two。这是我尝试过的:

from my_egg.my_subdir import module_two
from my_egg import my_subdir.module_two
from my_egg.my_subdir.module_two import *
Run Code Online (Sandbox Code Playgroud)

这些都没有用。这是我的 setup.py 的样子:

from setuptools import setup

setup(name='my_egg',
  version='0.1',
  packages=['my_egg'],
  test_suite='nose.collector',
  tests_require=['nose'],
  zip_safe=False)
Run Code Online (Sandbox Code Playgroud)

python egg setuptools

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

需要正则表达式模式以匹配日期和可选时间

我需要一个与日期和可选时间匹配的正则表达式模式.

日期应为m/d/yyyy格式的有效美国日期.时间应该是h:mm:ss am/pm24小时或24小时hh:mm:ss.

赛事:2011年9月1日| 2011年9月1日上午10:00 | 9/1/2011 10:00 AM | 2011年9月1日10:00:00

这个模式将在Ruby on Rails项目中使用,因此它应该是可以通过Ruby使用的格式.请参阅http://rubular.com/进行测试.

这是我现有的日期模式(可能是过度杀戮):

DATE_PATTERN = /^((((0[13578])|([13578])|(1[02]))[\/](([1-9])|([0-2][0-9])|(3[01])))|(((0[469])|([469])|(11))[\/](([1-9])|([0-2][0-9])|(30)))|((2|02)[\/](([1-9])|([0-2][0-9]))))[\/]\d{4}$|^\d{4}/
Run Code Online (Sandbox Code Playgroud)

ruby regex datetime

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