- 博客(87)
- 收藏
- 关注
原创 Golang的Kafka 框架支持consumer group
golang的kafka 框架有很多种, sarama是一种比较常用的,是用golang写的,但是不能支持consumer group。confluent是一种,是调用c语言的库librdkafka,可以支持consumer group。但是会麻烦一点,需要安装librdkafka。安装librdkafka先看官网上的一句话。This client for Go depends on li...
2019-07-26 11:56:09 3650 1
原创 Jupyter环境的搭建以及相应的Dockerfile
pip install jupyter jupyter notebook --generate-config#生成密码,用于远程登陆python -c "from notebook.auth import passwd; print(\"c.NotebookApp.password = u'\" + passwd('123456') + \"'\")" >> /root/.j...
2019-06-28 13:56:41 1480
原创 Ubuntu配置golang gin的环境以及相应的Dockerfile
apt-get update -yapt-get install -y wget wget https://dl.google.com/go/go1.12.5.linux-amd64.tar.gztar -C /usr/local -xzf go1.12.5.linux-amd64.tar.gz export PATH=$PATH:/usr/local/go/binapt-get ins...
2019-06-20 13:49:32 987
原创 Java Servlet版HelloWorld
在ideal中创建一个maven工程,不选工程模板写一个简单的响应GET请求的servletimport java.io.*;import javax.servlet.*;import javax.servlet.http.*;public class ServletHelloWorld extends HttpServlet { public void doGet(Http...
2019-06-06 16:06:53 578
原创 面向对象设计的7大原则
开闭原则的定义开闭原则(Open Closed Principle,OCP)由勃兰特·梅耶(Bertrand Meyer)提出,他在 1988 年的著作《面向对象软件构造》(Object Oriented Software Construction)中提出:软件实体应当对扩展开放,对修改关闭(Software entities should be open for extension,but c...
2019-06-05 18:39:51 240
转载 Python arg、*args、**kwargs
http://www.cnblogs.com/yunguoxiaoqiao/p/7626992.html
2019-05-22 10:06:12 2193
原创 Linux查看显卡设备信息
查看VGA设备$ lspci | grep -i vga08:00.0 VGA compatible controller: ASPEED Technology, Inc. ASPEED Graphics Family (rev 30)(test_env) $ lspci -v -s 08:00.0 08:00.0 VGA compatible controller: ASPE...
2019-05-14 11:08:34 8625
原创 windows下安装配置sbt
最近要用scala,学习了一下sbt。下载sbt地址 www.scala-sbt.org默认安装即可。验证sbt在cmd输入sbt,他会问你要不要continue,输入c,continue,这时候他开始下始很多依赖包,速度还挺快的;出现了下面的错误Error: Could not retrieve jansi 1.11为了解决这个问题在sbt安装目录下的conf目录中添加了一个re...
2018-12-11 16:41:53 2334
原创 python基于multiprocessing的通用的并行计算框架
项目介绍基于multiprocessing的通用的并行计算框架,用于计算密集型场景githubhttps://github.com/conggova/mpparallizer.git接口定义class MPParallizer(object) : @staticmethod def parallize(paras , func , threads , para_serde...
2018-10-26 15:22:31 3205
原创 golang搭建thrift RPC服务实践
折腾了两天,终于调通了用golang搭建的thrift rpc服务,这个过程中遇到了很多问题,而且有些问题困扰了很久,欣喜之余,觉得一定要把这些过程记下来,对于自己来说是个备忘录,对于别人来说也是不错的参考。环境的搭建首先安装go,这个用yum安装,版本1.9.4。我这里用的是thrift 0.10.0 , 不是最新的 0.11.0 , 这个两个非常的不兼容,一定要注意,thrif...
2018-06-14 18:49:24 3947
原创 从区块链出发——对于互联网的反思
最近因为区块链的热度,我也关注了一下,也因为有一些人对于区块链所谓革命性的评价,反而让我对于互联网的发展也有了一些思考和感悟。 因为我个人的认识往往是偏于感性的,可能一些想法难免天真。我是一个喜欢对任何事情都抱有怀疑的人,到现在唯一让我觉得不容怀疑的道理是“盛极必衰”,第一层意思是没有事情能够长久;第二层意思是事情往往不会朝着同一个方向一直发展下去。关于我们生活的宇宙,目前还处于膨胀的阶...
2018-03-10 15:43:18 483
原创 Multiarmed bandit problem(多臂老虎机问题)的UCB1解法简介
最近在看蒙特卡洛树搜索相关的东西,看到了这个Multiarmed bandit problem。把自己的理解整理分享一下。首先说一下Multiarmed bandit problem是什么问题 Multiarmed bandit根据我看各种介绍得到的理解是这样的一种赌博工具: 1.它有多个可操作的拉杆 2.操作每个拉杆所得的收益是随机的,但是每个拉杆收益的平均值(期望值)并不相同,有些高...
2018-03-09 16:01:35 7705
原创 线性规划单纯形法初探
单纯形法:将目标函数和约束变换成标准形式。 先找一个基本可行解。 判别它是否为最优解,如果不是,再找一个更好的基本可行解。例子min z = x1 + x2 s.t. 2x1 - x2 2 0 step1: 变换成标准形==> (2) ==> 0 取x3 = x1 - 2 , 则 x1 = x3 + 2 (4) 则 (2) ==> 0 (5
2018-02-06 11:37:18 823 1
原创 python pulp包求解整数线性规划和线性规划
以整数线性规划为例# -*- coding: utf-8 -*-import pulp as pulpdef solve_ilp(objective , constraints) : print objective print constraints prob = pulp.LpProblem('LP1' , pulp.LpMaximize) prob +
2018-02-06 11:26:11 21113 4
原创 Python thrift rpc TProcessPoolServer 原生的多进程服务模式
以前通过多线程每个线程中再启进程的模式实现了多进程的服务模式。 今天发现其实进程池的模型是自带的。 这个Server在一个单独的文件中,与其它Server不在一起,不看代码不太容易发现。示例代码import sys, glob sys.path.append('./gen-py')from WormHoleRPCService import WormHoleRPCService from
2017-11-17 11:18:28 3054 1
原创 python thrift两种服务模式对比
方案一服务代码只是死循环一秒钟import sys, glob sys.path.append('./gen-py')from HelloService import HelloService from HelloService.ttypes import * from thrift.transport import TSocket from thrift.transport imp
2017-10-29 01:05:17 2233
原创 pyjsonrpc+multiprocessing实现可并发处理RPC服务
#!/usr/bin/env python# coding: utf-8import pyjsonrpcfrom time import sleepimport multiprocessing#将结果通过PIPE发送给主进程def work(pipe , a , b ) : i = 0 while True : i += 1 ; if i >
2017-10-26 15:53:04 1065
原创 python multiprocessing 测试
# -*- coding: utf-8 -*-"""Created on Thu Oct 26 09:17:30 2017@author: congpeiqing"""import multiprocessingdef worker(num): """thread worker function""" print 'Worker:', num i = 0 whi
2017-10-26 09:27:10 344
原创 tornado 简单的web服务
import tornado.ioloopimport tornado.webfrom time import sleepclass MainHandler(tornado.web.RequestHandler): #def get(self , name , id ): # self.write(name + id ) def get(self): i =
2017-10-25 17:01:08 1305
原创 java jsonrpc2.0 客户端程序
源码package congpq.jsonrpc_test;import java.net.URL;import com.googlecode.jsonrpc4j.JsonRpcHttpClient;import static java.lang.System.*;public class jsonrpc_test { public static void main(String[]
2017-10-25 15:10:11 1296 1
原创 jsonrpc python实现
服务端# coding: utf-8import pyjsonrpchttp_client = pyjsonrpc.HttpClient( url = "http://192.168.56.100:8080", username = "Username", password = "Password")print http_client.call("add", 1, 2)
2017-10-23 14:44:34 5461 1
转载 关于幂等性
幂等在编程中一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。以下内容来自:http://www.cnblogs.com/weidagang2046/archive/2011/06/04/2063696.html幂等性定义本文所要探讨的正是HTTP协议涉及到的一种重要性质:幂等性(Idempotence)。在HTTP/1.1规范中幂等性的定义是:
2017-10-21 23:12:08 266
原创 蒙特卡洛方法的应用——解决“彩色砖块”问题
同贝叶斯方法一样,蒙特卡洛方法与其说是一种算法,不如说是一种思想。灵活的运用蒙特卡洛方法可以解决很多问题。比如可以用它来求pi,求pi肯定有比这更好的方法,但是蒙特卡洛方法是所需条件最少的,只是充分利用了计算机产生随机数的能力。我们不需要知道pi等于什么级数,只需要知道圆的面积等于pi*r**2。下面来看如何用蒙特卡洛方法解决一个实际问题,而且其它的方法不太容易解决。关于彩色砖块http://www
2017-09-23 14:29:40 640
原创 MapReduce的二次排序
二次排序问题是指在归约阶段对与某个键关联的值排序,有时也称为值键转换。 利用二次排序可以使归约阶段的值是有序的。MapReduce框架对映射器生成的键排序,传入归约器的数据都是按键排序的。利用MapReduce框架完成二次排序的方法构造一个组合中间键(K , V) ,其中K是分区键,V是用来排序的值 此中间键做为Map的输出的键,Map的输出会按照此组合键排序; 定制Partitioner,不
2017-09-14 23:59:25 312
原创 看懂Hive的执行计划
官方文档 https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Explain关于Hive执行计划简述一般执行计划有两个部分: stage dependencies 各个stage之间的依赖性 stage plan 各个stage的执行计划一个stage并不一定是一个MR,有可能是Fetch Operator,也有
2017-09-14 20:49:05 5500 2
原创 Oracle的多版本控制小实验
本文将演示Oracle的多版本控制,以及串行化事务。在session1中,建一个表,插入两条测试数据SESSION1:SCOTT@ prod> create table t ( x int ) ;Table created.SCOTT@ prod> insert into t values(1) ;1 row created.SCOTT@ prod> select * from t ;
2017-09-03 00:46:05 404
原创 Oracle用HASH簇表优化latch hit过低
部署测试环境以SYS用户在HR中建立与DBA_OBJECTS相同的表,重复插入得到100万行,并且添加一列ID,为这列添加连续的值,并建立唯一索引。 将AWR快照的产生时间设为10分钟。 在五个窗口并行执行:建立簇表所需信息HASHKEYS=distinct values SIZE=(avg_row_len*total_rows/HashKeys)*1.1 1.2可能更保险
2017-09-02 11:00:51 588
原创 完整的RMAN备份示例
备份策略备份时间:每天午夜12点开始。 备份策略: 一 二 三 四 五 六 日 增 增 增 增 增 增 全RMAN配置:控制文件自动备份OFF。 冗余度为3。备份脚本:0级备份 /home/oracle/backupscripts/level0.sh#!/usr/bin/bash#backup script for level 0source /
2017-09-02 10:48:25 431 1
原创 脏读和READ UNCOMMITED隔离级别
读取到别的事务中尚未提交的数据,是绝对应该避免的。 一般来说脏读都是没意义的,都是坏事,在READ UNCOMMITED事务隔离级别下允许脏读。Oracle无论如何都不会出现脏读,不支持READ UNCOMMITED事务隔离级别。MySQL支持READ UNCOMMITED事务隔离级别(为了实现读的无阻塞):SESSION1:mysql> select @@tx_isola
2017-09-02 10:43:41 892
原创 Oracle TX锁(事务锁)
也叫事务锁。每个事务只能有一个。 每个事务对应该一个TX锁,在该事务中修改或者select for update的每一行都会指向这个锁(数据块的结构中有相关的标志)。 如果一个事务想修改的某条记录已经被另一个事务锁住,那么这个事务会等待,如果再有事务会形成一个列表,等待的信息可以在v$lock里面查到。做一个实验(在TOM书的197页)准备实验数据:SCOTT@ prod>
2017-09-02 10:40:04 701
原创 BP神经网络的原理及Python实现
网络结构层数:2 输入个数:3 隐藏层节点数:10 输出层节点数:1数据结构用一个dict表示整个网络: {’input_layer’ : 输入节点列表 , ‘hidden_layer’ : 隐藏层节点列表 , ‘output_layer’ : 输出层节点列表 }输入节点:{‘input_value’ : num}隐藏节点:{‘bias
2017-09-02 10:35:53 1782
原创 Oracle 块头的事务槽
INITRANS 初始个数,默认为2,每个块会预分配2个事务槽。 MAXTRANS 事务槽的最大个数,为255(新版本已经不可设置了)。 事务槽的增加是需要空间的,如果块上空间不足,事务槽的数量将达不到255。 每个事务槽代表一个并发事务。探索小实验:SCOTT@ prod> create table t ( x int primary key , y varchar2(40
2017-09-02 10:18:26 575
原创 hive GenericUDAF中的四种模式解析
每个模式下,输入数据的类型是不会变的,而调用的数据处理函数都有两种可能。partial1的输入只可能是原始数据;partial2的输入只可能是部分聚合结果;final的输入是部分聚合数据;complete的输入是原始数据;terminatePartial()与terminate()的输入是有两种可能性的,要按照模式来区分处理。
2017-09-02 10:14:33 935
原创 Oracle SQL高级编程——分析函数(窗口函数)全面讲解
参加《Oracle SQL高级编程》概述分析函数是以一定的方法在一个与当前行相关的结果子集中进行计算,也称为窗口函数。 一般结构为 Function(arg1 , arg2 ……) over(partition by clause order by clause windowing clause )Windowing clause : rows | range between start_ex
2017-09-02 02:16:36 1353
原创 Oracle SQL高级编程——位图联结索引
参加《Oracle SQL高级编程》一个典型的数据仓库查询: 这个查询中sales 是事实表 , 一般很大。 Products , customers , channels是维度表 , 一般很小,可以有冗余。SH@ prod1> explain plan for 2 select sum( s.quantity_sold ) , sum( s.amount_sold ) from sal
2017-09-02 02:00:35 404
原创 Oracle SQL高级编程——Model子句全解析
参见 《Oracle SQL高级编程》。第一个例子,初步认识SH@ prod> col product format a30SH@ prod> col country format a10SH@ prod> col region format a10SH@ prod> col year format 9999SH@ prod> col week format 99SH@ prod> col
2017-09-02 01:52:17 1481
原创 Oracle SQL高级编程——子查询因子化全解析
参见《Oracle SQL高级编程》。概述子查询因子化就是ANSI中的公共表达式。 从11.2开始,子查询因子化开始支持递归。可以实现CONNECT BY的功能。标准的子查询因子化的例子这是一个非常复杂的查询,下面是不加因子化的版本。注意PIVOT的用法。select * from ( select /*+ gather_plan_statistics */ product ,
2017-09-02 01:31:33 631
原创 Oracle优化——如何查看语句的准确的执行计划(explain plan可能不是真实的)
参见 Oracle性能优化求生指南。建虚拟索引HR@ prod> create index test_ix1 on employees4 ( employee_id ) nosegment;HR@ prod> alter session set "_use_nosegment_indexes" = true ;HR@ prod> set autotrace onHR@ prod> se
2017-09-02 00:23:00 830
原创 Oracle优化——星型联结转换(star_transformation_enabled)
参见 Oracle性能优化求生指南。另外请了解星型联结索引,此类问题的最佳实践。这是一个星型联结的例子,sales为事实表,其它为维度表。Where条件全部都作用在维度表上面。SH@ prod> select quantity_sold , amount_sold from sales s join products p using ( prod_id ) 2 join times
2017-09-02 00:16:42 1508
原创 Oracle优化——外联结的执行计划
外联结不要使用Oracle自有的方式在where条件中加(+),而要用ANSI的方式(… OUTER JOIN)。Oracle的方式不支持全外联结,而且存在诡异的BUG。左外连接与右外连接时,Oracle会把返回全部记录的表做为驱动表,哪怕这样是违背了ordered提示。可以应用所有的联结方法,效率也与内联结相仿。HR@ prod> select /*+ ordered */ first_n
2017-09-02 00:12:16 336
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人