IntelliJ IDEA/Android Studio插件开发指南

博主头像 前言 目前在为安卓手机QQ做自动化的相关工作,包括UI自动化,逻辑层自动化等。使用到的uiautomator等框架,需要在Android Studio进行编码工作。 其中很多工作如果做到插件化的话,可以有效地节省时间成本,提升大家的自动化效率。 比如运行自动化的时候,需要用到我们自定义的shell命 ...

WPF-3D圆柱体透视

博主头像 3D圆柱体透视效果 总效果 原理: 3D面+面在摄像机方向上的2D投影点的集合 3D面效果: 2D线: 画线时需要注意两个点: 1 在圆柱体上下两个圆之间有两条竖着的棱边代表圆柱体边缘 2 被遮盖的圆面后半面显示为虚线 1 如何确定两条棱边的位置 我们需要确定上下两个圆面最左边和最右边的点。 随着摄 ...

广告成本控制-PID算法

博主头像 今天我们来聊聊广告成本控制中常用的PID算法。 0.PID算法简介 首先我们可以看下维基百科中给PID算法的定义:由比例单元(Proportional)、积分单元(Integral)和微分单元(Derivative)组成。可以透过调整这三个单元的增益Kp, Ki和Kd来调定其特性。PID控制器主要适 ...

使用Vue-TreeSelect组件的时候,用watch变量方式解决弹出编辑对话框界面无法触发更新的问题

博主头像 在前篇随笔《使用Vue-TreeSelect组件实现公司-部门-人员级联下拉列表的处理》中介绍了Vue-TreeSelect组件的使用,包括使用v-modal绑定值,normalizer 来映射属性处理,还有一个@input时间处理值变更的关联操作。 在常规的新增界面处理过程中,弹出的对话框是已经构... ...

前端面试回顾(1)---javascript的面向对象

博主头像 #前言 前一阵面试,过程中发现问到一些很基础的问题时候,自己并不能很流畅的回答出来。或者遇到一些基础知识的应用,由于对这些点理解的不是很深入,拿着笔居然什么都写不出来,于是有了回顾一下这些基础知识的想法。 首先就是面试中经常会问到的,JS是怎么实现继承的,其实问到继承,面试官想问的可能还是你对JS面 ...

Nginx的进程管理与重载原理

博主头像 进程结构图 Nginx是多进程结构,多进程结构设计是为了保证Nginx的高可用高可靠,包含: master进程:父进程,负责worker进程的管理 worker进程:子进程,worker进程一般配置与服务器CPU核数相同,worker进程用来处理具体请求。 cache进程:也是子进程,包括cache ...

当 Go struct 遇上 Mutex

博主头像 struct 是我们写 Go 必然会用到的关键字, 不过当 struct 遇上一些比较特殊类型的时候, 你注意过你的程序是否正常吗 ? 一段代码 type URL struct { Ip string Port string mux sync.RWMutex params url.Values } ...

安全开发Java:日志注入,并没那么简单

博主头像 摘要:当web工程比较大,历史代码较多时, 应当使用log4j2框架的能力来修改日志注入问题,而不是按照有些博文里写的逐个进化参数的方式。 案例故事 某个新系统上线了,小A在其中开发了个简单的登录模块,会在日志里记录所有登录成功或者失败的用户。 小A对用户名都做了白名单校验,不正确的名字,也会用WA ...

Vue CLI 是如何实现的 -- 终端命令行工具篇

博主头像 Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统,提供了终端命令行工具、零配置脚手架、插件体系、图形化管理界面等。本文暂且只分析项目初始化部分,也就是终端命令行工具的实现。 0. 用法 用法很简单,每个 CLI 都大同小异: npm install -g @vue/cli vue c ...

刚转行1年测试新手:学习Python编程经验实战分享

博主头像 一、开头说两句 作为一名零基础转行刚一年的测试新手来说,深知自己在技术经验方面落后太多,难免会有急于求成的心态,这也就导致自己在学习新知识时似懂非懂,刚开始学完那会还胸有成竹,一段时间之后却又忘的一干二净,导致我要不停回去复习,还始终不得要领,难以在实践中灵活运用。 相信有不少同学跟我一样徘徊踌躇, ...

Scrapy入门到放弃01:开启爬虫2.0时代

博主头像 前言 Scrapy is coming!! 在写了七篇爬虫基础文章之后,终于写到心心念念的Scrapy了。Scrapy开启了爬虫2.0的时代,让爬虫以一种崭新的形式呈现在开发者面前。 在18年实习的时候开始接触Scrapy,花了一个月的时间,理论结合实践学习了Scrapy。本篇文章不写代码操作,只讲 ...

CSS完成视差滚动效果

博主头像 一、是什么 视差滚动(Parallax Scrolling)是指多层背景以不同的速度移动,形成立体的运动效果,带来非常出色的视觉体验 我们可以把网页解刨成:背景层、内容层、悬浮层 当滚动鼠标滑轮的时候,各个图层以不同的速度移动,形成视觉差的效果 二、实现方式 使用css形式实现视觉差滚动效果的方式有 ...

C语言-字符串函数的实现(五)之strstr

博主头像 C语言中的字符串函数有如下这些 获取字符串长度 strlen 长度不受限制的字符串函数 strcpy strcat strcmp 长度受限制的字符串函数 strncpy strncat strncmp 字符串查找 strstr strtok 错误信息报告 strerror 字符串查找 strstr ...

Dapr | 云原生的抽象与实现

博主头像 引言 Dapr 是微软主导的云原生开源项目,2019年10月首次发布,到今年2月正式发布 V1.0 版本。在不到一年半的时间内,github star 数达到了 1.2 万,超过同期的 kubernetes、istio、knative 等,发展势头迅猛,业界关注度非常高。 Dapr 这个词是是 「D ...

基于模板匹配与透视变换图像拼接的步骤

博主头像 各种变换的矩阵形式,其中透视变换的矩阵需要8个dof(自由度),所以我们至少需要4对点才能将矩阵求解。 四对点的含义是:你自己选取的4个和模板匹配的4个点,总共8个点求解8个未知数。 矩阵求解过程: 其中:(xi,yi)表示的是你自己选取的点。 (u0,u1)表示在右图模板匹配后得到的相似度最高的点 ...

记一次 .NET游戏站程序的 CPU 爆高分析

博主头像 一:背景 1. 讲故事 上个月有个老朋友找到我,说他的站点晚高峰 CPU 会突然爆高,发了两份 dump 文件过来,如下图: 又是经典的 CPU 爆高问题,到目前为止,对这种我还是有一些经验可循的。 抓 2-3 个 dump 第一个:有利于算两份 dump 中的线程时间差,从而推算最耗时线程。 第二 ...

Semaphore自白:限流器用我就对了!

博主头像 大家好,我是 Semaphore,我的中文名字叫“信号量”,我来自 JUC(java.util.concurrent)家族。 我们家族有很多优秀的成员,比如:CountDownLatch(等待其他线程都执行完再执行某线程),CyclicBarrier(循环阻塞一组线程,直到某个事件达成),当然我也不 ...

Zookeeper基础原理&应用场景详解

博主头像 简单了解Zookeeper Tips: 如果之前对Zookeeper不了解的话,这里大概留个印象就好了 Zookeeper是一个分布式协调服务,可以用于元数据管理、分布式锁、分布式协调、发布订阅、服务命名等等。 例如,Kafka中就是用Zookeeper来保存其集群中的相关元数据,例如Broker、 ...

NumPy之:NumPy简介教程

博主头像 简介 NumPy是一个开源的Python库,主要用在数据分析和科学计算,基本上可以把NumPy看做是Python数据计算的基础,因为很多非常优秀的数据分析和机器学习框架底层使用的都是NumPy。比如:Pandas, SciPy, Matplotlib, scikit-learn, scikit-im ...

123···200>