自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

手写我对你的温柔

一个还在成长的Android小猿。

  • 博客(351)
  • 资源 (2)
  • 收藏
  • 关注

原创 手把手带你编写微信公众号

这是一个简单的项目:简单编写微信公众号扫码关注:关注!即可提高学习效率——Peace! 实时查询城市天气 回复“美女视频网站”观看美女视频 不定时推送小姐姐视频和图片合集 Docker线上部署SpringBoot如果您不知道如何开始编写的话,可参考我的Github代码。仅供交流学习,代码业务可方便扩展如果您喜欢的话,请给我一个star!如果您有任何疑问,请提...

2020-08-12 10:20:16 1703

原创 Flutter: 学习指南

Flutter让跨平台更加高效。

2020-03-31 12:10:19 491 1

原创 一文学会HTML速写Emmet语法

Emmet: 高级的代码补全,让我们写代码更快。话不多说,开干!1.写某个标签然后按tab键自动补全【缩写补全】2. 嵌套的缩写其中 嵌套中有这些字符:> + ^ * ()> 代表父子关系* 代表重复+所以,+代表同级元素^ 代表所以^ 代表网上爬升一级。()代表让逻辑关系更加清晰:3. 属性:特殊符号:# .# 代表id. 代表class关于自定义属性:[]4. 带有数...

2020-08-16 11:43:39 925

原创 Colaboratory使用Tensorboard

Colaboratory是一个好用的工具,那么自然也会提供了扩展支持。添加Tensorboard的callback:然后使用tensorboard的命令启动生成的文件:%load_ext tensorboard%tensorboard --logdir=callbacks文件保存的目录

2020-08-06 09:53:55 850

原创 C++: Windows下MinGW编译boost并配置Clion

1.安装MinGW:也可以使用Qt自带的mingw并mingw的bin目录添加到PATH2. 安装boost:以下2选1:方式1:编译好的MSVC:http://dl.bintray.com/boostorg/release/方式2:官网未编译的Boost:https://www.boost.org/users/download/解压后:文件结构说明:(来源Boost文档:https://www.boost.org/doc/libs/1_73_0/mor

2020-06-28 17:23:07 2007

原创 C++: Clion中C++使用当前目录读取文件失败

#include <iostream>#include "Complex.h"#include <string>#include <fstream>#include <limits>using namespace std;static const int bufferLen = 2048;// 二进制文件的操作bool CopyFile(const string& src, const string& dest) {// 引.

2020-06-22 16:14:58 2361 1

原创 Netlify: 前端Vue/React自动化部署服务

Netlify在我以前的博文有介绍。这里打包这个“群聊”项目,这里只演示前端怎么部署,后端是用express写的,部署同理。1. 上传vue项目到Github上:vscode中提交并推送到Github上:这时需要添加远程:2. 打开Netlify:这将让我们打包后的dist目录上线:自动化部署,就是本地对Github上的任何修改都会触发Netlify重新执行Build command。上面的域...

2020-06-21 13:22:14 746

原创 数据结构:红黑树

二叉搜索树BST(Binary Search Tree):该树特点是任意一个节点的左子树的节点都比它小,右子树的节点都比它大。例如:BST带来的好处:不管是插入还是读取的时候都需要跟每一层中1个节点比较就可以了。例如上面的树中,找10节点,先比较7,10>7,走树的右半部分,左半部分就不用再比较了。然后10<11,走左边,10=10就找到了。查询的时间复杂度依赖树的深度。同理,写入节点的时候也一样,例如插入9,9>7,走右部分,9<11,然后9<10就插入

2020-06-12 15:58:29 522

原创 Java日志系统:log4j/logback/log4j2/slf4j统一日志标准

日志的实现各自有各自的不同,如果一个项目中引入了很多依赖,每个依赖又用了不同的日志实现,配置日志的时候就会非常麻烦,所以有了上面的门面接口。其中用的最多的是slf4jslf4j 案例:log4j:1. 添加依赖:<dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <..

2020-06-11 11:03:57 778

原创 FFmpeg: 通过ffplay给视频加字幕

如果使用ffplay播放视频的时候希望加载字幕文件,则可以通过加载ASS或者SRT字幕文件来解决。以SRT字幕为例:1. 准备.srt字幕文件:2. 通过ffplay将字幕文件加载到播放数据中:另外,ffplay的功能还有很多,例如ffplay的数据可视化分析应用:例如播放音频文件,如果不确定文件声音是否正常,可以直接使用ffplay播放音频文件,播放的时候将回把解码后的音频数据以音波的形式展示出来:播放结束后:如果播放视频时想要体验解码器是如何解..

2020-06-09 16:27:27 2346

原创 Go: 协程的生命周期管理

协程的生命周期:1. 定义:协程的创建等全部生命历程的管理。通俗的讲就是“保姆”。它的作用是便于协程的回收利用。goroutine申请的代价很小,但是在go程序中,goroutine的总量是有上限,超过上限,多余出来的协程就得等到前面的协程完成任务后能开始运行。所以适时的进行回收。2. 生命周期分类:协程创建 协程回收: 由Go语言的GC和垃圾回收机制控制的 协程中断: 通过context包实现3. 如何实现:context实现中断package main.

2020-06-02 16:51:26 1943

原创 Android: app中内置静态网页和wifi传图

android模拟器和PC访问:如果使用真机,就让开发机和真机处于同一网段内即可。但模拟器和当前开发机是同一台物理电脑,但是模拟器是不能通过127.0.0.1这样的ip访问开发机的。在模拟器环境下访问PC的IP:10.0.2.2即:模拟器上访问当前开发机IP: 10.0.2.2 当前开发机访问模拟器的ip,虽然是127.0.0.1,但是对应的端口需要先进行端口映射后才能访问:...

2020-06-02 16:32:23 674

原创 Python : 一文学会办公自动化(Word、Excel、PPT)

自动化:1946年提出,被运用于军事等方面。办公自动化指的是现在办公和计算机技术结合起来的新型的办公的方式。“高效的工作”正是自动化解决的问题/办公自动化的分类:操作Excel: 就业数据分析等 操作Word: 考试系统生成Word试卷等 操作PPT : 用户画像分析等使用的模块:xlrd模块 xlwt模块 smtplib模块 pywin32模块 python-ppt模块 python-docx模块 pymysql模块 xlsxwriter模块1. xlrd模块

2020-05-27 16:52:25 4722 6

原创 浏览器的渲染机制、提升页面性能、错误监控上报

js运行机制:微任务队列、事件循环、单线程错误监控:CSRF防范:css盒模型:Dom事件:原型链:

2020-05-25 20:58:24 391 1

原创 压测工具:jmeter

衡量当前系统应对高并发的量,压测工具不能少。1.下载jmeter:进入官网2.使用jmeter:进入bin目录:或者双击:2.1 添加测试计划,线程组的基本属性:2.2取样器:取样器是我们真正进行测试的内容。比如http、ftp、jdbc的测试等。这里以http请求测试为例:这里的100是运行后可以看到这里在乱闪并很快归0.这是因为线程启动后进行了请求,并马上请求成功,线程就结束了。这里没看到i请求结

2020-05-25 17:26:32 1168

原创 css3:发光按钮、漂亮的登录框、满意的404、带动画的输入框

1.发光按钮<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>发光按钮</title> <link href="https://cdn.boo.

2020-05-24 21:20:48 1708

原创 算法和数据结构的学习之路

推荐网站:LeetCode牛客网 Visualgo.net 推荐入门书籍:小灰算法1.入门基础算法知识:2. 面试常见算法题:

2020-05-21 15:32:54 273

原创 Python Tkinter: 实现网络监控APP

先下载putil模块:import tkinter as tkimport psutilupload_text = "上传速度:{} kb/s"download_text = "下载速度:{} kb/s"last_upload_data = 0last_download_data = 0first = Trueapp = tk.Tk()app.geometry("500x200")def update_speed(): global last_download

2020-05-20 09:37:45 1054

原创 Github Actions全方位演示

2019/8 ——推出的新功能。可以完全替代掉好基友Travis CI来完成github项目的CI/CD操作了。1.新建一个项目2.Actions基础介绍:这里给了一些推荐的流程,比如Nodejs等。这里还是使用自定义流程:这里什么都不修改,直接点击提交代码:Actions已经正在运行了:然后回过头再看看这个CI执行了什么东西:1. 先给这个流程命名为CI:2.on:决定它什么时候触发:3. 然后是触发的是具体的jobs..

2020-05-19 17:14:52 1781

原创 CI/CD: 使用DaoCloud介绍完整的CI/CD流程

1. 注册DaoCloud:https://www.daocloud.io/2. 以springboot作为测试:然后添加测试接口:测试通过后将项目上传到github:3.DaoCloud中新建项目:4.CICD的配置流程:这里可以添加测试任务:测试阶段不通过是不会进入构建阶段的。构建阶段我们是想要将项目生成docker的镜像以便后面的部署:可以选择在项目中创建Dockerfile或者云端的dockerfile,这里选择本地项目中创建d

2020-05-19 15:57:41 1615

原创 CI/CD: Github的好伙伴travis

代码提交到github仓库后,自动触发hook流程(自动化)。jenkins其实是将自动化这一过程在本机运行,所以缺点是个人用户需要提供一台执行jenkins的机器。travis则是github的合作伙伴,提供云端的机器帮我门运行云端的脚本。这里以一个简单的nodejs为例,看看如何结合travis进行CI/CD:然后创建一个gihub项目:然后提交本地的项目到github上:然后打开travis官网:先注册一个,然后再登录账号。开启后,就可以创建文.

2020-05-19 14:28:06 421

原创 PS批量制作字幕

先准备每一屏出现的字幕文字:不要添加符号打开ps,新建:用工具在上面打字:然后:然后导出:把这些导入到视频软件中即可导出后,使用primere软件制作视频,导入上面的字幕文件即可,调整时间线。...

2020-05-08 11:20:38 853

原创 日志采集系统的个人看法

ELK:filebeat -----> logstash --------> ES---》kibana这一套ELK是Elastic这个公司提出的一套组件。在数据分析和大数据领域,ES不算是最著名的团队,而是Hadoop代表的一整套动物园。。。另一套数据采集方案是flume采集数据-----> kafka ----> Hadoop(存到hdfs文件系统等)日志...

2020-05-08 10:32:22 402 1

原创 日志采集系统ELK

ELK: ElasticSearch(数据库 json存储 全文索引) + Logstash(日志采集中心,配置一些正则等分割解析处理日志)+ Kibarna(图形化展示)Logstash做日志的采集,监听5044,采集的节点都将数据传递到5044上来。采集的节点叫Beat。(例如File beat等)logstash处理之后得到json数据,发到ES9200中存储。然后通过Ki...

2020-05-08 10:15:02 542

原创 Go: 短地址服务

短地址:将长地址缩短到缩短到一个很短的地址,用户访问这个短地址可以重定向到原本的长地址。设计HTTP Router和Handler 在HTT处理流程中加入Middleware 利用Go的interface实现可扩展的设计 利用Redis的自增长序列生成短地址API接口:POST /api/shorten 把长地址转换为一个短地址 GET /api/info?shortlink...

2020-05-06 15:41:29 503

原创 删除文件并清空回收站后找回数据的原理

清空回收站后数据就彻底消失了?答案:不。数据删除与恢复的原理电脑是用2进制进行存储和计算数据的,磁盘同样也是利用2进制进行存储数据,无论是电脑上的磁盘还是手机上的内存颗粒都是这样。假设一块磁盘可以存储64字节的数据。这时候64个格子里什么数据都没有,默认就全部是0:现在假设有这么一组大小是13个字节的数据他们合起来叫文件A:这时把这13个字节存入到这块磁盘:...

2020-05-04 12:05:23 2345 1

原创 Go Web生成马赛克图片(1): 单机版

马赛克:对图片进行mosaic处理,就是说讲图片分割成多个通常是大小相同的矩形截面,然后使用被称为瓷砖图片的新图片区代替截面原有的图片。所以,马赛克图片让我们在足够远的地方观察或者以斜视的角度观察,会看到图片在进行马赛克处理之前的样子。凑近区观察,就会发现他们是由成百上千张尺寸更小的瓷砖图片组成。构建生成马赛克图片的Web应用的基本思路就成型了:接收用户上传的目标图片,然后根据目标图片...

2020-04-30 17:52:26 664

原创 TypeScript: 使用ts-node加速开发

普通的运行ts的方式,需要先通过tsc编译为js文件然后运行node xx.js:一共花了2条命令,使用繁琐:而使用ts-node:npm install -g ts-node只需要ts-node xxxx.ts即可:...

2020-04-28 09:57:12 12532 2

原创 Android: 将开源库发布到jcenter仓库

为了实现和平时开发过程中用到的第三方开源库一样,只需要在build.gradle的denpendencies中添加一行库的引用地址即可,AS帮我们下载该库并引入到当前项目的开发环境中。这是因为:google仓库包含的主要是Google自家的扩展依赖库。 jcenter仓库包含的大多是一些第三方的开源库。所以,自己发布开源库只需要将库发布到jcenter仓库下才行。SDK开发与传...

2020-04-23 11:25:34 492

原创 JVM: GC过程

堆区是用来存储new出来的对象的,当对象填充满堆区后,就会导致内存爆掉,程序就GG了。就需要科学的进行GC:首先需要判断这个对象是否应该被删除,如果应该被删除,那么需要将这个对象清理掉。判断的标准:GCRoot(一般是指被栈上的直接或间接引用、本地方法栈直接或间接引用的对象、方法区的j静态static变量或常量直接或间接引用的对象)和GCRoot没有相连的关系的就可以删除。...

2020-04-21 08:55:40 577

原创 Html5直播(2): 直播源的制作(以及Ubuntu安装Ffmpeg)

直播源的制作对整个开发和调试很重要。方式1: Nginx+ffmpeg(可扩展)安装Nginx 安装ffmpeg 配置Nginx 准备视频 利用ffmpeg推流1.1 安装nginx:mac通过:brew install nginx-full --with-rtmp-modulewindows通过:剩下的命令:集成nginx-rmtp-mo...

2020-04-20 18:12:01 1831

原创 html5中禁用video标签的下载功能和给video增加贴图、更改音量

那么只需要加入属性:controlslist="nodownload"以此类推,如果不想要全屏:

2020-04-20 14:38:53 867

原创 Html5直播(1): 直播原理

通过PC端或移动端,对于采集来说,PC为主。对于源的质量,会买一些专业的设备,保证一定的分辨率到终端的时候非常清楚。收集完后是一个原始的2进制数据流,经过websocket或http等上传到服务器进行上图处理的4个步骤。最常见的是涉及到编码的问题,原始的流是不能直接让播放器去播放的,必须采用一定的协议去做编码。视频压缩编码的常见的格式:H.264(视频编码)、AAC(音频编码)...

2020-04-20 14:18:02 1045

原创 kotlin高阶函数:简化常用的API

1.apply函数简化intent.putExtra():val intent = Intent(this, MainActivity::class.java).apply { putExtra("param1","data1") putExtra("param2","data2") } startActivi...

2020-04-19 11:28:01 422

原创 Kotlin中的kotlin-android-extensions插件如何实现findViewById()

kotlin-android-extensions插件简化了Activity中的代码编写。不用通过findViewById()获取控件的实例了。这个功能的实现可以通过反编译分析。现在将以下代码转换为Kotlin字节码,然后通过反编译的方式将他还原为java代码,来观察kotlin-android-extensions插件背后实现原理。这就是kotlin代码对应的字节码...

2020-04-19 10:51:06 807

原创 Android: 查看完整的系统广播列表

到SDK路径查看完整的Android系统广播列表:<Android SDK>/platforms/<任意android api 版本>/ data/ broadcast_actions.txt这个路径下还可以查看activity、service列表等。完整的系统广播列表:android.accounts.LOGIN_ACCOUNTS_CHANG...

2020-04-15 13:16:37 4909 4

原创 Java: 逃逸分析

概述:对象一般都是在堆上生成的,也不是绝对的,特例:逃逸分析。JVM 在分析代码之后,发现一个对象在声明之后只有在当前运行的函数中调用,那么就会将这个对象在栈上申请空间,而不是在堆上。这就是JDK6上的逃逸分析。因为在栈上申请的对象函数执行完毕后直接清理,就大大减少了GC的压力。demo:传入的value应当大于127或小于-128。编辑运行的模式,设置堆的大小为10...

2020-04-14 11:57:20 257

原创 AndroidStudio/Idea 快捷键大全

还可以通过setting->keymap里查看:

2020-04-13 19:34:28 165

原创 阿里云OSS跨域

如果不考虑CDN回流的话。对于跨域,需要请求协议、域名、端口3者有1个不同,即是跨域。那么怎么解决跨域,原始方法是JSONP,那个时代技术有限,现在都是Cors技术。现在,前端发给后端,后端例如golang可以如下配置:当然,具体用法见官方文档。然后就是vue开发阶段,我的访问url是localhost:3000.前端直传oss,为了分布式考虑,跨域访问了。...

2020-04-12 15:30:33 1615

原创 Linux: htop查看当前查看服务器内存状况

安装:apt install htop使用:输入htop:

2020-04-11 19:05:00 1140

数据结构和算法.rar

数据结构和算法。 js版 前端开发者也应该重视的数据结构和算法。 树、图、堆、栈、队列等 回溯算法、时间复杂度、空间复杂度、动态规划、搜索排序、分而治之

2020-09-26

Git 原理详解及实用指南.rar

Git 原理详解及实用指南.rar 快速上手

2020-07-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除