自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(93)
  • 收藏
  • 关注

原创 ChatGPT 未来猜想(2023.02.16)

2、随着算力的提升,实时问答也是时间的问题,可能安全(jianguan)上会比较麻烦。1、基于 ChatGPT 预训练模型,会涌现出各个专业领域的大语言模型(LLM)。8、各行业都会利用AI工具来提高生产力,不知道有没有上一波移动互联网的影响力。4、未来的终端交互形态会发生巨大的变化(对于前端来说,机遇和挑战并存)。5、各云厂商,将会提供商用开放接口,满足用户大数据量输入的分析和生成。6、在大数据领域,挖掘数据内在价值变得更容易,需要借助的工具也会变少。7、辅助程序开发会变得流行,开发方式会有较大的变化。

2023-03-16 11:41:38 3186 1

原创 Stable Diffusion 的玩耍方式

是2022年发布的深度学习文本到图像生成模型。它主要用于根据文本的描述产生详细图像,尽管它也可以应用于其他任务,如内补绘制、外补绘制,以及在提示词​(英语)指导下产生图生图的翻译。

2023-03-15 20:43:12 927 1

原创 联邦学习

联邦学习的本质本质上是一种分布式机器学习的技术/框架。解决什么问题?解决数据孤岛的问题为什么会存在数据孤岛的问题?机器学习需要大量的数据来训练模型,但是为了满足数据安全、保护用户隐私以及政法合规等要求。数据的流动越来越受到限制,因此就产生了数据孤岛。联邦学习为什么能解决数据孤岛的问题?相比于传统机器学习,需要对先对各种样本数据进行中心化处理,然后用于模型训练。但在联邦学习的机制下,各参与者的身份和地位相同,让参与着在不共享数据的基础上就能进行联合建模。具体怎么解决的(学习过程介绍)?1

2021-05-31 17:34:29 502

原创 mac 磁盘清理,一下多出好几十G

开始之前,先选取苹果菜单  >“关于本机”,然后点按“储存空间”。查看储存空间具体的分布情况。点击管理,我们发现系统和其他两个目录是无法选择的,如果你恰好是这两个目录占空间很大,就继续往下看,我自己就是系统占了120多G。如果不是,那就去对应的目录整理就好了。工具OmniDiskSweeper (功能简洁,完全免费)在清理前我们需要对磁盘所有文件按照大小进行排序,这里我借助的工具是 OmniDiskSweeper。它的作用就是快速找到占存储空间的大文件,然后后面的工作就交给你了。在刚

2021-04-14 14:55:27 9478

原创 通过预测选择性测试—一种更高效的确保代码更改可靠性的方法

传统的回归测试1、依赖收集,构建依赖拓扑。2、如果依赖文件发生改变,所有受到关联的模块,都需要进行回归测试。如图:蓝色菱形文件发生改变,最终导致 1、2、3、4 都需要进行回归测试。缺点:受到依赖影响的地方,都得进行回归测试。而其中有些回归测试 Duck 不必。新的方式:预测测试选择思路:哪些代码更改后,通常会导致哪些测试用例不通过?我们有大量这样的历史数据。那么通过机器学习建模,能不能训练出一个预测模型,用来预测一段代码更改后,最高概率出问题的测试用例有哪些?然后按这个概率我们去进

2021-03-26 17:36:47 329

原创 组件设计原则

前言在前端开发领域,组件开发一直是一个绕不开的话题。那么在组件开发时,要注意哪些问题?如何开发出易维护且复用性高的组件?下面就结合面向对象设计原则,和开发中的实践经验,总结一部分组件开发需要注意的几个原则。原则1、保持简单 (KISS—Keep It Simple, Stupid,Straightforward)代码足够简单,也意味着易读、易维护,bug 比较难以隐藏。往往简单的设计越高效和通用(符合奥卡姆剃刀原理)。如何满足 KISS 原则?不要过度优化。比如加入某些不常用的高级写法,或者

2021-03-10 18:42:04 2761

转载 那些年听过的软件设计原则

在这里想和大家说说设计中的一些原则,我认为这些东西属于长期经验总结出来的知识。这些原则,每一个程序员都应该了解。但是请不要教条主义,在使用的时候还是要多多考虑实际情况。其实,下面这些原则,不单单只是软件开发,可以推广到其它生产活动中,甚至我们的生活中。Don’t Repeat Yourself (DRY)DRY 是一个最简单的法则,也是最容易被理解的。但它也可能是最难被应用的(因为要做到这样,我们需要在泛型设计上做相当的努力,这并不是一件容易的事)。它意味着,当我们在两个或多个地方的时候发现一些相似的代

2021-03-03 19:07:04 222 2

原创 设计模式——7种坏味道和11种设计原则

设计模式作为一组抽象的设计思想,肯定有一些基本的原则。否则的话,任何设计都可以称之为”良好设计”的一种了。在设计模式中,也有整体“不允许”和“需要遵循”的方方面面。只要遵循了下面这些基本思想,写出来的设计往往都是很优秀的设计。7种坏味道僵化性:说白了就是整个系统过于僵硬,没办法或很难针对其中的某个需要修改的地方做灵活的调整,牵一发而动全身。脆弱性:这次可以调整了,但是仍然关联性太强,一个位置的小调整竟然会导致一堆逻辑上毫无关联的位置出现新的问题。牢固性:系统从一开始逻辑关联就设计得过于紧密。这次系

2021-03-03 18:59:13 269 2

原创 这句话“信息量”好大

平时大家常说:这句话信息量好大,那么从科学的角度,怎么解释这句话呢?首先,信息的载体是消息,那么对于不同的消息,带给我们的直观感受也是不一样的。比如,“国足获得世界杯冠军”的信息显然要比“国乒获得世界杯冠军”的信息量要大得多。究其原因,国足勇夺世界杯是如假包换的小概率事件(如果不是不可能事件的话),发生的可能性微乎其微;而男乒夺冠已经让国人习以为常,丢掉冠军的可能性才是意外。因此,以不确定性来度量信息是一种合理的方式。不确定性越大的消息可能性越小,其提供的信息量就越大。信息论的鼻祖香农对信息的量

2021-01-29 14:57:04 436

原创 一行代码实现时间格式化—toLocaleString

平时经常会有时间格式化的需求,比如输出 2019-09-27 16:23:21 这样的时间格式。下面我们分别通过传统的方式和通过 toLocaleString 接口来实现。传统写法我们先用传统的方式来实现,输出格式例如:2019-09-27 16:23:21function currentTime() { var now = new Date(); var zeroFill = function(value) { if (value < 10) {

2021-01-29 14:52:01 6262

原创 bash 快捷键

ctrl键组合ctrl+a:光标移到行首。ctrl+b:光标左移一个字母ctrl+c:杀死当前进程。ctrl+d:退出当前 Shell。ctrl+e:光标移到行尾。ctrl+h:删除光标前一个字符,同 backspace 键相同。ctrl+k:清除光标后至行尾的内容。ctrl+l:清屏,相当于clear。ctrl+r:搜索之前打过的命令。会有一个提示,根据你输入的关键字进行搜索bash的historyctrl+u: 清除光标前至行首间的所有内容。ctrl+w: 移除光标前的一个单词c

2021-01-29 13:09:45 241

转载 揭秘 Vue.js 九个性能优化技巧

转载:https://mp.weixin.qq.com/s/iQwTr5T95wPflJMT87ZObggitHub 源码:https://github.com/Akryum/vue-9-perf-secrets这篇文章主要参考了 Vue.js 核心成员 Guillaume Chau 在 19 年美国的 Vue conf 分享的主题:9 Performance secrets revealed,分享中提到了九个 Vue.js 性能优化的技巧。我看完他的分享 PPT后,也阅读了相关的项目源码,在深入了解

2021-01-29 12:50:15 290

原创 余弦相似度

大部分程序员由于理工科的背景,有一些高数、线性代数、概率论与数理统计的数学基础。所以当机器学习的热潮来临的时候,都跃跃欲试,对机器学习的算法以及背后的数学思想有比较强烈的探索欲望。本文的作者就是其中的一位。然而实践的过程中,又发现数学知识的理解深度有些欠缺,在理解一些公式背后的意义时,有些力不从心的感觉。因此梳理了一些数学上的知识盲点,理顺自己的知识脉络,顺便分享给有需要的人。本文主要讲解余弦相似度的相关知识点。相似度计算用途相当广泛,是搜索引擎、推荐引擎、分类聚类等业务场景的核心点。为了理解清楚余弦相

2021-01-29 11:14:44 2426

原创 JS 中 replace 和 replaceAll 的区别?

方法解释两种方法都返回一个新字符串,新字符串所有满足 pattern 的部分都已被 replacement 替换。pattern可以是一个字符串或一个 RegExp, replacement 可以是一个字符串或一个在每次匹配被调用的函数。原始字符串保持不变。1、当 pattern 都是正则表达式时,没有区别var value = '123-234-234-234'var pattern = /-/gconsole.log(value.replace(pattern, '/')) cons

2020-11-09 16:31:47 8226 3

转载 JS 实现一键复制功能

实现方式 function copyTable() { const table = document.getElementById('table') const range = document.createRange() // 设定range包含的节点对象 range.selectNode(table) // 窗口的selection对象,表示用户选择...

2020-04-22 18:06:27 1254

原创 inline-block元素高度为0,父级仍被撑起,问题元凶—strut

背景最近遇到一个问题,在 div 元素下插入一个 iframe 元素,宽、高、边框都设置为0了,但 div 还是被撑起了一个高度。 <div style="background: orangered;"> <iframe src="/" style="width: 0; height: 0;" frameborder="0"></iframe> &...

2020-03-29 05:21:31 1751 1

原创 JS设计模式——享元模式

什么是享元模式?享元模式(Flyweight Pattern)是一种结构型设计模式。从字面意思理解就是共享对象的模式。如果系统中出现大量相似度高,状态变化小的对象,可以尝试重用现有的同类对象来减少内存使用,达到性能优化。在享元模式中可以共享的相同内容称为内部状态 (Intrinsic State),而那些需要外部环境来设置的不能共享的内容称为外部状态 (Extrinsic State),由于区...

2020-03-12 15:05:54 380

原创 JS设计模式——装饰器模式

什么是装饰者模式?装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。实例拿最近比较火的吃鸡游戏(绝地求生:大逃杀PUBG)来说,游戏中每个玩家降落到岛上,刚开始是一无所有的,需要通过捡拾或掠夺装备来武装自己,然后经过互相残酷的拼杀,获得游戏的胜利。游戏过程中,我们可以把每一个玩...

2020-02-27 14:04:23 1686

原创 JS设计模式——Mixin模式

什么是 Mixin 模式?Mixin 模式属于结构型设计模式。正如字面意思,就是为了在一个类中能够混入另一个类的某些方法,以较低的复杂性达到复用的目的。甚至可以用来间接实现多继承。实例在 JS 中,我们利用对象原型来实现 Mixin。下面是一个全局的混入方法:注意:由于 class 中的方法是不可枚举的,但通过 Object.getOwnPropertyNames 可以返回一个数组包含...

2020-02-20 02:15:18 778

原创 JS设计模式——工厂模式

什么是工厂模式?工厂模式(Factory Pattern)是创建型设计模式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来创建对象。简单工厂模式假如有一个屏幕生产工厂,生产各类屏幕。每类屏幕都是一个类,如下,我们通过屏幕工厂类提供的 createScreen 统一接口来创建屏幕对象。这便是一个简单工厂模式的应用。// 屏幕工厂类class Scre...

2020-02-13 01:33:07 1679

原创 JS设计模式——外观模式

什么是外观模式外观(Facade)模式是属于结构型模式,通过提供外观的包装隐藏系统的复杂性。火箭发射系统很复杂,但真正使用它的人,可能就需要一个按钮,让它发射就好。那么发射按钮就隐藏了启动程序及发射系统的复杂性。我们用的各种第三方库,大多也是通过给用户提供 API 来简化和隐藏内部的复杂实现。实例现在好多商店都在用微信或者支付宝扫码收款,如果放两个二维码经常会有顾客扫错,那么就可以应用外...

2020-01-13 01:00:48 232

原创 JS设计模式——命令模式

什么是命令模式?命令模式(Command Pattern)是一种数据驱动的设计模式,它属于行为型模式。请求以命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处理该命令的合适的对象,并把该命令传给相应的对象,该对象执行命令。实例应用我们要做一个简单的编辑器,我们来看看没有使用命令模式的代码。(忽略定义方法意义所在)class Editor { constructor() {...

2020-01-05 14:17:27 303

原创 JS设计模式——原型模式

什么是原型模式?原型模式属于创建型模式。是基于现有对象模版,通过克隆的方式创建新的对象。解决什么问题?比如定义一个 person1 的对象const person1 = { name: 'zkk', age: 18, sex: 'male', hobby: 'daydream', sayName: function() { console.log(this.name) }...

2019-12-30 16:32:33 210

原创 大数据之路读书笔记

总序人类正从IT时代走向DT时代

2019-11-27 19:23:08 359 1

转载 从机器学习谈起

在本篇文章中,我将对机器学习做个概要的介绍。本文的目的是能让即便完全不了解机器学习的人也能了解机器学习,并且上手相关的实践。这篇文档也算是EasyPR开发的番外篇,从这里开始,必须对机器学习了解才能进一步介绍EasyPR的内核。当然,本文也面对一般读者,不会对阅读有相关的前提要求。在进入正题前,我想读者心中可能会有一个疑惑:机器学习有什么重要性,以至于要阅读完这篇非常长的文章呢?我并不直接回答...

2019-10-22 17:08:26 339

原创 V8引擎不同版本对 await 处理方式差异

最近看了下 JS 异步编程的发展史。这是其中一篇文章:JavaScript 异步编程。在文章中发现有个例子的异步执行顺序和我自己执行的不一样。测试后发现:在 node 8.0.0 版本中 promise2 在 async1 end 后打印在 node 10.10.0 版本中 promise2 在 async1 end 前打印在 node 12.10.0 版本中 promise2 ...

2019-09-27 11:15:42 377

原创 Vue中使用debounce防抖(ts)

一、抽象组件使用方式1、封装抽象组件(debounce.js 文件)import Vue from 'vue'const debounce = (func, time, ctx, immediate) => { let timer const rtn = (...params) => { clearTimeout(timer) if (immediat...

2019-09-26 15:55:19 12686

原创 flex 常见用法终极版

相信大家都体验过 flex 布局的强大。这里是flex的常见的用法集合。可能刚开始会不习惯这种复杂的命名,但是如果适应了,就会觉得很好用,指数级提高开发效率。一般建议在项目全局引入。下面分别列出了纯css版本,还有sass版本,大家也可以根据项目的需求,进行删减和增加。用法说明:// .flex flex容器默认水平流方向// .flecol flex容器垂直流方向// .flex-...

2019-09-06 15:04:44 797

原创 Chrome 自带的隐藏福利

这是一个 Chrome 自带的一个隐藏福利,如果受够了 console 里面敲代码,费劲的换行和无法断点调试的苦,看看这个。这个东西叫做 snippets (代码片段),可能大部分人都写过属于自己的代码片段。我们看在 Chrome 中怎么用。1、打开 Sources 选项卡,切换到 Snippets 标签,点击图中的红色标记处。2、点击 New snippet 可以新建一个代码片段,编辑代...

2019-08-16 14:38:37 535

转载 如何形象的比喻大数据技术生态?

这是一篇大数据相关的扫盲帖,大白话的讲述方式,十分形象生动。作者:Xiaoyu Ma链接:https://www.zhihu.com/question/27974418/answer/38965760大数据本身是个很宽泛的概念,Hadoop生态圈(或者泛生态圈)基本上都是为了处理超过单机尺度的数据处理而诞生的。你可以把它比作一个厨房所以需要的各种工具。锅碗瓢盆,各有各的用处,互相之间又有...

2019-08-16 14:25:58 569

原创 为你的项目添加 commitlint

为了使项目提交message更加规范和便于维护。可以给项目添加 commitlint 规范。添加校验1、安装依赖yarn add @commitlint/cli @commitlint/config-conventional --dev2、在根目录创建 commitlint.config.js 文件,并添加配置module.exports = { extends: [ '@...

2019-08-02 20:48:43 1636

原创 tslint 检查 vue 文件补丁脚本

在 vue 项目中使用 tslint 来做代码检查,但当执行 npx tslint -p tsconfig.json 时,发现 tslint 并不能对 vue 文件进行检查。受到 vue-cli3 中的启发,发现 @vue/cli-plugin-typescript/lib/tslint.js 中写了个补丁专门用来解决这个问题。主要思想是把 vue 文件中包含的ts部分摘出做验证。下面是稍微...

2019-08-02 20:25:44 1049

原创 vscode 批量格式化

今天推荐一个 vscode 批量格式化的扩展 —— Format Files

2019-07-02 11:42:27 8344 1

原创 H5页面动态文案使用艺术字体的解决方案

问题H5 页面的动态文案需要使用艺术字体,而通常情况下,字体包都是很大的,全部加载肯定是不行的。那该怎么办呢?分析对于普通的 H5 页面需要使用艺术字体,我能想到的解决方案大致是以下几种。1、静态文案:直接用图片用类似 font-spider 的工具将字体库过滤,然后引入。(如果字体库比较大)2、动态文案:硬着头皮加载整个字体库(如果字体包很大,体验肯定很棒)和设计同学沟...

2019-06-13 19:31:57 7437 8

原创 不用打开界面,在命令行完成代码部署(jenkins)

问题有时候,在本地提交完代码,接着需要将代码部署到测试坏境。一般部署过程都需要自己登录到某个部署平台,手动去触发。(不包括有些可能直接push完代码就自动触发部署了)。虽然这样手动触发操作很简单,但每次都打开网页,找项目,去操作,也不免有些麻烦。思考能不能在提交完代码,就接着在命令行,完成部署呢?简单实现这里以 jenkins 为例,说说我的处理过程。1、打开 jenkins 中你...

2019-05-24 21:32:48 1165

原创 vue 中使用防抖函数组件

初级1、先写好防抖函数/** * @desc 防抖函数 * @param {需要防抖的函数} func * @param {延迟时间} wait * @param {是否立即执行} immediate */export function debounce(func, wait, immediate) { let timeout return function(...a...

2019-05-17 16:38:08 11456 13

原创 抽象思想的感悟

任何事物重复三次以上,并且在可预见的范围内它还会继续重复,那么就有必要将其抽象。任何复杂的问题都可以通过抽象,使其简单化。这里的重复次数,根据不同行业、所处的环境不同,也会有不同标准。同样抽象也有不同的实现方式。举个例子,公司招新人。每次新人来都会有几乎差不多繁琐的入职流程。那么这个流程肯定会重复很多次,可预见未来还会重复。如果每次都让老员工亲自上手教,长期下去,这显然是低效的。这个时候...

2019-04-15 13:28:45 568

转载 正则表达式查询手册

元字符元字符,又叫字符集,就是用一些特殊符号表示特定种类的字符或位置。匹配字符. 匹配除换行符以外的任意字符\w 匹配字母或数字或下划线或汉字\s 匹配任意的空白符\d 匹配数字匹配位置\b 匹配单词的开始或结束^ 匹配字符串的开始$ 匹配字符串的结束\G 上一个匹配的结尾(本次匹配开始)\A 字符串开头(类似^,但不受处理多行选项的影响)\Z 字符串结尾或行尾(不...

2019-03-22 13:51:28 295 1

原创 如何匹配DOM中除a标签包裹的"abc"字符串?

题目:如何匹配DOM中除a标签包裹的"abc"字符串?如:<div>cccabcddd</div><a href="xxxx">sfabcop</a><div>abc<a>abc</a></div>现在需要匹配出第1行、第4行的“abc”。...

2019-03-22 11:15:43 203

原创 JavaScript 是单线程非阻塞的

总所周知,JavaScript 是以单线程的方式运行的。说到线程就自然联想到进程。那它们有什么联系呢?进程和线程都是操作系统的概念。进程是应用程序的执行实例,每一个进程都是由私有的虚拟地址空间、代码、数据和其它系统资源所组成;进程在运行过程中能够申请创建和使用系统资源(如独立的内存区域等),这些资源也会随着进程的终止而被销毁。而线程则是进程内的一个独立执行单元,在不同的线程之间是可以共享进程资...

2019-02-21 18:41:04 1293

空空如也

空空如也

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

TA关注的人

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