小编edu*_*911的帖子

Github"致命:远程起源已经存在"

我想跟随Michael Hartl的Rails教程,但我遇到了一个错误.

我在Github上注册并发布了一个新的SSH密钥并创建了一个新的存储库.但是当我进入终端的下一行时,我收到以下错误:

Parkers-MacBook-Pro:.ssh ppreyer$ git remote add origin git@github.com:ppreyer/first_app.git
fatal: remote origin already exists.
Run Code Online (Sandbox Code Playgroud)

只是想知道是否有其他人遇到过这个问题?

terminal github github-for-mac

425
推荐指数
15
解决办法
48万
查看次数

NoSQL(MongoDB)与Lucene(或Solr)作为您的数据库

随着基于文档的数据库的NoSQL运动的增长,我最近看了MongoDB.我注意到与如何将项目视为"文档"有惊人的相似之处,就像Lucene(和Solr的用户)一样.

所以,问题是:你为什么要使用NoSQL(MongoDB,Cassandra,CouchDB等)而不是Lucene(或Solr)作为你的"数据库"?

我(我相信其他人)在答案中寻找的是对它们的深入比较.让我们一起跳过关系数据库讨论,因为它们有不同的用途.

Lucene提供了一些重要的优势,例如强大的搜索和重量系统.更不用说Solr的一个方面(Solr很快被整合到Lucene中,是的!).您可以使用Lucene文档来存储ID,并像MongoDB一样访问文档.将它与Solr混合,您现在可以获得基于WebService的负载平衡解决方案.

在讨论MongoDB的类似数据存储和可伸缩性时,您甚至可以对Velocity或MemCached等进程外缓存提供程序进行比较.

MongoDB的限制让我想起了使用MemCached,但我可以使用Microsoft的Velocity,并且对MongoDB有更多的分组和列表收集功能(我认为).无法比内存中的缓存数据更快或更具可扩展性.甚至Lucene都有一个内存提供商.

MongoDB(以及其他)确实具有一些优势,例如API的易用性.新建文档,创建ID并存储它.完成.好,易于.

lucene memcached solr mongodb nosql

273
推荐指数
7
解决办法
7万
查看次数

每个核心的最佳线程数

假设我有一个4核CPU,我想在最短的时间内运行一些进程.这个过程理想上是可并行化的,所以我可以在无限数量的线程上运行它的块,每个线程花费相同的时间.

由于我有4个内核,我不希望通过运行比内核更多的线程来加速,因为单个内核只能在给定时刻运行单个线程.我对硬件知之甚少,所以这只是猜测.

在比线程更多的线程上运行可并行化的进程是否有好处?换句话说,如果我使用4000个线程而不是4个线程运行它,我的进程会更快,更慢,还是在大约相同的时间内完成?

parallel-processing cpu

265
推荐指数
8
解决办法
17万
查看次数

我们如何更改正在运行的GitLab安装的URL?

我已经设置好了,我们正在运行GitLab v6.0.1的默认安装(我们即将升级).这是一个"生产"设置,遵循本指南正好写到这封信:

https://github.com/gitlabhq/gitlabhq/blob/master/doc/install/installation.md

现在,我们如何安全地更改工作安装的URL?

显然我们的网址很长,我们想出了一个新网址.我编辑了许多配置文件,"应用程序状态检查"报告一切正常.我重新启动了服务器,以确保一切正常.

我可以通过原始SSL访问Nginx.我可以浏览GitLab站点,创建一个存储库等.我可以分叉并提交就好了.

一切似乎都没问题; 但是,由于这不是我的原生环境,我想仔细检查我是否已经完成了重命名GitLab网站的所有工作.

我编辑的文件是:

/etc/hosts
  127.0.0.1  localhost
  10.0.0.10  wake.domain.com    wake
  10.0.0.10  git.domain.com     git

/home/git/gitlab/config/gitlab.yml
  production: &base
    gitlab:
      host: git.domain.com

/home/git/gitlab-shell/config.yml
  gitlab_url: "https://git.domain.com"
  ^- yes, we are on SSL and that is working, even on a new URL

/etc/nginx/sites-available/gitlab
  server {
    server_name git.domain.com
Run Code Online (Sandbox Code Playgroud)

gitlab

87
推荐指数
4
解决办法
13万
查看次数

为什么我需要使用http.StripPrefix来访问我的静态文件?

main.go

package main

import (
    "net/http"
)

func main() {
    http.Handle("/static/", http.StripPrefix("/static/", http.FileServer(http.Dir("static"))))
    http.ListenAndServe(":8080", nil)
}
Run Code Online (Sandbox Code Playgroud)

目录结构:

%GOPATH%/src/project_name/main.go
%GOPATH%/src/project_name/static/..files and folders ..
Run Code Online (Sandbox Code Playgroud)

即使在阅读完文档后,我也无法理解http.StripPrefix这里究竟是做什么的.

1)localhost:8080/static如果删除,为什么我无法访问http.StripPrefix

2)/static如果删除该功能,哪个URL映射到文件夹?

http url-rewriting url-routing go server

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

DDD:在哪里保留域接口,基础设施?

在Infrastructure层中对所有域层(模块,模型,实体,域服务等)的所有接口进行分组是否有意义?如果没有,创建一个将所有这些组合成共享库的"共享"项目/组件是否有意义?毕竟,"Infrastructure Layer"的定义包括"Domain,Application和UI层的共享库".

我正在考虑围绕DDD层设计我的代码库:UI,应用程序,域,基础架构.这将恭敬地创建4个项目.我的观点是,您从域层引用了基础架构层.但是,如果您在Domain Layer项目中定义接口,比如说IPost,那么当您在定义IPostRepository.Save(IPost post)方法时必须从Infrastructure项目引用Domain Layer项目时,您将有一个循环参考.因此,"定义共享库中的所有接口"的想法.

也许存储库不应该期望一个对象要保存(IPostRepository.Save(IPost post);而是期望对象的params(可能是Save()中的一长串params).给定,这可能是一个理想的情况,显示一个对象变得过于复杂,并且应该为它寻找额外的值对象.

思考?

domain-driven-design

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

NUnit与团队系统单元测试

你喜欢哪个?

每个单元测试的优点和缺点是什么?

编辑:我承认Team System提供的不仅仅是单元测试,例如应用程序和数据库的性能和负载测试.这个问题围绕着编写单元测试,你更喜欢哪个.

nunit unit-testing

16
推荐指数
2
解决办法
3710
查看次数

如何在INSERT模式下触发键盘上的omnicomplete/auto-completion?

VIM的omnicomplete自动完成并没有像预期的那样正常工作.

有没有办法让它变得更聪明?比如,要监控环绕文本的上下文?(例如,如果在评论或引用中不要触发)

我问,因为与IDE中的自动完成/智能感知(如Visual Studio,IntelliJ,Sublime和Atom)相比,自从切换到Vim后我无法进入一个快乐的地方(我过去曾使用所有这些进行开发).

这个问题的基本目标:

  • 在INSERT模式下,可以在A-Za-z击键时触发Omnicomplete吗?我已经通过"."触发了它.点符号.
  • 如何让Omnicomplete插入func的参数?

我是Vim新手几个月,拼命想要顺利完成工作流程.但是如果没有一个好的自动完成选项,虽然强迫我在学习我试图使用的代码时更加警惕,但它比我过去使用的其他IDE慢得多.

Atom + Go-Plus

让我们用Atom + Go-Plus来检验我的期望.

我有一个名为func generate(entropy chan<- uint64)位于同一个包中另一个Go文件中其他位置的func .

当我g在第22行输入字母时,我立即得到一个以g开头的所有内容的提示:

Atom使用Go-Plus自动完成

正如您所看到的,有3个选项可以立即弹出(前两个我认为只是代码片段).我可以使用箭头键向下滚动到任一选项.

如果我选择第3个选项(或者如果我继续输入gen字段缩小到只有1个选项),press enterAtom/Visual Studio/Sublime都会为我填写方法的详细信息:

具有go-plus自动完成的原子

我没有输入任何上述内容.它被插入,我可以覆盖细节,修改它们,或只是TAB关闭并继续键入.

Vim + Vim-Go(真的是Omnicomplete)

让我们将其与我当前(可能已损坏?)的配置进行比较omnicomplete.我在.vimrc中有这个:

set completeopt=longest,menuone

在vim中,如果我键入gen,我得到的就是我之前输入的文本,我在此缓冲区的其他地方输入(并且只在此缓冲区中,而不是在其他缓冲区中).如果我碰巧拼错了一些东西,那么我得到的拼写错误的版本是我之前为了生活而打开的.这告诉我工作中没有智能感知/自动完成 - 只是监控我做的按键操作:

vim与omnicomplete和自动完成无法正常工作

如您所见,自动填充功能无法正常输入.虽然,这确实在其他地方的评论和字符串派上用场,我有点像vim记得我输入的自由文本.

不确定Vim选项启用了什么; 但是,它不是自动完成.

现在,我可以按下CTRL-X + CTRL-O强制自动完成并generate()显示出来:

vim与omnicomplete和自动完成

这个更好; 但是,我希望它能在我输入时向我显示自动完成选项:不需要额外的3次击键来实现它.在整个几个小时的编码中,这是很多Cx Co事件.

有没有办法让Vim在INSERT模式下监视我的击键并在有匹配的ctag或函数时显示自动完成? 这可能是此功能的答案.

使用参数自动完成

自动完成有第二个问题omnicomplete我可以忽略上面的Cx Co要求如果这样做:一旦我选择了我想要自动完成的方法,它就不会为我插入参数/字段.

回到上面的截图,如果我选择那个方法,这就是我得到的:

vim与vim-go自动完成未完全完成

请注意,它不会插入 func的参数.它与上面发布的第二张图片不匹配,其中Atom,Sublime和Visual Studio中的自动完成功能都完成了参数显示的方法.

我已经阅读了vim wikia,并尝试了各种选项而set completeopt没有任何可行的选择.

例如,set completeopt+=preview选择后给我预览窗口: …

vim autocomplete omnicomplete

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

这些Go构建标志意味着什么?netgo -extldflags"-lm -lstdc ++ -static"'

我目前正在上一个微服务在线课程,我将小型应用程序部署到docker容器.构建二进制文件的漫长而丑陋的命令行是这样的:

go build --tags netgo --ldflags '-extldflags "-lm -lstdc++ -static"'
Run Code Online (Sandbox Code Playgroud)

到现在为止我只是用来go install编译我的应用程序.

任何人都可以向我解释这个命令吗?

command-line compilation go

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

NOLOCK on Views,是否会传播到表中?

如果在VIEW的select中包含NOLOCK,NOLOCK是否会向下传播到视图中连接的表中?如果没有,锁定VIEW的目的是什么?

示例查看代码:

CREATE VIEW [my_custom_view]
AS
  SELECT
    a1.[column_a], a1.[column_b], a1.[column_c], a1.[column_d]
  FROM
    [table_a] a1
    JOIN [table_b] b1 ON b1.[column_a] = a1.[column_b]
Run Code Online (Sandbox Code Playgroud)

和NOLOCK声明:

SELECT 
  [column_a], [column_b]
FROM
  [my_custom_view] NOLOCK
Run Code Online (Sandbox Code Playgroud)

sql-server locking

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