hexo升级
一、背景 在进行博客发布过程中发现空格的渲染失效了,原来使用” ”来输出空格,但是在解析出来的博客还是显示 ,原因是hexo和markdown的版本匹配问题,所以需要升级相应的组件版本。
二、版本升级2.1 版本查看 npm outdated查看组件版本
1234567891011Package Current Wanted Latest Locationhexo 5.2.0 5.4.2 6.2.0 hexo-sitehexo-generator-archive 0.1.5 0.1.5 1.0.0 hexo-sitehexo-generator-category 0.1.3 0.1.3 1.0.0 hexo-sitehexo-generator-feed 2.2.0 2.2.0 3.0.0 hexo-sitehexo-generator-index 0.2. ...
go中rune数据类型
什么是rune,看下官方回答
1234567// rune is an alias for int32 and is equivalent to// int32 in all ways. It is// used, by convention, to distinguish character// values from integer values.// int32的别名,几乎在所有方面等同于int32// 它用来区分字符值和整数值
type rune = int32划重点:用它来区分字符值和整数值
大家知道计算机在底层处理的都是零和一的数字,那么字符串也不另外。string字符串在转换成byte之后其实都是一个数值,我们知道常规的英文字符是ascii码是通过一个字节( 2^8 其实还有一位是不用的 )来存储,中国文字、日本文字常用文字就有4000+,通过2^8肯定表达不了,所有可以通过unicode来存储,占用2个字节。
12345678package mainimport "fmt"func main() { fmt.Println(" ...
MapReduce论文学习
一、介绍 MapReduce是一个编程模型,也是一个处理和生成超大数据集的算法模型的相关实现。用户首先创建一个Map函数处理一个基于key/value pair的数据集合,输出中间的基于key/value pair的数据集合;然后再创建一个基于Reduce函数用来合并所有的具有相同中间key值的中间value值。 MapReduce架构的程序能够再大量的普通配置的计算机上实现并行处理,这个系统在运行时只关心:如何分割输入数据,在大量计算机组成的集群上的调度,集群中计算机的错误处理,管理集群中计算机之间必要的通信。
二、编程模型 MapReduce 编程模型的原理是:利用一个输入 key/value pair 集合来产生一个输出的 key/value pair 集合。 MapReduce 库的用户用两个函数表达这个计算:Map 和 Reduce。 用户自定义的 Map 函数接受一个输入的 key/value pair 值,然后产生一个中间 key/value pair 值的集合。 MapReduc ...
hexo d部署报错
在进行hexo d部署服务时突然发生了报错,特此记录下来,方便后面自己修改
报错代码如下:
123456789101112131415161718192021222324252627INFO Validating configWARN Deprecated config detected: "external_link" with a Boolean value is deprecated. See https://hexo.io/docs/configuration for more details.INFO =================================================================== ##### # # ##### ##### ###### ##### ###### # # # # # # # # # # # # # # # # ##### # # # ...
SerialVersionUid的作用
序列化运行时与每个可序列化的类关联一个版本号,称为serialVersionUID,在反序列化期间使用该版本号来验证序列化对象的发送者和接收者是否已加载了该对象的与序列化兼容的类。如果接收者为对象加载的类serialVersionUID与相应的发送者的类不同,则反序列化将导致 InvalidClassException。可序列化的类可以serialVersionUID通过声明一个serialVersionUID必须为static,final和type 的字段来显式声明其自身long:
1ANY-ACCESS-MODIFIER static final long serialVersionUID = 42L;
如果可序列化的类未显式声明a serialVersionUID,则序列化运行时将根据serialVersionUID该类的各个方面为该类计算默认值,如Java™对象序列化规范中所述。但是,强烈建议所有可序列化的类显式声明serialVersionUID值,因为默认的情况下serialVersionUID计算对类详细信息高度敏感,而类详细信息可能会根据编译器的实现而有所不同,因此可 ...
MySQL中自增主键的好处
UUID 好处 以及 自增主键 的优缺点自增主键自增ID是在设计表时将id字段的值设置为自增的形式,这样当插入一行数据时无需指定id会自动根据前一字段的ID值+1进行填充。在MySQL数据库中,可通过sql语句AUTO_INCREMENT来对特定的字段启用自增赋值 使用自增ID作为主键,能够保证字段的原子性.
优点
数据库自动编号,速度快,而且是增量增长,按顺序存放,对于检索非常有利;数字型,占用空间小,易排序,在程序中传递也方便;如果通过非系统增加记录时,可以不用指定该字段,不用担心主键重复问题。缺点
因为自动增长,在手动要插入指定ID的记录时会显得麻烦,尤其是当系统与其它系统集成时,需要数据导入时,很难保证原系统的ID不发生主键冲突(前提是老系统也是数字型的)。特别是在新系统上线时,新旧系统并行存在,并且是异库异构的数据库的情况下,需要双向同步时,自增主键将是你的噩梦;在系统集成或割接时,如果新旧系统主键不同是数字型就会导致修改主键数据类型,这也会导致其它有外键关联的表的修改,后果同样很严重;若系统也是数字型的,在导入时,为了区分新老数据,可能想在老数据主键前统一加一个字符标识(例 ...
使用SuperVisor管理进程
Supervisor (http://supervisord.org) 是一个用 Python 写的进程管理工具,可以很方便的用来启动、重启、关闭进程(不仅仅是 Python 进程)。除了对单个进程的控制,还可以同时启动、关闭多个进程,比如很不幸的服务器出问题导致所有应用程序都被杀死,此时可以用 supervisor 同时启动所有应用程序而不是一个一个地敲命令启动。
安装Supervisor 可以运行在 Linux、Mac OS X 上。如前所述,supervisor 是 Python 编写的,所以安装起来也很方便,可以直接用 pip :
1sudo pip install supervisor
如果是 Ubuntu 系统,还可以使用 apt-get 安装。
supervisord 配置Supervisor 相当强大,提供了很丰富的功能,不过我们可能只需要用到其中一小部分。安装完成之后,可以编写配置文件,来满足自己的需求。为了方便,我们把配置分成两部分:supervisord(supervisor 是一个 C/S 模型的程序,这是 server 端,对应的有 client 端:s ...
java序列化机制
一、序列化的含义、意义及使用场景二、序列化实现的方式1、Serializable1.1 普通序列化1.2 成员是引用的序列化1.3 同一对象序列化多次的机制1.4 java序列化算法潜在的问题1.5 可选的自定义序列化2、Externalizable:强制自定义序列化3、两种序列化对比三、序列化版本号serialVersionUID四、总结
一、序列化的含义、意义及使用场景
序列化:将对象写入到IO流中
反序列化:从IO流中恢复对象
意义:序列化机制允许将实现序列化的Java对象转换位字节序列,这些字节序列可以保存在磁盘上,或通过网络传输,以达到以后恢复成原来的对象。序列化机制使得对象可以脱离程序的运行而独立存在。
使用场景:所有可在网络上传输的对象都必须是可序列化的,比如RMI(remote method invoke,即远程方法调用),传入的参数或返回的对象都是可序列化的,否则会出错;所有需要保存到磁盘的java对象都必须是可序列化的。通常建议:程序创建的每个JavaBean类都实现Serializeable接口。
二、序列化实现的方式如果需要将某个对象保存到磁盘上或者通过网络传 ...
MicroMeter的基础概念
表格的语法
Tables
Are
Cool
col 3 is
right-aligned
$1600
col 2 is
centered
$12
zebra stripes
are neat
$1
首行缩进两字符:
MicroMeter中指标的分类包括五种类型:timers, gauges, counters, distribution summaries, and long task timers
一、目的 MicroMeter是针对基于JVM的应用程序的Metrics标准检测库。它为最流行的监视系统提供了一个基于可视化客户端的简单外观,使您无需供应商锁定即可对基于JVM的应用程序代码进行可视化。它旨在在最大限度地提高指标工作可移植性的同时,几乎不增加指标收集活动的开销。
二、支持的监控系统 MicroMeter不是分布式跟踪系统或事件日志记录器。阿德里安·科尔(Adrian Cole)关于“ 可观测性3种方式”的演讲在强调这些不同类型的系统之间的差异方面做得很好。
M ...
我的2020
大学毕业后感觉生活就像按了快进键一样,现在让我回忆过去还是最容易想起毕业刚来北京那会儿,2020这一年就好像被偷走了一样,甚至觉得这份2020的总结有些多余……
这一年在学习方面算是有了些成长,看了好几本书,像《深入理解JVM虚拟机》、《算法》、《深入浅出Mysql》、《redis设计与实现》、《剑指offer》、以及刷了300道leetcode,这些东西让我对于编程开发有了一定的掌握,同时也为2021的秋招解决了很大一部分知识点,这从回京后找实习的结果还是能看出来效果的,一般公司的算法和基础知识都没有太大的问题。当然这是好的一面,但是也暴露出了很大的问题,实战经验非常不足,在一些框架的用法、现实问题的思考点与处理方式等都还很不足,百度的面试如同当头棒喝一般让人警醒;自己的基础知识储备还很不足,比如操作系统、计算机网络、数据库这些都只是一知半解,秋招的竞争对手是全国各个高校的人,想要跟他们竞争必须让自己多方面的知识丰满起来,所以在接下来的2021一定要有两个自己拿得出手的项目,同时要打牢基础,再准备一些足以让自己出彩的内容(暂定分布式相关知识)!