- 博客(53)
- 资源 (2)
- 收藏
- 关注
原创 Python 踩坑记
回归 Python 栈,相较 Go 的 Coding,Python 确实偏向复杂,看似编码方便快捷的背后,是越来越庞杂的细枝末节,稍不注意就是偏差。如果项目只是“能跑就行”,那大概率遍地是坑。开启踩坑记~
2024-04-01 20:42:51
934
原创 MacOS M1/M2 Go Debug 配置
换电脑,Go 环境带来一些麻烦,耽误很多时间,稍作记录。原始电脑是 Mac 旧款,CPU x86 构型,新电脑 M2,因为旧电脑里本地文件很多,为了简化搬迁,还是用了 Mac 自带的迁移,会有调试环境问题意料中,因为先前有朋友 x86 -> M1,解决起来也不困难所以也选择了同步,不过自己还是踩坑花了很多时间修复。核心问题就是 Go 环境问题,不能 Debug。
2024-01-04 19:21:13
2057
原创 Jupyter 使用 & Electron Example
如果有一些数据统计分析可视化的诉求,但又不需要提供商业化平台,生态圈提供,一款非常实用工具。并且近期因频繁接触端侧一些事务,对于当下 PC 侧跨端应用的开发构建,简单了解一下 Electron。
2022-10-18 19:23:50
561
原创 Go 笔记六 map简单剖析
前言结构体中一个 map 字段,函数调用传递下去后,并发将结构体作为参数调用,而后 panic了,原因很简单,并发读写了~难得浮生片刻闲,好好解读下 go 中 map。笔者本文所欲源码给予 go1.17 版本。map 基础介绍底层结构python 里类似结构叫dict,貌似高级点的语言都有这种结构,怎么去理解 map 呢?看一下 wiki map,不做过多赘述,普遍认知就是 “哈希表(hash table)”,我们首先看看 Go 中 map 是怎么定义的。Go map 的初始化使用var a,
2021-10-31 15:40:13
322
原创 Go 笔记五 debug & 调优
前言服务出现 OOM 导致异常退出,对于8G规格实例,在不高 QPS 的场景下偶发出现爆内存的情况,进而整体走查下服务的内存使用情况。期间用到很多工具,记录下使用过程。net/http/pprofgo 自 1.11 后自带 Debug 工具,能够抓取 Runtime 时的资源开销表现,net/http/pprof 提供了开启一个 http 服务来监测服务Runtime 开销,具体参见: pprof。项目工程已经打开debug 端口,可以直接访问本地页面:http://localhost:8080/de
2021-10-13 15:00:53
767
原创 Go 笔记四 并发操作
前言推荐 《Concurrency in Go》,中文版名为 《Go 语言并发之道》,在 Go 语言并发编程背后的逻辑完备和数据安全方面做一些总结。基础知识理解以下基础知识并发 & 并行进程,线程,协程(goroutine)理解 Sync 包中的 Mutex理解 Sync.atomic 包理解 Sync.Map 并发安全的 Map实践 – 并发安全有序链表方法定义整型无重复元素有序单链表,要求实现如下方法:// 初始化返回一个有序列表的头指针NewInt() *IntL
2021-07-18 18:17:37
285
原创 ClickHouse: MergeTree
前言承接上文 ClickHouse:起源和架构,简单了解下 ClickHouse 的核心引擎 MergeTree,并且具备很多其他特性的变种 MergeTree 引擎,是 CK 目前支持的 6 类 20+ 种引擎种最为强悍的家族引擎,且仅有MergeTree家族引擎支持 Partition(分区),Shard(分片),Replica(副本), Primary Index(主键索引) ,Sample(抽样)等特性。MergeTree 建表和存储结构MergeTree 的数据写入总是以数据片段形式落盘,且
2021-05-04 21:52:02
1387
原创 ClickHouse:起源和架构
前言数据可视化蹂躏了一年,Opentsdb,Influxdb都算是接触使用过了,唯独觉得ClickHouse 甚是抢眼,特别在监控中有需要 Group By 某个高维 Tag 进行 Aggregate 运算,此时 Opentsdb 性能和 ClickHouse 的比照完全是 CK 对其他时序的降维打击,正因为觉得如此神奇才决定深入了解下。Domain 理解笔者没有这么宏观认知去阐述 ClickHouse 的前世今生,但是常见的一些理念还是能刚帮助理解。OLTP vs OLAP早先的文章有不少都是
2021-04-28 21:04:47
1091
原创 Go 笔记三 reflect
前言Golang 熟知过程中先前记录阅读的内容在未经实践历练后总是会不得其味,当实际使用之后就会有感性的认知,回首在读会更加明了反射 reflect起初 Coding Go 非常不适,因为没有 Python 动态,总觉得很死板,在前文 “Go 笔记二 多态的实现 struct & interface” 介绍了interface,务必先了解这些基础,有了上文的基础若想更加全面了解,可以参读:reflect动态调用方法Python 可以 getattr 获取对象对应属性,再判定属性是否是 ca
2021-04-11 21:03:02
232
原创 2021杂记
庚子小结2020悄然逝去,年逾而立却历经工作中最为激情的一年。工作虽算不上资历很深,也有几年经验,唯独这一年觉得非比寻常。2019转入当前公司总觉得有点消沉,因为工作内容没法让自己成长,一路走来的经历让自己深刻知道逆水行舟不进则退。“人要胸怀去接受那些不可改变的事–这叫仁,要有勇气去改变那些可以改变的事–这叫勇,最重要要有能力区分二者–这叫智”,最早是在某个地方看到朱清时说的这句话,这么多年总是埋在心里。好在2019年底转入了一个新的团队,迎接我的就是2020一年超出寻常艰苦奋斗。这一年,遇到了一位偶
2021-01-04 00:05:32
503
原创 Go 笔记二 多态的实现 struct & interface
Go 笔记二 多态的实现 struct & interface前言承接上文笔记一,继续细化下Go的其他语法细节。结构体某次编码经历:// A 是一个复合结构体,其中包含了B,如下操作req := a.Breq.B.attr = someValuedoSomething(&a) // 结果发现a.B.attr 并非 someValue上述示例背后的逻辑?基础定义如果是有过Go Coding经历的基本都能理解结构体在Go编程中的效能,基本可以等同于类去理解,但是与类那种
2020-11-22 02:47:14
1101
原创 Go 笔记一
前言从04月至11月,8个月的时光,忙碌到忘却世界,总算是把几度转手的项目给做到了及格线的阶段。这8个月的Golang coding 基本也是面向搜索编程,还是不习惯这种碰到细节语法就模糊不清的感觉。因此当项目稍微宽松时,还是选择重新看下之前粗略看过的书籍,又有一番收获。函数Go语言中,函数和方法还是有区别的,类比理解其他OO的语言,函数是不依赖对象存在的一等公民,而方法必须依附对象。基本概念函数的声明如下:func YourFunction(yourparam int) int { // f
2020-11-10 14:29:54
267
原创 Linux 笔记 -- nginx,docker,gitlab
前言许久不维护服务,感觉有些生疏,连screen的使用都忘了,近期操作过程中生疏的点,还是稍微记录梳理下。Screen远程登陆链接不稳定时推荐工具,能够在当前的shell窗口中开启子窗口,当链接意外段开时,窗口中正在执行的命令,下载等等操作不会断。# 查看yum已安装的包yum list installed# installyum install screen# 查看列表scre...
2020-04-08 21:43:07
777
原创 Kafka 笔记一
前言早先过了一遍Kafka,摄取了不少知识细节,未免遗忘梳理记录下,推荐书本 《Kafka 权威指南》。Quick Start基础概念关于Kafka是什么,可以参考官网介绍,一个分布式流处理平台,通俗点理解就是一款基于发布和订阅的消息系统。Kafka设计实现的目标在于:使用推送和拉取模式解藕生产者和消费者为消息系统中传递的消息提供数据持久化通过优化系统实现高吞吐量系统可以随着数据...
2019-12-22 16:59:18
209
原创 Python -- 限流 throttle
前言一个业务型的服务,被open接口后,遭遇并发扫数据,于是要做限流操作。一直固执的任务,业务API和OpenAPI要分开处理,或许因为起初接入其他企业ERP系统都是走较为规范的OpenAPI,始终对于这种开发系统业务API的做法感觉不好。面对窗口限流需求是要在Django的一个工程里做限流,倘若是rest_framework的View也好办,直接就提供了限流 rest_framework ...
2019-08-23 13:44:54
3477
原创 go -- gorm, logrus, gin
前言早先在做K8S相关的一些开发时,就曾计划扩增go相关技能,看了两本书其中一本感觉不好,推荐《Go语言编程入门与实战技巧》黄靖钧 黑色封皮的。个人读起来感觉比较透彻,反之另外有一本,读起来就很别扭。能够上手还是要多写多看开源的东西~...
2019-08-11 18:57:18
1773
原创 MacOS install mysql
前言MacOS 安装mysql踩了不少坑,上一篇Python – pycurl, mysqlclient, Django中mysqlclient 在MacOS上颇费周折才install成功。结果安装mysql还了一些坑。MacOS Install Mysql如果是Mysql 官方下载直接下载dmg安装,具体没有操作,个人通过brew安装# 误区一brew install mysql此...
2019-06-27 16:34:37
808
原创 Python -- pycurl, mysqlclient, Django
前言本不想多说什么,年后在公司亲历一段别样经验,不想吐槽,只因吐槽不能改变任何现状。小姐心态,寡妇待遇,妇联追求,一份技术工作做出弯腰,低头,下跪,也是醉了。今年大环境不好,大厂裁员,人才过盛,好在自己还是去了符合自己意愿的公司。新工作快一个月,主要工作技术内容是一个Django的小东西,首先是需要从Python2 迁移至Python3,简单带点重构。Python2 迁移Python3 运行...
2019-06-16 20:44:28
443
原创 Python 运维笔记 -- kubernetes web terminal
前言承接上一篇docker container web terminal,实现Kubernetes的Pod中运行容器terminal连接。所不同的是后端使用的是python kubernetes的package。完整的工程地址请参见:web_terminal_kubernetes。Kubernetes ClientPython kubernetes package直接可以pip安装: $ ...
2018-10-24 16:44:04
5833
2
原创 Python 运维笔记 -- docker container web terminal
前言需求所致需要做平台container的web terminal。因为现在的一些配套Dashboard不好做权限和资源管理。实现原理上,前端开web socket 后端保持双向通信,服务端完成容器对接。初衷是Kubernetes 所启动的pod中container连接,本节我们先从docker做起,后期有机会在介绍如何实现Kubernetes的container web terminal。在...
2018-10-21 11:40:57
2472
3
原创 运维笔记 -- docker、kubernetes
前言感觉现在多数互联网公司就在朝着容器化的路上前行,大势所趋啊。之前陆续有过docker相关记录,管理方式也是docker-compose形式,其实对于一般小量级的docker-compose管理足以应付。但是如果追求更高些,kubernetes是绕不过去的。倘若docker不是太熟悉,可以参见之前的 docker 笔记一,docker 笔记二。docker -- tips虽说不是专门负责基...
2018-09-27 21:40:26
475
原创 运维笔记 -- CI/CD 之 docker,jenkins,gitlab,nginx
前言近期归整的知识有点杂,每天工作也是近两年最为紧凑的阶段。还是先说需求,一个工程的持续发布,对应的测试环境时基础的python + supervisor形式,新切一个环境出来用docker做。话说之前知道大概的流程是什么样,实际动手操作还是遇到各种问题,机器环境CentOS 7.5。nginx这个不必多说,多处都有安装使用文档。所遇到问题是笔者拿到机器是新申请的没有多想就安装了一个n...
2018-08-18 18:26:33
703
原创 Python运维笔记 -- pipenv, jenkins, gitlab
前言两个月的漫游生活,迎来新的工作方向。些许辗转,本想能够从事AI相关工作,奈何缺乏相关工作经验,仅凭书中拾得微乎知识难以驾驭,进而转战运维开发。 第一项任务是打通自有平台和Jenkins,以实现在自有平台上能够完成CI/CD。 着手实现骤是觉得Python用作运维长处,对于jenkins,gitlab这种开放接口的工具,已有封装配套的Python包,安装调用即可。版本管理 pipen...
2018-07-25 20:29:40
2226
原创 Python -- Celery
前言Python中出场率很高的分布式队列神器celery,正巧近期一些需求需要使用,因而换装celery。 此前已经介绍过Python利用pika进行RabbitMQ的使用,Celery官网介绍首页就给出支持设定 RabbitMQ作为celery的brokers,celery官网地址 。演示Celery版本4.1.0,Python 3.5.2, MacOS,RabbitMQ 3.6.12,Redi
2018-04-19 17:15:40
1059
原创 SQL -- Tips
前言先前陆续总结过不少关于MySQL中SQL的使用,偶然一个使用,激发了去深入一下标准SQL的全面语法的构想。以下所使用的DB包括:MySQL 5.7,PostgreSQL 9.6.8此二者均是笔者自己在机器上部书的单服务,以及阿里云RDS服务 MySQL 5.6.16-log。 很多基础的语法请参见之前的: MySQL 小结(一) MySQL 小结(二) MySQL 小结(三)标准SQLS
2018-04-09 19:11:45
389
原创 tornado + peewee-async 异步ORM
前言习惯sql操作数据,需要做一些简单业务操作时sql操作数据的低复用显露无疑。惰性不愿手动写ORM,索性找一个python比较通用的ORM,选了peewee。为和tornado配合使用,改用在peewee基础上封装的peewee-async几经折腾,总算调试通过,演示环境MacOS,python3.5.2。 类似还有torpeewee,不推荐使用。 本篇所有演示代码可以在个人github中下载
2018-03-09 18:17:44
5794
5
原创 MySQL进阶 -- 数据类型
前言在先前的MySQL基础章节 MySQL 小结(一) 中介绍过MySQL表的创建等基础操作,本节归纳阐述MySQL支持的数据类型以及各类型的特征。在数据库建模时,有几点基础原则: 1,在确保数据的存储范围情况下,选用尽可能小的数据类型进行存储。 2,能够赋予默认值且不影响认知的情况下,尽量避免存储NULL值,不绝对。整型整型数据在MySQL中可以存储的数据类型如下:
2018-02-05 18:59:48
347
原创 MySQL 进阶 -- 事务隔离及多版本控制
前言不知多久没有来这,并不是放弃了学习,只是这两多月工作实在紧凑胶着。原计划年底前在找一个自己感兴趣的方向看看,结果进度不佳。之前徘徊过Kotlin,如果有时间真应该好好看看。Google钦定的亲儿子,很多Java大神都给予不错评价。不过个人缺少Java工程经验,结合后一阶段工作需求,决定深入去了解MySQL。 途径还是看书加示例验证。推荐书籍《高性能MySQL》,目前读了两章,个人强烈推荐
2018-01-26 18:23:09
2264
3
原创 RabbitMQ 笔记一
前言过往使用一些简单队列功能,直接上redis,包括pub/sub也都可以使用redis完成简单功能。不过既然RabbitMQ作为消息队列非常成熟的组件,还是值得学习使用。演示环境Centos7,MacOS,所有演示代码可去github上下载demo code,演示代码匀为python实现,所用版本python 3.5概述简介Wiki中给出的介绍是:RabbitMQ是实现了高级消息队列协议(AMQP
2017-11-03 16:55:40
981
原创 docker 笔记二
前言承接之前 docker 笔记一,继续我们docker实用梳理,本节主要阐述容器管理 docker-compose 的实际使用,以及docker 日志方面查询,收集。演示环境CentOS 7,mac。容器管理在之前笔记中已经对 docker-compose 做过简单介绍,请参见docker 笔记一,此处继续。docker-compose 常用命令docker-compose 常用的命令包括:# b
2017-09-25 14:51:06
574
原创 python 笔记(二)类与实例
前言Python类的定义在前面文章中零散提到些,包括类的方法定义,__init__,__new__,__call__等magic method的作用。其实python中的类和实例还有很多细节值得深究,以下做简单梳理。旧式类和新式类Python 2.x中定义类A时如果不明显指定类从object继承,那么A类就是旧式类,明显指定从object继承则是新式类。在Python 3.x中类的
2017-09-02 11:53:09
3247
原创 Python 笔记(一)
前言强烈推荐一本书《Python Cookbook》未来Python笔记算是读此书时候带来的收获。学而不思则罔,用而不思则迷。此书尤其适合有一定开发经验的读者,能完善技能。数据结构python基础数据类型有哪些?int, float, str, tuple, list, dict, set,简单梳理梳理list, dict。list相比tuple,list可以修改,对于list
2017-05-10 20:22:04
369
原创 docker 笔记一
前言工作需要自己部署维护服务,本以为会用jenkins做CI,没成想改成docker,回头把一年前刚看了两天的docker又拿来用,这次算是初窥门径吧,话说真的很好用,琢磨写个笔记,以后回顾方便。基础概念:用docker务必要显了解三个基础概念,镜像,容器,仓库。以windows下运行ubuntu虚拟机类比理解镜像,容器。镜像但凡有点虚拟化概念,基本都立马感知镜像是什么。如果不了解虚拟化,windo
2017-04-25 19:06:08
665
原创 MySQL 小结(三)
前言本应在两月前完成文章,硬生生拖到现在才来补齐,不想找借口开脱,还是时间利用不够充分。紧接上文,此处会呈现MySQL中一些高阶的sql用法。包括view(视图),procedure(存储过程),transaction(事务处理)。view – 视图视图view可以理解成虚拟的表,MySQL 5以上添加了对view的支持,所以低版本MySQL无法使用试图。为什么说是虚拟的表,因为通常意义的TABLE
2017-04-07 17:55:29
550
原创 MySQL 小结(二)
前言承接上节继续介绍。上节中仅阐述了 SELECT 检索数据基础用法,实则 SELECT 还有很多更高级的检索方法用来检索出更为复杂需求数据。示例数据就是《MySQL必知必会》一书中给出示例表,去http://www.forta.com/books/0672327120/ 中下载数据脚本。高级筛选之前SELECT与WHERE关键字连用已能做简单条件的筛选,还有实用的用法。LIKELIKE关键字是为
2017-01-14 17:25:25
397
原创 Django 多数据库 + mysql + wsgi + apache
前言许久未见Django,若不是因为一个急切的需求,估计近期也不会重玩Django。具体需求是,需要构建一个能够连接远端数据库,并且能够增删改查数据,不觉想到了Django的admin。 考虑之后,决定在本地完成Django的基础数据,就是用户,分组等初始化数据,然后设置多数据库,连接远端数据反馈到admin。 开发环境,ubuntu 14.04,python2.7.6,Django1.8.9,
2016-12-25 15:23:47
500
原创 python + redis长轮询
前言说起来长轮询也不是什么新鲜概念,不过个人首次用python实现。环境Mac, Python3.5.2, Tornado4.4.2。http协议在介绍长轮询前先了解下http协议。 http:超文本传输协议,是网络七层模型中的应用层协议,它是基于TCP/IP协议的。在 1,最早的http协议0.9版本,有且仅有一个GET请求。 2,往后就是http1.0,其引入了GET, POST两种请求,
2016-12-18 21:57:09
4410
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人