编程语言比较学习

基础语法 Golang pkg and import exported Names and Functions multiple result names return values, they are treated as variables defined at the top of the functions ...

django migrate db

本地生成migrate文件 Django里面如果修改了model,需要运行python manage.py makemigrations来生成sql变更文件,然后部署到生产环境时执行python manage.py migrate将改动应用到生产环境的DB。 在makemigrations有几个注意事项: 多个开发人员在同一个开发环境多次migrate修改数据库,导致生成的sql文件冗余 在本地运行python manage.py makemigrations命令需要连接数据库才能操作 这里公司的资深工程师给了一个可行的操作,对django配置一个setting_local.py的配置文件,里面的数据库使用sqlite,以其为db进行migrate操作,代码测试通过后再把sql变更文件提交到版本库中。 版本回退 如果项目上线遇到问题, ...

25岁

摘抄一些鸡汤文,看着挺有意思的 人民日报 找出一件你一直没做,却可以彻底改变你个人生活的事,坚持并且专注地完成 多学一些知识或者技能,学到了就跟你一辈子 开始健身 一周读一本书 生活方式很重要,健身、跑步、阅读、写作、表达、沟通 带父母定期体检,带他们一起旅游 不熬夜 旅游 不拖延,有想法立即行动 人生不存在一条既定的跑到 学会投资理财 保证身体健康 ...

开发不只是写代码

软件工程师的开发周期中,主要有两类开发:雇主的需求、个人开源项目/参与的开源项目。这两类开发需求中,软件工程师的职责不只是写代码,明确这一点对软件工程师的成长和项目的进度至关重要。由于笔者参与雇主开发比较多,这里笔者简单总结下参与雇主需求开发中的注意事项。 雇主中的开发主要有以下几个点: 产品规范,主要是需求的提出、审核、讨论等 项目规范,主要是项目进度的把控,时间、难度、人员分配等 研发规范,分支规范、review规范、测试/上线规范等(git ...

interesting bugs

收集工作、开发中遇到的bug 1 def get_es_client(self, namespace, endpoint_id=None): """ Return elasticsearch client by config. :param namespace: namespace of build :type namespace: str :param ...

docker-faq

WIP daemon registry:http: server gave HTTP response to HTTPS client 2018-03-19 14:02:48.000 [Prepare][Login Registry] > Logining registry 127.0.0.1: ...

elasticsearch beginning

摘抄 索引 —— 保存相关数据的地方。 索引实际上是指向一个或者多个物理 分片 的 逻辑命名空间 。 在索引建立的时候就已经确定了主分片数,但是副本分片数可以随时修改。 一个 分片 是一个底层的 工作单元 ,它仅保存了 全部数据中的一部分 在 Elasticsearch 中文档是 不可改变 的,不能修改它们 在内部,Elasticsearch 已将旧文档标记为已删除,并增加一个全新的文档。 尽管你不能再对旧版本的文档进行访问, ...

python变量作用域

修改同事代码发现变量作用域(scope)的问题,这里了解下。 Python的作用域一共有4中,分别是: L (Local) 局部作用域 E (Enclosing) 闭包函数外的函数中 G (Global) 全局作用域 B (Built-in) 内建作用域 以 L –> E –> G –>B ...

Django官方教程实践

公司的网关服务使用Django开发的,自己开发微服务组件都要在网关上封装API接口,但是Django封装了http、db操作,导致自己在debug或开发上难以下手,所以学习了下Django,下面记录下学习过程。 Django Tutorial 路由如何分配 数据库如何配置 db migration python manage.py makemigrations 根据模型的变化生成migrations, python manage.py migrate 将migrations应用到数据库 shell django在创建models后会生成相关model处理(CRUD、 ...

2017年读过的文章

我不喜欢标题党、炒作性质或者没有逻辑的文章,这里汇总的文章是我觉得值得深入阅读的文章。 朱松纯:浅谈人工智能:现状、任务、构架与统一 | 正本清源 当大部分媒体文章都在无原则无下线吹捧人工智能的时候,这篇文章以客观事实为依据,介绍人工智能的历史、研究内容和主要挑战,让你真正明白这个行业到底是干嘛的。 精选机器学习&深度学习视频资源合集 !(附下载链接) How To Become A Machine Learning Engineer: Learning ...

手里要有底牌

今天和甲方撕逼了。 甲方的一个小员工一副咄咄逼人的态度,我被逼得忍无可忍的时候,无奈地说:“我只是一个开发,你有问题和需求OK没问题,能解决的我都帮你解决,解决不了的你去向我们产品反馈,我们走流程帮你解决,你现在直接让我开发人员帮你解决,我已经试了很多方案,解决不了。你已经影响我的开发进度了。” 甲方小员工听到后立刻放低了姿态。我确实很生气的,但是我事后反思,小员工之所以放低姿态,不是因为我生气,而是因为小员工越级让我帮他解决问题 甲方是我公司的客户,小员工和我对接我们是合作关系,你有问题我能帮忙的都帮,不能解决的也给你解决方案了,你还让我帮你弄就过分了。严格来说就是越级,能调我干活的是我的领导, ...

psql学习

前言 最近在用PostgreSQL,偶尔要到测试环境上手动看看数据库的情况,这就用到的psql这个命令。下面简单记录下常用的psql。 链接 psql -U username -W password -h host [dbname] 如果在PostgreSQL所在机器,psql -U username会默认链接到本机的DB环境。 \command psql链接到数据库后,提供了两套命令,一套是SQL命令,一套是psql命令。psql自己的命令都是用\+command的格式,下面列举笔者经常用到的psql命令。 ...

新工作的一些思考

2017.9.15正式从老东家Linker Networks离职,加入灵雀云南京分公司,到现在快一个半月了,总结一下过去的表现和认知。 为公司着想 合同是要寄到北京签的,南京正好有2位新同事一起寄合同。北京hr都是把我俩的材料一起寄过来的。我们填好材料再寄到北京。寄的时候为了保密我和新同事是分开填写材料的,我写好后就直接寄到北京了,没有和另一位同事一起寄。和hr沟通的时候对方专门问了下我们是一起寄的吗。因为邮费是公司出的,所以我认识到hr姐姐把材料一起寄是为了帮公司省钱,而且她还特意问题是不是一起寄的。其实我在寄材料的时候就没有想到一起寄帮公司省钱。 这件小事还是给我很深的感触的,我在做事的时候没有想着帮公司省钱。毕竟是创业公司,还在成长过程中,不能任性花钱。 20-30岁是黄金时期 ...

kde5与archlinux环境下配置libinput-gestures多手势操作

初衷 自己的笔记本是archlinux+kde plasma5的环境,看到同事的macbook pro支持很多手势操作(gestures),自己也希望在archlinux和kde的环境下配置方便的手势操作。 查询资料后发现touchegg和libinput-gestures都可以满足需求,但是在实际配置过程中,touchegg存在很多问题一直都没能解决,而libinput-gestures基本没有太大的问题。所以本文主要介绍如何配置libinput-gestures。 预备知识 计算机窗口管理器 kde是X.Org桌面环境,aur上维护了一个基于X.Org Server的驱动xf86-input-libinput-git,很方便。它们间的关系如下: X11 client在我这里就是kde plasma5。 驱动程序libinput, ...

基础统计知识

基尼系数:反映分配收入分配公平程度的指标,值在[0,1]之间,越小收入分配月公平。公认0.4是警戒线,超过0.4表明收入分配差距较大。根据黄金分割率,0.382是理想的基尼系数。 恩格尔系数:食品支出总额占个人消费支出总额的比重。恩格尔系数达59%以上为贫困,50-59%为温饱,40-50%为小康,30-40%为富裕,低于30%为最富裕。 ...

touchegg config

自己心爱的笔记本是Thinkpad X1 Carbon 5,安装的archlinux和plasma5桌面环境,自己希望通过touchpad(触摸板)支持更多的像Mac那样丰富手势操作,比如三个手指横滑切换桌面,自己偶然发现一款软件touchegg,可以定制手势操作。 一系列配置后我发现我的笔记本存在一下问题: 3指操作无法识别,虽然我的硬件和驱动都支持3指操作,根据arch wiki得到: xinput list-props "SynPS/2 Synaptics TouchPad" | grep Capabilities Synaptics Capabilities ...

关于技术面试

技术职位的面试,主要考察两个方面:技术和人的品质。技术比较好理解,人的品质指人的软实力,它是广义的,只是我用了比较书面的说法罢了。 这里我想讲讲软实力的方面,因为很多时候你在技术上的面试表现已经能让你进入职位候选人中,招聘方会综合每一位候选人的情况后决定录用谁,这时你的品质/软实力是非常重要的。 就我个人而言,我希望告诫自己,无论是什么情况,不管是面试还是工作中,都要保持严谨、专注、认真、负责的态度。这是我经历几次面试后的感触,面试中比较忌讳的一点就是认为自己面试表现还不错,就懈怠或者盲目自信,这让人觉得你这个人不稳重,人家是不会录用你的。 还有一点, ...

wireshark(一):安装和配置

网络是程序员必须掌握的技能,这里从wireshark抓包分析工具wireshark入手,慢慢进入网络的神秘世界。 安装 我的系统环境是archlinux 64bit,wireshark GUI(图形化界面)有GTK和QT两个实现版本,个人使用的qt版本: ➜ ~ pacman -Ss wireshark community/wireshark-cli 2.2.8-1 [installed] a free network protocol analyzer for ...

golang基础

Data race 数据竞争:当多个goroutine并发访问同一个变量,并且至少有一个goroutine对变量进行写操作时,就会发生数据竞争。 go提供了一个内置的数据竞争检测工具: $ go test -race mypkg // to test the package $ go run -race mysrc.go // to run the source file $ go ...

websocket(一)基础

基础 项目中需要用到WebSocket,自己结合wikimedia/WebSocket学习一些基础知识,记录下来,方便复习。 websocket是communication protocal(通信协议) full-duplex(全双工) over single TCP websocket设计之初用于browser和web server之间通信,现在可用于任意实现websocket协议的client和server 一次handshake(握手)后进行Upgrader request(协议升级) low overload(低负荷,不需要header信息) ...

socket学习

overview socket译做套接字,在计算机网络中,用于收发数据的内部endpoint。socket本质上是文件描述符。 handle Handle (computing),handle指计算机中引用的一种资源,是一个抽象的概念。通常包含: file descriptors,文件描述符。 network sockets,网络套接字。 process idendifiers,进程ID。 job IDs,Job ID。 进程ID和jobID可以用整数表示。文件描述符和套接字也可以表示成整数, ...

Bash工作原理

Bash是一种Shell实现,所以先介绍下Shell。 shell Shell不是具体指那个程序,它是一个概念上的统称。从Linux系统角度,Shell是用户和操作系统间的接口。 shell有壳的意思,形象一点说,Linux系统的shell就像操作系统的外壳,为用户提供使用操作系统的接口。它是命令语言、命令解释程序及程序设计语言的统称。解释执行用户输入的命令。 Shell有很多具体实现: Bourne shell(sh) C shell(csh) Bash Bash工作原理 Bash的工作原理可以介绍得很深,但是笔者才疏学浅,这里只简单从进程角度谈谈bash以及bash启动的命令间的关系。 ...