我试图在另一个程序中嵌入Jetty 6.1.Jetty正在转储INFO-log信息,我需要将其关闭.是否有一种简单的方法来禁用logmaticaly的记录?
我正在寻找一个.cshtml vim语法文件.是否有任何项目没有进入www.vim.org?
继续学习Go,我正在编写一个管理图片的组件.
我一直在看这里的s3库:https://godoc.org/launchpad.net/goamz/s3#ACL
在Node中,我使用Knox客户端并连接到我的桶,如下所示:
var bucket = knox.createClient({
key: config.get('AWS_KEY'),
secret: config.get('AWS_SECRET'),
bucket: "bucketName"
});
Run Code Online (Sandbox Code Playgroud)
在Go s3库中,我看到了使用s3存储桶所需的所有功能,但我找不到连接功能 - 与上面的相似.
到目前为止,我在Docs中找到了这个:
type Auth struct {
AccessKey, SecretKey string
}
Run Code Online (Sandbox Code Playgroud)
似乎我需要调用此函数:
func EnvAuth() (auth Auth, err error)
Run Code Online (Sandbox Code Playgroud)
这是EnvAuth功能:
func EnvAuth() (auth Auth, err error) {
auth.AccessKey = os.Getenv("AWS_ACCESS_KEY_ID")
auth.SecretKey = os.Getenv("AWS_SECRET_ACCESS_KEY")
// We fallback to EC2_ env variables if the AWS_ variants are not used.
if auth.AccessKey == "" && auth.SecretKey == "" {
auth.AccessKey = os.Getenv("EC2_ACCESS_KEY")
auth.SecretKey = os.Getenv("EC2_SECRET_KEY") …Run Code Online (Sandbox Code Playgroud) 所以我正在使用docker compose文件来部署我的Go web服务器.我的服务器使用mongo,所以我在docker compose中添加了一个数据卷容器和mongo服务.然后我写了一个Dockerfile来构建我的Go项目,最后运行它.
但是,还有另一个必须完成的步骤.编译完项目后,我必须运行以下命令:
./my-project -setup
这将向数据库添加一些必要的信息,并且只需添加一次信息.但是我不能在Dockerfile上添加这一步(在构建过程中),因为mongo必须已经启动.
那么,我怎样才能做到这一点?即使我重新启动服务器然后再次运行,docker-compose up我也不希望再次执行此命令.
我想我错过了一些Docker的理解,因为我实际上并不了解数据量容器的所有内容(他们只是停止了装载卷的容器吗?).另外,如果我重新启动服务器,然后运行docker-compose up,将运行哪些命令?它是否会启动与现在使用给定CMD停止的相同容器?
无论如何,这是我的docker-compose.yml:
version: '2'
services:
mongodata:
image: mongo:latest
volumes:
- /data/db
command: --break-mongo
mongo:
image: mongo:latest
volumes_from:
- mongodata
ports:
- "28001:27017"
command: --smallfiles --rest --auth
my_project:
build: .
ports:
- "6060:8080"
depends_on:
- mongo
- mongodata
links:
- mongo
Run Code Online (Sandbox Code Playgroud)
这是我的Dockerfile来构建我的项目图像:
FROM golang
ADD . /go/src/my_project
RUN cd /go/src/my_project && go get
RUN go install my_project
RUN my_project -setup
ENTRYPOINT /go/bin/my_project …Run Code Online (Sandbox Code Playgroud) 我有以下简单的golang程序来下载Google的隐私政策.不幸的是,unexpected EOF在读取6861字节后,它总是会因错误而崩溃,即使文档更长.为什么?
package main
import "net"
import "fmt"
import "io"
import "os"
func die(msg string, s os.Error) {
fmt.Printf("%s crashed: %v\n", msg, s)
os.Exit(1)
}
func main() {
fd, err := net.Dial("tcp", "google.com:80")
if err != nil { die("dial", err) }
req := []byte("GET /intl/en/privacy/ HTTP/1.0\r\nHost: www.google.com\r\n\r\n")
_, err = fd.Write(req)
if err != nil { die("dial write", err) }
buf := make([]byte, 1024)
nr := 1
for nr > 0 {
nr, err = io.ReadFull(fd, buf)
if …Run Code Online (Sandbox Code Playgroud) 我一直在使用Microsoft.Jet.OLEDB.4.0和Microsoft.ACE.OLEDB.12.0来读取.csv,.xls和.xlsx文件.
我刚刚发现原生64位模式都不支持这些技术!
我有两个问题:
在64位模式下以编程方式读取.csv,.xls和.xlsx文件的支持方式是什么.我无法在任何地方找到答案.
如果我无法读取所有三种文件类型,那么在64位环境中读取.csv文件的最佳方法是什么?
笔记:
更新:
我可以使用CorFlags强制应用程序以32位模式运行,这是有效的,但是不可取.
我正在尝试使用Go解析yaml文件.不幸的是我无法弄清楚如何.我有的yaml文件是这样的:
---
firewall_network_rules:
rule1:
src: blablabla-host
dst: blabla-hostname
...
Run Code Online (Sandbox Code Playgroud)
我有这个Go代码,但它不起作用:
package main
import (
"fmt"
"io/ioutil"
"path/filepath"
"gopkg.in/yaml.v2"
)
type Config struct {
Firewall_network_rules map[string][]string
}
func main() {
filename, _ := filepath.Abs("./fruits.yml")
yamlFile, err := ioutil.ReadFile(filename)
if err != nil {
panic(err)
}
var config Config
err = yaml.Unmarshal(yamlFile, &config)
if err != nil {
panic(err)
}
fmt.Printf("Value: %#v\n", config.Firewall_network_rules)
}
Run Code Online (Sandbox Code Playgroud)
当我运行它时,我收到一个错误.我认为这是因为我没有为src和dst键/值创建结构.仅供参考:当我将其更改为列表时,它可以正常工作.
所以上面的代码解析了这个:
---
firewall_network_rules:
rule1:
- value1
- value2
...
Run Code Online (Sandbox Code Playgroud) 如何将字典作为函数的参数列表传递,如在Go 3中的Python 3中?
Python 3:
def bar(a,b,c):
print(a,b,c)
args={c: 1, b: 2, a: 3}
bar(**args)
Run Code Online (Sandbox Code Playgroud)
空白:
func bar( a, b, c int) {
fmt.Printf("%d, %d, %d", a, b, c)
}
func main(){
args := make(map[string]int)
args["a"] = 3
args["b"] = 2
args["c"] = 1
// what next ?
}
Run Code Online (Sandbox Code Playgroud) 我写了一个愚蠢的解决方案,任何更好的食谱?正如你可以看到很多无用的转换.
package main
import (
"fmt"
"strconv"
"math"
)
func conv(str string) int {
l := len(str)
result := 0.0
for i,n := range str {
number,_ := strconv.Atof64(string(n))
result += math.Exp2(float64(l-i-1))*number
}
return int(result)
}
func main() {
fmt.Println(conv("1001"))
}
Run Code Online (Sandbox Code Playgroud) 最近,我一直在深入研究功能编程.通过这个,我对Erlang及其并发模型有了一些了解.
令人惊讶的是(至少对我来说)我发现它(Erlang)被用在许多着名的核心应用程序的核心,比如Facebook的聊天频道,What's App Messenger的后端,还有核心在线使命召唤服务器.我甚至在一些论坛中读到,对于参与Web请求的分布式系统,Erlang比node.js或JVM更具可扩展性(不确定该信息是否准确)
为什么我们有例如Twitter从RoR迁移到Scala的案例?尽管Scala旨在与Functional范例一起使用,但Erlang不会更好吗?
我无法理解的另一个重要案例是谷歌.众所周知(通过Google I/O 2011中的Go的演示)核心应用程序是基于C++或Java构建的.那么,如果Erlang能够适应这个角色,为什么他们必须创建Go(golang)呢?
注意:别误会我的意思.对我来说很明显,如果你在Java中有扎实的背景,那么Scala将比Erlang更快地学习功能编程.但我的意思是,我把生产力放在一边.
Erlang的优点是什么才能让人们去学习并投入大量时间学习它?
非常感谢你.