- 博客(92)
- 资源 (1)
- 收藏
- 关注
原创 (自我归纳)费曼学习法
引言理查德·费曼(Richard Feynman)美国物理学家。1965年诺贝尔物理奖得主。提出了费曼图、费曼规则和重整化的计算方法。 关于他的一个故事:他要求实验室里的人给他用最简单的语言介绍任何概念,不管这个概念是多么复杂,只要这样下去他就能在最短的时间内了解一个他完全陌生的领域。而这是费曼学习法(费曼技巧)的一种额外应用“费曼学习法”到底是什么本质上来说:以生活化的语言来解释一些领域专业内的
2016-09-24 11:27:12 15032 2
原创 巧记前端易混淆的英文语法
对于博主这种英语瞎来说,有些单词记几十次过后还是不知道其中文意思,就是毫无理由的不能记住,就好像汉字看久了会不认识一样。于是,根据联想记忆法找到一些记忆单词的窍门,在这里分享给与我有同样痛苦的孩子。even与odd使用场景:多用于CSS的伪类选择器nth-child(n)。 巧记:数它们的字母个数,odd有3个字母,3是奇数,所以odd的意思就是奇数;亦然,even有4个字母,为偶数,因此eve
2016-08-09 21:04:32 1494
原创 vscode 代码格式化认知与实践
对于开源协同来说,前期的问题主要是环境配置和代码格式化。环境配置可以让你将项目跑起来,代码格式化可以让你在提交代码的时候避免不必要的因不统一的格式化配置程序所带来的内容差异也即,做好这两点,你就能专注于代码逻辑本身。本文要讲的即是vscode编辑器中代码格式化的相关实践。
2022-12-21 16:57:20 762 2
原创 编写ESM风格的nodejs应用
众所周知,nodejs应用刚出现的时候,大家都在编写commonjs风格的应用。随着nodejs逐步的实现ECMAScript规范。大家更乐意使用esm的编码风格。本文旨在引导大家无负担的将编写nodejs应用时的风格切换为esm。
2022-11-03 20:07:07 477
原创 udp协议下sendto与recvfrom函数对应的errno
在C/C++中,使用udp socket时,sendto与recvfrom有不同的errno而在高阶语言Javascript中,使用udp socket, 会将两种类型的错误通过同一个事件error抛出来因此,有必要将sendto与recvfrom对应的 errno列出来,以便在error中进行区分。
2022-10-28 11:23:09 1528
原创 /etc/bashrc “command not found: shopt“ 报错解决
在安装zsh之后并将其设置为默认终端后,每次登录进终端,都会提示: `/etc/bashrc "command not found: shopt"`这里提供一种解法
2022-09-30 17:10:34 1608
原创 respondWith注意事项
respondWith拦截请求并允许Worker发送自定义响应。respondWith方法仅在worker域(WorkerGlobalScope)中有效使用Module Worker格式,直接从处理程序返回一个Response。如果fetch事件处理器没有调用respondWith方法,那么运行时将会将该事件传播到下一个注册为fetch事件的处理器中。因此,添加多个fetch事件的处理器是可行的,但是不推荐这样做。如果没有任何的fetch事件处理器来显式地调用respondWith方法,那么运
2022-04-06 17:32:35 515
原创 在Docker环境下跳过cypress下载
使用vue-cli脚手架建立的项目,一般都带有cypress功能, cypress是用于端到端的测试框架,在项目开发过程中(本地或者云主机),我们有可能会对端到端测试做一些编码处理,但在项目构建过程中,一般不依赖此功能。因此,我们实际上可能并不需要在vue项目中添加cypress功能。然而,如果已有的项目已经接入了cypress功能,我们应该如何在docker构建环境中避免呢。我从cypress的官方文档中找到了答案在安装cypress时,有这样的文档:https://docs.cypress.io/g
2021-11-12 10:28:20 1004
原创 Promise.allSettled 垫片
想用Promise.allSettled,但又不想升级tsconfog.json下的lib属性,可以这样模拟
2021-11-10 17:10:38 981
原创 算法学习笔记
数据结构的基本存储方式就是链式和顺序两种,基本操作就是增删查改,遍历方式无非迭代和递归。我们分析问题,一定要有递归的思想,自顶向下,从抽象到具体。你上来就列出这么多,那些都属于「上层建筑」,而数组和链表才是「结构基础」。因为那些多样化的数据结构,究其源头,都是在链表或者数组上的特殊操作,API 不同而已。比如说「队列」、「栈」这两种数据结构既可以使用链表也可以使用数组实现。用数组实现,就要处理扩容缩容的问题;用链表实现,没有这个问题,但需要更多的内存空间存储节点指针。「图」的两种表示方法,邻接表就是
2021-09-30 21:30:12 183
原创 CentOS安装中文字体
免费中文字体:https://github.com/zenozeng/Free-Chinese-Fonts安装思源黑体思源黑体 Github repo:https://github.com/adobe-fonts/source-han-sans/blob/master/README-CN.md首先切换到CentOS中存放字体的文件目录 cd /usr/share/fonts/下载压缩包:wget https://github.com/adobe-fonts/source-han-sans/rel.
2021-08-12 14:19:02 1321
原创 执行流了解
程序员需要多个执行流。为此,Lua提供了通用的方案,叫coroutine。除了coroutine以外,别的语言或平台提供的“多执行流”的通用方案包括:进程、线程、Fibers (Windows)、setcontext、Continuation、Monad (functional programming)。这些技术底层实现分为三类:由平台调度的线程,包括操作系统调度的线程或进程,或者Erlang虚拟机调度的进程。由平台提供栈,但是由用户手动切换,包括Lua的coroutine、Windows的Fibe
2021-07-31 22:41:19 497
原创 rbd入坑指南
react-beautiful-dnd[drop and drag]入坑指南Beautiful and accessible drag and drop for lists with React相关链接:项目主页官方Demo网站codesandbox项目React拖拽库调研react-beautiful-dnd 23.9k⭐react-dnd 15.9K⭐react-grid-layout 13.7⭐react-dropzone 8.2⭐react-draggable 6.
2021-06-15 11:11:33 202
原创 浅谈前端框架中的DSL
一、前言一个普通的web网站应用使用 html、xhml 等更具描述能力的 external dsl(domain-specific language)来描述界面,然后使用javascript代码来解决界面上的一些逻辑问题,使用css来描绘界面的样式。这些 external dsl 用于将数据配置跟代码逻辑分离开来一些现代语言加入了 internal dsl 这种东西,它赋予你在代码中写 dsl 的能力:比如jsx语法,vue语法。就是在javascript中使用类似于 html 的语法。前端编程界的
2021-05-14 11:44:45 3090 1
原创 从GIT系统设计认识编程领域中的‘抽象和分层’思想
从GIT系统设计认识编程领域中的‘抽象和分层’思想前言“抽象与分层,是计算与程序世界里最根本的思想。逻辑之始。”宇宙的终极图景人类无法认知,愚蠢是人类理智的最后一道防线 ——《论克苏鲁世界观中的认知哲学》毋庸置疑,现实世界是无比复杂的,以人类有限的脑力来认识和解构世界,无疑是需要一定的方法论的。在编程领域中,系统可以是无比复杂的。而人类为了开发和持续维护复杂系统,必然要做好优秀的架构设计,才能有效降低开发者的心智负担因此,抽象和分层是人类应对方法。抽象是对普遍性的表达,分层则是在恰当的
2021-04-25 16:24:59 238
原创 异步流程控制浅谈
bash脚本语言,基本上每个命令都是需要不定时等待的,所以是一种天然的异步流程控制语言“我们要寻找的就是如何组织我们的代码,来让其更加容易,极少冗余的表述我们的思维过程,同时这个过程本身又是容易被不断延展的,我称之为编织代码。”表面同步,内在异步的模型,才是高并发编程和高效率编程的最终方案。...
2021-03-12 12:00:57 572
翻译 JavaScript Async/Await: 串行,并行和复杂流
JavaScript Async/Await: 串行,并行和复杂流如果你有ASP.NET MVC编程语言的从业经历,你应该很熟悉C#的关键字async/await。现在JavaScript 也有同样的特性了。在async/await关键字还没有出现在JavaScript时,我们通常使用回调函数和Promise来处理异步代码。async/await构建与Promise对象和非阻塞特性之上。它的强大之处在于提供了一种语法使其写异步代码如同同步代码一般体验。在这篇文章中,我们将遍历串行/链式和并行流,并使用as
2021-02-02 20:05:48 1897
原创 你应该理解的编程概念:上下文
前言张飞:“俺也一样!”正文## 概念:是什么上下文定义:位于关键词前部或后部的词句或文字。它是关键词所处的语言环境,影响关键词的含义。通过阅读上下文,有助于理解和鉴别某关键词所具有的准确含义和用法,判断文献是否相关。---《图书馆·情报与文献学名词》 上下文切换(context switch)定义:根据某种条件,暂停当前进程或线程的执行,保护当前进程或线程的现场,恢复另一个进程或线程的现场,转而执行该进程或线程的过程。---《计算机科学技术名词 》 (第三版)因此,我们得知:上
2021-01-07 16:08:56 2921
翻译 WSL:失去潜力
如果你最近几年在关注windows10系统,你应该知道Windows Subsystem for Linux,或者简称为WSL是周边开发人员的热门话题。最终你可以在Windows上以一等公民的身份运行你的Linux工具,这意味着你无需学习PowerShell或忍受古老的CMD.EXE控制台。不幸的是,并非一切都像听起来那么美好。作为Azure新角色的一部分,我现在必须在Windows上开发。WSL仍然与本机Windows环境分开的事实表明了:即使我满怀希望,我也不能将WSL用作日常开发环境,因为我需要与“
2020-12-11 15:18:33 311
原创 (大众版本)从用户开始输入URL到最后屏幕上页面展示之间到底发生了什么?
当在计算机的浏览器输入URL(https://www.baidu.com)后,用户的计算机开始处理输入的URL,在本地查找是否有对应域名的IP地址,如果没有则向DNS服务器请求解析https://www.baidu.com对应的IP地址。计算机拿到对应域名的IP地址,然后向该IP地址的服务器发起请求,请求网址为:https://www.baidu.com。该IP地址所对应的服务器对请求网址处理,然后向用户计算机返回相应的资源(一般包括HTML文档,CSS样式表,JS脚本文件,以及其他的图片资源,XHR请求
2020-11-30 23:11:49 124
原创 JS语言下的有限状态机设计及实现
概念有限状态机(FSM)是一种用来进行对象行为建模的工具,其作用主要是描述对象在它的生命周期内所经历的状态序列,以及如何响应来自外界的各种事件。在计算机科学中,有限状态机被广泛用于建模应用行为、硬件电路系统设计、软件工程,编译器、网络协议、和计算与语言的研究。引用在开发某个应用时,需要根据该应用内部的状态的改变来执行一些逻辑代码,比如应用的生命周期特性就可用该功能实现,我们试着用JS语言实现一个有限状态机模型实现步骤假设现在已经有一个有限状态机,我们应该怎么使用它呢?先创建一个有限状态机实例
2020-10-31 22:15:31 981
原创 探讨JS编程语言下的高斯消元法
高斯消元法基本思想通过一系列的加减消元运算,直到得到类似kx=bkx=bkx=b的式子,然后逐一回代求解xxx向量(用初等行变换把增广矩阵转换为行阶梯阵,然后回代求出方程的解)将方程组的增广矩阵A′=(A∣b)A'=(A|b)A′=(A∣b)实施初等行变化为行的最简行,此时该最简行作为增广矩阵对应的方程组与原方程组同解,这样通过解简化的阶梯形矩阵所对应的方程组就求出原方程组的解。步骤消元判断解的情况(可选)回代解的判断判断一无解: 当消元完毕后,发现一行系数都为0,但是常数项不为
2020-09-29 01:49:47 470
原创 浅谈网站darkmode
前言为什么(信息流)网站需要暗黑模式?道之所现,白天之后是黑夜。暗黑模式的背后目的是对眼睛,视力的一种保护措施。是网站一种提升用户体验的措施。那么如何实现一个信息流网站的暗黑模式呢?这里有两种思路。正文首先,我们需要知道一个知识点prefers-color-scheme,下面的两种思路都会用到该特性。prefers-color-scheme CSS 媒体特性用于检测用户是否有将系统的主题色设置为亮色或者暗色。一般有如下用法:body { color: black; backg
2020-08-04 16:55:24 683
翻译 使用JavaScript访问你的设备相机
各位好,在这篇博客中我将向你展示如何在一个网页上通过JavaScript, 且支持众多浏览器不需要额外的库访问当前的设备相机。如何访问相机我们使用JavaScript 的 Media Stream API去访问用户的相机(不止是在电脑上,手机上也是如此),这个API允许通过流去访问设备捕获的视频和音频。第一步是检测当前浏览器是否支持该API:if ('mediaDevices' in navigator && 'getUserMedia' in navigator.mediaDev
2020-06-11 14:30:04 2321
原创 前端知识学习之路
前端方面的知识从重要程度来排,私以为应该先后学这些:1,api学习,系统地学,可以看看这个方面的书,不要只零散地看网上文章,这个书钱要舍得花。前端领域,这个方面我推荐看看《javascript高级程序设计》和《html5和css3权威指南》。2,学习一些编程上的技巧,比如面向对象,组件,api设计,推荐几本书《js设计模式》《head first设计模式》和《代码整洁之道》。3,学习除jqury之外的一两个框架,因为jqury只是个库,算不上框架,加上jquery ui也仍然只是个库。学学两个前端框架
2020-05-31 22:07:56 146
原创 使用puppeteer一键启动本地开发环境
背景puppeteer是一个通过Devtools协议来提供操控chrome/chromium浏览器的高阶API的NodeJS库我负责的一个项目的启动本地开发环境是这样的:使用npm run dev指令运行webpack-dev-server服务。暴露出访问地址:http://localhost:1314。然后登陆部署到内部项目环境下的应用。获取到账户cookie的entrance键值对。然...
2020-03-29 23:07:57 2027
翻译 高级CORS利用技术
原文地址:https://www.corben.io/advanced-cors-techniques/作者:Corben Leo,原文发表于2018年6月16号自豪地采用谷歌翻译,有英文阅读能力,尽量去阅读原文吧。序言我看过 Linus Sarud 和 Bo0oM 做的一些关于Safari 浏览器如何滥用特殊字符的研究。https://labs.detectify.com/201...
2020-01-15 11:01:13 355
原创 如果你讨厌一个人,就让它写一个日期范围差值算法吧
如果你讨厌一个人,就让它写一个日期范围差值算法吧引在我负责的应用中,有个功能点是是通过选择的日期范围计算出这个范围的日期的差值(计算时包含最后一天),比如:日期范围为2020-01-01 ~ 2021-02-28,则该日期范围的日期差值是1年2个月。这个功能点初始是其他同事做的,他的计算逻辑是使用getTime语法获取到两个日期的时间戳,拿到相差的毫秒数,一天有86400000毫秒,然后除以这...
2020-01-08 15:07:38 313
原创 从KaraTsuba算法谈JS的大数乘法(上)
引之前在某社区看到JKolmogorov 和 Karatsuba 关于乘法算法的故事,遂探索一番,发现其是关于高效大数乘法的算法。众所周知,一般的乘法的时间复杂度是O(n2),而 Karatsuba 提出的算法复杂度仅有O(Nlog23),社区中少有基于JS的算法实现,本文试图从Javascript语言出发谈论大数乘法。正分析所谓大数乘法(Multiplication algorithm)...
2019-12-29 23:48:34 666 1
原创 开源库form-render探索(一)
引在2019年10月19号,看到一则新闻:阿里巴巴可跨组件体系的表单配置生成方案 form-render 开源了:https://github.com/alibaba/form-render正好这几天一直在研究表单生成器相关内容,遂一探究竟。正从GitHub的工程仓库中可看到package.json部分内容如下:{ "dependencies": { "moment...
2019-11-23 03:46:56 11100
原创 Vue表单生成器设计实践
前言在公司一直从事基于Vue框架后台应用的前端研发,而该类应用的页面有较多的通过表单交互来增删改查的操作,为了进行优雅的开发体验,也有感于项目当前的代码,遂封装一个更合适的表单生成器form-generator.vue。稍有从业经验的人都晓得,这类生成器在基于iview,ant-design这样的组件库下实现不算复杂,因此这里主要是阐述表单生成器的设计思路。当前项目的表单生成操作有以下问题:...
2019-11-20 21:01:13 2463
翻译 apt与apt-get的区别
原文地址:https://itsfoss.com/apt-vs-apt-get-difference/作者:Abhishek Prakash自豪的采用谷歌翻译摘要:本文解释了Linux中apt和apt-get命令的区别。它还列出了一些最常用的apt命令,这些命令替代了旧的apt-get命令。Ubuntu 16.04引人注目的新特性之一是apt命令的引入。实际上,apt命令是在2014年...
2019-09-16 15:46:51 695
翻译 使用mkcert为你的localhost添加有效的HTTPS证书
原文地址:mkcert: valid HTTPS certificates for localhos, 原文作者:Filippo Valsorda渣翻译,有英文阅读能力的可以去原网址阅读自豪地采用谷歌翻译网络移动到HTTPS协议后,需要防止网络攻击者观察或注入页面内容。但是HTTPS需要TLS证书,由于ACME协议和Let’s Encrypt,部署越来越成为一个已解决的问题。因为loc...
2019-02-16 14:51:09 6455
翻译 在JS中复制对象
原文地址:Copying objects in Javascript, 原文作者:Victor Parmar渣翻译,有英文阅读能力的可以去原网址阅读,正文部分的括号内是译者的尝试补充说明自豪地采用谷歌翻译在这篇文章中,我将会讲到几种在JS中复制对象的方式,我们将会关注到浅复制和深复制。在开始之前,值得一提的是一些基础知识:JS中的对象只是对内存中某个位置的引用。这些引用是可以更改的。即...
2019-01-16 16:53:24 22285 2
翻译 你应该在你的域名中使用www吗?
原文地址:https://bjornjohansen.no/www-or-not渣翻译,有英文阅读能力的可以去原网址阅读,正文部分的括号内有译者注的部分是译者的补充说明,其他则是原文的补充说明自豪地采用谷歌翻译你应该在你的域名中使用www吗?20多年了,关于是否应该在你的域名中使用www的争论一直存在,所以你应该使用www吗?历史背景尽管人们经常互换着使用域名与主机名的术语。不同点...
2019-01-10 13:52:04 2078
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人