之前一直放在sae上,用的wordpress。最近sae收费了,而且还死贵,不划算,准备放到阿里云上的主机上,这样还不用花钱了。 用flask重写了,数据库没设计,直接用的wordpress的,界面还是用的之前的。把没用的js啥的去掉了。 写的很匆忙,因为想着能用就行了,先迁移过去,后边慢慢加功能。现在评论添加功能都没实现。先这样吧。

Continue

开始只在在线Clojure网站上进行一些测试,后来感觉不行,操作速度都太慢。决定还是安装个环境。 去clojure官网看了一下也不麻烦。 去官网下载个zip包,解压到目录。 进入目录创建一个bin目录,新建一个clojure文件.添加几行代码 <pre lang="bash"> if [ x$* != x ] then java -cp /Users/a0x55aa/tools/clojure-1.8.0/clojure-1.8.0.jar clojure.main "$*" else java -cp /Users/a0x55aa/tools/clojure-1.8.0/clojure-1.8.0.jar clojure.main fi</pre> 然后加入环境变量path种就行了,方便到处使用.

Continue

接上次看的往下看 cli.Pidfile 创建pid文件"/var/run/docker.pid" serverConfig := &apiserver.Config{ Logging: true, SocketGroup: cli.Config.SocketGroup, Version: dockerversion.Version, EnableCors: cli.Config.EnableCors, CorsHeaders: cli.Config.CorsHeaders, } 这几个默认值为 SocketGroup 为docker, EnableCors false, CorsHeaders 这个看EnableCors api := apiserver.New(serverConfig) 这个就是实例化了个Server,cfg为上边的serverConfig cli.api = api 返回一个, 初始化cfg为serverConfig,看起来所有请求的路由都在这里了 type Server struct

Continue

编辑freebsd文件~/.cshrc setenv LANG zh_CN.UTF-8 setenv LC_CTYPE zh_CN.UTF-8 setenv LC_ALL zh_CN.UTF-8 就可以显示中文了。 这里碰到了一点问题,突然发现ssh登录不上,登录的时候得ctrl c 才能显示命令提示符。不知道啥问题,时间长了就说远程断开连接。然后登录一个shell,再登录一个shell,观察发现,ssh,csh进程内存疯长,ulimit datasize相对于虚拟机大多了。直接把swap爆掉了就。爆了一个"kernel: swap_pager_getswapspace(16): failed"的错误。查了一大顿发现好像没人碰到过这个问题。然后就找工具调试,发现自带的有个truss,就试了一下。 发现全是在进行read(6,"\M^B",1)内核调用。然后从头大体看了一下,各种读的前边是跟语言相关的东西。然后找目录还是啥的报了各种找不到,猜测是不是这里有问题。其实啥没看懂,,只能懵逼。 我之前是在~/.login里配置的

Continue

rootkit hunter能检查一下系统是否被安装后门,听说很厉害。 去官网下载一个tar包,解压 安装 ./installer.sh --layout custom /opt/temp/rkhunter --install 这个是指定安装目录,日志都会打到/var/log/rkhunter.log 更新rootkit hunter的数据库 /opt/temp/rkhunter/bin/rkhunter --update 进行检查 /opt/temp/rkhunter/bin/rkhunter --checkall 然后查看结果 cat /var/log/rkhunter.log|grep "Warning\|Vulnerable" cat /var/log/rkhunter.log|grep -A 30 "System checks summary" 这个关键字可能不准确,具体看看总结,再细看检查的过程。

Continue

在用Grafana绘图,后端时序数据库用的InfluxDB。在进行绘图的时候用到取top n的数据。有一个top函数,但是里边不能有函数计算了。我是先group by tag 然后求和的。 查了好多看大部分都是top,开始搜的时候还搜的Grafana,后来想到这是influxdb的查询。找到官方文档,有一个limit和slimit. 这里是有区别的,slimit是相当于之前想法的limit,只去分组的top n。而limit是取每个分组下的top n。 但是order by 也不能 用聚合的字段来,还不知道排序怎么搞。 感觉influxdb还是很新的东西,好多东西太难搞了。也许是不了解。。

Continue

dockerd/daemon.go start() loadDaemonCliConfig(opts) 里 daemon.MergeDaemonConfigurations(config, flags, opts.configFile)将配置文件设置的参数和命令参数合并。 过了好多代码,感觉都是配置啥的就不看具体干啥了。 setDefaultUmask() 设置umask 0022,把goup和other的写权限干掉了。 daemon.CreateDaemonRoot(cli.Config) 先获取docker daemon根目录 默认/var/lib/docker setupRemappedRoot 根据配置映射容器用户和组的 这个参数默认是空的,也就是不映射 如果设置了这个参数 parseRemappedRoot就是解析参数的,有四种格式 username username:groupname uid uid:gid 然后解析/etc/passwd和/etc/group看看参数对不对。其中解析是否是defaultIDSpeci

Continue

东西太多了,大体过了一下,感觉会少了很多东西。有一些三方库,也没去看库怎么用。就看函数名大体猜一下功能。 完全就是从main函数一步一步往下看,这种看法就是缺少一个大局的认识,开始会有很多不理解的做法。 cmd/dockerd/docker.go reexec.Init() 必须要提前调用的方法,用来初始化。如果初始化过了就会返回true,main函数也退出了。 判断是否调用过,就是看看registeredInitializers里有没有os.Args[0]的key。 如果有调用value,没有直接返回false,接着走main函数 具体value是个啥函数,慢慢看.里边还有个Register(函数用来往registeredInitializers里添加值。 cmd := newDaemonCommand() cmd.Execute() 这里一看就跟client的结构一样,突然就感觉好看多了。。 daemonOptions daemon.NewConfig() 返回一个Config,所有配置应该都在这,太多了,也看不到啥意思先过了。 c

Continue

哈哈,找了个跨平台的游戏框架玩玩。 在mac平台上安装试了一下。下载需要注册,第一次启动也需要填注册的账号,所以还是注册了。 安装完启动输入账号,完成后创建一个项目。直接点击是使用的手机模拟器启动的。 官方给出的命令启动方法,-no-console YES是不显示debug信息。 "/Applications/CoronaSDK/Corona Simulator.app/Contents/MacOS/Corona Simulator" ~/CoronaApps/MyApp 作为桌面软件启动的时候,还是要先开模拟器编译通过后,菜单选择File → Build → macOS.填填选项。选择 Open application编译完启动,或者编译完手动启动也行。

Continue

今天手贱升级了一个pkg版本,从pkg-1.9.3升级到pkg-1.9.4_1。然后就不能用了。提示 /usr/local/lib/libpkg.so.3: Undefined symbol "openat" pkg命令不能用了。好像是内核版本太低了。就找了一下怎么解决。 有个pkg-static命令可以使用,,然后/var/cache/pkg里边缓存的包。执行命令: pkg-static install -f /var/cache/pkg/pkg-1.9.3.txz 强制换低版本的pkg。然后就好了。。没有这个包可以去freebsd官网下一个。

Continue