自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(50)
  • 资源 (11)
  • 收藏
  • 关注

原创 对工作方法的一些思考

一. 有话直说, 把话说好. 在工作中我发现人与人之间的沟通, 或多或少都会出现理解或表达上的偏差. 可能是有一方没讲清楚或没听清楚, 也有可能是讲者高估了听者的业务认知, 还可能是双方的术语不一致. 所以要多去理解对方. 语气上要礼貌, 态度上多包容. 在非必要的情况, 减少质疑, 反问等可能引起矛盾的语气. 遇到没听明白的时候, 主动找对方确认疑惑. 这样对方会感受到你的尊重和认真的态度. 当然, 不能为了避免矛盾就耽误了工作. ...

2021-04-07 14:22:45 245

原创 通过120行代码理解Vue的双向绑定原理

一.通过简单代码模拟Vue的实现 在网上找到一个Vue简单实现的例子,为了更好的理解这个例子,通过对这段代码下断点调试,理解了每一行代码,并且对代码做了详细的注释,方便以后阅读.<!DOCTYPE html><html><head><meta charset="UTF-8"></head><body> <div id="test_bind"> <input v...

2021-04-07 09:59:15 170

原创 防抖/节流的优缺点分析和改良升级

一.防抖和节流的作用: 防止高频的事件触发造成不必要的计算消耗,比如, 典型的应用场景: 搜索框 input事件; 鼠标移动 mousemove事件; 视窗大小变化 resize事件;二.防抖的优缺点: 创建timer,当新的触发出现时, 销毁老的timer. 性能消耗稍大于节流(不过, 这点性能差别算不了什么). 如果连续的调用间隔一直小于delay, 会造成长时间不触发.三.节流的优缺点: 通过时间差来判断要不要放弃当...

2021-03-23 15:55:23 954

原创 Svg不方便浏览?只需两步, 就可以像看普通图片一样方便.

Svg文件在系统中不能默认打开如果需要查看文本内容,可以放进vscode,在vscode安装svg插件也可以放进svg浏览.同时编辑和查看还比较方便,但是如果你要在几百张svg中找出某个想要的图,就没那么容易了.因为这个插件只能一张一张的看.而且每次操作都要在vscode中打开,然后点击预览.如何在系统的文件浏览器中直接查看?安装免费的开源软件: svg-explorer-extension开源地址:https://github.com/tibold/svg-e...

2020-12-28 09:22:56 11101 1

原创 Windows共享内存实现跨进程通信

概述:最近了解到共享内存的跨进程通信的效率是最高的.原因是同一个共享内存在不同进程中使用的是同一块物理内存.因此,我想试试共享内存通信的效果.思路:不过这里有个问题,共享内存在写入之后,读取一侧并不知道有新的数据来了,因此,需要实现两个跨进程通知的同步对象.一个用于服务端通知客户端,一个用于客户端通知服务端.Windows上命名Event最适合充当这个角色.服务端代码:MsgSvr.h#include <windows.h>#i...

2020-07-31 20:14:33 699

原创 基于vs2017 ffmpeg4.3, sdl2.0 实现简单播放器

背景最近重新敬爱的雷神的<<最简单的基于FFMPEG+SDL的音频播放器>>发现当时的ffmpeg版本已经不能在vs2017编译通过了.因此我下载了最新的ffmpeg4.3(2020-6-15),重新实现一次.自己实现了一遍.下载相关库文件在以下页面下载ffmpeg,注意选择4.3windows-32bit, dev.注意: 考虑到减少搭建中可能遇到的坑,因此统一选择x86.https://ffmpeg.zeranoe.com/buil...

2020-07-10 21:08:15 626

原创 Electron学习笔记(五) 通过Addon(n-api)实现可扩展接口

Electron使用的API接口一方面electron给开发者提供了不少API,另一方面, 也可以使用node.js的API.但是,有时候开发者还是想用自己实现的API.下面,我将介绍如何在Electron通过Addon添加接口.Addon接口扩展addon是node.js扩展api的方式,同时electron也可以以同样的方式扩展.addon有三种编写方式,n-api,nan,addon-api.其中官方推荐使用n-api,因为N-API编译的lib兼容...

2020-06-24 10:42:55 5289

原创 Electron学习笔记(六) 实现四格多片源播放器

### 为什么要无边框四格播放器以前做过监控产品的开发, 其中的视频客户端支持4格, 9格, 16格等多路视频, 刚好最近自学Electron, 于是想使用Electron编写一款简单的四格播放器.想象一下, 同时看四个不同电影会不会很有趣呢?### 功能上支持:1. 四格播放器, 田字排布, 均分宽高.2. 启动即载入上次播放的过的片子.3. 拖拽片子进到播放器, 拖入就高亮可拖拽区.4. 空白,暂停,播完时显示可拖拽区, 开播隐藏.5. 右上角最小化/最大化/关闭三按钮. 顶部...

2020-05-15 14:29:37 1851 2

原创 Javascript的ES6 class写法和ES5闭包写法性能对比

计算过程将结果再放回参数, 这样避免结果没被引用被优化, 影响对比结果.其中test.js采用闭包写法, test2.js采用类写法.因此对性能要求比较高的话, 还是推荐类写法.这个实验很简单, 用md5计算一百万次.闭包的写法时间略大于类写法, 大概20%下面是闭包写法test.js的代码。下面是类写法test2.js。一直怀疑它对性能是否有影响.看到很多闭包写法的函数,最终的对比结果如下图所示.于是, 做了一个实验.

2023-03-10 10:36:42 704

原创 实现Web 播放器上触摸滑动, 鼠标拖拽改变播放seek的即时反馈

在播放器上实现触摸滑动或者鼠标按下滑动松开时改变播放seek, 要显示播放时间点的变化.

2022-03-10 09:36:16 354

原创 理解React hooks常用方法useState, useEffect, useMemo, useCallback, useContext

所在项目一直使用ReactNative的 0.58, 积累了大量的业务代码,因此一直没有使用React和ReactNative推出的hooks方法编写.现在自己学习理解一下.useState 针对每个state的值设置一组value/setValue. 值不变的set不会重复触发render. const [count, setCount] = useState(0); <p>You clicked {count} times</p> ...

2021-08-03 11:13:20 571

原创 刚拿到PMP证书, 想吐槽一下, PMP的考证真的值得考吗?

最近PMP考试成绩出来了.考了4A的成绩(最高5A).然而一查证书发现, 证书并不区分成绩高低.只要过了, 不管你是几A, 拿到的证书都一个样.据说在培训机构报考的通过率很高, 超过90%.这样一想, 感觉含金量就不怎么样了.最气人的是, 这个证的有效期只有3年.培训费交了2800, 考试费3900.3年的有效期到了之后, 要想续期, 需要做些PMI认可的事情赚取pdu.赚满60个pdu, 然后支付150美金可以再续3年.收益主要被负责组织PMP考试的美国PM..

2021-07-30 19:59:30 86421 38

原创 自定义磁贴窗口位置和大小, 方便笔记本接多显, 也方便触摸板操控, 微软免费无广告开源工具PowerToys/FancyZones

最近买了一台新的笔记本, 发现直接使用触摸板也很方便, 从此不需要携带鼠标了.但是对于窗口大小和位置的拖拽还是有些费劲的.我不喜欢系统默认的贴靠功能.特别是每次插拔扩展显示器, 窗口都要重新拖拽一次.感觉很繁琐.因此谷歌了一下, 找到这个PowerToys工具.其中包含的FancyZones就可以包含快速拖拽的功能.如下图, 可以对多个屏幕编辑预定义的磁贴位置和大小.定义好之后, 每一块屏幕就有了默认的磁贴位置.通过快捷键Win+Shift+`可以快速唤起这个编辑器...

2021-07-23 10:27:35 338

原创 用简短, 可执行的代码理解prototype和__proto__

一. 为什么写这篇文章看了好几篇讲解prototype, __proto__含义的文章,有不少都配了精美的图, 然而看完还是感觉概念不清晰.难以理解的清晰透, 还容易忘.原因是没有将明确这些关键字的价值和意义.最重要的是没有不需要却容易混淆的部分指出来, 从而给理解增加更多难度.因此, 我想自己写代码来验证清楚, 这样查看起来清晰, 记忆也深刻.二. 概念首先, 原型表示继承自父类型的公共部分.而两个关键字的含义则是: prototype: 提供给构造函数...

2021-07-13 22:44:31 116

原创 windows 10 应用商店无法下载安装应用的解决

1. 在开始菜单找到powershell, 右键, 以管理员运行 2. 在powershell中, 使用以下命令, 移除windows store get-appxpackage *store* | remove-Appxpackage 3. 检查安装windows自带软件, 会获取最新的应用商店安装包 get-appxpackage -allusers 4. 执行以下命令, 启用. 其中表示版本号的路径名会因为具体版本而有一定差异,...

2021-07-06 10:13:09 2553

原创 记PMP 考试2021/06/20总结(含笔记)

我是在上海清晖报的网络班.听完老师讲解的课, 把PMBok也看了一遍.对PMP的知识有了一个体系化的认知.然后就是刷题.清晖一共提供了六套复习题, 两套模拟题.刷完之后, 正确率大概在65%~75%.于是再...

2021-06-21 10:23:57 7045 3

原创 角标的处理细节(overflow:hidden切割圆角不干净).

如图所示, 由于角标的资源文件右上角有圆角.所以在展示时, 底下的图会显出来几个像素.下面的图为了方便看仔细, 有所放大.于是我首先想到给给这个海报外层的div增加一个border-radius.结果发现, 角上的底色变少了, 但是还有少量底色.这会是什么原因呢?我猜测overflow:hidden在切割圆角时不干净.验证一下, 把圆角改大, border-radius:10px;果然, 圆角的外围是干净的, 只有贴着边线的圆弧不干净.怎么办呢?我..

2021-06-07 10:12:14 357

原创 网页DOM露出一半才投递, 如何实现性能较好?

今天遇到一个需求, 产品要求每个"内容"露出才投递.每个内容包含一张图片两行标题.如果有广告遮盖, 也不投递.

2021-05-28 19:51:22 134

原创 Electron学习笔记(七) C++编译Electron

Electron学习笔记(六)一.硬件要求 1. 64bit intel 16GB RAM, 100GB disk NTFS 2. win10, vs2019(C++, ATL, MFC)二.配置环境 1. Windows 10 2. Visual Studio 2017 15.7.2 or higher 3. Python 2.7.10 or higher pip install pywin32 // 安装python插件...

2021-04-25 10:36:22 1001

原创 Electron学习笔记(四) 拉伸, 拖动, 扩展, 菜单

一.监听窗口move和resize事件 mainWin.on('move', () => { mainWin.webContents.send("window_move"); }); mainWin.on('resize', () =>{ console.log("on resize"); }); ipcRenderer.on("window_move", (ev, arg)=>{ if (!getWinPos()) return fals.

2021-04-22 14:27:13 1518

原创 Electron学习笔记(三) 读写, 焦点, 窗口句柄, 预加载

Electron笔记(二)

2021-04-21 09:29:01 3613

原创 Electron学习笔记(二) 窗口, 通信, 剪切板, 系统托盘

Electron学习笔记(一)

2021-04-20 09:52:39 743

原创 Electron学习笔记(一) 配置, 创建, 设置, 监听

一.配置环境//国内设置淘宝npm的mirror,否则可能因为无法获取资源而失败npm config set ELECTRON_MIRROR http://npm.taobao.org/mirrors/electron/// windows上如果要安装x86这里就设置ia32, 否则默认x64npm i [email protected] --arch=ia32 --save-dev二.创建工程:// 安装脚手架npm install create-electron-app -g...

2021-04-15 17:35:09 2270

原创 软件公司给程序员配平价电脑省钱? 俺来算算这笔钱省得有多吃亏!

最近几年偶尔会遇到公司的工作电脑老是会在一些环节慢吞吞的。比如安装, 编译,启动调试,打开多个软件同时工作等情况。自己也通过各种工程师的方式优化电脑设置(需要花点时间),期间还升级过两次硬件。一次是刚进公司, 电脑给配的4GB内存,于是我申请加8GB内存,当时管电脑配置的同事觉得加的有点多,只给加了4GB内存,于是,我自己掏钱又购买一根8GB的内存条,加一块就有16GB了。第二次是申请安装了SSD固态硬盘,还因此重装了一次系统。重装系统之后,所有研发调试的环境需要重新配置,又花了半天工作.

2020-10-16 22:11:38 1116 1

原创 关于ffmpeg解码输出的YUV转RGB花屏问题

现象最近尝试基于ffmpeg封装一个dll, 用于视频解码, 然后将yuv转成RGB, 用于在网页显示视频的画面.可是我将YUV转成RGB之后, 发现花屏了.研究了很久, 计算方式没有发现问题, 代码如下.yuv420pToRGB24(pFrame->data[0], pFrame->data[1], pFrame->data[2], pFrame->width, pFrame->height, outputBuf);void yu.

2020-07-06 11:05:50 2381 1

原创 ReactNative 开发Android App

Android开发平台谷歌在2007年发布Android 是一个开源的基于 Linux 的移动设备操作系统支持的设备: phone…语言: 开发语言是java , 后来因为甲骨文准备对android java收费, 又开始向Kotlin转移IDE: 开发工具以前是eclipse+sdk, 后来谷歌退出了独立的IDE, Android Studio打包: 使用签名打包生成.apk文件, 可作为app, 安装在android系统.可用的平台框架现在开发app主要有四种可.

2020-05-23 13:49:53 4863

原创 简单易懂的解释什么是WebAssembly

背景由于js的灵活语法特定, 比如对象内的成员有很多种可能的类型, 导致JIT的优化效果变差.如下图所示代码, 这里的sum 和a的每一个元素里面每一次计算前后, 从什么类型变成什么类型, 对于编译器来说, 难以一次确定下来, 于是JIT方式就无法在这里起到很好的优化效果.Asm.js2012年,Mozilla 的工程师Alon Zakai在研究 LLVM 编译器时产生的想法, 专门做了一个编译器项目Emscripten。这个编译器可以将 C / C++ 代码编译...

2020-05-21 15:55:24 16676

原创 Flutter开发App简介

简介今天给大家介绍的是Dart2和FlutterDart是google推出的一种新的脚本语言, 希望能替代JS,然而JS也在迭代升级, 生命力很旺盛, 目前, Dart还没能替代JS.现在最新的Dart是2, 据说相比1改变很多. 所以我直接介绍dart2.Flutter是google推出的跨平台开发框架, 类似于React-native.不过相比于React-native, 它的性能更有优势.支持IOS,Android•谷歌的开源移动UI框架•支持iOS..

2020-05-16 19:21:26 4677

原创 浅析卷积神经网络RNN (Convolutional Neural Networks)

人工智能之父第一个提出并实现人工神经网络, 人工智能之父MarvinMinsky, 他在1970年说道:"3~8年内,机器可以获得跟人类同等智商的人工智能."也许最大的阻碍是受限于计算机的性能. 距1970年, 过去快五十年了, 计算机性能提升了无数倍, 人工智能诞生了N个模型, 经历了N次繁荣, 每次都陷入寒冬.这个目标到目前还没实现. 不过, 他创立的人工神经网络的仍然是目前最先进的理论模型.人是怎么预测事情的发生概率?人预测某件事情发生的概率, 往往都是凭经验...

2020-05-15 16:02:51 907

原创 Angular配置调试环境的域名

调试环境的问题Angular启动打包调试的命令是ng serve. ng serve默认对应的页面地址是localhost:4200. 在这个环境下, 有些资源的加载就会出现问题. 比如图片资源无法加载, 视频无法打开, 广告加载失败等. 主要是跨域或后端限制造成的. 因此, 所以如果可以在ng serve的调试环境配置中指定域名问题应该就能解决.配置域名的方法在C:\Windows\System32\drivers\etc\hosts文件中配置:127.0.0.1 www.abc.com

2020-05-15 15:29:39 1160

原创 怎么开两个vscode进程编辑同一个目录的代码?

什么情况下需要这么做?一般情况下, 我们并不需要用两个vscode开同一个工程目录. 但是有一种情况, 那就是当编写了一个服务端,一个客户端. 两端有公共代码, 可以同时编辑, 同步更新, 并且能同时在各自的vscode中用terminal启动调试. 那么你就可以考虑使用以下方法了.操作步骤:使用vscode打开这个工程目录. 菜单File>Save worksapce as.. 随便为workspace填写一个名字, 比如叫client.code-workspace 同上, 再存一

2020-05-15 15:28:27 1165

原创 JS中的try catch性能优化

try catch的性能问题最近在给项目做性能优化, 就推测JS的try catch是否会存在性能问题. 百度搜索了一下, 确实有很多相关的文章. 我索性自己做一个实验来验证一下这个猜测.1. 不发生异常时代码如下, 启动10万次运行, try catch 一个简单的函数执行.function doSomething() { let b = { c:1 }; return b.c;}function testTryCatch(func) { let ret =

2020-05-15 14:36:56 1110

原创 EventEmitter可能导致重复注册和重复触发

怎么导致重复?EventEmitter在同一个函数注册到同一个eventname时会导致重复触发例如下面的代码var events = require('events'); let ev1 = "ev-1";let onEv1 = (a, b)=>{ console.log("event coming: ev-1", a, b);}var emitter...

2019-04-28 14:41:47 2483

原创 Vscode搭建Typescript可调试环境

代码https://github.com/gzx-miller/typescript-debug-demo背景使用Typescript对于js开发来说能很大的提升开发效率,不过搭建出可调试的Typescript有些麻烦.所以这里这里说明一下具体的配置方法,以及提供代码.在使用以上代码前需要确保本地安装了node.js以及typescriptnpminst...

2019-04-26 17:17:47 1001

原创 C++ 11 新特性总结

vs2012以上版本支持一. auto的使用:auto func = less&lt;int&gt;();      //自动表示函数指针 auto ite = vector_a.begin();   //自动表示STL的迭代器auto p = new foo(); //自动表示变量指针等变量二. decltypeint x = 3;  decltype(x) y = x; /...

2018-05-15 21:10:46 350

原创 ESLint静态检查工具使用简介

ESLint静态检查工具使用简介一.  简介ESLint是一个静态检查工具, 可以对帮助JS检查代码中的一些编写规范问题和常见的编写错误. 配合vscode使用非常便捷, 可以在编写代码的过程中事实的看到代码中的一些常见错误, 中文的官方网址如下: http://eslint.cn二.  ESLint安装a.      安装ESLint在cmd中输入npm install –g eslint, 这...

2018-05-15 21:06:57 1228

原创 V8 JS引擎

一.  Google开发V8Google (丹麦)研发小组在 2006 年开始研发 V8 ,部分的原因是 Google 对既有 JavaScript 引擎的执行速度不满意, 在2008年推出chrome, 巨大的速度优势, 迅速占领市场. 2017年chrome的市场占有达到59%. 二.  常见JS引擎JScript(IE6,IE7, IE8)Chakra(IE9,IE10, IE11, IE ...

2018-05-15 20:59:20 10439

原创 音视频技术原理

1. 播放器的数据处理流程2. 封装格式按照一定的格式,把音视频流和描述数据, 存储到文件中3. 编码格式:音频编码: G.711, G722, G726, AAC,MP1/MP2/MP3, AC-3, WMA...视频编码: h265/H264/H263,MPEG1/2/3/4, WMV, MJPEG, VP8/VP9...4. 视频编码原理经典的IPB压缩:Iframes: 节点图像, 保存一...

2018-05-15 20:40:14 5770

原创 堆破坏(Heap Corruption)和Gflags

什么是Heap Corruption 堆破坏是内存破坏的一种,简单来说就是由于程序的错误导致堆内存被意外改写,典型的情况包括:申请了N个Bytes的内存,却试图写入> N个Bytes的内容;向已经释放的内存位置写入内容;fFrameSize = pSearch01To - fpBuffer;    // 在某种情况下会出现fFrameSize = 0xFFFFF

2017-11-08 17:31:03 2994

原创 Scrum学习笔记

概括: Scrum是一种迭代式增量软件开发过程. 在每一次冲刺(一个15到30天的周期,其长度由开发团队决定)当中,开发团队创建可用的(可以随时推出)软件的一个增量。每一个冲刺所要实现的功能来自产品订单(product backlog)。产品订单是按照优先级排列的要完成的工作的概要的需求,哪些订单项会被加入一次冲刺将由冲刺计划会议决定。 在会议中,产品负责人告诉开发团

2017-11-07 21:14:25 445

DateTime, 时间转换工具源码

可以将年月日时分秒时间转换成64位时间, 32位时间, 等的小工具, 具有很强的纠错功能. 同时提供16进制和10进制两种显示和输入

2013-06-06

模拟网络,CPU, 内存等耗尽的环境

模拟网络,CPU, 内存等耗尽的环境 networkEater CpuEater MemoryEater

2013-06-06

live555 vs2010工程

2013.05.31版本, release, debug皆可编译通过, 我花了一整天时间才搞定的, 里面由于有新增文件和文件位置变更, 导致编译总是不能通过, 还有需要增加include目录到工程文件.

2013-06-06

winhex破解版,最新版本

比ue更好的文件编辑器,可以编辑上G的文件,速度很快,十六进制查找速度快

2010-03-16

MFC深入浅出rar

MFC深入浅出 详细介绍mfc原理与应用

2009-05-24

十一个经典小工具tool.rar

十一个经典很有用的经典的小工具,有助于用户提供工作效率的,如著名的算霸,Dbgview,堆查看器,内存查看器,depends等 这些都是高手们常用的利器哦:)

2009-05-17

asp.net最新源代码.rar

asp.net最新源代码.rar asp.net最新源代码.rar asp.net最新源代码.rar

2009-03-14

VC++游戏编程.chm

VC++游戏编程.chm,feichanghaodedongxi o

2008-12-25

设计模式C++源码(2nd+Edition).pdf

设计模式C++源码(2nd+Edition).pdf

2008-12-23

李开复: 算法是计算机科学领域最重要的基石

李开复的重要讲话: 算法是计算机科学领域最重要的基石

2008-12-23

空空如也

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

TA关注的人

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