- 博客(33)
- 收藏
- 关注
原创 doccano 标注工具 全网最全安装部署采坑
doccano 标注工具 全网最全安装部署采坑最近研究nlp相关的序列标注工具,找到了doccano这个神奇的工作,下面记录下在安装部署doccano的各种神奇问题1.doccano的用途document classification 文本分类sequence labeling 序列标注,用于命名实体识别sequence to sequence seq2seq,用于翻译speech to text 语音转文本标注2. doccano的安装方式使用docker-compose部署
2020-06-18 13:42:41 7054 3
原创 可能是最全的移动端页面调试指南
可能是最全的移动端页面调试指南Android 端Android端一般来说浏览器分为:系统浏览器如果需要再系统浏览器上调试,可以去对应手机的官网上看有没有开发版的rom,例如小米手机可以刷开发版的rom,然后进行调试 - webkit内核浏览器、例如chrome首先在chrome中输入 chrome://inspect/#devices 然后USB连上手机,打开USB...
2018-08-02 14:05:07 4629
原创 全方位深入理解JavaScript面向对象
JavaScript面向对象程序设计本文会碰到的知识点: 原型、原型链、函数对象、普通对象、继承读完本文,可以学到面向对象的基本概念JavaScript对象属性理解JavaScript中的函数对象与普通对象理解prototype和proto理解原型和原型链详解原型链相关的Object方法了解如何用ES5模拟类,以及各种方式的优缺点了解如何用ES6实现面向对象目录...
2018-03-30 10:13:16 25783 5
原创 2021年总结
总体来说,2021的收获是很多的,最重要的是面向了客户,面向了市场真实的诉求,不管以后做不做产品,这段经历都弥足珍贵。对自身而言,总结了一个词是迷茫,但是我理解的迷茫更多的是不清楚未来方向,不清楚自己在市场的价值,这个词我不认为是一个贬义词,大家都应该学会居安思危,公司也有可能倒闭,但是我们自己的能力不会随着公司的倒闭而消亡。要说学到什么第一点是学会了思考,从产品层面的思考,如何去调研行业、调研市场,发掘市场的真实诉求,从与人沟通的层面,想清楚大家想要什么,真实的诉求,不是你说啥就是啥。第二点是学会取
2022-01-27 10:18:08 293
原创 缓存优化配置和测试结果
服务器配置服务器:apache2.4.6 centos在http.conf中开启模块LoadModule headers_module /etc/httpd/modules/mod_headers.so增加缓存配置配置etag、last-modified和max-age,这个地方对于js、css、png、jpeg等配置的7天的过期时间,对接系统可以自行调整配置html页面的过...
2018-10-18 11:34:48 424
原创 浏览器缓存默认情况研究
缓存原理用户第一次请求页面,服务器没有设置expired和max-age,设置了etag和last-modified,用户第二次请求页面(正常请求,非强制刷新),浏览器会返回304用户后续继续请求页面,浏览器返回几次304之后,浏览器会使用一个尝试性的时间来使用本地的缓存,而不是直接去请求服务器。RFC地址:Since origin servers do not always prov...
2018-10-18 11:32:29 330
原创 PWA实战准备篇二
PWA实战准备篇二上一篇文章主要是对Web Push和Service Worker运行起来的方法,在正式开始PWA实战篇之前,还会有两次的准备篇,本次文章内容包括两点让我们的网站保持同步TypeScript入门需要准备第一点的原因是,对于一个IM应用,离线的情况是不可避免的,既然我们PWA能够让用户离线可用,那么为了确保用户离线情况发送消息,或者Http请求能够发送给服务器,就需...
2018-08-15 17:13:09 729
原创 PWA实战准备篇一
PWA实战准备篇这一篇的内容是利用ngrok让我们的服务跑在https上,然后利用一个boilerplate快速搭建PWA的环境让我们的Service Worker运行起来在讲PWA拦截网络请求之前,我们先说一下如何让我们的 Service Worker能够运行起来,因为支持https,这里有几种办法使用github来托管代码使用localhost,但这种有局限性,有时候...
2018-08-15 17:11:10 2933
原创 node-canvas static build 静态编译记录
node-canvas静态编译记录最近因为项目的原因,需要使用node来在后台拼接图片,自然的想到了我们熟悉的canvas,在github上搜了一下,果然有https://github.com/Automattic/node-canvas。 安装步骤:brew install pkg-config cairo pango libpng jpeg giflibnpm install ...
2018-07-31 10:17:43 1402 1
原创 electron打包的一些坑
electron打包的一些坑我们知道使用electron打包的时候设置asar为true,electron-builder会智能的把一些native的程序不打包到app.asar里面,但是我碰到一个很奇怪的问题,周五的时候需要使用语音的格式转换,用到了amrToMp3和ffmpeg-static这两个库,其中amrToMp3的主要代码:const exec = require('chi...
2018-06-25 14:12:53 20954 4
原创 JavaScript单线程
JavaScript单线程开始这篇文章之前有几个问题1、为什么JavaScript是单线程的 2、从for循环的面试题来理解JavaScript单线程JavaScript为什么是单线程。我们知道JavaScript作为浏览器的脚本语言,主要用途是与用户互动,以及操作DOM。如果以多线程的方式操作这些DOM,则可能出现操作的冲突。假设有两个线程同时操作一个DOM元素,线程1要求...
2018-06-14 19:39:40 175
原创 JavaScript加载与运行机制
JavaScript加载与运行机制这其实是两个问题分为JavaScript的加载机制和运行机制看完这篇文章后,对浏览器多进程,JS单线程,JS事件循环机制这些都能有一定理解JavaScript加载机制浏览器在获得一个html之后,会“自上而下”加载,并且在加载过程中进行解析渲染,我们知道一般来说CSS和IMAGE的加载是异步的,不会阻碍文档的加载,但是JavaScript的...
2018-06-14 19:39:08 2026
原创 JavaScript模块化
JavaScript模块化在开始本文之前,希望大家带着目的性去阅读本文,没有模块化,我们会碰到那些问题?命名冲突文件依赖使用模块化又有什么好处呢?可维护性命名空间可复用性读完本文后,希望大家能有所收获JavaScript模块化的发展历程一些现代标准的JavaScript模块化已经相关库的实现,包括但不局限于CommonJS、AMD、UMD、CMD、原生的E...
2018-06-04 09:29:10 213
原创 AI之语音转写项目实践
AI之语音转写项目实践最近项目需要,做了一个语音转写的小demo,结合了微信小程序前端:微信小程序,录音后上传到服务器服务器:express作为服务器,multer作为上传中间件,ffmpeg作为格式转换工具,使用百度nodejs的sdk进行语音的转换语音输入考虑到需要做语音输入,如果使用HTML5的getUserMedia,兼容性问题有点问题,最近在学微信小程序,索性就...
2018-05-28 10:26:50 2046
原创 keras入门学习笔记
keras入门https://cnbeining.github.io/deep-learning-with-python-cn/安装环境基本环境python2.7numpy-1.14.3 python科学计算的基础包,它提供了多维数组对象、基于数组的各种派生对象,矩形运算的模块scipy-1.1.0 基于numpy,有一些高阶抽象和物理模型,比如傅里叶变换在nump...
2018-05-22 09:12:22 391
原创 JavaScript设计模式十六(设计原则)
JavaScript设计模式十六(设计原则)单一职责原则单一职责原则就是SRP,定义是一个对象只做一件事情,在代理模式、迭代器模式、单例模式和装饰者模式中我们其实都提到过单一职责原则,我们回一下代理模式中的SRPvar myImage = (function(){ var imgNode = document.createElement('img'); docu...
2018-05-10 15:41:35 372
原创 JavaScript设计模式十五(适配器模式)
JavaScript设计模式十五(适配器模式)定义 适配器的作用是解决两个软件实体之间接口不兼容的问题现实生活中的适配器:港式插头转换器电源适配器USB转接口适配器模式的应用我们之前有这么一个例子:当我们想googleMap和baiduMap都发出“显示”的请求的时候,googleMap和baiduMap都已各自的方式展示地图var googl...
2018-05-10 15:41:06 200
原创 JavaScript设计模式十四(状态模式)
JavaScript设计模式十四(状态模式)定义: 允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类状态模式的关键是区分事物内部的状态,事物内部状态的改变往往会带来事物的行为的改变 首先看一个场景开灯关灯有一个电灯,电灯上只要一个开关。当电灯开着的时候,按下开关,电灯会切换到关闭状态;再次按下开关,电灯会被打开。同一个开关按钮,在不同的状态下,...
2018-05-10 15:40:45 1046
原创 JavaScript设计模式十三(装饰者模式)
JavaScript设计模式十三(装饰者模式)定义: 装饰者模式是指能够在不改变对象自身的前提下,在程序运行期间动态的给对象添加职责。与继承相比,装饰者模式更加方便,是一种“即用即付”的方式。模拟传统面向对象的装饰者模式我们先模拟面向对象的装饰者模式,假如我们在编写飞机大战的游戏,随着经验值的增加,我们操作的飞机可以升级,一开始只能发送普通的子弹,升级后能够发射导弹,再升...
2018-05-03 13:56:38 171
原创 JavaScript设计模式十一(职责链模式)
JavaScript设计模式十一(职责链模式)定义: 职责链模式的定义是使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系,把这些对象连成一条链,并沿着这条链传递改请求,直到有一个对象能够处理它为止。我们看个图就可以了 现实生活中的职责链模式显示生活中其实有很多关于职责链模式的例子我们现在上海的公交车上有些还是有售票员的,但是如果是早高峰,售票...
2018-05-03 13:55:44 268
原创 JavaScript设计模式十(享元模式)
定义 享元模式是一种用于性能优化的模式,享元模式的核心是运用共享技术有效支持大量细粒度的对象。如果系统中创建了大量类似的对象导致内存过高,享元模式就非常有用了。初始享元模式利用有一个内衣工厂(。。。为啥是这个例子),目前的产品有50种男士的和50种女士的,为了推销产品,需要模特来拍广告,正常情况需要50个男模特和50个女模特,然后让他们每个人一件来拍照,不适用享元模式,代码如...
2018-04-27 11:05:19 301 1
原创 JavaScript设计模式九(模板方法模式)
定义: 模板方法模式是一种只需要使用继承就可以实现的非常简单的模式 模板方法模式由两部分组成,第一部分是抽象父类,另一部分是具体的实现子类。通常抽象父类中封装了子类的算法框架,包括实现一些公共的方法以及封装子类中所有方法的执行顺序。子类通过继承这个类,然后继承了这个算法,然后重写父类的方法例子例子是泡一杯咖啡和茶 对于咖啡的顺序:把水煮沸用沸水冲泡咖啡把咖啡倒进...
2018-04-27 11:04:56 212 1
原创 JavaScript设计模式八(组合模式)
我们先回顾下上一节中的宏命令。var closeDoorCommand = { execute: function(){ console.log('close door'); }}var openPCCommand = { execute: function() { console.log('open pc'); }}...
2018-04-27 11:04:33 347
原创 JavaScript设计模式七(命令模式)
JavaScript设计模式七(命令模式)定义: 命令模式是最简单和优雅的模式之一,命令模式中的命令指的是一个执行某些特定事情的指令使用场景: 有时候需要向某些对象发送请求,但是不知道请求的接受者是谁,也不知道被请求的操作是什么。这种情况需要我们设计发送者和请求的接受者消除彼此的耦合关系。命令模式的例子假设我们在编写一个程序,用户界面上至少由数十按钮,因为项目负责,...
2018-04-19 15:36:38 416
原创 JavaScript设计模式六(发布-订阅模式)
JavaScript设计模式六(发布-订阅模式)发布-订阅模式又叫做观察者模式,定义: 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变的时候,所有依赖于它的对象都将得到通知。在JavaScript中的,我们一般用事件模型来代理传统的发布-订阅模式发布-订阅模式的例子例如小明想要买房子,去售楼处去问了,售楼小姐姐告诉他买完了,后续会加推楼盘。小明要了售楼小姐姐的...
2018-04-19 15:36:15 247
原创 JavaScript设计模式五(迭代器模式)
JavaScript设计模式五(迭代器模式)迭代器模式的定义: 迭代器模式的意思就是提供一种方法能够顺序的访问聚合对象中的各个元素,同时又不暴露该对象的内部表示。大多数浏览器已经支持了Array.prototype.forEach由于兼容性问题,我们目前使用原生的forEach比较少,我们先看看jQuery中的each方法jQuery中的迭代器jQuery中提供了ea...
2018-04-19 15:35:49 157
原创 node 图片压缩采坑小记.md
前言由于有需要在electron平台上做图片压缩,系统要求为win8.1和macOS,因此有了这篇文章。对于macOS各种库基本没问题,本文主要讲的是window下electron相关的native module的安装过程,包括其中碰到的问题。使用平台node 6.7.3electron 1.6.6mac os 12.13.6、 win8.1第三方库node...
2018-04-16 14:00:48 837
原创 window下如何安装sqlcipher
window下如何安装sqlcipher最近做electron的数据库加密,使用的主要是sqlite+openssl,在安装过程中碰到了很多坑,这里记录下 如何编译sqlcipher下载win-sqlciphercd到sqlite3目录cd deps把新的sqlite-autoconf-3090100.tar.gz (resouce 目录下)拷贝进去(这一步很重要,因为本身的那个...
2018-04-16 13:59:32 4981
原创 React生命周期函数详解
React生命周期函数详解React的生命周期主要有3个过程装载过程 Mount 组件第一次在DOM中渲染更新过程 Update 组件重新渲染卸载过程 UnMount 组件从DOM中移除装载过程constructor初始化,绑定thisgetInitialState (React.createClass)初始化stategetDefaultProps (R...
2018-04-16 13:56:30 200
原创 JavaScript设计模式四(代理模式)
JavaScript设计模式四(代理模式)代理模式的定义: 代理模式是为一个对象提供一个代用品或者占位符,以便对它的控制代理模式的关键点在于,客户不关心请求的是代理还是本体,它只是想获得需要的东西。我们还是通过例子来理解代理模式代理模式例子背景:小S需要最小L,但是小S很羞涩,刚好小C是小L和小S的朋友,小S委托小C送花给小L。看看代码怎么实现吧,如果不经过小...
2018-04-12 11:31:03 172
原创 JavaScript设计模式三(策略模式)
JavaScript设计模式三(策略模式)策略模式定义 定义一系列算法,把他们一个个封装起来,并且使他们相互替换我们可以先看一个例子策略模式计算年终奖大家知道年终奖的发放是和工资基数和年终考评来计算的,例如A是4个月工资,B是3个月工资,C是2个月工资。1、最初的代码实现var calculateBonus = function(level, salary...
2018-04-12 11:30:32 299
原创 JavaScript设计模式二(单例模式)
JavaScript设计模式二(单例模式)这边文章主要是JavaScript中的单例模式 定义: 保证一个类仅有一个实例,并提供一个访问它的全局访问点其实我们的日常开发中或多或少的用到了单例模式的方法。例如我们做Electron开发的过程中,点击一个按钮创建了一个窗口,后续点击的时候,如果窗口已经存在了就focus窗口,否则创建;或者我们经常会创建一个定时任务,同时把定时任务赋...
2018-04-12 11:30:06 185
原创 JavsScript 设计模式(一)
JavsScript 设计模式(一) 读完本文可以学到 1. this、call、apply、bind 2. 闭包 3. 什么是高阶函数 4. 高阶函数的应用,包括AOP、currying、debounce等JavsScript 设计模式(一)1. this、call、apply和bind1.1 this1.2 call1.3 apply1.4 ...
2018-04-03 11:01:28 483
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人