关于 Vue 的一些总结
最近使用 Vue 对项目中涉及的各种历史悠久的、基于不同陈旧技术栈的的运营后台进行了彻底重构,简单记录一下过程中一些总结。
所谓的行为参数化英文叫做 Behavior parameterization
,属于设计模式中的 策略模式,即一个类的行为或其算法可以在运行时更改,这种类型的设计模式属于行为型模式。这里是通过将行为(方法体)当做参数传递到达运行时更改的目标。
分布式 ID 生成服务在业务系统开发中经常会用到,不过一般都会作为基础服务存在,大多数情况下不需要自己去造一个轮子出来。目前也有很多开源的方案,不过一定要根据业务的实际情况选型,需要满足业务需求的情况下尽可能不要引入额外的复杂性。这里简介绍一下我们在实际项目中采用的基于 MySQL 的 ID 生成方案。
Rasa NLU 是一个开源的、可本地部署并配套有语料标注工具(rasa-nlu-trainer)的自然语言理解框架。其本身是只支持英文和德文,中文因为其特殊性需要加入特定的 tokenizer 作为整个流水线的一部分,Rasa_NLU_Chi 作为 Rasa_NLU 的一个 fork 版本,加入了 jieba 作为中文的 tokenizer,实现了中文支持。本篇即简单介绍基于 Rasa_NLU_Chi 构建一个本地部署的特定领域的中文 NLU 系统的过程和注意事项。
有效的学习笔记不但可以加深思考和理解,同时还可以充分利用艾宾浩斯记忆规律
让学习效率大大提升。写笔记或者博客是一种很好的方式,但如果是对某一个知识体系进行系统学习,这时候就需要我们能够有序的、美观的将笔记进行系统整理,便于形成知识体系同时还方便查阅,Gitbook 就是这样一个神器,能够让你像写书一样记录笔记,便捷、高效、美观,最重要的是免费、可绑定域名而且扩展性强。
伴随小程序和小游戏越来越火,其开发技能也逐渐变得重要起来,最近接手了一个小程序项目,对小程序有了比较深入的了解,其开发也没有想象的那么神秘,这里通过一个基于 Wepy 框架的小程序 Demo 介绍从零上手开发一个小程序的过程。
在语音交互中有这样一种场景:给出一组候选项,希望找出与用户输入相似度最高的一项。例如给用户推荐商品(例如手机)的同时会提供一组品牌的筛选项,当用户输入了“选华为的”,这时就需要匹配到“华为(HUAWEI)”这个候选项。用户输入的多样性及 ASR(Automatic Speech Recognition) 的准确率增加了这个问题的复杂性,这里使用 编辑距离 Edit distance 可以很好的解决这个问题。
Stream 作为 Java8 的一大亮点,是对集合(Collection)对象功能的增强,它专注于对集合对象进行各种非常便利、高效的聚合操作(过滤、排序、分组、聚合等),或者大批量数据操作 (bulk data operation)。Stream API 借助于同样新出现的 Lambda 表达式,极大的提高编程效率和程序可读性。
之前开发过一款小巧的智能硬件设备,它会在用户点击的时候调用服务端的一个 RESTful API 完成下单功能。最近突然有用户反馈不能正常下单,检查服务端日志发现并没有下单的请求进入,经过排查最终发现是 Https 握手失败导致,下面记录一下详细的解决过程以加深对 Https 和 SSL/TLS 的认识。
UC 看多了不自觉也学会震惊体了,哈哈。回到主题,事情是这样的,之前申请了 AWS 的 EC2 免费主机一台,平时在上面部署一些自己的小应用,昨天晚上突然发现部署在上面的相册访问不了,搭的 Shadowsocks(以下简称ss) 代理也不能用了,关键是 SSH 连主机都连不上了,这可是重大线上事故啊。