- 博客(162)
- 资源 (9)
- 收藏
- 关注
原创 win10 家庭版上安装docker desktop
先说结论,是可以成功的,因为人家贴图都出来了,这个没必要造假https://www.jianshu.com/p/1329954aa329/再说问题,很多人按照这个步骤却没能成功。我开始也失败了,怀疑是版本问题,又接连下载了2个版本,包括和作者截图一样的版本,仍然失败。显然,这是人品问题了。。。。最后灵光一现,再看看评论区,果然。。。最后小结一下要点:0.下载dock...
2019-08-26 14:06:24
1025
原创 [python]python3一致性hash
算法很简单,代码根据网上改的移植到python3不过量少场景, 一致性hash不均匀的问题很难解决,加虚拟节点也不是很管用# -*- coding: utf-8 -*-import hashlib class ConHash(object): def __init__(self, nodes=None, n_number=16): """ ...
2018-11-06 14:08:29
1215
1
原创 [加解密]js/python/golang 兼容AES(CBC/ECB)加解密(2)--CBC模式
CBC模式用起来差别不大,就是多了一个iv还是先来js的<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head&g
2018-05-28 11:12:26
1906
转载 [加解密]js/python/golang 兼容AES(CBC/ECB)加解密(1)--ECB模式
起因是象实现oracle兼容的加解密算法,结果折腾了好几天也没有搞定兼容的3des算法. 副产品是把aes的各种场景验证了一遍. 之前没有密码学基础,通过折腾,稍微了解了一点.AES是比3des更先进的加密算法,虽然现在也不可靠了. 加密的块处理模式分为ECB和CBC. ECB因为不安全,以及功能废弃.如果不考虑和php兼容,那么可一不用了. 块处理就设计一个填充模式,常见的填充模式...
2018-05-28 10:27:53
2014
原创 [python]利用uuid和base64实现资源主键id
不想用mysql的自增id(造数据的时候会很麻烦),而且tiDB也不支持.而且主键希望和资源的业务属性是可对应的.比如设备就是域+ip,这样如果删除了再添加,主键不会改变.直接用uuid3,32字节的字符串有点太长,16byte的bytes操作又麻烦, 128bit的int又超过了mysql uint64的限制(拆2字节太麻烦)搜索了一下uuid的压缩方法,发现base64编码还是...
2018-05-21 13:04:06
2013
原创 [python]python的反射(续)-exec
作为解释型脚本语言,本质上其实根本不存在反射的问题。因为任意字符串都可以解释为代码。perl中有eval, python中同样也有,不过细分成了eval和exec.这个可以算是终极的反射杀器,由于威力太大,python3中在语法上做了一些限制。允许exec导入到局部变量空间而不是全局空间。比模块的加载更近一步,我们可以把一部分代码,或者说规则、模板,保存在远程的集中服务器或者配置中心,然后动态通过...
2018-05-08 09:46:43
278
原创 [python]python的引用(续)
之前本来以为已经弄明白了,又被坑了几天。彻底做了多个实验验证了一下。1.python x.py或者python d1/x.py这种直接执行方式,会把x.py所在路径加入sys.path (p2,p3都一样)2.python -m x或者python -m d1.x p3会把执行的当前目录加入sys.path,但 p2仍然是把x.py所在目录加入sys.path3.对于相对引用(from ....
2018-04-28 17:15:39
189
原创 [python]字符串替换format和re.sub
python字符串的格式化函数format功能很强大,可以使用一个字典来替代多个格式化字串,可以用来实现类似模板的功能。(replace只能替换单个字符串,不适用)s2="discriminator {vrf} local {_bfdlocal} remote {_bfdremote}" para={'vrf':'xinxi','bfdlocal':'100','bfdremote':'200...
2018-04-25 21:48:29
1377
原创 [python]python的反射
python虽然也是脚本,但是更像java一些,没有perl那样的黑魔法。有函数引用,但是没有解引用。只能通过字典来实现一般函数的反射。不过python的重点在于模块。对于模块,可以通过__import__来动态加载。对于模块内的函数调用,python提供了一系列辅助函数(getattr,hasattr等)#encoding=GBK#python 的 函数 反射def hello(n): p...
2018-04-23 16:14:10
293
原创 [perl]perl的反射机制
perl是一种非常灵活的脚本语言。也存在对反射的需求场景。反射就是将字符串转换为对应的语言对象。(不考虑eval这样的终极必杀技)1.反射为普通变量这个是不支持的,就是说,你没办法实现my $a="b";my $b="123";print \$a; # 企图得到"123"是不可能的变通的办法是使用hashmy $b='123';my $c{'b'}=$b;my $a='b';print ...
2018-04-23 15:44:59
371
原创 python的引用
被python的import引用折腾了两天.记录一下结论:f.py如果是引用同级目录的模块,py2直接import name.py3需要from . import如果是引用下级目录的模块 from dir import name不管是直接执行,还是python -m 执行都是一样的如果要引用上级目录或者平级目录的模块,有2个办法1是修改sys.path, append上级/平级目录的绝对目录(...
2018-04-14 22:46:07
408
转载 [python]gevent+PyMysql实现mysql并行查询
PyMysql是pure python的mysql驱动,因此可以通过gevent实现协程化,从而实现基于协程的mysql查询.比基于多线程的连接池效率更高.(单纯查询场景,不考虑读写混合的事务问题)测试代码参考峰云的博客.在win7, python2/3环境测试通过#!/usr/bin/python# -*- coding: utf-8 -*-#测试gevent+PyMysql实现非阻塞查询...
2018-04-09 14:01:13
3230
3
原创 静态html引入其他html
在IE里面,不是问题,用jq.load就可以,在chrome内核,默认是禁止访问本地文件的,需要放在web server下才行.那么不用webserver到底行不行呢?搜索和尝试了不少方案,只有这个是靠谱的. 查了一下,这个是h5的新特性,不过对chorme不是问题(ff据说不支持)页面1<html><head><title>main</title&...
2018-03-20 11:00:32
3642
2
原创 [perl]coro在web框架(mojo,Anyevent::httpserver)中的用法
perl的AE和coro用了很多年,但是用来搭服务化框架的时候,被一个问题困扰了一年。就是在web框架中如何使用coro。之前一直都是在coro 中使用AE模块,完全没有问题。但是在AE里面用coro,倒是很少。直接在事件循环里面用coro, 会报block itself的错误。昨天在看博客的时候,看到ae::socket+coro::handler的配合,突然灵光一现。unblock就可以了吧。...
2018-03-07 10:48:43
619
原创 [go]golang snmp并发测试
没啥可说的,和ping差不多/*go routine版并发snmp测试*/package mainimport ( "fmt" "github.com/k-sone/snmpgo")var fin chan string; //用于实现jionallfunc snmpr(host string){ snmp, err := snmpgo.NewSNMP(sn...
2018-03-06 10:35:57
1556
2
原创 [go]golang snmp测试(1)
golang发展挺快的,现在都已经1.9了。现在也有了相对完备和可用的snmp库。目前支持snmpv3的主要有2个库,star都很少,看起来用snmp的人不多啊。github.com/soniah/gosnmp 293stargithub.com/k-sone/snmpgo 73star先分别测试一下snmpv2package mainimport ( "fmt" "log" ...
2018-03-06 09:29:27
3967
原创 python3的asyncio相关吐槽
python3.x开始正式支持异步io了,asyncio提供了异步事件循环和协程。还有asysnc/await语法。喜大普奔。pypi上一搜,aio*的模块还相当多。http,redis都有了。可惜,第一次尝试就挨了一闷棍。首先测试的是telnetlib3。这个和telnetlib一点都不一样啊,还没有例子。嗯,有一个例子,但是运行报错啦。好吧,再来看看aiohttp,网上有好多百万级并发的文章呢...
2018-03-02 16:26:18
2098
转载 python gevent调用系统命令
主要是抄峰云的这篇博客http://xiaorui.cc/2015/05/28/在python中使用gevent-subprocess实现shell调用/不过还是有一些小细节不同要用joinall来等待子协程完成有的情况需要异步调用,不用pipe就可以了配合web框架,把一些系统命令改造成web接口还是比较轻松的。#!/bin/env python#encoding=gbk#gevent+su...
2018-02-11 20:15:32
680
原创 不得不说,nodejs的协程真是难用
好不容易等es7出来了,promise/await/async,还是这么难用,真是令人失望。为什么不学学python,perl,lua,lua,go,erlang..(ps. python3自带的asynio也是一个德行,也是async/await...难道是串通好的?)做不了gevent的monkey_patch象coro::Anyevent那样,弄个Coro::rouse_cb和Coro::r...
2018-01-30 19:06:29
2152
原创 [python]使用gevent+telnet实现并行登录路由器
python内置了telnetlib模块,这点比perl强不少。更好的是,利用gevent的猴子补丁,可以很容易地实现基于协程的并行登录。#!/bin/env python#encoding=utf-8 import geventfrom gevent import monkeymonkey.patch_all() #创建函数 def do_telnet(Host...
2018-01-29 11:44:43
709
原创 python web一锅烩(flask,gunicom,gevent,tornado)
先说几点结论:WSGI是webserver和webapp的接口协议,相当于以前的CGI。flask是一个支持WSGI的web框架,同时自带了WSGI server. 相当于perl的mojo.gunicorn是一个独立的WSGI server(其他的都是模块)。可以支持gevent.支持woker模式。 相当于nginx.gevent是python的非阻塞协程框架,包含了WSGI
2018-01-26 17:52:20
1405
原创 python geventhttpclient测试
计划移植一个无阻塞python的服务框架.首先要解决http client的使用.Gcurl已经多年无人维护.geventhttpclient这个号称比urllib2+gevent monkey快一倍.先简单试试.#!/bin/env python# -*- coding: gbk -*-#使用poolimport geventimport gevent.pool
2018-01-22 18:37:11
1318
转载 raphael/rgraph介绍
h5火了以后,svg/vml基本很少提了。不过后者在老浏览器兼容方面,还有一些长处。-------------------------------一、raphael是什么??Raphael 是一个用于在网页中绘制矢量图形的 Javascript 库。它使用 SVG W3C 推荐标准和 VML 作为创建图形的基础。Raphael 目前支持的浏览器包括: Chrome
2017-10-23 09:06:04
2987
原创 vuejs和echarts3整合(2)
在松耦合模式下,vuejs需要通过主动调用函数来触发echarts的数据更新。echarts也可以完全不依赖vuejs,自己控制数据加载。 可以进一步实现数据绑定。这样vue的data变化,echarts也跟随更新。 echarts本身不是数据感应控件,通过watch来实现。 ECharts
2017-04-18 08:46:10
4292
原创 vuejs2和echarts3组合显示图表
由于echarts3不再通过AMD加载,无需内置echarts变量,所以整合变得简单多了。echarts成了一个普通的全局变量,可以被vue操作 ECharts {{ message }} 变换数据
2017-04-17 21:01:31
3760
原创 [node]nodejs ssh2测试
2.1exec(无上下文,远程执行命令)var Client = require('ssh2').Client;var conn = new Client();conn.on('ready', function() { conn.exec('uname -a', function(err, stream) { if (err) throw err; s
2017-03-11 20:27:48
3693
原创 [node]nodejs snmp测试
nodejs原生支持异步事件,语法简单,解释执行,可以替代perl来做日常运维吗?升级node最新版本。安装python.安装snmpjsnpm install xxx -g 是全局安装,否则是安装在当前目录D:\fk\work\node\snmp`-- snmpjs@0.1.8 +-- asn1@0.2.3 +-- bunyan@0.21.4 | `-- mv@
2017-03-11 20:25:06
2137
原创 U盘引导安装ubuntu16.04(包括多linux)
我的目标是做一张可以安装多个linux发行版的u盘,包括centos,ubuntu,cdlinux,clonezilla等。当然,也可以包括windows系列。之前已经弄了centos5,6,这次加上ubuntu0准备工作(这个只需要做一次)0.1u盘格式化。0.2.在虚拟机vmbox/vmware中安装的问题需要解决虚拟机u盘启动的问题,百度可有答案。
2016-11-08 17:07:06
3943
原创 windows go开发环境(3) IDE
git的命令行git bash用起来虽然很方便,但是有时不够直观。git同时提供了git GUI工具。windows下也可以使用更强大的sourcetree工具(同时支持gir,hg,svn,便于多项目查看)。 不过我对装.net framework总是心有芥蒂。能不用就不用了。还可以在sublime里面安装sublimegit插件。这样就可以直接在sublime里面完成git
2016-06-06 11:45:13
666
原创 windows go开发环境(续)
本地编译通过以后,可以考虑上传到配置库,目前基本就是git了。公网可以用 github,oschina。因为是测试代码,就上传到公司自建的gogs(荐)1.登录gogs,新建仓库,选择语言为go2 提交到gogs .执行git bash, cd $GOPATH/src/psnmp 编写README.md. 指定远程仓库。提交.gogs有操作提示touch REA
2016-06-02 12:09:15
637
原创 windows环境go开环境实例
之前都是简单测试,没有按照go建议的开发规范来,以后要正规化。go的开发环境规范,参见doc/code中文链接 http://docscn.studygolang.com/doc/code.html1.下载并安装gohttp://www.golangtc.com/download最新的1.6.2 已经80M了。 1.1才 40M.可见go的成长还是很迅速的。设置环境变量%
2016-06-01 17:59:38
800
原创 centos 6.5安装elixir
好吧,其实是参考了http://www.unixmen.com/install-erlang-elixir-centos-7 elixir不能直接通过yum安装,但是有基于erlang的绿色包。所以只要先通过yum装好erlang即可。1.登录阿里云主机2.查看系统版本[~]$ cat /etc/issueCentOS release 6.5 (Final)Kernel
2016-05-13 18:47:43
1965
原创 windows 7 64位 elixir安装
1.卸载旧的erlang(可选)2.安装新的erlang OTP18https://packages.erlang-solutions.com/erlang/esl-erlang/FLAVOUR_1_general/esl-erlang_18.3-1~windows_amd64.exe3.下载并运行elixir web 安装工具(不用)https://s3.amazonaws.co
2016-05-13 18:44:20
2819
转载 graphana从2.5开始也可以支持ES了
graphana原本就是从kibana fork出来的,用于支持influxdb,graphite等TSDB的数据现在graphana也可以支持ES中的时间序列数据了。
2015-12-22 08:34:44
1391
原创 [es]perl操作es中文处理
es默认使用utf8, perl也默认使用utf8,但是并不代表perl可以透明支持es的中文检索。这里涉及三个和中文有关的问题,中文数据的插入,中文数据的输出和中文数据的检索。其中问题1和问题3是一样的。输入的时候,取决于数据的来源,一般来说,取决于源程序的编码格式。一般的编辑器默认为asc模式,可以转换为utf8.输出的时候,一般是输出到终端,所以取决于终端的编码格式。window
2015-11-03 09:02:35
1068
原创 kafka windows单机安装测试
初步了解一下一下kafaka的基本用法。win7 64 bitjdk1.71)下载kafka_2.10-0.8.2.1.tgz并解压(整合scala)2)修改配置文件(可选)config/zookeeper.properties dataDir=/zookeeper这么写建到d盘根目录 dataDir=zookeeper这么写
2015-09-30 10:43:16
14177
1
原创 使用elasticsearch作为TSDB
TSDB有不少,例如open TSDB,graphite等,还有最近的新贵influxdb不过influxdb远远没到可成熟使用。对应的展示工具grafana号称源于kibana,用起来也不那么顺手。YY: 既然grafana源于kibana,那influxdb是否和elasticsearch会不会也有些关系呢?转了一圈,回到es上面。es作为搜索引擎,作为文档型数据库,是不
2015-09-15 18:08:35
3948
原创 phantomjs的局限性
phantomjs无疑是web测试的一件神器。无界面,跨平台。不过现下的版本实用中还是有些不足。1. 不支持flash,没法处理视频网站的测试。即使是支持plugin的1.4x版本。flash视频也是无法播放的。不管等待多长时间,flash只会显示开始画面。也无法探知页面的实际视频链接。但是真实的浏览器确实可以的。 2。暴露的底层api太少。 不如berserkjs
2015-06-06 19:49:25
3426
原创 aau的控件数组操作
当界面上有很多类似控件时,总希望可以通过控件数组来操作.在aau的论坛上找到了如下方法mainForm.button1.oncommand = function(id,event){ //mainForm.msgbox( mainForm.button1.text ); mainForm.edit.text=mainForm.button1.text; }var i=2;ma
2014-12-04 15:20:19
757
原创 aau查询sqlite
不可否认,aau的老大能力很强,也提供了不少文档和例程.不过很多东西,还是要亲自动手才能发现里面的坑.比如form的背景图,在设计界面可以选png,但是运行时出不来.plus控件的前景无法清除等. 下面是查询sqlite结果的显示.多行结果可以用listview来显示 //迭代查询mainForm.listview.clear() for(deckcod
2014-12-04 15:13:42
696
travian4 页面分析工具
2011-06-16
vml topo相关资源2-moveObj.js
2010-12-15
iird用户指南(翻译)
2009-12-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人