小编Lee*_*Lee的帖子

AvalonEdit突出显示匹配的字符

有没有一种简单的方法可以使用Avalon编辑来突出显示匹配的括号和其他字符,如{}""?

c# wpf avalonedit

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

Golang生成一个32字节的密钥

我正在使用这个库进行会话.

https://github.com/codegangsta/martini-contrib/tree/master/sessions

它说:

建议使用32或64字节的身份验证密钥.加密密钥(如果已设置)必须为16,24或32字节才能选择AES-128,AES-192或AES-256模式.

我如何生成一个64字节的密钥,它是否直截了当[]byte"64characterslongstring",我认为它并不总是这么直接?

go

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

Golang惯用错误处理

我已经为独立和嵌入式使用创建了一个"基础"存储库结构(例如,使用CustomerRepository),以避免不断检查错误,并为Gorp(数据库工具包)创建抽象,并创建一个更多的API我很喜欢.

我检查了这个基本结构中的错误,如果发现了一个就发生了恐慌,就像我认为它确实存在一样,然后它表示一个dev错误,代码可能也会出现恐慌,因为在数据进入存储库之前会发生验证等问题. .

我发现了这个问题Go Error Handling Techniques,但它没有涵盖像我一样在基础结构中包装错误而只是恐慌.

我做了什么惯用Go?

package repositories

import (
    "github.com/coopernurse/gorp"
)

type Repository struct {
    Gorp gorp.SqlExecutor
}

func (r *Repository) GetById(i interface{}, id int) interface{} {
    obj, err := r.Gorp.Get(i, id)
    if err != nil {
        panic(err)
    }
    return obj
}

func (r *Repository) Get(holder interface{}, query string, args ...interface{}) interface{} {
    if err := Gorp.SelectOne(holder, query, args); err != nil {
        panic(err)
    }
}

func (r *Repository) Select(i interface{}, query string, args ...interface{}) …
Run Code Online (Sandbox Code Playgroud)

go

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

Vagrant shell配置无效

我一直在尝试使用vagrant在Windows上为Rails开发设置一个Ubuntu虚拟机.

我所做的就是先创建一个"普通" VM和SSHed进去,然后跑了,我需要这样的所有命令sudo易于得到安装apache,以确保他们的工作(这是他们所做的),将它们放入一个前壳脚本.

当我尝试使用我所做的shell脚本运行vagrant时,它会出现一个非常长的错误消息,例如stdin:不是tty和其他同样神秘的错误消息.

我的流浪文件看起来像这样:

Vagrant.configure("2") do |config|

  config.vm.box = "precise32"
  config.vm.provision :shell, :path => "Vagrant.sh" 
  config.vm.network :forwarded_port, host: 3003, guest: 3000,  auto_correct: true

end
Run Code Online (Sandbox Code Playgroud)

我的shell脚本在这里(因为它有点长,GitHub提供语法高亮):https: //gist.github.com/leebrooks0/5477591

和控制台输出在这里:https: //gist.github.com/leebrooks0/5477627

任何帮助将不胜感激.


经过艰难的我已经意识到,甚至没有从流浪汉文档演示脚本(http://docs.vagrantup.com/v2/getting-started/provisioning.html)的作品,这是很奇怪的,因为该脚本绝对昨天工作时我开始做这个工作并试了一下.

vagrant

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

Golang调用接口指针的方法

我正在使用Gorp进行数据库访问,Gorp有一个标准DbMap类型,以及Transaction当你想要回滚时的类型.两种类型都实现了SqlExecutor接口.

因此,我正在编程SqlExecutor接口,所以我可以使用事务,如果我想要,而无需更改我的代码.

然后我初始化Gorp DbMap或者Transaction将其作为字段属性传递.问题是我需要一个指向Gorp"对象"的指针,否则如果我使用一个Transaction如果Gorp"对象"通过值而不是引用传递,我将如何能够回滚.

然后我收到一条消息,如

r.Gorp.Get undefined (type *gorp.SqlExecutor has no field or method Get)
Run Code Online (Sandbox Code Playgroud)

当我尝试使用我的代码.我该如何调用这些方法?

代码示例如下.

package repositories

import (
    "github.com/coopernurse/gorp"
)


type Repository struct {
    Gorp *gorp.SqlExecutor // <<<< Need pointer so I can rollback
}

func (r *Repository) GetById(i interface{}, key interface{}) interface{} {
    obj, err := r.Gorp.Get(i, key)
    if err != nil {
        panic(err)
    }
    return obj
}
Run Code Online (Sandbox Code Playgroud)

go

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

Ruby为什么类实例变量是线程安全的

根据这个答案,他们是,但随后海报说JRuby中的事情有所不同,所以我很困惑?

我正在使用类实例变量实现多租户解决方案,因此我使用的Ruby实现或Web服务器无关紧要,我需要确保数据不会被泄露.

这是我的代码:

class Tenant < ActiveRecord::Base

  def self.current_tenant=(tenant)
    @tenant = tenant
  end

  def self.current_tenant
    @tenant
  end
end
Run Code Online (Sandbox Code Playgroud)

我需要做些什么才能确保无论发生什么(更改Ruby实现,更改Web服务器,新的Ruby线程功能等),我的代码都是线程安全的?

ruby ruby-on-rails

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

golang与Null*类型一起有效地工作

如果一个人正在使用数据库,一个Null*类型对大多数情况都很有用,因为通常不希望"零"值通过,你想要NOT NULL约束等,并提醒你没有传入所有必要的数据.

因此,您创建如下所示的结构:

type Role struct {
    Id   sql.NullInt64
    Code sql.NullString
}
Run Code Online (Sandbox Code Playgroud)

多数民众赞成,但现在你无法直接访问这些属性并且必须同时使用Role.Id.Value以获取和设置,当你每次想要访问的时候都需要额外的步骤时,这将在大型应用程序中变得相当老旧.属性.

如果你可以直接分配,那将是很好的.Role.Code = "Fsfs",并且能够做Role.Code.IsNull你喜欢null检查的事情.这样的事情可能吗?

go

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

Golang后台处理

如何在Go中进行后台处理/排队?

例如,用户注册,并向您发送确认电子邮件 - 您希望在后台发送确认电子邮件,因为它可能很慢,邮件服务器可能已关闭等等.

在Ruby中,一个非常好的解决方案是DelayedJob,它将您的工作排队到关系数据库(即简单可靠),然后使用后台工作程序来运行任务,并在作业失败时重试.

我正在寻找一个简单可靠的解决方案,如果可能的话,不是低级别的.

go

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

Golang Fprint*f代表什么

fmt包具有一些字符串格式化功能. Sprint*我很确定代表字符串打印. Print*写给STDOUT F这些Fprint*功能代表什么?

go

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

Rails save 返回 true 但不保存任何内容

我有一些代码可以使用 Omniauth 为 Oauth 查找用户。

如果用户在第 1 天使用 Facebook 登录,在第 2 天使用 FB 更改他们的电子邮件地址并在第 3 天重新登录我的应用程序,我想更新存档的电子邮件地址。

下面的代码应该同步电子邮件地址。我使用 AwesomePrint 将电子邮件地址写入控制台,它们是不同的。但是 save 返回 true 但电子邮件地址没有更新?

 def self.find_or_create_for_oauth(auth)
    social_identity = SocialIdentity.find_for_oauth(auth.provider, auth.uid)
    email = auth.info.email

    if social_identity.nil?
        user = find_by_email(email)

        if user.nil?
           # create user for email with random password
        end

        social_identity = user.social_identities.create!(
            provider: auth.provider,
            uid: auth.uid
         )
     end

     user = social_identity.user

     ap user.email # email address 1
     ap email # email address 2

     if user.email != email
         user.email = email
         ap …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails

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

标签 统计

go ×6

ruby ×2

ruby-on-rails ×2

avalonedit ×1

c# ×1

vagrant ×1

wpf ×1