手头有个乐视的路由器,想着刷个openwrt玩玩插件,参考地址http://www.right.com.cn/forum/thread-172877-1-1.html 还有一些其他资料就准备开刷。

第1步资料已经变动,http://downloads.openwrt.org/attitude_adjustment/12.09-rc1/ar71xx/generic/packages/Packages.gz.
这个地址已经变为http://downloads.openwrt.org/attitude_adjustment/12.09/ar71xx/generic/packages/Packages.gz. 在安装页面有个配置选项,直接在里面修改就行[不过我后面刷了另一个包,不确认这个是否必须]

继续阅读

升级GITLAB折腾了几次备注下过程

1:清除缓存  gitlab-rake cache:clear RAILS_ENV=production

2:修改头像的URL成cn.gravatar.com

编辑这个文件 /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml   修改这个 plain_url: 默认是空值

3:升级前配置了邮件服务是手工加的 smtp_settings.rb 的文件,升级的时候会因为删除不了这个文件而失败,删除掉这个文件重新reconfigure就可以了。

4:不懂ror 折腾起来有点累

最近各种折腾GO的证书 JSK,KEY,CRT,CAROOT 的折腾

这个软件不错:http://keystore-explorer.sourceforge.net/index.php

jks

可以导出:CAROOT,KEY,CRT,P12文件。

 pfx转换cer,crt,key

       openssl pkcs12 -in test.wosign.pfx -nodes -out test.pem
openssl rsa -in test.pem -out test.key
openssl x509 -in test.pem -out test.crt(cer)

这个命令也可以转换出来

参考:https://support.wosign.com/index.php?/Knowledgebase/Article/View/36/0/

在同一台服务器上装了redmine和gitlab 配置redmine + nginx的时候各种折腾

启动方法1:ruby script/rails server webrick -e production -d  默认的测试程序配置好了没的方法 人多了就不行了

启动方法2:ruby script/rails server mongrel -e production -d -p3000 稍微强点 不过人民大众还是说慢

逐研究NGINX方法

1:准备用mongrel + nginx的方法 没折腾成功放弃

参考:http://wiki.nginx.org/ChsRubyonRailsMongrel

出现的错误:em_plugin.rb:109:in `load’: uninitialized constant Gem::SourceIndex (NameError)

继续阅读

起因:编译好的GOLANG 可执行文件在内网服务器上跑,突然一天日志显示连接对方EPP服务器的时候提示handshake_failure

分析:想了下这应该是EPP服务器的证书有变化(不过沟通后对方说没有变化,只能自己折腾了)

直接使用OPENSSL 尝试连接 发现是正常的,能够看到EPP的greeting 说明对方的也是正常的,猜想应该是对方修改了什么但是GO不支持

用NODEJS 写了一个测试文件 发现是连接正常 所以应该是GOLANG 不支持的原因

继续阅读

默认安装sqlite3
npm install sqlite3
此时node已经可以访问sqlite3了
这个时候如果启动node-webkite app 就会报找不到sqlite3

参看 https://github.com/rogerwang/node-webkit/wiki/Build-native-modules-with-nw-gyp
第一种方法没成功 最后用了0.8.6的版本(最新版本0.10.0.rc1)

$ npm install node-pre-gyp
$ node-pre-gyp build –runtime=node-webkit –target=0.8.6

如果编译成功根据说明就可以使用了 注意编译脚本记得把node_modules 整个目录打包到.nw文件里面

写了一个shell脚本来打包并执行
cd /var/www/nodeapp/node-webkit-test/app
zip -r ../app.nw *
nw ../app.nw

安装的是postfix软件,不过配置文件里面还是写config.action_mailer.delivery_method = :sendmail

config/gitlab.yml 修改: email_from: root@gitlab.ename.com

在邮件服务账号设置白名单 root@gitlab.ename.com 就可以正常收到邮件了

SMTP折腾了很久都没收到邮件

刚学,记录下,还需要完善

package main

import (
	"code.google.com/p/gcfg"
	"database/sql"
	"fmt"
	"github.com/coopernurse/gorp"
	_ "github.com/ziutek/mymysql/godrv"
	"os"
	"runtime"
	"strconv"
	"time"
)

var mc = make(chan string, 30)
var tc = make(chan bool)

func main() {
	runtime.GOMAXPROCS(8)
	defer close(mc)
	defer close(tc)
	dbmap := initDb()
	defer dbmap.Db.Close()
	t1 := time.Now()
	t2 := t1.Add(5000000000).Format("2006-01-02 15:04:05")
	t3 := t1.Add(-300000000000).Format("2006-01-02 15:04:05")
	count, err := dbmap.SelectInt("select count(*) from table where sDate <= '" + t2 + "' and eDate > '" + t3 + "'")
	checkError(err)
	if int(count) == 0 {
		os.Exit(0)
	}
	var trans []Trans
	_, err = dbmap.Select(&trans, "SELECT 字段 FROM table WHERE  sDate<='"+t2+"' and eDate > '"+t3+"'")
	checkError(err)
	var transId = []Trans{}
	i := 0
	for _, p := range trans {
		transId = append(transId, p)
		i++
		if i == 50 {
			go updateData(transId, dbmap)
			i = 0
			transId = []Trans{}
		}
	}
	if len(transId) > 0 {
		go updateData(transId, dbmap)
	}
	total := 0
	for {
		writeLog()
		mytc := <-tc
		if mytc == true {
			total = total + 1
		}
		if total >= int(count) {
			break
		}
	}

}

func updateData(ti []Trans, dbmap *gorp.DbMap) {
	for _, y := range ti {
		_, err := dbmap.Exec("SQL")
		checkError(err)
		tc <- true
	}
	runtime.Goexit()
}

type Trans struct {
	AuditListId int
	DomainName  string
	FinishDate  time.Time
	TransStatus int
	Buyer       int
	NickName    string
	BidPrice    string
	BidCount    int
}

type Config struct {
	Section struct {
		Host string
		User string
		Pwd  string
		Db   string
	}
}

func checkError(err error) {
	if err != nil {
		sendLog(err.Error())
	}
	return
}

func sendLog(str string) {
	mc <- str
}

func writeLog() {
	str := <-mc
	if str != "" {
		f, ferr := os.OpenFile("system.log", os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666)
		if ferr == nil {
			f.Write([]byte(time.Now().Format("2006-01-02 15:04:05") + " " + str + "n"))
			f.Close()
		} else {
			fmt.Println("Failer error ", ferr.Error())
		}
	}
}

func initDb() *gorp.DbMap {
	var cfg Config
	err := gcfg.ReadFileInto(&cfg, "config.gcfg")
	checkError(err)
	db, err := sql.Open("mymysql", "tcp:"+cfg.Section.Host+":3306*"+cfg.Section.Db+"/"+cfg.Section.User+"/"+cfg.Section.Pwd)
	checkError(err)
	dbmap := &gorp.DbMap{Db: db, Dialect: gorp.MySQLDialect{"InnoDB", "UTF8"}}
	return dbmap
}